chushihua
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 Nuno Rodrigues
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
# Optimize CSS Assets Webpack Plugin
|
||||
|
||||
A Webpack plugin to optimize \ minimize CSS assets.
|
||||
|
||||
## What does the plugin do?
|
||||
|
||||
It will search for CSS assets during the Webpack build and will optimize \ minimize the CSS (by default it uses [cssnano](http://github.com/ben-eb/cssnano) but a custom CSS processor can be specified).
|
||||
|
||||
### Solves [extract-text-webpack-plugin](http://github.com/webpack/extract-text-webpack-plugin) CSS duplication problem:
|
||||
|
||||
Since [extract-text-webpack-plugin](http://github.com/webpack/extract-text-webpack-plugin) only bundles (merges) text chunks, if its used to bundle CSS, the bundle might have duplicate entries (chunks can be duplicate free but when merged, duplicate CSS can be created).
|
||||
|
||||
## Installation:
|
||||
|
||||
Using npm:
|
||||
```shell
|
||||
$ npm install --save-dev optimize-css-assets-webpack-plugin
|
||||
```
|
||||
|
||||
## Configuration:
|
||||
|
||||
The plugin can receive the following options (all of them are optional):
|
||||
* assetNameRegExp: A regular expression that indicates the names of the assets that should be optimized \ minimized, defaults to `/\.css$/g`
|
||||
* cssProcessor: The CSS processor used to optimize \ minimize the CSS, defaults to [cssnano](http://github.com/ben-eb/cssnano). This should be a function that follows cssnano.process interface (receives a CSS and options parameters and returns a Promise).
|
||||
* cssProcessorOptions: The options passed to the cssProcessor, defaults to `{}`
|
||||
* canPrint: A boolean indicating if the plugin can print messages to the console, defaults to `true`
|
||||
|
||||
## Example:
|
||||
|
||||
``` javascript
|
||||
var OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
|
||||
module.exports = {
|
||||
module: {
|
||||
loaders: [
|
||||
{ test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") }
|
||||
]
|
||||
},
|
||||
plugins: [
|
||||
new ExtractTextPlugin("styles.css"),
|
||||
new OptimizeCssAssetsPlugin({
|
||||
assetNameRegExp: /\.optimize\.css$/g,
|
||||
cssProcessor: require('cssnano'),
|
||||
cssProcessorOptions: { discardComments: {removeAll: true } },
|
||||
canPrint: true
|
||||
})
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT (http://www.opensource.org/licenses/mit-license.php)
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
var LastCallWebpackPlugin = require('last-call-webpack-plugin');
|
||||
|
||||
function OptimizeCssAssetsPlugin(options) {
|
||||
this.options = options || {};
|
||||
|
||||
if (this.options.assetNameRegExp === undefined) {
|
||||
this.options.assetNameRegExp = /\.css$/g;
|
||||
}
|
||||
|
||||
if (this.options.cssProcessor === undefined) {
|
||||
this.options.cssProcessor = require('cssnano');
|
||||
}
|
||||
|
||||
if (this.options.cssProcessorOptions === undefined) {
|
||||
this.options.cssProcessorOptions = {};
|
||||
}
|
||||
|
||||
if (this.options.canPrint === undefined) {
|
||||
this.options.canPrint = true;
|
||||
}
|
||||
|
||||
var self = this;
|
||||
this.lastCallInstance = new LastCallWebpackPlugin({
|
||||
assetProcessors: [
|
||||
{
|
||||
phase: LastCallWebpackPlugin.PHASE.OPTIMIZE_CHUNK_ASSETS,
|
||||
regExp: this.options.assetNameRegExp,
|
||||
processor: function (assetName, asset, assets) {
|
||||
return self.processCss(assetName, asset, assets);
|
||||
},
|
||||
}
|
||||
],
|
||||
canPrint: this.options.canPrint
|
||||
});
|
||||
};
|
||||
|
||||
OptimizeCssAssetsPlugin.prototype.processCss = function(assetName, asset, assets) {
|
||||
var css = asset.source();
|
||||
var processOptions = Object.assign(
|
||||
{ from: assetName, to: assetName },
|
||||
this.options.cssProcessorOptions || {}
|
||||
);
|
||||
if (processOptions.map && !processOptions.map.prev) {
|
||||
try {
|
||||
var mapJson = assets.getAsset(assetName + '.map');
|
||||
if (mapJson) {
|
||||
var map = JSON.parse(mapJson);
|
||||
if (
|
||||
map &&
|
||||
(
|
||||
(map.sources && map.sources.length > 0) ||
|
||||
(map.mappings && map.mappings.length > 0)
|
||||
)
|
||||
) {
|
||||
processOptions.map = Object.assign({ prev: mapJson }, processOptions.map);
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.warn('OptimizeCssAssetsPlugin.processCss() Error getting previous source map', err);
|
||||
}
|
||||
}
|
||||
return this.options
|
||||
.cssProcessor.process(css, processOptions)
|
||||
.then(r => {
|
||||
if (processOptions.map && r.map && r.map.toString) {
|
||||
assets.setAsset(assetName + '.map', r.map.toString());
|
||||
}
|
||||
return r.css;
|
||||
});
|
||||
};
|
||||
|
||||
OptimizeCssAssetsPlugin.prototype.apply = function(compiler) {
|
||||
return this.lastCallInstance.apply(compiler);
|
||||
};
|
||||
|
||||
module.exports = OptimizeCssAssetsPlugin;
|
||||
Generated
Vendored
+649
@@ -0,0 +1,649 @@
|
||||
# 4.1.11
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* fix [CVE-2021-28092](https://nvd.nist.gov/vuln/detail/CVE-2021-28092)
|
||||
|
||||
# 4.1.10
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `stylehacks` does not throw error on `[attr]` selector
|
||||
|
||||
# 4.1.9
|
||||
|
||||
## Performance Improvements
|
||||
|
||||
* `postcss-colormin`: increase performance
|
||||
* `postcss-discard-comments`: increase performance
|
||||
* `postcss-merge-rules` increase performance
|
||||
* `postcss-minify-params` increase performance
|
||||
* `postcss-minify-selectors`: increase performance
|
||||
* `postcss-normalize-display-values`: increase performance
|
||||
* `postcss-normalize-positions`: increase performance
|
||||
* `postcss-normalize-repeat-style`: increase performance
|
||||
* `postcss-normalize-string`: increase performance
|
||||
* `postcss-normalize-timing-functions`: increase performance
|
||||
* `postcss-normalize-whitespace`: increase performance
|
||||
* `postcss-ordered-values`: increase performance
|
||||
* `postcss-reduce-transforms`: increase performance
|
||||
* `postcss-svgo`: increase performance
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `postcss-merge-longhand` handle uppercase properties and values
|
||||
* `postcss-minify-gradients` handle uppercase properties and values
|
||||
* `postcss-minify-params` do break `@page` rules
|
||||
* `postcss-reduce-idents` handle uppercase at-rules
|
||||
* `postcss-reduce-initial` now uses `repeat` as initial value for `mask-repeat`
|
||||
* `postcss-reduce-initial` handle uppercase value when you convert to initial
|
||||
* `stylehacks` handle uppercase properties and values
|
||||
|
||||
# 4.1.8
|
||||
|
||||
## Performance Improvements
|
||||
|
||||
* initial loading time (`require('cssnano')`).
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `postcss-merge-longhand` correctly merging border properties with custom properties.
|
||||
|
||||
# 4.1.7
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* republish `cssnano` due broken release.
|
||||
|
||||
# 4.1.6
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `postcss-merge-longhand` doesn't throw error when merge a border property.
|
||||
|
||||
# 4.1.5
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `cssnano` now allow to toggling of plugins in presets using boolean configuration option.
|
||||
* `postcss-merge-longhand` doesn't merge properties with `unset`.
|
||||
* `postcss-merge-longhand` correctly merge borders with custom properties.
|
||||
* `postcss-merge-longhand` doesn't merge redundant values if declarations are of different importance.
|
||||
|
||||
## Other changes
|
||||
|
||||
* `postcss-calc` updated to `7.0.0` version.
|
||||
|
||||
# 4.1.4
|
||||
|
||||
## Other changes
|
||||
|
||||
* `css-declaration-sorter` now use PostCSS 7.
|
||||
* `postcss-calc` now use PostCSS 7.
|
||||
|
||||
# 4.1.3
|
||||
|
||||
## Other changes
|
||||
|
||||
* `postcss-minify-font-values` now use PostCSS 7.
|
||||
* `postcss-discard-duplicates` now use PostCSS 7.
|
||||
|
||||
# 4.1.2
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `postcss-svgo` now handle DataURI with uppercase `data` value (`DATA:image/*;...`).
|
||||
|
||||
# 4.1.1
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `css-declaration-sorter` was removed from default prevent.
|
||||
* `postcss-normalize-timing-functions` doesn't lowercased property anymore.
|
||||
* `postcss-normalize-positons` now handles uppercase properties.
|
||||
* `postcss-normalize-url` now is case-insensitive.
|
||||
* `postcss-merge-idents` now is case-insensitive.
|
||||
* `postcss-merge-rules` now is case-insensitive.
|
||||
* `postcss-minify-selectors` now is case-insensitive.
|
||||
* `postcss-minify-font-values` now is case-insensitive.
|
||||
* `postcss-normalize-unicode` now has correct dependencies.
|
||||
* `postcss-minify-params` now has correct dependencies.
|
||||
|
||||
## Other changes
|
||||
|
||||
* `cssnano-preset-advanced` use Autoprefixer 9.
|
||||
* use PostCSS 7 in all plugins.
|
||||
|
||||
# 4.1.0
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `postcss-merge-longhand` doesn't mangle borders.
|
||||
|
||||
## Features
|
||||
|
||||
* `postcss-ordered-values` support ordering animation values.
|
||||
|
||||
# 4.0.5
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `postcss-merge-longhand` now correctly merges borders with custom properties.
|
||||
* `postcss-merge-longhand` doesn't throw error in some `border` merge cases.
|
||||
|
||||
# 4.0.4
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `postcss-merge-longhand` doesn't drop border-width with custom property from border shorthand.
|
||||
* `postcss-merge-longhand` doesn't convert `currentColor`.
|
||||
* `postcss-merge-longhand` doesn't merge border properties if there is a shorthand property between them.
|
||||
|
||||
# 4.0.3
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `postcss-merge-longhand` incorrect minification of `border` (`border-*`) declarations.
|
||||
|
||||
# 4.0.2
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `postcss-merge-longhand` don't explode declarations with custom properties.
|
||||
* `postcss-colormin` now better transform to `hsl`.
|
||||
|
||||
# 4.0.1
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* `browserslist` version incompatibility with `caniuse-api`.
|
||||
|
||||
# 4.0.0
|
||||
|
||||
## Breaking changes
|
||||
|
||||
* We dropped support for Node 4, now requiring at least Node 6.9.
|
||||
|
||||
## Features
|
||||
|
||||
* postcss-merge-longhand now optimises `border-spacing` property.
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* postcss-normalize-unicode doesn't change `U` to lowercase for `IE` <= 11 and `Edge` <= 15.
|
||||
* postcss-merge-longhand works with custom properties (Example `a { border-style:dotted; border-style:var(--variable) }`) correctly.
|
||||
* postcss-ordered-values handle `border` property with invalid border width value correctly.
|
||||
* postcss-merge-rules handles `:-ms-input-placeholder` and `::-ms-input-placeholder` selectors correctly.
|
||||
* postcss-merge-rules works with `all` property correctly.
|
||||
* postcss-normalize-url don't handle empty `url` function.
|
||||
* postcss-normalize-url handles `data` and `*-extension://` URLs correctly.
|
||||
* postcss-colormin adds whitespace after minified value and before function.
|
||||
* postcss-minify-font-values better escapes font name.
|
||||
* postcss-minify-params doesn't remove `all` for IE.
|
||||
|
||||
## Other changes
|
||||
|
||||
* update all dependencies to latest.
|
||||
* better handles uppercase selectors/properties/values/units.
|
||||
|
||||
# 4.0.0-rc.2
|
||||
|
||||
## Features
|
||||
|
||||
* Includes the new release candidate for postcss-selector-parser 3.
|
||||
* Refactors comments tokenizing in postcss-discard-comments to be more
|
||||
memory efficient.
|
||||
* Adds css-declaration-sorter for improved gzip compression efficiencies
|
||||
(thanks to @Siilwyn).
|
||||
* postcss-svgo now optimises base 64 encoded SVG where possible
|
||||
(thanks to @evilebottnawi).
|
||||
* stylehacks now supports `@media \0screen\,screen\9 {}` hacks
|
||||
(thanks to @evilebottnawi).
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* Fixed handling of package.json configuration (thanks to @andyjansson).
|
||||
* Fixed `resolveConfig` for a `Root` node without a `source` property
|
||||
(thanks to @darthmaim).
|
||||
* Improved radial gradient handling (thanks to @pigcan).
|
||||
* stylehacks now properly accounts for vendor prefixes
|
||||
(thanks to @evilebottnawi).
|
||||
|
||||
# 4.0.0-rc.1
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* cssnano: Resolved an issue with external configuration which wasn't
|
||||
being loaded correctly (thanks to @andyjansson).
|
||||
* postcss-minify-params: Resolved an issue with cssnano's handling of the
|
||||
`@value` syntax from css-modules to better integrate with css-loader.
|
||||
|
||||
# 4.0.0-rc.0
|
||||
|
||||
Since version 4 has been in-development for some time, we thought it would be
|
||||
best to release an alpha version so that we could catch any issues before
|
||||
the actual release.
|
||||
|
||||
## Breaking changes
|
||||
|
||||
* cssnano & its plugins have been upgraded to PostCSS 6.x. Please ensure that
|
||||
for optimal results that you use cssnano with a PostCSS 6 compatible runner
|
||||
& that any other plugins are also using PostCSS 6.
|
||||
* cssnano is now essentially a preset loader and does not contain any built-in
|
||||
transforms (instead, it delegates to `cssnano-preset-default` by default).
|
||||
Due to the new architecture, it's not possible to exclude asynchronous
|
||||
transforms and run it synchronously, unlike in 3.x. Any transforms that
|
||||
were "core" modules have now been extracted out into separate packages.
|
||||
* Because of the new preset system, cssnano will not accept any transformation
|
||||
options; these must be set in the preset. The option names remain mostly the
|
||||
same, except some cases where "core" modules have been extracted out:
|
||||
|
||||
* `core` is now `normalizeWhitespace`.
|
||||
* `reduceBackgroundRepeat` is now `normalizeRepeatStyle`.
|
||||
* `reduceDisplayValues` is now `normalizeDisplayValues`.
|
||||
* `reducePositions` is now `normalizePositions`.
|
||||
* `reduceTimingFunctions` is now `normalizeTimingFunctions`.
|
||||
* `styleCache` is now `rawCache`.
|
||||
|
||||
When excluding transforms, we now have an `exclude` option (in 3.x this was
|
||||
named `disable`). Similarly, the `safe` option was removed; the defaults
|
||||
are now much less aggressive.
|
||||
* By default, the following transforms are no longer applied to any input CSS.
|
||||
You may see an increased output file size as a result:
|
||||
|
||||
* `autoprefixer`
|
||||
* `postcss-discard-unused`
|
||||
* `postcss-merge-idents`
|
||||
* `postcss-reduce-idents`
|
||||
* `postcss-zindex`
|
||||
|
||||
Note that you can load `cssnano-preset-advanced` instead which *does* contain
|
||||
these transforms.
|
||||
* We no longer detect previous plugins to silently exclude our own, and now
|
||||
consider this to be an anti-pattern. So `postcss-filter-plugins` was removed.
|
||||
* We also changed some options to make the default transforms safer:
|
||||
|
||||
* `postcss-minify-font-values`: `removeAfterKeyword` set to `false` from `true`.
|
||||
* `postcss-normalize-url`: `stripWWW` set to `false` from `true`.
|
||||
|
||||
* cssnano now does not accept the `sourcemap` shortcut option; please refer
|
||||
to the PostCSS documentation on sourcemaps. The `quickstart.js` file included
|
||||
with this module will give you a good starting point.
|
||||
* `cssnano.process` is no longer a custom method; we use the built-in `process`
|
||||
method exposed on each PostCSS plugin. The new signature is
|
||||
`cssnano.process(css, postcssOpts, cssnanoOpts)`, in 3.x it was
|
||||
`cssnano.process(css, cssnanoOpts)`.
|
||||
* We dropped support for Node 0.12, now requiring at least Node 4.
|
||||
* Finally, cssnano is now developed as a monorepo, due to the fact that some
|
||||
transforms have a lot of grey area/overlap. Due to this, some modules have
|
||||
been refactored to delegate responsibility to others, such that duplication
|
||||
of functionality is minimized. For instance, `postcss-colormin` will no
|
||||
longer compress whitespace or compress numbers, as those are handled by
|
||||
`postcss-normalize-whitespace` & `postcss-convert-values` respectively.
|
||||
|
||||
## Other changes
|
||||
|
||||
* Due to the PostCSS 6 upgrade, we have been able to reduce usage of custom
|
||||
methods, such as node `clone` behaviour. In cases where some utility
|
||||
has been used by several plugins it is now a separate package, reducing
|
||||
cssnano's footprint.
|
||||
* cssnano now makes much better use of Browserslist. `postcss-colormin` &
|
||||
`postcss-reduce-initial` were enhanced with different behaviour depending
|
||||
on which browsers are passed. And now, the footprint for the `caniuse-db`
|
||||
dependency is much smaller thanks to `caniuse-lite` - 7 times smaller as
|
||||
of this writing. This makes cssnano much faster to download from npm!
|
||||
|
||||
# 3.10.0
|
||||
|
||||
* cssnano will no longer `console.warn` any messages when using deprecated
|
||||
options; these are now sent to PostCSS. You will be able to see them if you
|
||||
use a PostCSS runner with built-in messages support, or alternately by
|
||||
loading `postcss-reporter` or `postcss-browser-reporter` in your plugins list.
|
||||
* Prepares support for `grid` identifier reduction by adding it to the list
|
||||
of optimisations turned off when `options.safe` is set to `true`.
|
||||
* Adds support for normalizing `unicode-range` descriptors. Values will
|
||||
be converted when the code matches `0` & `f` in the same place on both sides
|
||||
of the range. So, `u+2000-2fff` can be converted to `u+2???`, but
|
||||
`u+2100-2fff` will be left as it is.
|
||||
|
||||
# 3.9.1
|
||||
|
||||
* Resolves an integration issue with `v3.9.0`, where `undefined` values
|
||||
would attempt to be parsed.
|
||||
|
||||
# 3.9.0
|
||||
|
||||
* Adds a new option to normalize wrapping quotes for strings & joining
|
||||
multiple-line strings into a single line. This optimisation can potentially
|
||||
reduce the final gzipped size of your CSS file.
|
||||
|
||||
# 3.8.2
|
||||
|
||||
* Resolves an issue where `display: list-item inline flow` would be normalized
|
||||
to `inline list-item` rather than `inline-list-item` (thanks to @mattbasta).
|
||||
|
||||
# 3.8.1
|
||||
|
||||
* Adds a quick start file for easy integration with Runkit. Try cssnano online
|
||||
at https://runkit.com/npm/cssnano.
|
||||
|
||||
# 3.8.0
|
||||
|
||||
* Adds support for normalizing multiple values for the `display` property. For
|
||||
example `block flow` can be simplified to `block`.
|
||||
|
||||
# 3.7.7
|
||||
|
||||
* Further improves CSS mixin handling; semicolons will no longer be stripped
|
||||
from *rules* as well as declarations.
|
||||
|
||||
# 3.7.6
|
||||
|
||||
* Resolves an issue where the semicolon was being incorrectly stripped
|
||||
from CSS mixins.
|
||||
|
||||
# 3.7.5
|
||||
|
||||
* Resolves an issue where the `safe` flag was not being persisted across
|
||||
multiple files (thanks to @techmatt101).
|
||||
|
||||
# 3.7.4
|
||||
|
||||
* Improves performance of the reducePositions transform by testing
|
||||
against `hasOwnProperty` instead of using an array of object keys.
|
||||
* Removes the redundant `indexes-of` dependency.
|
||||
|
||||
# 3.7.3
|
||||
|
||||
* Unpins postcss-filter-plugins from `2.0.0` as a fix has landed in the new
|
||||
version of uniqid.
|
||||
|
||||
# 3.7.2
|
||||
|
||||
* Temporarily pins postcss-filter-plugins to version `2.0.0` in order to
|
||||
mitigate an issue with uniqid `3.0.0`.
|
||||
|
||||
# 3.7.1
|
||||
|
||||
* Enabling safe mode now turns off both postcss-merge-idents &
|
||||
postcss-normalize-url's `stripWWW` option.
|
||||
|
||||
# 3.7.0
|
||||
|
||||
* Added: Reduce `background-repeat` definitions; works with both this property
|
||||
& the `background` shorthand, and aims to compress the extended two value
|
||||
syntax into the single value syntax.
|
||||
* Added: Reduce `initial` values for properties when the *actual* initial value
|
||||
is shorter; for example, `min-width: initial` becomes `min-width: 0`.
|
||||
|
||||
# 3.6.2
|
||||
|
||||
* Fixed an issue where cssnano would crash on `steps(1)`.
|
||||
|
||||
# 3.6.1
|
||||
|
||||
* Fixed an issue where cssnano would crash on `steps` functions with a
|
||||
single argument.
|
||||
|
||||
# 3.6.0
|
||||
|
||||
* Added `postcss-discard-overridden` to safely discard overridden rules with
|
||||
the same identifier (thanks to @Justineo).
|
||||
* Added: Reduce animation/transition timing functions. Detects `cubic-bezier`
|
||||
functions that are equivalent to the timing keywords and compresses, as well
|
||||
as normalizing the `steps` timing function.
|
||||
* Added the `perspective-origin` property to the list of supported properties
|
||||
transformed by the `reduce-positions` transform.
|
||||
|
||||
# 3.5.2
|
||||
|
||||
* Resolves an issue where the 3 or 4 value syntax for `background-position`
|
||||
were being incorrectly converted.
|
||||
|
||||
# 3.5.1
|
||||
|
||||
* Improves checking for `background-position` values in the `background`
|
||||
shorthand property.
|
||||
|
||||
# 3.5.0
|
||||
|
||||
* Adds a new optimisation path which can minimise keyword values for
|
||||
`background-position` and the `background` shorthand.
|
||||
* Tweaks to performance in the `core` module, now performs less AST passes.
|
||||
* Now compiled with Babel 6.
|
||||
|
||||
# 3.4.0
|
||||
|
||||
* Adds a new optimisation path which can minimise gradient parameters
|
||||
automatically.
|
||||
|
||||
# 3.3.2
|
||||
|
||||
* Fixes an issue where using `options.safe` threw an error when cssnano was
|
||||
not used as part of a PostCSS instance, but standalone (such as in modules
|
||||
like gulp-cssnano). cssnano now renames `safe` internally to `isSafe`.
|
||||
|
||||
# 3.3.1
|
||||
|
||||
* Unpins postcss-colormin from `2.1.2`, as the `2.1.3` & `2.1.4` patches had
|
||||
optimization regressions that are now resolved in `2.1.5`.
|
||||
|
||||
# 3.3.0
|
||||
|
||||
* Updated modules to use postcss-value-parser version 3 (thanks to @TrySound).
|
||||
* Now converts between transform functions with postcss-reduce-transforms.
|
||||
e.g. `translate3d(0, 0, 0)` becomes `translateZ(0)`.
|
||||
|
||||
# 3.2.0
|
||||
|
||||
* cssnano no longer converts `outline: none` to `outline: 0`, as there are
|
||||
some cases where the values are not equivalent (thanks to @TrySound).
|
||||
* cssnano no longer converts for example `16px` to `1pc` *by default*. Length
|
||||
optimisations can be turned on via `{convertValues: {length: true}}`.
|
||||
* Improved minimization of css functions (thanks to @TrySound).
|
||||
|
||||
# 3.1.0
|
||||
|
||||
* This release swaps postcss-single-charset for postcss-normalize-charset,
|
||||
which can detect encoding to determine whether a charset is necessary.
|
||||
Optionally, you can set the `add` option to `true` to prepend a UTF-8
|
||||
charset to the output automatically (thanks to @TrySound).
|
||||
* A `safe` option was added, which disables more aggressive optimisations, as
|
||||
a convenient preset configuration (thanks to @TrySound).
|
||||
* Added an option to convert from `deg` to `turn` & vice versa, & improved
|
||||
minification performance in functions (thanks to @TrySound).
|
||||
|
||||
# 3.0.3
|
||||
|
||||
* Fixes an issue where cssnano was removing spaces around forward slashes in
|
||||
string literals (thanks to @TrySound).
|
||||
|
||||
# 3.0.2
|
||||
|
||||
* Fixes an issue where cssnano was removing spaces around forward slashes in
|
||||
calc functions.
|
||||
|
||||
# 3.0.1
|
||||
|
||||
* Replaced css-list & balanced-match with postcss-value-parser, reducing the
|
||||
module's overall size (thanks to @TrySound).
|
||||
|
||||
# 3.0.0
|
||||
|
||||
* All cssnano plugins and cssnano itself have migrated to PostCSS 5.x. Please
|
||||
make sure that when using the 3.x releases that you use a 5.x compatible
|
||||
PostCSS runner.
|
||||
* cssnano will now compress inline SVG through SVGO. Because of this change,
|
||||
interfacing with cssnano must now be done through an asynchronous API. The
|
||||
main `process` method has the same signature as a PostCSS processor instance.
|
||||
* The old options such as `merge` & `fonts` that were deprecated in
|
||||
release `2.5.0` were removed. The new architecture allows you to specify any
|
||||
module name to disable it.
|
||||
* postcss-minify-selectors' at-rule compression was extracted out into
|
||||
postcss-minify-params (thanks to @TrySound).
|
||||
* Overall performance of the module has improved dramatically, thanks to work
|
||||
by @TrySound and input from the community.
|
||||
* Improved selector merging/deduplication in certain use cases.
|
||||
* cssnano no longer compresses hex colours in filter properties, to better
|
||||
support old versions of Internet Explorer (thanks to @faddee).
|
||||
* cssnano will not merge properties together that have an `inherit` keyword.
|
||||
* postcss-minify-font-weight & postcss-font-family were consolidated into
|
||||
postcss-minify-font-values. Using the old options will print deprecation
|
||||
warnings (thanks to @TrySound).
|
||||
* The cssnano CLI was extracted into a separate module, so that dependent
|
||||
modules such as gulp-cssnano don't download unnecessary extras.
|
||||
|
||||
# 2.6.1
|
||||
|
||||
* Improved performance of the core module `functionOptimiser`.
|
||||
|
||||
# 2.6.0
|
||||
|
||||
* Adds a new optimisation which re-orders properties that accept values in
|
||||
an arbitrary order. This can lead to improved merging behaviour in certain
|
||||
cases.
|
||||
|
||||
# 2.5.0
|
||||
|
||||
* Adds support for disabling modules of the user's choosing, with new option
|
||||
names. The old options (such as `merge` & `fonts`) will be removed in `3.0`.
|
||||
|
||||
# 2.4.0
|
||||
|
||||
* postcss-minify-selectors was extended to add support for conversion of
|
||||
`::before` to `:before`; this release removes the dedicated
|
||||
postcss-pseudoelements module.
|
||||
|
||||
# 2.3.0
|
||||
|
||||
* Consolidated postcss-minify-trbl & two integrated modules into
|
||||
postcss-merge-longhand.
|
||||
|
||||
# 2.2.0
|
||||
|
||||
* Replaced integrated plugin filter with postcss-filter-plugins.
|
||||
* Improved rule merging logic.
|
||||
* Improved performance across the board by reducing AST iterations where it
|
||||
was possible to do so.
|
||||
* cssnano will now perform better whitespace compression when used with other
|
||||
PostCSS plugins.
|
||||
|
||||
# 2.1.1
|
||||
|
||||
* Fixes an issue where options were not passed to normalize-url.
|
||||
|
||||
# 2.1.0
|
||||
|
||||
* Allow `postcss-font-family` to be disabled.
|
||||
|
||||
# 2.0.3
|
||||
|
||||
* cssnano can now be consumed with the parentheses-less method in PostCSS; e.g.
|
||||
`postcss([ cssnano ])`.
|
||||
* Fixes an issue where 'Din' was being picked up by the logic as a numeric
|
||||
value, causing the full font name to be incorrectly rearranged.
|
||||
|
||||
# 2.0.2
|
||||
|
||||
* Extract trbl value reducing into a separate module.
|
||||
* Refactor core longhand optimiser to not rely on trbl cache.
|
||||
* Adds support for `ch` units; previously they were removed.
|
||||
* Fixes parsing of some selector hacks.
|
||||
* Fixes an issue where embedded base 64 data was being converted as if it were
|
||||
a URL.
|
||||
|
||||
# 2.0.1
|
||||
|
||||
* Add `postcss-plugin` keyword to package.json.
|
||||
* Wraps all core processors with the PostCSS 4.1 plugin API.
|
||||
|
||||
# 2.0.0
|
||||
|
||||
* Adds removal of outdated vendor prefixes based on browser support.
|
||||
* Addresses an issue where relative path separators were converted to
|
||||
backslashes on Windows.
|
||||
* cssnano will now detect previous plugins and silently disable them when the
|
||||
functionality overlaps. This is to enable faster interoperation with cssnext.
|
||||
* cssnano now exports as a PostCSS plugin. The simple interface is exposed
|
||||
at `cssnano.process(css, opts)` instead of `cssnano(css, opts)`.
|
||||
* Improved URL detection when using two or more in the same declaration.
|
||||
* node 0.10 is no longer officially supported.
|
||||
|
||||
# 1.4.3
|
||||
|
||||
* Fixes incorrect minification of `background:none` to `background:0 0`.
|
||||
|
||||
# 1.4.2
|
||||
|
||||
* Fixes an issue with nested URLs inside `url()` functions.
|
||||
|
||||
# 1.4.1
|
||||
|
||||
* Addresses an issue where whitespace removal after a CSS function would cause
|
||||
rendering issues in Internet Explorer.
|
||||
|
||||
# 1.4.0
|
||||
|
||||
* Adds support for removal of unused `@keyframes` and `@counter-style` at-rules.
|
||||
* comments: adds support for user-directed removal of comments, with the
|
||||
`remove` option (thanks to @dmitrykiselyov).
|
||||
* comments: `removeAllButFirst` now operates on each CSS tree, rather than the
|
||||
first one passed to cssnano.
|
||||
|
||||
# 1.3.3
|
||||
|
||||
* Fixes incorrect minification of `border:none` to `border:0 0`.
|
||||
|
||||
# 1.3.2
|
||||
|
||||
* Improved selector minifying logic, leading to better compression of attribute
|
||||
selectors.
|
||||
* Improved comment discarding logic.
|
||||
|
||||
# 1.3.1
|
||||
|
||||
* Fixes crash on undefined `decl.before` from prior AST.
|
||||
|
||||
# 1.3.0
|
||||
|
||||
* Added support for bundling cssnano using webpack (thanks to @MoOx).
|
||||
|
||||
# 1.2.1
|
||||
|
||||
* Fixed a bug where a CSS function keyword inside its value would throw
|
||||
an error.
|
||||
|
||||
# 1.2.0
|
||||
|
||||
* Better support for merging properties without the existance of a shorthand
|
||||
override.
|
||||
* Can now 'merge forward' adjacent rules as well as the previous 'merge behind'
|
||||
behaviour, leading to better compression.
|
||||
* Selector re-ordering now happens last in the chain of plugins, to help clean
|
||||
up merged selectors.
|
||||
|
||||
# 1.1.0
|
||||
|
||||
* Now can merge identifiers such as `@keyframes` and `@counter-style` if they
|
||||
have duplicated properties but are named differently.
|
||||
* Fixes an issue where duplicated keyframes with the same name would cause
|
||||
an infinite loop.
|
||||
|
||||
# 1.0.2
|
||||
|
||||
* Improve module loading logic (thanks to @tunnckoCore).
|
||||
* Improve minification of numeric values, with better support for `rem`,
|
||||
trailing zeroes and slash/comma separated values
|
||||
(thanks to @TrySound & @tunnckoCore).
|
||||
* Fixed an issue where `-webkit-tap-highlight-color` values were being
|
||||
incorrectly transformed to `transparent`. This is not supported in Safari.
|
||||
* Added support for viewport units (thanks to @TrySound).
|
||||
* Add MIT license file.
|
||||
|
||||
# 1.0.1
|
||||
|
||||
* Add repository/author links to package.json.
|
||||
|
||||
# 1.0.0
|
||||
|
||||
* Initial release.
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
Copyright (c) Ben Briggs <beneb.info@gmail.com> (http://beneb.info)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
# cssnano
|
||||
|
||||
For documentation, please see the following links:
|
||||
|
||||
* Repository: https://github.com/cssnano/cssnano
|
||||
* Website: http://cssnano.co
|
||||
Generated
Vendored
+122
@@ -0,0 +1,122 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _path = require('path');
|
||||
|
||||
var _path2 = _interopRequireDefault(_path);
|
||||
|
||||
var _postcss = require('postcss');
|
||||
|
||||
var _postcss2 = _interopRequireDefault(_postcss);
|
||||
|
||||
var _cosmiconfig = require('cosmiconfig');
|
||||
|
||||
var _cosmiconfig2 = _interopRequireDefault(_cosmiconfig);
|
||||
|
||||
var _isResolvable = require('is-resolvable');
|
||||
|
||||
var _isResolvable2 = _interopRequireDefault(_isResolvable);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
const cssnano = 'cssnano';
|
||||
|
||||
function initializePlugin(plugin, css, result) {
|
||||
if (Array.isArray(plugin)) {
|
||||
const [processor, opts] = plugin;
|
||||
if (typeof opts === 'undefined' || typeof opts === 'object' && !opts.exclude || typeof opts === 'boolean' && opts === true) {
|
||||
return Promise.resolve(processor(opts)(css, result));
|
||||
}
|
||||
} else {
|
||||
return Promise.resolve(plugin()(css, result));
|
||||
}
|
||||
// Handle excluded plugins
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
/*
|
||||
* preset can be one of four possibilities:
|
||||
* preset = 'default'
|
||||
* preset = ['default', {}]
|
||||
* preset = function <- to be invoked
|
||||
* preset = {plugins: []} <- already invoked function
|
||||
*/
|
||||
|
||||
function resolvePreset(preset) {
|
||||
let fn, options;
|
||||
if (Array.isArray(preset)) {
|
||||
fn = preset[0];
|
||||
options = preset[1];
|
||||
} else {
|
||||
fn = preset;
|
||||
options = {};
|
||||
}
|
||||
// For JS setups where we invoked the preset already
|
||||
if (preset.plugins) {
|
||||
return Promise.resolve(preset.plugins);
|
||||
}
|
||||
// Provide an alias for the default preset, as it is built-in.
|
||||
if (fn === 'default') {
|
||||
return Promise.resolve(require('cssnano-preset-default')(options).plugins);
|
||||
}
|
||||
// For non-JS setups; we'll need to invoke the preset ourselves.
|
||||
if (typeof fn === 'function') {
|
||||
return Promise.resolve(fn(options).plugins);
|
||||
}
|
||||
// Try loading a preset from node_modules
|
||||
if ((0, _isResolvable2.default)(fn)) {
|
||||
return Promise.resolve(require(fn)(options).plugins);
|
||||
}
|
||||
const sugar = `cssnano-preset-${fn}`;
|
||||
// Try loading a preset from node_modules (sugar)
|
||||
if ((0, _isResolvable2.default)(sugar)) {
|
||||
return Promise.resolve(require(sugar)(options).plugins);
|
||||
}
|
||||
// If all else fails, we probably have a typo in the config somewhere
|
||||
throw new Error(`Cannot load preset "${fn}". Please check your configuration for errors and try again.`);
|
||||
}
|
||||
|
||||
/*
|
||||
* cssnano will look for configuration firstly as options passed
|
||||
* directly to it, and failing this it will use cosmiconfig to
|
||||
* load an external file.
|
||||
*/
|
||||
|
||||
function resolveConfig(css, result, options) {
|
||||
if (options.preset) {
|
||||
return resolvePreset(options.preset);
|
||||
}
|
||||
|
||||
const inputFile = css.source && css.source.input && css.source.input.file;
|
||||
let searchPath = inputFile ? _path2.default.dirname(inputFile) : process.cwd();
|
||||
let configPath = null;
|
||||
|
||||
if (options.configFile) {
|
||||
searchPath = null;
|
||||
configPath = _path2.default.resolve(process.cwd(), options.configFile);
|
||||
}
|
||||
|
||||
const configExplorer = (0, _cosmiconfig2.default)(cssnano);
|
||||
const searchForConfig = configPath ? configExplorer.load(configPath) : configExplorer.search(searchPath);
|
||||
|
||||
return searchForConfig.then(config => {
|
||||
if (config === null) {
|
||||
return resolvePreset('default');
|
||||
}
|
||||
return resolvePreset(config.config.preset || config.config);
|
||||
});
|
||||
}
|
||||
|
||||
exports.default = _postcss2.default.plugin(cssnano, (options = {}) => {
|
||||
return (css, result) => {
|
||||
return resolveConfig(css, result, options).then(plugins => {
|
||||
return plugins.reduce((promise, plugin) => {
|
||||
return promise.then(initializePlugin.bind(null, plugin, css, result));
|
||||
}, Promise.resolve());
|
||||
});
|
||||
};
|
||||
});
|
||||
module.exports = exports['default'];
|
||||
Generated
Vendored
+57
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"name": "cssnano",
|
||||
"version": "4.1.11",
|
||||
"description": "A modular minifier, built on top of the PostCSS ecosystem.",
|
||||
"main": "dist/index.js",
|
||||
"scripts": {
|
||||
"bundle-size": "webpack --json --config src/__tests__/_webpack.config.js | webpack-bundle-size-analyzer",
|
||||
"integrations": "babel-node src/__tests__/util/rebuild.js",
|
||||
"prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/"
|
||||
},
|
||||
"keywords": [
|
||||
"css",
|
||||
"compress",
|
||||
"minify",
|
||||
"optimise",
|
||||
"optimisation",
|
||||
"postcss",
|
||||
"postcss-plugin"
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"cosmiconfig": "^5.0.0",
|
||||
"cssnano-preset-default": "^4.0.8",
|
||||
"is-resolvable": "^1.0.0",
|
||||
"postcss": "^7.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"array-to-sentence": "^2.0.0",
|
||||
"babel-cli": "^6.0.0",
|
||||
"babel-core": "^6.0.0",
|
||||
"babel-loader": "^7.0.0",
|
||||
"cross-env": "^5.0.0",
|
||||
"cssnano-preset-advanced": "^4.0.7",
|
||||
"postcss-font-magician": "^2.0.0",
|
||||
"webpack": "^2.0.0",
|
||||
"webpack-bundle-size-analyzer": "^2.0.0"
|
||||
},
|
||||
"homepage": "https://github.com/cssnano/cssnano",
|
||||
"author": {
|
||||
"name": "Ben Briggs",
|
||||
"email": "beneb.info@gmail.com",
|
||||
"url": "http://beneb.info"
|
||||
},
|
||||
"repository": "cssnano/cssnano",
|
||||
"files": [
|
||||
"dist",
|
||||
"LICENSE-MIT",
|
||||
"quickstart.js"
|
||||
],
|
||||
"tonicExampleFilename": "quickstart.js",
|
||||
"bugs": {
|
||||
"url": "https://github.com/cssnano/cssnano/issues"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
}
|
||||
Generated
Vendored
+47
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* This example targets Node 4 and up.
|
||||
*/
|
||||
|
||||
const cssnano = require('cssnano');
|
||||
|
||||
/*
|
||||
* Add your CSS code here.
|
||||
*/
|
||||
|
||||
const css = `
|
||||
h1 {
|
||||
color: #ff0000;
|
||||
font-weight: bold;
|
||||
}
|
||||
`;
|
||||
|
||||
/*
|
||||
* Add any PostCSS options here. For example to enable sourcemaps, see:
|
||||
* https://github.com/postcss/postcss/blob/master/site/source-maps.md
|
||||
*
|
||||
* Or for an inline sourcemap, uncomment the options below.
|
||||
*/
|
||||
|
||||
const postcssOpts = {
|
||||
// from: 'app.css',
|
||||
// to: 'app.min.css',
|
||||
// map: {inline: true},
|
||||
};
|
||||
|
||||
/*
|
||||
* Add your choice of preset. Note that for any value other
|
||||
* than 'default', you will need to install the appropriate
|
||||
* preset separately.
|
||||
*/
|
||||
|
||||
const cssnanoOpts = {
|
||||
preset: 'default',
|
||||
};
|
||||
|
||||
/*
|
||||
* Compress the CSS asynchronously and log it to the console.
|
||||
*/
|
||||
|
||||
cssnano.process(css, postcssOpts, cssnanoOpts).then(result => {
|
||||
console.log(result.css);
|
||||
});
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
Generated
Vendored
+23
@@ -0,0 +1,23 @@
|
||||
# picocolors
|
||||
|
||||
npm install picocolors
|
||||
|
||||
A tinier and faster alternative to [nanocolors](https://github.com/ai/nanocolors). Andrey, are you even trying?
|
||||
|
||||
```javascript
|
||||
import pc from "picocolors";
|
||||
|
||||
console.log(pc.green(`How are ${pc.italic(`you`)} doing?`));
|
||||
```
|
||||
|
||||
- Up to [2x faster and 2x smaller](#benchmarks) than alternatives
|
||||
- 3x faster and 10x smaller than `chalk`
|
||||
- [TypeScript](https://www.typescriptlang.org/) support
|
||||
- [`NO_COLOR`](https://no-color.org/) friendly
|
||||
- Node.js v6+ & browsers support
|
||||
- The same API, but faster, much faster
|
||||
- No `String.prototype` modifications (anyone still doing it?)
|
||||
- No dependencies and the smallest `node_modules` footprint
|
||||
|
||||
## Docs
|
||||
Read **[full docs](https://github.com/alexeyraspopov/picocolors#readme)** on GitHub.
|
||||
Generated
Vendored
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "picocolors",
|
||||
"version": "0.2.1",
|
||||
"main": "./picocolors.js",
|
||||
"types": "./picocolors.d.ts",
|
||||
"browser": {
|
||||
"./picocolors.js": "./picocolors.browser.js"
|
||||
},
|
||||
"sideEffects": false,
|
||||
"description": "The tiniest and the fastest coloring library ever",
|
||||
"files": [
|
||||
"picocolors.*",
|
||||
"types.ts"
|
||||
],
|
||||
"keywords": [
|
||||
"terminal",
|
||||
"colors",
|
||||
"formatting",
|
||||
"cli",
|
||||
"console"
|
||||
],
|
||||
"author": "Alexey Raspopov",
|
||||
"repository": "alexeyraspopov/picocolors",
|
||||
"license": "ISC"
|
||||
}
|
||||
Generated
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
var x=String;
|
||||
var create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};
|
||||
module.exports=create();
|
||||
module.exports.createColors = create;
|
||||
Generated
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
import { Colors } from "./types"
|
||||
|
||||
declare const picocolors: Colors & { createColors: (enabled: boolean) => Colors }
|
||||
|
||||
export = picocolors
|
||||
Generated
Vendored
+60
@@ -0,0 +1,60 @@
|
||||
let tty = require("tty")
|
||||
|
||||
let isColorSupported =
|
||||
!("NO_COLOR" in process.env || process.argv.includes("--no-color")) &&
|
||||
("FORCE_COLOR" in process.env ||
|
||||
process.argv.includes("--color") ||
|
||||
process.platform === "win32" ||
|
||||
(tty.isatty(1) && process.env.TERM !== "dumb") ||
|
||||
"CI" in process.env)
|
||||
|
||||
function formatter(open, close, replace = open) {
|
||||
return (input) => {
|
||||
let string = "" + input
|
||||
let index = string.indexOf(close, open.length)
|
||||
return !~index
|
||||
? open + string + close
|
||||
: open + replaceClose(string, close, replace, index) + close
|
||||
}
|
||||
}
|
||||
|
||||
function replaceClose(string, close, replace, index) {
|
||||
let start = string.substring(0, index) + replace
|
||||
let end = string.substring(index + close.length)
|
||||
let nextIndex = end.indexOf(close)
|
||||
return !~nextIndex ? start + end : start + replaceClose(end, close, replace, nextIndex)
|
||||
}
|
||||
|
||||
function createColors(enabled = isColorSupported) {
|
||||
return {
|
||||
isColorSupported: enabled,
|
||||
reset: enabled ? (s) => `\x1b[0m${s}\x1b[0m` : String,
|
||||
bold: enabled ? formatter("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m") : String,
|
||||
dim: enabled ? formatter("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m") : String,
|
||||
italic: enabled ? formatter("\x1b[3m", "\x1b[23m") : String,
|
||||
underline: enabled ? formatter("\x1b[4m", "\x1b[24m") : String,
|
||||
inverse: enabled ? formatter("\x1b[7m", "\x1b[27m") : String,
|
||||
hidden: enabled ? formatter("\x1b[8m", "\x1b[28m") : String,
|
||||
strikethrough: enabled ? formatter("\x1b[9m", "\x1b[29m") : String,
|
||||
black: enabled ? formatter("\x1b[30m", "\x1b[39m") : String,
|
||||
red: enabled ? formatter("\x1b[31m", "\x1b[39m") : String,
|
||||
green: enabled ? formatter("\x1b[32m", "\x1b[39m") : String,
|
||||
yellow: enabled ? formatter("\x1b[33m", "\x1b[39m") : String,
|
||||
blue: enabled ? formatter("\x1b[34m", "\x1b[39m") : String,
|
||||
magenta: enabled ? formatter("\x1b[35m", "\x1b[39m") : String,
|
||||
cyan: enabled ? formatter("\x1b[36m", "\x1b[39m") : String,
|
||||
white: enabled ? formatter("\x1b[37m", "\x1b[39m") : String,
|
||||
gray: enabled ? formatter("\x1b[90m", "\x1b[39m") : String,
|
||||
bgBlack: enabled ? formatter("\x1b[40m", "\x1b[49m") : String,
|
||||
bgRed: enabled ? formatter("\x1b[41m", "\x1b[49m") : String,
|
||||
bgGreen: enabled ? formatter("\x1b[42m", "\x1b[49m") : String,
|
||||
bgYellow: enabled ? formatter("\x1b[43m", "\x1b[49m") : String,
|
||||
bgBlue: enabled ? formatter("\x1b[44m", "\x1b[49m") : String,
|
||||
bgMagenta: enabled ? formatter("\x1b[45m", "\x1b[49m") : String,
|
||||
bgCyan: enabled ? formatter("\x1b[46m", "\x1b[49m") : String,
|
||||
bgWhite: enabled ? formatter("\x1b[47m", "\x1b[49m") : String,
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = createColors()
|
||||
module.exports.createColors = createColors
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
export type Formatter = (input: string | number | null | undefined) => string
|
||||
|
||||
export interface Colors {
|
||||
isColorSupported: boolean
|
||||
reset: Formatter
|
||||
bold: Formatter
|
||||
dim: Formatter
|
||||
italic: Formatter
|
||||
underline: Formatter
|
||||
inverse: Formatter
|
||||
hidden: Formatter
|
||||
strikethrough: Formatter
|
||||
black: Formatter
|
||||
red: Formatter
|
||||
green: Formatter
|
||||
yellow: Formatter
|
||||
blue: Formatter
|
||||
magenta: Formatter
|
||||
cyan: Formatter
|
||||
white: Formatter
|
||||
gray: Formatter
|
||||
bgBlack: Formatter
|
||||
bgRed: Formatter
|
||||
bgGreen: Formatter
|
||||
bgYellow: Formatter
|
||||
bgBlue: Formatter
|
||||
bgMagenta: Formatter
|
||||
bgCyan: Formatter
|
||||
bgWhite: Formatter
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright 2013 Andrey Sitnik <andrey@sitnik.ru>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
# PostCSS [![Gitter][chat-img]][chat]
|
||||
|
||||
<img align="right" width="95" height="95"
|
||||
alt="Philosopher’s stone, logo of PostCSS"
|
||||
src="http://postcss.github.io/postcss/logo.svg">
|
||||
|
||||
[chat-img]: https://img.shields.io/badge/Gitter-Join_the_PostCSS_chat-brightgreen.svg
|
||||
[chat]: https://gitter.im/postcss/postcss
|
||||
|
||||
PostCSS is a tool for transforming styles with JS plugins.
|
||||
These plugins can lint your CSS, support variables and mixins,
|
||||
transpile future CSS syntax, inline images, and more.
|
||||
|
||||
PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba,
|
||||
and JetBrains. The [Autoprefixer] PostCSS plugin is one of the most popular
|
||||
CSS processors.
|
||||
|
||||
PostCSS takes a CSS file and provides an API to analyze and modify its rules
|
||||
(by transforming them into an [Abstract Syntax Tree]).
|
||||
This API can then be used by [plugins] to do a lot of useful things,
|
||||
e.g. to find errors automatically insert vendor prefixes.
|
||||
|
||||
**Support / Discussion:** [Gitter](https://gitter.im/postcss/postcss)<br>
|
||||
**Twitter account:** [@postcss](https://twitter.com/postcss)<br>
|
||||
**VK.com page:** [postcss](https://vk.com/postcss)<br>
|
||||
**中文翻译**: [`README-cn.md`](./README-cn.md)
|
||||
|
||||
For PostCSS commercial support (consulting, improving the front-end culture
|
||||
of your company, PostCSS plugins), contact [Evil Martians]
|
||||
at <surrender@evilmartians.com>.
|
||||
|
||||
[Abstract Syntax Tree]: https://en.wikipedia.org/wiki/Abstract_syntax_tree
|
||||
[Evil Martians]: https://evilmartians.com/?utm_source=postcss
|
||||
[Autoprefixer]: https://github.com/postcss/autoprefixer
|
||||
[plugins]: https://github.com/postcss/postcss#plugins
|
||||
|
||||
<a href="https://evilmartians.com/?utm_source=postcss">
|
||||
<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
|
||||
alt="Sponsored by Evil Martians" width="236" height="54">
|
||||
</a>
|
||||
|
||||
## Docs
|
||||
Read **[full docs](https://github.com/postcss/postcss#readme)** on GitHub.
|
||||
Generated
Vendored
+127
@@ -0,0 +1,127 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _container = _interopRequireDefault(require("./container"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
|
||||
|
||||
/**
|
||||
* Represents an at-rule.
|
||||
*
|
||||
* If it’s followed in the CSS by a {} block, this node will have
|
||||
* a nodes property representing its children.
|
||||
*
|
||||
* @extends Container
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('@charset "UTF-8"; @media print {}')
|
||||
*
|
||||
* const charset = root.first
|
||||
* charset.type //=> 'atrule'
|
||||
* charset.nodes //=> undefined
|
||||
*
|
||||
* const media = root.last
|
||||
* media.nodes //=> []
|
||||
*/
|
||||
var AtRule = /*#__PURE__*/function (_Container) {
|
||||
_inheritsLoose(AtRule, _Container);
|
||||
|
||||
function AtRule(defaults) {
|
||||
var _this;
|
||||
|
||||
_this = _Container.call(this, defaults) || this;
|
||||
_this.type = 'atrule';
|
||||
return _this;
|
||||
}
|
||||
|
||||
var _proto = AtRule.prototype;
|
||||
|
||||
_proto.append = function append() {
|
||||
var _Container$prototype$;
|
||||
|
||||
if (!this.nodes) this.nodes = [];
|
||||
|
||||
for (var _len = arguments.length, children = new Array(_len), _key = 0; _key < _len; _key++) {
|
||||
children[_key] = arguments[_key];
|
||||
}
|
||||
|
||||
return (_Container$prototype$ = _Container.prototype.append).call.apply(_Container$prototype$, [this].concat(children));
|
||||
};
|
||||
|
||||
_proto.prepend = function prepend() {
|
||||
var _Container$prototype$2;
|
||||
|
||||
if (!this.nodes) this.nodes = [];
|
||||
|
||||
for (var _len2 = arguments.length, children = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
||||
children[_key2] = arguments[_key2];
|
||||
}
|
||||
|
||||
return (_Container$prototype$2 = _Container.prototype.prepend).call.apply(_Container$prototype$2, [this].concat(children));
|
||||
}
|
||||
/**
|
||||
* @memberof AtRule#
|
||||
* @member {string} name The at-rule’s name immediately follows the `@`.
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('@media print {}')
|
||||
* media.name //=> 'media'
|
||||
* const media = root.first
|
||||
*/
|
||||
|
||||
/**
|
||||
* @memberof AtRule#
|
||||
* @member {string} params The at-rule’s parameters, the values
|
||||
* that follow the at-rule’s name but precede
|
||||
* any {} block.
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('@media print, screen {}')
|
||||
* const media = root.first
|
||||
* media.params //=> 'print, screen'
|
||||
*/
|
||||
|
||||
/**
|
||||
* @memberof AtRule#
|
||||
* @member {object} raws Information to generate byte-to-byte equal
|
||||
* node string as it was in the origin input.
|
||||
*
|
||||
* Every parser saves its own properties,
|
||||
* but the default CSS parser uses:
|
||||
*
|
||||
* * `before`: the space symbols before the node. It also stores `*`
|
||||
* and `_` symbols before the declaration (IE hack).
|
||||
* * `after`: the space symbols after the last child of the node
|
||||
* to the end of the node.
|
||||
* * `between`: the symbols between the property and value
|
||||
* for declarations, selector and `{` for rules, or last parameter
|
||||
* and `{` for at-rules.
|
||||
* * `semicolon`: contains true if the last child has
|
||||
* an (optional) semicolon.
|
||||
* * `afterName`: the space between the at-rule name and its parameters.
|
||||
*
|
||||
* PostCSS cleans at-rule parameters from comments and extra spaces,
|
||||
* but it stores origin content in raws properties.
|
||||
* As such, if you don’t change a declaration’s value,
|
||||
* PostCSS will use the raw value with comments.
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse(' @media\nprint {\n}')
|
||||
* root.first.first.raws //=> { before: ' ',
|
||||
* // between: ' ',
|
||||
* // afterName: '\n',
|
||||
* // after: '\n' }
|
||||
*/
|
||||
;
|
||||
|
||||
return AtRule;
|
||||
}(_container.default);
|
||||
|
||||
var _default = AtRule;
|
||||
exports.default = _default;
|
||||
module.exports = exports.default;
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF0LXJ1bGUuZXM2Il0sIm5hbWVzIjpbIkF0UnVsZSIsImRlZmF1bHRzIiwidHlwZSIsImFwcGVuZCIsIm5vZGVzIiwiY2hpbGRyZW4iLCJwcmVwZW5kIiwiQ29udGFpbmVyIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBa0JNQSxNOzs7QUFDSixrQkFBYUMsUUFBYixFQUF1QjtBQUFBOztBQUNyQixrQ0FBTUEsUUFBTjtBQUNBLFVBQUtDLElBQUwsR0FBWSxRQUFaO0FBRnFCO0FBR3RCOzs7O1NBRURDLE0sR0FBQSxrQkFBcUI7QUFBQTs7QUFDbkIsUUFBSSxDQUFDLEtBQUtDLEtBQVYsRUFBaUIsS0FBS0EsS0FBTCxHQUFhLEVBQWI7O0FBREUsc0NBQVZDLFFBQVU7QUFBVkEsTUFBQUEsUUFBVTtBQUFBOztBQUVuQix5REFBYUYsTUFBYixrREFBdUJFLFFBQXZCO0FBQ0QsRzs7U0FFREMsTyxHQUFBLG1CQUFzQjtBQUFBOztBQUNwQixRQUFJLENBQUMsS0FBS0YsS0FBVixFQUFpQixLQUFLQSxLQUFMLEdBQWEsRUFBYjs7QUFERyx1Q0FBVkMsUUFBVTtBQUFWQSxNQUFBQSxRQUFVO0FBQUE7O0FBRXBCLDBEQUFhQyxPQUFiLG1EQUF3QkQsUUFBeEI7QUFDRDtBQUVEOzs7Ozs7Ozs7O0FBVUE7Ozs7Ozs7Ozs7OztBQVlBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBdENtQkUsa0I7O2VBdUVOUCxNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbnRhaW5lciBmcm9tICcuL2NvbnRhaW5lcidcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGF0LXJ1bGUuXG4gKlxuICogSWYgaXTigJlzIGZvbGxvd2VkIGluIHRoZSBDU1MgYnkgYSB7fSBibG9jaywgdGhpcyBub2RlIHdpbGwgaGF2ZVxuICogYSBub2RlcyBwcm9wZXJ0eSByZXByZXNlbnRpbmcgaXRzIGNoaWxkcmVuLlxuICpcbiAqIEBleHRlbmRzIENvbnRhaW5lclxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZSgnQGNoYXJzZXQgXCJVVEYtOFwiOyBAbWVkaWEgcHJpbnQge30nKVxuICpcbiAqIGNvbnN0IGNoYXJzZXQgPSByb290LmZpcnN0XG4gKiBjaGFyc2V0LnR5cGUgIC8vPT4gJ2F0cnVsZSdcbiAqIGNoYXJzZXQubm9kZXMgLy89PiB1bmRlZmluZWRcbiAqXG4gKiBjb25zdCBtZWRpYSA9IHJvb3QubGFzdFxuICogbWVkaWEubm9kZXMgICAvLz0+IFtdXG4gKi9cbmNsYXNzIEF0UnVsZSBleHRlbmRzIENvbnRhaW5lciB7XG4gIGNvbnN0cnVjdG9yIChkZWZhdWx0cykge1xuICAgIHN1cGVyKGRlZmF1bHRzKVxuICAgIHRoaXMudHlwZSA9ICdhdHJ1bGUnXG4gIH1cblxuICBhcHBlbmQgKC4uLmNoaWxkcmVuKSB7XG4gICAgaWYgKCF0aGlzLm5vZGVzKSB0aGlzLm5vZGVzID0gW11cbiAgICByZXR1cm4gc3VwZXIuYXBwZW5kKC4uLmNoaWxkcmVuKVxuICB9XG5cbiAgcHJlcGVuZCAoLi4uY2hpbGRyZW4pIHtcbiAgICBpZiAoIXRoaXMubm9kZXMpIHRoaXMubm9kZXMgPSBbXVxuICAgIHJldHVybiBzdXBlci5wcmVwZW5kKC4uLmNoaWxkcmVuKVxuICB9XG5cbiAgLyoqXG4gICAqIEBtZW1iZXJvZiBBdFJ1bGUjXG4gICAqIEBtZW1iZXIge3N0cmluZ30gbmFtZSBUaGUgYXQtcnVsZeKAmXMgbmFtZSBpbW1lZGlhdGVseSBmb2xsb3dzIHRoZSBgQGAuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJvb3QgID0gcG9zdGNzcy5wYXJzZSgnQG1lZGlhIHByaW50IHt9JylcbiAgICogbWVkaWEubmFtZSAvLz0+ICdtZWRpYSdcbiAgICogY29uc3QgbWVkaWEgPSByb290LmZpcnN0XG4gICAqL1xuXG4gIC8qKlxuICAgKiBAbWVtYmVyb2YgQXRSdWxlI1xuICAgKiBAbWVtYmVyIHtzdHJpbmd9IHBhcmFtcyBUaGUgYXQtcnVsZeKAmXMgcGFyYW1ldGVycywgdGhlIHZhbHVlc1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGZvbGxvdyB0aGUgYXQtcnVsZeKAmXMgbmFtZSBidXQgcHJlY2VkZVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBhbnkge30gYmxvY2suXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJvb3QgID0gcG9zdGNzcy5wYXJzZSgnQG1lZGlhIHByaW50LCBzY3JlZW4ge30nKVxuICAgKiBjb25zdCBtZWRpYSA9IHJvb3QuZmlyc3RcbiAgICogbWVkaWEucGFyYW1zIC8vPT4gJ3ByaW50LCBzY3JlZW4nXG4gICAqL1xuXG4gIC8qKlxuICAgKiBAbWVtYmVyb2YgQXRSdWxlI1xuICAgKiBAbWVtYmVyIHtvYmplY3R9IHJhd3MgSW5mb3JtYXRpb24gdG8gZ2VuZXJhdGUgYnl0ZS10by1ieXRlIGVxdWFsXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSBzdHJpbmcgYXMgaXQgd2FzIGluIHRoZSBvcmlnaW4gaW5wdXQuXG4gICAqXG4gICAqIEV2ZXJ5IHBhcnNlciBzYXZlcyBpdHMgb3duIHByb3BlcnRpZXMsXG4gICAqIGJ1dCB0aGUgZGVmYXVsdCBDU1MgcGFyc2VyIHVzZXM6XG4gICAqXG4gICAqICogYGJlZm9yZWA6IHRoZSBzcGFjZSBzeW1ib2xzIGJlZm9yZSB0aGUgbm9kZS4gSXQgYWxzbyBzdG9yZXMgYCpgXG4gICAqICAgYW5kIGBfYCBzeW1ib2xzIGJlZm9yZSB0aGUgZGVjbGFyYXRpb24gKElFIGhhY2spLlxuICAgKiAqIGBhZnRlcmA6IHRoZSBzcGFjZSBzeW1ib2xzIGFmdGVyIHRoZSBsYXN0IGNoaWxkIG9mIHRoZSBub2RlXG4gICAqICAgdG8gdGhlIGVuZCBvZiB0aGUgbm9kZS5cbiAgICogKiBgYmV0d2VlbmA6IHRoZSBzeW1ib2xzIGJldHdlZW4gdGhlIHByb3BlcnR5IGFuZCB2YWx1ZVxuICAgKiAgIGZvciBkZWNsYXJhdGlvbnMsIHNlbGVjdG9yIGFuZCBge2AgZm9yIHJ1bGVzLCBvciBsYXN0IHBhcmFtZXRlclxuICAgKiAgIGFuZCBge2AgZm9yIGF0LXJ1bGVzLlxuICAgKiAqIGBzZW1pY29sb25gOiBjb250YWlucyB0cnVlIGlmIHRoZSBsYXN0IGNoaWxkIGhhc1xuICAgKiAgIGFuIChvcHRpb25hbCkgc2VtaWNvbG9uLlxuICAgKiAqIGBhZnRlck5hbWVgOiB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgYXQtcnVsZSBuYW1lIGFuZCBpdHMgcGFyYW1ldGVycy5cbiAgICpcbiAgICogUG9zdENTUyBjbGVhbnMgYXQtcnVsZSBwYXJhbWV0ZXJzIGZyb20gY29tbWVudHMgYW5kIGV4dHJhIHNwYWNlcyxcbiAgICogYnV0IGl0IHN0b3JlcyBvcmlnaW4gY29udGVudCBpbiByYXdzIHByb3BlcnRpZXMuXG4gICAqIEFzIHN1Y2gsIGlmIHlvdSBkb27igJl0IGNoYW5nZSBhIGRlY2xhcmF0aW9u4oCZcyB2YWx1ZSxcbiAgICogUG9zdENTUyB3aWxsIHVzZSB0aGUgcmF3IHZhbHVlIHdpdGggY29tbWVudHMuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJvb3QgPSBwb3N0Y3NzLnBhcnNlKCcgIEBtZWRpYVxcbnByaW50IHtcXG59JylcbiAgICogcm9vdC5maXJzdC5maXJzdC5yYXdzIC8vPT4geyBiZWZvcmU6ICcgICcsXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgYmV0d2VlbjogJyAnLFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGFmdGVyTmFtZTogJ1xcbicsXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgYWZ0ZXI6ICdcXG4nIH1cbiAgICovXG59XG5cbmV4cG9ydCBkZWZhdWx0IEF0UnVsZVxuIl0sImZpbGUiOiJhdC1ydWxlLmpzIn0=
|
||||
Generated
Vendored
+55
@@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _node = _interopRequireDefault(require("./node"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
|
||||
|
||||
/**
|
||||
* Represents a comment between declarations or statements (rule and at-rules).
|
||||
*
|
||||
* Comments inside selectors, at-rule parameters, or declaration values
|
||||
* will be stored in the `raws` properties explained above.
|
||||
*
|
||||
* @extends Node
|
||||
*/
|
||||
var Comment = /*#__PURE__*/function (_Node) {
|
||||
_inheritsLoose(Comment, _Node);
|
||||
|
||||
function Comment(defaults) {
|
||||
var _this;
|
||||
|
||||
_this = _Node.call(this, defaults) || this;
|
||||
_this.type = 'comment';
|
||||
return _this;
|
||||
}
|
||||
/**
|
||||
* @memberof Comment#
|
||||
* @member {string} text The comment’s text.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @memberof Comment#
|
||||
* @member {object} raws Information to generate byte-to-byte equal
|
||||
* node string as it was in the origin input.
|
||||
*
|
||||
* Every parser saves its own properties,
|
||||
* but the default CSS parser uses:
|
||||
*
|
||||
* * `before`: the space symbols before the node.
|
||||
* * `left`: the space symbols between `/*` and the comment’s text.
|
||||
* * `right`: the space symbols between the comment’s text.
|
||||
*/
|
||||
|
||||
|
||||
return Comment;
|
||||
}(_node.default);
|
||||
|
||||
var _default = Comment;
|
||||
exports.default = _default;
|
||||
module.exports = exports.default;
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1lbnQuZXM2Il0sIm5hbWVzIjpbIkNvbW1lbnQiLCJkZWZhdWx0cyIsInR5cGUiLCJOb2RlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7QUFFQTs7Ozs7Ozs7SUFRTUEsTzs7O0FBQ0osbUJBQWFDLFFBQWIsRUFBdUI7QUFBQTs7QUFDckIsNkJBQU1BLFFBQU47QUFDQSxVQUFLQyxJQUFMLEdBQVksU0FBWjtBQUZxQjtBQUd0QjtBQUVEOzs7OztBQUtBOzs7Ozs7Ozs7Ozs7Ozs7RUFYb0JDLGE7O2VBeUJQSCxPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE5vZGUgZnJvbSAnLi9ub2RlJ1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb21tZW50IGJldHdlZW4gZGVjbGFyYXRpb25zIG9yIHN0YXRlbWVudHMgKHJ1bGUgYW5kIGF0LXJ1bGVzKS5cbiAqXG4gKiBDb21tZW50cyBpbnNpZGUgc2VsZWN0b3JzLCBhdC1ydWxlIHBhcmFtZXRlcnMsIG9yIGRlY2xhcmF0aW9uIHZhbHVlc1xuICogd2lsbCBiZSBzdG9yZWQgaW4gdGhlIGByYXdzYCBwcm9wZXJ0aWVzIGV4cGxhaW5lZCBhYm92ZS5cbiAqXG4gKiBAZXh0ZW5kcyBOb2RlXG4gKi9cbmNsYXNzIENvbW1lbnQgZXh0ZW5kcyBOb2RlIHtcbiAgY29uc3RydWN0b3IgKGRlZmF1bHRzKSB7XG4gICAgc3VwZXIoZGVmYXVsdHMpXG4gICAgdGhpcy50eXBlID0gJ2NvbW1lbnQnXG4gIH1cblxuICAvKipcbiAgICogQG1lbWJlcm9mIENvbW1lbnQjXG4gICAqIEBtZW1iZXIge3N0cmluZ30gdGV4dCBUaGUgY29tbWVudOKAmXMgdGV4dC5cbiAgICovXG5cbiAgLyoqXG4gICAqIEBtZW1iZXJvZiBDb21tZW50I1xuICAgKiBAbWVtYmVyIHtvYmplY3R9IHJhd3MgSW5mb3JtYXRpb24gdG8gZ2VuZXJhdGUgYnl0ZS10by1ieXRlIGVxdWFsXG4gICAqICAgICAgICAgICAgICAgICAgICAgICBub2RlIHN0cmluZyBhcyBpdCB3YXMgaW4gdGhlIG9yaWdpbiBpbnB1dC5cbiAgICpcbiAgICogRXZlcnkgcGFyc2VyIHNhdmVzIGl0cyBvd24gcHJvcGVydGllcyxcbiAgICogYnV0IHRoZSBkZWZhdWx0IENTUyBwYXJzZXIgdXNlczpcbiAgICpcbiAgICogKiBgYmVmb3JlYDogdGhlIHNwYWNlIHN5bWJvbHMgYmVmb3JlIHRoZSBub2RlLlxuICAgKiAqIGBsZWZ0YDogdGhlIHNwYWNlIHN5bWJvbHMgYmV0d2VlbiBgLypgIGFuZCB0aGUgY29tbWVudOKAmXMgdGV4dC5cbiAgICogKiBgcmlnaHRgOiB0aGUgc3BhY2Ugc3ltYm9scyBiZXR3ZWVuIHRoZSBjb21tZW504oCZcyB0ZXh0LlxuICAgKi9cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29tbWVudFxuIl0sImZpbGUiOiJjb21tZW50LmpzIn0=
|
||||
Generated
Vendored
+774
File diff suppressed because one or more lines are too long
Generated
Vendored
+296
File diff suppressed because one or more lines are too long
Generated
Vendored
+96
@@ -0,0 +1,96 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _node = _interopRequireDefault(require("./node"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
|
||||
|
||||
/**
|
||||
* Represents a CSS declaration.
|
||||
*
|
||||
* @extends Node
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('a { color: black }')
|
||||
* const decl = root.first.first
|
||||
* decl.type //=> 'decl'
|
||||
* decl.toString() //=> ' color: black'
|
||||
*/
|
||||
var Declaration = /*#__PURE__*/function (_Node) {
|
||||
_inheritsLoose(Declaration, _Node);
|
||||
|
||||
function Declaration(defaults) {
|
||||
var _this;
|
||||
|
||||
_this = _Node.call(this, defaults) || this;
|
||||
_this.type = 'decl';
|
||||
return _this;
|
||||
}
|
||||
/**
|
||||
* @memberof Declaration#
|
||||
* @member {string} prop The declaration’s property name.
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('a { color: black }')
|
||||
* const decl = root.first.first
|
||||
* decl.prop //=> 'color'
|
||||
*/
|
||||
|
||||
/**
|
||||
* @memberof Declaration#
|
||||
* @member {string} value The declaration’s value.
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('a { color: black }')
|
||||
* const decl = root.first.first
|
||||
* decl.value //=> 'black'
|
||||
*/
|
||||
|
||||
/**
|
||||
* @memberof Declaration#
|
||||
* @member {boolean} important `true` if the declaration
|
||||
* has an !important annotation.
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('a { color: black !important; color: red }')
|
||||
* root.first.first.important //=> true
|
||||
* root.first.last.important //=> undefined
|
||||
*/
|
||||
|
||||
/**
|
||||
* @memberof Declaration#
|
||||
* @member {object} raws Information to generate byte-to-byte equal
|
||||
* node string as it was in the origin input.
|
||||
*
|
||||
* Every parser saves its own properties,
|
||||
* but the default CSS parser uses:
|
||||
*
|
||||
* * `before`: the space symbols before the node. It also stores `*`
|
||||
* and `_` symbols before the declaration (IE hack).
|
||||
* * `between`: the symbols between the property and value
|
||||
* for declarations.
|
||||
* * `important`: the content of the important statement,
|
||||
* if it is not just `!important`.
|
||||
*
|
||||
* PostCSS cleans declaration from comments and extra spaces,
|
||||
* but it stores origin content in raws properties.
|
||||
* As such, if you don’t change a declaration’s value,
|
||||
* PostCSS will use the raw value with comments.
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('a {\n color:black\n}')
|
||||
* root.first.first.raws //=> { before: '\n ', between: ':' }
|
||||
*/
|
||||
|
||||
|
||||
return Declaration;
|
||||
}(_node.default);
|
||||
|
||||
var _default = Declaration;
|
||||
exports.default = _default;
|
||||
module.exports = exports.default;
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRlY2xhcmF0aW9uLmVzNiJdLCJuYW1lcyI6WyJEZWNsYXJhdGlvbiIsImRlZmF1bHRzIiwidHlwZSIsIk5vZGUiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7OztBQUVBOzs7Ozs7Ozs7OztJQVdNQSxXOzs7QUFDSix1QkFBYUMsUUFBYixFQUF1QjtBQUFBOztBQUNyQiw2QkFBTUEsUUFBTjtBQUNBLFVBQUtDLElBQUwsR0FBWSxNQUFaO0FBRnFCO0FBR3RCO0FBRUQ7Ozs7Ozs7Ozs7QUFVQTs7Ozs7Ozs7OztBQVVBOzs7Ozs7Ozs7OztBQVdBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFyQ3dCQyxhOztlQStEWEgsVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBOb2RlIGZyb20gJy4vbm9kZSdcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgQ1NTIGRlY2xhcmF0aW9uLlxuICpcbiAqIEBleHRlbmRzIE5vZGVcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgcm9vdCA9IHBvc3Rjc3MucGFyc2UoJ2EgeyBjb2xvcjogYmxhY2sgfScpXG4gKiBjb25zdCBkZWNsID0gcm9vdC5maXJzdC5maXJzdFxuICogZGVjbC50eXBlICAgICAgIC8vPT4gJ2RlY2wnXG4gKiBkZWNsLnRvU3RyaW5nKCkgLy89PiAnIGNvbG9yOiBibGFjaydcbiAqL1xuY2xhc3MgRGVjbGFyYXRpb24gZXh0ZW5kcyBOb2RlIHtcbiAgY29uc3RydWN0b3IgKGRlZmF1bHRzKSB7XG4gICAgc3VwZXIoZGVmYXVsdHMpXG4gICAgdGhpcy50eXBlID0gJ2RlY2wnXG4gIH1cblxuICAvKipcbiAgICogQG1lbWJlcm9mIERlY2xhcmF0aW9uI1xuICAgKiBAbWVtYmVyIHtzdHJpbmd9IHByb3AgVGhlIGRlY2xhcmF0aW9u4oCZcyBwcm9wZXJ0eSBuYW1lLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZSgnYSB7IGNvbG9yOiBibGFjayB9JylcbiAgICogY29uc3QgZGVjbCA9IHJvb3QuZmlyc3QuZmlyc3RcbiAgICogZGVjbC5wcm9wIC8vPT4gJ2NvbG9yJ1xuICAgKi9cblxuICAvKipcbiAgICogQG1lbWJlcm9mIERlY2xhcmF0aW9uI1xuICAgKiBAbWVtYmVyIHtzdHJpbmd9IHZhbHVlIFRoZSBkZWNsYXJhdGlvbuKAmXMgdmFsdWUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJvb3QgPSBwb3N0Y3NzLnBhcnNlKCdhIHsgY29sb3I6IGJsYWNrIH0nKVxuICAgKiBjb25zdCBkZWNsID0gcm9vdC5maXJzdC5maXJzdFxuICAgKiBkZWNsLnZhbHVlIC8vPT4gJ2JsYWNrJ1xuICAgKi9cblxuICAvKipcbiAgICogQG1lbWJlcm9mIERlY2xhcmF0aW9uI1xuICAgKiBAbWVtYmVyIHtib29sZWFufSBpbXBvcnRhbnQgYHRydWVgIGlmIHRoZSBkZWNsYXJhdGlvblxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzIGFuICFpbXBvcnRhbnQgYW5ub3RhdGlvbi5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3Qgcm9vdCA9IHBvc3Rjc3MucGFyc2UoJ2EgeyBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgY29sb3I6IHJlZCB9JylcbiAgICogcm9vdC5maXJzdC5maXJzdC5pbXBvcnRhbnQgLy89PiB0cnVlXG4gICAqIHJvb3QuZmlyc3QubGFzdC5pbXBvcnRhbnQgIC8vPT4gdW5kZWZpbmVkXG4gICAqL1xuXG4gIC8qKlxuICAgKiBAbWVtYmVyb2YgRGVjbGFyYXRpb24jXG4gICAqIEBtZW1iZXIge29iamVjdH0gcmF3cyBJbmZvcm1hdGlvbiB0byBnZW5lcmF0ZSBieXRlLXRvLWJ5dGUgZXF1YWxcbiAgICogICAgICAgICAgICAgICAgICAgICAgIG5vZGUgc3RyaW5nIGFzIGl0IHdhcyBpbiB0aGUgb3JpZ2luIGlucHV0LlxuICAgKlxuICAgKiBFdmVyeSBwYXJzZXIgc2F2ZXMgaXRzIG93biBwcm9wZXJ0aWVzLFxuICAgKiBidXQgdGhlIGRlZmF1bHQgQ1NTIHBhcnNlciB1c2VzOlxuICAgKlxuICAgKiAqIGBiZWZvcmVgOiB0aGUgc3BhY2Ugc3ltYm9scyBiZWZvcmUgdGhlIG5vZGUuIEl0IGFsc28gc3RvcmVzIGAqYFxuICAgKiAgIGFuZCBgX2Agc3ltYm9scyBiZWZvcmUgdGhlIGRlY2xhcmF0aW9uIChJRSBoYWNrKS5cbiAgICogKiBgYmV0d2VlbmA6IHRoZSBzeW1ib2xzIGJldHdlZW4gdGhlIHByb3BlcnR5IGFuZCB2YWx1ZVxuICAgKiAgIGZvciBkZWNsYXJhdGlvbnMuXG4gICAqICogYGltcG9ydGFudGA6IHRoZSBjb250ZW50IG9mIHRoZSBpbXBvcnRhbnQgc3RhdGVtZW50LFxuICAgKiAgIGlmIGl0IGlzIG5vdCBqdXN0IGAhaW1wb3J0YW50YC5cbiAgICpcbiAgICogUG9zdENTUyBjbGVhbnMgZGVjbGFyYXRpb24gZnJvbSBjb21tZW50cyBhbmQgZXh0cmEgc3BhY2VzLFxuICAgKiBidXQgaXQgc3RvcmVzIG9yaWdpbiBjb250ZW50IGluIHJhd3MgcHJvcGVydGllcy5cbiAgICogQXMgc3VjaCwgaWYgeW91IGRvbuKAmXQgY2hhbmdlIGEgZGVjbGFyYXRpb27igJlzIHZhbHVlLFxuICAgKiBQb3N0Q1NTIHdpbGwgdXNlIHRoZSByYXcgdmFsdWUgd2l0aCBjb21tZW50cy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3Qgcm9vdCA9IHBvc3Rjc3MucGFyc2UoJ2Ege1xcbiAgY29sb3I6YmxhY2tcXG59JylcbiAgICogcm9vdC5maXJzdC5maXJzdC5yYXdzIC8vPT4geyBiZWZvcmU6ICdcXG4gICcsIGJldHdlZW46ICc6JyB9XG4gICAqL1xufVxuXG5leHBvcnQgZGVmYXVsdCBEZWNsYXJhdGlvblxuIl0sImZpbGUiOiJkZWNsYXJhdGlvbi5qcyJ9
|
||||
Generated
Vendored
+214
File diff suppressed because one or more lines are too long
Generated
Vendored
+437
File diff suppressed because one or more lines are too long
+93
File diff suppressed because one or more lines are too long
Generated
Vendored
+347
File diff suppressed because one or more lines are too long
+606
File diff suppressed because one or more lines are too long
Generated
Vendored
+40
@@ -0,0 +1,40 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _parser = _interopRequireDefault(require("./parser"));
|
||||
|
||||
var _input = _interopRequireDefault(require("./input"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function parse(css, opts) {
|
||||
var input = new _input.default(css, opts);
|
||||
var parser = new _parser.default(input);
|
||||
|
||||
try {
|
||||
parser.parse();
|
||||
} catch (e) {
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
if (e.name === 'CssSyntaxError' && opts && opts.from) {
|
||||
if (/\.scss$/i.test(opts.from)) {
|
||||
e.message += '\nYou tried to parse SCSS with ' + 'the standard CSS parser; ' + 'try again with the postcss-scss parser';
|
||||
} else if (/\.sass/i.test(opts.from)) {
|
||||
e.message += '\nYou tried to parse Sass with ' + 'the standard CSS parser; ' + 'try again with the postcss-sass parser';
|
||||
} else if (/\.less$/i.test(opts.from)) {
|
||||
e.message += '\nYou tried to parse Less with ' + 'the standard CSS parser; ' + 'try again with the postcss-less parser';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
throw e;
|
||||
}
|
||||
|
||||
return parser.root;
|
||||
}
|
||||
|
||||
var _default = parse;
|
||||
exports.default = _default;
|
||||
module.exports = exports.default;
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnNlLmVzNiJdLCJuYW1lcyI6WyJwYXJzZSIsImNzcyIsIm9wdHMiLCJpbnB1dCIsIklucHV0IiwicGFyc2VyIiwiUGFyc2VyIiwiZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIm1lc3NhZ2UiLCJyb290Il0sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztBQUNBOzs7O0FBRUEsU0FBU0EsS0FBVCxDQUFnQkMsR0FBaEIsRUFBcUJDLElBQXJCLEVBQTJCO0FBQ3pCLE1BQUlDLEtBQUssR0FBRyxJQUFJQyxjQUFKLENBQVVILEdBQVYsRUFBZUMsSUFBZixDQUFaO0FBQ0EsTUFBSUcsTUFBTSxHQUFHLElBQUlDLGVBQUosQ0FBV0gsS0FBWCxDQUFiOztBQUNBLE1BQUk7QUFDRkUsSUFBQUEsTUFBTSxDQUFDTCxLQUFQO0FBQ0QsR0FGRCxDQUVFLE9BQU9PLENBQVAsRUFBVTtBQUNWLFFBQUlDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQTdCLEVBQTJDO0FBQ3pDLFVBQUlILENBQUMsQ0FBQ0ksSUFBRixLQUFXLGdCQUFYLElBQStCVCxJQUEvQixJQUF1Q0EsSUFBSSxDQUFDVSxJQUFoRCxFQUFzRDtBQUNwRCxZQUFJLFdBQVdDLElBQVgsQ0FBZ0JYLElBQUksQ0FBQ1UsSUFBckIsQ0FBSixFQUFnQztBQUM5QkwsVUFBQUEsQ0FBQyxDQUFDTyxPQUFGLElBQWEsb0NBQ0EsMkJBREEsR0FFQSx3Q0FGYjtBQUdELFNBSkQsTUFJTyxJQUFJLFVBQVVELElBQVYsQ0FBZVgsSUFBSSxDQUFDVSxJQUFwQixDQUFKLEVBQStCO0FBQ3BDTCxVQUFBQSxDQUFDLENBQUNPLE9BQUYsSUFBYSxvQ0FDQSwyQkFEQSxHQUVBLHdDQUZiO0FBR0QsU0FKTSxNQUlBLElBQUksV0FBV0QsSUFBWCxDQUFnQlgsSUFBSSxDQUFDVSxJQUFyQixDQUFKLEVBQWdDO0FBQ3JDTCxVQUFBQSxDQUFDLENBQUNPLE9BQUYsSUFBYSxvQ0FDQSwyQkFEQSxHQUVBLHdDQUZiO0FBR0Q7QUFDRjtBQUNGOztBQUNELFVBQU1QLENBQU47QUFDRDs7QUFFRCxTQUFPRixNQUFNLENBQUNVLElBQWQ7QUFDRDs7ZUFFY2YsSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYXJzZXIgZnJvbSAnLi9wYXJzZXInXG5pbXBvcnQgSW5wdXQgZnJvbSAnLi9pbnB1dCdcblxuZnVuY3Rpb24gcGFyc2UgKGNzcywgb3B0cykge1xuICBsZXQgaW5wdXQgPSBuZXcgSW5wdXQoY3NzLCBvcHRzKVxuICBsZXQgcGFyc2VyID0gbmV3IFBhcnNlcihpbnB1dClcbiAgdHJ5IHtcbiAgICBwYXJzZXIucGFyc2UoKVxuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChlLm5hbWUgPT09ICdDc3NTeW50YXhFcnJvcicgJiYgb3B0cyAmJiBvcHRzLmZyb20pIHtcbiAgICAgICAgaWYgKC9cXC5zY3NzJC9pLnRlc3Qob3B0cy5mcm9tKSkge1xuICAgICAgICAgIGUubWVzc2FnZSArPSAnXFxuWW91IHRyaWVkIHRvIHBhcnNlIFNDU1Mgd2l0aCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBzdGFuZGFyZCBDU1MgcGFyc2VyOyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgJ3RyeSBhZ2FpbiB3aXRoIHRoZSBwb3N0Y3NzLXNjc3MgcGFyc2VyJ1xuICAgICAgICB9IGVsc2UgaWYgKC9cXC5zYXNzL2kudGVzdChvcHRzLmZyb20pKSB7XG4gICAgICAgICAgZS5tZXNzYWdlICs9ICdcXG5Zb3UgdHJpZWQgdG8gcGFyc2UgU2FzcyB3aXRoICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAndGhlIHN0YW5kYXJkIENTUyBwYXJzZXI7ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAndHJ5IGFnYWluIHdpdGggdGhlIHBvc3Rjc3Mtc2FzcyBwYXJzZXInXG4gICAgICAgIH0gZWxzZSBpZiAoL1xcLmxlc3MkL2kudGVzdChvcHRzLmZyb20pKSB7XG4gICAgICAgICAgZS5tZXNzYWdlICs9ICdcXG5Zb3UgdHJpZWQgdG8gcGFyc2UgTGVzcyB3aXRoICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAndGhlIHN0YW5kYXJkIENTUyBwYXJzZXI7ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAndHJ5IGFnYWluIHdpdGggdGhlIHBvc3Rjc3MtbGVzcyBwYXJzZXInXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgZVxuICB9XG5cbiAgcmV0dXJuIHBhcnNlci5yb290XG59XG5cbmV4cG9ydCBkZWZhdWx0IHBhcnNlXG4iXSwiZmlsZSI6InBhcnNlLmpzIn0=
|
||||
Generated
Vendored
+609
File diff suppressed because one or more lines are too long
Generated
Vendored
+1283
File diff suppressed because it is too large
Load Diff
Generated
Vendored
+285
File diff suppressed because one or more lines are too long
Generated
Vendored
+172
File diff suppressed because one or more lines are too long
Generated
Vendored
+264
File diff suppressed because one or more lines are too long
Generated
Vendored
+213
File diff suppressed because one or more lines are too long
+122
File diff suppressed because one or more lines are too long
+116
@@ -0,0 +1,116 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _container = _interopRequireDefault(require("./container"));
|
||||
|
||||
var _list = _interopRequireDefault(require("./list"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||||
|
||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
||||
|
||||
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
|
||||
|
||||
/**
|
||||
* Represents a CSS rule: a selector followed by a declaration block.
|
||||
*
|
||||
* @extends Container
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('a{}')
|
||||
* const rule = root.first
|
||||
* rule.type //=> 'rule'
|
||||
* rule.toString() //=> 'a{}'
|
||||
*/
|
||||
var Rule = /*#__PURE__*/function (_Container) {
|
||||
_inheritsLoose(Rule, _Container);
|
||||
|
||||
function Rule(defaults) {
|
||||
var _this;
|
||||
|
||||
_this = _Container.call(this, defaults) || this;
|
||||
_this.type = 'rule';
|
||||
if (!_this.nodes) _this.nodes = [];
|
||||
return _this;
|
||||
}
|
||||
/**
|
||||
* An array containing the rule’s individual selectors.
|
||||
* Groups of selectors are split at commas.
|
||||
*
|
||||
* @type {string[]}
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('a, b { }')
|
||||
* const rule = root.first
|
||||
*
|
||||
* rule.selector //=> 'a, b'
|
||||
* rule.selectors //=> ['a', 'b']
|
||||
*
|
||||
* rule.selectors = ['a', 'strong']
|
||||
* rule.selector //=> 'a, strong'
|
||||
*/
|
||||
|
||||
|
||||
_createClass(Rule, [{
|
||||
key: "selectors",
|
||||
get: function get() {
|
||||
return _list.default.comma(this.selector);
|
||||
},
|
||||
set: function set(values) {
|
||||
var match = this.selector ? this.selector.match(/,\s*/) : null;
|
||||
var sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen');
|
||||
this.selector = values.join(sep);
|
||||
}
|
||||
/**
|
||||
* @memberof Rule#
|
||||
* @member {string} selector The rule’s full selector represented
|
||||
* as a string.
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('a, b { }')
|
||||
* const rule = root.first
|
||||
* rule.selector //=> 'a, b'
|
||||
*/
|
||||
|
||||
/**
|
||||
* @memberof Rule#
|
||||
* @member {object} raws Information to generate byte-to-byte equal
|
||||
* node string as it was in the origin input.
|
||||
*
|
||||
* Every parser saves its own properties,
|
||||
* but the default CSS parser uses:
|
||||
*
|
||||
* * `before`: the space symbols before the node. It also stores `*`
|
||||
* and `_` symbols before the declaration (IE hack).
|
||||
* * `after`: the space symbols after the last child of the node
|
||||
* to the end of the node.
|
||||
* * `between`: the symbols between the property and value
|
||||
* for declarations, selector and `{` for rules, or last parameter
|
||||
* and `{` for at-rules.
|
||||
* * `semicolon`: contains `true` if the last child has
|
||||
* an (optional) semicolon.
|
||||
* * `ownSemicolon`: contains `true` if there is semicolon after rule.
|
||||
*
|
||||
* PostCSS cleans selectors from comments and extra spaces,
|
||||
* but it stores origin content in raws properties.
|
||||
* As such, if you don’t change a declaration’s value,
|
||||
* PostCSS will use the raw value with comments.
|
||||
*
|
||||
* @example
|
||||
* const root = postcss.parse('a {\n color:black\n}')
|
||||
* root.first.first.raws //=> { before: '', between: ' ', after: '\n' }
|
||||
*/
|
||||
|
||||
}]);
|
||||
|
||||
return Rule;
|
||||
}(_container.default);
|
||||
|
||||
var _default = Rule;
|
||||
exports.default = _default;
|
||||
module.exports = exports.default;
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGUuZXM2Il0sIm5hbWVzIjpbIlJ1bGUiLCJkZWZhdWx0cyIsInR5cGUiLCJub2RlcyIsImxpc3QiLCJjb21tYSIsInNlbGVjdG9yIiwidmFsdWVzIiwibWF0Y2giLCJzZXAiLCJyYXciLCJqb2luIiwiQ29udGFpbmVyIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztBQUNBOzs7Ozs7Ozs7O0FBRUE7Ozs7Ozs7Ozs7O0lBV01BLEk7OztBQUNKLGdCQUFhQyxRQUFiLEVBQXVCO0FBQUE7O0FBQ3JCLGtDQUFNQSxRQUFOO0FBQ0EsVUFBS0MsSUFBTCxHQUFZLE1BQVo7QUFDQSxRQUFJLENBQUMsTUFBS0MsS0FBVixFQUFpQixNQUFLQSxLQUFMLEdBQWEsRUFBYjtBQUhJO0FBSXRCO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3dCQWdCaUI7QUFDZixhQUFPQyxjQUFLQyxLQUFMLENBQVcsS0FBS0MsUUFBaEIsQ0FBUDtBQUNELEs7c0JBRWNDLE0sRUFBUTtBQUNyQixVQUFJQyxLQUFLLEdBQUcsS0FBS0YsUUFBTCxHQUFnQixLQUFLQSxRQUFMLENBQWNFLEtBQWQsQ0FBb0IsTUFBcEIsQ0FBaEIsR0FBOEMsSUFBMUQ7QUFDQSxVQUFJQyxHQUFHLEdBQUdELEtBQUssR0FBR0EsS0FBSyxDQUFDLENBQUQsQ0FBUixHQUFjLE1BQU0sS0FBS0UsR0FBTCxDQUFTLFNBQVQsRUFBb0IsWUFBcEIsQ0FBbkM7QUFDQSxXQUFLSixRQUFMLEdBQWdCQyxNQUFNLENBQUNJLElBQVAsQ0FBWUYsR0FBWixDQUFoQjtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7O0FBV0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNUNpQkcsa0I7O2VBMEVKWixJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbnRhaW5lciBmcm9tICcuL2NvbnRhaW5lcidcbmltcG9ydCBsaXN0IGZyb20gJy4vbGlzdCdcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgQ1NTIHJ1bGU6IGEgc2VsZWN0b3IgZm9sbG93ZWQgYnkgYSBkZWNsYXJhdGlvbiBibG9jay5cbiAqXG4gKiBAZXh0ZW5kcyBDb250YWluZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgcm9vdCA9IHBvc3Rjc3MucGFyc2UoJ2F7fScpXG4gKiBjb25zdCBydWxlID0gcm9vdC5maXJzdFxuICogcnVsZS50eXBlICAgICAgIC8vPT4gJ3J1bGUnXG4gKiBydWxlLnRvU3RyaW5nKCkgLy89PiAnYXt9J1xuICovXG5jbGFzcyBSdWxlIGV4dGVuZHMgQ29udGFpbmVyIHtcbiAgY29uc3RydWN0b3IgKGRlZmF1bHRzKSB7XG4gICAgc3VwZXIoZGVmYXVsdHMpXG4gICAgdGhpcy50eXBlID0gJ3J1bGUnXG4gICAgaWYgKCF0aGlzLm5vZGVzKSB0aGlzLm5vZGVzID0gW11cbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBjb250YWluaW5nIHRoZSBydWxl4oCZcyBpbmRpdmlkdWFsIHNlbGVjdG9ycy5cbiAgICogR3JvdXBzIG9mIHNlbGVjdG9ycyBhcmUgc3BsaXQgYXQgY29tbWFzLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nW119XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJvb3QgPSBwb3N0Y3NzLnBhcnNlKCdhLCBiIHsgfScpXG4gICAqIGNvbnN0IHJ1bGUgPSByb290LmZpcnN0XG4gICAqXG4gICAqIHJ1bGUuc2VsZWN0b3IgIC8vPT4gJ2EsIGInXG4gICAqIHJ1bGUuc2VsZWN0b3JzIC8vPT4gWydhJywgJ2InXVxuICAgKlxuICAgKiBydWxlLnNlbGVjdG9ycyA9IFsnYScsICdzdHJvbmcnXVxuICAgKiBydWxlLnNlbGVjdG9yIC8vPT4gJ2EsIHN0cm9uZydcbiAgICovXG4gIGdldCBzZWxlY3RvcnMgKCkge1xuICAgIHJldHVybiBsaXN0LmNvbW1hKHRoaXMuc2VsZWN0b3IpXG4gIH1cblxuICBzZXQgc2VsZWN0b3JzICh2YWx1ZXMpIHtcbiAgICBsZXQgbWF0Y2ggPSB0aGlzLnNlbGVjdG9yID8gdGhpcy5zZWxlY3Rvci5tYXRjaCgvLFxccyovKSA6IG51bGxcbiAgICBsZXQgc2VwID0gbWF0Y2ggPyBtYXRjaFswXSA6ICcsJyArIHRoaXMucmF3KCdiZXR3ZWVuJywgJ2JlZm9yZU9wZW4nKVxuICAgIHRoaXMuc2VsZWN0b3IgPSB2YWx1ZXMuam9pbihzZXApXG4gIH1cblxuICAvKipcbiAgICogQG1lbWJlcm9mIFJ1bGUjXG4gICAqIEBtZW1iZXIge3N0cmluZ30gc2VsZWN0b3IgVGhlIHJ1bGXigJlzIGZ1bGwgc2VsZWN0b3IgcmVwcmVzZW50ZWRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBhIHN0cmluZy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3Qgcm9vdCA9IHBvc3Rjc3MucGFyc2UoJ2EsIGIgeyB9JylcbiAgICogY29uc3QgcnVsZSA9IHJvb3QuZmlyc3RcbiAgICogcnVsZS5zZWxlY3RvciAvLz0+ICdhLCBiJ1xuICAgKi9cblxuICAvKipcbiAgICogQG1lbWJlcm9mIFJ1bGUjXG4gICAqIEBtZW1iZXIge29iamVjdH0gcmF3cyBJbmZvcm1hdGlvbiB0byBnZW5lcmF0ZSBieXRlLXRvLWJ5dGUgZXF1YWxcbiAgICogICAgICAgICAgICAgICAgICAgICAgIG5vZGUgc3RyaW5nIGFzIGl0IHdhcyBpbiB0aGUgb3JpZ2luIGlucHV0LlxuICAgKlxuICAgKiBFdmVyeSBwYXJzZXIgc2F2ZXMgaXRzIG93biBwcm9wZXJ0aWVzLFxuICAgKiBidXQgdGhlIGRlZmF1bHQgQ1NTIHBhcnNlciB1c2VzOlxuICAgKlxuICAgKiAqIGBiZWZvcmVgOiB0aGUgc3BhY2Ugc3ltYm9scyBiZWZvcmUgdGhlIG5vZGUuIEl0IGFsc28gc3RvcmVzIGAqYFxuICAgKiAgIGFuZCBgX2Agc3ltYm9scyBiZWZvcmUgdGhlIGRlY2xhcmF0aW9uIChJRSBoYWNrKS5cbiAgICogKiBgYWZ0ZXJgOiB0aGUgc3BhY2Ugc3ltYm9scyBhZnRlciB0aGUgbGFzdCBjaGlsZCBvZiB0aGUgbm9kZVxuICAgKiAgIHRvIHRoZSBlbmQgb2YgdGhlIG5vZGUuXG4gICAqICogYGJldHdlZW5gOiB0aGUgc3ltYm9scyBiZXR3ZWVuIHRoZSBwcm9wZXJ0eSBhbmQgdmFsdWVcbiAgICogICBmb3IgZGVjbGFyYXRpb25zLCBzZWxlY3RvciBhbmQgYHtgIGZvciBydWxlcywgb3IgbGFzdCBwYXJhbWV0ZXJcbiAgICogICBhbmQgYHtgIGZvciBhdC1ydWxlcy5cbiAgICogKiBgc2VtaWNvbG9uYDogY29udGFpbnMgYHRydWVgIGlmIHRoZSBsYXN0IGNoaWxkIGhhc1xuICAgKiAgIGFuIChvcHRpb25hbCkgc2VtaWNvbG9uLlxuICAgKiAqIGBvd25TZW1pY29sb25gOiBjb250YWlucyBgdHJ1ZWAgaWYgdGhlcmUgaXMgc2VtaWNvbG9uIGFmdGVyIHJ1bGUuXG4gICAqXG4gICAqIFBvc3RDU1MgY2xlYW5zIHNlbGVjdG9ycyBmcm9tIGNvbW1lbnRzIGFuZCBleHRyYSBzcGFjZXMsXG4gICAqIGJ1dCBpdCBzdG9yZXMgb3JpZ2luIGNvbnRlbnQgaW4gcmF3cyBwcm9wZXJ0aWVzLlxuICAgKiBBcyBzdWNoLCBpZiB5b3UgZG9u4oCZdCBjaGFuZ2UgYSBkZWNsYXJhdGlvbuKAmXMgdmFsdWUsXG4gICAqIFBvc3RDU1Mgd2lsbCB1c2UgdGhlIHJhdyB2YWx1ZSB3aXRoIGNvbW1lbnRzLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZSgnYSB7XFxuICBjb2xvcjpibGFja1xcbn0nKVxuICAgKiByb290LmZpcnN0LmZpcnN0LnJhd3MgLy89PiB7IGJlZm9yZTogJycsIGJldHdlZW46ICcgJywgYWZ0ZXI6ICdcXG4nIH1cbiAgICovXG59XG5cbmV4cG9ydCBkZWZhdWx0IFJ1bGVcbiJdLCJmaWxlIjoicnVsZS5qcyJ9
|
||||
Generated
Vendored
+362
File diff suppressed because one or more lines are too long
Generated
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _stringifier = _interopRequireDefault(require("./stringifier"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function stringify(node, builder) {
|
||||
var str = new _stringifier.default(builder);
|
||||
str.stringify(node);
|
||||
}
|
||||
|
||||
var _default = stringify;
|
||||
exports.default = _default;
|
||||
module.exports = exports.default;
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0cmluZ2lmeS5lczYiXSwibmFtZXMiOlsic3RyaW5naWZ5Iiwibm9kZSIsImJ1aWxkZXIiLCJzdHIiLCJTdHJpbmdpZmllciJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7OztBQUVBLFNBQVNBLFNBQVQsQ0FBb0JDLElBQXBCLEVBQTBCQyxPQUExQixFQUFtQztBQUNqQyxNQUFJQyxHQUFHLEdBQUcsSUFBSUMsb0JBQUosQ0FBZ0JGLE9BQWhCLENBQVY7QUFDQUMsRUFBQUEsR0FBRyxDQUFDSCxTQUFKLENBQWNDLElBQWQ7QUFDRDs7ZUFFY0QsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTdHJpbmdpZmllciBmcm9tICcuL3N0cmluZ2lmaWVyJ1xuXG5mdW5jdGlvbiBzdHJpbmdpZnkgKG5vZGUsIGJ1aWxkZXIpIHtcbiAgbGV0IHN0ciA9IG5ldyBTdHJpbmdpZmllcihidWlsZGVyKVxuICBzdHIuc3RyaW5naWZ5KG5vZGUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0cmluZ2lmeVxuIl0sImZpbGUiOiJzdHJpbmdpZnkuanMifQ==
|
||||
Generated
Vendored
+84
@@ -0,0 +1,84 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
var _picocolors = _interopRequireDefault(require("picocolors"));
|
||||
|
||||
var _tokenize = _interopRequireDefault(require("./tokenize"));
|
||||
|
||||
var _input = _interopRequireDefault(require("./input"));
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var HIGHLIGHT_THEME = {
|
||||
brackets: _picocolors.default.cyan,
|
||||
'at-word': _picocolors.default.cyan,
|
||||
comment: _picocolors.default.gray,
|
||||
string: _picocolors.default.green,
|
||||
class: _picocolors.default.yellow,
|
||||
call: _picocolors.default.cyan,
|
||||
hash: _picocolors.default.magenta,
|
||||
'(': _picocolors.default.cyan,
|
||||
')': _picocolors.default.cyan,
|
||||
'{': _picocolors.default.yellow,
|
||||
'}': _picocolors.default.yellow,
|
||||
'[': _picocolors.default.yellow,
|
||||
']': _picocolors.default.yellow,
|
||||
':': _picocolors.default.yellow,
|
||||
';': _picocolors.default.yellow
|
||||
};
|
||||
|
||||
function getTokenType(_ref, processor) {
|
||||
var type = _ref[0],
|
||||
value = _ref[1];
|
||||
|
||||
if (type === 'word') {
|
||||
if (value[0] === '.') {
|
||||
return 'class';
|
||||
}
|
||||
|
||||
if (value[0] === '#') {
|
||||
return 'hash';
|
||||
}
|
||||
}
|
||||
|
||||
if (!processor.endOfFile()) {
|
||||
var next = processor.nextToken();
|
||||
processor.back(next);
|
||||
if (next[0] === 'brackets' || next[0] === '(') return 'call';
|
||||
}
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
function terminalHighlight(css) {
|
||||
var processor = (0, _tokenize.default)(new _input.default(css), {
|
||||
ignoreErrors: true
|
||||
});
|
||||
var result = '';
|
||||
|
||||
var _loop = function _loop() {
|
||||
var token = processor.nextToken();
|
||||
var color = HIGHLIGHT_THEME[getTokenType(token, processor)];
|
||||
|
||||
if (color) {
|
||||
result += token[1].split(/\r?\n/).map(function (i) {
|
||||
return color(i);
|
||||
}).join('\n');
|
||||
} else {
|
||||
result += token[1];
|
||||
}
|
||||
};
|
||||
|
||||
while (!processor.endOfFile()) {
|
||||
_loop();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
var _default = terminalHighlight;
|
||||
exports.default = _default;
|
||||
module.exports = exports.default;
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlcm1pbmFsLWhpZ2hsaWdodC5lczYiXSwibmFtZXMiOlsiSElHSExJR0hUX1RIRU1FIiwiYnJhY2tldHMiLCJwaWNvIiwiY3lhbiIsImNvbW1lbnQiLCJncmF5Iiwic3RyaW5nIiwiZ3JlZW4iLCJjbGFzcyIsInllbGxvdyIsImNhbGwiLCJoYXNoIiwibWFnZW50YSIsImdldFRva2VuVHlwZSIsInByb2Nlc3NvciIsInR5cGUiLCJ2YWx1ZSIsImVuZE9mRmlsZSIsIm5leHQiLCJuZXh0VG9rZW4iLCJiYWNrIiwidGVybWluYWxIaWdobGlnaHQiLCJjc3MiLCJJbnB1dCIsImlnbm9yZUVycm9ycyIsInJlc3VsdCIsInRva2VuIiwiY29sb3IiLCJzcGxpdCIsIm1hcCIsImkiLCJqb2luIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztBQUVBOztBQUNBOzs7O0FBRUEsSUFBTUEsZUFBZSxHQUFHO0FBQ3RCQyxFQUFBQSxRQUFRLEVBQUVDLG9CQUFLQyxJQURPO0FBRXRCLGFBQVdELG9CQUFLQyxJQUZNO0FBR3RCQyxFQUFBQSxPQUFPLEVBQUVGLG9CQUFLRyxJQUhRO0FBSXRCQyxFQUFBQSxNQUFNLEVBQUVKLG9CQUFLSyxLQUpTO0FBS3RCQyxFQUFBQSxLQUFLLEVBQUVOLG9CQUFLTyxNQUxVO0FBTXRCQyxFQUFBQSxJQUFJLEVBQUVSLG9CQUFLQyxJQU5XO0FBT3RCUSxFQUFBQSxJQUFJLEVBQUVULG9CQUFLVSxPQVBXO0FBUXRCLE9BQUtWLG9CQUFLQyxJQVJZO0FBU3RCLE9BQUtELG9CQUFLQyxJQVRZO0FBVXRCLE9BQUtELG9CQUFLTyxNQVZZO0FBV3RCLE9BQUtQLG9CQUFLTyxNQVhZO0FBWXRCLE9BQUtQLG9CQUFLTyxNQVpZO0FBYXRCLE9BQUtQLG9CQUFLTyxNQWJZO0FBY3RCLE9BQUtQLG9CQUFLTyxNQWRZO0FBZXRCLE9BQUtQLG9CQUFLTztBQWZZLENBQXhCOztBQWtCQSxTQUFTSSxZQUFULE9BQXNDQyxTQUF0QyxFQUFpRDtBQUFBLE1BQXpCQyxJQUF5QjtBQUFBLE1BQW5CQyxLQUFtQjs7QUFDL0MsTUFBSUQsSUFBSSxLQUFLLE1BQWIsRUFBcUI7QUFDbkIsUUFBSUMsS0FBSyxDQUFDLENBQUQsQ0FBTCxLQUFhLEdBQWpCLEVBQXNCO0FBQ3BCLGFBQU8sT0FBUDtBQUNEOztBQUNELFFBQUlBLEtBQUssQ0FBQyxDQUFELENBQUwsS0FBYSxHQUFqQixFQUFzQjtBQUNwQixhQUFPLE1BQVA7QUFDRDtBQUNGOztBQUVELE1BQUksQ0FBQ0YsU0FBUyxDQUFDRyxTQUFWLEVBQUwsRUFBNEI7QUFDMUIsUUFBSUMsSUFBSSxHQUFHSixTQUFTLENBQUNLLFNBQVYsRUFBWDtBQUNBTCxJQUFBQSxTQUFTLENBQUNNLElBQVYsQ0FBZUYsSUFBZjtBQUNBLFFBQUlBLElBQUksQ0FBQyxDQUFELENBQUosS0FBWSxVQUFaLElBQTBCQSxJQUFJLENBQUMsQ0FBRCxDQUFKLEtBQVksR0FBMUMsRUFBK0MsT0FBTyxNQUFQO0FBQ2hEOztBQUVELFNBQU9ILElBQVA7QUFDRDs7QUFFRCxTQUFTTSxpQkFBVCxDQUE0QkMsR0FBNUIsRUFBaUM7QUFDL0IsTUFBSVIsU0FBUyxHQUFHLHVCQUFVLElBQUlTLGNBQUosQ0FBVUQsR0FBVixDQUFWLEVBQTBCO0FBQUVFLElBQUFBLFlBQVksRUFBRTtBQUFoQixHQUExQixDQUFoQjtBQUNBLE1BQUlDLE1BQU0sR0FBRyxFQUFiOztBQUYrQjtBQUk3QixRQUFJQyxLQUFLLEdBQUdaLFNBQVMsQ0FBQ0ssU0FBVixFQUFaO0FBQ0EsUUFBSVEsS0FBSyxHQUFHM0IsZUFBZSxDQUFDYSxZQUFZLENBQUNhLEtBQUQsRUFBUVosU0FBUixDQUFiLENBQTNCOztBQUNBLFFBQUlhLEtBQUosRUFBVztBQUNURixNQUFBQSxNQUFNLElBQUlDLEtBQUssQ0FBQyxDQUFELENBQUwsQ0FDUEUsS0FETyxDQUNELE9BREMsRUFFUEMsR0FGTyxDQUVILFVBQUFDLENBQUM7QUFBQSxlQUFJSCxLQUFLLENBQUNHLENBQUQsQ0FBVDtBQUFBLE9BRkUsRUFHUEMsSUFITyxDQUdGLElBSEUsQ0FBVjtBQUlELEtBTEQsTUFLTztBQUNMTixNQUFBQSxNQUFNLElBQUlDLEtBQUssQ0FBQyxDQUFELENBQWY7QUFDRDtBQWI0Qjs7QUFHL0IsU0FBTyxDQUFDWixTQUFTLENBQUNHLFNBQVYsRUFBUixFQUErQjtBQUFBO0FBVzlCOztBQUNELFNBQU9RLE1BQVA7QUFDRDs7ZUFFY0osaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGljbyBmcm9tICdwaWNvY29sb3JzJ1xuXG5pbXBvcnQgdG9rZW5pemVyIGZyb20gJy4vdG9rZW5pemUnXG5pbXBvcnQgSW5wdXQgZnJvbSAnLi9pbnB1dCdcblxuY29uc3QgSElHSExJR0hUX1RIRU1FID0ge1xuICBicmFja2V0czogcGljby5jeWFuLFxuICAnYXQtd29yZCc6IHBpY28uY3lhbixcbiAgY29tbWVudDogcGljby5ncmF5LFxuICBzdHJpbmc6IHBpY28uZ3JlZW4sXG4gIGNsYXNzOiBwaWNvLnllbGxvdyxcbiAgY2FsbDogcGljby5jeWFuLFxuICBoYXNoOiBwaWNvLm1hZ2VudGEsXG4gICcoJzogcGljby5jeWFuLFxuICAnKSc6IHBpY28uY3lhbixcbiAgJ3snOiBwaWNvLnllbGxvdyxcbiAgJ30nOiBwaWNvLnllbGxvdyxcbiAgJ1snOiBwaWNvLnllbGxvdyxcbiAgJ10nOiBwaWNvLnllbGxvdyxcbiAgJzonOiBwaWNvLnllbGxvdyxcbiAgJzsnOiBwaWNvLnllbGxvd1xufVxuXG5mdW5jdGlvbiBnZXRUb2tlblR5cGUgKFt0eXBlLCB2YWx1ZV0sIHByb2Nlc3Nvcikge1xuICBpZiAodHlwZSA9PT0gJ3dvcmQnKSB7XG4gICAgaWYgKHZhbHVlWzBdID09PSAnLicpIHtcbiAgICAgIHJldHVybiAnY2xhc3MnXG4gICAgfVxuICAgIGlmICh2YWx1ZVswXSA9PT0gJyMnKSB7XG4gICAgICByZXR1cm4gJ2hhc2gnXG4gICAgfVxuICB9XG5cbiAgaWYgKCFwcm9jZXNzb3IuZW5kT2ZGaWxlKCkpIHtcbiAgICBsZXQgbmV4dCA9IHByb2Nlc3Nvci5uZXh0VG9rZW4oKVxuICAgIHByb2Nlc3Nvci5iYWNrKG5leHQpXG4gICAgaWYgKG5leHRbMF0gPT09ICdicmFja2V0cycgfHwgbmV4dFswXSA9PT0gJygnKSByZXR1cm4gJ2NhbGwnXG4gIH1cblxuICByZXR1cm4gdHlwZVxufVxuXG5mdW5jdGlvbiB0ZXJtaW5hbEhpZ2hsaWdodCAoY3NzKSB7XG4gIGxldCBwcm9jZXNzb3IgPSB0b2tlbml6ZXIobmV3IElucHV0KGNzcyksIHsgaWdub3JlRXJyb3JzOiB0cnVlIH0pXG4gIGxldCByZXN1bHQgPSAnJ1xuICB3aGlsZSAoIXByb2Nlc3Nvci5lbmRPZkZpbGUoKSkge1xuICAgIGxldCB0b2tlbiA9IHByb2Nlc3Nvci5uZXh0VG9rZW4oKVxuICAgIGxldCBjb2xvciA9IEhJR0hMSUdIVF9USEVNRVtnZXRUb2tlblR5cGUodG9rZW4sIHByb2Nlc3NvcildXG4gICAgaWYgKGNvbG9yKSB7XG4gICAgICByZXN1bHQgKz0gdG9rZW5bMV1cbiAgICAgICAgLnNwbGl0KC9cXHI/XFxuLylcbiAgICAgICAgLm1hcChpID0+IGNvbG9yKGkpKVxuICAgICAgICAuam9pbignXFxuJylcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ICs9IHRva2VuWzFdXG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGRlZmF1bHQgdGVybWluYWxIaWdobGlnaHRcbiJdLCJmaWxlIjoidGVybWluYWwtaGlnaGxpZ2h0LmpzIn0=
|
||||
Generated
Vendored
+295
File diff suppressed because one or more lines are too long
Generated
Vendored
+53
@@ -0,0 +1,53 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = void 0;
|
||||
|
||||
/**
|
||||
* Contains helpers for working with vendor prefixes.
|
||||
*
|
||||
* @example
|
||||
* const vendor = postcss.vendor
|
||||
*
|
||||
* @namespace vendor
|
||||
*/
|
||||
var vendor = {
|
||||
/**
|
||||
* Returns the vendor prefix extracted from an input string.
|
||||
*
|
||||
* @param {string} prop String with or without vendor prefix.
|
||||
*
|
||||
* @return {string} vendor prefix or empty string
|
||||
*
|
||||
* @example
|
||||
* postcss.vendor.prefix('-moz-tab-size') //=> '-moz-'
|
||||
* postcss.vendor.prefix('tab-size') //=> ''
|
||||
*/
|
||||
prefix: function prefix(prop) {
|
||||
var match = prop.match(/^(-\w+-)/);
|
||||
|
||||
if (match) {
|
||||
return match[0];
|
||||
}
|
||||
|
||||
return '';
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns the input string stripped of its vendor prefix.
|
||||
*
|
||||
* @param {string} prop String with or without vendor prefix.
|
||||
*
|
||||
* @return {string} String name without vendor prefixes.
|
||||
*
|
||||
* @example
|
||||
* postcss.vendor.unprefixed('-moz-tab-size') //=> 'tab-size'
|
||||
*/
|
||||
unprefixed: function unprefixed(prop) {
|
||||
return prop.replace(/^-\w+-/, '');
|
||||
}
|
||||
};
|
||||
var _default = vendor;
|
||||
exports.default = _default;
|
||||
module.exports = exports.default;
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlbmRvci5lczYiXSwibmFtZXMiOlsidmVuZG9yIiwicHJlZml4IiwicHJvcCIsIm1hdGNoIiwidW5wcmVmaXhlZCIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7O0FBUUEsSUFBSUEsTUFBTSxHQUFHO0FBRVg7Ozs7Ozs7Ozs7O0FBV0FDLEVBQUFBLE1BYlcsa0JBYUhDLElBYkcsRUFhRztBQUNaLFFBQUlDLEtBQUssR0FBR0QsSUFBSSxDQUFDQyxLQUFMLENBQVcsVUFBWCxDQUFaOztBQUNBLFFBQUlBLEtBQUosRUFBVztBQUNULGFBQU9BLEtBQUssQ0FBQyxDQUFELENBQVo7QUFDRDs7QUFFRCxXQUFPLEVBQVA7QUFDRCxHQXBCVTs7QUFzQlg7Ozs7Ozs7Ozs7QUFVQUMsRUFBQUEsVUFoQ1csc0JBZ0NDRixJQWhDRCxFQWdDTztBQUNoQixXQUFPQSxJQUFJLENBQUNHLE9BQUwsQ0FBYSxRQUFiLEVBQXVCLEVBQXZCLENBQVA7QUFDRDtBQWxDVSxDQUFiO2VBc0NlTCxNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250YWlucyBoZWxwZXJzIGZvciB3b3JraW5nIHdpdGggdmVuZG9yIHByZWZpeGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCB2ZW5kb3IgPSBwb3N0Y3NzLnZlbmRvclxuICpcbiAqIEBuYW1lc3BhY2UgdmVuZG9yXG4gKi9cbmxldCB2ZW5kb3IgPSB7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZlbmRvciBwcmVmaXggZXh0cmFjdGVkIGZyb20gYW4gaW5wdXQgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcCBTdHJpbmcgd2l0aCBvciB3aXRob3V0IHZlbmRvciBwcmVmaXguXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ30gdmVuZG9yIHByZWZpeCBvciBlbXB0eSBzdHJpbmdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogcG9zdGNzcy52ZW5kb3IucHJlZml4KCctbW96LXRhYi1zaXplJykgLy89PiAnLW1vei0nXG4gICAqIHBvc3Rjc3MudmVuZG9yLnByZWZpeCgndGFiLXNpemUnKSAgICAgIC8vPT4gJydcbiAgICovXG4gIHByZWZpeCAocHJvcCkge1xuICAgIGxldCBtYXRjaCA9IHByb3AubWF0Y2goL14oLVxcdystKS8pXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4gbWF0Y2hbMF1cbiAgICB9XG5cbiAgICByZXR1cm4gJydcbiAgfSxcblxuICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBpbnB1dCBzdHJpbmcgc3RyaXBwZWQgb2YgaXRzIHZlbmRvciBwcmVmaXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcCBTdHJpbmcgd2l0aCBvciB3aXRob3V0IHZlbmRvciBwcmVmaXguXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFN0cmluZyBuYW1lIHdpdGhvdXQgdmVuZG9yIHByZWZpeGVzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwb3N0Y3NzLnZlbmRvci51bnByZWZpeGVkKCctbW96LXRhYi1zaXplJykgLy89PiAndGFiLXNpemUnXG4gICAgICovXG4gIHVucHJlZml4ZWQgKHByb3ApIHtcbiAgICByZXR1cm4gcHJvcC5yZXBsYWNlKC9eLVxcdystLywgJycpXG4gIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCB2ZW5kb3JcbiJdLCJmaWxlIjoidmVuZG9yLmpzIn0=
|
||||
Generated
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
exports.__esModule = true;
|
||||
exports.default = warnOnce;
|
||||
var printed = {};
|
||||
|
||||
function warnOnce(message) {
|
||||
if (printed[message]) return;
|
||||
printed[message] = true;
|
||||
|
||||
if (typeof console !== 'undefined' && console.warn) {
|
||||
console.warn(message);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = exports.default;
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndhcm4tb25jZS5lczYiXSwibmFtZXMiOlsicHJpbnRlZCIsIndhcm5PbmNlIiwibWVzc2FnZSIsImNvbnNvbGUiLCJ3YXJuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsSUFBSUEsT0FBTyxHQUFHLEVBQWQ7O0FBRWUsU0FBU0MsUUFBVCxDQUFtQkMsT0FBbkIsRUFBNEI7QUFDekMsTUFBSUYsT0FBTyxDQUFDRSxPQUFELENBQVgsRUFBc0I7QUFDdEJGLEVBQUFBLE9BQU8sQ0FBQ0UsT0FBRCxDQUFQLEdBQW1CLElBQW5COztBQUVBLE1BQUksT0FBT0MsT0FBUCxLQUFtQixXQUFuQixJQUFrQ0EsT0FBTyxDQUFDQyxJQUE5QyxFQUFvRDtBQUNsREQsSUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWFGLE9BQWI7QUFDRDtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsibGV0IHByaW50ZWQgPSB7IH1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2Fybk9uY2UgKG1lc3NhZ2UpIHtcbiAgaWYgKHByaW50ZWRbbWVzc2FnZV0pIHJldHVyblxuICBwcmludGVkW21lc3NhZ2VdID0gdHJ1ZVxuXG4gIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgY29uc29sZS53YXJuKSB7XG4gICAgY29uc29sZS53YXJuKG1lc3NhZ2UpXG4gIH1cbn1cbiJdLCJmaWxlIjoid2Fybi1vbmNlLmpzIn0=
|
||||
Generated
Vendored
+131
File diff suppressed because one or more lines are too long
Generated
Vendored
+37
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"name": "postcss",
|
||||
"version": "7.0.39",
|
||||
"description": "Tool for transforming styles with JS plugins",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
},
|
||||
"keywords": [
|
||||
"css",
|
||||
"postcss",
|
||||
"rework",
|
||||
"preprocessor",
|
||||
"parser",
|
||||
"source map",
|
||||
"transform",
|
||||
"manipulation",
|
||||
"transpiler"
|
||||
],
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
"author": "Andrey Sitnik <andrey@sitnik.ru>",
|
||||
"license": "MIT",
|
||||
"homepage": "https://postcss.org/",
|
||||
"repository": "postcss/postcss",
|
||||
"dependencies": {
|
||||
"picocolors": "^0.2.1",
|
||||
"source-map": "^0.6.1"
|
||||
},
|
||||
"main": "lib/postcss",
|
||||
"types": "lib/postcss.d.ts",
|
||||
"browser": {
|
||||
"./lib/terminal-highlight": false,
|
||||
"fs": false
|
||||
}
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "optimize-css-assets-webpack-plugin",
|
||||
"version": "3.2.1",
|
||||
"author": "Nuno Rodrigues",
|
||||
"description": "A Webpack plugin to optimize \\ minimize CSS assets.",
|
||||
"dependencies": {
|
||||
"cssnano": "^4.1.10",
|
||||
"last-call-webpack-plugin": "^2.1.2"
|
||||
},
|
||||
"main": "index.js",
|
||||
"homepage": "http://github.com/NMFR/optimize-css-assets-webpack-plugin",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "http://github.com/NMFR/optimize-css-assets-webpack-plugin.git"
|
||||
},
|
||||
"keywords": [
|
||||
"CSS",
|
||||
"minimize",
|
||||
"optimize",
|
||||
"webpack",
|
||||
"remove",
|
||||
"duplicate",
|
||||
"extract-text-webpack-plugin"
|
||||
],
|
||||
"license": "MIT"
|
||||
}
|
||||
Reference in New Issue
Block a user