webpack 5.59.0 → 5.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -38
- package/bin/webpack.js +34 -10
- package/hot/dev-server.js +19 -5
- package/hot/lazy-compilation-node.js +13 -1
- package/hot/lazy-compilation-web.js +9 -0
- package/hot/log-apply-result.js +5 -0
- package/hot/log.js +23 -4
- package/hot/only-dev-server.js +3 -2
- package/hot/poll.js +5 -2
- package/hot/signal.js +6 -2
- package/lib/APIPlugin.js +226 -122
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AsyncDependenciesBlock.js +13 -5
- package/lib/AutomaticPrefetchPlugin.js +2 -1
- package/lib/BannerPlugin.js +33 -12
- package/lib/Cache.js +16 -12
- package/lib/CacheFacade.js +13 -16
- package/lib/CaseSensitiveModulesWarning.js +8 -8
- package/lib/Chunk.js +60 -33
- package/lib/ChunkGraph.js +207 -72
- package/lib/ChunkGroup.js +40 -20
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +117 -32
- package/lib/CodeGenerationResults.js +8 -7
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/CompatibilityPlugin.js +85 -46
- package/lib/Compilation.js +712 -392
- package/lib/Compiler.js +393 -172
- package/lib/ConcatenationScope.js +10 -13
- package/lib/ConditionalInitFragment.js +22 -14
- package/lib/ConstPlugin.js +104 -64
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +283 -108
- package/lib/ContextModuleFactory.js +151 -63
- package/lib/ContextReplacementPlugin.js +25 -10
- package/lib/CssModule.js +166 -0
- package/lib/DefinePlugin.js +254 -148
- package/lib/DelegatedModule.js +29 -6
- package/lib/DelegatedModuleFactoryPlugin.js +42 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +17 -2
- package/lib/Dependency.js +58 -29
- package/lib/DependencyTemplate.js +24 -3
- package/lib/DependencyTemplates.js +2 -2
- package/lib/DllEntryPlugin.js +18 -1
- package/lib/DllModule.js +21 -4
- package/lib/DllModuleFactory.js +2 -1
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +50 -19
- package/lib/EntryOptionPlugin.js +6 -1
- package/lib/EntryPlugin.js +7 -4
- package/lib/Entrypoint.js +2 -2
- package/lib/EnvironmentNotSupportAsyncWarning.js +52 -0
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +65 -26
- package/lib/EvalDevToolModulePlugin.js +37 -13
- package/lib/EvalSourceMapDevToolPlugin.js +50 -20
- package/lib/ExportsInfo.js +234 -133
- package/lib/ExportsInfoApiPlugin.js +31 -15
- package/lib/ExternalModule.js +391 -129
- package/lib/ExternalModuleFactoryPlugin.js +65 -17
- package/lib/FileSystemInfo.js +1038 -523
- package/lib/FlagAllModulesAsUsedPlugin.js +27 -27
- package/lib/FlagDependencyExportsPlugin.js +352 -349
- package/lib/FlagDependencyUsagePlugin.js +10 -10
- package/lib/FlagEntryExportAsUsedPlugin.js +26 -23
- package/lib/Generator.js +16 -8
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +11 -13
- package/lib/HotModuleReplacementPlugin.js +221 -128
- package/lib/IgnoreErrorModuleFactory.js +4 -4
- package/lib/IgnorePlugin.js +5 -4
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +39 -15
- package/lib/JavascriptMetaInfoPlugin.js +27 -15
- package/lib/LibManifestPlugin.js +45 -16
- package/lib/LoaderOptionsPlugin.js +13 -3
- package/lib/MainTemplate.js +74 -21
- package/lib/Module.js +155 -34
- package/lib/ModuleBuildError.js +13 -11
- package/lib/ModuleDependencyError.js +6 -4
- package/lib/ModuleDependencyWarning.js +6 -4
- package/lib/ModuleError.js +10 -5
- package/lib/ModuleFactory.js +4 -4
- package/lib/ModuleFilenameHelpers.js +164 -54
- package/lib/ModuleGraph.js +93 -53
- package/lib/ModuleGraphConnection.js +27 -13
- package/lib/ModuleHashingError.js +29 -0
- package/lib/ModuleInfoHeaderPlugin.js +92 -33
- package/lib/ModuleNotFoundError.js +5 -2
- package/lib/ModuleParseError.js +17 -9
- package/lib/ModuleProfile.js +1 -0
- package/lib/ModuleRestoreError.js +3 -1
- package/lib/ModuleStoreError.js +3 -2
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +168 -0
- package/lib/ModuleWarning.js +10 -5
- package/lib/MultiCompiler.js +115 -38
- package/lib/MultiStats.js +75 -33
- package/lib/MultiWatching.js +6 -2
- package/lib/NodeStuffPlugin.js +136 -37
- package/lib/NormalModule.js +437 -194
- package/lib/NormalModuleFactory.js +313 -116
- package/lib/NormalModuleReplacementPlugin.js +10 -4
- package/lib/NullFactory.js +1 -1
- package/lib/OptimizationStages.js +3 -3
- package/lib/Parser.js +1 -1
- package/lib/PlatformPlugin.js +39 -0
- package/lib/PrefetchPlugin.js +4 -0
- package/lib/ProgressPlugin.js +83 -28
- package/lib/ProvidePlugin.js +37 -19
- package/lib/RawModule.js +18 -5
- package/lib/RecordIdsPlugin.js +8 -8
- package/lib/RequireJsStuffPlugin.js +22 -15
- package/lib/ResolverFactory.js +8 -4
- package/lib/RuntimeGlobals.js +99 -65
- package/lib/RuntimeModule.js +17 -15
- package/lib/RuntimePlugin.js +116 -13
- package/lib/RuntimeTemplate.js +304 -102
- package/lib/SelfModuleFactory.js +12 -0
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +4 -0
- package/lib/SourceMapDevToolPlugin.js +89 -42
- package/lib/Stats.js +12 -7
- package/lib/Template.js +30 -33
- package/lib/TemplatedPathPlugin.js +102 -34
- package/lib/UseStrictPlugin.js +37 -12
- package/lib/WarnCaseSensitiveModulesPlugin.js +12 -0
- package/lib/WarnDeprecatedOptionPlugin.js +6 -0
- package/lib/WatchIgnorePlugin.js +46 -13
- package/lib/Watching.js +139 -76
- package/lib/WebpackError.js +14 -5
- package/lib/WebpackIsIncludedPlugin.js +22 -13
- package/lib/WebpackOptionsApply.js +162 -56
- package/lib/WebpackOptionsDefaulter.js +10 -3
- package/lib/asset/AssetGenerator.js +351 -99
- package/lib/asset/AssetModulesPlugin.js +57 -33
- package/lib/asset/AssetParser.js +15 -6
- package/lib/asset/AssetSourceGenerator.js +30 -10
- package/lib/asset/AssetSourceParser.js +8 -2
- package/lib/asset/RawDataUrlModule.js +162 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +16 -13
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/buildChunkGraph.js +376 -420
- package/lib/cache/AddManagedPathsPlugin.js +6 -1
- package/lib/cache/IdleFileCachePlugin.js +26 -13
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +13 -7
- package/lib/cache/PackFileCacheStrategy.js +172 -94
- package/lib/cache/ResolverCachePlugin.js +115 -43
- package/lib/cache/getLazyHashedEtag.js +2 -2
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +195 -110
- package/lib/config/browserslistTargetHandler.js +106 -41
- package/lib/config/defaults.js +572 -154
- package/lib/config/normalization.js +361 -322
- package/lib/config/target.js +105 -66
- package/lib/container/ContainerEntryDependency.js +2 -1
- package/lib/container/ContainerEntryModule.js +27 -11
- package/lib/container/ContainerEntryModuleFactory.js +1 -1
- package/lib/container/ContainerExposedDependency.js +9 -0
- package/lib/container/ContainerPlugin.js +18 -12
- package/lib/container/ContainerReferencePlugin.js +1 -1
- package/lib/container/FallbackDependency.js +13 -0
- package/lib/container/FallbackItemDependency.js +3 -0
- package/lib/container/FallbackModule.js +19 -8
- package/lib/container/FallbackModuleFactory.js +1 -1
- package/lib/container/ModuleFederationPlugin.js +2 -0
- package/lib/container/RemoteModule.js +17 -4
- package/lib/container/RemoteRuntimeModule.js +31 -17
- package/lib/container/RemoteToExternalDependency.js +3 -0
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +203 -0
- package/lib/css/CssGenerator.js +151 -0
- package/lib/css/CssLoadingRuntimeModule.js +592 -0
- package/lib/css/CssModulesPlugin.js +888 -0
- package/lib/css/CssParser.js +1049 -0
- package/lib/css/walkCssTokens.js +775 -0
- package/lib/debug/ProfilingPlugin.js +102 -54
- package/lib/dependencies/AMDDefineDependency.js +54 -10
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +204 -61
- package/lib/dependencies/AMDPlugin.js +44 -24
- package/lib/dependencies/AMDRequireArrayDependency.js +34 -10
- package/lib/dependencies/AMDRequireContextDependency.js +15 -0
- package/lib/dependencies/AMDRequireDependenciesBlock.js +6 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +185 -54
- package/lib/dependencies/AMDRequireDependency.js +21 -6
- package/lib/dependencies/AMDRequireItemDependency.js +6 -0
- package/lib/dependencies/AMDRuntimeModules.js +4 -4
- package/lib/dependencies/CachedConstDependency.js +22 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +16 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +77 -47
- package/lib/dependencies/CommonJsExportsDependency.js +28 -5
- package/lib/dependencies/CommonJsExportsParserPlugin.js +111 -39
- package/lib/dependencies/CommonJsFullRequireDependency.js +42 -8
- package/lib/dependencies/CommonJsImportsParserPlugin.js +530 -130
- package/lib/dependencies/CommonJsPlugin.js +51 -26
- package/lib/dependencies/CommonJsRequireContextDependency.js +23 -2
- package/lib/dependencies/CommonJsRequireDependency.js +9 -1
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +22 -8
- package/lib/dependencies/ConstDependency.js +12 -3
- package/lib/dependencies/ContextDependency.js +32 -5
- package/lib/dependencies/ContextDependencyHelpers.js +92 -62
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -1
- package/lib/dependencies/ContextElementDependency.js +41 -4
- package/lib/dependencies/CreateScriptUrlDependency.js +22 -1
- package/lib/dependencies/CriticalDependencyWarning.js +4 -1
- package/lib/dependencies/CssExportDependency.js +156 -0
- package/lib/dependencies/CssImportDependency.js +125 -0
- package/lib/dependencies/CssLocalIdentifierDependency.js +245 -0
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +111 -0
- package/lib/dependencies/CssUrlDependency.js +164 -0
- package/lib/dependencies/DelegatedSourceDependency.js +3 -0
- package/lib/dependencies/DllEntryDependency.js +14 -0
- package/lib/dependencies/DynamicExports.js +15 -11
- package/lib/dependencies/ExportsInfoDependency.js +26 -5
- package/lib/dependencies/ExternalModuleDependency.js +109 -0
- package/lib/dependencies/ExternalModuleInitFragment.js +133 -0
- package/lib/dependencies/HarmonyAcceptDependency.js +11 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +9 -4
- package/lib/dependencies/HarmonyCompatibilityDependency.js +6 -5
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +29 -3
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +152 -0
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +96 -51
- package/lib/dependencies/HarmonyExportExpressionDependency.js +21 -4
- package/lib/dependencies/HarmonyExportHeaderDependency.js +13 -0
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +216 -108
- package/lib/dependencies/HarmonyExportInitFragment.js +21 -9
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +12 -0
- package/lib/dependencies/HarmonyExports.js +13 -7
- package/lib/dependencies/HarmonyImportDependency.js +65 -19
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +268 -74
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +11 -5
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +180 -36
- package/lib/dependencies/HarmonyModulesPlugin.js +33 -5
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +15 -3
- package/lib/dependencies/ImportContextDependency.js +15 -2
- package/lib/dependencies/ImportDependency.js +50 -12
- package/lib/dependencies/ImportEagerDependency.js +11 -6
- package/lib/dependencies/ImportMetaContextDependency.js +42 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +301 -0
- package/lib/dependencies/ImportMetaContextPlugin.js +72 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +6 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +6 -0
- package/lib/dependencies/ImportMetaPlugin.js +128 -59
- package/lib/dependencies/ImportParserPlugin.js +153 -83
- package/lib/dependencies/ImportPlugin.js +21 -7
- package/lib/dependencies/ImportWeakDependency.js +11 -6
- package/lib/dependencies/JsonExportsDependency.js +38 -30
- package/lib/dependencies/LoaderDependency.js +14 -0
- package/lib/dependencies/LoaderImportDependency.js +14 -0
- package/lib/dependencies/LoaderPlugin.js +54 -40
- package/lib/dependencies/LocalModule.js +17 -1
- package/lib/dependencies/LocalModuleDependency.js +15 -0
- package/lib/dependencies/LocalModulesHelpers.js +22 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +9 -1
- package/lib/dependencies/ModuleDependency.js +24 -7
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ModuleHotAcceptDependency.js +6 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +6 -0
- package/lib/dependencies/PrefetchDependency.js +3 -0
- package/lib/dependencies/ProvidedDependency.js +43 -8
- package/lib/dependencies/PureExpressionDependency.js +73 -39
- package/lib/dependencies/RequireContextDependency.js +6 -16
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +14 -6
- package/lib/dependencies/RequireContextPlugin.js +20 -7
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +7 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +29 -12
- package/lib/dependencies/RequireEnsureDependency.js +16 -2
- package/lib/dependencies/RequireEnsureItemDependency.js +3 -0
- package/lib/dependencies/RequireEnsurePlugin.js +27 -7
- package/lib/dependencies/RequireHeaderDependency.js +14 -1
- package/lib/dependencies/RequireIncludeDependency.js +6 -1
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +29 -5
- package/lib/dependencies/RequireIncludePlugin.js +25 -5
- package/lib/dependencies/RequireResolveContextDependency.js +19 -2
- package/lib/dependencies/RequireResolveDependency.js +8 -1
- package/lib/dependencies/RequireResolveHeaderDependency.js +18 -0
- package/lib/dependencies/RuntimeRequirementsDependency.js +9 -1
- package/lib/dependencies/StaticExportsDependency.js +8 -0
- package/lib/dependencies/SystemPlugin.js +49 -22
- package/lib/dependencies/SystemRuntimeModule.js +1 -1
- package/lib/dependencies/URLDependency.js +20 -13
- package/lib/dependencies/URLPlugin.js +115 -27
- package/lib/dependencies/UnsupportedDependency.js +13 -0
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +14 -0
- package/lib/dependencies/WebAssemblyImportDependency.js +9 -1
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -1
- package/lib/dependencies/WorkerDependency.js +47 -3
- package/lib/dependencies/WorkerPlugin.js +143 -59
- package/lib/dependencies/getFunctionExpression.js +9 -0
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +3 -2
- package/lib/esm/ModuleChunkFormatPlugin.js +92 -55
- package/lib/esm/ModuleChunkLoadingPlugin.js +12 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +141 -25
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +37 -25
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +2 -1
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +13 -15
- package/lib/hmr/LazyCompilationPlugin.js +94 -41
- package/lib/hmr/lazyCompilationBackend.js +107 -44
- package/lib/ids/ChunkModuleIdRangePlugin.js +12 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +13 -6
- package/lib/ids/DeterministicModuleIdsPlugin.js +59 -35
- package/lib/ids/HashedModuleIdsPlugin.js +24 -16
- package/lib/ids/IdHelpers.js +59 -49
- package/lib/ids/NamedChunkIdsPlugin.js +13 -1
- package/lib/ids/NamedModuleIdsPlugin.js +20 -12
- package/lib/ids/NaturalModuleIdsPlugin.js +10 -13
- package/lib/ids/OccurrenceChunkIdsPlugin.js +6 -2
- package/lib/ids/OccurrenceModuleIdsPlugin.js +14 -11
- package/lib/ids/SyncModuleIdsPlugin.js +146 -0
- package/lib/index.js +44 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +9 -7
- package/lib/javascript/BasicEvaluatedExpression.js +133 -19
- package/lib/javascript/ChunkHelpers.js +33 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +18 -15
- package/lib/javascript/EnableChunkLoadingPlugin.js +11 -6
- package/lib/javascript/JavascriptGenerator.js +37 -6
- package/lib/javascript/JavascriptModulesPlugin.js +523 -295
- package/lib/javascript/JavascriptParser.js +1591 -574
- package/lib/javascript/JavascriptParserHelpers.js +58 -37
- package/lib/javascript/StartupHelpers.js +69 -47
- package/lib/json/JsonData.js +33 -0
- package/lib/json/JsonGenerator.js +29 -21
- package/lib/json/JsonModulesPlugin.js +13 -7
- package/lib/json/JsonParser.js +30 -16
- package/lib/library/AbstractLibraryPlugin.js +6 -2
- package/lib/library/AmdLibraryPlugin.js +34 -18
- package/lib/library/AssignLibraryPlugin.js +68 -32
- package/lib/library/EnableLibraryPlugin.js +39 -14
- package/lib/library/ExportPropertyLibraryPlugin.js +14 -5
- package/lib/library/JsonpLibraryPlugin.js +4 -3
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +12 -7
- package/lib/library/SystemLibraryPlugin.js +6 -4
- package/lib/library/UmdLibraryPlugin.js +119 -100
- package/lib/logging/Logger.js +59 -6
- package/lib/logging/createConsoleLogger.js +25 -40
- package/lib/logging/runtime.js +8 -9
- package/lib/logging/truncateArgs.js +9 -8
- package/lib/node/CommonJsChunkLoadingPlugin.js +18 -2
- package/lib/node/NodeEnvironmentPlugin.js +14 -8
- package/lib/node/NodeTargetPlugin.js +7 -0
- package/lib/node/NodeTemplatePlugin.js +10 -2
- package/lib/node/NodeWatchFileSystem.js +100 -50
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +51 -26
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +13 -2
- package/lib/node/ReadFileCompileWasmPlugin.js +21 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +49 -26
- package/lib/node/nodeConsole.js +48 -31
- package/lib/optimize/AggressiveMergingPlugin.js +10 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +26 -21
- package/lib/optimize/ConcatenatedModule.js +353 -212
- package/lib/optimize/EnsureChunkConditionsPlugin.js +4 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +14 -8
- package/lib/optimize/InnerGraph.js +30 -25
- package/lib/optimize/InnerGraphPlugin.js +105 -64
- package/lib/optimize/LimitChunkCountPlugin.js +32 -9
- package/lib/optimize/MangleExportsPlugin.js +7 -2
- package/lib/optimize/MinMaxSizeWarning.js +6 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +150 -83
- package/lib/optimize/RealContentHashPlugin.js +99 -43
- package/lib/optimize/RemoveParentModulesPlugin.js +131 -48
- package/lib/optimize/RuntimeChunkPlugin.js +15 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +119 -63
- package/lib/optimize/SplitChunksPlugin.js +129 -78
- package/lib/performance/SizeLimitsPlugin.js +22 -8
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +4 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +4 -1
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +8 -5
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -3
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +5 -3
- package/lib/rules/BasicEffectRulePlugin.js +7 -1
- package/lib/rules/BasicMatcherRulePlugin.js +8 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +19 -2
- package/lib/rules/RuleSetCompiler.js +53 -32
- package/lib/rules/UseEffectRulePlugin.js +42 -36
- package/lib/runtime/AsyncModuleRuntimeModule.js +56 -69
- package/lib/runtime/AutoPublicPathRuntimeModule.js +25 -9
- package/lib/runtime/BaseUriRuntimeModule.js +35 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -1
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +5 -2
- package/lib/runtime/CompatRuntimeModule.js +7 -2
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +38 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +13 -36
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +6 -3
- package/lib/runtime/EnsureChunkRuntimeModule.js +29 -15
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +56 -43
- package/lib/runtime/GetFullHashRuntimeModule.js +4 -3
- package/lib/runtime/GetMainFilenameRuntimeModule.js +5 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +98 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -1
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +5 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +61 -45
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +5 -2
- package/lib/runtime/NonceRuntimeModule.js +24 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -2
- package/lib/runtime/PublicPathRuntimeModule.js +9 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +5 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +6 -2
- package/lib/runtime/StartupChunkDependenciesPlugin.js +15 -0
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +36 -28
- package/lib/runtime/StartupEntrypointRuntimeModule.js +13 -9
- package/lib/runtime/SystemContextRuntimeModule.js +1 -1
- package/lib/schemes/DataUriPlugin.js +16 -3
- package/lib/schemes/HttpUriPlugin.js +336 -120
- package/lib/serialization/ArraySerializer.js +22 -6
- package/lib/serialization/BinaryMiddleware.js +212 -33
- package/lib/serialization/DateObjectSerializer.js +16 -4
- package/lib/serialization/ErrorObjectSerializer.js +23 -6
- package/lib/serialization/FileMiddleware.js +187 -86
- package/lib/serialization/MapObjectSerializer.js +25 -8
- package/lib/serialization/NullPrototypeObjectSerializer.js +26 -8
- package/lib/serialization/ObjectMiddleware.js +96 -66
- package/lib/serialization/PlainObjectSerializer.js +51 -14
- package/lib/serialization/RegExpObjectSerializer.js +17 -5
- package/lib/serialization/Serializer.js +23 -5
- package/lib/serialization/SerializerMiddleware.js +8 -8
- package/lib/serialization/SetObjectSerializer.js +22 -6
- package/lib/serialization/SingleItemMiddleware.js +2 -2
- package/lib/serialization/types.js +2 -2
- package/lib/sharing/ConsumeSharedFallbackDependency.js +3 -0
- package/lib/sharing/ConsumeSharedModule.js +40 -17
- package/lib/sharing/ConsumeSharedPlugin.js +139 -102
- package/lib/sharing/ConsumeSharedRuntimeModule.js +144 -130
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedDependency.js +17 -0
- package/lib/sharing/ProvideSharedModule.js +19 -6
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -1
- package/lib/sharing/ProvideSharedPlugin.js +37 -30
- package/lib/sharing/SharePlugin.js +2 -2
- package/lib/sharing/ShareRuntimeModule.js +20 -10
- package/lib/sharing/resolveMatchedConfigs.js +6 -5
- package/lib/sharing/utils.js +338 -34
- package/lib/stats/DefaultStatsFactoryPlugin.js +660 -396
- package/lib/stats/DefaultStatsPresetPlugin.js +85 -25
- package/lib/stats/DefaultStatsPrinterPlugin.js +525 -145
- package/lib/stats/StatsFactory.js +128 -57
- package/lib/stats/StatsPrinter.js +77 -46
- package/lib/util/ArrayHelpers.js +35 -1
- package/lib/util/ArrayQueue.js +15 -22
- package/lib/util/AsyncQueue.js +37 -16
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +11 -2
- package/lib/util/MapHelpers.js +17 -5
- package/lib/util/ParallelismFactorCalculator.js +11 -1
- package/lib/util/Queue.js +9 -3
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +19 -6
- package/lib/util/StackedCacheMap.js +33 -3
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +46 -0
- package/lib/util/TupleQueue.js +9 -3
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +8 -8
- package/lib/util/WeakTupleMap.js +70 -28
- package/lib/util/binarySearchBounds.js +51 -9
- package/lib/util/chainedImports.js +97 -0
- package/lib/util/cleverMerge.js +51 -36
- package/lib/util/comparators.js +146 -83
- package/lib/util/compileBooleanMatcher.js +35 -7
- package/lib/util/conventions.js +126 -0
- package/lib/util/create-schema-validation.js +9 -2
- package/lib/util/createHash.js +49 -14
- package/lib/util/deprecation.js +48 -15
- package/lib/util/deterministicGrouping.js +71 -39
- package/lib/util/extractUrlAndGlobal.js +3 -0
- package/lib/util/findGraphRoots.js +7 -5
- package/lib/util/fs.js +419 -94
- package/lib/util/hash/BatchedHash.js +10 -4
- package/lib/util/hash/md4.js +20 -0
- package/lib/util/hash/wasm-hash.js +163 -0
- package/lib/util/hash/xxhash64.js +7 -141
- package/lib/util/identifier.js +140 -93
- package/lib/util/internalSerializables.js +22 -0
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +10 -10
- package/lib/util/mergeScope.js +76 -0
- package/lib/util/nonNumericOnlyHash.js +22 -0
- package/lib/util/numberHash.js +84 -34
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/processAsyncTree.js +7 -1
- package/lib/util/propertyAccess.js +7 -55
- package/lib/util/propertyName.js +77 -0
- package/lib/util/registerExternalSerializer.js +2 -2
- package/lib/util/runtime.js +188 -133
- package/lib/util/semver.js +64 -56
- package/lib/util/serialization.js +26 -1
- package/lib/util/smartGrouping.js +10 -10
- package/lib/util/source.js +1 -1
- package/lib/validateSchema.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +9 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +70 -30
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +9 -1
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +34 -16
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +32 -12
- package/lib/wasm-async/AsyncWebAssemblyParser.js +17 -4
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +72 -31
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +17 -6
- package/lib/wasm-sync/WebAssemblyGenerator.js +72 -52
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +5 -4
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +53 -43
- package/lib/wasm-sync/WebAssemblyParser.js +23 -9
- package/lib/wasm-sync/WebAssemblyUtils.js +5 -4
- package/lib/web/FetchCompileAsyncWasmPlugin.js +11 -1
- package/lib/web/FetchCompileWasmPlugin.js +59 -42
- package/lib/web/JsonpChunkLoadingPlugin.js +9 -0
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +71 -41
- package/lib/webpack.js +43 -12
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +15 -12
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +55 -40
- package/module.d.ts +233 -0
- package/package.json +85 -139
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +679 -47
- package/schemas/plugins/BannerPlugin.check.js +1 -1
- package/schemas/plugins/BannerPlugin.json +9 -1
- package/schemas/plugins/DllReferencePlugin.check.js +1 -1
- package/schemas/plugins/HashedModuleIdsPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.json +4 -0
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +12 -1
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoParserOptions.json +3 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssGlobalParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssGlobalParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleGeneratorOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssParserOptions.json +3 -0
- package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
- package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
- package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.json +4 -0
- package/schemas/plugins/sharing/SharePlugin.check.js +1 -1
- package/types.d.ts +5026 -1756
@@ -0,0 +1,146 @@
|
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
const { WebpackError } = require("..");
|
9
|
+
const { getUsedModuleIdsAndModules } = require("./IdHelpers");
|
10
|
+
|
11
|
+
/** @typedef {import("../Compiler")} Compiler */
|
12
|
+
/** @typedef {import("../Module")} Module */
|
13
|
+
/** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
|
14
|
+
|
15
|
+
const plugin = "SyncModuleIdsPlugin";
|
16
|
+
|
17
|
+
class SyncModuleIdsPlugin {
|
18
|
+
/**
|
19
|
+
* @param {object} options options
|
20
|
+
* @param {string} options.path path to file
|
21
|
+
* @param {string=} options.context context for module names
|
22
|
+
* @param {function(Module): boolean} options.test selector for modules
|
23
|
+
* @param {"read" | "create" | "merge" | "update"=} options.mode operation mode (defaults to merge)
|
24
|
+
*/
|
25
|
+
constructor({ path, context, test, mode }) {
|
26
|
+
this._path = path;
|
27
|
+
this._context = context;
|
28
|
+
this._test = test || (() => true);
|
29
|
+
const readAndWrite = !mode || mode === "merge" || mode === "update";
|
30
|
+
this._read = readAndWrite || mode === "read";
|
31
|
+
this._write = readAndWrite || mode === "create";
|
32
|
+
this._prune = mode === "update";
|
33
|
+
}
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Apply the plugin
|
37
|
+
* @param {Compiler} compiler the compiler instance
|
38
|
+
* @returns {void}
|
39
|
+
*/
|
40
|
+
apply(compiler) {
|
41
|
+
/** @type {Map<string, string | number>} */
|
42
|
+
let data;
|
43
|
+
let dataChanged = false;
|
44
|
+
if (this._read) {
|
45
|
+
compiler.hooks.readRecords.tapAsync(plugin, callback => {
|
46
|
+
const fs =
|
47
|
+
/** @type {IntermediateFileSystem} */
|
48
|
+
(compiler.intermediateFileSystem);
|
49
|
+
fs.readFile(this._path, (err, buffer) => {
|
50
|
+
if (err) {
|
51
|
+
if (err.code !== "ENOENT") {
|
52
|
+
return callback(err);
|
53
|
+
}
|
54
|
+
return callback();
|
55
|
+
}
|
56
|
+
const json = JSON.parse(/** @type {Buffer} */ (buffer).toString());
|
57
|
+
data = new Map();
|
58
|
+
for (const key of Object.keys(json)) {
|
59
|
+
data.set(key, json[key]);
|
60
|
+
}
|
61
|
+
dataChanged = false;
|
62
|
+
return callback();
|
63
|
+
});
|
64
|
+
});
|
65
|
+
}
|
66
|
+
if (this._write) {
|
67
|
+
compiler.hooks.emitRecords.tapAsync(plugin, callback => {
|
68
|
+
if (!data || !dataChanged) return callback();
|
69
|
+
/** @type {{[key: string]: string | number}} */
|
70
|
+
const json = {};
|
71
|
+
const sorted = Array.from(data).sort(([a], [b]) => (a < b ? -1 : 1));
|
72
|
+
for (const [key, value] of sorted) {
|
73
|
+
json[key] = value;
|
74
|
+
}
|
75
|
+
const fs =
|
76
|
+
/** @type {IntermediateFileSystem} */
|
77
|
+
(compiler.intermediateFileSystem);
|
78
|
+
fs.writeFile(this._path, JSON.stringify(json), callback);
|
79
|
+
});
|
80
|
+
}
|
81
|
+
compiler.hooks.thisCompilation.tap(plugin, compilation => {
|
82
|
+
const associatedObjectForCache = compiler.root;
|
83
|
+
const context = this._context || compiler.context;
|
84
|
+
if (this._read) {
|
85
|
+
compilation.hooks.reviveModules.tap(plugin, (_1, _2) => {
|
86
|
+
if (!data) return;
|
87
|
+
const { chunkGraph } = compilation;
|
88
|
+
const [usedIds, modules] = getUsedModuleIdsAndModules(
|
89
|
+
compilation,
|
90
|
+
this._test
|
91
|
+
);
|
92
|
+
for (const module of modules) {
|
93
|
+
const name = module.libIdent({
|
94
|
+
context,
|
95
|
+
associatedObjectForCache
|
96
|
+
});
|
97
|
+
if (!name) continue;
|
98
|
+
const id = data.get(name);
|
99
|
+
const idAsString = `${id}`;
|
100
|
+
if (usedIds.has(idAsString)) {
|
101
|
+
const err = new WebpackError(
|
102
|
+
`SyncModuleIdsPlugin: Unable to restore id '${id}' from '${this._path}' as it's already used.`
|
103
|
+
);
|
104
|
+
err.module = module;
|
105
|
+
compilation.errors.push(err);
|
106
|
+
}
|
107
|
+
chunkGraph.setModuleId(module, /** @type {string | number} */ (id));
|
108
|
+
usedIds.add(idAsString);
|
109
|
+
}
|
110
|
+
});
|
111
|
+
}
|
112
|
+
if (this._write) {
|
113
|
+
compilation.hooks.recordModules.tap(plugin, modules => {
|
114
|
+
const { chunkGraph } = compilation;
|
115
|
+
let oldData = data;
|
116
|
+
if (!oldData) {
|
117
|
+
oldData = data = new Map();
|
118
|
+
} else if (this._prune) {
|
119
|
+
data = new Map();
|
120
|
+
}
|
121
|
+
for (const module of modules) {
|
122
|
+
if (this._test(module)) {
|
123
|
+
const name = module.libIdent({
|
124
|
+
context,
|
125
|
+
associatedObjectForCache
|
126
|
+
});
|
127
|
+
if (!name) continue;
|
128
|
+
const id = chunkGraph.getModuleId(module);
|
129
|
+
if (id === null) continue;
|
130
|
+
const oldId = oldData.get(name);
|
131
|
+
if (oldId !== id) {
|
132
|
+
dataChanged = true;
|
133
|
+
} else if (data === oldData) {
|
134
|
+
continue;
|
135
|
+
}
|
136
|
+
data.set(name, id);
|
137
|
+
}
|
138
|
+
}
|
139
|
+
if (data.size !== oldData.size) dataChanged = true;
|
140
|
+
});
|
141
|
+
}
|
142
|
+
});
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
module.exports = SyncModuleIdsPlugin;
|
package/lib/index.js
CHANGED
@@ -11,7 +11,14 @@ const memoize = require("./util/memoize");
|
|
11
11
|
/** @typedef {import("../declarations/WebpackOptions").Entry} Entry */
|
12
12
|
/** @typedef {import("../declarations/WebpackOptions").EntryNormalized} EntryNormalized */
|
13
13
|
/** @typedef {import("../declarations/WebpackOptions").EntryObject} EntryObject */
|
14
|
+
/** @typedef {import("../declarations/WebpackOptions").ExternalItemFunctionData} ExternalItemFunctionData */
|
15
|
+
/** @typedef {import("../declarations/WebpackOptions").ExternalItemObjectKnown} ExternalItemObjectKnown */
|
16
|
+
/** @typedef {import("../declarations/WebpackOptions").ExternalItemObjectUnknown} ExternalItemObjectUnknown */
|
17
|
+
/** @typedef {import("../declarations/WebpackOptions").ExternalItemValue} ExternalItemValue */
|
18
|
+
/** @typedef {import("../declarations/WebpackOptions").Externals} Externals */
|
19
|
+
/** @typedef {import("../declarations/WebpackOptions").FileCacheOptions} FileCacheOptions */
|
14
20
|
/** @typedef {import("../declarations/WebpackOptions").LibraryOptions} LibraryOptions */
|
21
|
+
/** @typedef {import("../declarations/WebpackOptions").MemoryCacheOptions} MemoryCacheOptions */
|
15
22
|
/** @typedef {import("../declarations/WebpackOptions").ModuleOptions} ModuleOptions */
|
16
23
|
/** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
|
17
24
|
/** @typedef {import("../declarations/WebpackOptions").RuleSetCondition} RuleSetCondition */
|
@@ -19,15 +26,26 @@ const memoize = require("./util/memoize");
|
|
19
26
|
/** @typedef {import("../declarations/WebpackOptions").RuleSetRule} RuleSetRule */
|
20
27
|
/** @typedef {import("../declarations/WebpackOptions").RuleSetUse} RuleSetUse */
|
21
28
|
/** @typedef {import("../declarations/WebpackOptions").RuleSetUseItem} RuleSetUseItem */
|
29
|
+
/** @typedef {import("../declarations/WebpackOptions").StatsOptions} StatsOptions */
|
22
30
|
/** @typedef {import("../declarations/WebpackOptions").WebpackOptions} Configuration */
|
23
31
|
/** @typedef {import("../declarations/WebpackOptions").WebpackOptionsNormalized} WebpackOptionsNormalized */
|
24
32
|
/** @typedef {import("../declarations/WebpackOptions").WebpackPluginFunction} WebpackPluginFunction */
|
25
33
|
/** @typedef {import("../declarations/WebpackOptions").WebpackPluginInstance} WebpackPluginInstance */
|
34
|
+
/** @typedef {import("./ChunkGroup")} ChunkGroup */
|
26
35
|
/** @typedef {import("./Compilation").Asset} Asset */
|
27
36
|
/** @typedef {import("./Compilation").AssetInfo} AssetInfo */
|
37
|
+
/** @typedef {import("./Compilation").EntryOptions} EntryOptions */
|
38
|
+
/** @typedef {import("./Compilation").PathData} PathData */
|
39
|
+
/** @typedef {import("./Compiler").AssetEmittedInfo} AssetEmittedInfo */
|
40
|
+
/** @typedef {import("./MultiCompiler").MultiCompilerOptions} MultiCompilerOptions */
|
28
41
|
/** @typedef {import("./MultiStats")} MultiStats */
|
42
|
+
/** @typedef {import("./NormalModuleFactory").ResolveData} ResolveData */
|
29
43
|
/** @typedef {import("./Parser").ParserState} ParserState */
|
44
|
+
/** @typedef {import("./ResolverFactory").ResolvePluginInstance} ResolvePluginInstance */
|
45
|
+
/** @typedef {import("./ResolverFactory").Resolver} Resolver */
|
30
46
|
/** @typedef {import("./Watching")} Watching */
|
47
|
+
/** @typedef {import("./cli").Argument} Argument */
|
48
|
+
/** @typedef {import("./cli").Problem} Problem */
|
31
49
|
/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsAsset} StatsAsset */
|
32
50
|
/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsChunk} StatsChunk */
|
33
51
|
/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsChunkGroup} StatsChunkGroup */
|
@@ -42,6 +60,8 @@ const memoize = require("./util/memoize");
|
|
42
60
|
/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsModuleTraceDependency} StatsModuleTraceDependency */
|
43
61
|
/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsModuleTraceItem} StatsModuleTraceItem */
|
44
62
|
/** @typedef {import("./stats/DefaultStatsFactoryPlugin").StatsProfile} StatsProfile */
|
63
|
+
/** @typedef {import("./util/fs").InputFileSystem} InputFileSystem */
|
64
|
+
/** @typedef {import("./util/fs").OutputFileSystem} OutputFileSystem */
|
45
65
|
|
46
66
|
/**
|
47
67
|
* @template {Function} T
|
@@ -50,11 +70,7 @@ const memoize = require("./util/memoize");
|
|
50
70
|
*/
|
51
71
|
const lazyFunction = factory => {
|
52
72
|
const fac = memoize(factory);
|
53
|
-
const f = /** @type {any} */ (
|
54
|
-
(...args) => {
|
55
|
-
return fac()(...args);
|
56
|
-
}
|
57
|
-
);
|
73
|
+
const f = /** @type {any} */ ((...args) => fac()(...args));
|
58
74
|
return /** @type {T} */ (f);
|
59
75
|
};
|
60
76
|
|
@@ -203,6 +219,9 @@ module.exports = mergeExports(fn, {
|
|
203
219
|
get HotModuleReplacementPlugin() {
|
204
220
|
return require("./HotModuleReplacementPlugin");
|
205
221
|
},
|
222
|
+
get InitFragment() {
|
223
|
+
return require("./InitFragment");
|
224
|
+
},
|
206
225
|
get IgnorePlugin() {
|
207
226
|
return require("./IgnorePlugin");
|
208
227
|
},
|
@@ -253,9 +272,15 @@ module.exports = mergeExports(fn, {
|
|
253
272
|
get MultiCompiler() {
|
254
273
|
return require("./MultiCompiler");
|
255
274
|
},
|
275
|
+
get OptimizationStages() {
|
276
|
+
return require("./OptimizationStages");
|
277
|
+
},
|
256
278
|
get Parser() {
|
257
279
|
return require("./Parser");
|
258
280
|
},
|
281
|
+
get PlatformPlugin() {
|
282
|
+
return require("./PlatformPlugin");
|
283
|
+
},
|
259
284
|
get PrefetchPlugin() {
|
260
285
|
return require("./PrefetchPlugin");
|
261
286
|
},
|
@@ -333,6 +358,9 @@ module.exports = mergeExports(fn, {
|
|
333
358
|
get ModuleDependency() {
|
334
359
|
return require("./dependencies/ModuleDependency");
|
335
360
|
},
|
361
|
+
get HarmonyImportDependency() {
|
362
|
+
return require("./dependencies/HarmonyImportDependency");
|
363
|
+
},
|
336
364
|
get ConstDependency() {
|
337
365
|
return require("./dependencies/ConstDependency");
|
338
366
|
},
|
@@ -483,6 +511,9 @@ module.exports = mergeExports(fn, {
|
|
483
511
|
wasm: {
|
484
512
|
get AsyncWebAssemblyModulesPlugin() {
|
485
513
|
return require("./wasm-async/AsyncWebAssemblyModulesPlugin");
|
514
|
+
},
|
515
|
+
get EnableWasmLoadingPlugin() {
|
516
|
+
return require("./wasm/EnableWasmLoadingPlugin");
|
486
517
|
}
|
487
518
|
},
|
488
519
|
|
@@ -549,6 +580,9 @@ module.exports = mergeExports(fn, {
|
|
549
580
|
},
|
550
581
|
get LazySet() {
|
551
582
|
return require("./util/LazySet");
|
583
|
+
},
|
584
|
+
get compileBooleanMatcher() {
|
585
|
+
return require("./util/compileBooleanMatcher");
|
552
586
|
}
|
553
587
|
},
|
554
588
|
|
@@ -561,6 +595,11 @@ module.exports = mergeExports(fn, {
|
|
561
595
|
get HttpUriPlugin() {
|
562
596
|
return require("./schemes/HttpUriPlugin");
|
563
597
|
}
|
598
|
+
},
|
599
|
+
ids: {
|
600
|
+
get SyncModuleIdsPlugin() {
|
601
|
+
return require("./ids/SyncModuleIdsPlugin");
|
602
|
+
}
|
564
603
|
}
|
565
604
|
}
|
566
605
|
});
|
@@ -33,6 +33,7 @@ class ArrayPushCallbackChunkFormatPlugin {
|
|
33
33
|
if (chunk.hasRuntime()) return;
|
34
34
|
if (chunkGraph.getNumberOfEntryModules(chunk) > 0) {
|
35
35
|
set.add(RuntimeGlobals.onChunksLoaded);
|
36
|
+
set.add(RuntimeGlobals.exports);
|
36
37
|
set.add(RuntimeGlobals.require);
|
37
38
|
}
|
38
39
|
set.add(RuntimeGlobals.chunkCallback);
|
@@ -45,7 +46,7 @@ class ArrayPushCallbackChunkFormatPlugin {
|
|
45
46
|
const { chunk, chunkGraph, runtimeTemplate } = renderContext;
|
46
47
|
const hotUpdateChunk =
|
47
48
|
chunk instanceof HotUpdateChunk ? chunk : null;
|
48
|
-
const globalObject = runtimeTemplate.
|
49
|
+
const globalObject = runtimeTemplate.globalObject;
|
49
50
|
const source = new ConcatSource();
|
50
51
|
const runtimeModules =
|
51
52
|
chunkGraph.getChunkRuntimeModulesInOrder(chunk);
|
@@ -83,10 +84,11 @@ class ArrayPushCallbackChunkFormatPlugin {
|
|
83
84
|
);
|
84
85
|
if (runtimeModules.length > 0 || entries.length > 0) {
|
85
86
|
const runtime = new ConcatSource(
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
87
|
+
`${
|
88
|
+
runtimeTemplate.supportsArrowFunction()
|
89
|
+
? `${RuntimeGlobals.require} =>`
|
90
|
+
: `function(${RuntimeGlobals.require})`
|
91
|
+
} { // webpackRuntimeModules\n`
|
90
92
|
);
|
91
93
|
if (runtimeModules.length > 0) {
|
92
94
|
runtime.add(
|
@@ -121,7 +123,7 @@ class ArrayPushCallbackChunkFormatPlugin {
|
|
121
123
|
.getChunkRuntimeRequirements(chunk)
|
122
124
|
.has(RuntimeGlobals.returnExportsFromRuntime)
|
123
125
|
) {
|
124
|
-
runtime.add(
|
126
|
+
runtime.add(`return ${RuntimeGlobals.exports};\n`);
|
125
127
|
}
|
126
128
|
}
|
127
129
|
runtime.add("}\n");
|
@@ -138,7 +140,7 @@ class ArrayPushCallbackChunkFormatPlugin {
|
|
138
140
|
(chunk, hash, { chunkGraph, runtimeTemplate }) => {
|
139
141
|
if (chunk.hasRuntime()) return;
|
140
142
|
hash.update(
|
141
|
-
`ArrayPushCallbackChunkFormatPlugin1${runtimeTemplate.outputOptions.chunkLoadingGlobal}${runtimeTemplate.outputOptions.hotUpdateGlobal}${runtimeTemplate.
|
143
|
+
`ArrayPushCallbackChunkFormatPlugin1${runtimeTemplate.outputOptions.chunkLoadingGlobal}${runtimeTemplate.outputOptions.hotUpdateGlobal}${runtimeTemplate.globalObject}`
|
142
144
|
);
|
143
145
|
const entries = Array.from(
|
144
146
|
chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk)
|
@@ -5,7 +5,8 @@
|
|
5
5
|
|
6
6
|
"use strict";
|
7
7
|
|
8
|
-
/** @typedef {import("estree").Node}
|
8
|
+
/** @typedef {import("estree").Node} Node */
|
9
|
+
/** @typedef {import("./JavascriptParser").Range} Range */
|
9
10
|
/** @typedef {import("./JavascriptParser").VariableInfoInterface} VariableInfoInterface */
|
10
11
|
|
11
12
|
const TypeUnknown = 0;
|
@@ -26,7 +27,7 @@ const TypeBigInt = 13;
|
|
26
27
|
class BasicEvaluatedExpression {
|
27
28
|
constructor() {
|
28
29
|
this.type = TypeUnknown;
|
29
|
-
/** @type {
|
30
|
+
/** @type {Range | undefined} */
|
30
31
|
this.range = undefined;
|
31
32
|
/** @type {boolean} */
|
32
33
|
this.falsy = false;
|
@@ -56,18 +57,23 @@ class BasicEvaluatedExpression {
|
|
56
57
|
this.items = undefined;
|
57
58
|
/** @type {BasicEvaluatedExpression[] | undefined} */
|
58
59
|
this.options = undefined;
|
59
|
-
/** @type {BasicEvaluatedExpression | undefined} */
|
60
|
+
/** @type {BasicEvaluatedExpression | undefined | null} */
|
60
61
|
this.prefix = undefined;
|
61
|
-
/** @type {BasicEvaluatedExpression | undefined} */
|
62
|
+
/** @type {BasicEvaluatedExpression | undefined | null} */
|
62
63
|
this.postfix = undefined;
|
64
|
+
/** @type {BasicEvaluatedExpression[] | undefined} */
|
63
65
|
this.wrappedInnerExpressions = undefined;
|
64
|
-
/** @type {string | undefined} */
|
66
|
+
/** @type {string | VariableInfoInterface | undefined} */
|
65
67
|
this.identifier = undefined;
|
66
|
-
/** @type {VariableInfoInterface} */
|
68
|
+
/** @type {string | VariableInfoInterface | undefined} */
|
67
69
|
this.rootInfo = undefined;
|
68
|
-
/** @type {() => string[]} */
|
70
|
+
/** @type {(() => string[]) | undefined} */
|
69
71
|
this.getMembers = undefined;
|
70
|
-
/** @type {
|
72
|
+
/** @type {(() => boolean[]) | undefined} */
|
73
|
+
this.getMembersOptionals = undefined;
|
74
|
+
/** @type {(() => Range[]) | undefined} */
|
75
|
+
this.getMemberRanges = undefined;
|
76
|
+
/** @type {Node | undefined} */
|
71
77
|
this.expression = undefined;
|
72
78
|
}
|
73
79
|
|
@@ -178,7 +184,7 @@ class BasicEvaluatedExpression {
|
|
178
184
|
asCompileTimeValue() {
|
179
185
|
switch (this.type) {
|
180
186
|
case TypeUndefined:
|
181
|
-
return
|
187
|
+
return;
|
182
188
|
case TypeNull:
|
183
189
|
return null;
|
184
190
|
case TypeString:
|
@@ -220,6 +226,10 @@ class BasicEvaluatedExpression {
|
|
220
226
|
return this.sideEffects;
|
221
227
|
}
|
222
228
|
|
229
|
+
/**
|
230
|
+
* Creates a boolean representation of this evaluated expression.
|
231
|
+
* @returns {boolean | undefined} true: truthy, false: falsy, undefined: unknown
|
232
|
+
*/
|
223
233
|
asBool() {
|
224
234
|
if (this.truthy) return true;
|
225
235
|
if (this.falsy || this.nullish) return false;
|
@@ -242,9 +252,12 @@ class BasicEvaluatedExpression {
|
|
242
252
|
const str = this.asString();
|
243
253
|
if (typeof str === "string") return str !== "";
|
244
254
|
}
|
245
|
-
return undefined;
|
246
255
|
}
|
247
256
|
|
257
|
+
/**
|
258
|
+
* Creates a nullish coalescing representation of this evaluated expression.
|
259
|
+
* @returns {boolean | undefined} true: nullish, false: not nullish, undefined: unknown
|
260
|
+
*/
|
248
261
|
asNullish() {
|
249
262
|
const nullish = this.isNullish();
|
250
263
|
|
@@ -261,10 +274,12 @@ class BasicEvaluatedExpression {
|
|
261
274
|
if (this.isConstArray()) return false;
|
262
275
|
if (this.isTemplateString()) return false;
|
263
276
|
if (this.isRegExp()) return false;
|
264
|
-
|
265
|
-
return undefined;
|
266
277
|
}
|
267
278
|
|
279
|
+
/**
|
280
|
+
* Creates a string representation of this evaluated expression.
|
281
|
+
* @returns {string | undefined} the string representation or undefined if not possible
|
282
|
+
*/
|
268
283
|
asString() {
|
269
284
|
if (this.isBoolean()) return `${this.bool}`;
|
270
285
|
if (this.isNull()) return "null";
|
@@ -274,10 +289,12 @@ class BasicEvaluatedExpression {
|
|
274
289
|
if (this.isBigInt()) return `${this.bigint}`;
|
275
290
|
if (this.isRegExp()) return `${this.regExp}`;
|
276
291
|
if (this.isArray()) {
|
277
|
-
|
278
|
-
for (const item of
|
292
|
+
const array = [];
|
293
|
+
for (const item of /** @type {BasicEvaluatedExpression[]} */ (
|
294
|
+
this.items
|
295
|
+
)) {
|
279
296
|
const itemStr = item.asString();
|
280
|
-
if (itemStr === undefined) return
|
297
|
+
if (itemStr === undefined) return;
|
281
298
|
array.push(itemStr);
|
282
299
|
}
|
283
300
|
return `${array}`;
|
@@ -285,16 +302,21 @@ class BasicEvaluatedExpression {
|
|
285
302
|
if (this.isConstArray()) return `${this.array}`;
|
286
303
|
if (this.isTemplateString()) {
|
287
304
|
let str = "";
|
288
|
-
for (const part of
|
305
|
+
for (const part of /** @type {BasicEvaluatedExpression[]} */ (
|
306
|
+
this.parts
|
307
|
+
)) {
|
289
308
|
const partStr = part.asString();
|
290
|
-
if (partStr === undefined) return
|
309
|
+
if (partStr === undefined) return;
|
291
310
|
str += partStr;
|
292
311
|
}
|
293
312
|
return str;
|
294
313
|
}
|
295
|
-
return undefined;
|
296
314
|
}
|
297
315
|
|
316
|
+
/**
|
317
|
+
* @param {string} string value
|
318
|
+
* @returns {BasicEvaluatedExpression} basic evaluated expression
|
319
|
+
*/
|
298
320
|
setString(string) {
|
299
321
|
this.type = TypeString;
|
300
322
|
this.string = string;
|
@@ -314,6 +336,11 @@ class BasicEvaluatedExpression {
|
|
314
336
|
return this;
|
315
337
|
}
|
316
338
|
|
339
|
+
/**
|
340
|
+
* Set's the value of this expression to a number
|
341
|
+
* @param {number} number number to set
|
342
|
+
* @returns {this} this
|
343
|
+
*/
|
317
344
|
setNumber(number) {
|
318
345
|
this.type = TypeNumber;
|
319
346
|
this.number = number;
|
@@ -321,6 +348,11 @@ class BasicEvaluatedExpression {
|
|
321
348
|
return this;
|
322
349
|
}
|
323
350
|
|
351
|
+
/**
|
352
|
+
* Set's the value of this expression to a BigInt
|
353
|
+
* @param {bigint} bigint bigint to set
|
354
|
+
* @returns {this} this
|
355
|
+
*/
|
324
356
|
setBigInt(bigint) {
|
325
357
|
this.type = TypeBigInt;
|
326
358
|
this.bigint = bigint;
|
@@ -328,6 +360,11 @@ class BasicEvaluatedExpression {
|
|
328
360
|
return this;
|
329
361
|
}
|
330
362
|
|
363
|
+
/**
|
364
|
+
* Set's the value of this expression to a boolean
|
365
|
+
* @param {boolean} bool boolean to set
|
366
|
+
* @returns {this} this
|
367
|
+
*/
|
331
368
|
setBoolean(bool) {
|
332
369
|
this.type = TypeBoolean;
|
333
370
|
this.bool = bool;
|
@@ -335,6 +372,11 @@ class BasicEvaluatedExpression {
|
|
335
372
|
return this;
|
336
373
|
}
|
337
374
|
|
375
|
+
/**
|
376
|
+
* Set's the value of this expression to a regular expression
|
377
|
+
* @param {RegExp} regExp regular expression to set
|
378
|
+
* @returns {this} this
|
379
|
+
*/
|
338
380
|
setRegExp(regExp) {
|
339
381
|
this.type = TypeRegExp;
|
340
382
|
this.regExp = regExp;
|
@@ -342,15 +384,39 @@ class BasicEvaluatedExpression {
|
|
342
384
|
return this;
|
343
385
|
}
|
344
386
|
|
345
|
-
|
387
|
+
/**
|
388
|
+
* Set's the value of this expression to a particular identifier and its members.
|
389
|
+
* @param {string | VariableInfoInterface} identifier identifier to set
|
390
|
+
* @param {string | VariableInfoInterface} rootInfo root info
|
391
|
+
* @param {() => string[]} getMembers members
|
392
|
+
* @param {() => boolean[]=} getMembersOptionals optional members
|
393
|
+
* @param {() => Range[]=} getMemberRanges ranges of progressively increasing sub-expressions
|
394
|
+
* @returns {this} this
|
395
|
+
*/
|
396
|
+
setIdentifier(
|
397
|
+
identifier,
|
398
|
+
rootInfo,
|
399
|
+
getMembers,
|
400
|
+
getMembersOptionals,
|
401
|
+
getMemberRanges
|
402
|
+
) {
|
346
403
|
this.type = TypeIdentifier;
|
347
404
|
this.identifier = identifier;
|
348
405
|
this.rootInfo = rootInfo;
|
349
406
|
this.getMembers = getMembers;
|
407
|
+
this.getMembersOptionals = getMembersOptionals;
|
408
|
+
this.getMemberRanges = getMemberRanges;
|
350
409
|
this.sideEffects = true;
|
351
410
|
return this;
|
352
411
|
}
|
353
412
|
|
413
|
+
/**
|
414
|
+
* Wraps an array of expressions with a prefix and postfix expression.
|
415
|
+
* @param {BasicEvaluatedExpression | null | undefined} prefix Expression to be added before the innerExpressions
|
416
|
+
* @param {BasicEvaluatedExpression | null | undefined} postfix Expression to be added after the innerExpressions
|
417
|
+
* @param {BasicEvaluatedExpression[] | undefined} innerExpressions Expressions to be wrapped
|
418
|
+
* @returns {this} this
|
419
|
+
*/
|
354
420
|
setWrapped(prefix, postfix, innerExpressions) {
|
355
421
|
this.type = TypeWrapped;
|
356
422
|
this.prefix = prefix;
|
@@ -360,6 +426,11 @@ class BasicEvaluatedExpression {
|
|
360
426
|
return this;
|
361
427
|
}
|
362
428
|
|
429
|
+
/**
|
430
|
+
* Stores the options of a conditional expression.
|
431
|
+
* @param {BasicEvaluatedExpression[]} options optional (consequent/alternate) expressions to be set
|
432
|
+
* @returns {this} this
|
433
|
+
*/
|
363
434
|
setOptions(options) {
|
364
435
|
this.type = TypeConditional;
|
365
436
|
this.options = options;
|
@@ -367,6 +438,11 @@ class BasicEvaluatedExpression {
|
|
367
438
|
return this;
|
368
439
|
}
|
369
440
|
|
441
|
+
/**
|
442
|
+
* Adds options to a conditional expression.
|
443
|
+
* @param {BasicEvaluatedExpression[]} options optional (consequent/alternate) expressions to be added
|
444
|
+
* @returns {this} this
|
445
|
+
*/
|
370
446
|
addOptions(options) {
|
371
447
|
if (!this.options) {
|
372
448
|
this.type = TypeConditional;
|
@@ -379,6 +455,11 @@ class BasicEvaluatedExpression {
|
|
379
455
|
return this;
|
380
456
|
}
|
381
457
|
|
458
|
+
/**
|
459
|
+
* Set's the value of this expression to an array of expressions.
|
460
|
+
* @param {BasicEvaluatedExpression[]} items expressions to set
|
461
|
+
* @returns {this} this
|
462
|
+
*/
|
382
463
|
setItems(items) {
|
383
464
|
this.type = TypeArray;
|
384
465
|
this.items = items;
|
@@ -386,6 +467,11 @@ class BasicEvaluatedExpression {
|
|
386
467
|
return this;
|
387
468
|
}
|
388
469
|
|
470
|
+
/**
|
471
|
+
* Set's the value of this expression to an array of strings.
|
472
|
+
* @param {string[]} array array to set
|
473
|
+
* @returns {this} this
|
474
|
+
*/
|
389
475
|
setArray(array) {
|
390
476
|
this.type = TypeConstArray;
|
391
477
|
this.array = array;
|
@@ -393,6 +479,14 @@ class BasicEvaluatedExpression {
|
|
393
479
|
return this;
|
394
480
|
}
|
395
481
|
|
482
|
+
/**
|
483
|
+
* Set's the value of this expression to a processed/unprocessed template string. Used
|
484
|
+
* for evaluating TemplateLiteral expressions in the JavaScript Parser.
|
485
|
+
* @param {BasicEvaluatedExpression[]} quasis template string quasis
|
486
|
+
* @param {BasicEvaluatedExpression[]} parts template string parts
|
487
|
+
* @param {"cooked" | "raw"} kind template string kind
|
488
|
+
* @returns {this} this
|
489
|
+
*/
|
396
490
|
setTemplateString(quasis, parts, kind) {
|
397
491
|
this.type = TypeTemplateString;
|
398
492
|
this.quasis = quasis;
|
@@ -415,6 +509,11 @@ class BasicEvaluatedExpression {
|
|
415
509
|
return this;
|
416
510
|
}
|
417
511
|
|
512
|
+
/**
|
513
|
+
* Set's the value of the expression to nullish.
|
514
|
+
* @param {boolean} value true, if the expression is nullish
|
515
|
+
* @returns {this} this
|
516
|
+
*/
|
418
517
|
setNullish(value) {
|
419
518
|
this.nullish = value;
|
420
519
|
|
@@ -423,16 +522,31 @@ class BasicEvaluatedExpression {
|
|
423
522
|
return this;
|
424
523
|
}
|
425
524
|
|
525
|
+
/**
|
526
|
+
* Set's the range for the expression.
|
527
|
+
* @param {[number, number]} range range to set
|
528
|
+
* @returns {this} this
|
529
|
+
*/
|
426
530
|
setRange(range) {
|
427
531
|
this.range = range;
|
428
532
|
return this;
|
429
533
|
}
|
430
534
|
|
535
|
+
/**
|
536
|
+
* Set whether or not the expression has side effects.
|
537
|
+
* @param {boolean} sideEffects true, if the expression has side effects
|
538
|
+
* @returns {this} this
|
539
|
+
*/
|
431
540
|
setSideEffects(sideEffects = true) {
|
432
541
|
this.sideEffects = sideEffects;
|
433
542
|
return this;
|
434
543
|
}
|
435
544
|
|
545
|
+
/**
|
546
|
+
* Set the expression node for the expression.
|
547
|
+
* @param {Node | undefined} expression expression
|
548
|
+
* @returns {this} this
|
549
|
+
*/
|
436
550
|
setExpression(expression) {
|
437
551
|
this.expression = expression;
|
438
552
|
return this;
|
@@ -0,0 +1,33 @@
|
|
1
|
+
/*
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
3
|
+
Author Tobias Koppers @sokra
|
4
|
+
*/
|
5
|
+
|
6
|
+
"use strict";
|
7
|
+
|
8
|
+
const Entrypoint = require("../Entrypoint");
|
9
|
+
|
10
|
+
/** @typedef {import("../Chunk")} Chunk */
|
11
|
+
|
12
|
+
/**
|
13
|
+
* @param {Entrypoint} entrypoint a chunk group
|
14
|
+
* @param {(Chunk | null)=} excludedChunk1 current chunk which is excluded
|
15
|
+
* @param {(Chunk | null)=} excludedChunk2 runtime chunk which is excluded
|
16
|
+
* @returns {Set<Chunk>} chunks
|
17
|
+
*/
|
18
|
+
const getAllChunks = (entrypoint, excludedChunk1, excludedChunk2) => {
|
19
|
+
const queue = new Set([entrypoint]);
|
20
|
+
const chunks = new Set();
|
21
|
+
for (const entrypoint of queue) {
|
22
|
+
for (const chunk of entrypoint.chunks) {
|
23
|
+
if (chunk === excludedChunk1) continue;
|
24
|
+
if (chunk === excludedChunk2) continue;
|
25
|
+
chunks.add(chunk);
|
26
|
+
}
|
27
|
+
for (const parent of entrypoint.parentsIterable) {
|
28
|
+
if (parent instanceof Entrypoint) queue.add(parent);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
return chunks;
|
32
|
+
};
|
33
|
+
module.exports.getAllChunks = getAllChunks;
|