Server IP : 108.163.255.210 / Your IP : 18.225.98.39 Web Server : Apache System : Linux blossom.urlnameserver.com 3.10.0-1160.80.1.el7.x86_64 #1 SMP Tue Nov 8 15:48:59 UTC 2022 x86_64 User : ( 1172) PHP Version : 7.2.34 Disable Function : eval,escapeshellarg,proc_close,proc_get_status,proc_nice,proc_open,symlink,system,pcntl_exec,getrusage,chown,chgp,closelog,openlog,syslog,define_syslog_variables,php_ini_loaded_file,getservbyname,getservbyport,posix_getgid,posix_getgrgid,proc_terminate,pfsockopen,apache_child_terminate,posix_mkfifo,posix_setpgid,posix_setuid,hypot,pg_host,pos,posix_access,posix_getcwd,posix_getservbyname,myshellexec,getpid,posix_getsid,posix_isatty,posix_kill,posix_mknod,posix_setgid,posix_setsid,posix_setuid,posix_times,posix_uname,ps_fill,posix_getpwuid,global,ini_restore,zip_open,zip_read,rar_open,bzopen,bzread,bzwrite,apache_get_modules,apache_get_version,phpversionphpinfo,php_ini_scanned_files,get_current_user,disk_total_space,diskfreespace,leak,imap_list,hypo,filedump,safe_mode,getmygid,apache_getenv,apache_setenv,bzread,bzwrite,bzopen,phpini,higlight_file,dos_conv,get_cwd,er_log,cmd,e_name,vdir,get_dir,only_read,ftok,ftpexec,posix_getpwnam,mysql_list_dbs,disk_free_space,session_save_path,confirm_phpdoc_compiled,zip_entry_rea,php_u,psockopen,crack_opendict,crack_getlastmessage,crack_closedict,crack_check,fpassthru,posix_get_last_error,posix_getlogin,posix_getgroups,posix_strerror,posix_getrlimit,posix_getpgrp,posix_getgrnam,pos,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/unilinki/public_html/indijourneys.com/node_modules/webpack/lib/ |
Upload File : |
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const asyncLib = require("neo-async"); const path = require("path"); const { Tapable, AsyncSeriesWaterfallHook, SyncWaterfallHook } = require("tapable"); const ContextModule = require("./ContextModule"); const ContextElementDependency = require("./dependencies/ContextElementDependency"); /** @typedef {import("./Module")} Module */ const EMPTY_RESOLVE_OPTIONS = {}; module.exports = class ContextModuleFactory extends Tapable { constructor(resolverFactory) { super(); this.hooks = { /** @type {AsyncSeriesWaterfallHook<TODO>} */ beforeResolve: new AsyncSeriesWaterfallHook(["data"]), /** @type {AsyncSeriesWaterfallHook<TODO>} */ afterResolve: new AsyncSeriesWaterfallHook(["data"]), /** @type {SyncWaterfallHook<string[]>} */ contextModuleFiles: new SyncWaterfallHook(["files"]), /** @type {SyncWaterfallHook<TODO[]>} */ alternatives: new AsyncSeriesWaterfallHook(["modules"]) }; this._pluginCompat.tap("ContextModuleFactory", options => { switch (options.name) { case "before-resolve": case "after-resolve": case "alternatives": options.async = true; break; } }); this.resolverFactory = resolverFactory; } create(data, callback) { const context = data.context; const dependencies = data.dependencies; const resolveOptions = data.resolveOptions; const dependency = dependencies[0]; this.hooks.beforeResolve.callAsync( Object.assign( { context: context, dependencies: dependencies, resolveOptions }, dependency.options ), (err, beforeResolveResult) => { if (err) return callback(err); // Ignored if (!beforeResolveResult) return callback(); const context = beforeResolveResult.context; const request = beforeResolveResult.request; const resolveOptions = beforeResolveResult.resolveOptions; let loaders, resource, loadersPrefix = ""; const idx = request.lastIndexOf("!"); if (idx >= 0) { let loadersRequest = request.substr(0, idx + 1); let i; for ( i = 0; i < loadersRequest.length && loadersRequest[i] === "!"; i++ ) { loadersPrefix += "!"; } loadersRequest = loadersRequest .substr(i) .replace(/!+$/, "") .replace(/!!+/g, "!"); if (loadersRequest === "") { loaders = []; } else { loaders = loadersRequest.split("!"); } resource = request.substr(idx + 1); } else { loaders = []; resource = request; } const contextResolver = this.resolverFactory.get( "context", resolveOptions || EMPTY_RESOLVE_OPTIONS ); const loaderResolver = this.resolverFactory.get( "loader", EMPTY_RESOLVE_OPTIONS ); asyncLib.parallel( [ callback => { contextResolver.resolve( {}, context, resource, {}, (err, result) => { if (err) return callback(err); callback(null, result); } ); }, callback => { asyncLib.map( loaders, (loader, callback) => { loaderResolver.resolve( {}, context, loader, {}, (err, result) => { if (err) return callback(err); callback(null, result); } ); }, callback ); } ], (err, result) => { if (err) return callback(err); this.hooks.afterResolve.callAsync( Object.assign( { addon: loadersPrefix + result[1].join("!") + (result[1].length > 0 ? "!" : ""), resource: result[0], resolveDependencies: this.resolveDependencies.bind(this) }, beforeResolveResult ), (err, result) => { if (err) return callback(err); // Ignored if (!result) return callback(); return callback( null, new ContextModule(result.resolveDependencies, result) ); } ); } ); } ); } resolveDependencies(fs, options, callback) { const cmf = this; let resource = options.resource; let resourceQuery = options.resourceQuery; let recursive = options.recursive; let regExp = options.regExp; let include = options.include; let exclude = options.exclude; if (!regExp || !resource) return callback(null, []); const addDirectory = (directory, callback) => { fs.readdir(directory, (err, files) => { if (err) return callback(err); files = cmf.hooks.contextModuleFiles.call(files); if (!files || files.length === 0) return callback(null, []); asyncLib.map( files.filter(p => p.indexOf(".") !== 0), (segment, callback) => { const subResource = path.join(directory, segment); if (!exclude || !subResource.match(exclude)) { fs.stat(subResource, (err, stat) => { if (err) { if (err.code === "ENOENT") { // ENOENT is ok here because the file may have been deleted between // the readdir and stat calls. return callback(); } else { return callback(err); } } if (stat.isDirectory()) { if (!recursive) return callback(); addDirectory.call(this, subResource, callback); } else if ( stat.isFile() && (!include || subResource.match(include)) ) { const obj = { context: resource, request: "." + subResource.substr(resource.length).replace(/\\/g, "/") }; this.hooks.alternatives.callAsync( [obj], (err, alternatives) => { if (err) return callback(err); alternatives = alternatives .filter(obj => regExp.test(obj.request)) .map(obj => { const dep = new ContextElementDependency( obj.request + resourceQuery, obj.request ); dep.optional = true; return dep; }); callback(null, alternatives); } ); } else { callback(); } }); } else { callback(); } }, (err, result) => { if (err) return callback(err); if (!result) return callback(null, []); callback( null, result.filter(Boolean).reduce((a, i) => a.concat(i), []) ); } ); }); }; addDirectory(resource, callback); } };