Added logging, changed some directory structure

This commit is contained in:
2018-01-13 21:33:40 -05:00
parent f079a5f067
commit 8e72ffb917
73656 changed files with 35284 additions and 53718 deletions

View File

@@ -0,0 +1,46 @@
'use strict';
exports.__esModule = true;
var _postcss = require('postcss');
var atrule = 'atrule';
var decl = 'decl';
var rule = 'rule';
function minimiseWhitespace(node) {
var type = node.type;
if (~[decl, rule, atrule].indexOf(type) && node.raws.before) {
node.raws.before = node.raws.before.replace(/\s/g, '');
}
if (type === decl) {
// Ensure that !important values do not have any excess whitespace
if (node.important) {
node.raws.important = '!important';
}
// Remove whitespaces around ie 9 hack
node.value = node.value.replace(/\s*(\\9)\s*/, '$1');
// Remove extra semicolons and whitespace before the declaration
if (node.raws.before) {
var prev = node.prev();
if (prev && prev.type !== rule) {
node.raws.before = node.raws.before.replace(/;/g, '');
}
}
node.raws.between = ':';
node.raws.semicolon = false;
} else if (type === rule || type === atrule) {
node.raws.between = node.raws.after = '';
node.raws.semicolon = false;
}
}
exports.default = (0, _postcss.plugin)('cssnano-core', function () {
return function (css) {
css.walk(minimiseWhitespace);
// Remove final newline
css.raws.after = '';
};
});
module.exports = exports['default'];

View File

@@ -0,0 +1,8 @@
"use strict";
exports.__esModule = true;
exports.default = getEvenValues;
function getEvenValues(list, index) {
return index % 2 === 0;
}
module.exports = exports["default"];

View File

@@ -0,0 +1,26 @@
'use strict';
exports.__esModule = true;
var _postcss = require('postcss');
var _postcssValueParser = require('postcss-value-parser');
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function filterOptimiser(decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
if (node.type === 'function' || node.type === 'div' && node.value === ',') {
node.before = node.after = '';
}
}).toString();
}
exports.default = (0, _postcss.plugin)('cssnano-filter-optimiser', function () {
return function (css) {
return css.walkDecls(/filter/, filterOptimiser);
};
});
module.exports = exports['default'];

View File

@@ -0,0 +1,46 @@
'use strict';
exports.__esModule = true;
var _postcss = require('postcss');
var _postcssValueParser = require('postcss-value-parser');
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function reduceCalcWhitespaces(node) {
if (node.type === 'space') {
node.value = ' ';
} else if (node.type === 'function') {
node.before = node.after = '';
}
}
function reduceWhitespaces(node) {
if (node.type === 'space') {
node.value = ' ';
} else if (node.type === 'div') {
node.before = node.after = '';
} else if (node.type === 'function') {
node.before = node.after = '';
if (node.value === 'calc') {
_postcssValueParser2.default.walk(node.nodes, reduceCalcWhitespaces);
return false;
}
}
}
function transformDecls(decl) {
if (!/filter/.test(decl.prop)) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(reduceWhitespaces).toString();
}
}
exports.default = (0, _postcss.plugin)('cssnano-function-optimiser', function () {
return function (css) {
return css.walkDecls(transformDecls);
};
});
module.exports = exports['default'];

View File

@@ -0,0 +1,15 @@
'use strict';
exports.__esModule = true;
exports.default = getArguments;
function getArguments(node) {
return node.nodes.reduce(function (list, child) {
if (child.type !== 'div') {
list[list.length - 1].push(child);
} else {
list.push([]);
}
return list;
}, [[]]);
}
module.exports = exports['default'];

View File

@@ -0,0 +1,14 @@
"use strict";
exports.__esModule = true;
exports.default = getMatchFactory;
function getMatchFactory(mappings) {
return function getMatch(args) {
return args.reduce(function (list, arg, i) {
return list.filter(function (keyword) {
return keyword[1][i] === arg;
});
}, mappings);
};
}
module.exports = exports["default"];

View File

