Socket
Socket
Sign inDemoInstall

csss

Package Overview
Dependencies
82
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.4.7 to 0.4.8

appveyor.yml

62

csss.js

@@ -345,9 +345,14 @@ #!/usr/bin/env node

/* merge multiple selectors outside media queries */
_.each(selectors, function (selector) {
if (selector.length > 1) {
for (var selector in selectors) {
if (selectors[selector].length > 1) {
var last, rl, lDec = [];
_.each(selector, function (sel, i) {
selectors[selector] = _.uniq(selectors[selector]);
for (var i = 0; i < selectors[selector].length; i++) {
var sel = selectors[selector][i];
mergedCSSObjRules[sel].selectors = mergedCSSObjRules[sel].selectors;
if (i === 0) {
last = selector[selector.length - 1];
last = selectors[selector][selectors[selector].length - 1];
rl = rules[last];

@@ -359,16 +364,14 @@ _.each(rl.declarations, function (d) {

if (i !== selector.length - 1) {
if (i !== selectors[selector].length - 1) {
//console.log(rules[last]);
//console.log(rules[sel]);
var rs = rules[sel];
var sDec = [];
_.each(rs.declarations, function (d) {
sDec.push(d.property);
});
//exact the same selector | .text = .text
if (rs.selectors.length === 1 && rl.selectors.length === 1 && rs.selectors[0] === rl.selectors[0]) {
if (rs.selectors.length === 1 && rl.selectors.length === 1 && selector === rl.selectors[0]) {
/* exact the same selector
.text = .text */
var sDec = [];
_.each(rs.declarations, function (d) {
sDec.push(d.property);
});
if (_.isEqual(sDec, lDec)) {

@@ -390,2 +393,19 @@ //exact the same properties

} else if (rs.selectors.length > 1) {
/* different set of selectors
.text, .title | .text */
if (_.isEqual(sDec, lDec)) {
//exact the same properties
if (_.difference(rs.selectors, rl.selectors).length === 0) {
/* same set of selectors
.text, .title | .text, .title */
removePos.push(sel);
mergedSelectors++;
} else {
mergedCSSObjRules[sel].selectors = _.difference(mergedCSSObjRules[sel].selectors, mergedCSSObjRules[last].selectors);
}
}
}

@@ -399,10 +419,12 @@

});
duplicateSelectors += selector.length;
}
duplicateSelectors += selectors[selector].length;
}
});
}
if (removePos.length > 0) {
//order by index desc
removePos = _.sortBy(removePos, function (num) {
removePos = _.sortBy(_.uniq(removePos), function (num) {
return num * -1;

@@ -434,3 +456,3 @@ });

} else {
csss.printMergeSuccess(newFile);
console.log(csss.printMergeSuccess(newFile));
}

@@ -449,3 +471,3 @@ });

console.log(consoleOutput);
return consoleOutput;
}

@@ -452,0 +474,0 @@

{
"name": "csss",
"version": "0.4.7",
"description": "CSSS is a tool that detects multiple CSS selectors from your stylesheets and it works across multiple files.",
"version": "0.4.8",
"description": "A tool to detect multiple CSS selectors from your stylesheets and it works across multiple files.",
"author": "Anthony Weber",

@@ -41,4 +41,5 @@ "license": "ISC",

"underscore": "^1.7.0",
"request-promise": "^0.3.3"
"request-promise": "^0.4.0",
"mocha": "^2.1.0"
}
}
[![NPM version](https://img.shields.io/npm/v/csss.svg?style=flat)](https://www.npmjs.com/package/csss)
[![Build Status](https://travis-ci.org/webycel/csss.svg?branch=merging)](https://travis-ci.org/webycel/csss)
[![Dependency Status](https://img.shields.io/david/webycel/csss.svg?style=flat)](https://david-dm.org/webycel/csss)

@@ -3,0 +5,0 @@ # CSS Shampoo

@@ -29,3 +29,3 @@ 'use strict';

beforeEach(function () {
resultsShouldBe = 'undefined\u001b[7m\u001b[31mC\u001b[39m\u001b[33mS\u001b[39m\u001b[32mS\u001b[39m\u001b[34mS\u001b[39m \u001b[31mS\u001b[39m\u001b[33mT\u001b[39m\u001b[32mA\u001b[39m\u001b[34mR\u001b[39m\u001b[35mT\u001b[39m\u001b[31m\n\u001b[39m\u001b[33m\r\u001b[39m\u001b[32m\n\u001b[39m\u001b[34m\r\u001b[39m\u001b[27m\u001b[4mLooking for muliple selectors in\n\r\u001b[24m\u001b[34m./test/css/test-selectors.css\u001b[39m\n\r\n\r\u001b[31m\u001b[1mDUPLICATE: \u001b[22m.r1_text\u001b[39m\n\r line 2\n\r line 7\n\r line 15\n\r line 20\n\r\u001b[32m sharing 3 properties\n\u001b[39m\n\r\u001b[31m\u001b[1mDUPLICATE: \u001b[22m.r1_title\u001b[39m\n\r line 12\n\r line 25\n\r\u001b[32m sharing 1 property\n\u001b[39m\n\r\u001b[31m\u001b[1mDUPLICATE: \u001b[22m.r2_title\u001b[39m\n\r line 31\n\r line 39\n\r line 43\n\r\u001b[32m sharing 2 properties\n\u001b[39m\n\r\u001b[31m\u001b[1mDUPLICATE: \u001b[22m.m_text\u001b[39m\u001b[34m @media screen\u001b[39m\n\r line 51\n\r line 55\n\r\u001b[32m sharing 2 properties\n\u001b[39m\n\r\u001b[31m\u001b[1mDUPLICATE: \u001b[22m.m_text\u001b[39m\u001b[34m @media print\u001b[39m\n\r line 61\n\r line 65\n\r\u001b[32m sharing 2 properties\n\u001b[39m\n\r\u001b[33mDuplicate selectors: 22\n\r\n\r\u001b[39m\u001b[7m\u001b[31mC\u001b[39m\u001b[33mS\u001b[39m\u001b[32mS\u001b[39m\u001b[34mS\u001b[39m \u001b[31mE\u001b[39m\u001b[33mN\u001b[39m\u001b[32mD\u001b[39m\u001b[27m';
resultsShouldBe = 'undefined\u001b[7m\u001b[31mC\u001b[39m\u001b[33mS\u001b[39m\u001b[32mS\u001b[39m\u001b[34mS\u001b[39m \u001b[31mS\u001b[39m\u001b[33mT\u001b[39m\u001b[32mA\u001b[39m\u001b[34mR\u001b[39m\u001b[35mT\u001b[39m\u001b[31m\n\u001b[39m\u001b[33m\r\u001b[39m\u001b[32m\n\u001b[39m\u001b[34m\r\u001b[39m\u001b[27m\u001b[4mLooking for muliple selectors in\n\r\u001b[24m\u001b[34m./test/css/test-selectors.css\u001b[39m\n\r\n\r\u001b[31m\u001b[1mDUPLICATE: \u001b[22m.r1_text\u001b[39m\n\r line 2\n\r line 7\n\r line 15\n\r line 20\n\r\u001b[32m sharing 3 properties\n\u001b[39m\n\r\u001b[31m\u001b[1mDUPLICATE: \u001b[22m.r1_title\u001b[39m\n\r line 12\n\r line 25\n\r\u001b[32m sharing 1 property\n\u001b[39m\n\r\u001b[31m\u001b[1mDUPLICATE: \u001b[22m.r2_title\u001b[39m\n\r line 31\n\r line 39\n\r line 43\n\r\u001b[32m sharing 2 properties\n\u001b[39m\n\r\u001b[31m\u001b[1mDUPLICATE: \u001b[22m.m_text\u001b[39m\u001b[34m @media screen\u001b[39m\n\r line 51\n\r line 55\n\r\u001b[32m sharing 2 properties\n\u001b[39m\n\r\u001b[31m\u001b[1mDUPLICATE: \u001b[22m.m_text\u001b[39m\u001b[34m @media print\u001b[39m\n\r line 61\n\r line 65\n\r\u001b[32m sharing 2 properties\n\u001b[39m\n\r\u001b[33mDuplicate selectors: 28\n\r\n\r\u001b[39m\u001b[7m\u001b[31mC\u001b[39m\u001b[33mS\u001b[39m\u001b[32mS\u001b[39m\u001b[34mS\u001b[39m \u001b[31mE\u001b[39m\u001b[33mN\u001b[39m\u001b[32mD\u001b[39m\u001b[27m';
});

@@ -32,0 +32,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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