Socket
Socket
Sign inDemoInstall

postcss-reduce-idents

Package Overview
Dependencies
10
Maintainers
2
Versions
48
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.4.0 to 4.0.0-rc.0

9

CHANGELOG.md

@@ -0,1 +1,10 @@

# 4.0.0-rc.0
* Breaking: Drops support for Node 0.12, we now require at least Node 4.
* Breaking: Update PostCSS to 6.0.0.
* Removed support for compressing whitespace, this is now delegated to
postcss-normalize-whitespace.
* Fixed: The module cache is now kept around, to prevent naming collisions
when working with multiple files.
# 2.4.0

@@ -2,0 +11,0 @@

12

dist/index.js
'use strict';
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

@@ -45,6 +47,6 @@ var _postcss = require('postcss');

var reducers = [];
counter && reducers.push(_counter2.default);
counterStyle && reducers.push(_counterStyle2.default);
keyframes && reducers.push(_keyframes2.default);
gridTemplate && reducers.push(_gridTemplate2.default);
counter && reducers.push((0, _counter2.default)());
counterStyle && reducers.push((0, _counterStyle2.default)());
keyframes && reducers.push((0, _keyframes2.default)());
gridTemplate && reducers.push((0, _gridTemplate2.default)());

@@ -51,0 +53,0 @@ return function (css) {

"use strict";
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});

@@ -5,0 +7,0 @@ exports.default = function (value, encoder, cache) {

"use strict";
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function () {
var cache = {};
var atRules = [];
var decls = [];
return {
collect(node, encoder) {
var name = node.name,
prop = node.prop,
type = node.type;
if (type === 'atrule' && /counter-style/.test(name) && RESERVED_KEYWORDS.indexOf(node.params) === -1) {
(0, _cache2.default)(node.params, encoder, cache);
atRules.push(node);
}
if (type === 'decl' && /(list-style|system)/.test(prop)) {
decls.push(node);
}
},
transform() {
// Iterate each property and change their names
decls.forEach(function (decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
if (node.type === 'word' && node.value in cache) {
cache[node.value].count++;
node.value = cache[node.value].ident;
}
}).toString();
});
// Iterate each at rule and change their name if references to them have been found
atRules.forEach(function (rule) {
var cached = cache[rule.params];
if (cached && cached.count > 0) {
rule.params = cached.ident;
}
});
// reset cache after transform
atRules = [];
decls = [];
}
};
};
var _postcssValueParser = require("postcss-value-parser");

@@ -17,50 +66,2 @@

var cache = {};
var atRules = [];
var decls = [];
exports.default = {
collect: function collect(node, encoder) {
var name = node.name,
prop = node.prop,
type = node.type;
if (type === 'atrule' && /counter-style/.test(name) && RESERVED_KEYWORDS.indexOf(node.params) === -1) {
(0, _cache2.default)(node.params, encoder, cache);
atRules.push(node);
}
if (type === 'decl' && /(list-style|system)/.test(prop)) {
decls.push(node);
}
},
transform: function transform() {
// Iterate each property and change their names
decls.forEach(function (decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
if (node.type === 'word' && node.value in cache) {
cache[node.value].count++;
node.value = cache[node.value].ident;
} else if (node.type === 'space') {
node.value = ' ';
} else if (node.type === 'div') {
node.before = node.after = '';
}
}).toString();
});
// Iterate each at rule and change their name if references to them have been found
atRules.forEach(function (rule) {
var cached = cache[rule.params];
if (cached && cached.count > 0) {
rule.params = cached.ident;
}
});
// reset cache after transform
cache = {};
atRules = [];
decls = [];
}
};
module.exports = exports["default"];
"use strict";
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function () {
var cache = {};
var declOneCache = [];
var declTwoCache = [];
return {
collect(node, encoder) {
var prop = node.prop,
type = node.type;
if (type !== 'decl') {
return;
}
if (/counter-(reset|increment)/.test(prop)) {
node.value = (0, _postcssValueParser2.default)(node.value).walk(function (child) {
if (child.type === 'word' && !(0, _isNum2.default)(child) && RESERVED_KEYWORDS.indexOf(child.value) === -1) {
(0, _cache2.default)(child.value, encoder, cache);
child.value = cache[child.value].ident;
}
});
declOneCache.push(node);
} else if (/content/.test(prop)) {
declTwoCache.push(node);
}
},
transform() {
declTwoCache.forEach(function (decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
var type = node.type,
value = node.value;
if (type === 'function' && (value === 'counter' || value === 'counters')) {
(0, _postcssValueParser.walk)(node.nodes, function (child) {
if (child.type === 'word' && child.value in cache) {
cache[child.value].count++;
child.value = cache[child.value].ident;
}
});
}
if (type === 'space') {
node.value = ' ';
}
return false;
}).toString();
});
declOneCache.forEach(function (decl) {
decl.value = decl.value.walk(function (node) {
if (node.type === 'word' && !(0, _isNum2.default)(node)) {
Object.keys(cache).forEach(function (key) {
var cached = cache[key];
if (cached.ident === node.value && !cached.count) {
node.value = key;
}
});
}
}).toString();
});
// reset cache after transform
declOneCache = [];
declTwoCache = [];
}
};
};
var _postcssValueParser = require("postcss-value-parser");

@@ -21,73 +91,2 @@

var cache = {};
var declOneCache = [];
var declTwoCache = [];
exports.default = {
collect: function collect(node, encoder) {
var prop = node.prop,
type = node.type;
if (type !== 'decl') {
return;
}
if (/counter-(reset|increment)/.test(prop)) {
node.value = (0, _postcssValueParser2.default)(node.value).walk(function (child) {
if (child.type === 'word' && !(0, _isNum2.default)(child) && RESERVED_KEYWORDS.indexOf(child.value) === -1) {
(0, _cache2.default)(child.value, encoder, cache);
child.value = cache[child.value].ident;
}
if (child.type === 'space') {
child.value = ' ';
}
});
declOneCache.push(node);
} else if (/content/.test(prop)) {
declTwoCache.push(node);
}
},
transform: function transform() {
declTwoCache.forEach(function (decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
var type = node.type,
value = node.value;
if (type === 'function' && (value === 'counter' || value === 'counters')) {
(0, _postcssValueParser.walk)(node.nodes, function (child) {
if (child.type === 'word' && child.value in cache) {
cache[child.value].count++;
child.value = cache[child.value].ident;
} else if (child.type === 'div') {
child.before = child.after = '';
}
});
}
if (type === 'space') {
node.value = ' ';
}
return false;
}).toString();
});
declOneCache.forEach(function (decl) {
decl.value = decl.value.walk(function (node) {
if (node.type === 'word' && !(0, _isNum2.default)(node)) {
Object.keys(cache).forEach(function (key) {
var cached = cache[key];
if (cached.ident === node.value && !cached.count) {
node.value = key;
}
});
}
}).toString();
});
// reset cache after transform
cache = {};
declOneCache = [];
declTwoCache = [];
}
};
module.exports = exports["default"];
'use strict';
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = encode;

@@ -5,0 +7,0 @@ function encode(val, num) {

"use strict";
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function () {
var cache = {};
var declCache = [];
return {
collect(node, encoder) {
if (node.type !== 'decl') {
return;
}
if (/(grid-template|grid-template-areas)/.test(node.prop)) {
(0, _postcssValueParser2.default)(node.value).walk(function (child) {
if (child.type === 'string') {
child.value.split(/\s+/).forEach(function (word) {
if (/\.+/.test(word)) {
// reduce empty zones to a single `.`
node.value = node.value.replace(word, ".");
} else if (word && RESERVED_KEYWORDS.indexOf(word) === -1) {
(0, _cache2.default)(word, encoder, cache);
}
});
}
});
declCache.push(node);
} else if (node.prop === 'grid-area') {
(0, _postcssValueParser2.default)(node.value).walk(function (child) {
if (child.type === 'word' && RESERVED_KEYWORDS.indexOf(child.value) === -1) {
(0, _cache2.default)(child.value, encoder, cache);
}
});
declCache.push(node);
}
},
transform() {
declCache.forEach(function (decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
if (/(grid-template|grid-template-areas)/.test(decl.prop)) {
node.value.split(/\s+/).forEach(function (word) {
if (word in cache) {
node.value = node.value.replace(word, cache[word].ident);
}
});
node.value = node.value.replace(/\s+/g, " "); // merge white-spaces
}
if (decl.prop === 'grid-area' && !(0, _isNum2.default)(node)) {
if (node.value in cache) {
node.value = cache[node.value].ident;
}
}
return false;
}).toString();
});
// reset cache after transform
declCache = [];
}
};
};
var _postcssValueParser = require("postcss-value-parser");

@@ -21,59 +83,2 @@

var cache = {};
var declCache = [];
exports.default = {
collect: function collect(node, encoder) {
if (node.type !== 'decl') {
return;
}
if (/(grid-template|grid-template-areas)/.test(node.prop)) {
(0, _postcssValueParser2.default)(node.value).walk(function (child) {
if (child.type === 'string') {
child.value.split(/\s+/).forEach(function (word) {
if (/\.+/.test(word)) {
// reduce empty zones to a single `.`
node.value = node.value.replace(word, ".");
} else if (word && RESERVED_KEYWORDS.indexOf(word) === -1) {
(0, _cache2.default)(word, encoder, cache);
}
});
}
});
declCache.push(node);
} else if (node.prop === 'grid-area') {
(0, _postcssValueParser2.default)(node.value).walk(function (child) {
if (child.type === 'word' && RESERVED_KEYWORDS.indexOf(child.value) === -1) {
(0, _cache2.default)(child.value, encoder, cache);
}
});
declCache.push(node);
}
},
transform: function transform() {
declCache.forEach(function (decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
if (/(grid-template|grid-template-areas)/.test(decl.prop)) {
node.value.split(/\s+/).forEach(function (word) {
if (word in cache) {
node.value = node.value.replace(word, cache[word].ident);
}
});
node.value = node.value.replace(/\s+/g, " "); // merge white-spaces
}
if (decl.prop === 'grid-area' && !(0, _isNum2.default)(node)) {
if (node.value in cache) {
node.value = cache[node.value].ident;
}
}
return false;
}).toString();
});
// reset cache after transform
cache = {};
declCache = [];
}
};
module.exports = exports["default"];
"use strict";
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isNum;

@@ -5,0 +7,0 @@

"use strict";
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function () {
var cache = {};
var atRules = [];
var decls = [];
return {
collect(node, encoder) {
var name = node.name,
prop = node.prop,
type = node.type;
if (type === 'atrule' && /keyframes/.test(name) && RESERVED_KEYWORDS.indexOf(node.params) === -1) {
(0, _cache2.default)(node.params, encoder, cache);
atRules.push(node);
}
if (type === 'decl' && /animation/.test(prop)) {
decls.push(node);
}
},
transform() {
var referenced = [];
// Iterate each property and change their names
decls.forEach(function (decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
if (node.type === 'word' && node.value in cache) {
if (!~referenced.indexOf(node.value)) {
referenced.push(node.value);
}
cache[node.value].count++;
node.value = cache[node.value].ident;
}
}).toString();
});
// Iterate each at rule and change their name if references to them have been found
atRules.forEach(function (rule) {
var cached = cache[rule.params];
if (cached && cached.count > 0 && !!~referenced.indexOf(rule.params)) {
rule.params = cached.ident;
}
});
// reset cache after transform
atRules = [];
decls = [];
}
};
};
var _postcssValueParser = require("postcss-value-parser");

@@ -17,50 +71,2 @@

