[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: StartupHelpers.js
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const RuntimeGlobals = require("../RuntimeGlobals"); const Template = require("../Template"); const { isSubset } = require("../util/SetHelpers"); const { getAllChunks } = require("./ChunkHelpers"); /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../Chunk")} Chunk */ /** @typedef {import("../Compilation")} Compilation */ /** @typedef {import("../ChunkGraph")} ChunkGraph */ /** @typedef {import("../ChunkGroup")} ChunkGroup */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ /** @typedef {(string|number)[]} EntryItem */ const EXPORT_PREFIX = "var __webpack_exports__ = "; /** * @param {ChunkGraph} chunkGraph chunkGraph * @param {RuntimeTemplate} runtimeTemplate runtimeTemplate * @param {import("../ChunkGraph").EntryModuleWithChunkGroup[]} entries entries * @param {Chunk} chunk chunk * @param {boolean} passive true: passive startup with on chunks loaded * @returns {string} runtime code */ exports.generateEntryStartup = ( chunkGraph, runtimeTemplate, entries, chunk, passive ) => { /** @type {string[]} */ const runtime = [ `var __webpack_exec__ = ${runtimeTemplate.returningFunction( `__webpack_require__(${RuntimeGlobals.entryModuleId} = moduleId)`, "moduleId" )}` ]; const runModule = id => { return `__webpack_exec__(${JSON.stringify(id)})`; }; const outputCombination = (chunks, moduleIds, final) => { if (chunks.size === 0) { runtime.push( `${final ? EXPORT_PREFIX : ""}(${moduleIds.map(runModule).join(", ")});` ); } else { const fn = runtimeTemplate.returningFunction( moduleIds.map(runModule).join(", ") ); runtime.push( `${final && !passive ? EXPORT_PREFIX : ""}${ passive ? RuntimeGlobals.onChunksLoaded : RuntimeGlobals.startupEntrypoint }(0, ${JSON.stringify(Array.from(chunks, c => c.id))}, ${fn});` ); if (final && passive) { runtime.push(`${EXPORT_PREFIX}${RuntimeGlobals.onChunksLoaded}();`); } } }; let currentChunks = undefined; let currentModuleIds = undefined; for (const [module, entrypoint] of entries) { const runtimeChunk = entrypoint.getRuntimeChunk(); const moduleId = chunkGraph.getModuleId(module); const chunks = getAllChunks(entrypoint, chunk, runtimeChunk); if ( currentChunks && currentChunks.size === chunks.size && isSubset(currentChunks, chunks) ) { currentModuleIds.push(moduleId); } else { if (currentChunks) { outputCombination(currentChunks, currentModuleIds); } currentChunks = chunks; currentModuleIds = [moduleId]; } } // output current modules with export prefix if (currentChunks) { outputCombination(currentChunks, currentModuleIds, true); } runtime.push(""); return Template.asString(runtime); }; /** * @param {Hash} hash the hash to update * @param {ChunkGraph} chunkGraph chunkGraph * @param {import("../ChunkGraph").EntryModuleWithChunkGroup[]} entries entries * @param {Chunk} chunk chunk * @returns {void} */ exports.updateHashForEntryStartup = (hash, chunkGraph, entries, chunk) => { for (const [module, entrypoint] of entries) { const runtimeChunk = entrypoint.getRuntimeChunk(); const moduleId = chunkGraph.getModuleId(module); hash.update(`${moduleId}`); for (const c of getAllChunks(entrypoint, chunk, runtimeChunk)) hash.update(`${c.id}`); } }; /** * @param {Chunk} chunk the chunk * @param {ChunkGraph} chunkGraph the chunk graph * @param {function(Chunk, ChunkGraph): boolean} filterFn filter function * @returns {Set<number | string>} initially fulfilled chunk ids */ exports.getInitialChunkIds = (chunk, chunkGraph, filterFn) => { const initialChunkIds = new Set(chunk.ids); for (const c of chunk.getAllInitialChunks()) { if (c === chunk || filterFn(c, chunkGraph)) continue; for (const id of c.ids) initialChunkIds.add(id); } return initialChunkIds; };
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.61 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002