Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /www/wwwroot/mifepriston.org/node_modules/postcss-image-inliner/lib/ |
Upload File : |
'use strict'; const debug = require('debug')('image-inliner'); const map = require('lodash.map'); const SVGO = require('svgo'); const Bluebird = require('bluebird'); const svgo = new SVGO(); // Borrowed from https://github.com/filamentgroup/directory-encoder/blob/master/lib/svg-uri-encoder.js function encodeSvg(content) { return encodeURIComponent(content // Strip newlines and tabs .replace(/[\n\r]/gmi, '') .replace(/\t/gmi, ' ') // Strip comments .replace(/<!--(.*(?=-->))-->/gmi, '') // Replace .replace(/'/gmi, '\\i')) // Encode brackets .replace(/\(/g, '%28').replace(/\)/g, '%29') // Replace ' with " .replace(/'/gm, '"'); } function computeDataUri(opts) { return (file, key) => { // If the url is SVG, let's compress and use the XML directly if (file.mime === 'image/svg+xml' && !opts.b64Svg) { return svgo.optimize(file.contents.toString('utf-8')).then(result => { debug('optimising svg'); return { data: `data:image/svg+xml;charset=US-ASCII,${encodeSvg(result.data)}`, key }; }).catch(error => { debug('errored', error.message); throw error; }); } // Otherwise we base64 encode the image return { data: `data:${file.mime};base64,${Buffer.from(file.contents, 'binary').toString('base64')}`, key }; }; } function getDataUri(res, opts) { const promises = map(res, computeDataUri(opts)); return Bluebird.reduce(promises, (uris, resource) => { uris[resource.key] = resource.data; return uris; }, {}); } module.exports.getDataUri = getDataUri;