From 06823fbf1c2e763a5bf76c3990ca98fbbcd98691 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Tue, 14 May 2024 14:05:49 +0800 Subject: updated node_modules --- node_modules/cssnano-preset-default/src/index.js | 218 +++++++++++++++-------- 1 file changed, 141 insertions(+), 77 deletions(-) (limited to 'node_modules/cssnano-preset-default/src') diff --git a/node_modules/cssnano-preset-default/src/index.js b/node_modules/cssnano-preset-default/src/index.js index 94338d51..89990ebf 100644 --- a/node_modules/cssnano-preset-default/src/index.js +++ b/node_modules/cssnano-preset-default/src/index.js @@ -43,89 +43,153 @@ const postcssNormalizeDisplayValues = require('postcss-normalize-display-values' const postcssNormalizeTimingFunctions = require('postcss-normalize-timing-functions'); const { rawCache } = require('cssnano-utils'); -/** @typedef {{ -discardComments?: false | import('postcss-discard-comments').Options & { exclude?: true}, -reduceInitial?: false | { exclude?: true} -minifyGradients?: false | { exclude?: true} -svgo?: false | import('postcss-svgo').Options & { exclude?: true}, -reduceTransforms?: false | { exclude?: true} -convertValues?: false | import('postcss-convert-values').Options & { exclude?: true}, -calc?: false | import('postcss-calc').PostCssCalcOptions & { exclude?: true}, -colormin?: false | Record & { exclude?: true}, -orderedValues?: false | { exclude?: true}, -minifySelectors?: false | { exclude?: true}, -minifyParams?: false | { exclude?: true}, -normalizeCharset?: false | import('postcss-normalize-charset').Options & { exclude?: true}, -minifyFontValues?: false | import('postcss-minify-font-values').Options & { exclude?: true}, -normalizeUrl?: false | { exclude?: true}, -mergeLonghand?: false | { exclude?: true}, -discardDuplicates?: false | { exclude?: true}, -discardOverridden?: false | { exclude?: true}, -normalizeRepeatStyle?: false | { exclude?: true}, -mergeRules?: false | { exclude?: true}, -discardEmpty?: false | { exclude?: true}, -uniqueSelectors?: false | { exclude?: true}, -normalizeString?: false | import('postcss-normalize-string').Options & { exclude?: true}, -normalizePositions?: false | { exclude?: true}, -normalizeWhitespace?: false| { exclude?: true}, -normalizeUnicode?: false | { exclude?: true}, -normalizeDisplayValues?: false | { exclude?: true}, -normalizeTimingFunctions?: false | { exclude?: true}, -rawCache?: false | { exclude?: true}}} Options */ +/** + * @template {object | void} [OptionsExtends=void] + * @typedef {false | OptionsExtends & {exclude?: true}} SimpleOptions + */ + +/** + * @typedef {object} Options + * @property {SimpleOptions[0]>} [cssDeclarationSorter] + * @property {SimpleOptions} [discardComments] + * @property {SimpleOptions} [reduceInitial] + * @property {SimpleOptions} [minifyGradients] + * @property {SimpleOptions} [svgo] + * @property {SimpleOptions} [reduceTransforms] + * @property {SimpleOptions} [convertValues] + * @property {SimpleOptions} [calc] + * @property {SimpleOptions} [colormin] + * @property {SimpleOptions} [orderedValues] + * @property {SimpleOptions} [minifySelectors] + * @property {SimpleOptions} [minifyParams] + * @property {SimpleOptions} [normalizeCharset] + * @property {SimpleOptions} [minifyFontValues] + * @property {SimpleOptions} [normalizeUrl] + * @property {SimpleOptions} [mergeLonghand] + * @property {SimpleOptions} [discardDuplicates] + * @property {SimpleOptions} [discardOverridden] + * @property {SimpleOptions} [normalizeRepeatStyle] + * @property {SimpleOptions} [mergeRules] + * @property {SimpleOptions} [discardEmpty] + * @property {SimpleOptions} [uniqueSelectors] + * @property {SimpleOptions} [normalizeString] + * @property {SimpleOptions} [normalizePositions] + * @property {SimpleOptions} [normalizeWhitespace] + * @property {SimpleOptions} [normalizeUnicode] + * @property {SimpleOptions} [normalizeDisplayValues] + * @property {SimpleOptions} [normalizeTimingFunctions] + * @property {SimpleOptions} [rawCache] + */ -const defaultOpts = { - convertValues: { - length: false, - }, - normalizeCharset: { - add: false, - }, - cssDeclarationSorter: { - keepOverrides: true, - }, -}; +/** + * @typedef {{ overrideBrowserslist?: string | string[] }} AutoprefixerOptions + * @typedef {Pick} BrowserslistOptions + */ /** - * @param {Options} opts - * @return {{plugins: [import('postcss').PluginCreator, boolean | Record | undefined][]}} + * @param {[import('postcss').PluginCreator, keyof Options][]} plugins + * @param {Parameters[0]} opts + * @returns {ReturnType["plugins"]} */ -function defaultPreset(opts = {}) { - const options = Object.assign({}, defaultOpts, opts); +function configurePlugins(plugins, opts = {}) { + const { overrideBrowserslist, stats, env, path } = opts; - /** @type {[import('postcss').PluginCreator, boolean | Record | undefined][]} **/ - const plugins = [ - [postcssDiscardComments, options.discardComments], - [postcssMinifyGradients, options.minifyGradients], - [postcssReduceInitial, options.reduceInitial], - [postcssSvgo, options.svgo], - [postcssNormalizeDisplayValues, options.normalizeDisplayValues], - [postcssReduceTransforms, options.reduceTransforms], - [postcssColormin, options.colormin], - [postcssNormalizeTimingFunctions, options.normalizeTimingFunctions], - [postcssCalc, options.calc], - [postcssConvertValues, options.convertValues], - [postcssOrderedValues, options.orderedValues], - [postcssMinifySelectors, options.minifySelectors], - [postcssMinifyParams, options.minifyParams], - [postcssNormalizeCharset, options.normalizeCharset], - [postcssDiscardOverridden, options.discardOverridden], - [postcssNormalizeString, options.normalizeString], - [postcssNormalizeUnicode, options.normalizeUnicode], - [postcssMinifyFontValues, options.minifyFontValues], - [postcssNormalizeUrl, options.normalizeUrl], - [postcssNormalizeRepeatStyle, options.normalizeRepeatStyle], - [postcssNormalizePositions, options.normalizePositions], - [postcssNormalizeWhitespace, options.normalizeWhitespace], - [postcssMergeLonghand, options.mergeLonghand], - [postcssDiscardDuplicates, options.discardDuplicates], - [postcssMergeRules, options.mergeRules], - [postcssDiscardEmpty, options.discardEmpty], - [postcssUniqueSelectors, options.uniqueSelectors], - [cssDeclarationSorter, options.cssDeclarationSorter], - [rawCache, options.rawCache], - ]; + // Shared Autoprefixer + Browserslist options + const sharedProps = { + overrideBrowserslist, + stats, + env, + path, + }; - return { plugins }; + /** + * @type {Options} + */ + const defaults = { + colormin: { + ...sharedProps, + }, + convertValues: { + length: false, + ...sharedProps, + }, + mergeRules: { + ...sharedProps, + }, + minifyParams: { + ...sharedProps, + }, + normalizeCharset: { + add: false, + }, + normalizeUnicode: { + ...sharedProps, + }, + reduceInitial: { + ...sharedProps, + }, + cssDeclarationSorter: { + keepOverrides: true, + }, + }; + + // Merge option properties for each plugin + return plugins.map(([plugin, opt]) => { + const defaultProps = defaults[opt] ?? {}; + const presetProps = opts[opt] ?? {}; + + return [ + plugin, + presetProps !== false + ? { ...defaultProps, ...presetProps } + : { exclude: true }, + ]; + }); +} + +/** + * Safe defaults for cssnano which require minimal configuration + * + * @param {Options & AutoprefixerOptions & BrowserslistOptions} opts + * @returns {{ plugins: [import('postcss').PluginCreator, Options[keyof Options]][] }} + */ +function defaultPreset(opts = {}) { + return { + plugins: configurePlugins( + [ + [postcssDiscardComments, 'discardComments'], + [postcssMinifyGradients, 'minifyGradients'], + [postcssReduceInitial, 'reduceInitial'], + [postcssSvgo, 'svgo'], + [postcssNormalizeDisplayValues, 'normalizeDisplayValues'], + [postcssReduceTransforms, 'reduceTransforms'], + [postcssColormin, 'colormin'], + [postcssNormalizeTimingFunctions, 'normalizeTimingFunctions'], + [postcssCalc, 'calc'], + [postcssConvertValues, 'convertValues'], + [postcssOrderedValues, 'orderedValues'], + [postcssMinifySelectors, 'minifySelectors'], + [postcssMinifyParams, 'minifyParams'], + [postcssNormalizeCharset, 'normalizeCharset'], + [postcssDiscardOverridden, 'discardOverridden'], + [postcssNormalizeString, 'normalizeString'], + [postcssNormalizeUnicode, 'normalizeUnicode'], + [postcssMinifyFontValues, 'minifyFontValues'], + [postcssNormalizeUrl, 'normalizeUrl'], + [postcssNormalizeRepeatStyle, 'normalizeRepeatStyle'], + [postcssNormalizePositions, 'normalizePositions'], + [postcssNormalizeWhitespace, 'normalizeWhitespace'], + [postcssMergeLonghand, 'mergeLonghand'], + [postcssDiscardDuplicates, 'discardDuplicates'], + [postcssMergeRules, 'mergeRules'], + [postcssDiscardEmpty, 'discardEmpty'], + [postcssUniqueSelectors, 'uniqueSelectors'], + [cssDeclarationSorter, 'cssDeclarationSorter'], + [rawCache, 'rawCache'], + ], + opts + ), + }; } module.exports = defaultPreset; -- cgit v1.2.3