Socket
Socket
Sign inDemoInstall

postcss-svgo

Package Overview
Dependencies
Maintainers
4
Versions
53
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

postcss-svgo - npm Package Compare versions

Comparing version 4.0.0-rc.2 to 4.0.0

92

dist/index.js

@@ -27,22 +27,18 @@ 'use strict';

var PLUGIN = 'postcss-svgo';
var dataURI = /data:image\/svg\+xml(;((charset=)?utf-8|base64))?,/i;
var dataURIBase64 = /data:image\/svg\+xml;base64,/i;
const PLUGIN = 'postcss-svgo';
const dataURI = /data:image\/svg\+xml(;((charset=)?utf-8|base64))?,/i;
const dataURIBase64 = /data:image\/svg\+xml;base64,/i;
function minifyPromise(svgo, decl, opts) {
var promises = [];
const promises = [];
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(function (node) {
if (node.type !== 'function' || node.value !== 'url' || !node.nodes.length) {
decl.value = (0, _postcssValueParser2.default)(decl.value).walk(node => {
if (node.type !== 'function' || node.value.toLowerCase() !== 'url' || !node.nodes.length) {
return;
}
var _node$nodes$ = node.nodes[0],
value = _node$nodes$.value,
quote = _node$nodes$.quote;
let { value, quote } = node.nodes[0];
let isBase64, isUriEncoded;
let svg = value.replace(dataURI, '');
var isBase64 = void 0,
isUriEncoded = void 0;
var svg = value.replace(dataURI, '');
if (dataURIBase64.test(value)) {

@@ -52,3 +48,3 @@ svg = Buffer.from(svg, 'base64').toString('utf8');

} else {
var decodedUri = void 0;
let decodedUri;

@@ -75,33 +71,27 @@ try {

promises.push(new Promise(function (resolve, reject) {
return svgo.optimize(svg, function (result) {
if (result.error) {
return reject(`${PLUGIN}: ${result.error}`);
}
promises.push(svgo.optimize(svg).then(result => {
let data, optimizedValue;
var data = void 0,
optimizedValue = void 0;
if (isBase64) {
data = Buffer.from(result.data).toString('base64');
optimizedValue = 'data:image/svg+xml;base64,' + data;
} else {
data = isUriEncoded ? (0, _url.encode)(result.data) : result.data;
// Should always encode # otherwise we yield a broken SVG
// in Firefox (works in Chrome however). See this issue:
// https://github.com/cssnano/cssnano/issues/245
data = data.replace(/#/g, '%23');
optimizedValue = 'data:image/svg+xml;charset=utf-8,' + data;
quote = isUriEncoded ? '"' : '\'';
}
if (isBase64) {
data = Buffer.from(result.data).toString('base64');
optimizedValue = 'data:image/svg+xml;base64,' + data;
} else {
data = isUriEncoded ? (0, _url.encode)(result.data) : result.data;
// Should always encode # otherwise we yield a broken SVG
// in Firefox (works in Chrome however). See this issue:
// https://github.com/ben-eb/cssnano/issues/245
data = data.replace(/#/g, '%23');
optimizedValue = 'data:image/svg+xml;charset=utf-8,' + data;
quote = isUriEncoded ? '"' : '\'';
}
node.nodes[0] = Object.assign({}, node.nodes[0], {
value: optimizedValue,
quote: quote,
type: 'string',
before: '',
after: ''
});
return resolve();
node.nodes[0] = Object.assign({}, node.nodes[0], {
value: optimizedValue,
quote: quote,
type: 'string',
before: '',
after: ''
});
}).catch(error => {
throw new Error(`${PLUGIN}: ${error}`);
}));

@@ -112,15 +102,11 @@

return Promise.all(promises).then(function () {
return decl.value = decl.value.toString();
});
return Promise.all(promises).then(() => decl.value = decl.value.toString());
}
exports.default = _postcss2.default.plugin(PLUGIN, function () {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var svgo = new _svgo2.default(opts);
return function (css) {
return new Promise(function (resolve, reject) {
var promises = [];
css.walkDecls(function (decl) {
exports.default = _postcss2.default.plugin(PLUGIN, (opts = {}) => {
const svgo = new _svgo2.default(opts);
return css => {
return new Promise((resolve, reject) => {
const promises = [];
css.walkDecls(decl => {
if (dataURI.test(decl.value)) {

@@ -127,0 +113,0 @@ promises.push(minifyPromise(svgo, decl, opts));

@@ -11,2 +11,2 @@ 'use strict';

var decode = exports.decode = decodeURIComponent;
const decode = exports.decode = decodeURIComponent;
{
"name": "postcss-svgo",
"version": "4.0.0-rc.2",
"version": "4.0.0",
"description": "Optimise inline SVG with PostCSS.",

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

"babel-cli": "^6.0.0",
"cross-env": "^3.0.0",
"pleeease-filters": "^3.0.0"
"cross-env": "^5.0.0",
"pleeease-filters": "^4.0.0"
},
"homepage": "https://github.com/ben-eb/cssnano",
"homepage": "https://github.com/cssnano/cssnano",
"author": {

@@ -35,15 +35,15 @@ "name": "Ben Briggs",

},
"repository": "ben-eb/cssnano",
"repository": "cssnano/cssnano",
"dependencies": {
"is-svg": "^2.0.0",
"is-svg": "^3.0.0",
"postcss": "^6.0.0",
"postcss-value-parser": "^3.0.0",
"svgo": "^0.7.0"
"svgo": "^1.0.0"
},
"bugs": {
"url": "https://github.com/ben-eb/cssnano/issues"
"url": "https://github.com/cssnano/cssnano/issues"
},
"engines": {
"node": ">=4"
"node": ">=6.9.0"
}
}

@@ -118,3 +118,3 @@ # [postcss][postcss]-svgo

See [CONTRIBUTORS.md](https://github.com/ben-eb/cssnano/blob/master/CONTRIBUTORS.md).
See [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md).

@@ -121,0 +121,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc