aboutsummaryrefslogtreecommitdiff
path: root/node_modules/postcss-reduce-idents/dist
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/postcss-reduce-idents/dist')
-rw-r--r--node_modules/postcss-reduce-idents/dist/index.js62
-rw-r--r--node_modules/postcss-reduce-idents/dist/lib/cache.js15
-rw-r--r--node_modules/postcss-reduce-idents/dist/lib/counter-style.js65
-rw-r--r--node_modules/postcss-reduce-idents/dist/lib/counter.js92
-rw-r--r--node_modules/postcss-reduce-idents/dist/lib/encode.js22
-rw-r--r--node_modules/postcss-reduce-idents/dist/lib/grid-template.js78
-rw-r--r--node_modules/postcss-reduce-idents/dist/lib/isNum.js11
-rw-r--r--node_modules/postcss-reduce-idents/dist/lib/keyframes.js65
8 files changed, 410 insertions, 0 deletions
diff --git a/node_modules/postcss-reduce-idents/dist/index.js b/node_modules/postcss-reduce-idents/dist/index.js
new file mode 100644
index 00000000..32d03fb4
--- /dev/null
+++ b/node_modules/postcss-reduce-idents/dist/index.js
@@ -0,0 +1,62 @@
+'use strict';
+
+exports.__esModule = true;
+
+var _postcss = require('postcss');
+
+var _postcss2 = _interopRequireDefault(_postcss);
+
+var _encode = require('./lib/encode');
+
+var _encode2 = _interopRequireDefault(_encode);
+
+var _counter = require('./lib/counter');
+
+var _counter2 = _interopRequireDefault(_counter);
+
+var _counterStyle = require('./lib/counter-style');
+
+var _counterStyle2 = _interopRequireDefault(_counterStyle);
+
+var _keyframes = require('./lib/keyframes');
+
+var _keyframes2 = _interopRequireDefault(_keyframes);
+
+var _gridTemplate = require('./lib/grid-template');
+
+var _gridTemplate2 = _interopRequireDefault(_gridTemplate);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+exports.default = _postcss2.default.plugin('postcss-reduce-idents', function () {
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+ _ref$counter = _ref.counter,
+ counter = _ref$counter === undefined ? true : _ref$counter,
+ _ref$counterStyle = _ref.counterStyle,
+ counterStyle = _ref$counterStyle === undefined ? true : _ref$counterStyle,
+ _ref$keyframes = _ref.keyframes,
+ keyframes = _ref$keyframes === undefined ? true : _ref$keyframes,
+ _ref$gridTemplate = _ref.gridTemplate,
+ gridTemplate = _ref$gridTemplate === undefined ? true : _ref$gridTemplate,
+ _ref$encoder = _ref.encoder,
+ encoder = _ref$encoder === undefined ? _encode2.default : _ref$encoder;
+
+ var reducers = [];
+ counter && reducers.push(_counter2.default);
+ counterStyle && reducers.push(_counterStyle2.default);
+ keyframes && reducers.push(_keyframes2.default);
+ gridTemplate && reducers.push(_gridTemplate2.default);
+
+ return function (css) {
+ css.walk(function (node) {
+ reducers.forEach(function (reducer) {
+ return reducer.collect(node, encoder);
+ });
+ });
+
+ reducers.forEach(function (reducer) {
+ return reducer.transform();
+ });
+ };
+});
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/postcss-reduce-idents/dist/lib/cache.js b/node_modules/postcss-reduce-idents/dist/lib/cache.js
new file mode 100644
index 00000000..ccbdcfc6
--- /dev/null
+++ b/node_modules/postcss-reduce-idents/dist/lib/cache.js
@@ -0,0 +1,15 @@
+"use strict";
+
+exports.__esModule = true;
+
+exports.default = function (value, encoder, cache) {
+ if (cache[value]) {
+ return;
+ }
+ cache[value] = {
+ ident: encoder(value, Object.keys(cache).length),
+ count: 0
+ };
+};
+
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/postcss-reduce-idents/dist/lib/counter-style.js b/node_modules/postcss-reduce-idents/dist/lib/counter-style.js
new file mode 100644
index 00000000..a1911765
--- /dev/null
+++ b/node_modules/postcss-reduce-idents/dist/lib/counter-style.js
@@ -0,0 +1,65 @@
+"use strict";
+
+exports.__esModule = true;
+
+var _postcssValueParser = require("postcss-value-parser");
+
+var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
+
+var _cache = require("./cache");
+
+var _cache2 = _interopRequireDefault(_cache);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var RESERVED_KEYWORDS = ["unset", "initial", "inherit", "none", "inline", "outside", "disc", "circle", "square", "decimal", "cjk-decimal", "decimal-leading-zero", "lower-roman", "upper-roman", "lower-greek", "lower-alpha", "lower-latin", "upper-alpha", "upper-latin", "arabic-indic", "armenian", "bengali", "cambodian", "cjk-earthly-branch", "cjk-heavenly-stem", "cjk-ideographic", "devanagari", "ethiopic-numeric", "georgian", "gujarati", "gurmukhi", "hebrew", "hiragana", "hiragana-iroha", "japanese-formal", "japanese-informal", "kannada", "katakana", "katakana-iroha", "khmer", "korean-hangul-formal", "korean-hanja-formal", "korean-hanja-informal", "lao", "lower-armenian", "malayalam", "mongolian", "myanmar", "oriya", "persian", "simp-chinese-formal", "simp-chinese-informal", "tamil", "telugu", "thai", "tibetan", "trad-chinese-formal", "trad-chinese-informal", "upper-armenian", "disclosure-open", "disclosure-close"];
+
+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"]; \ No newline at end of file
diff --git a/node_modules/postcss-reduce-idents/dist/lib/counter.js b/node_modules/postcss-reduce-idents/dist/lib/counter.js
new file mode 100644
index 00000000..6260efa9
--- /dev/null
+++ b/node_modules/postcss-reduce-idents/dist/lib/counter.js
@@ -0,0 +1,92 @@
+"use strict";
+
+exports.__esModule = true;
+
+var _postcssValueParser = require("postcss-value-parser");
+
+var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
+
+var _cache = require("./cache");
+
+var _cache2 = _interopRequireDefault(_cache);
+
+var _isNum = require("./isNum");
+
+var _isNum2 = _interopRequireDefault(_isNum);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var RESERVED_KEYWORDS = ["unset", "initial", "inherit", "none"];
+
+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"]; \ No newline at end of file
diff --git a/node_modules/postcss-reduce-idents/dist/lib/encode.js b/node_modules/postcss-reduce-idents/dist/lib/encode.js
new file mode 100644
index 00000000..6a4ff481
--- /dev/null
+++ b/node_modules/postcss-reduce-idents/dist/lib/encode.js
@@ -0,0 +1,22 @@
+'use strict';
+
+exports.__esModule = true;
+exports.default = encode;
+function encode(val, num) {
+ var base = 52;
+ var characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
+ var character = num % base;
+ var result = characters[character];
+ var remainder = Math.floor(num / base);
+ if (remainder) {
+ base = 64;
+ characters = characters + '0123456789-_';
+ while (remainder) {
+ character = remainder % base;
+ remainder = Math.floor(remainder / base);
+ result = result + characters[character];
+ }
+ }
+ return result;
+};
+module.exports = exports['default']; \ No newline at end of file
diff --git a/node_modules/postcss-reduce-idents/dist/lib/grid-template.js b/node_modules/postcss-reduce-idents/dist/lib/grid-template.js
new file mode 100644
index 00000000..49accbff
--- /dev/null
+++ b/node_modules/postcss-reduce-idents/dist/lib/grid-template.js
@@ -0,0 +1,78 @@
+"use strict";
+
+exports.__esModule = true;
+
+var _postcssValueParser = require("postcss-value-parser");
+
+var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
+
+var _cache = require("./cache");
+
+var _cache2 = _interopRequireDefault(_cache);
+
+var _isNum = require("./isNum");
+
+var _isNum2 = _interopRequireDefault(_isNum);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var RESERVED_KEYWORDS = ["auto", "span", "inherit", "initial", "unset"];
+
+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"]; \ No newline at end of file
diff --git a/node_modules/postcss-reduce-idents/dist/lib/isNum.js b/node_modules/postcss-reduce-idents/dist/lib/isNum.js
new file mode 100644
index 00000000..ddb41fad
--- /dev/null
+++ b/node_modules/postcss-reduce-idents/dist/lib/isNum.js
@@ -0,0 +1,11 @@
+"use strict";
+
+exports.__esModule = true;
+exports.default = isNum;
+
+var _postcssValueParser = require("postcss-value-parser");
+
+function isNum(node) {
+ return (0, _postcssValueParser.unit)(node.value);
+}
+module.exports = exports["default"]; \ No newline at end of file
diff --git a/node_modules/postcss-reduce-idents/dist/lib/keyframes.js b/node_modules/postcss-reduce-idents/dist/lib/keyframes.js
new file mode 100644
index 00000000..1b95a876
--- /dev/null
+++ b/node_modules/postcss-reduce-idents/dist/lib/keyframes.js
@@ -0,0 +1,65 @@
+"use strict";
+
+exports.__esModule = true;
+
+var _postcssValueParser = require("postcss-value-parser");
+
+var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
+
+var _cache = require("./cache");
+
+var _cache2 = _interopRequireDefault(_cache);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var RESERVED_KEYWORDS = ["none", "inherit", "initial", "unset"];
+
+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"]; \ No newline at end of file