@depup/webpack 5.109.2-depup.0 → 5.110.3-depup.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 +5 -5
- package/changes.json +7 -7
- package/lib/APIPlugin.js +123 -17
- package/lib/AsyncDependenciesBlock.js +10 -7
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +10 -6
- package/lib/CacheFacade.js +6 -6
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +46 -35
- package/lib/ChunkGroup.js +7 -7
- package/lib/ChunkTemplate.js +35 -44
- package/lib/CircularModulesPlugin.js +205 -28
- package/lib/CleanPlugin.js +4 -7
- package/lib/CodeGenerationResults.js +11 -8
- package/lib/CompatibilityPlugin.js +7 -7
- package/lib/Compilation.js +688 -409
- package/lib/Compiler.js +53 -38
- package/lib/ConcatenationScope.js +107 -8
- package/lib/ConditionalInitFragment.js +3 -3
- package/lib/ConstPlugin.js +13 -11
- package/lib/ContextExclusionPlugin.js +1 -1
- package/lib/ContextModule.js +146 -54
- package/lib/ContextModuleFactory.js +46 -14
- package/lib/ContextReplacementPlugin.js +12 -14
- package/lib/DefinePlugin.js +121 -37
- package/lib/DependenciesBlock.js +9 -6
- package/lib/Dependency.js +36 -16
- package/lib/DependencyTemplate.js +11 -12
- package/lib/DependencyTemplates.js +3 -3
- package/lib/DotenvPlugin.js +91 -26
- package/lib/DynamicEntryPlugin.js +8 -4
- package/lib/EntryOptionPlugin.js +8 -4
- package/lib/EntryPlugin.js +2 -2
- package/lib/Entrypoint.js +6 -2
- package/lib/EnvironmentPlugin.js +2 -2
- package/lib/EvalDevToolModulePlugin.js +8 -4
- package/lib/EvalSourceMapDevToolPlugin.js +15 -8
- package/lib/ExportsInfo.js +111 -14
- package/lib/ExportsInfoApiPlugin.js +2 -4
- package/lib/ExternalModule.js +232 -77
- package/lib/ExternalModuleFactoryPlugin.js +97 -38
- package/lib/ExternalsPlugin.js +10 -6
- package/lib/FileSystemInfo.js +44 -70
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
- package/lib/FlagDependencyExportsPlugin.js +76 -19
- package/lib/FlagDependencyUsagePlugin.js +40 -49
- package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
- package/lib/Generator.js +36 -15
- package/lib/HotModuleReplacementPlugin.js +16 -44
- package/lib/IgnorePlugin.js +8 -4
- package/lib/IgnoreWarningsPlugin.js +2 -2
- package/lib/InitFragment.js +8 -4
- package/lib/JavascriptMetaInfoPlugin.js +35 -4
- package/lib/LazyBarrel.js +3 -4
- package/lib/LibraryTemplatePlugin.js +10 -6
- package/lib/LoaderOptionsPlugin.js +7 -3
- package/lib/LoaderTargetPlugin.js +1 -1
- package/lib/MainTemplate.js +49 -42
- package/lib/ManifestPlugin.js +12 -11
- package/lib/Module.js +62 -33
- package/lib/ModuleFactory.js +3 -3
- package/lib/ModuleFilenameHelpers.js +9 -4
- package/lib/ModuleGraph.js +195 -21
- package/lib/ModuleGraphConnection.js +6 -13
- package/lib/ModuleInfoHeaderPlugin.js +8 -10
- package/lib/ModuleTemplate.js +62 -63
- package/lib/MultiCompiler.js +130 -64
- package/lib/MultiStats.js +40 -9
- package/lib/MultiWatching.js +3 -3
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +29 -19
- package/lib/NormalModule.js +152 -103
- package/lib/NormalModuleFactory.js +555 -110
- package/lib/NormalModuleReplacementPlugin.js +5 -8
- package/lib/NullFactory.js +6 -2
- package/lib/OptionsApply.js +7 -3
- package/lib/Parser.js +7 -3
- package/lib/PlatformPlugin.js +2 -2
- package/lib/PrefetchPlugin.js +1 -1
- package/lib/ProgressPlugin.js +16 -13
- package/lib/ProvidePlugin.js +3 -5
- package/lib/RawModule.js +25 -17
- package/lib/RecordIdsPlugin.js +3 -3
- package/lib/RequestShortener.js +1 -1
- package/lib/ResolverFactory.js +2 -2
- package/lib/RuntimeGlobals.js +22 -10
- package/lib/RuntimeModule.js +29 -19
- package/lib/RuntimePlugin.js +335 -169
- package/lib/RuntimeTemplate.js +2761 -316
- package/lib/SelfModuleFactory.js +7 -3
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
- package/lib/SourceMapDevToolPlugin.js +30 -20
- package/lib/Stats.js +3 -4
- package/lib/Template.js +32 -22
- package/lib/TemplatedPathPlugin.js +96 -14
- package/lib/UseStrictPlugin.js +4 -6
- package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
- package/lib/WarnDeprecatedOptionPlugin.js +1 -1
- package/lib/WarnNoModeSetPlugin.js +1 -1
- package/lib/WatchIgnorePlugin.js +8 -6
- package/lib/Watching.js +8 -8
- package/lib/WebpackIsIncludedPlugin.js +2 -4
- package/lib/WebpackOptionsApply.js +308 -18
- package/lib/WebpackOptionsDefaulter.js +6 -2
- package/lib/asset/AssetBytesGenerator.js +12 -10
- package/lib/asset/AssetBytesParser.js +2 -4
- package/lib/asset/AssetGenerator.js +188 -95
- package/lib/asset/AssetModule.js +7 -3
- package/lib/asset/AssetModulesPlugin.js +110 -38
- package/lib/asset/AssetParser.js +9 -7
- package/lib/asset/AssetSourceGenerator.js +60 -13
- package/lib/asset/AssetSourceParser.js +2 -4
- package/lib/asset/RawDataUrlModule.js +24 -16
- package/lib/asset/WebManifestGenerator.js +8 -10
- package/lib/asset/WebManifestParser.js +24 -10
- package/lib/async-modules/AsyncModuleHelpers.js +12 -6
- package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
- package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
- package/lib/async-modules/isGeneratorLowered.js +4 -4
- package/lib/buildChunkGraph.js +36 -27
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
- package/lib/cache/AddManagedPathsPlugin.js +1 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +18 -10
- package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
- package/lib/cache/PackFileCacheStrategy.js +30 -23
- package/lib/cache/ResolverCachePlugin.js +38 -18
- package/lib/cache/getLazyHashedEtag.js +1 -2
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/cli.js +1 -3
- package/lib/config/browserslistTargetHandler.js +41 -5
- package/lib/config/defaults.js +270 -78
- package/lib/config/defineConfig.js +10 -2
- package/lib/config/getClaimedAssetTypes.js +65 -0
- package/lib/config/normalization.js +46 -16
- package/lib/config/target.js +46 -3
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +24 -15
- package/lib/container/ContainerEntryModuleFactory.js +7 -3
- package/lib/container/ContainerPlugin.js +9 -10
- package/lib/container/ContainerReferencePlugin.js +6 -2
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackModule.js +24 -17
- package/lib/container/FallbackModuleFactory.js +7 -3
- package/lib/container/HoistContainerReferencesPlugin.js +6 -11
- package/lib/container/ModuleFederationPlugin.js +7 -24
- package/lib/container/RemoteModule.js +27 -19
- package/lib/container/RemoteRuntimeModule.js +10 -8
- package/lib/container/moduleFederationHooks.js +32 -0
- package/lib/css/CssGenerator.js +171 -43
- package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
- package/lib/css/CssLoadingRuntimeModule.js +84 -32
- package/lib/css/CssModule.js +10 -7
- package/lib/css/CssModulesPlugin.js +172 -100
- package/lib/css/CssParser.js +1113 -568
- package/lib/css/CssServerStylesRuntimeModule.js +54 -0
- package/lib/css/cssMinify.js +168 -0
- package/lib/css/data.js +5334 -0
- package/lib/css/syntax.js +9647 -232
- package/lib/debug/ProfilingPlugin.js +14 -9
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/AMDDefineDependency.js +112 -87
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
- package/lib/dependencies/AMDPlugin.js +9 -7
- package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
- package/lib/dependencies/AMDRequireContextDependency.js +2 -2
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
- package/lib/dependencies/AMDRequireDependency.js +8 -7
- package/lib/dependencies/AMDRequireItemDependency.js +1 -1
- package/lib/dependencies/AMDRuntimeModules.js +21 -1
- package/lib/dependencies/BuildTimeConstDependency.js +102 -0
- package/lib/dependencies/CachedConstDependency.js +11 -8
- package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
- package/lib/dependencies/CommonJsExportRequireDependency.js +121 -45
- package/lib/dependencies/CommonJsExportsDependency.js +53 -49
- package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
- package/lib/dependencies/CommonJsFullRequireDependency.js +119 -34
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
- package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
- package/lib/dependencies/CommonJsPlugin.js +35 -6
- package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
- package/lib/dependencies/CommonJsRequireDependency.js +170 -27
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
- package/lib/dependencies/ConstDependency.js +8 -9
- package/lib/dependencies/ContextDependency.js +12 -8
- package/lib/dependencies/ContextDependencyHelpers.js +14 -9
- package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +24 -11
- package/lib/dependencies/ContextElementDependency.js +31 -12
- package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
- package/lib/dependencies/CssIcssExportDependency.js +56 -28
- package/lib/dependencies/CssIcssImportDependency.js +17 -13
- package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
- package/lib/dependencies/CssImportDependency.js +18 -9
- package/lib/dependencies/CssUrlDependency.js +17 -13
- package/lib/dependencies/DllEntryDependency.js +1 -1
- package/lib/dependencies/DynamicExports.js +2 -2
- package/lib/dependencies/ExportBindingInitFragment.js +36 -9
- package/lib/dependencies/ExportsInfoDependency.js +7 -8
- package/lib/dependencies/ExternalModuleDependency.js +9 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
- package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
- package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +23 -14
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +80 -12
- package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +286 -80
- package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
- package/lib/dependencies/HarmonyExports.js +7 -4
- package/lib/dependencies/HarmonyImportDependency.js +121 -60
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +124 -38
- package/lib/dependencies/HarmonyImportGuard.js +20 -30
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +152 -9
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +97 -49
- package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
- package/lib/dependencies/HtmlEntryDependency.js +49 -31
- package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
- package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
- package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
- package/lib/dependencies/HtmlSourceDependency.js +22 -14
- package/lib/dependencies/ImportContextDependency.js +45 -5
- package/lib/dependencies/ImportDependency.js +33 -50
- package/lib/dependencies/ImportEagerDependency.js +6 -9
- package/lib/dependencies/ImportMetaContextDependency.js +2 -2
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
- package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
- package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
- package/lib/dependencies/ImportMetaPlugin.js +154 -71
- package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
- package/lib/dependencies/ImportParserPlugin.js +73 -49
- package/lib/dependencies/ImportPhase.js +12 -5
- package/lib/dependencies/ImportPlugin.js +7 -3
- package/lib/dependencies/ImportWeakDependency.js +6 -9
- package/lib/dependencies/JsonExportsDependency.js +11 -7
- package/lib/dependencies/LoaderDependency.js +2 -2
- package/lib/dependencies/LoaderImportDependency.js +2 -2
- package/lib/dependencies/LoaderPlugin.js +11 -7
- package/lib/dependencies/LocalModuleDependency.js +5 -5
- package/lib/dependencies/LocalModulesHelpers.js +1 -1
- package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
- package/lib/dependencies/ModuleDependency.js +9 -6
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
- package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
- package/lib/dependencies/NullDependency.js +3 -3
- package/lib/dependencies/ProvidedDependency.js +14 -10
- package/lib/dependencies/PureExpressionDependency.js +9 -10
- package/lib/dependencies/RequireContextDependency.js +2 -2
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
- package/lib/dependencies/RequireContextPlugin.js +8 -4
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
- package/lib/dependencies/RequireEnsureDependency.js +8 -7
- package/lib/dependencies/RequireEnsurePlugin.js +7 -3
- package/lib/dependencies/RequireHeaderDependency.js +50 -12
- package/lib/dependencies/RequireIncludeDependency.js +6 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
- package/lib/dependencies/RequireIncludePlugin.js +7 -3
- package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
- package/lib/dependencies/RequireResolveContextDependency.js +2 -2
- package/lib/dependencies/RequireResolveDependency.js +4 -4
- package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
- package/lib/dependencies/StaticExportsDependency.js +2 -2
- package/lib/dependencies/SystemPlugin.js +10 -6
- package/lib/dependencies/SystemRuntimeModule.js +10 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
- package/lib/dependencies/URLContextDependency.js +2 -2
- package/lib/dependencies/URLDependency.js +110 -64
- package/lib/dependencies/URLPlugin.js +7 -3
- package/lib/dependencies/UnsupportedDependency.js +4 -4
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
- package/lib/dependencies/WorkerAndWorkletPlugin.js +47 -28
- package/lib/dependencies/WorkerDependency.js +22 -22
- package/lib/dependencies/WorkletDependency.js +18 -21
- package/lib/dependencies/getFunctionExpression.js +8 -4
- package/lib/dependencies/importOptionsCheck.js +47 -0
- package/lib/dependencies/processExportInfo.js +5 -5
- package/lib/dll/DelegatedModule.js +34 -22
- package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
- package/lib/dll/DelegatedPlugin.js +2 -2
- package/lib/dll/DllEntryPlugin.js +2 -2
- package/lib/dll/DllModule.js +22 -15
- package/lib/dll/DllModuleFactory.js +7 -3
- package/lib/dll/DllPlugin.js +7 -5
- package/lib/dll/DllReferencePlugin.js +10 -7
- package/lib/dll/LibManifestPlugin.js +5 -5
- package/lib/electron/ElectronTargetPlugin.js +53 -49
- package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BroadContextsWarning.js +43 -0
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/errors/CacheEffectivenessWarning.js +55 -0
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CircularDependenciesWarning.js +38 -0
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
- package/lib/errors/DotenvFileError.js +29 -0
- package/lib/errors/DuplicateModulesWarning.js +45 -0
- package/lib/errors/DynamicExportsWarning.js +30 -0
- package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
- package/lib/errors/EntrypointOverlapWarning.js +45 -0
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/errors/EvalUsageWarning.js +28 -0
- package/lib/errors/HookWebpackError.js +5 -5
- package/lib/errors/HotspotsWarning.js +57 -0
- package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
- package/lib/errors/ImportedBindingAssignmentError.js +30 -0
- package/lib/errors/InlinedAssetsWarning.js +36 -0
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/LargeModulesWarning.js +45 -0
- package/lib/errors/LegacyJavascriptWarning.js +48 -0
- package/lib/errors/MissingSideEffectsWarning.js +36 -0
- package/lib/errors/MixedExportsWarning.js +41 -0
- package/lib/errors/ModuleDependencyError.js +13 -16
- package/lib/errors/ModuleDependencyWarning.js +5 -15
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +2 -2
- package/lib/errors/ModuleParseError.js +1 -2
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/NodeStuffInWebError.js +1 -1
- package/lib/errors/OsDependentRuleWarning.js +31 -0
- package/lib/errors/PureAnnotationsWarning.js +36 -0
- package/lib/errors/RedundantDynamicImportWarning.js +31 -0
- package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
- package/lib/errors/SplitChunksCappedWarning.js +41 -0
- package/lib/errors/TinyChunksWarning.js +40 -0
- package/lib/errors/TopLevelThisWarning.js +34 -0
- package/lib/errors/UnsplitVendorsWarning.js +42 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/errors/UnusedAliasesWarning.js +29 -0
- package/lib/errors/UnusedDefinesWarning.js +29 -0
- package/lib/errors/UnusedExternalsWarning.js +29 -0
- package/lib/errors/UnusedReexportsWarning.js +42 -0
- package/lib/errors/UnusedRuleWarning.js +29 -0
- package/lib/errors/WebpackError.js +9 -5
- package/lib/errors/deriveStackFromNestedError.js +90 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +86 -51
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +161 -62
- package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/LazyCompilationPlugin.js +45 -24
- package/lib/hmr/lazyCompilationBackend.js +9 -6
- package/lib/hmr/parserHooks.js +56 -0
- package/lib/html/HtmlGenerator.js +277 -77
- package/lib/html/HtmlModule.js +7 -3
- package/lib/html/HtmlModulesPlugin.js +366 -200
- package/lib/html/HtmlParser.js +31 -86
- package/lib/html/data.js +1928 -0
- package/lib/html/htmlMinify.js +288 -0
- package/lib/html/syntax.js +6034 -1384
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
- package/lib/ids/HashedModuleIdsPlugin.js +6 -2
- package/lib/ids/IdHelpers.js +7 -8
- package/lib/ids/NamedChunkIdsPlugin.js +1 -1
- package/lib/ids/NamedModuleIdsPlugin.js +1 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
- package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
- package/lib/ids/SyncModuleIdsPlugin.js +4 -4
- package/lib/index.js +10 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
- package/lib/javascript/BasicEvaluatedExpression.js +18 -14
- package/lib/javascript/ChunkFormatHelpers.js +6 -6
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
- package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
- package/lib/javascript/JavascriptGenerator.js +65 -165
- package/lib/javascript/JavascriptModule.js +9 -3
- package/lib/javascript/JavascriptModulesPlugin.js +103 -123
- package/lib/javascript/JavascriptParser.js +242 -99
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/ScopeAnalyzer.js +1094 -0
- package/lib/javascript/StartupHelpers.js +55 -9
- package/lib/javascript/syntax.js +2678 -232
- package/lib/json/JsonData.js +8 -4
- package/lib/json/JsonGenerator.js +38 -16
- package/lib/json/JsonModule.js +7 -3
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -6
- package/lib/library/AbstractLibraryPlugin.js +20 -14
- package/lib/library/AmdLibraryPlugin.js +11 -7
- package/lib/library/AssignLibraryPlugin.js +19 -13
- package/lib/library/EnableLibraryPlugin.js +2 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
- package/lib/library/JsonpLibraryPlugin.js +11 -7
- package/lib/library/ModuleLibraryPlugin.js +256 -64
- package/lib/library/SystemLibraryPlugin.js +12 -8
- package/lib/library/UmdLibraryPlugin.js +62 -25
- package/lib/loaders/LoaderRunner.js +47 -6
- package/lib/loaders/loadLoader.js +8 -4
- package/lib/logging/createConsoleLogger.js +7 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
- package/lib/node/NodeEnvironmentPlugin.js +17 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -3
- package/lib/node/NodeTemplatePlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +70 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +65 -19
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
- package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/nodeConsole.js +7 -3
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
- package/lib/optimize/ConcatenatedModule.js +1030 -476
- package/lib/optimize/ConstExportsPlugin.js +16 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
- package/lib/optimize/InlineExports.js +130 -5
- package/lib/optimize/InnerGraph.js +28 -12
- package/lib/optimize/InnerGraphPlugin.js +23 -18
- package/lib/optimize/LimitChunkCountPlugin.js +7 -3
- package/lib/optimize/MangleExportsPlugin.js +7 -8
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
- package/lib/optimize/MinChunkSizePlugin.js +7 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
- package/lib/optimize/RealContentHashPlugin.js +121 -41
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/RuntimeChunkPlugin.js +2 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
- package/lib/optimize/SplitChunksPlugin.js +86 -24
- package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
- package/lib/performance/BroadContextsPlugin.js +142 -0
- package/lib/performance/CacheEffectivenessPlugin.js +125 -0
- package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
- package/lib/performance/DuplicateModulesPlugin.js +93 -0
- package/lib/performance/DuplicatePackagesPlugin.js +119 -0
- package/lib/performance/DuplicatePackagesWarning.js +84 -0
- package/lib/performance/DynamicExportsPlugin.js +120 -0
- package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
- package/lib/performance/EntrypointOverlapPlugin.js +122 -0
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
- package/lib/performance/EvalUsagePlugin.js +115 -0
- package/lib/performance/HotspotsPlugin.js +296 -0
- package/lib/performance/InlinedAssetsPlugin.js +99 -0
- package/lib/performance/LargeModulesPlugin.js +126 -0
- package/lib/performance/LegacyJavascriptPlugin.js +139 -0
- package/lib/performance/MissingSideEffectsPlugin.js +138 -0
- package/lib/performance/MixedExportsPlugin.js +136 -0
- package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
- package/lib/performance/PureAnnotationsPlugin.js +219 -0
- package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
- package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
- package/lib/performance/SizeLimitsPlugin.js +139 -7
- package/lib/performance/SplitChunksCappedPlugin.js +99 -0
- package/lib/performance/TinyChunksPlugin.js +128 -0
- package/lib/performance/TopLevelThisPlugin.js +208 -0
- package/lib/performance/UnsplitVendorsPlugin.js +112 -0
- package/lib/performance/UnusedAliasesPlugin.js +253 -0
- package/lib/performance/UnusedDefinesPlugin.js +87 -0
- package/lib/performance/UnusedExternalsPlugin.js +110 -0
- package/lib/performance/UnusedReexportsPlugin.js +159 -0
- package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
- package/lib/performance/getModuleSize.js +22 -0
- package/lib/performance/getSourceModules.js +22 -0
- package/lib/performance/hasOnlyUnusedExports.js +40 -0
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +295 -79
- package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
- package/lib/prefetch/parseResourceHintOptions.js +31 -4
- package/lib/rules/BasicEffectRulePlugin.js +2 -2
- package/lib/rules/BasicMatcherRulePlugin.js +8 -4
- package/lib/rules/GlobMatcherRulePlugin.js +68 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
- package/lib/rules/RuleSetCompiler.js +146 -12
- package/lib/rules/UseEffectRulePlugin.js +18 -11
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +6 -2
- package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
- package/lib/runtime/BaseUriRuntimeModule.js +33 -7
- package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
- package/lib/runtime/CompatRuntimeModule.js +5 -3
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
- package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
- package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
- package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
- package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
- package/lib/runtime/GlobalRuntimeModule.js +18 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +34 -7
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
- package/lib/runtime/NonceRuntimeModule.js +10 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
- package/lib/runtime/PublicPathRuntimeModule.js +12 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
- package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
- package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
- package/lib/runtime/SystemContextRuntimeModule.js +10 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
- package/lib/runtime/WorkerRuntimeModule.js +11 -1
- package/lib/runtime/baseUri.js +63 -0
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +46 -20
- package/lib/schemes/VirtualUrlPlugin.js +13 -7
- package/lib/serialization/AggregateErrorSerializer.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +4 -4
- package/lib/serialization/ErrorObjectSerializer.js +1 -1
- package/lib/serialization/FileMiddleware.js +22 -9
- package/lib/serialization/ObjectMiddleware.js +139 -114
- package/lib/serialization/PlainObjectSerializer.js +19 -16
- package/lib/sharing/ConsumeSharedModule.js +30 -21
- package/lib/sharing/ConsumeSharedPlugin.js +18 -10
- package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
- package/lib/sharing/ProvideSharedModule.js +25 -16
- package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
- package/lib/sharing/ProvideSharedPlugin.js +8 -4
- package/lib/sharing/SharePlugin.js +17 -5
- package/lib/sharing/ShareRuntimeModule.js +4 -4
- package/lib/sharing/resolveMatchedConfigs.js +9 -6
- package/lib/sharing/utils.js +1 -3
- package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
- package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
- package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
- package/lib/stats/StatsFactory.js +25 -26
- package/lib/stats/StatsPrinter.js +16 -12
- package/lib/typescript/TypeScriptPlugin.js +20 -24
- package/lib/url/URLParserPlugin.js +26 -13
- package/lib/util/ArrayQueue.js +3 -3
- package/lib/util/AsyncQueue.js +4 -3
- package/lib/util/Hash.js +5 -1
- package/lib/util/LazySet.js +35 -22
- package/lib/util/LocConverter.js +36 -13
- package/lib/util/SourceProcessor.js +1066 -24
- package/lib/util/StringXor.js +1 -1
- package/lib/util/URLAbsoluteSpecifier.js +3 -1
- package/lib/util/chainedImports.js +9 -5
- package/lib/util/cleverMerge.js +1 -1
- package/lib/util/comparators.js +45 -14
- package/lib/util/concatenate.js +203 -77
- package/lib/util/conventions.js +10 -2
- package/lib/util/createHash.js +2 -2
- package/lib/util/createHooksRegistry.js +8 -10
- package/lib/util/createMappings.js +25 -3
- package/lib/util/dataURL.js +225 -1
- package/lib/util/extractSourceMap.js +4 -3
- package/lib/util/findCaseMismatch.js +139 -0
- package/lib/util/formatLocation.js +1 -2
- package/lib/util/fs.js +22 -5
- package/lib/util/globUtils.js +298 -24
- package/lib/util/hash/BatchedHash.js +5 -1
- package/lib/util/hash/BulkUpdateHash.js +5 -1
- package/lib/util/hash/DebugHash.js +5 -1
- package/lib/util/hash/hash-digest.js +6 -2
- package/lib/util/identifier.js +4 -0
- package/lib/util/implicitTypeLoaderFallback.js +1 -1
- package/lib/util/internalSerializables.js +8 -0
- package/lib/util/lazyModule.js +56 -0
- package/lib/util/makeSerializable.js +7 -3
- package/lib/util/matchAlias.js +25 -0
- package/lib/util/mimeTypes.js +11 -5
- package/lib/util/nonNumericOnlyHash.js +4 -3
- package/lib/util/parseJson.js +5 -3
- package/lib/util/preloadModuleType.js +32 -0
- package/lib/util/registerExternalSerializer.js +7 -5
- package/lib/util/removeBOM.js +82 -1
- package/lib/util/runtime.js +2 -2
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +28 -28
- package/lib/util/source.js +2 -2
- package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
- package/lib/wasm/wasmModuleFilename.js +54 -0
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +43 -21
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +45 -21
- package/lib/wasm-async/AsyncWasmModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
- package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +29 -8
- package/lib/wasm-sync/SyncWasmModule.js +2 -2
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
- package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
- package/lib/wasm-sync/WebAssemblyParser.js +4 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/FetchCompileAsyncWasmPlugin.js +105 -19
- package/lib/web/FetchCompileWasmPlugin.js +48 -16
- package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
- package/lib/web/JsonpTemplatePlugin.js +2 -2
- package/lib/webpack.js +22 -11
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +1 -0
- package/package.json +32 -25
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +667 -34
- package/schemas/plugins/HtmlParserOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/types.d.ts +3223 -465
- package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
|
@@ -9,19 +9,22 @@ const {
|
|
|
9
9
|
CSS_TYPE,
|
|
10
10
|
JAVASCRIPT_TYPE
|
|
11
11
|
} = require("../ModuleSourceTypeConstants");
|
|
12
|
-
const HtmlGenerator = require("../html/HtmlGenerator");
|
|
13
12
|
const ResourceHintPlugin = require("../prefetch/ResourceHintPlugin");
|
|
14
13
|
const ResourceHintRuntimeModule = require("../prefetch/ResourceHintRuntimeModule");
|
|
15
14
|
const makeSerializable = require("../util/makeSerializable");
|
|
15
|
+
const memoize = require("../util/memoize");
|
|
16
16
|
const ModuleDependency = require("./ModuleDependency");
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
/** @
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
24
|
-
/** @
|
|
18
|
+
// only the template needs it, and that runs only for a real html module
|
|
19
|
+
const getHtmlGenerator = memoize(() => require("../html/HtmlGenerator"));
|
|
20
|
+
|
|
21
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
22
|
+
/** @import Chunk from "../Chunk" */
|
|
23
|
+
/** @import ChunkGraph from "../ChunkGraph" */
|
|
24
|
+
/** @import Dependency from "../Dependency" */
|
|
25
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
26
|
+
/** @import Entrypoint from "../Entrypoint" */
|
|
27
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
25
28
|
/** @typedef {"script" | "script-module" | "modulepreload" | "stylesheet" | "html" | "preload" | "prefetch"} HtmlEntryElementKind */
|
|
26
29
|
|
|
27
30
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string, HtmlEntryElementKind, number, number, boolean, string, number, boolean, number, (Range | null), (Range | null), boolean, number, number]>} ObjectDeserializerContext */
|
|
@@ -191,7 +194,12 @@ const getEntrypointChunksInLoadOrder = (entrypoint) => {
|
|
|
191
194
|
const chunksLoadedByAncestorTags = new Set();
|
|
192
195
|
/** @type {Set<import("../ChunkGroup")>} */
|
|
193
196
|
const visitedGroups = new Set();
|
|
194
|
-
|
|
197
|
+
/**
|
|
198
|
+
* Collects the chunks an ancestor entry's own tags already load.
|
|
199
|
+
* @param {import("../ChunkGroup")} group chunk group to walk up from
|
|
200
|
+
* @returns {void}
|
|
201
|
+
*/
|
|
202
|
+
const walk = (group) => {
|
|
195
203
|
if (visitedGroups.has(group)) return;
|
|
196
204
|
visitedGroups.add(group);
|
|
197
205
|
for (const parent of group.parentsIterable) {
|
|
@@ -217,7 +225,12 @@ const getEntrypointChunksInLoadOrder = (entrypoint) => {
|
|
|
217
225
|
const ordered = [];
|
|
218
226
|
/** @type {Set<Chunk>} */
|
|
219
227
|
const seen = new Set();
|
|
220
|
-
|
|
228
|
+
/**
|
|
229
|
+
* Appends a chunk once, skipping the ones an ancestor entry already loads.
|
|
230
|
+
* @param {Chunk | null | undefined} chunk chunk to append
|
|
231
|
+
* @returns {void}
|
|
232
|
+
*/
|
|
233
|
+
const push = (chunk) => {
|
|
221
234
|
if (!chunk || seen.has(chunk) || chunk === entryChunk) return;
|
|
222
235
|
if (chunksLoadedByAncestorTags.has(chunk)) return;
|
|
223
236
|
seen.add(chunk);
|
|
@@ -638,7 +651,7 @@ const resolveResourceHint = (desc, ctx) => {
|
|
|
638
651
|
if (!has) continue;
|
|
639
652
|
tags.push(
|
|
640
653
|
buildLinkTag(rel, {
|
|
641
|
-
href:
|
|
654
|
+
href: getHtmlGenerator().makeChunkUrlSentinel(chunk, kind),
|
|
642
655
|
as,
|
|
643
656
|
type: desc.type,
|
|
644
657
|
crossorigin,
|
|
@@ -649,7 +662,7 @@ const resolveResourceHint = (desc, ctx) => {
|
|
|
649
662
|
(rel === "preload" || rel === "modulepreload") &&
|
|
650
663
|
desc.integrity !== false &&
|
|
651
664
|
ctx.integrityOn
|
|
652
|
-
? ` integrity="${
|
|
665
|
+
? ` integrity="${getHtmlGenerator().makeChunkIntegritySentinel(chunk, kind)}"`
|
|
653
666
|
: undefined,
|
|
654
667
|
media: desc.media,
|
|
655
668
|
fetchpriority: desc.fetchPriority
|
|
@@ -682,7 +695,7 @@ HtmlEntryDependency.Template = class HtmlEntryDependencyTemplate extends (
|
|
|
682
695
|
source.replace(
|
|
683
696
|
dep.range[0],
|
|
684
697
|
dep.range[1] - 1,
|
|
685
|
-
|
|
698
|
+
getHtmlGenerator().makeHtmlPageUrlSentinel(dep.entryName)
|
|
686
699
|
);
|
|
687
700
|
return;
|
|
688
701
|
}
|
|
@@ -712,15 +725,12 @@ HtmlEntryDependency.Template = class HtmlEntryDependencyTemplate extends (
|
|
|
712
725
|
: "";
|
|
713
726
|
|
|
714
727
|
// Per-chunk SRI: emit an `integrity` sentinel resolved late (after the
|
|
715
|
-
// chunks' final bytes exist) by `resolveChunkIntegritySentinels`.
|
|
716
|
-
//
|
|
728
|
+
// chunks' final bytes exist) by `resolveChunkIntegritySentinels`. Tags are
|
|
729
|
+
// generated per HTML module, but one module can back pages with different
|
|
730
|
+
// `integrity` options, so sentinels are emitted whenever any page wants SRI
|
|
731
|
+
// and each page then resolves or strips them on emit.
|
|
717
732
|
const htmlOption = compilation.outputOptions.html;
|
|
718
|
-
const
|
|
719
|
-
typeof htmlOption === "object" ? htmlOption.integrity : undefined;
|
|
720
|
-
const integrityOn =
|
|
721
|
-
integrity === true ||
|
|
722
|
-
typeof integrity === "function" ||
|
|
723
|
-
(Array.isArray(integrity) && integrity.length > 0);
|
|
733
|
+
const integrityOn = getHtmlGenerator().hasIntegritySentinels(compilation);
|
|
724
734
|
const inject =
|
|
725
735
|
typeof htmlOption === "object" ? htmlOption.inject : undefined;
|
|
726
736
|
|
|
@@ -746,7 +756,7 @@ HtmlEntryDependency.Template = class HtmlEntryDependencyTemplate extends (
|
|
|
746
756
|
}
|
|
747
757
|
source.insert(
|
|
748
758
|
dep.tagNameEnd,
|
|
749
|
-
` integrity="${
|
|
759
|
+
` integrity="${getHtmlGenerator().makeChunkIntegritySentinel(
|
|
750
760
|
chunk,
|
|
751
761
|
contentHashType
|
|
752
762
|
)}"`
|
|
@@ -763,7 +773,7 @@ HtmlEntryDependency.Template = class HtmlEntryDependencyTemplate extends (
|
|
|
763
773
|
source.replace(
|
|
764
774
|
dep.range[0],
|
|
765
775
|
dep.range[1] - 1,
|
|
766
|
-
|
|
776
|
+
getHtmlGenerator().makeChunkUrlSentinel(entryChunk, contentHashType)
|
|
767
777
|
);
|
|
768
778
|
// `preload` is integrity-eligible per the SRI spec, so mirror
|
|
769
779
|
// `crossorigin`/`integrity` onto it (SRI requires CORS). `prefetch` is a
|
|
@@ -822,7 +832,7 @@ HtmlEntryDependency.Template = class HtmlEntryDependencyTemplate extends (
|
|
|
822
832
|
isChunkInlined(entryChunk, entryContentHashType);
|
|
823
833
|
|
|
824
834
|
if (entryInlined) {
|
|
825
|
-
const inlineSentinel =
|
|
835
|
+
const inlineSentinel = getHtmlGenerator().makeChunkInlineSentinel(
|
|
826
836
|
entryChunk,
|
|
827
837
|
entryContentHashType
|
|
828
838
|
);
|
|
@@ -843,7 +853,10 @@ HtmlEntryDependency.Template = class HtmlEntryDependencyTemplate extends (
|
|
|
843
853
|
source.replace(
|
|
844
854
|
dep.range[0],
|
|
845
855
|
dep.range[1] - 1,
|
|
846
|
-
|
|
856
|
+
getHtmlGenerator().makeChunkUrlSentinel(
|
|
857
|
+
entryChunk,
|
|
858
|
+
entryContentHashType
|
|
859
|
+
)
|
|
847
860
|
);
|
|
848
861
|
}
|
|
849
862
|
|
|
@@ -872,14 +885,17 @@ HtmlEntryDependency.Template = class HtmlEntryDependencyTemplate extends (
|
|
|
872
885
|
*/
|
|
873
886
|
const buildSibling = (chunk, kind) => {
|
|
874
887
|
if (isChunkInlined(chunk, kind)) {
|
|
875
|
-
const sentinel =
|
|
888
|
+
const sentinel = getHtmlGenerator().makeChunkInlineSentinel(
|
|
889
|
+
chunk,
|
|
890
|
+
kind
|
|
891
|
+
);
|
|
876
892
|
return kind === "css"
|
|
877
893
|
? `<style>${sentinel}</style>`
|
|
878
894
|
: `<script${scriptTypeAttr}>${sentinel}</script>`;
|
|
879
895
|
}
|
|
880
|
-
const url =
|
|
896
|
+
const url = getHtmlGenerator().makeChunkUrlSentinel(chunk, kind);
|
|
881
897
|
const integrityAttr = integrityOn
|
|
882
|
-
? ` integrity="${
|
|
898
|
+
? ` integrity="${getHtmlGenerator().makeChunkIntegritySentinel(chunk, kind)}"`
|
|
883
899
|
: "";
|
|
884
900
|
if (kind === "css") {
|
|
885
901
|
// A CSS chunk is always loaded via `<link rel="stylesheet">`.
|
|
@@ -1118,13 +1134,13 @@ HtmlEntryDependency.Template = class HtmlEntryDependencyTemplate extends (
|
|
|
1118
1134
|
) {
|
|
1119
1135
|
continue;
|
|
1120
1136
|
}
|
|
1121
|
-
const href =
|
|
1137
|
+
const href = getHtmlGenerator().makeChunkUrlSentinel(
|
|
1122
1138
|
chunk,
|
|
1123
1139
|
"javascript"
|
|
1124
1140
|
);
|
|
1125
1141
|
const integrityAttr =
|
|
1126
1142
|
integrityOn && !prefetchMode
|
|
1127
|
-
? ` integrity="${
|
|
1143
|
+
? ` integrity="${getHtmlGenerator().makeChunkIntegritySentinel(
|
|
1128
1144
|
chunk,
|
|
1129
1145
|
"javascript"
|
|
1130
1146
|
)}"`
|
|
@@ -1233,7 +1249,9 @@ HtmlEntryDependency.Template = class HtmlEntryDependencyTemplate extends (
|
|
|
1233
1249
|
const typeAttr = md.typeAttribute;
|
|
1234
1250
|
const mediaAttr = md.mediaAttribute;
|
|
1235
1251
|
const fetchPriority = md.fetchPriority;
|
|
1236
|
-
const href =
|
|
1252
|
+
const href = getHtmlGenerator().makeAssetUrlSentinel(
|
|
1253
|
+
module.identifier()
|
|
1254
|
+
);
|
|
1237
1255
|
const attrs =
|
|
1238
1256
|
`${asAttr ? ` as="${escapeAttr(asAttr)}"` : ""}` +
|
|
1239
1257
|
`${typeAttr ? ` type="${escapeAttr(typeAttr)}"` : ""}` +
|
|
@@ -8,14 +8,13 @@ const { HTML_TYPE } = require("../ModuleSourceTypeConstants");
|
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const ModuleDependency = require("./ModuleDependency");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/** @typedef {import("../util/Hash")} Hash */
|
|
11
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
12
|
+
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
13
|
+
/** @import Dependency, { UpdateHashContext } from "../Dependency" */
|
|
14
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
15
|
+
/** @import Module from "../Module" */
|
|
16
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
17
|
+
/** @import Hash from "../util/Hash" */
|
|
19
18
|
|
|
20
19
|
// One pass over the source: each char is replaced once and replacements aren't
|
|
21
20
|
// re-scanned, so this matches the `&`-first sequential escape chain exactly.
|
|
@@ -4,16 +4,19 @@
|
|
|
4
4
|
|
|
5
5
|
"use strict";
|
|
6
6
|
|
|
7
|
-
const HtmlGenerator = require("../html/HtmlGenerator");
|
|
8
7
|
const makeSerializable = require("../util/makeSerializable");
|
|
8
|
+
const memoize = require("../util/memoize");
|
|
9
9
|
const ModuleDependency = require("./ModuleDependency");
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
11
|
+
// only the template needs it, and that runs only for a real html module
|
|
12
|
+
const getHtmlGenerator = memoize(() => require("../html/HtmlGenerator"));
|
|
13
|
+
|
|
14
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
15
|
+
/** @import Chunk from "../Chunk" */
|
|
16
|
+
/** @import Dependency from "../Dependency" */
|
|
17
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
18
|
+
/** @import Entrypoint from "../Entrypoint" */
|
|
19
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
17
20
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[number, Range, string, string]>} ObjectDeserializerContext */
|
|
18
21
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[number, Range, string, string]>} ObjectSerializerContext */
|
|
19
22
|
|
|
@@ -106,7 +109,7 @@ HtmlInlineScriptDependency.Template = class HtmlInlineScriptDependencyTemplate e
|
|
|
106
109
|
if (entrypoint) {
|
|
107
110
|
const chunk = /** @type {Chunk} */ (entrypoint.getEntrypointChunk());
|
|
108
111
|
// Defer chunk-URL substitution to renderManifest — chunk hashes aren't ready yet.
|
|
109
|
-
url =
|
|
112
|
+
url = getHtmlGenerator().makeChunkUrlSentinel(chunk, "javascript");
|
|
110
113
|
}
|
|
111
114
|
|
|
112
115
|
// Insert ` src="…"` right after `<script` so the inline body is
|
|
@@ -8,18 +8,15 @@ const { CSS_TEXT_TYPE } = require("../ModuleSourceTypeConstants");
|
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const ModuleDependency = require("./ModuleDependency");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/** @typedef {import("../Module").BuildInfo} BuildInfo */
|
|
18
|
-
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
11
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
12
|
+
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
13
|
+
/** @import Dependency, { UpdateHashContext } from "../Dependency" */
|
|
14
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
15
|
+
/** @import Module from "../Module" */
|
|
16
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
19
17
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<boolean[]>} ObjectDeserializerContext */
|
|
20
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<boolean[]>} ObjectSerializerContext */
|
|
21
|
-
/** @
|
|
22
|
-
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
19
|
+
/** @import Hash from "../util/Hash" */
|
|
23
20
|
|
|
24
21
|
const TRAILING_WHITESPACE_REGEXP = /\s+$/;
|
|
25
22
|
// One pass over the source: each char is replaced once and replacements aren't
|
|
@@ -11,20 +11,24 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
11
11
|
const memoize = require("../util/memoize");
|
|
12
12
|
const ModuleDependency = require("./ModuleDependency");
|
|
13
13
|
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
24
|
-
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
14
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
15
|
+
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
16
|
+
/** @import Dependency, { UpdateHashContext } from "../Dependency" */
|
|
17
|
+
/**
|
|
18
|
+
* @import {
|
|
19
|
+
* CssDependencyTemplateContext as DependencyTemplateContext
|
|
20
|
+
* } from "../DependencyTemplate"
|
|
21
|
+
*/
|
|
22
|
+
/** @import Module, { BuildInfo } from "../Module" */
|
|
23
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
24
|
+
/**
|
|
25
|
+
* @import {
|
|
26
|
+
* ObjectDeserializerContext,
|
|
27
|
+
* ObjectSerializerContext
|
|
28
|
+
* } from "../serialization/ObjectMiddleware"
|
|
29
|
+
*/
|
|
30
|
+
/** @import Hash from "../util/Hash" */
|
|
31
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
28
32
|
|
|
29
33
|
const getIgnoredRawDataUrlModule = memoize(
|
|
30
34
|
() => new RawDataUrlModule("data:,", "ignored-asset", "(ignored asset)")
|
|
@@ -61,6 +65,10 @@ class HtmlSourceDependency extends ModuleDependency {
|
|
|
61
65
|
return "url";
|
|
62
66
|
}
|
|
63
67
|
|
|
68
|
+
get referencedSourceType() {
|
|
69
|
+
return ASSET_URL_TYPE;
|
|
70
|
+
}
|
|
71
|
+
|
|
64
72
|
/**
|
|
65
73
|
* Creates an ignored module.
|
|
66
74
|
* @param {string} context context directory
|
|
@@ -8,11 +8,13 @@
|
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const ContextDependency = require("./ContextDependency");
|
|
10
10
|
const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall");
|
|
11
|
+
const importOptionsCheck = require("./importOptionsCheck");
|
|
11
12
|
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
13
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
14
|
+
/** @import { ObjectDeserializerContext, ObjectSerializerContext } from "../serialization/ObjectMiddleware" */
|
|
15
|
+
/** @import { ContextDependencyOptions } from "./ContextDependency" */
|
|
16
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
17
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
16
18
|
|
|
17
19
|
class ImportContextDependency extends ContextDependency {
|
|
18
20
|
/**
|
|
@@ -26,6 +28,8 @@ class ImportContextDependency extends ContextDependency {
|
|
|
26
28
|
|
|
27
29
|
this.range = range;
|
|
28
30
|
this.valueRange = valueRange;
|
|
31
|
+
/** @type {Range | undefined} */
|
|
32
|
+
this.optionsRange = undefined;
|
|
29
33
|
}
|
|
30
34
|
|
|
31
35
|
get type() {
|
|
@@ -56,6 +60,7 @@ class ImportContextDependency extends ContextDependency {
|
|
|
56
60
|
*/
|
|
57
61
|
serialize(context) {
|
|
58
62
|
context.write(this.valueRange);
|
|
63
|
+
context.write(this.optionsRange);
|
|
59
64
|
|
|
60
65
|
super.serialize(context);
|
|
61
66
|
}
|
|
@@ -66,6 +71,7 @@ class ImportContextDependency extends ContextDependency {
|
|
|
66
71
|
*/
|
|
67
72
|
deserialize(context) {
|
|
68
73
|
this.valueRange = context.read();
|
|
74
|
+
this.optionsRange = context.read();
|
|
69
75
|
|
|
70
76
|
super.deserialize(context.rest);
|
|
71
77
|
}
|
|
@@ -76,6 +82,40 @@ makeSerializable(
|
|
|
76
82
|
"webpack/lib/dependencies/ImportContextDependency"
|
|
77
83
|
);
|
|
78
84
|
|
|
79
|
-
ImportContextDependency.Template =
|
|
85
|
+
ImportContextDependency.Template = class ImportContextDependencyTemplate extends (
|
|
86
|
+
ContextDependencyTemplateAsRequireCall
|
|
87
|
+
) {
|
|
88
|
+
/**
|
|
89
|
+
* Rewrites the call around its request, dropping anything the original one
|
|
90
|
+
* carried after it. Overridden where a later argument must be kept.
|
|
91
|
+
* @param {ContextDependency} dep the dependency
|
|
92
|
+
* @param {ReplaceSource} source the current replace source which can be modified
|
|
93
|
+
* @param {string} moduleExports the expression the request is passed to
|
|
94
|
+
* @param {DependencyTemplateContext} templateContext the context object
|
|
95
|
+
* @returns {void}
|
|
96
|
+
*/
|
|
97
|
+
replaceCall(dep, source, moduleExports, templateContext) {
|
|
98
|
+
const optionsRange = /** @type {ImportContextDependency} */ (dep)
|
|
99
|
+
.optionsRange;
|
|
100
|
+
if (optionsRange === undefined) {
|
|
101
|
+
super.replaceCall(dep, source, moduleExports, templateContext);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
// Request then options, in that order; their own source is kept so
|
|
105
|
+
// nested dependencies in them still get their replacements.
|
|
106
|
+
const range = /** @type {Range} */ (dep.range);
|
|
107
|
+
const valueRange = /** @type {Range} */ (dep.valueRange);
|
|
108
|
+
const check = importOptionsCheck(
|
|
109
|
+
templateContext.runtimeTemplate,
|
|
110
|
+
["r", "o"],
|
|
111
|
+
`${moduleExports}(r)`
|
|
112
|
+
);
|
|
113
|
+
source.replace(range[0], valueRange[0] - 1, `(${check})(`);
|
|
114
|
+
// The options range excludes any parentheses the source had, so a comma
|
|
115
|
+
// expression would otherwise split into arguments of its own.
|
|
116
|
+
source.replace(valueRange[1], optionsRange[0] - 1, ", (");
|
|
117
|
+
source.replace(optionsRange[1], range[1] - 1, "))");
|
|
118
|
+
}
|
|
119
|
+
};
|
|
80
120
|
|
|
81
121
|
module.exports = ImportContextDependency;
|
|
@@ -6,30 +6,34 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const Dependency = require("../Dependency");
|
|
9
|
-
const Template = require("../Template");
|
|
10
9
|
const makeSerializable = require("../util/makeSerializable");
|
|
11
|
-
const
|
|
10
|
+
const HarmonyImportGuard = require("./HarmonyImportGuard");
|
|
12
11
|
const { ImportPhaseUtils } = require("./ImportPhase");
|
|
13
12
|
const ModuleDependency = require("./ModuleDependency");
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
/** @
|
|
26
|
-
/** @
|
|
27
|
-
/** @
|
|
28
|
-
/** @
|
|
29
|
-
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
13
|
+
const importOptionsCheck = require("./importOptionsCheck");
|
|
14
|
+
|
|
15
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
16
|
+
/** @import AsyncDependenciesBlock from "../AsyncDependenciesBlock" */
|
|
17
|
+
/**
|
|
18
|
+
* @import {
|
|
19
|
+
* GetConditionFn,
|
|
20
|
+
* RawReferencedExports,
|
|
21
|
+
* ReferencedExports
|
|
22
|
+
* } from "../Dependency"
|
|
23
|
+
*/
|
|
24
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
25
|
+
/** @import Module, { BuildMeta } from "../Module" */
|
|
26
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
27
|
+
/** @import { ImportAttributes, Range } from "../javascript/JavascriptParser" */
|
|
28
|
+
/**
|
|
29
|
+
* @import {
|
|
30
|
+
* ObjectDeserializerContext,
|
|
31
|
+
* ObjectSerializerContext
|
|
32
|
+
* } from "../serialization/ObjectMiddleware"
|
|
33
|
+
*/
|
|
34
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
35
|
+
/** @import { DependencyGuard } from "./HarmonyImportGuard" */
|
|
36
|
+
/** @import { ImportPhaseType } from "./ImportPhase" */
|
|
33
37
|
|
|
34
38
|
class ImportDependency extends ModuleDependency {
|
|
35
39
|
/**
|
|
@@ -75,7 +79,7 @@ class ImportDependency extends ModuleDependency {
|
|
|
75
79
|
const guards = this.branchGuards;
|
|
76
80
|
if (guards === undefined) return null;
|
|
77
81
|
return (connection, runtime) =>
|
|
78
|
-
!
|
|
82
|
+
!HarmonyImportGuard.isDeadByGuards(guards, moduleGraph, runtime);
|
|
79
83
|
}
|
|
80
84
|
|
|
81
85
|
/**
|
|
@@ -222,35 +226,14 @@ ImportDependency.Template = class ImportDependencyTemplate extends (
|
|
|
222
226
|
}
|
|
223
227
|
|
|
224
228
|
// A non-static second argument must still be evaluated (for its side
|
|
225
|
-
// effects and evaluation order) and
|
|
226
|
-
// and wrap it
|
|
227
|
-
// the spec's `import(specifier, options)` evaluation.
|
|
229
|
+
// effects and evaluation order) and checked per spec, so keep it in place
|
|
230
|
+
// and wrap it.
|
|
228
231
|
if (dep.optionsRange) {
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
'if ((typeof o !== "object" && typeof o !== "function") || o === null) throw new TypeError("The second argument to import() must be an object");',
|
|
235
|
-
'var a = o["with"];',
|
|
236
|
-
"if (a !== undefined) {",
|
|
237
|
-
Template.indent([
|
|
238
|
-
'if ((typeof a !== "object" && typeof a !== "function") || a === null) throw new TypeError("The \'with\' option must be an object");',
|
|
239
|
-
"for (var k = Object.keys(a), i = 0; i < k.length; i++) {",
|
|
240
|
-
Template.indent([
|
|
241
|
-
'if (typeof a[k[i]] !== "string") throw new TypeError("Import attribute values must be strings");'
|
|
242
|
-
]),
|
|
243
|
-
"}"
|
|
244
|
-
]),
|
|
245
|
-
"}"
|
|
246
|
-
]),
|
|
247
|
-
"}"
|
|
248
|
-
]),
|
|
249
|
-
"} catch (e) { return Promise.reject(e); }",
|
|
250
|
-
`return ${content};`
|
|
251
|
-
]);
|
|
252
|
-
source.replace(dep.range[0], dep.optionsRange[0] - 1, `(${validator})(`);
|
|
253
|
-
source.replace(dep.optionsRange[1], dep.range[1] - 1, ")");
|
|
232
|
+
const check = importOptionsCheck(runtimeTemplate, ["o"], content);
|
|
233
|
+
// The options range excludes any parentheses the source had, so a
|
|
234
|
+
// comma expression would otherwise split into arguments of its own.
|
|
235
|
+
source.replace(dep.range[0], dep.optionsRange[0] - 1, `(${check})((`);
|
|
236
|
+
source.replace(dep.optionsRange[1], dep.range[1] - 1, "))");
|
|
254
237
|
return;
|
|
255
238
|
}
|
|
256
239
|
|
|
@@ -8,15 +8,12 @@
|
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const ImportDependency = require("./ImportDependency");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
18
|
-
/** @typedef {ImportDependency.RawReferencedExports} RawReferencedExports */
|
|
19
|
-
/** @typedef {import("./ImportPhase").ImportPhaseType} ImportPhaseType */
|
|
11
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
12
|
+
/** @import Dependency, { RawReferencedExports } from "../Dependency" */
|
|
13
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
14
|
+
/** @import Module, { BuildMeta } from "../Module" */
|
|
15
|
+
/** @import { ImportAttributes, Range } from "../javascript/JavascriptParser" */
|
|
16
|
+
/** @import { ImportPhaseType } from "./ImportPhase" */
|
|
20
17
|
|
|
21
18
|
class ImportEagerDependency extends ImportDependency {
|
|
22
19
|
/**
|
|
@@ -9,8 +9,8 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
9
9
|
const ContextDependency = require("./ContextDependency");
|
|
10
10
|
const ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateAsRequireId");
|
|
11
11
|
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
12
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
13
|
+
/** @import { ContextDependencyOptions } from "./ContextDependency" */
|
|
14
14
|
|
|
15
15
|
class ImportMetaContextDependency extends ContextDependency {
|
|
16
16
|
/**
|
|
@@ -11,19 +11,20 @@ const {
|
|
|
11
11
|
} = require("../javascript/JavascriptParserHelpers");
|
|
12
12
|
const ImportMetaContextDependency = require("./ImportMetaContextDependency");
|
|
13
13
|
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
24
|
-
/** @
|
|
25
|
-
/** @
|
|
26
|
-
/** @
|
|
14
|
+
/**
|
|
15
|
+
* @import {
|
|
16
|
+
* Expression,
|
|
17
|
+
* ObjectExpression,
|
|
18
|
+
* Property,
|
|
19
|
+
* Identifier
|
|
20
|
+
* } from "estree"
|
|
21
|
+
*/
|
|
22
|
+
/** @import JavascriptParser, { Range } from "../javascript/JavascriptParser" */
|
|
23
|
+
/** @import { ContextModuleOptions, ContextMode } from "../ContextModule" */
|
|
24
|
+
/** @import { ChunkName } from "../Chunk" */
|
|
25
|
+
/** @import { RawChunkGroupOptions } from "../ChunkGroup" */
|
|
26
|
+
/** @import { RawReferencedExports, DependencyLocation } from "../Dependency" */
|
|
27
|
+
/** @import BasicEvaluatedExpression from "../javascript/BasicEvaluatedExpression" */
|
|
27
28
|
|
|
28
29
|
/** @typedef {Pick<ContextModuleOptions, "mode" | "recursive" | "regExp" | "include" | "exclude" | "chunkName"> & { groupOptions: RawChunkGroupOptions, exports?: RawReferencedExports }} ImportMetaContextOptions */
|
|
29
30
|
|
|
@@ -16,9 +16,13 @@ const ImportMetaGlobDependency = require("./ImportMetaGlobDependency");
|
|
|
16
16
|
const ImportMetaGlobDependencyParserPlugin = require("./ImportMetaGlobDependencyParserPlugin");
|
|
17
17
|
const { isImportMetaFieldEnabled } = require("./ImportMetaPlugin");
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
/**
|
|
20
|
+
* @import {
|
|
21
|
+
* JavascriptParserOptions
|
|
22
|
+
* } from "../../declarations/WebpackOptions"
|
|
23
|
+
*/
|
|
24
|
+
/** @import Compiler from "../Compiler" */
|
|
25
|
+
/** @import Parser from "../javascript/JavascriptParser" */
|
|
22
26
|
|
|
23
27
|
const PLUGIN_NAME = "ImportMetaContextPlugin";
|
|
24
28
|
|
|
@@ -9,8 +9,8 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
9
9
|
const ContextDependency = require("./ContextDependency");
|
|
10
10
|
const ModuleDependencyTemplateAsRequireId = require("./ModuleDependencyTemplateAsRequireId");
|
|
11
11
|
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
12
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
13
|
+
/** @import { ContextDependencyOptions } from "./ContextDependency" */
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* @typedef {ContextDependencyOptions & {
|