@@ -0,0 +1,228 @@
'use strict';
exports.__esModule = true;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var postcss = require('postcss');
var valueParser = require('postcss-value-parser');
/*
* Constants (parser usage)
*/
var SINGLE_QUOTE = 39;
var DOUBLE_QUOTE = 34;
var BACKSLASH = 92;
var NEWLINE = 10;
var SPACE = 32;
var FEED = 12;
var TAB = 9;
var CR = 13;
var WORD_END = /[ \n\t\r\f'"\\]/g;
/*
* Constants (node type strings)
*/
var C_STRING = 'string';
var C_ESCAPED_SINGLE_QUOTE = 'escapedSingleQuote';
var C_ESCAPED_DOUBLE_QUOTE = 'escapedDoubleQuote';
var C_SINGLE_QUOTE = 'singleQuote';
var C_DOUBLE_QUOTE = 'doubleQuote';
var C_NEWLINE = 'newline';
var C_SINGLE = 'single';
/*
* Literals
*/
var L_SINGLE_QUOTE = '\'';
var L_DOUBLE_QUOTE = '"';
var L_NEWLINE = '\\\n';
/*
* Parser nodes
*/
var T_ESCAPED_SINGLE_QUOTE = { type: C_ESCAPED_SINGLE_QUOTE, value: '\\\'' };
var T_ESCAPED_DOUBLE_QUOTE = { type: C_ESCAPED_DOUBLE_QUOTE, value: '\\"' };
var T_SINGLE_QUOTE = { type: C_SINGLE_QUOTE, value: L_SINGLE_QUOTE };
var T_DOUBLE_QUOTE = { type: C_DOUBLE_QUOTE, value: L_DOUBLE_QUOTE };
var T_NEWLINE = { type: C_NEWLINE, value: L_NEWLINE };
function stringify(ast) {
return ast.nodes.reduce(function (str, _ref) {
var value = _ref.value;
// Collapse multiple line strings automatically
if (value === L_NEWLINE) {
return str;
}
return str + value;
}, '');
}
function parse(str) {
var code = void 0,
next = void 0,
value = void 0;
var pos = 0;
var len = str.length;
var ast = {
nodes: [],
types: {
escapedSingleQuote: 0,
escapedDoubleQuote: 0,
singleQuote: 0,
doubleQuote: 0
},
quotes: false
};
while (pos < len) {
code = str.charCodeAt(pos);
switch (code) {
case SPACE:
case TAB:
case CR:
case FEED:
next = pos;
do {
next += 1;
code = str.charCodeAt(next);
} while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);
ast.nodes.push({
type: 'space',
value: str.slice(pos, next)
});
pos = next - 1;
break;
case SINGLE_QUOTE:
ast.nodes.push(T_SINGLE_QUOTE);
ast.types[C_SINGLE_QUOTE]++;
ast.quotes = true;
break;
case DOUBLE_QUOTE:
ast.nodes.push(T_DOUBLE_QUOTE);
ast.types[C_DOUBLE_QUOTE]++;
ast.quotes = true;
break;
case BACKSLASH:
next = pos + 1;
if (str.charCodeAt(next) === SINGLE_QUOTE) {
ast.nodes.push(T_ESCAPED_SINGLE_QUOTE);
ast.types[C_ESCAPED_SINGLE_QUOTE]++;
ast.quotes = true;
pos = next;
break;
} else if (str.charCodeAt(next) === DOUBLE_QUOTE) {
ast.nodes.push(T_ESCAPED_DOUBLE_QUOTE);
ast.types[C_ESCAPED_DOUBLE_QUOTE]++;
ast.quotes = true;
pos = next;
break;
} else if (str.charCodeAt(next) === NEWLINE) {
ast.nodes.push(T_NEWLINE);
pos = next;
break;
}
/*
* We need to fall through here to handle the token as
* a whole word. The missing 'break' is intentional.
*/
default:
WORD_END.lastIndex = pos + 1;
WORD_END.test(str);
if (WORD_END.lastIndex === 0) {
next = len - 1;
} else {
next = WORD_END.lastIndex - 2;
}
value = str.slice(pos, next + 1);
ast.nodes.push({
type: C_STRING,
value: value
});
pos = next;
}
pos++;
}
return ast;
}
function changeWrappingQuotes(node, ast) {
var types = ast.types;
if (types[C_SINGLE_QUOTE] || types[C_DOUBLE_QUOTE]) {
return;
}
if (node.quote === L_SINGLE_QUOTE && types[C_ESCAPED_SINGLE_QUOTE] > 0 && !types[C_ESCAPED_DOUBLE_QUOTE]) {
node.quote = L_DOUBLE_QUOTE;
}
if (node.quote === L_DOUBLE_QUOTE && types[C_ESCAPED_DOUBLE_QUOTE] > 0 && !types[C_ESCAPED_SINGLE_QUOTE]) {
node.quote = L_SINGLE_QUOTE;
}
ast.nodes = ast.nodes.reduce(function (newAst, child) {
if (child.type === C_ESCAPED_DOUBLE_QUOTE && node.quote === L_SINGLE_QUOTE) {
return [].concat(newAst, [T_DOUBLE_QUOTE]);
}
if (child.type === C_ESCAPED_SINGLE_QUOTE && node.quote === L_DOUBLE_QUOTE) {
return [].concat(newAst, [T_SINGLE_QUOTE]);
}
return [].concat(newAst, [child]);
}, []);
}
function normalize(value, preferredQuote) {
if (!value || !value.length) {
return value;
}
return valueParser(value).walk(function (child) {
if (child.type !== C_STRING) {
return;
}
var ast = parse(child.value);
if (ast.quotes) {
changeWrappingQuotes(child, ast);
} else if (preferredQuote === C_SINGLE) {
child.quote = L_SINGLE_QUOTE;
} else {
child.quote = L_DOUBLE_QUOTE;
}
child.value = stringify(ast);
}).toString();
}
exports.default = postcss.plugin('cssnano-normalize-string', function (opts) {
var _preferredQuote$opts = _extends({
preferredQuote: 'double'
}, opts),
preferredQuote = _preferredQuote$opts.preferredQuote;
return function (css) {
css.walk(function (node) {
if (node.type === 'rule') {
node.selector = normalize(node.selector, preferredQuote);
}
if (node.type === 'decl') {
node.value = normalize(node.value, preferredQuote);
}
if (node.type === 'atrule') {
node.params = normalize(node.params, preferredQuote);
}
});
};
});
module.exports = exports['default'];

View File

@@ -0,0 +1,67 @@
'use strict';
exports.__esModule = true;
var _postcss = require('postcss');
var _postcss2 = _interopRequireDefault(_postcss);
var _postcssValueParser = require('postcss-value-parser');
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function unicode(range) {
var values = range.slice(2).split('-');
if (values.length < 2) {
return range;
}
var left = values[0].split('');
var right = values[1].split('');
if (left.length !== right.length) {
return range;
}
var questionCounter = 0;
var merged = left.reduce(function (group, value, index) {
if (group === false) {
return false;
}
if (value === right[index] && !questionCounter) {
return group + value;
}
if (value === '0' && right[index] === 'f') {
questionCounter++;
return group + '?';
}
return false;
}, 'u+');
/*
* The maximum number of wildcard characters (?) for ranges is 5.
*/
if (merged && questionCounter < 6) {
return merged;
}
return range;
}
exports.default = _postcss2.default.plugin('cssnano-normalize-unicode', function () {
return function (css) {
css.walkDecls(/^unicode-range$/i, function (node) {
node.prop = 'unicode-range';
node.value = (0, _postcssValueParser2.default)(node.value).walk(function (child) {
if (child.type === 'word') {
child.value = unicode(child.value.toLowerCase());
}
return false;
}).toString();
});
};
});
module.exports = exports['default'];

View File

