Socket
Socket
Sign inDemoInstall

postcss-attribute-case-insensitive

Package Overview
Dependencies
6
Maintainers
2
Versions
15
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 4.0.1 to 4.0.2

156

dist/index.js

@@ -1,105 +0,96 @@

'use strict';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
value: true
});
exports.default = void 0;
var _postcss = require('postcss');
var _postcss = _interopRequireDefault(require("postcss"));
var _postcss2 = _interopRequireDefault(_postcss);
var _postcssSelectorParser = _interopRequireDefault(require("postcss-selector-parser"));
var _postcssSelectorParser = require('postcss-selector-parser');
var _postcssSelectorParser2 = _interopRequireDefault(_postcssSelectorParser);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function nodeIsInsensitiveAttribute(node) {
return node.type === 'attribute' && node.insensitive;
return node.type === 'attribute' && node.insensitive;
}
function selectorHasInsensitiveAttribute(selector) {
return selector.some(nodeIsInsensitiveAttribute);
return selector.some(nodeIsInsensitiveAttribute);
}
function transformString(strings, charPos, string) {
var char = string.charAt(charPos);
if (char === '') {
return strings;
}
var char = string.charAt(charPos);
var newStrings = strings.map(function (x) {
return x + char;
});
var upperChar = char.toLocaleUpperCase();
if (char === '') {
return strings;
}
if (upperChar !== char) {
newStrings = newStrings.concat(strings.map(function (x) {
return x + upperChar;
}));
}
var newStrings = strings.map(function (x) {
return x + char;
});
var upperChar = char.toLocaleUpperCase();
return transformString(newStrings, charPos + 1, string);
if (upperChar !== char) {
newStrings = newStrings.concat(strings.map(function (x) {
return x + upperChar;
}));
}
return transformString(newStrings, charPos + 1, string);
}
function createSensitiveAtributes(attribute) {
var attributes = transformString([''], 0, attribute.value);
return attributes.map(function (x) {
var newAttribute = attribute.clone({
spaces: {
after: attribute.spaces.after,
before: attribute.spaces.before
},
insensitive: false
});
newAttribute.setValue(x);
return newAttribute;
});
var attributes = transformString([''], 0, attribute.value);
return attributes.map(function (x) {
var newAttribute = attribute.clone({
spaces: {
after: attribute.spaces.after,
before: attribute.spaces.before
},
insensitive: false
});
newAttribute.setValue(x);
return newAttribute;
});
}
function createNewSelectors(selector) {
var newSelectors = [_postcssSelectorParser2.default.selector()];
var newSelectors = [_postcssSelectorParser.default.selector()];
selector.walk(function (node) {
if (!nodeIsInsensitiveAttribute(node)) {
newSelectors.forEach(function (newSelector) {
newSelector.append(node.clone());
});
return;
}
selector.walk(function (node) {
if (!nodeIsInsensitiveAttribute(node)) {
newSelectors.forEach(function (newSelector) {
newSelector.append(node.clone());
});
return;
}
var sensitiveAttributes = createSensitiveAtributes(node);
var newSelectorsWithSensitiveAttributes = [];
sensitiveAttributes.forEach(function (newNode) {
newSelectors.forEach(function (newSelector) {
var newSelectorWithNewNode = newSelector.clone();
newSelectorWithNewNode.append(newNode);
newSelectorsWithSensitiveAttributes.push(newSelectorWithNewNode);
});
});
newSelectors = newSelectorsWithSensitiveAttributes;
});
return newSelectors;
var sensitiveAttributes = createSensitiveAtributes(node);
var newSelectorsWithSensitiveAttributes = [];
sensitiveAttributes.forEach(function (newNode) {
newSelectors.forEach(function (newSelector) {
var newSelectorWithNewNode = newSelector.clone();
newSelectorWithNewNode.append(newNode);
newSelectorsWithSensitiveAttributes.push(newSelectorWithNewNode);
});
});
newSelectors = newSelectorsWithSensitiveAttributes;
});
return newSelectors;
}
function transform(selectors) {
var newSelectors = [];
var newSelectors = [];
selectors.each(function (selector) {
if (selectorHasInsensitiveAttribute(selector)) {
newSelectors = newSelectors.concat(createNewSelectors(selector));
selector.remove();
}
});
selectors.each(function (selector) {
if (selectorHasInsensitiveAttribute(selector)) {
newSelectors = newSelectors.concat(createNewSelectors(selector));
selector.remove();
}
});
if (newSelectors.length) {
newSelectors.forEach(function (newSelector) {
return selectors.append(newSelector);
});
}
if (newSelectors.length) {
newSelectors.forEach(function (newSelector) {
return selectors.append(newSelector);
});
}
}

@@ -109,9 +100,10 @@

exports.default = _postcss2.default.plugin('postcss-attribute-case-insensitive', function () {
return function (css) {
css.walkRules(caseInsensitiveRegExp, function (rule) {
rule.selector = (0, _postcssSelectorParser2.default)(transform).processSync(rule.selector);
});
};
var _default = _postcss.default.plugin('postcss-attribute-case-insensitive', function () {
return function (css) {
css.walkRules(caseInsensitiveRegExp, function (rule) {
rule.selector = (0, _postcssSelectorParser.default)(transform).processSync(rule.selector);
});
};
});
module.exports = exports.default;
exports.default = _default;
{
"name": "postcss-attribute-case-insensitive",
"version": "4.0.1",
"version": "4.0.2",
"description": "PostCSS plugin to support case insensitive attributes",
"main": "dist/index.js",
"scripts": {
"test": "eslint src && npm run prepublish && mocha --require babel-register",
"test": "eslint src && npm run prepublish && mocha --require @babel/register",
"prepublish": "babel src --out-dir dist"

@@ -30,8 +30,8 @@ },

"devDependencies": {
"babel-cli": "^6.26.0",
"babel-eslint": "^10.0.0",
"babel-plugin-add-module-exports": "^1.0.0",
"babel-preset-env": "^1.7.0",
"babel-register": "^6.26.0",
"chai": "^4.1.2",
"@babel/cli": "^7.8.3",
"@babel/core": "^7.8.3",
"@babel/node": "^7.8.3",
"@babel/preset-env": "^7.8.3",
"@babel/register": "^7.8.3",
"chai": "^4.2.0",
"eslint": "^5.6.0",

@@ -44,4 +44,4 @@ "eslint-config-airbnb-base": "^13.1.0",

"postcss": "^7.0.2",
"postcss-selector-parser": "^5.0.0"
"postcss-selector-parser": "^6.0.2"
}
}
import postcss from 'postcss';
import { expect } from 'chai';
import plugin from '../';
import plugin from '..';

@@ -6,0 +6,0 @@ const test = (input, output, opts, done) => {

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