var cache = {};
var atRules = [];
var decls = [];
exports.default = {
collect: function collect(node, encoder) {
var name = node.name,
prop = node.prop,
type = node.type;
if (type === 'atrule' && /keyframes/.test(name) && RESERVED_KEYWORDS.indexOf(node.params) === -1) {
(0, _cache2.default)(node.params, encoder, cache);
atRules.push(node);
}
if (type === 'decl' && /animation/.test(prop)) {
decls.push(node);
}
},
transform: function transform() {
// Iterate each property and change their names
decls.forEach(function (decl) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
if (node.type === 'word' && node.value in cache) {
cache[node.value].count++;
node.value = cache[node.value].ident;
} else if (node.type === 'space') {
node.value = ' ';
} else if (node.type === 'div') {
node.before = node.after = '';
}
}).toString();
});
// Iterate each at rule and change their name if references to them have been found
atRules.forEach(function (rule) {
var cached = cache[rule.params];
if (cached && cached.count > 0) {
rule.params = cached.ident;
}
});
// reset cache after transform
cache = {};
atRules = [];
decls = [];
}
};
module.exports = exports["default"];
{
"name": "postcss-reduce-idents",
"version": "2.4.0",
"version": "4.0.0-rc.0",
"description": "Reduce custom identifiers with PostCSS.",

@@ -11,8 +11,3 @@ "main": "dist/index.js",

"scripts": {
"contributorAdd": "all-contributors add",
"contributorGenerate": "all-contributors generate",
"pretest": "eslint src --fix",
"prepublish": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/",
"test": "ava src/__tests__/*.js",
"test-012": "ava src/__tests__/*.js"
"prepublish": "cross-env BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/"
},

@@ -26,18 +21,6 @@ "keywords": [

"devDependencies": {
"all-contributors-cli": "^3.0.7",
"ava": "^0.17.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"
"babel-cli": "^6.0.0",
"cross-env": "^3.0.0"
},
"homepage": "https://github.com/ben-eb/postcss-reduce-idents",
"homepage": "https://github.com/ben-eb/cssnano",
"author": {

@@ -48,13 +31,13 @@ "name": "Ben Briggs",

},
"repository": "ben-eb/postcss-reduce-idents",
"repository": "ben-eb/cssnano",
"dependencies": {
"postcss": "^5.0.4",
"postcss-value-parser": "^3.0.2"
"postcss": "^6.0.0",
"postcss-value-parser": "^3.0.0"
},
"ava": {
"require": "babel-register"
"bugs": {
"url": "https://github.com/ben-eb/cssnano/issues"
},
"eslintConfig": {
"extends": "cssnano"
"engines": {
"node": ">=4"
}
}

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

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

@@ -73,3 +73,3 @@ > Reduce [custom identifiers][idents] with PostCSS.

It works for `@keyframes`, `@counter-style`, custom `counter` values and grid area definitions. See the
[documentation][idents] for more information, or the [tests](test.js) for more
[documentation][idents] for more information, or the [tests](src/__tests__) for more
examples.

@@ -131,12 +131,5 @@

Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
See [CONTRIBUTORS.md](https://github.com/ben-eb/cssnano/blob/master/CONTRIBUTORS.md).
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
| [<img src="https://avatars.githubusercontent.com/u/1282980?v=3" width="100px;"/><br /><sub>Ben Briggs</sub>](http://beneb.info)<br />[💻](https://github.com/ben-eb/postcss-reduce-idents/commits?author=ben-eb) [📖](https://github.com/ben-eb/postcss-reduce-idents/commits?author=ben-eb) 👀 [⚠️](https://github.com/ben-eb/postcss-reduce-idents/commits?author=ben-eb) | [<img src="https://avatars.githubusercontent.com/u/5635476?v=3" width="100px;"/><br /><sub>Bogdan Chadkin</sub>](https://github.com/TrySound)<br />[⚠️](https://github.com/ben-eb/postcss-reduce-idents/commits?author=TrySound) [💻](https://github.com/ben-eb/postcss-reduce-idents/commits?author=TrySound) | [<img src="https://avatars.githubusercontent.com/u/13041?v=3" width="100px;"/><br /><sub>Guillermo Rauch</sub>](http://twitter.com/rauchg)<br />[💻](https://github.com/ben-eb/postcss-reduce-idents/commits?author=rauchg) [📖](https://github.com/ben-eb/postcss-reduce-idents/commits?author=rauchg) [⚠️](https://github.com/ben-eb/postcss-reduce-idents/commits?author=rauchg) | [<img src="https://avatars.githubusercontent.com/u/566536?v=3" width="100px;"/><br /><sub>Sylvain Pollet-Villard</sub>](https://github.com/sylvainpolletvillard)<br />[💻](https://github.com/ben-eb/postcss-reduce-idents/commits?author=sylvainpolletvillard) [📖](https://github.com/ben-eb/postcss-reduce-idents/commits?author=sylvainpolletvillard) [⚠️](https://github.com/ben-eb/postcss-reduce-idents/commits?author=sylvainpolletvillard) |
| :---: | :---: | :---: | :---: |
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
## License

@@ -146,7 +139,4 @@

[idents]: https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident
[ci]: https://travis-ci.org/ben-eb/postcss-reduce-idents
[deps]: https://gemnasium.com/ben-eb/postcss-reduce-idents
[idents]: https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident
[npm]: http://badge.fury.io/js/postcss-reduce-idents
[postcss]: https://github.com/postcss/postcss
SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc