Socket
Socket
Sign inDemoInstall

postcss-reduce-transforms

Package Overview
Dependencies
Maintainers
4
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

postcss-reduce-transforms - npm Package Compare versions

Comparing version 1.0.4 to 4.0.0-nightly.2020.7.24

342

dist/index.js

@@ -1,193 +0,251 @@

'use strict';
"use strict";
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _has = require('has');
var _has = _interopRequireDefault(require("has"));
var _has2 = _interopRequireDefault(_has);
var _postcss = _interopRequireDefault(require("postcss"));
var _postcss = require('postcss');
var _postcssValueParser = _interopRequireWildcard(require("postcss-value-parser"));
var _postcss2 = _interopRequireDefault(_postcss);
var _cssnanoUtils = require("cssnano-utils");
var _postcssValueParser = require('postcss-value-parser');
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getValues(list, _ref, index) {
var value = _ref.value;
function getValues(list, node, index) {
if (index % 2 === 0) {
let value = NaN;
if (index % 2 === 0) {
return [].concat(list, [parseFloat(value)]);
if (node.type === 'function' && (node.value === 'var' || node.value === 'env') && node.nodes.length === 1) {
value = (0, _postcssValueParser.stringify)(node.nodes);
} else if (node.type === 'word') {
value = parseFloat(node.value);
}
return list;
return [...list, value];
}
return list;
}
function matrix3d(node, values) {
// matrix3d(a, b, 0, 0, c, d, 0, 0, 0, 0, 1, 0, tx, ty, 0, 1) => matrix(a, b, c, d, tx, ty)
if (values[15] && values[2] === 0 && values[3] === 0 && values[6] === 0 && values[7] === 0 && values[8] === 0 && values[9] === 0 && values[10] === 1 && values[11] === 0 && values[14] === 0 && values[15] === 1) {
var nodes = node.nodes;
if (values.length !== 16) {
return;
} // matrix3d(a, b, 0, 0, c, d, 0, 0, 0, 0, 1, 0, tx, ty, 0, 1) => matrix(a, b, c, d, tx, ty)
node.value = 'matrix';
node.nodes = [nodes[0], // a
nodes[1], // ,
nodes[2], // b
nodes[3], // ,
nodes[8], // c
nodes[9], // ,
nodes[10], // d
nodes[11], // ,
nodes[24], // tx
nodes[25], // ,
nodes[26]];
}
if (values[15] && values[2] === 0 && values[3] === 0 && values[6] === 0 && values[7] === 0 && values[8] === 0 && values[9] === 0 && values[10] === 1 && values[11] === 0 && values[14] === 0 && values[15] === 1) {
const {
nodes
} = node;
node.value = 'matrix';
node.nodes = [nodes[0], // a
nodes[1], // ,
nodes[2], // b
nodes[3], // ,
nodes[8], // c
nodes[9], // ,
nodes[10], // d
nodes[11], // ,
nodes[24], // tx
nodes[25], // ,
nodes[26] // ty
];
}
}
var rotate3dMappings = [['rotateX', [1, 0, 0]], // rotate3d(1, 0, 0, a) => rotateX(a)
const rotate3dMappings = [['rotateX', [1, 0, 0]], // rotate3d(1, 0, 0, a) => rotateX(a)
['rotateY', [0, 1, 0]], // rotate3d(0, 1, 0, a) => rotateY(a)
['rotate', [0, 0, 1]]];
['rotate', [0, 0, 1]] // rotate3d(0, 0, 1, a) => rotate(a)
];
const rotate3dMatch = (0, _cssnanoUtils.getMatch)(rotate3dMappings);
function rotate3dMatch(values) {
return values.reduce(function (list, arg, i) {
return list.filter(function (value) {
return value[1][i] === arg;
});
}, rotate3dMappings);
}
function rotate3d(node, values) {
var nodes = node.nodes;
if (values.length !== 4) {
return;
}
if (!nodes[6]) {
return;
}
var match = rotate3dMatch(values.slice(0, 3));
if (match.length) {
node.value = match[0][0];
node.nodes = [nodes[6]];
}
const {
nodes
} = node;
const match = rotate3dMatch(values.slice(0, 3));
if (match.length) {
node.value = match;
node.nodes = [nodes[6]];
}
}
function rotateZ(node) {
// rotateZ(rz) => rotate(rz)
node.value = 'rotate';
function rotateZ(node, values) {
if (values.length !== 1) {
return;
} // rotateZ(rz) => rotate(rz)
node.value = 'rotate';
}
function scale(node, values) {
var nodes = node.nodes;
if (values.length !== 2) {
return;
}
if (!nodes[2]) {
return;
}
var first = values[0];
var second = values[1];
// scale(sx, sy) => scale(sx)
const {
nodes
} = node;
const [first, second] = values; // scale(sx, sy) => scale(sx)
if (first === second) {
node.nodes = [nodes[0]];
return;
}
// scale(sx, 1) => scaleX(sx)
if (second === 1) {
node.value = 'scaleX';
node.nodes = [nodes[0]];
return;
}
// scale(1, sy) => scaleY(sy)
if (first === 1) {
node.value = 'scaleY';
node.nodes = [nodes[2]];
return;
}
if (first === second) {
node.nodes = [nodes[0]];
return;
} // scale(sx, 1) => scaleX(sx)
if (second === 1) {
node.value = 'scaleX';
node.nodes = [nodes[0]];
return;
} // scale(1, sy) => scaleY(sy)
if (first === 1) {
node.value = 'scaleY';
node.nodes = [nodes[2]];
return;
}
}
function scale3d(node, values) {
var nodes = node.nodes;
if (values.length !== 3) {
return;
}
if (!nodes[4]) {
return;
}
var first = values[0];
var second = values[1];
var third = values[2];
// scale3d(sx, 1, 1) => scaleX(sx)
const {
nodes
} = node;
const [first, second, third] = values; // scale3d(sx, 1, 1) => scaleX(sx)
if (second === 1 && third === 1) {
node.value = 'scaleX';
node.nodes = [nodes[0]];
return;
}
// scale3d(1, sy, 1) => scaleY(sy)
if (first === 1 && third === 1) {
node.value = 'scaleY';
node.nodes = [nodes[2]];
return;
}
// scale3d(1, 1, sz) => scaleZ(sz)
if (first === 1 && second === 1) {
node.value = 'scaleZ';
node.nodes = [nodes[4]];
return;
}
if (second === 1 && third === 1) {
node.value = 'scaleX';
node.nodes = [nodes[0]];
return;
} // scale3d(1, sy, 1) => scaleY(sy)
if (first === 1 && third === 1) {
node.value = 'scaleY';
node.nodes = [nodes[2]];
return;
} // scale3d(1, 1, sz) => scaleZ(sz)
if (first === 1 && second === 1) {
node.value = 'scaleZ';
node.nodes = [nodes[4]];
return;
}
}
function translate(node, values) {
var nodes = node.nodes;
if (values.length !== 2) {
return;
}
if (!nodes[2]) {
return;
}
// translate(tx, 0) => translate(tx)
if (values[1] === 0) {
node.nodes = [nodes[0]];
return;
}
// translate(0, ty) => translateY(ty)
if (values[0] === 0) {
node.value = 'translateY';
node.nodes = [nodes[2]];
return;
}
const {
nodes
} = node; // translate(tx, 0) => translate(tx)
if (values[1] === 0) {
node.nodes = [nodes[0]];
return;
} // translate(0, ty) => translateY(ty)
if (values[0] === 0) {
node.value = 'translateY';
node.nodes = [nodes[2]];
return;
}
}
function translate3d(node, values) {
var nodes = node.nodes;
// translate3d(0, 0, tz) => translateZ(tz)
if (values.length !== 3) {
return;
}
if (nodes[4] && values[0] === 0 && values[1] === 0) {
node.value = 'translateZ';
node.nodes = [nodes[4]];
}
const {
nodes
} = node; // translate3d(0, 0, tz) => translateZ(tz)
if (values[0] === 0 && values[1] === 0) {
node.value = 'translateZ';
node.nodes = [nodes[4]];
}
}
var reducers = {
matrix3d: matrix3d,
rotate3d: rotate3d,
rotateZ: rotateZ,
scale: scale,
scale3d: scale3d,
translate: translate,
translate3d: translate3d
const reducers = {
matrix3d,
rotate3d,
rotateZ,
scale,
scale3d,
translate,
translate3d
};
function normalizeReducerName(name) {
const lowerCasedName = name.toLowerCase();
if (lowerCasedName === 'rotatez') {
return 'rotateZ';
}
return lowerCasedName;
}
function reduce(node) {
var nodes = node.nodes;
var type = node.type;
var value = node.value;
const {
nodes,
type,
value
} = node;
const normalizedReducerName = normalizeReducerName(value);
if (type === 'function' && (0, _has2.default)(reducers, value)) {
reducers[value](node, nodes.reduce(getValues, []));
}
return false;
if (type === 'function' && (0, _has.default)(reducers, normalizedReducerName)) {
reducers[normalizedReducerName](node, nodes.reduce(getValues, []));
}
return false;
}
exports.default = _postcss2.default.plugin('postcss-reduce-transforms', function () {
return function (css) {
css.walkDecls(/transform$/, function (decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(reduce).toString();
});
};
var _default = _postcss.default.plugin('postcss-reduce-transforms', () => {
return css => {
const cache = {};
css.walkDecls(/transform$/i, decl => {
const value = decl.value;
if (!value) {
return;
}
if (cache[value]) {
decl.value = cache[value];
return;
}
const result = (0, _postcssValueParser.default)(value).walk(reduce).toString();
decl.value = result;
cache[value] = result;
});
};
});
module.exports = exports['default'];
exports.default = _default;
module.exports = exports.default;
{
"name": "postcss-reduce-transforms",
"version": "1.0.4",
"version": "4.0.0-nightly.2020.7.24",
"description": "Reduce transform functions with PostCSS.",
"main": "dist/index.js",
"scripts": {
"pretest": "eslint src",
"prepublish": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/",
"test": "ava src/__tests__",
"test-012": "ava src/__tests__"
"prebuild": "",
"build": "cross-env BABEL_ENV=publish babel src --config-file ../../babel.config.js --out-dir dist --ignore \"**/__tests__/\"",
"prepublish": ""
},

@@ -17,18 +16,3 @@ "files": [

"license": "MIT",
"devDependencies": {
"ava": "^0.16.0",
"babel-cli": "^6.3.17",
"babel-core": "^6.3.26",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-preset-es2015": "^6.3.13",
"babel-preset-es2015-loose": "^7.0.0",
"babel-preset-stage-0": "^6.3.13",
"babel-register": "^6.9.0",
"del-cli": "^0.2.0",
"eslint": "^3.0.0",
"eslint-config-cssnano": "^3.0.0",
"eslint-plugin-babel": "^3.3.0",
"eslint-plugin-import": "^2.0.1"
},
"homepage": "https://github.com/ben-eb/postcss-reduce-transforms",
"homepage": "https://github.com/cssnano/cssnano",
"author": {

@@ -39,14 +23,15 @@ "name": "Ben Briggs",

},
"repository": "ben-eb/postcss-reduce-transforms",
"repository": "cssnano/cssnano",
"dependencies": {
"has": "^1.0.1",
"postcss": "^5.0.8",
"postcss-value-parser": "^3.0.1"
"cssnano-utils": "nightly",
"has": "^1.0.3",
"postcss": "^7.0.16",
"postcss-value-parser": "^3.3.1"
},
"ava": {
"require": "babel-register"
"bugs": {
"url": "https://github.com/cssnano/cssnano/issues"
},
"eslintConfig": {
"extends": "cssnano"
"engines": {
"node": ">=6.9.0"
}
}
}

@@ -1,2 +0,2 @@

# [postcss][postcss]-reduce-transforms [![Build Status](https://travis-ci.org/ben-eb/postcss-reduce-transforms.svg?branch=master)][ci] [![NPM version](https://badge.fury.io/js/postcss-reduce-transforms.svg)][npm] [![Dependency Status](https://gemnasium.com/ben-eb/postcss-reduce-transforms.svg)][deps]
# [postcss][postcss]-reduce-transforms

@@ -39,6 +39,5 @@ > Reduce transform functions with PostCSS.

## Contributing
## Contributors
Pull requests are welcome. If you add functionality, then please add unit tests
to cover it.
See [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md).

@@ -49,5 +48,2 @@ ## License

[ci]: https://travis-ci.org/ben-eb/postcss-reduce-transforms
[deps]: https://gemnasium.com/ben-eb/postcss-reduce-transforms
[npm]: http://badge.fury.io/js/postcss-reduce-transforms
[postcss]: https://github.com/postcss/postcss
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc