AnonSec Shell
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/browser-sync-ui/lib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /www/wwwroot/mifepriston.org/node_modules/browser-sync-ui/lib/resolve-plugins.js
var fs          = require("fs");
var path        = require("path");
var Immutable   = require("immutable");

/**
 * Take Browsersync plugins and determine if
 * any UI is provided by looking at data in the the
 * modules package.json file
 * @param plugins
 * @returns {*}
 */
module.exports = function (plugins) {
    return require("immutable")
        .fromJS(plugins)
        /**
         * Exclude the UI
         */
        .filter(function (plugin) {
            return plugin.get("name") !== "UI";
        })
        /**
         * Attempt to retrieve a plugins package.json file
         */
        .map(function (plugin) {

            var moduleName = plugin.getIn(["opts", "moduleName"]);
            var pkg = {};

            if (!moduleName) {
                return plugin;
            }

            try {
                pkg = require("immutable").fromJS(require(path.join(moduleName, "package.json")));
            } catch (e) {
                console.error(e);
                return plugin;
            }

            plugin = plugin.set("pkg", pkg);

            return plugin.set("relpath", path.dirname(require.resolve(moduleName)));
        })
        /**
         * Try to load markup for each plugin
         */
        .map(function (plugin) {

            if (!plugin.hasIn(["pkg", "browser-sync:ui"])) {
                return plugin;
            }

            var markup    = plugin.getIn(["pkg", "browser-sync:ui", "hooks", "markup"]);

            if (markup) {
                plugin = plugin.set("markup", fs.readFileSync(path.resolve(plugin.get("relpath"), markup), "utf8"));
            }

            return plugin;
        })
        /**
         * Load any template files for the plugin
         */
        .map(function (plugin) {

            if (!plugin.hasIn(["pkg", "browser-sync:ui"])) {
                return plugin;
            }

            return resolveIfPluginHas(["pkg", "browser-sync:ui", "hooks", "templates"], "templates", plugin);
        })
        /**
         * Try to load Client JS for each plugin
         */
        .map(function (plugin) {

            if (!plugin.hasIn(["pkg", "browser-sync:ui"])) {
                return plugin;
            }

            return resolveIfPluginHas(["pkg", "browser-sync:ui", "hooks", "client:js"], "client:js", plugin);
        });
};

/**
 * If a plugin contains this option path, resolve/read the files
 * @param {Array} optPath - How to access the collection
 * @param {String} propName - Key for property access
 * @param {Immutable.Map} plugin
 * @returns {*}
 */
function resolveIfPluginHas(optPath, propName, plugin) {
    var opt = plugin.getIn(optPath);
    if (opt.size) {
        return plugin.set(
            propName,
            resolvePluginFiles(opt, plugin.get("relpath"))
        );
    }
    return plugin;
}

/**
 * Read & store a file from a plugin
 * @param {Array|Immutable.List} collection
 * @param {String} relPath
 * @returns {any}
 */
function resolvePluginFiles (collection, relPath) {
    return Immutable.fromJS(collection.reduce(function (all, item) {
        var full = path.join(relPath, item);
        if (fs.existsSync(full)) {
            all[full] = fs.readFileSync(full, "utf8");
        }
        return all;
    }, {}));
}

Anon7 - 2022
AnonSec Team