@@ -0,0 +1,93 @@
'use strict';
exports.__esModule = true;
var _postcss = require('postcss');
var _postcss2 = _interopRequireDefault(_postcss);
var _postcssValueParser = require('postcss-value-parser');
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
var _evenValues = require('./evenValues');
var _evenValues2 = _interopRequireDefault(_evenValues);
var _getArguments = require('./getArguments');
var _getArguments2 = _interopRequireDefault(_getArguments);
var _getMatch = require('./getMatch');
var _getMatch2 = _interopRequireDefault(_getMatch);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var mappings = [['repeat-x', ['repeat', 'no-repeat']], ['repeat-y', ['no-repeat', 'repeat']], ['repeat', ['repeat', 'repeat']], ['space', ['space', 'space']], ['round', ['round', 'round']], ['no-repeat', ['no-repeat', 'no-repeat']]];
var repeat = [mappings[0][0], mappings[1][0], mappings[2][0], mappings[3][0], mappings[4][0], mappings[5][0]];
var getMatch = (0, _getMatch2.default)(mappings);
function transform(decl) {
var values = (0, _postcssValueParser2.default)(decl.value);
if (values.nodes.length === 1) {
return;
}
var args = (0, _getArguments2.default)(values);
var relevant = [];
args.forEach(function (arg) {
relevant.push({
start: null,
end: null
});
arg.forEach(function (part, index) {
var isRepeat = ~repeat.indexOf(part.value);
var len = relevant.length - 1;
if (relevant[len].start === null && isRepeat) {
relevant[len].start = index;
relevant[len].end = index;
return;
}
if (relevant[len].start !== null) {
if (part.type === 'space') {
return;
} else if (isRepeat) {
relevant[len].end = index;
return;
}
return;
}
});
});
relevant.forEach(function (range, index) {
if (range.start === null) {
return;
}
var val = args[index].slice(range.start, range.end + 1);
if (val.length !== 3) {
return;
}
var match = getMatch(val.filter(_evenValues2.default).map(function (n) {
return n.value;
}));
if (match.length) {
args[index][range.start].value = match[0][0];
args[index][range.start + 1].value = '';
args[index][range.end].value = '';
}
});
decl.value = values.toString();
}
var plugin = _postcss2.default.plugin('cssnano-reduce-background-repeat', function () {
return function (css) {
return css.walkDecls(/background(-repeat|$)/, transform);
};
});
plugin.mappings = mappings;
exports.default = plugin;
module.exports = exports['default'];

View File

@@ -0,0 +1,55 @@
'use strict';
exports.__esModule = true;
var _postcss = require('postcss');
var _postcss2 = _interopRequireDefault(_postcss);
var _postcssValueParser = require('postcss-value-parser');
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
var _evenValues = require('./evenValues');
var _evenValues2 = _interopRequireDefault(_evenValues);
var _getMatch = require('./getMatch');
var _getMatch2 = _interopRequireDefault(_getMatch);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Specification: https://drafts.csswg.org/css-display/#the-display-properties
*/
var mappings = [['block', ['block', 'flow']], ['flow-root', ['block', 'flow-root']], ['inline', ['inline', 'flow']], ['inline-block', ['inline', 'flow-root']], ['run-in', ['run-in', 'flow']], ['list-item', ['list-item', 'block', 'flow']], ['inline-list-item', ['list-item', 'inline', 'flow']], ['flex', ['block', 'flex']], ['inline-flex', ['inline', 'flex']], ['grid', ['block', 'grid']], ['inline-grid', ['inline', 'grid']], ['ruby', ['inline', 'ruby']], ['table', ['block', 'table']], ['inline-table', ['inline', 'table']], ['table-cell', ['table-cell', 'flow']], ['table-caption', ['table-caption', 'flow']], ['ruby-base', ['ruby-base', 'flow']], ['ruby-text', ['ruby-text', 'flow']]];
var getMatch = (0, _getMatch2.default)(mappings);
function transform(node) {
var _valueParser = (0, _postcssValueParser2.default)(node.value),
nodes = _valueParser.nodes;
if (nodes.length === 1) {
return;
}
var match = getMatch(nodes.filter(_evenValues2.default).map(function (n) {
return n.value;
}));
if (match.length) {
node.value = match[0][0];
}
}
var plugin = _postcss2.default.plugin('cssnano-reduce-display-values', function () {
return function (css) {
return css.walkDecls('display', transform);
};
});
plugin.mappings = mappings;
exports.default = plugin;
module.exports = exports['default'];

View File

@@ -0,0 +1,119 @@
'use strict';
exports.__esModule = true;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _postcss = require('postcss');
var _postcssValueParser = require('postcss-value-parser');
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
var _has = require('has');
var _has2 = _interopRequireDefault(_has);
var _getArguments = require('./getArguments');
var _getArguments2 = _interopRequireDefault(_getArguments);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var directions = ['top', 'right', 'bottom', 'left', 'center'];
var properties = ['background', 'background-position', '-webkit-perspective-origin', 'perspective-origin'];
var center = '50%';
var horizontal = {
right: '100%',
left: '0'
};
var vertical = {
bottom: '100%',
top: '0'
};
function transform(decl) {
if (!~properties.indexOf(decl.prop)) {
return;
}
var values = (0, _postcssValueParser2.default)(decl.value);
var args = (0, _getArguments2.default)(values);
var relevant = [];
args.forEach(function (arg) {
relevant.push({
start: null,
end: null
});
arg.forEach(function (part, index) {
var isPosition = ~directions.indexOf(part.value) || (0, _postcssValueParser.unit)(part.value);
var len = relevant.length - 1;
if (relevant[len].start === null && isPosition) {
relevant[len].start = index;
relevant[len].end = index;
return;
}
if (relevant[len].start !== null) {
if (part.type === 'space') {
return;
} else if (isPosition) {
relevant[len].end = index;
return;
}
return;
}
});
});
relevant.forEach(function (range, index) {
if (range.start === null) {
return;
}
var position = args[index].slice(range.start, range.end + 1);
if (position.length > 3) {
return;
}
if (position.length === 1 || position[2].value === 'center') {
if (position[2]) {
position[2].value = position[1].value = '';
}
var value = position[0].value;
var map = _extends({}, horizontal, {
center: center
});
if ((0, _has2.default)(map, value)) {
position[0].value = map[value];
}
return;
}
if (position[0].value === 'center' && ~directions.indexOf(position[2].value)) {
position[0].value = position[1].value = '';
var _value = position[2].value;
if ((0, _has2.default)(horizontal, _value)) {
position[2].value = horizontal[_value];
}
return;
}
if ((0, _has2.default)(horizontal, position[0].value) && (0, _has2.default)(vertical, position[2].value)) {
position[0].value = horizontal[position[0].value];
position[2].value = vertical[position[2].value];
return;
} else if ((0, _has2.default)(vertical, position[0].value) && (0, _has2.default)(horizontal, position[2].value)) {
var first = position[0].value;
position[0].value = horizontal[position[2].value];
position[2].value = vertical[first];
return;
}
});
decl.value = values.toString();
}
exports.default = (0, _postcss.plugin)('cssnano-reduce-positions', function () {
return function (css) {
return css.walkDecls(transform);
};
});
module.exports = exports['default'];

View File

@@ -0,0 +1,67 @@
'use strict';
exports.__esModule = true;
var _postcss = require('postcss');
var _postcssValueParser = require('postcss-value-parser');
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
var _evenValues = require('./evenValues');
var _evenValues2 = _interopRequireDefault(_evenValues);
var _getMatch = require('./getMatch');
var _getMatch2 = _interopRequireDefault(_getMatch);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var keywords = [['ease', [0.25, 0.1, 0.25, 1]], ['linear', [0, 0, 1, 1]], ['ease-in', [0.42, 0, 1, 1]], ['ease-out', [0, 0, 0.58, 1]], ['ease-in-out', [0.42, 0, 0.58, 1]]];
var getValue = function getValue(node) {
return parseFloat(node.value);
};
var getMatch = (0, _getMatch2.default)(keywords);
function reduce(node) {
if (node.type !== 'function') {
return false;
}
if (node.value === 'steps') {
// Don't bother checking the step-end case as it has the same length
// as steps(1)
if (getValue(node.nodes[0]) === 1 && node.nodes[2] && node.nodes[2].value === 'start') {
node.type = 'word';
node.value = 'step-start';
delete node.nodes;
return;
}
// The end case is actually the browser default, so it isn't required.
if (node.nodes[2] && node.nodes[2].value === 'end') {
node.nodes = [node.nodes[0]];
return;
}
return false;
}
if (node.value === 'cubic-bezier') {
var match = getMatch(node.nodes.filter(_evenValues2.default).map(getValue));
if (match.length) {
node.type = 'word';
node.value = match[0][0];
delete node.nodes;
return;
}
}
}
exports.default = (0, _postcss.plugin)('cssnano-reduce-timing-functions', function () {
return function (css) {
css.walkDecls(/(animation|transition)(-timing-function|$)/, function (decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(reduce).toString();
});
};
});
module.exports = exports['default'];

View File

@@ -0,0 +1,24 @@
'use strict';
exports.__esModule = true;
var _postcss = require('postcss');
exports.default = (0, _postcss.plugin)('cssnano-reset-stylecache', function () {
return function (css, result) {
result.root.rawCache = {
colon: ':',
indent: '',
beforeDecl: '',
beforeRule: '',
beforeOpen: '',
beforeClose: '',
beforeComment: '',
after: '',
emptyBody: '',
commentLeft: '',
commentRight: ''
};
};
});
module.exports = exports['default'];