shell bypass 403
const createExpectedOrder = require('../createExpectedOrder');
const isRuleWithNodes = require('../isRuleWithNodes');
const processLastComments = require('../processLastComments');
const processMostNodes = require('../processMostNodes');
const getContainingNode = require('../getContainingNode');
const sorting = require('../sorting');
module.exports = function(css, opts) {
const expectedOrder = createExpectedOrder(opts.order);
css.walk(function(input) {
const node = getContainingNode(input);
if (isRuleWithNodes(node)) {
// Nodes for sorting
let processed = [];
// Add indexes to nodes
node.each(function(childNode, index) {
processed = processMostNodes(childNode, index, expectedOrder, processed);
});
// Add last comments in the rule. Need this because last comments are not belonging to anything
node.each(function(childNode, index) {
processed = processLastComments(childNode, index, processed);
});
// Sort declarations saved for sorting
processed.sort(sorting.sortByIndexes);
// Enforce semicolon for the last node
node.raws.semicolon = true;
// Replace rule content with sorted one
node.removeAll();
node.append(processed);
}
});
};