2023-07-05 11:02:15 +02:00
"use strict" ;
2023-07-01 10:42:40 +02:00
2023-07-05 11:02:15 +02:00
exports . _ _esModule = true ;
exports . default = void 0 ;
2023-07-01 10:42:40 +02:00
2023-07-05 11:02:15 +02:00
var _lazyResult = _interopRequireDefault ( require ( "./lazy-result" ) ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
function _createForOfIteratorHelperLoose ( o , allowArrayLike ) { var it ; if ( typeof Symbol === "undefined" || o [ Symbol . iterator ] == null ) { if ( Array . isArray ( o ) || ( it = _unsupportedIterableToArray ( o ) ) || allowArrayLike && o && typeof o . length === "number" ) { if ( it ) o = it ; var i = 0 ; return function ( ) { if ( i >= o . length ) return { done : true } ; return { done : false , value : o [ i ++ ] } ; } ; } throw new TypeError ( "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ; } it = o [ Symbol . iterator ] ( ) ; return it . next . bind ( it ) ; }
function _unsupportedIterableToArray ( o , minLen ) { if ( ! o ) return ; if ( typeof o === "string" ) return _arrayLikeToArray ( o , minLen ) ; var n = Object . prototype . toString . call ( o ) . slice ( 8 , - 1 ) ; if ( n === "Object" && o . constructor ) n = o . constructor . name ; if ( n === "Map" || n === "Set" ) return Array . from ( o ) ; if ( n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/ . test ( n ) ) return _arrayLikeToArray ( o , minLen ) ; }
function _arrayLikeToArray ( arr , len ) { if ( len == null || len > arr . length ) len = arr . length ; for ( var i = 0 , arr2 = new Array ( len ) ; i < len ; i ++ ) { arr2 [ i ] = arr [ i ] ; } return arr2 ; }
/ * *
* Contains plugins to process CSS . Create one ` Processor ` instance ,
* initialize its plugins , and then use that instance on numerous CSS files .
*
* @ example
* const processor = postcss ( [ autoprefixer , precss ] )
* processor . process ( css1 ) . then ( result => console . log ( result . css ) )
* processor . process ( css2 ) . then ( result => console . log ( result . css ) )
* /
var Processor = /*#__PURE__*/ function ( ) {
/ * *
* @ param { Array . < Plugin | pluginFunction > | Processor } plugins PostCSS plugins .
* See { @ link Processor # use } for plugin format .
* /
function Processor ( plugins ) {
if ( plugins === void 0 ) {
plugins = [ ] ;
}
/ * *
* Current PostCSS version .
*
* @ type { string }
*
* @ example
* if ( result . processor . version . split ( '.' ) [ 0 ] !== '6' ) {
* throw new Error ( 'This plugin works only with PostCSS 6' )
* }
* /
this . version = '7.0.39' ;
/ * *
* Plugins added to this processor .
*
* @ type { pluginFunction [ ] }
*
* @ example
* const processor = postcss ( [ autoprefixer , precss ] )
* processor . plugins . length //=> 2
* /
this . plugins = this . normalize ( plugins ) ;
2023-07-01 10:42:40 +02:00
}
2023-07-05 11:02:15 +02:00
/ * *
* Adds a plugin to be used as a CSS processor .
*
* PostCSS plugin can be in 4 formats :
* * A plugin created by { @ link postcss . plugin } method .
* * A function . PostCSS will pass the function a @ { link Root }
* as the first argument and current { @ link Result } instance
* as the second .
* * An object with a ` postcss ` method . PostCSS will use that method
* as described in # 2.
* * Another { @ link Processor } instance . PostCSS will copy plugins
* from that instance into this one .
*
* Plugins can also be added by passing them as arguments when creating
* a ` postcss ` instance ( see [ ` postcss(plugins) ` ] ) .
*
* Asynchronous plugins should return a ` Promise ` instance .
*
* @ param { Plugin | pluginFunction | Processor } plugin PostCSS plugin
* or { @ link Processor }
* with plugins .
*
* @ example
* const processor = postcss ( )
* . use ( autoprefixer )
* . use ( precss )
*
* @ return { Processes } Current processor to make methods chain .
* /
2023-07-01 10:42:40 +02:00
2023-07-05 11:02:15 +02:00
var _proto = Processor . prototype ;
_proto . use = function use ( plugin ) {
this . plugins = this . plugins . concat ( this . normalize ( [ plugin ] ) ) ;
return this ;
2023-07-01 10:42:40 +02:00
}
2023-07-05 11:02:15 +02:00
/ * *
* Parses source CSS and returns a { @ link LazyResult } Promise proxy .
* Because some plugins can be asynchronous it doesn ’ t make
* any transformations . Transformations will be applied
* in the { @ link LazyResult } methods .
*
* @ param { string | toString | Result } css String with input CSS or any object
* with a ` toString() ` method ,
* like a Buffer . Optionally , send
* a { @ link Result } instance
* and the processor will take
* the { @ link Root } from it .
* @ param { processOptions } [ opts ] Options .
*
* @ return { LazyResult } Promise proxy .
*
* @ example
* processor . process ( css , { from : 'a.css' , to : 'a.out.css' } )
* . then ( result => {
* console . log ( result . css )
* } )
* /
;
2023-07-01 10:42:40 +02:00
2023-07-05 11:02:15 +02:00
_proto . process = function ( _process ) {
function process ( _x ) {
return _process . apply ( this , arguments ) ;
2023-07-01 10:42:40 +02:00
}
2023-07-05 11:02:15 +02:00
process . toString = function ( ) {
return _process . toString ( ) ;
} ;
return process ;
} ( function ( css , opts ) {
if ( opts === void 0 ) {
opts = { } ;
}
if ( this . plugins . length === 0 && opts . parser === opts . stringifier ) {
if ( process . env . NODE _ENV !== 'production' ) {
if ( typeof console !== 'undefined' && console . warn ) {
console . warn ( 'You did not set any plugins, parser, or stringifier. ' + 'Right now, PostCSS does nothing. Pick plugins for your case ' + 'on https://www.postcss.parts/ and use them in postcss.config.js.' ) ;
}
}
}
return new _lazyResult . default ( this , css , opts ) ;
} ) ;
_proto . normalize = function normalize ( plugins ) {
var normalized = [ ] ;
for ( var _iterator = _createForOfIteratorHelperLoose ( plugins ) , _step ; ! ( _step = _iterator ( ) ) . done ; ) {
var i = _step . value ;
2023-07-01 10:42:40 +02:00
if ( i . postcss === true ) {
2023-07-05 11:02:15 +02:00
var plugin = i ( ) ;
throw new Error ( 'PostCSS plugin ' + plugin . postcssPlugin + ' requires PostCSS 8.\n' + 'Migration guide for end-users:\n' + 'https://github.com/postcss/postcss/wiki/PostCSS-8-for-end-users' ) ;
2023-07-01 10:42:40 +02:00
}
2023-07-05 11:02:15 +02:00
if ( i . postcss ) i = i . postcss ;
2023-07-01 10:42:40 +02:00
if ( typeof i === 'object' && Array . isArray ( i . plugins ) ) {
2023-07-05 11:02:15 +02:00
normalized = normalized . concat ( i . plugins ) ;
2023-07-01 10:42:40 +02:00
} else if ( typeof i === 'function' ) {
2023-07-05 11:02:15 +02:00
normalized . push ( i ) ;
2023-07-01 10:42:40 +02:00
} else if ( typeof i === 'object' && ( i . parse || i . stringify ) ) {
if ( process . env . NODE _ENV !== 'production' ) {
2023-07-05 11:02:15 +02:00
throw new Error ( 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' + 'one of the syntax/parser/stringifier options as outlined ' + 'in your PostCSS runner documentation.' ) ;
2023-07-01 10:42:40 +02:00
}
2023-07-05 11:02:15 +02:00
} else if ( typeof i === 'object' && i . postcssPlugin ) {
throw new Error ( 'PostCSS plugin ' + i . postcssPlugin + ' requires PostCSS 8.\n' + 'Migration guide for end-users:\n' + 'https://github.com/postcss/postcss/wiki/PostCSS-8-for-end-users' ) ;
2023-07-01 10:42:40 +02:00
} else {
2023-07-05 11:02:15 +02:00
throw new Error ( i + ' is not a PostCSS plugin' ) ;
2023-07-01 10:42:40 +02:00
}
}
2023-07-05 11:02:15 +02:00
return normalized ;
} ;
return Processor ;
} ( ) ;
var _default = Processor ;
/ * *
* @ callback builder
* @ param { string } part Part of generated CSS connected to this node .
* @ param { Node } node AST node .
* @ param { "start" | "end" } [ type ] Node ’ s part type .
* /
/ * *
* @ callback parser
*
* @ param { string | toString } css String with input CSS or any object
* with toString ( ) method , like a Buffer .
* @ param { processOptions } [ opts ] Options with only ` from ` and ` map ` keys .
*
* @ return { Root } PostCSS AST
* /
/ * *
* @ callback stringifier
*
* @ param { Node } node Start node for stringifing . Usually { @ link Root } .
* @ param { builder } builder Function to concatenate CSS from node ’ s parts
* or generate string and source map .
*
* @ return { void }
* /
/ * *
* @ typedef { object } syntax
* @ property { parser } parse Function to generate AST by string .
* @ property { stringifier } stringify Function to generate string by AST .
* /
/ * *
* @ typedef { object } toString
* @ property { function } toString
* /
/ * *
* @ callback pluginFunction
* @ param { Root } root Parsed input CSS .
* @ param { Result } result Result to set warnings or check other plugins .
* /
/ * *
* @ typedef { object } Plugin
* @ property { function } postcss PostCSS plugin function .
* /
/ * *
* @ typedef { object } processOptions
* @ property { string } from The path of the CSS source file .
* You should always set ` from ` ,
* because it is used in source map
* generation and syntax error messages .
* @ property { string } to The path where you ’ ll put the output
* CSS file . You should always set ` to `
* to generate correct source maps .
* @ property { parser } parser Function to generate AST by string .
* @ property { stringifier } stringifier Class to generate string by AST .
* @ property { syntax } syntax Object with ` parse ` and ` stringify ` .
* @ property { object } map Source map options .
* @ property { boolean } map . inline Does source map should
* be embedded in the output
* CSS as a base64 - encoded
* comment .
* @ property { string | object | false | function } map . prev Source map content
* from a previous
* processing step
* ( for example , Sass ) .
* PostCSS will try to find
* previous map automatically ,
* so you could disable it by
* ` false ` value .
* @ property { boolean } map . sourcesContent Does PostCSS should set
* the origin content to map .
* @ property { string | false } map . annotation Does PostCSS should set
* annotation comment to map .
* @ property { string } map . from Override ` from ` in map ’ s
* sources ` .
* /
2023-07-01 10:42:40 +02:00
2023-07-05 11:02:15 +02:00
exports . default = _default ;
module . exports = exports . default ;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb2Nlc3Nvci5lczYiXSwibmFtZXMiOlsiUHJvY2Vzc29yIiwicGx1Z2lucyIsInZlcnNpb24iLCJub3JtYWxpemUiLCJ1c2UiLCJwbHVnaW4iLCJjb25jYXQiLCJwcm9jZXNzIiwiY3NzIiwib3B0cyIsImxlbmd0aCIsInBhcnNlciIsInN0cmluZ2lmaWVyIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIiwid2FybiIsIkxhenlSZXN1bHQiLCJub3JtYWxpemVkIiwiaSIsInBvc3Rjc3MiLCJFcnJvciIsInBvc3Rjc3NQbHVnaW4iLCJBcnJheSIsImlzQXJyYXkiLCJwdXNoIiwicGFyc2UiLCJzdHJpbmdpZnkiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7Ozs7QUFFQTs7Ozs7Ozs7O0lBU01BLFM7QUFDSjs7OztBQUlBLHFCQUFhQyxPQUFiLEVBQTJCO0FBQUEsUUFBZEEsT0FBYztBQUFkQSxNQUFBQSxPQUFjLEdBQUosRUFBSTtBQUFBOztBQUN6Qjs7Ozs7Ozs7OztBQVVBLFNBQUtDLE9BQUwsR0FBZSxRQUFmO0FBQ0E7Ozs7Ozs7Ozs7QUFTQSxTQUFLRCxPQUFMLEdBQWUsS0FBS0UsU0FBTCxDQUFlRixPQUFmLENBQWY7QUFDRDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0E2QkFHLEcsR0FBQSxhQUFLQyxNQUFMLEVBQWE7QUFDWCxTQUFLSixPQUFMLEdBQWUsS0FBS0EsT0FBTCxDQUFhSyxNQUFiLENBQW9CLEtBQUtILFNBQUwsQ0FBZSxDQUFDRSxNQUFELENBQWYsQ0FBcEIsQ0FBZjtBQUNBLFdBQU8sSUFBUDtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQXNCQUUsTzs7Ozs7Ozs7OztJQUFBLFVBQVNDLEdBQVQsRUFBY0MsSUFBZCxFQUEwQjtBQUFBLFFBQVpBLElBQVk7QUFBWkEsTUFBQUEsSUFBWSxHQUFMLEVBQUs7QUFBQTs7QUFDeEIsUUFBSSxLQUFLUixPQUFMLENBQWFTLE1BQWIsS0FBd0IsQ0FBeEIsSUFBNkJELElBQUksQ0FBQ0UsTUFBTCxLQUFnQkYsSUFBSSxDQUFDRyxXQUF0RCxFQUFtRTtBQUNqRSxVQUFJTCxPQUFPLENBQUNNLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6QyxZQUFJLE9BQU9DLE9BQVAsS0FBbUIsV0FBbkIsSUFBa0NBLE9BQU8sQ0FBQ0MsSUFBOUMsRUFBb0Q7QUFDbERELFVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUNFLDBEQUNBLDhEQURBLEdBRUEsa0VBSEY7QUFLRDtBQUNGO0FBQ0Y7O0FBQ0QsV0FBTyxJQUFJQyxtQkFBSixDQUFlLElBQWYsRUFBcUJULEdBQXJCLEVBQTBCQyxJQUExQixDQUFQO0FBQ0QsRzs7U0FFRE4sUyxHQUFBLG1CQUFXRixPQUFYLEVBQW9CO0FBQ2xCLFFBQUlpQixVQUFVLEdBQUcsRUFBakI7O0FBQ0EseURBQWNqQixPQUFkLHdDQUF1QjtBQUFBLFVBQWRrQixDQUFjOztBQUNyQixVQUFJQSxDQUFDLENBQUNDLE9BQUYsS0FBYyxJQUFsQixFQUF3QjtBQUN0QixZQUFJZixNQUFNLEdBQUdjLENBQUMsRUFBZDtBQUNBLGNBQU0sSUFBSUUsS0FBSixDQUNKLG9CQUFvQmhCLE1BQU0sQ0FBQ2lCLGFBQTNCLEdBQTJDLHdCQUEzQyxHQUNBLGtDQURBLEdBRUEsaUVBSEksQ0FBTjtBQUtEOztBQUVELFVBQUlILENBQUMsQ0FBQ0MsT0FBTixFQUFlRCxDQUFDLEdBQUdBLENBQUMsQ0FBQ0MsT0FBTjs7QUFFZixVQUFJLE9BQU9ELENBQVAsS0FBYSxRQUFiLElBQXlCSSxLQUFLLENBQUNDLE9BQU4sQ0FBY0wsQ0FBQyxDQUFDbEIsT0FBaEIsQ0FBN0IsRUFBdUQ7QUFDckRpQixRQUFBQSxVQUFVLEdBQUdBLFVBQVUsQ0FBQ1osTUFBWCxDQUFrQmEsQ0FBQyxDQUFDbEIsT0FBcEIsQ0FBYjtBQUNELE9BRkQsTUFFTyxJQUFJLE9BQU9rQixDQUFQLEtBQWEsVUFBakIsRUFBNkI7QUFDbENELFFBQUFBLFVBQVUsQ0FBQ08sSUFBWCxDQUFnQk4sQ0FBaEI7QUFDRCxPQUZNLE1BRUEsSUFBSSxPQUFPQSxDQUFQLEtBQWEsUUFBYixLQUEwQkEsQ0FBQyxDQUFDTyxLQUFGLElBQVdQLENBQUMsQ0FBQ1EsU0FBdkMsQ0FBSixFQUF1RDtBQUM1RCxZQUFJcEIsT0FBTyxDQUFDTSxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekMsZ0JBQU0sSUFBSU8sS0FBSixDQUNKLHFFQUNBLDJEQURBLEdBRUEsdUNBSEksQ0FBTjtBQUtEO0FBQ0YsT0FSTSxNQVFBLElBQUksT0FBT0YsQ0FBUCxLQUFhLFFBQWIsSUFBeUJBLENBQUMsQ0FBQ0csYUFBL0IsRUFBOEM7QUFDbkQsY0FBTSxJQUFJRCxLQUFKLENBQ0osb0JBQW9CRixDQUFDLENBQUNHLGFBQXRCLEdBQXNDLHdCQUF0QyxHQUNBLGtDQURBLEdBRUEsaUVBSEksQ0FBTjtBQUtELE9BTk0sTUFNQTtBQUNMLGNBQU0sSUFBSUQsS0FBSixDQUFVRixDQUFDLEdBQUcsMEJBQWQsQ0FBTjtBQUNEO0FBQ0Y7O0FBQ0QsV0FBT0QsVUFBUDtBQUNELEc7Ozs7O2VBR1lsQixTO0FBRWY7Ozs7Ozs7QUFPQTs7Ozs7Ozs7OztBQVVBOzs7Ozs7Ozs7O0FBVUE7Ozs7OztBQU1BOzs7OztBQUtBOzs7Ozs7QUFNQTs7Ozs7QUFLQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMYXp5UmVzdWx0IGZyb20gJy4vbGF6eS1yZXN1bHQnXG5cbi8qKlxuICogQ29udGFpbnMgcGx1Z2lucyB0byBwcm9jZXNzIENTUy4gQ3JlYXRlIG9uZSBgUHJvY2Vzc29yYCBpbnN0YW5jZSxcbiAqIGluaXRpYWxpemUgaXRzIHBsdWdpbnMsIGFuZCB0aGVuIHVzZSB0aGF0IGluc3RhbmNlIG9uIG51bWVyb3VzIENTUyBmaWxlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcHJvY2Vzc29yID0gcG9zdGNzcyhbYXV0b3ByZWZpeGVyLCBwcmVjc3NdKVxuICogcHJvY2Vzc29yLnByb2Nlc3MoY3NzMSkudGhlbihyZXN1bHQgPT4gY29uc29sZS5sb2cocmVzdWx0LmNzcykpXG4gKiBwcm9jZXNzb3IucHJvY2Vzcyhjc3MyKS50aGVuKHJlc3VsdCA9PiBjb25zb2xlLmxvZyhyZXN1bHQuY3NzKSlcbiAqL1xuY2xhc3MgUHJvY2Vzc29yIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7QXJyYXkuPFBsdWdpbnxwbHVnaW5GdW5jdGlvbj58UHJvY2Vzc29yfSBwbHVnaW5zIFBvc3RDU1MgcGx1Z2lucy5cbiAgICogICAgICAgIFNlZSB7QGxpbmsgUHJvY2Vzc29yI3VzZX0gZm9yIHBsdWdpbiBmb3JtYXQuXG4gICAqL1xuICBjb25zdHJ1Y3RvciAocGx1Z2lucyA9IFtdKSB7XG4g