@depup/webpack 5.109.2-depup.0 → 5.110.1-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 +26 -17
- 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 +117 -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 +50 -13
- 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 +101 -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 +32 -47
- 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 +141 -85
- 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 +332 -169
- package/lib/RuntimeTemplate.js +2792 -352
- 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 +2 -2
- 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 +261 -79
- package/lib/config/defineConfig.js +10 -2
- package/lib/config/getClaimedAssetTypes.js +65 -0
- package/lib/config/normalization.js +36 -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 +57 -24
- package/lib/css/CssModule.js +10 -7
- package/lib/css/CssModulesPlugin.js +168 -88
- 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 +5324 -0
- package/lib/css/syntax.js +9579 -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 +156 -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 +4 -4
- 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 +13 -10
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +78 -12
- package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +143 -63
- 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 +27 -19
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +31 -24
- package/lib/dependencies/HarmonyImportGuard.js +20 -30
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +38 -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 +37 -29
- 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 +2 -2
- package/lib/dependencies/ImportDependency.js +24 -20
- 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 +49 -35
- 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 +51 -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 +46 -28
- package/lib/dependencies/WorkerDependency.js +28 -22
- package/lib/dependencies/WorkletDependency.js +15 -14
- package/lib/dependencies/getFunctionExpression.js +8 -4
- 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/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/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 +89 -51
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +155 -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 +282 -162
- 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 +5557 -1155
- 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 +98 -113
- 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 +14 -1
- 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 +72 -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 +985 -470
- package/lib/optimize/ConstExportsPlugin.js +11 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
- package/lib/optimize/InlineExports.js +9 -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 +10 -6
- 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 -78
- 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 +1 -1
- 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 +23 -6
- 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 +24 -15
- 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 +7 -7
- 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 +12 -14
- package/lib/url/URLParserPlugin.js +26 -13
- 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 +1050 -24
- package/lib/util/StringXor.js +1 -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 +5 -1
- package/lib/util/createHash.js +2 -2
- package/lib/util/createHooksRegistry.js +8 -10
- 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 +6 -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/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 +41 -21
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +43 -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 +34 -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 +101 -19
- package/lib/web/FetchCompileWasmPlugin.js +46 -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 +670 -36
- 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 +3144 -454
- package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
|
@@ -34,41 +34,53 @@ const HarmonyLinkingError = require("./HarmonyLinkingError");
|
|
|
34
34
|
const { ImportPhaseUtils } = require("./ImportPhase");
|
|
35
35
|
const processExportInfo = require("./processExportInfo");
|
|
36
36
|
|
|
37
|
-
/** @
|
|
38
|
-
/** @
|
|
39
|
-
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
/** @
|
|
51
|
-
/** @
|
|
52
|
-
/** @
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
/** @
|
|
37
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
38
|
+
/** @import ChunkGraph from "../ChunkGraph" */
|
|
39
|
+
/**
|
|
40
|
+
* @import {
|
|
41
|
+
* ExportsSpec,
|
|
42
|
+
* GetConditionFn,
|
|
43
|
+
* LazyUntil,
|
|
44
|
+
* RawReferencedExports,
|
|
45
|
+
* ReferencedExports,
|
|
46
|
+
* TRANSITIVE,
|
|
47
|
+
* ExportInfoName
|
|
48
|
+
* } from "../Dependency"
|
|
49
|
+
*/
|
|
50
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
51
|
+
/** @import ExportsInfo, { ExportInfo, UsedName } from "../ExportsInfo" */
|
|
52
|
+
/** @import { GenerateContext } from "../Generator" */
|
|
53
|
+
/**
|
|
54
|
+
* @import Module, {
|
|
55
|
+
* BuildMeta,
|
|
56
|
+
* RuntimeRequirements,
|
|
57
|
+
* ExportsType
|
|
58
|
+
* } from "../Module"
|
|
59
|
+
*/
|
|
60
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
61
|
+
/**
|
|
62
|
+
* @import ModuleGraphConnection, {
|
|
63
|
+
* ConnectionState
|
|
64
|
+
* } from "../ModuleGraphConnection"
|
|
65
|
+
*/
|
|
66
|
+
/** @import RuntimeTemplate from "../RuntimeTemplate" */
|
|
67
|
+
/** @import WebpackError from "../errors/WebpackError" */
|
|
68
|
+
/** @import { ImportAttributes } from "../javascript/JavascriptParser" */
|
|
61
69
|
/** @typedef {[Ids, string | null, Set<string>, ReadonlyArray<HarmonyExportImportedSpecifierDependency> | null, ExportPresenceMode, HarmonyStarExportsList | null]} SerializedData */
|
|
62
70
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<SerializedData>} ObjectDeserializerContext */
|
|
63
71
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<SerializedData>} ObjectSerializerContext */
|
|
64
72
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[HarmonyExportImportedSpecifierDependency[]]>} StarListDeserializerContext */
|
|
65
73
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[HarmonyExportImportedSpecifierDependency[]]>} StarListSerializerContext */
|
|
66
|
-
/** @
|
|
67
|
-
/** @
|
|
68
|
-
/** @
|
|
69
|
-
/** @
|
|
70
|
-
/**
|
|
71
|
-
|
|
74
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
75
|
+
/** @import { Ids, ExportPresenceMode } from "./HarmonyImportDependency" */
|
|
76
|
+
/** @import { ExportMap } from "./HarmonyExportInitFragment" */
|
|
77
|
+
/** @import { ImportPhaseType } from "../dependencies/ImportPhase" */
|
|
78
|
+
/**
|
|
79
|
+
* @import {
|
|
80
|
+
* JavascriptModuleBuildMeta
|
|
81
|
+
* } from "../javascript/JavascriptModule"
|
|
82
|
+
*/
|
|
83
|
+
/** @import ConcatenationScope from "../ConcatenationScope" */
|
|
72
84
|
|
|
73
85
|
/** @typedef {"missing" | "unused" | "empty-star" | "reexport-dynamic-default" | "reexport-named-default" | "reexport-namespace-object" | "reexport-fake-namespace-object" | "reexport-undefined" | "normal-reexport" | "dynamic-reexport"} ExportModeType */
|
|
74
86
|
|
|
@@ -83,7 +95,7 @@ class NormalReexportItem {
|
|
|
83
95
|
* Creates an instance of NormalReexportItem.
|
|
84
96
|
* @param {string} name export name
|
|
85
97
|
* @param {Ids} ids reexported ids from other module
|
|
86
|
-
* @param {ExportInfo} exportInfo export info from other module
|
|
98
|
+
* @param {InstanceType<ExportInfo>} exportInfo export info from other module
|
|
87
99
|
* @param {boolean} checked true, if it should be checked at runtime if this export exists
|
|
88
100
|
* @param {boolean} hidden true, if it is hidden behind another active export in the same module
|
|
89
101
|
*/
|
|
@@ -92,7 +104,7 @@ class NormalReexportItem {
|
|
|
92
104
|
this.name = name;
|
|
93
105
|
/** @type {Ids} */
|
|
94
106
|
this.ids = ids;
|
|
95
|
-
/** @type {ExportInfo} */
|
|
107
|
+
/** @type {InstanceType<ExportInfo>} */
|
|
96
108
|
this.exportInfo = exportInfo;
|
|
97
109
|
/** @type {boolean} */
|
|
98
110
|
this.checked = checked;
|
|
@@ -120,7 +132,7 @@ class ExportMode {
|
|
|
120
132
|
// for "reexport-named-default" | "reexport-fake-namespace-object" | "reexport-namespace-object"
|
|
121
133
|
/** @type {string | null} */
|
|
122
134
|
this.name = null;
|
|
123
|
-
/** @type {ExportInfo | null} */
|
|
135
|
+
/** @type {InstanceType<ExportInfo> | null} */
|
|
124
136
|
this.partialNamespaceExportInfo = null;
|
|
125
137
|
|
|
126
138
|
// for "dynamic-reexport":
|
|
@@ -163,7 +175,7 @@ const RETURNS_TRUE = () => true;
|
|
|
163
175
|
* unrelated cycles in the graph that would otherwise loop forever inside
|
|
164
176
|
* `_findTarget`.
|
|
165
177
|
* @param {ModuleGraph} moduleGraph the module graph
|
|
166
|
-
* @param {ExportInfo} exportInfo export info on the imported module
|
|
178
|
+
* @param {InstanceType<ExportInfo>} exportInfo export info on the imported module
|
|
167
179
|
* @param {Module} parentModule the module that contains the star reexport
|
|
168
180
|
* @returns {boolean} true when this export reexports back to the parent module under the same name
|
|
169
181
|
*/
|
|
@@ -194,7 +206,7 @@ const isStarReexportBackToParent = (moduleGraph, exportInfo, parentModule) => {
|
|
|
194
206
|
// Allocated lazily: a single-extra-hop chain that terminates (the common
|
|
195
207
|
// `barrel -> leaf local binding` case) returns before `next` is ever
|
|
196
208
|
// computed, so the visited set is pure waste there.
|
|
197
|
-
/** @type {Set<ExportInfo
|
|
209
|
+
/** @type {Set<InstanceType<ExportInfo>> | undefined} */
|
|
198
210
|
let visited;
|
|
199
211
|
for (;;) {
|
|
200
212
|
const target = current.findTarget(moduleGraph, RETURNS_TRUE);
|
|
@@ -798,7 +810,9 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
798
810
|
runtime,
|
|
799
811
|
referencedExports,
|
|
800
812
|
[],
|
|
801
|
-
/** @type {ExportInfo} */ (
|
|
813
|
+
/** @type {InstanceType<ExportInfo>} */ (
|
|
814
|
+
mode.partialNamespaceExportInfo
|
|
815
|
+
)
|
|
802
816
|
);
|
|
803
817
|
return referencedExports;
|
|
804
818
|
}
|
|
@@ -814,7 +828,9 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency {
|
|
|
814
828
|
runtime,
|
|
815
829
|
referencedExports,
|
|
816
830
|
[],
|
|
817
|
-
/** @type {ExportInfo} */ (
|
|
831
|
+
/** @type {InstanceType<ExportInfo>} */ (
|
|
832
|
+
mode.partialNamespaceExportInfo
|
|
833
|
+
),
|
|
818
834
|
mode.type === "reexport-fake-namespace-object"
|
|
819
835
|
);
|
|
820
836
|
return referencedExports;
|
|
@@ -1212,7 +1228,8 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1212
1228
|
|
|
1213
1229
|
const mode = dep.getMode(moduleGraph, runtime);
|
|
1214
1230
|
|
|
1215
|
-
|
|
1231
|
+
// a wrapped module has no shared-scope symbols to redirect reexports to
|
|
1232
|
+
if (concatenationScope && !concatenationScope.isWrapped()) {
|
|
1216
1233
|
switch (mode.type) {
|
|
1217
1234
|
case "reexport-undefined":
|
|
1218
1235
|
concatenationScope.registerRawExport(
|
|
@@ -1224,7 +1241,15 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1224
1241
|
}
|
|
1225
1242
|
|
|
1226
1243
|
if (mode.type !== "unused" && mode.type !== "empty-star") {
|
|
1227
|
-
|
|
1244
|
+
const importedModule = moduleGraph.getModule(dep);
|
|
1245
|
+
// an in-scope target has no standalone module left to import from
|
|
1246
|
+
if (
|
|
1247
|
+
concatenationScope === undefined ||
|
|
1248
|
+
importedModule === null ||
|
|
1249
|
+
!concatenationScope.isModuleInScope(importedModule)
|
|
1250
|
+
) {
|
|
1251
|
+
super.apply(dependency, source, templateContext);
|
|
1252
|
+
}
|
|
1228
1253
|
|
|
1229
1254
|
this._addExportFragments(
|
|
1230
1255
|
templateContext.initFragments,
|
|
@@ -1235,7 +1260,8 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1235
1260
|
templateContext.chunkGraph,
|
|
1236
1261
|
runtime,
|
|
1237
1262
|
templateContext.runtimeTemplate,
|
|
1238
|
-
templateContext.runtimeRequirements
|
|
1263
|
+
templateContext.runtimeRequirements,
|
|
1264
|
+
concatenationScope
|
|
1239
1265
|
);
|
|
1240
1266
|
}
|
|
1241
1267
|
}
|
|
@@ -1251,6 +1277,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1251
1277
|
* @param {RuntimeSpec} runtime the runtime
|
|
1252
1278
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
1253
1279
|
* @param {RuntimeRequirements} runtimeRequirements runtime requirements
|
|
1280
|
+
* @param {ConcatenationScope=} concatenationScope concatenation scope of a wrapped module
|
|
1254
1281
|
* @returns {void}
|
|
1255
1282
|
*/
|
|
1256
1283
|
_addExportFragments(
|
|
@@ -1262,10 +1289,28 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1262
1289
|
chunkGraph,
|
|
1263
1290
|
runtime,
|
|
1264
1291
|
runtimeTemplate,
|
|
1265
|
-
runtimeRequirements
|
|
1292
|
+
runtimeRequirements,
|
|
1293
|
+
concatenationScope
|
|
1266
1294
|
) {
|
|
1267
1295
|
const importedModule = /** @type {Module} */ (moduleGraph.getModule(dep));
|
|
1268
|
-
|
|
1296
|
+
// an in-scope target has no import statement, read it through a reference
|
|
1297
|
+
const inScope =
|
|
1298
|
+
concatenationScope !== undefined &&
|
|
1299
|
+
concatenationScope.isModuleInScope(importedModule);
|
|
1300
|
+
const importVar = inScope
|
|
1301
|
+
? /** @type {ConcatenationScope} */ (
|
|
1302
|
+
concatenationScope
|
|
1303
|
+
).createModuleReference(importedModule, { asiSafe: true })
|
|
1304
|
+
: dep.getImportVar(moduleGraph);
|
|
1305
|
+
// whole-namespace modes need the original export names, not mangled ones
|
|
1306
|
+
const namespaceImportVar = inScope
|
|
1307
|
+
? /** @type {ConcatenationScope} */ (
|
|
1308
|
+
concatenationScope
|
|
1309
|
+
).createModuleReference(importedModule, {
|
|
1310
|
+
asiSafe: true,
|
|
1311
|
+
mangleableNamespace: true
|
|
1312
|
+
})
|
|
1313
|
+
: importVar;
|
|
1269
1314
|
const isDeferred =
|
|
1270
1315
|
ImportPhaseUtils.isDefer(dep.phase) &&
|
|
1271
1316
|
!(/** @type {BuildMeta} */ (importedModule.buildMeta).async);
|
|
@@ -1282,7 +1327,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1282
1327
|
moduleGraph
|
|
1283
1328
|
.getExportsInfo(module)
|
|
1284
1329
|
.getUsedName(mode.name ? mode.name : [], runtime),
|
|
1285
|
-
|
|
1330
|
+
namespaceImportVar,
|
|
1286
1331
|
importedModule.getExportsType(
|
|
1287
1332
|
moduleGraph,
|
|
1288
1333
|
module.buildMeta &&
|
|
@@ -1318,7 +1363,18 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1318
1363
|
);
|
|
1319
1364
|
break;
|
|
1320
1365
|
|
|
1321
|
-
case "reexport-dynamic-default":
|
|
1366
|
+
case "reexport-dynamic-default": {
|
|
1367
|
+
// `${importVar}_default` names the interop variable that the import
|
|
1368
|
+
// statement declares. An in-scope target has no import statement, so
|
|
1369
|
+
// reference its default export and let the concatenation resolve it.
|
|
1370
|
+
const defaultAccess = inScope
|
|
1371
|
+
? /** @type {ConcatenationScope} */ (
|
|
1372
|
+
concatenationScope
|
|
1373
|
+
).createModuleReference(importedModule, {
|
|
1374
|
+
ids: ["default"],
|
|
1375
|
+
asiSafe: true
|
|
1376
|
+
})
|
|
1377
|
+
: importVar;
|
|
1322
1378
|
initFragments.push(
|
|
1323
1379
|
this.getReexportFragment(
|
|
1324
1380
|
module,
|
|
@@ -1326,25 +1382,47 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1326
1382
|
moduleGraph
|
|
1327
1383
|
.getExportsInfo(module)
|
|
1328
1384
|
.getUsedName(/** @type {string} */ (mode.name), runtime),
|
|
1329
|
-
|
|
1330
|
-
null,
|
|
1385
|
+
defaultAccess,
|
|
1386
|
+
inScope ? "" : null,
|
|
1331
1387
|
runtimeRequirements
|
|
1332
1388
|
)
|
|
1333
1389
|
);
|
|
1334
1390
|
break;
|
|
1391
|
+
}
|
|
1335
1392
|
|
|
1336
1393
|
case "reexport-fake-namespace-object":
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1394
|
+
// `${name}_namespace_cache` needs an identifier to suffix, but an
|
|
1395
|
+
// in-scope target is an expression. The concatenation already builds
|
|
1396
|
+
// the same object, memoized: its interop namespace picks the mode from
|
|
1397
|
+
// the exports type, which is what `fakeType` mirrors.
|
|
1398
|
+
if (inScope) {
|
|
1399
|
+
initFragments.push(
|
|
1400
|
+
this.getReexportFragment(
|
|
1401
|
+
module,
|
|
1402
|
+
"reexport fake namespace object from non-harmony",
|
|
1403
|
+
moduleGraph
|
|
1404
|
+
.getExportsInfo(module)
|
|
1405
|
+
.getUsedName(/** @type {string} */ (mode.name), runtime),
|
|
1406
|
+
/** @type {ConcatenationScope} */ (
|
|
1407
|
+
concatenationScope
|
|
1408
|
+
).createModuleReference(importedModule, { asiSafe: true }),
|
|
1409
|
+
"",
|
|
1410
|
+
runtimeRequirements
|
|
1411
|
+
)
|
|
1412
|
+
);
|
|
1413
|
+
} else {
|
|
1414
|
+
initFragments.push(
|
|
1415
|
+
...this.getReexportFakeNamespaceObjectFragments(
|
|
1416
|
+
module,
|
|
1417
|
+
moduleGraph
|
|
1418
|
+
.getExportsInfo(module)
|
|
1419
|
+
.getUsedName(/** @type {string} */ (mode.name), runtime),
|
|
1420
|
+
namespaceImportVar,
|
|
1421
|
+
mode.fakeType,
|
|
1422
|
+
runtimeRequirements
|
|
1423
|
+
)
|
|
1424
|
+
);
|
|
1425
|
+
}
|
|
1348
1426
|
break;
|
|
1349
1427
|
|
|
1350
1428
|
case "reexport-undefined":
|
|
@@ -1385,7 +1463,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1385
1463
|
moduleGraph
|
|
1386
1464
|
.getExportsInfo(module)
|
|
1387
1465
|
.getUsedName(/** @type {string} */ (mode.name), runtime),
|
|
1388
|
-
|
|
1466
|
+
namespaceImportVar,
|
|
1389
1467
|
"",
|
|
1390
1468
|
runtimeRequirements
|
|
1391
1469
|
)
|
|
@@ -1456,7 +1534,7 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1456
1534
|
: /** @type {ExportModeIgnored} */ (mode.ignored);
|
|
1457
1535
|
let content =
|
|
1458
1536
|
"/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n" +
|
|
1459
|
-
`/* harmony reexport (unknown) */ for(${runtimeTemplate.renderConst()} __WEBPACK_IMPORT_KEY__ in ${
|
|
1537
|
+
`/* harmony reexport (unknown) */ for(${runtimeTemplate.renderConst()} __WEBPACK_IMPORT_KEY__ in ${namespaceImportVar}) `;
|
|
1460
1538
|
|
|
1461
1539
|
// Filter out exports which are defined by other exports
|
|
1462
1540
|
// and filter out default export because it cannot be reexported with *
|
|
@@ -1474,8 +1552,8 @@ HarmonyExportImportedSpecifierDependency.Template = class HarmonyExportImportedS
|
|
|
1474
1552
|
content +=
|
|
1475
1553
|
runtimeTemplate.supportsArrowFunction() &&
|
|
1476
1554
|
runtimeTemplate.supportsConst()
|
|
1477
|
-
? `() => ${
|
|
1478
|
-
: `function(key) { return ${
|
|
1555
|
+
? `() => ${namespaceImportVar}[__WEBPACK_IMPORT_KEY__]`
|
|
1556
|
+
: `function(key) { return ${namespaceImportVar}[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)`;
|
|
1479
1557
|
|
|
1480
1558
|
runtimeRequirements.add(RuntimeGlobals.exports);
|
|
1481
1559
|
runtimeRequirements.add(RuntimeGlobals.definePropertyGetters);
|
|
@@ -1723,6 +1801,8 @@ makeSerializable(
|
|
|
1723
1801
|
"HarmonyStarExportsList"
|
|
1724
1802
|
);
|
|
1725
1803
|
|
|
1804
|
+
HarmonyExportImportedSpecifierDependency.HarmonyStarExportsList =
|
|
1805
|
+
HarmonyStarExportsList;
|
|
1806
|
+
HarmonyExportImportedSpecifierDependency.idsSymbol = idsSymbol;
|
|
1807
|
+
|
|
1726
1808
|
module.exports = HarmonyExportImportedSpecifierDependency;
|
|
1727
|
-
module.exports.HarmonyStarExportsList = HarmonyStarExportsList;
|
|
1728
|
-
module.exports.idsSymbol = idsSymbol;
|
|
@@ -10,9 +10,9 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
10
10
|
const { first } = require("../util/SetHelpers");
|
|
11
11
|
const { propertyName } = require("../util/property");
|
|
12
12
|
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
13
|
+
/** @import { Source } from "webpack-sources" */
|
|
14
|
+
/** @import { GenerateContext } from "../Generator" */
|
|
15
|
+
/** @import { UsedName } from "../ExportsInfo" */
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Join iterable with comma.
|
|
@@ -37,6 +37,7 @@ const joinIterableWithComma = (iterable) => {
|
|
|
37
37
|
|
|
38
38
|
/** @typedef {Map<UsedName, string>} ExportMap */
|
|
39
39
|
/** @typedef {Set<string>} UnusedExports */
|
|
40
|
+
/** @import { OnDemandGeneration } from "./ExportBindingInitFragment" */
|
|
40
41
|
|
|
41
42
|
/** @type {ExportMap} */
|
|
42
43
|
const EMPTY_MAP = new Map();
|
|
@@ -53,11 +54,13 @@ class HarmonyExportInitFragment extends InitFragment {
|
|
|
53
54
|
* @param {string} exportsArgument the exports identifier
|
|
54
55
|
* @param {ExportMap} exportMap mapping from used name to exposed variable name
|
|
55
56
|
* @param {UnusedExports} unusedExports list of unused export names
|
|
57
|
+
* @param {OnDemandGeneration=} onDemand offered the call instead of emitting it
|
|
56
58
|
*/
|
|
57
59
|
constructor(
|
|
58
60
|
exportsArgument,
|
|
59
61
|
exportMap = EMPTY_MAP,
|
|
60
|
-
unusedExports = EMPTY_SET
|
|
62
|
+
unusedExports = EMPTY_SET,
|
|
63
|
+
onDemand = undefined
|
|
61
64
|
) {
|
|
62
65
|
super(undefined, InitFragment.STAGE_HARMONY_EXPORTS, 1, "harmony-exports");
|
|
63
66
|
/** @type {string} */
|
|
@@ -66,6 +69,8 @@ class HarmonyExportInitFragment extends InitFragment {
|
|
|
66
69
|
this.exportMap = exportMap;
|
|
67
70
|
/** @type {UnusedExports} */
|
|
68
71
|
this.unusedExports = unusedExports;
|
|
72
|
+
/** @type {OnDemandGeneration | undefined} */
|
|
73
|
+
this.onDemand = onDemand;
|
|
69
74
|
}
|
|
70
75
|
|
|
71
76
|
/**
|
|
@@ -114,7 +119,8 @@ class HarmonyExportInitFragment extends InitFragment {
|
|
|
114
119
|
return new HarmonyExportInitFragment(
|
|
115
120
|
this.exportsArgument,
|
|
116
121
|
exportMap,
|
|
117
|
-
unusedExports
|
|
122
|
+
unusedExports,
|
|
123
|
+
this.onDemand
|
|
118
124
|
);
|
|
119
125
|
}
|
|
120
126
|
|
|
@@ -151,7 +157,8 @@ class HarmonyExportInitFragment extends InitFragment {
|
|
|
151
157
|
return new HarmonyExportInitFragment(
|
|
152
158
|
this.exportsArgument,
|
|
153
159
|
exportMap,
|
|
154
|
-
unusedExports
|
|
160
|
+
unusedExports,
|
|
161
|
+
this.onDemand || other.onDemand
|
|
155
162
|
);
|
|
156
163
|
}
|
|
157
164
|
|
|
@@ -184,6 +191,8 @@ class HarmonyExportInitFragment extends InitFragment {
|
|
|
184
191
|
)}: ${runtimeTemplate.returningFunction(value)}`
|
|
185
192
|
);
|
|
186
193
|
}
|
|
194
|
+
// Requested even when the call is taken over below: whoever took it may still
|
|
195
|
+
// emit it, and by then the requirement set is closed.
|
|
187
196
|
runtimeRequirements.add(RuntimeGlobals.exports);
|
|
188
197
|
runtimeRequirements.add(RuntimeGlobals.definePropertyGetters);
|
|
189
198
|
definePart = `/* harmony export */ ${
|
|
@@ -191,6 +200,9 @@ class HarmonyExportInitFragment extends InitFragment {
|
|
|
191
200
|
}(${this.exportsArgument}, {${definitions.join(
|
|
192
201
|
","
|
|
193
202
|
)}\n/* harmony export */ });\n`;
|
|
203
|
+
if (this.onDemand !== undefined && this.onDemand(definePart, false)) {
|
|
204
|
+
definePart = "";
|
|
205
|
+
}
|
|
194
206
|
}
|
|
195
207
|
return `${definePart}${unusedPart}`;
|
|
196
208
|
}
|
|
@@ -8,22 +8,30 @@
|
|
|
8
8
|
const Dependency = require("../Dependency");
|
|
9
9
|
const { InlinedUsedName } = require("../optimize/InlineExports");
|
|
10
10
|
const makeSerializable = require("../util/makeSerializable");
|
|
11
|
+
const memoize = require("../util/memoize");
|
|
11
12
|
const ExportBindingInitFragment = require("./ExportBindingInitFragment");
|
|
12
13
|
const HarmonyExportInitFragment = require("./HarmonyExportInitFragment");
|
|
13
14
|
const NullDependency = require("./NullDependency");
|
|
14
15
|
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @
|
|
21
|
-
/** @typedef {import("../optimize/InlineExports").InlinedValue} InlinedValue */
|
|
16
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
17
|
+
/** @import { ExportsSpec, LazyUntil } from "../Dependency" */
|
|
18
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
19
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
20
|
+
/** @import { ConnectionState } from "../ModuleGraphConnection" */
|
|
21
|
+
/** @import { InlinedValue } from "../optimize/InlineExports" */
|
|
22
22
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string, InlinedValue | null | undefined]>} ObjectDeserializerContext */
|
|
23
23
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, string, InlinedValue | null | undefined]>} ObjectSerializerContext */
|
|
24
|
-
/** @
|
|
25
|
-
/**
|
|
26
|
-
|
|
24
|
+
/** @import { UnusedExports, ExportMap } from "./HarmonyExportInitFragment" */
|
|
25
|
+
/**
|
|
26
|
+
* @import {
|
|
27
|
+
* JavascriptModuleBuildInfo
|
|
28
|
+
* } from "../javascript/JavascriptModule"
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
// Required here rather than at the top: the plugin reaches back into the dependencies.
|
|
32
|
+
const getJavascriptModulesPlugin = memoize(() =>
|
|
33
|
+
require("../javascript/JavascriptModulesPlugin")
|
|
34
|
+
);
|
|
27
35
|
|
|
28
36
|
class HarmonyExportSpecifierDependency extends NullDependency {
|
|
29
37
|
/**
|
|
@@ -139,10 +147,18 @@ HarmonyExportSpecifierDependency.Template = class HarmonyExportSpecifierDependen
|
|
|
139
147
|
apply(
|
|
140
148
|
dependency,
|
|
141
149
|
source,
|
|
142
|
-
{
|
|
150
|
+
{
|
|
151
|
+
module,
|
|
152
|
+
moduleGraph,
|
|
153
|
+
initFragments,
|
|
154
|
+
runtime,
|
|
155
|
+
runtimeTemplate,
|
|
156
|
+
concatenationScope
|
|
157
|
+
}
|
|
143
158
|
) {
|
|
144
159
|
const dep = /** @type {HarmonyExportSpecifierDependency} */ (dependency);
|
|
145
|
-
|
|
160
|
+
// a wrapped module's bindings stay inside the wrapper, not in the shared scope
|
|
161
|
+
if (concatenationScope && !concatenationScope.isWrapped()) {
|
|
146
162
|
concatenationScope.registerExport(dep.name, dep.id);
|
|
147
163
|
return;
|
|
148
164
|
}
|
|
@@ -169,6 +185,21 @@ HarmonyExportSpecifierDependency.Template = class HarmonyExportSpecifierDependen
|
|
|
169
185
|
/** @type {import("../Module").BuildInfo} */ (module.buildInfo)
|
|
170
186
|
.isCircular === false;
|
|
171
187
|
|
|
188
|
+
// A library exporting the same bindings natively reads none of them back off the
|
|
189
|
+
// exports object, so it takes the call over and emits it only where wrapped.
|
|
190
|
+
const hooks = getJavascriptModulesPlugin().getCompilationHooks(
|
|
191
|
+
runtimeTemplate.compilation
|
|
192
|
+
);
|
|
193
|
+
const onDemand = hooks.onDemandExportsGeneration.isUsed()
|
|
194
|
+
? (/** @type {string} */ definition, /** @type {boolean} */ placeAtEnd) =>
|
|
195
|
+
hooks.onDemandExportsGeneration.call(
|
|
196
|
+
module,
|
|
197
|
+
runtime,
|
|
198
|
+
definition,
|
|
199
|
+
placeAtEnd
|
|
200
|
+
) === true
|
|
201
|
+
: undefined;
|
|
202
|
+
|
|
172
203
|
if (canUseValueBinding) {
|
|
173
204
|
initFragments.push(
|
|
174
205
|
new ExportBindingInitFragment(
|
|
@@ -180,7 +211,8 @@ HarmonyExportSpecifierDependency.Template = class HarmonyExportSpecifierDependen
|
|
|
180
211
|
bindingType: "value"
|
|
181
212
|
}
|
|
182
213
|
],
|
|
183
|
-
true
|
|
214
|
+
true,
|
|
215
|
+
onDemand
|
|
184
216
|
)
|
|
185
217
|
);
|
|
186
218
|
} else {
|
|
@@ -188,7 +220,12 @@ HarmonyExportSpecifierDependency.Template = class HarmonyExportSpecifierDependen
|
|
|
188
220
|
const map = new Map();
|
|
189
221
|
map.set(used, `/* binding */ ${dep.id}`);
|
|
190
222
|
initFragments.push(
|
|
191
|
-
new HarmonyExportInitFragment(
|
|
223
|
+
new HarmonyExportInitFragment(
|
|
224
|
+
module.exportsArgument,
|
|
225
|
+
map,
|
|
226
|
+
undefined,
|
|
227
|
+
onDemand
|
|
228
|
+
)
|
|
192
229
|
);
|
|
193
230
|
}
|
|
194
231
|
}
|
|
@@ -7,10 +7,13 @@
|
|
|
7
7
|
|
|
8
8
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
9
9
|
|
|
10
|
-
/** @
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
/** @import { BuildInfo } from "../Module" */
|
|
11
|
+
/**
|
|
12
|
+
* @import {
|
|
13
|
+
* JavascriptModuleBuildMeta
|
|
14
|
+
* } from "../javascript/JavascriptModule"
|
|
15
|
+
*/
|
|
16
|
+
/** @import { JavascriptParserState } from "../javascript/JavascriptParser" */
|
|
14
17
|
|
|
15
18
|
/** @type {WeakMap<JavascriptParserState, boolean>} */
|
|
16
19
|
const parserStateExportsState = new WeakMap();
|
|
@@ -16,20 +16,27 @@ const HarmonyLinkingError = require("./HarmonyLinkingError");
|
|
|
16
16
|
const { ImportPhase, ImportPhaseUtils } = require("./ImportPhase");
|
|
17
17
|
const ModuleDependency = require("./ModuleDependency");
|
|
18
18
|
|
|
19
|
-
/** @
|
|
20
|
-
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
/** @
|
|
26
|
-
/** @
|
|
27
|
-
/** @
|
|
28
|
-
/** @
|
|
29
|
-
/** @
|
|
30
|
-
/** @
|
|
31
|
-
/** @
|
|
32
|
-
/** @
|
|
19
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
20
|
+
/**
|
|
21
|
+
* @import {
|
|
22
|
+
* JavascriptParserOptions
|
|
23
|
+
* } from "../../declarations/WebpackOptions"
|
|
24
|
+
*/
|
|
25
|
+
/** @import { ReferencedExports } from "../Dependency" */
|
|
26
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
27
|
+
/** @import ExportsInfo from "../ExportsInfo" */
|
|
28
|
+
/** @import Module, { BuildMeta } from "../Module" */
|
|
29
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
30
|
+
/** @import WebpackError from "../errors/WebpackError" */
|
|
31
|
+
/** @import { ImportAttributes } from "../javascript/JavascriptParser" */
|
|
32
|
+
/** @import { ImportPhaseType } from "./ImportPhase" */
|
|
33
|
+
/**
|
|
34
|
+
* @import {
|
|
35
|
+
* ObjectDeserializerContext,
|
|
36
|
+
* ObjectSerializerContext
|
|
37
|
+
* } from "../serialization/ObjectMiddleware"
|
|
38
|
+
*/
|
|
39
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
33
40
|
|
|
34
41
|
/** @typedef {0 | 1 | 2 | 3} ExportPresenceMode */
|
|
35
42
|
|
|
@@ -135,9 +142,10 @@ class HarmonyImportDependency extends ModuleDependency {
|
|
|
135
142
|
|
|
136
143
|
/**
|
|
137
144
|
* Returns true if this dependency can be concatenated
|
|
145
|
+
* @param {boolean} concatenateCommonJsModules whether optimization.concatenateModules.commonjs is enabled
|
|
138
146
|
* @returns {boolean} true if this dependency can be concatenated
|
|
139
147
|
*/
|
|
140
|
-
canConcatenate() {
|
|
148
|
+
canConcatenate(concatenateCommonJsModules) {
|
|
141
149
|
return true;
|
|
142
150
|
}
|
|
143
151
|
|
|
@@ -384,8 +392,6 @@ class HarmonyImportDependency extends ModuleDependency {
|
|
|
384
392
|
}
|
|
385
393
|
}
|
|
386
394
|
|
|
387
|
-
module.exports = HarmonyImportDependency;
|
|
388
|
-
|
|
389
395
|
/** @type {WeakMap<Module, WeakMap<Module, RuntimeSpec | boolean>>} */
|
|
390
396
|
const importEmittedMap = new WeakMap();
|
|
391
397
|
|
|
@@ -524,5 +530,7 @@ HarmonyImportDependency.Template = class HarmonyImportDependencyTemplate extends
|
|
|
524
530
|
}
|
|
525
531
|
};
|
|
526
532
|
|
|
527
|
-
|
|
528
|
-
|
|
533
|
+
HarmonyImportDependency.ExportPresenceModes = ExportPresenceModes;
|
|
534
|
+
HarmonyImportDependency.getNonOptionalPart = getNonOptionalPart;
|
|
535
|
+
|
|
536
|
+
module.exports = HarmonyImportDependency;
|