Socket
Socket
Sign inDemoInstall

postcss-normalize-url

Package Overview
Dependencies
6
Maintainers
5
Versions
58
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 3.0.8 to 4.0.0-nightly.2020.7.24

158

dist/index.js

@@ -1,101 +0,115 @@

'use strict';
"use strict";
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _path = require('path');
var _path = _interopRequireDefault(require("path"));
var _path2 = _interopRequireDefault(_path);
var _postcss = _interopRequireDefault(require("postcss"));
var _postcss = require('postcss');
var _postcssValueParser = _interopRequireDefault(require("postcss-value-parser"));
var _postcss2 = _interopRequireDefault(_postcss);
var _normalizeUrl = _interopRequireDefault(require("normalize-url"));
var _postcssValueParser = require('postcss-value-parser');
var _isAbsoluteUrl = _interopRequireDefault(require("is-absolute-url"));
var _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _normalizeUrl = require('normalize-url');
const multiline = /\\[\r\n]/; // eslint-disable-next-line no-useless-escape
var _normalizeUrl2 = _interopRequireDefault(_normalizeUrl);
const escapeChars = /([\s\(\)"'])/g;
var _isAbsoluteUrl = require('is-absolute-url');
function convert(url, options) {
if ((0, _isAbsoluteUrl.default)(url) || url.startsWith('//')) {
let normalizedURL = null;
var _isAbsoluteUrl2 = _interopRequireDefault(_isAbsoluteUrl);
try {
normalizedURL = (0, _normalizeUrl.default)(url, options);
} catch (e) {
normalizedURL = url;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
return normalizedURL;
} // `path.normalize` always returns backslashes on Windows, need replace in `/`
var multiline = /\\[\r\n]/;
var escapeChars = /([\s\(\)"'])/g;
function convert(url, options) {
if ((0, _isAbsoluteUrl2.default)(url) || !url.indexOf('//')) {
return (0, _normalizeUrl2.default)(url, options);
}
return _path2.default.normalize(url).replace(new RegExp('\\' + _path2.default.sep, 'g'), '/');
return _path.default.normalize(url).replace(new RegExp('\\' + _path.default.sep, 'g'), '/');
}
function transformNamespace(rule) {
rule.params = (0, _postcssValueParser2.default)(rule.params).walk(function (node) {
if (node.type === 'function' && node.value === 'url' && node.nodes.length) {
node.type = 'string';
node.quote = node.nodes[0].quote || '"';
node.value = node.nodes[0].value;
}
if (node.type === 'string') {
node.value = node.value.trim();
}
return false;
}).toString();
rule.params = (0, _postcssValueParser.default)(rule.params).walk(node => {
if (node.type === 'function' && node.value.toLowerCase() === 'url' && node.nodes.length) {
node.type = 'string';
node.quote = node.nodes[0].quote || '"';
node.value = node.nodes[0].value;
}
if (node.type === 'string') {
node.value = node.value.trim();
}
return false;
}).toString();
}
function transformDecl(decl, opts) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
if (node.type !== 'function' || node.value !== 'url' || !node.nodes.length) {
return false;
}
decl.value = (0, _postcssValueParser.default)(decl.value).walk(node => {
if (node.type !== 'function' || node.value.toLowerCase() !== 'url' || !node.nodes.length) {
return false;
}
var url = node.nodes[0];
var escaped = void 0;
let url = node.nodes[0];
let escaped;
node.before = node.after = '';
url.value = url.value.trim().replace(multiline, ''); // Skip empty URLs
// Empty URL function equals request to current stylesheet where it is declared
node.before = node.after = '';
url.value = url.value.trim().replace(multiline, '');
if (url.value.length === 0) {
url.quote = '';
return false;
}
if (~url.value.indexOf('data:image/') || ~url.value.indexOf('data:application/') || ~url.value.indexOf('data:font/')) {
return false;
}
if (/^data:(.*)?,/i.test(url.value)) {
return false;
}
if (!~url.value.indexOf('chrome-extension')) {
url.value = convert(url.value, opts);
}
if (!/^.+-extension:\//i.test(url.value)) {
url.value = convert(url.value, opts);
}
if (escapeChars.test(url.value)) {
escaped = url.value.replace(escapeChars, '\\$1');
if (escaped.length < url.value.length + (url.type === 'string' ? 2 : 0)) {
url.value = escaped;
url.type = 'word';
}
} else {
url.type = 'word';
}
if (escapeChars.test(url.value) && url.type === 'string') {
escaped = url.value.replace(escapeChars, '\\$1');
return false;
}).toString();
if (escaped.length < url.value.length + 2) {
url.value = escaped;
url.type = 'word';
}
} else {
url.type = 'word';
}
return false;
}).toString();
}
module.exports = _postcss2.default.plugin('postcss-normalize-url', function (opts) {
opts = _extends({
normalizeProtocol: false,
stripFragment: false,
stripWWW: true
}, opts);
var _default = _postcss.default.plugin('postcss-normalize-url', opts => {
opts = Object.assign({}, {
normalizeProtocol: false,
stripFragment: false,
stripWWW: false
}, opts);
return css => {
css.walk(node => {
if (node.type === 'decl') {
return transformDecl(node, opts);
} else if (node.type === 'atrule' && node.name.toLowerCase() === 'namespace') {
return transformNamespace(node);
}
});
};
});
return function (css) {
css.walk(function (node) {
if (node.type === 'decl') {
return transformDecl(node, opts);
} else if (node.type === 'atrule' && node.name === 'namespace') {
return transformNamespace(node);
}
});
};
});
exports.default = _default;
module.exports = exports.default;
{
"name": "postcss-normalize-url",
"version": "3.0.8",
"version": "4.0.0-nightly.2020.7.24",
"description": "Normalize URLs with PostCSS",

@@ -11,6 +11,5 @@ "main": "dist/index.js",

"scripts": {
"pretest": "eslint src",
"prepublish": "del-cli dist && BABEL_ENV=publish babel src --out-dir dist --ignore /__tests__/",
"test": "ava src/__tests__",
"test-012": "ava src/__tests__"
"prebuild": "",
"build": "cross-env BABEL_ENV=publish babel src --config-file ../../babel.config.js --out-dir dist --ignore \"**/__tests__/\"",
"prepublish": ""
},

@@ -28,23 +27,8 @@ "keywords": [

"dependencies": {
"is-absolute-url": "^2.0.0",
"normalize-url": "^1.4.0",
"postcss": "^5.0.14",
"postcss-value-parser": "^3.2.3"
"is-absolute-url": "^2.1.0",
"normalize-url": "^3.3.0",
"postcss": "^7.0.16",
"postcss-value-parser": "^3.3.1"
},
"devDependencies": {
"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"
},
"homepage": "https://github.com/ben-eb/postcss-normalize-url",
"homepage": "https://github.com/cssnano/cssnano",
"author": {

@@ -55,9 +39,9 @@ "name": "Ben Briggs",

},
"repository": "ben-eb/postcss-normalize-url",
"eslintConfig": {
"extends": "cssnano"
"repository": "cssnano/cssnano",
"bugs": {
"url": "https://github.com/cssnano/cssnano/issues"
},
"ava": {
"require": "babel-register"
"engines": {
"node": ">=6.9.0"
}
}
}

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

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

@@ -44,8 +44,7 @@ > [Normalize URLs](https://github.com/sindresorhus/normalize-url) with PostCSS.

Please see the [normalize-url documentation][docs]. By default,
`normalizeProtocol` & `stripFragment` are set to `false`; `stripWWW` to `true`.
`normalizeProtocol`, `stripFragment` & `stripWWW` are set to `false`.
## Contributing
## Contributors
Pull requests are welcome. If you add functionality, then please add unit tests
to cover it.
See [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md).

@@ -57,6 +56,2 @@ ## License

[docs]: https://github.com/sindresorhus/normalize-url#options
[ci]: https://travis-ci.org/ben-eb/postcss-normalize-url
[deps]: https://gemnasium.com/ben-eb/postcss-normalize-url
[npm]: http://badge.fury.io/js/postcss-normalize-url
[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