Linux unitednationsplay.com 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
nginx/1.20.1
Server IP : 188.130.139.92 & Your IP : 18.227.140.134
Domains :
Cant Read [ /etc/named.conf ]
User : web
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
home /
www /
wb /
node_modules /
webpack /
lib /
Delete
Unzip
Name
Size
Permission
Date
Action
asset
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
async-modules
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
cache
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
config
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
container
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
css
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
debug
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
dependencies
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
electron
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
errors
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
esm
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
hmr
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
ids
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
javascript
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
json
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
library
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
logging
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
node
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
optimize
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
performance
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
prefetch
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
rules
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
runtime
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
schemes
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
serialization
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
sharing
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
stats
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
util
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
wasm
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
wasm-async
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
wasm-sync
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
web
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
webworker
[ DIR ]
drwxrwxr-x
2022-08-30 11:49
APIPlugin.js
6.72
KB
-rw-rw-r--
2022-08-30 11:49
AbstractMethodError.js
1.11
KB
-rw-rw-r--
2022-08-30 11:49
AsyncDependenciesBlock.js
2.86
KB
-rw-rw-r--
2022-08-30 11:49
AsyncDependencyToInitialChunkError.js
913
B
-rw-rw-r--
2022-08-30 11:49
AutomaticPrefetchPlugin.js
1.46
KB
-rw-rw-r--
2022-08-30 11:49
BannerPlugin.js
2.93
KB
-rw-rw-r--
2022-08-30 11:49
Cache.js
3.88
KB
-rw-rw-r--
2022-08-30 11:49
CacheFacade.js
8.38
KB
-rw-rw-r--
2022-08-30 11:49
CaseSensitiveModulesWarning.js
2.06
KB
-rw-rw-r--
2022-08-30 11:49
Chunk.js
21.1
KB
-rw-rw-r--
2022-08-30 11:49
ChunkGraph.js
49.33
KB
-rw-rw-r--
2022-08-30 11:49
ChunkGroup.js
14.77
KB
-rw-rw-r--
2022-08-30 11:49
ChunkRenderError.js
657
B
-rw-rw-r--
2022-08-30 11:49
ChunkTemplate.js
3.9
KB
-rw-rw-r--
2022-08-30 11:49
CleanPlugin.js
11.24
KB
-rw-rw-r--
2022-08-30 11:49
CodeGenerationError.js
619
B
-rw-rw-r--
2022-08-30 11:49
CodeGenerationResults.js
4.36
KB
-rw-rw-r--
2022-08-30 11:49
CommentCompilationWarning.js
729
B
-rw-rw-r--
2022-08-30 11:49
CompatibilityPlugin.js
4.54
KB
-rw-rw-r--
2022-08-30 11:49
Compilation.js
157.69
KB
-rw-rw-r--
2022-08-30 11:49
Compiler.js
35.03
KB
-rw-rw-r--
2022-08-30 11:49
ConcatenationScope.js
4.53
KB
-rw-rw-r--
2022-08-30 11:49
ConcurrentCompilationError.js
441
B
-rw-rw-r--
2022-08-30 11:49
ConditionalInitFragment.js
3.36
KB
-rw-rw-r--
2022-08-30 11:49
ConstPlugin.js
14.42
KB
-rw-rw-r--
2022-08-30 11:49
ContextExclusionPlugin.js
797
B
-rw-rw-r--
2022-08-30 11:49
ContextModule.js
33.63
KB
-rw-rw-r--
2022-08-30 11:49
ContextModuleFactory.js
12.3
KB
-rw-rw-r--
2022-08-30 11:49
ContextReplacementPlugin.js
4.61
KB
-rw-rw-r--
2022-08-30 11:49
DefinePlugin.js
16.28
KB
-rw-rw-r--
2022-08-30 11:49
DelegatedModule.js
7.08
KB
-rw-rw-r--
2022-08-30 11:49
DelegatedModuleFactoryPlugin.js
2.28
KB
-rw-rw-r--
2022-08-30 11:49
DelegatedPlugin.js
1015
B
-rw-rw-r--
2022-08-30 11:49
DependenciesBlock.js
2.53
KB
-rw-rw-r--
2022-08-30 11:49
Dependency.js
9.36
KB
-rw-rw-r--
2022-08-30 11:49
DependencyTemplate.js
2.43
KB
-rw-rw-r--
2022-08-30 11:49
DependencyTemplates.js
1.69
KB
-rw-rw-r--
2022-08-30 11:49
DllEntryPlugin.js
1.25
KB
-rw-rw-r--
2022-08-30 11:49
DllModule.js
4.4
KB
-rw-rw-r--
2022-08-30 11:49
DllModuleFactory.js
1008
B
-rw-rw-r--
2022-08-30 11:49
DllPlugin.js
1.66
KB
-rw-rw-r--
2022-08-30 11:49
DllReferencePlugin.js
5.01
KB
-rw-rw-r--
2022-08-30 11:49
DynamicEntryPlugin.js
1.99
KB
-rw-rw-r--
2022-08-30 11:49
EntryOptionPlugin.js
2.77
KB
-rw-rw-r--
2022-08-30 11:49
EntryPlugin.js
1.7
KB
-rw-rw-r--
2022-08-30 11:49
Entrypoint.js
2.95
KB
-rw-rw-r--
2022-08-30 11:49
EnvironmentPlugin.js
1.7
KB
-rw-rw-r--
2022-08-30 11:49
ErrorHelpers.js
1.42
KB
-rw-rw-r--
2022-08-30 11:49
EvalDevToolModulePlugin.js
3.67
KB
-rw-rw-r--
2022-08-30 11:49
EvalSourceMapDevToolPlugin.js
6.67
KB
-rw-rw-r--
2022-08-30 11:49
ExportsInfo.js
42.96
KB
-rw-rw-r--
2022-08-30 11:49
ExportsInfoApiPlugin.js
2.02
KB
-rw-rw-r--
2022-08-30 11:49
ExternalModule.js
21.94
KB
-rw-rw-r--
2022-08-30 11:49
ExternalModuleFactoryPlugin.js
7.06
KB
-rw-rw-r--
2022-08-30 11:49
ExternalsPlugin.js
899
B
-rw-rw-r--
2022-08-30 11:49
FileSystemInfo.js
102.03
KB
-rw-rw-r--
2022-08-30 11:49
FlagAllModulesAsUsedPlugin.js
1.42
KB
-rw-rw-r--
2022-08-30 11:49
FlagDependencyExportsPlugin.js
12.91
KB
-rw-rw-r--
2022-08-30 11:49
FlagDependencyUsagePlugin.js
10.74
KB
-rw-rw-r--
2022-08-30 11:49
FlagEntryExportAsUsedPlugin.js
1.34
KB
-rw-rw-r--
2022-08-30 11:49
Generator.js
4.73
KB
-rw-rw-r--
2022-08-30 11:49
GraphHelpers.js
1.05
KB
-rw-rw-r--
2022-08-30 11:49
HarmonyLinkingError.js
357
B
-rw-rw-r--
2022-08-30 11:49
HookWebpackError.js
2.03
KB
-rw-rw-r--
2022-08-30 11:49
HotModuleReplacementPlugin.js
25.72
KB
-rw-rw-r--
2022-08-30 11:49
HotUpdateChunk.js
353
B
-rw-rw-r--
2022-08-30 11:49
IgnoreErrorModuleFactory.js
1.02
KB
-rw-rw-r--
2022-08-30 11:49
IgnorePlugin.js
2.2
KB
-rw-rw-r--
2022-08-30 11:49
IgnoreWarningsPlugin.js
964
B
-rw-rw-r--
2022-08-30 11:49
InitFragment.js
4.54
KB
-rw-rw-r--
2022-08-30 11:49
InvalidDependenciesModuleWarning.js
1.83
KB
-rw-rw-r--
2022-08-30 11:49
JavascriptMetaInfoPlugin.js
2.03
KB
-rw-rw-r--
2022-08-30 11:49
LibManifestPlugin.js
3.04
KB
-rw-rw-r--
2022-08-30 11:49
LibraryTemplatePlugin.js
1.55
KB
-rw-rw-r--
2022-08-30 11:49
LoaderOptionsPlugin.js
1.81
KB
-rw-rw-r--
2022-08-30 11:49
LoaderTargetPlugin.js
747
B
-rw-rw-r--
2022-08-30 11:49
MainTemplate.js
10.15
KB
-rw-rw-r--
2022-08-30 11:49
Module.js
29.96
KB
-rw-rw-r--
2022-08-30 11:49
ModuleBuildError.js
1.59
KB
-rw-rw-r--
2022-08-30 11:49
ModuleDependencyError.js
1.08
KB
-rw-rw-r--
2022-08-30 11:49
ModuleDependencyWarning.js
1.19
KB
-rw-rw-r--
2022-08-30 11:49
ModuleError.js
1.17
KB
-rw-rw-r--
2022-08-30 11:49
ModuleFactory.js
1.39
KB
-rw-rw-r--
2022-08-30 11:49
ModuleFilenameHelpers.js
7.98
KB
-rw-rw-r--
2022-08-30 11:49
ModuleGraph.js
23.99
KB
-rw-rw-r--
2022-08-30 11:49
ModuleGraphConnection.js
5.09
KB
-rw-rw-r--
2022-08-30 11:49
ModuleHashingError.js
615
B
-rw-rw-r--
2022-08-30 11:49
ModuleInfoHeaderPlugin.js
7.01
KB
-rw-rw-r--
2022-08-30 11:49
ModuleNotFoundError.js
2.55
KB
-rw-rw-r--
2022-08-30 11:49
ModuleParseError.js
3.25
KB
-rw-rw-r--
2022-08-30 11:49
ModuleProfile.js
2.38
KB
-rw-rw-r--
2022-08-30 11:49
ModuleRestoreError.js
957
B
-rw-rw-r--
2022-08-30 11:49
ModuleStoreError.js
951
B
-rw-rw-r--
2022-08-30 11:49
ModuleTemplate.js
3.91
KB
-rw-rw-r--
2022-08-30 11:49
ModuleWarning.js
1.25
KB
-rw-rw-r--
2022-08-30 11:49
MultiCompiler.js
15.67
KB
-rw-rw-r--
2022-08-30 11:49
MultiStats.js
4.12
KB
-rw-rw-r--
2022-08-30 11:49
MultiWatching.js
1.44
KB
-rw-rw-r--
2022-08-30 11:49
NoEmitOnErrorsPlugin.js
713
B
-rw-rw-r--
2022-08-30 11:49
NoModeWarning.js
663
B
-rw-rw-r--
2022-08-30 11:49
NodeStuffInWebError.js
843
B
-rw-rw-r--
2022-08-30 11:49
NodeStuffPlugin.js
5.27
KB
-rw-rw-r--
2022-08-30 11:49
NormalModule.js
41.09
KB
-rw-rw-r--
2022-08-30 11:49
NormalModuleFactory.js
31.6
KB
-rw-rw-r--
2022-08-30 11:49
NormalModuleReplacementPlugin.js
1.84
KB
-rw-rw-r--
2022-08-30 11:49
NullFactory.js
628
B
-rw-rw-r--
2022-08-30 11:49
OptimizationStages.js
204
B
-rw-rw-r--
2022-08-30 11:49
OptionsApply.js
201
B
-rw-rw-r--
2022-08-30 11:49
Parser.js
968
B
-rw-rw-r--
2022-08-30 11:49
PrefetchPlugin.js
1.02
KB
-rw-rw-r--
2022-08-30 11:49
ProgressPlugin.js
16.78
KB
-rw-rw-r--
2022-08-30 11:49
ProvidePlugin.js
2.82
KB
-rw-rw-r--
2022-08-30 11:49
RawModule.js
4.53
KB
-rw-rw-r--
2022-08-30 11:49
RecordIdsPlugin.js
6.66
KB
-rw-rw-r--
2022-08-30 11:49
RequestShortener.js
755
B
-rw-rw-r--
2022-08-30 11:49
RequireJsStuffPlugin.js
1.86
KB
-rw-rw-r--
2022-08-30 11:49
ResolverFactory.js
4.83
KB
-rw-rw-r--
2022-08-30 11:49
RuntimeGlobals.js
9.01
KB
-rw-rw-r--
2022-08-30 11:49
RuntimeModule.js
5.63
KB
-rw-rw-r--
2022-08-30 11:49
RuntimePlugin.js
14.68
KB
-rw-rw-r--
2022-08-30 11:49
RuntimeTemplate.js
31.11
KB
-rw-rw-r--
2022-08-30 11:49
SelfModuleFactory.js
384
B
-rw-rw-r--
2022-08-30 11:49
SingleEntryPlugin.js
161
B
-rw-rw-r--
2022-08-30 11:49
SizeFormatHelpers.js
583
B
-rw-rw-r--
2022-08-30 11:49
SourceMapDevToolModuleOptionsPlugin.js
1.29
KB
-rw-rw-r--
2022-08-30 11:49
SourceMapDevToolPlugin.js
16.61
KB
-rw-rw-r--
2022-08-30 11:49
Stats.js
1.96
KB
-rw-rw-r--
2022-08-30 11:49
Template.js
12.52
KB
-rw-rw-r--
2022-08-30 11:49
TemplatedPathPlugin.js
8.58
KB
-rw-rw-r--
2022-08-30 11:49
UnhandledSchemeError.js
833
B
-rw-rw-r--
2022-08-30 11:49
UnsupportedFeatureWarning.js
780
B
-rw-rw-r--
2022-08-30 11:49
UseStrictPlugin.js
1.61
KB
-rw-rw-r--
2022-08-30 11:49
WarnCaseSensitiveModulesPlugin.js
1.38
KB
-rw-rw-r--
2022-08-30 11:49
WarnDeprecatedOptionPlugin.js
1.25
KB
-rw-rw-r--
2022-08-30 11:49
WarnNoModeSetPlugin.js
545
B
-rw-rw-r--
2022-08-30 11:49
WatchIgnorePlugin.js
3.27
KB
-rw-rw-r--
2022-08-30 11:49
Watching.js
12.62
KB
-rw-rw-r--
2022-08-30 11:49
WebpackError.js
1.34
KB
-rw-rw-r--
2022-08-30 11:49
WebpackIsIncludedPlugin.js
2.36
KB
-rw-rw-r--
2022-08-30 11:49
WebpackOptionsApply.js
25.69
KB
-rw-rw-r--
2022-08-30 11:49
WebpackOptionsDefaulter.js
470
B
-rw-rw-r--
2022-08-30 11:49
buildChunkGraph.js
44.55
KB
-rw-rw-r--
2022-08-30 11:49
cli.js
16.2
KB
-rw-rw-r--
2022-08-30 11:49
formatLocation.js
1.74
KB
-rw-rw-r--
2022-08-30 11:49
index.js
16.21
KB
-rw-rw-r--
2022-08-30 11:49
validateSchema.js
6.25
KB
-rw-rw-r--
2022-08-30 11:49
webpack.js
5.27
KB
-rw-rw-r--
2022-08-30 11:49
Save
Rename
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const { ConcatSource, PrefixSource } = require("webpack-sources"); /** @typedef {import("webpack-sources").Source} Source */ /** @typedef {import("../declarations/WebpackOptions").Output} OutputOptions */ /** @typedef {import("./Chunk")} Chunk */ /** @typedef {import("./ChunkGraph")} ChunkGraph */ /** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */ /** @typedef {import("./Compilation").AssetInfo} AssetInfo */ /** @typedef {import("./Compilation").PathData} PathData */ /** @typedef {import("./DependencyTemplates")} DependencyTemplates */ /** @typedef {import("./Module")} Module */ /** @typedef {import("./ModuleGraph")} ModuleGraph */ /** @typedef {import("./ModuleTemplate")} ModuleTemplate */ /** @typedef {import("./RuntimeModule")} RuntimeModule */ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ /** @typedef {import("./javascript/JavascriptModulesPlugin").ChunkRenderContext} ChunkRenderContext */ /** @typedef {import("./javascript/JavascriptModulesPlugin").RenderContext} RenderContext */ const START_LOWERCASE_ALPHABET_CODE = "a".charCodeAt(0); const START_UPPERCASE_ALPHABET_CODE = "A".charCodeAt(0); const DELTA_A_TO_Z = "z".charCodeAt(0) - START_LOWERCASE_ALPHABET_CODE + 1; const NUMBER_OF_IDENTIFIER_START_CHARS = DELTA_A_TO_Z * 2 + 2; // a-z A-Z _ $ const NUMBER_OF_IDENTIFIER_CONTINUATION_CHARS = NUMBER_OF_IDENTIFIER_START_CHARS + 10; // a-z A-Z _ $ 0-9 const FUNCTION_CONTENT_REGEX = /^function\s?\(\)\s?\{\r?\n?|\r?\n?\}$/g; const INDENT_MULTILINE_REGEX = /^\t/gm; const LINE_SEPARATOR_REGEX = /\r?\n/g; const IDENTIFIER_NAME_REPLACE_REGEX = /^([^a-zA-Z$_])/; const IDENTIFIER_ALPHA_NUMERIC_NAME_REPLACE_REGEX = /[^a-zA-Z0-9$]+/g; const COMMENT_END_REGEX = /\*\//g; const PATH_NAME_NORMALIZE_REPLACE_REGEX = /[^a-zA-Z0-9_!§$()=\-^°]+/g; const MATCH_PADDED_HYPHENS_REPLACE_REGEX = /^-|-$/g; /** * @typedef {Object} RenderManifestOptions * @property {Chunk} chunk the chunk used to render * @property {string} hash * @property {string} fullHash * @property {OutputOptions} outputOptions * @property {CodeGenerationResults} codeGenerationResults * @property {{javascript: ModuleTemplate}} moduleTemplates * @property {DependencyTemplates} dependencyTemplates * @property {RuntimeTemplate} runtimeTemplate * @property {ModuleGraph} moduleGraph * @property {ChunkGraph} chunkGraph */ /** @typedef {RenderManifestEntryTemplated | RenderManifestEntryStatic} RenderManifestEntry */ /** * @typedef {Object} RenderManifestEntryTemplated * @property {function(): Source} render * @property {string | function(PathData, AssetInfo=): string} filenameTemplate * @property {PathData=} pathOptions * @property {AssetInfo=} info * @property {string} identifier * @property {string=} hash * @property {boolean=} auxiliary */ /** * @typedef {Object} RenderManifestEntryStatic * @property {function(): Source} render * @property {string} filename * @property {AssetInfo} info * @property {string} identifier * @property {string=} hash * @property {boolean=} auxiliary */ /** * @typedef {Object} HasId * @property {number | string} id */ /** * @typedef {function(Module, number): boolean} ModuleFilterPredicate */ class Template { /** * * @param {Function} fn a runtime function (.runtime.js) "template" * @returns {string} the updated and normalized function string */ static getFunctionContent(fn) { return fn .toString() .replace(FUNCTION_CONTENT_REGEX, "") .replace(INDENT_MULTILINE_REGEX, "") .replace(LINE_SEPARATOR_REGEX, "\n"); } /** * @param {string} str the string converted to identifier * @returns {string} created identifier */ static toIdentifier(str) { if (typeof str !== "string") return ""; return str .replace(IDENTIFIER_NAME_REPLACE_REGEX, "_$1") .replace(IDENTIFIER_ALPHA_NUMERIC_NAME_REPLACE_REGEX, "_"); } /** * * @param {string} str string to be converted to commented in bundle code * @returns {string} returns a commented version of string */ static toComment(str) { if (!str) return ""; return `/*! ${str.replace(COMMENT_END_REGEX, "* /")} */`; } /** * * @param {string} str string to be converted to "normal comment" * @returns {string} returns a commented version of string */ static toNormalComment(str) { if (!str) return ""; return `/* ${str.replace(COMMENT_END_REGEX, "* /")} */`; } /** * @param {string} str string path to be normalized * @returns {string} normalized bundle-safe path */ static toPath(str) { if (typeof str !== "string") return ""; return str .replace(PATH_NAME_NORMALIZE_REPLACE_REGEX, "-") .replace(MATCH_PADDED_HYPHENS_REPLACE_REGEX, ""); } // map number to a single character a-z, A-Z or multiple characters if number is too big /** * @param {number} n number to convert to ident * @returns {string} returns single character ident */ static numberToIdentifier(n) { if (n >= NUMBER_OF_IDENTIFIER_START_CHARS) { // use multiple letters return ( Template.numberToIdentifier(n % NUMBER_OF_IDENTIFIER_START_CHARS) + Template.numberToIdentifierContinuation( Math.floor(n / NUMBER_OF_IDENTIFIER_START_CHARS) ) ); } // lower case if (n < DELTA_A_TO_Z) { return String.fromCharCode(START_LOWERCASE_ALPHABET_CODE + n); } n -= DELTA_A_TO_Z; // upper case if (n < DELTA_A_TO_Z) { return String.fromCharCode(START_UPPERCASE_ALPHABET_CODE + n); } if (n === DELTA_A_TO_Z) return "_"; return "$"; } /** * @param {number} n number to convert to ident * @returns {string} returns single character ident */ static numberToIdentifierContinuation(n) { if (n >= NUMBER_OF_IDENTIFIER_CONTINUATION_CHARS) { // use multiple letters return ( Template.numberToIdentifierContinuation( n % NUMBER_OF_IDENTIFIER_CONTINUATION_CHARS ) + Template.numberToIdentifierContinuation( Math.floor(n / NUMBER_OF_IDENTIFIER_CONTINUATION_CHARS) ) ); } // lower case if (n < DELTA_A_TO_Z) { return String.fromCharCode(START_LOWERCASE_ALPHABET_CODE + n); } n -= DELTA_A_TO_Z; // upper case if (n < DELTA_A_TO_Z) { return String.fromCharCode(START_UPPERCASE_ALPHABET_CODE + n); } n -= DELTA_A_TO_Z; // numbers if (n < 10) { return `${n}`; } if (n === 10) return "_"; return "$"; } /** * * @param {string | string[]} s string to convert to identity * @returns {string} converted identity */ static indent(s) { if (Array.isArray(s)) { return s.map(Template.indent).join("\n"); } else { const str = s.trimRight(); if (!str) return ""; const ind = str[0] === "\n" ? "" : "\t"; return ind + str.replace(/\n([^\n])/g, "\n\t$1"); } } /** * * @param {string|string[]} s string to create prefix for * @param {string} prefix prefix to compose * @returns {string} returns new prefix string */ static prefix(s, prefix) { const str = Template.asString(s).trim(); if (!str) return ""; const ind = str[0] === "\n" ? "" : prefix; return ind + str.replace(/\n([^\n])/g, "\n" + prefix + "$1"); } /** * * @param {string|string[]} str string or string collection * @returns {string} returns a single string from array */ static asString(str) { if (Array.isArray(str)) { return str.join("\n"); } return str; } /** * @typedef {Object} WithId * @property {string|number} id */ /** * @param {WithId[]} modules a collection of modules to get array bounds for * @returns {[number, number] | false} returns the upper and lower array bounds * or false if not every module has a number based id */ static getModulesArrayBounds(modules) { let maxId = -Infinity; let minId = Infinity; for (const module of modules) { const moduleId = module.id; if (typeof moduleId !== "number") return false; if (maxId < moduleId) maxId = moduleId; if (minId > moduleId) minId = moduleId; } if (minId < 16 + ("" + minId).length) { // add minId x ',' instead of 'Array(minId).concat(…)' minId = 0; } // start with -1 because the first module needs no comma let objectOverhead = -1; for (const module of modules) { // module id + colon + comma objectOverhead += `${module.id}`.length + 2; } // number of commas, or when starting non-zero the length of Array(minId).concat() const arrayOverhead = minId === 0 ? maxId : 16 + `${minId}`.length + maxId; return arrayOverhead < objectOverhead ? [minId, maxId] : false; } /** * @param {ChunkRenderContext} renderContext render context * @param {Module[]} modules modules to render (should be ordered by identifier) * @param {function(Module): Source} renderModule function to render a module * @param {string=} prefix applying prefix strings * @returns {Source} rendered chunk modules in a Source object */ static renderChunkModules(renderContext, modules, renderModule, prefix = "") { const { chunkGraph } = renderContext; var source = new ConcatSource(); if (modules.length === 0) { return null; } /** @type {{id: string|number, source: Source|string}[]} */ const allModules = modules.map(module => { return { id: chunkGraph.getModuleId(module), source: renderModule(module) || "false" }; }); const bounds = Template.getModulesArrayBounds(allModules); if (bounds) { // Render a spare array const minId = bounds[0]; const maxId = bounds[1]; if (minId !== 0) { source.add(`Array(${minId}).concat(`); } source.add("[\n"); /** @type {Map<string|number, {id: string|number, source: Source|string}>} */ const modules = new Map(); for (const module of allModules) { modules.set(module.id, module); } for (let idx = minId; idx <= maxId; idx++) { const module = modules.get(idx); if (idx !== minId) { source.add(",\n"); } source.add(`/* ${idx} */`); if (module) { source.add("\n"); source.add(module.source); } } source.add("\n" + prefix + "]"); if (minId !== 0) { source.add(")"); } } else { // Render an object source.add("{\n"); for (let i = 0; i < allModules.length; i++) { const module = allModules[i]; if (i !== 0) { source.add(",\n"); } source.add(`\n/***/ ${JSON.stringify(module.id)}:\n`); source.add(module.source); } source.add(`\n\n${prefix}}`); } return source; } /** * @param {RuntimeModule[]} runtimeModules array of runtime modules in order * @param {RenderContext & { codeGenerationResults?: CodeGenerationResults }} renderContext render context * @returns {Source} rendered runtime modules in a Source object */ static renderRuntimeModules(runtimeModules, renderContext) { const source = new ConcatSource(); for (const module of runtimeModules) { const codeGenerationResults = renderContext.codeGenerationResults; let runtimeSource; if (codeGenerationResults) { runtimeSource = codeGenerationResults.getSource( module, renderContext.chunk.runtime, "runtime" ); } else { const codeGenResult = module.codeGeneration({ chunkGraph: renderContext.chunkGraph, dependencyTemplates: renderContext.dependencyTemplates, moduleGraph: renderContext.moduleGraph, runtimeTemplate: renderContext.runtimeTemplate, runtime: renderContext.chunk.runtime, codeGenerationResults }); if (!codeGenResult) continue; runtimeSource = codeGenResult.sources.get("runtime"); } if (runtimeSource) { source.add(Template.toNormalComment(module.identifier()) + "\n"); if (!module.shouldIsolate()) { source.add(runtimeSource); source.add("\n\n"); } else if (renderContext.runtimeTemplate.supportsArrowFunction()) { source.add("(() => {\n"); source.add(new PrefixSource("\t", runtimeSource)); source.add("\n})();\n\n"); } else { source.add("!function() {\n"); source.add(new PrefixSource("\t", runtimeSource)); source.add("\n}();\n\n"); } } } return source; } /** * @param {RuntimeModule[]} runtimeModules array of runtime modules in order * @param {RenderContext} renderContext render context * @returns {Source} rendered chunk runtime modules in a Source object */ static renderChunkRuntimeModules(runtimeModules, renderContext) { return new PrefixSource( "/******/ ", new ConcatSource( "function(__webpack_require__) { // webpackRuntimeModules\n", this.renderRuntimeModules(runtimeModules, renderContext), "}\n" ) ); } } module.exports = Template; module.exports.NUMBER_OF_IDENTIFIER_START_CHARS = NUMBER_OF_IDENTIFIER_START_CHARS; module.exports.NUMBER_OF_IDENTIFIER_CONTINUATION_CHARS = NUMBER_OF_IDENTIFIER_CONTINUATION_CHARS;