@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
|
@@ -17,18 +17,25 @@ const {
|
|
|
17
17
|
const { toJsStringLiteral } = require("../util/identifier");
|
|
18
18
|
const makeSerializable = require("../util/makeSerializable");
|
|
19
19
|
const memoize = require("../util/memoize");
|
|
20
|
+
const {
|
|
21
|
+
PUBLIC_PATH_AUTO,
|
|
22
|
+
PUBLIC_PATH_FULL_HASH
|
|
23
|
+
} = require("../util/publicPathPlaceholder");
|
|
20
24
|
const ModuleDependency = require("./ModuleDependency");
|
|
21
25
|
|
|
22
|
-
/** @
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/** @
|
|
30
|
-
/** @
|
|
31
|
-
/** @
|
|
26
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
27
|
+
/**
|
|
28
|
+
* @import Dependency, {
|
|
29
|
+
* GetConditionFn,
|
|
30
|
+
* UpdateHashContext
|
|
31
|
+
* } from "../Dependency"
|
|
32
|
+
*/
|
|
33
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
34
|
+
/** @import Module from "../Module" */
|
|
35
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
36
|
+
/** @import Hash from "../util/Hash" */
|
|
37
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
38
|
+
/** @import { UsedByExports } from "../optimize/InnerGraph" */
|
|
32
39
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range, boolean, UsedByExports | undefined, true | undefined, true | undefined, ("high" | "low" | "auto" | undefined), string | undefined, string | undefined, string | undefined]>} ObjectDeserializerContext */
|
|
33
40
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Range, boolean, UsedByExports | undefined, true | undefined, true | undefined, ("high" | "low" | "auto" | undefined), string | undefined, string | undefined, string | undefined]>} ObjectSerializerContext */
|
|
34
41
|
|
|
@@ -57,41 +64,46 @@ const getAnalyzableUrlSpecifier = (dep, templateContext) => {
|
|
|
57
64
|
return null;
|
|
58
65
|
}
|
|
59
66
|
const urlData = codeGenerationResults.getData(assetModule, runtime, "url");
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
assetModule,
|
|
69
|
-
runtime,
|
|
70
|
-
"filename"
|
|
71
|
-
);
|
|
72
|
-
if (typeof filename !== "string") return null;
|
|
73
|
-
const { publicPath } = runtimeTemplate.outputOptions;
|
|
74
|
-
if (publicPath === "auto") {
|
|
75
|
-
const undo = runtimeTemplate._getModuleUndoPath(
|
|
76
|
-
consumingModule,
|
|
77
|
-
chunkGraph
|
|
78
|
-
);
|
|
79
|
-
return undo === null ? null : toJsStringLiteral(undo + filename);
|
|
80
|
-
}
|
|
81
|
-
if (typeof publicPath === "string" && !publicPath.includes("[")) {
|
|
82
|
-
return toJsStringLiteral(publicPath + filename);
|
|
83
|
-
}
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
67
|
+
const jsUrl = urlData && urlData[JAVASCRIPT_TYPE];
|
|
68
|
+
if (
|
|
69
|
+
typeof jsUrl === "string" &&
|
|
70
|
+
!jsUrl.includes(RuntimeGlobals.require) &&
|
|
71
|
+
// An analyzable wrapper is an expression, not a value — quoting it would nest
|
|
72
|
+
// one `new URL(…)` inside another. Its own literal is rebuilt below instead.
|
|
73
|
+
!jsUrl.includes(runtimeTemplate.outputOptions.importMetaName)
|
|
74
|
+
) {
|
|
86
75
|
// An already-quoted literal (generator `publicPath` / data: url) is used as-is;
|
|
87
76
|
// a raw value (external asset) is normalized to a quoted string.
|
|
88
77
|
return jsUrl.startsWith('"') ? jsUrl : toJsStringLiteral(jsUrl);
|
|
89
78
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
79
|
+
if (urlData && jsUrl === undefined) {
|
|
80
|
+
// Wrapper dropped for an `asset-url` consumer: an absolute public path resolves
|
|
81
|
+
// the same url from every chunk, so it is already a literal.
|
|
82
|
+
const assetUrl = urlData[ASSET_URL_TYPE];
|
|
83
|
+
// A css or html consumer drops the wrapper too, and its value carries a
|
|
84
|
+
// placeholder only those assets are rendered with — so use the name below.
|
|
85
|
+
if (
|
|
86
|
+
typeof assetUrl === "string" &&
|
|
87
|
+
!assetUrl.includes(PUBLIC_PATH_AUTO) &&
|
|
88
|
+
!assetUrl.includes(PUBLIC_PATH_FULL_HASH)
|
|
89
|
+
) {
|
|
90
|
+
return toJsStringLiteral(assetUrl);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// The wrapper concatenates the runtime public path, or was dropped as unread —
|
|
94
|
+
// either way the name is what the literal is built from.
|
|
95
|
+
const filename = codeGenerationResults.getData(
|
|
96
|
+
assetModule,
|
|
97
|
+
runtime,
|
|
98
|
+
"filename"
|
|
99
|
+
);
|
|
100
|
+
if (typeof filename !== "string") return null;
|
|
101
|
+
return runtimeTemplate.getAnalyzableAssetUrl(
|
|
102
|
+
consumingModule,
|
|
103
|
+
chunkGraph,
|
|
104
|
+
filename,
|
|
105
|
+
runtime
|
|
106
|
+
);
|
|
95
107
|
};
|
|
96
108
|
|
|
97
109
|
class URLDependency extends ModuleDependency {
|
|
@@ -124,6 +136,32 @@ class URLDependency extends ModuleDependency {
|
|
|
124
136
|
this.mediaAttribute = undefined;
|
|
125
137
|
}
|
|
126
138
|
|
|
139
|
+
/**
|
|
140
|
+
* Updates the hash with the data contributed by this instance.
|
|
141
|
+
* @param {Hash} hash hash to be updated
|
|
142
|
+
* @param {UpdateHashContext} context context
|
|
143
|
+
* @returns {void}
|
|
144
|
+
*/
|
|
145
|
+
updateHash(hash, context) {
|
|
146
|
+
super.updateHash(hash, context);
|
|
147
|
+
const { runtimeTemplate, runtime } = context;
|
|
148
|
+
// Only a baked url reads the base; the runtime form is the same text under every
|
|
149
|
+
// base, so hashing one there would cost the code generation cache for nothing.
|
|
150
|
+
if (
|
|
151
|
+
runtimeTemplate === undefined ||
|
|
152
|
+
this.relative ||
|
|
153
|
+
!runtimeTemplate.analyzableUrlReadsBaseUri()
|
|
154
|
+
) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
const base = runtimeTemplate.entryBaseUri(runtime);
|
|
158
|
+
// Disagreeing entries keep the runtime form, different code again from the
|
|
159
|
+
// base-less literal `undefined` bakes; an empty base must differ from both.
|
|
160
|
+
if (base === null) hash.update("|");
|
|
161
|
+
// Left out entirely where no entry sets one, so ordinary builds hash as before.
|
|
162
|
+
else if (typeof base === "string") hash.update(`=${base}`);
|
|
163
|
+
}
|
|
164
|
+
|
|
127
165
|
get type() {
|
|
128
166
|
return "new URL()";
|
|
129
167
|
}
|
|
@@ -210,6 +248,7 @@ URLDependency.Template = class URLDependencyTemplate extends (
|
|
|
210
248
|
moduleGraph,
|
|
211
249
|
runtimeRequirements,
|
|
212
250
|
runtimeTemplate,
|
|
251
|
+
codeGenerationResults,
|
|
213
252
|
runtime
|
|
214
253
|
} = templateContext;
|
|
215
254
|
const dep = /** @type {URLDependency} */ (dependency);
|
|
@@ -226,13 +265,16 @@ URLDependency.Template = class URLDependencyTemplate extends (
|
|
|
226
265
|
|
|
227
266
|
// For ESM module output, emit the analyzable `new URL("./asset", import.meta.url)`
|
|
228
267
|
// form (literal specifier, no runtime helpers) so other bundlers and webpack itself
|
|
229
|
-
// can statically follow the asset. `url: "relative"`
|
|
230
|
-
//
|
|
268
|
+
// can statically follow the asset. `url: "relative"` keeps the runtime form.
|
|
269
|
+
// A prefetch/preload hint doesn't force it: the `<link>` is emitted separately at
|
|
270
|
+
// chunk startup (`StartupAssetHintRuntimeModule`), independent of the call site.
|
|
231
271
|
if (
|
|
232
272
|
!dep.relative &&
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
273
|
+
runtimeTemplate.supportsAnalyzable(
|
|
274
|
+
"url",
|
|
275
|
+
chunkGraph,
|
|
276
|
+
templateContext.module
|
|
277
|
+
)
|
|
236
278
|
) {
|
|
237
279
|
const specifier = getAnalyzableUrlSpecifier(dep, templateContext);
|
|
238
280
|
if (specifier !== null) {
|
|
@@ -245,25 +287,29 @@ URLDependency.Template = class URLDependencyTemplate extends (
|
|
|
245
287
|
}
|
|
246
288
|
}
|
|
247
289
|
|
|
248
|
-
runtimeRequirements.add(RuntimeGlobals.require);
|
|
249
|
-
|
|
250
290
|
const module = moduleGraph.getModule(dep);
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
runtimeRequirements.add(RuntimeGlobals.
|
|
265
|
-
if (
|
|
266
|
-
|
|
291
|
+
// A wrapper-less asset has no exports to require, so concatenate what the wrapper
|
|
292
|
+
// would have — `AssetModulesPlugin` emulates the same for build-time execution.
|
|
293
|
+
const wrapperLess =
|
|
294
|
+
module !== null && !module.getSourceTypes().has(JAVASCRIPT_TYPE);
|
|
295
|
+
const filename =
|
|
296
|
+
wrapperLess && codeGenerationResults.has(module, runtime)
|
|
297
|
+
? codeGenerationResults.getData(module, runtime, "filename")
|
|
298
|
+
: undefined;
|
|
299
|
+
let moduleRaw;
|
|
300
|
+
if (wrapperLess && typeof filename === "string") {
|
|
301
|
+
runtimeRequirements.add(RuntimeGlobals.publicPath);
|
|
302
|
+
moduleRaw = `${RuntimeGlobals.publicPath} + ${toJsStringLiteral(filename)}`;
|
|
303
|
+
} else {
|
|
304
|
+
runtimeRequirements.add(RuntimeGlobals.require);
|
|
305
|
+
if (wrapperLess) runtimeRequirements.add(RuntimeGlobals.publicPath);
|
|
306
|
+
moduleRaw = runtimeTemplate.moduleRaw({
|
|
307
|
+
chunkGraph,
|
|
308
|
+
module,
|
|
309
|
+
request: dep.request,
|
|
310
|
+
runtimeRequirements,
|
|
311
|
+
weak: false
|
|
312
|
+
});
|
|
267
313
|
}
|
|
268
314
|
|
|
269
315
|
if (dep.relative) {
|
|
@@ -14,9 +14,13 @@ const URLContextDependency = require("../dependencies/URLContextDependency");
|
|
|
14
14
|
const URLDependency = require("../dependencies/URLDependency");
|
|
15
15
|
const URLParserPlugin = require("../url/URLParserPlugin");
|
|
16
16
|
|
|
17
|
-
/**
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
/**
|
|
18
|
+
* @import {
|
|
19
|
+
* JavascriptParserOptions
|
|
20
|
+
* } from "../../declarations/WebpackOptions"
|
|
21
|
+
*/
|
|
22
|
+
/** @import Compiler from "../Compiler" */
|
|
23
|
+
/** @import JavascriptParser from "../javascript/JavascriptParser" */
|
|
20
24
|
|
|
21
25
|
const PLUGIN_NAME = "URLPlugin";
|
|
22
26
|
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
const NullDependency = require("./NullDependency");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
11
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
12
|
+
/** @import Dependency from "../Dependency" */
|
|
13
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
14
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
15
15
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, Range]>} ObjectDeserializerContext */
|
|
16
16
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, Range]>} ObjectSerializerContext */
|
|
17
17
|
|
|
@@ -9,12 +9,11 @@ const Dependency = require("../Dependency");
|
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
|
10
10
|
const ModuleDependency = require("./ModuleDependency");
|
|
11
11
|
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
12
|
+
/** @import { ReferencedExports, TRANSITIVE } from "../Dependency" */
|
|
13
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
15
14
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string, string]>} ObjectDeserializerContext */
|
|
16
15
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, string, string]>} ObjectSerializerContext */
|
|
17
|
-
/** @
|
|
16
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
18
17
|
|
|
19
18
|
class WebAssemblyExportImportedDependency extends ModuleDependency {
|
|
20
19
|
/**
|
|
@@ -9,13 +9,13 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
9
9
|
const UnsupportedWebAssemblyFeatureError = require("../wasm-sync/UnsupportedWebAssemblyFeatureError");
|
|
10
10
|
const ModuleDependency = require("./ModuleDependency");
|
|
11
11
|
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
12
|
+
/** @import { ModuleImportDescription } from "@webassemblyjs/ast" */
|
|
13
|
+
/** @import { ReferencedExports } from "../Dependency" */
|
|
14
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
15
|
+
/** @import WebpackError from "../errors/WebpackError" */
|
|
16
16
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, ModuleImportDescription, false | string]>} ObjectDeserializerContext */
|
|
17
17
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, ModuleImportDescription, false | string]>} ObjectSerializerContext */
|
|
18
|
-
/** @
|
|
18
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
19
19
|
|
|
20
20
|
class WebAssemblyImportDependency extends ModuleDependency {
|
|
21
21
|
/**
|
|
@@ -10,12 +10,12 @@ const Template = require("../Template");
|
|
|
10
10
|
const makeSerializable = require("../util/makeSerializable");
|
|
11
11
|
const ModuleDependency = require("./ModuleDependency");
|
|
12
12
|
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
13
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
14
|
+
/** @import { ReferencedExports } from "../Dependency" */
|
|
15
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
16
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
17
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
18
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
19
19
|
|
|
20
20
|
class WebpackIsIncludedDependency extends ModuleDependency {
|
|
21
21
|
/**
|
|
@@ -11,13 +11,12 @@ const {
|
|
|
11
11
|
JAVASCRIPT_MODULE_TYPE_AUTO,
|
|
12
12
|
JAVASCRIPT_MODULE_TYPE_ESM
|
|
13
13
|
} = require("../ModuleTypeConstants");
|
|
14
|
-
const CommentCompilationWarning = require("../errors/CommentCompilationWarning");
|
|
15
|
-
const UnsupportedFeatureWarning = require("../errors/UnsupportedFeatureWarning");
|
|
16
14
|
const EnableChunkLoadingPlugin = require("../javascript/EnableChunkLoadingPlugin");
|
|
17
15
|
const parseResourceHintOptions = require("../prefetch/parseResourceHintOptions");
|
|
18
16
|
const { equals } = require("../util/ArrayHelpers");
|
|
19
17
|
const createHash = require("../util/createHash");
|
|
20
18
|
const { contextify } = require("../util/identifier");
|
|
19
|
+
const memoize = require("../util/memoize");
|
|
21
20
|
const EnableWasmLoadingPlugin = require("../wasm/EnableWasmLoadingPlugin");
|
|
22
21
|
const ConstDependency = require("./ConstDependency");
|
|
23
22
|
const CreateScriptUrlDependency = require("./CreateScriptUrlDependency");
|
|
@@ -28,28 +27,47 @@ const { isImportMetaFieldEnabled } = require("./ImportMetaPlugin");
|
|
|
28
27
|
const WorkerDependency = require("./WorkerDependency");
|
|
29
28
|
const WorkletDependency = require("./WorkletDependency");
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
|
|
52
|
-
|
|
30
|
+
const getUnsupportedFeatureWarning = memoize(() =>
|
|
31
|
+
require("../errors/UnsupportedFeatureWarning")
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const getCommentCompilationWarning = memoize(() =>
|
|
35
|
+
require("../errors/CommentCompilationWarning")
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @import {
|
|
40
|
+
* CallExpression,
|
|
41
|
+
* Expression,
|
|
42
|
+
* MemberExpression,
|
|
43
|
+
* ObjectExpression,
|
|
44
|
+
* Pattern,
|
|
45
|
+
* Property,
|
|
46
|
+
* SpreadElement
|
|
47
|
+
* } from "estree"
|
|
48
|
+
*/
|
|
49
|
+
/**
|
|
50
|
+
* @import {
|
|
51
|
+
* ChunkLoading,
|
|
52
|
+
* JavascriptParserOptions,
|
|
53
|
+
* OutputModule,
|
|
54
|
+
* WasmLoading,
|
|
55
|
+
* WorkerPublicPath
|
|
56
|
+
* } from "../../declarations/WebpackOptions"
|
|
57
|
+
*/
|
|
58
|
+
/** @import Compiler from "../Compiler" */
|
|
59
|
+
/** @import { DependencyLocation } from "../Dependency" */
|
|
60
|
+
/** @import { EntryOptions } from "../Entrypoint" */
|
|
61
|
+
/** @import NormalModule from "../NormalModule" */
|
|
62
|
+
/**
|
|
63
|
+
* @import JavascriptParser, {
|
|
64
|
+
* JavascriptParserState,
|
|
65
|
+
* Range
|
|
66
|
+
* } from "../javascript/JavascriptParser"
|
|
67
|
+
*/
|
|
68
|
+
/** @import Parser from "../javascript/JavascriptParser" */
|
|
69
|
+
/** @import { HarmonySettings } from "./HarmonyImportDependencyParserPlugin" */
|
|
70
|
+
/** @import { ResourceHint } from "./WorkerDependency" */
|
|
53
71
|
|
|
54
72
|
/**
|
|
55
73
|
* Returns url.
|
|
@@ -352,7 +370,7 @@ class WorkerAndWorkletPlugin {
|
|
|
352
370
|
for (const e of commentErrors) {
|
|
353
371
|
const { comment } = e;
|
|
354
372
|
parser.state.module.addWarning(
|
|
355
|
-
new
|
|
373
|
+
new (getCommentCompilationWarning())(
|
|
356
374
|
`Compilation error while processing magic comment(-s): /*${comment.value}*/: ${e.message}`,
|
|
357
375
|
parser.getLocation(comment)
|
|
358
376
|
)
|
|
@@ -367,7 +385,7 @@ class WorkerAndWorkletPlugin {
|
|
|
367
385
|
if (importOptions.webpackIgnore !== undefined) {
|
|
368
386
|
if (typeof importOptions.webpackIgnore !== "boolean") {
|
|
369
387
|
parser.state.module.addWarning(
|
|
370
|
-
new
|
|
388
|
+
new (getUnsupportedFeatureWarning())(
|
|
371
389
|
`\`webpackIgnore\` expected a boolean, but received: ${importOptions.webpackIgnore}.`,
|
|
372
390
|
parser.getLocation(expr)
|
|
373
391
|
)
|
|
@@ -382,7 +400,7 @@ class WorkerAndWorkletPlugin {
|
|
|
382
400
|
importOptions.webpackEntryOptions === null
|
|
383
401
|
) {
|
|
384
402
|
parser.state.module.addWarning(
|
|
385
|
-
new
|
|
403
|
+
new (getUnsupportedFeatureWarning())(
|
|
386
404
|
`\`webpackEntryOptions\` expected a object, but received: ${importOptions.webpackEntryOptions}.`,
|
|
387
405
|
parser.getLocation(expr)
|
|
388
406
|
)
|
|
@@ -411,7 +429,7 @@ class WorkerAndWorkletPlugin {
|
|
|
411
429
|
if (importOptions.webpackChunkName !== undefined) {
|
|
412
430
|
if (typeof importOptions.webpackChunkName !== "string") {
|
|
413
431
|
parser.state.module.addWarning(
|
|
414
|
-
new
|
|
432
|
+
new (getUnsupportedFeatureWarning())(
|
|
415
433
|
`\`webpackChunkName\` expected a string, but received: ${importOptions.webpackChunkName}.`,
|
|
416
434
|
parser.getLocation(expr)
|
|
417
435
|
)
|
|
@@ -735,6 +753,7 @@ class WorkerAndWorkletPlugin {
|
|
|
735
753
|
) {
|
|
736
754
|
return;
|
|
737
755
|
}
|
|
756
|
+
settings.used = true;
|
|
738
757
|
return handle(expr);
|
|
739
758
|
});
|
|
740
759
|
} else {
|
|
@@ -10,19 +10,17 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
10
10
|
const makeSerializable = require("../util/makeSerializable");
|
|
11
11
|
const ModuleDependency = require("./ModuleDependency");
|
|
12
12
|
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
21
|
-
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
13
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
14
|
+
/** @import AsyncDependenciesBlock from "../AsyncDependenciesBlock" */
|
|
15
|
+
/** @import { ReferencedExports, UpdateHashContext } from "../Dependency" */
|
|
16
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
17
|
+
/** @import Entrypoint from "../Entrypoint" */
|
|
18
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
19
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
22
20
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[WorkerDependencyOptions]>} ObjectDeserializerContext */
|
|
23
21
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[WorkerDependencyOptions]>} ObjectSerializerContext */
|
|
24
|
-
/** @
|
|
25
|
-
/** @
|
|
22
|
+
/** @import Hash from "../util/Hash" */
|
|
23
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
26
24
|
|
|
27
25
|
/**
|
|
28
26
|
* @typedef {object} ResourceHint
|
|
@@ -135,19 +133,21 @@ WorkerDependency.Template = class WorkerDependencyTemplate extends (
|
|
|
135
133
|
|
|
136
134
|
// For ESM module output emit the analyzable `new URL("./worker.<name>.js",
|
|
137
135
|
// import.meta.url)` form (literal specifier, no runtime helpers) so other bundlers
|
|
138
|
-
// and webpack itself can statically follow the worker.
|
|
139
|
-
// the
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
: null;
|
|
136
|
+
// and webpack itself can statically follow the worker. A resource hint doesn't
|
|
137
|
+
// block it: the `<link>` is emitted at chunk startup instead of wrapping the href,
|
|
138
|
+
// which would turn the specifier into a non-analyzable expression.
|
|
139
|
+
const analyzableSpecifier = runtimeTemplate.getAnalyzableWorkerUrl(
|
|
140
|
+
dep.options.publicPath,
|
|
141
|
+
chunk,
|
|
142
|
+
templateContext.module,
|
|
143
|
+
chunkGraph,
|
|
144
|
+
runtimeRequirements
|
|
145
|
+
);
|
|
149
146
|
|
|
150
147
|
if (analyzableSpecifier !== null) {
|
|
148
|
+
// No `<link>` helper is asked for here: this form emits no call, and
|
|
149
|
+
// `ResourceHintPlugin` — which spells the one that fires at startup —
|
|
150
|
+
// declares what that one reads while requirements are still open.
|
|
151
151
|
const urlArgs = `/* worker import */ ${analyzableSpecifier}, ${runtimeTemplate.outputOptions.importMetaName}.url`;
|
|
152
152
|
source.replace(
|
|
153
153
|
dep.range[0],
|
|
@@ -11,19 +11,17 @@ const Template = require("../Template");
|
|
|
11
11
|
const makeSerializable = require("../util/makeSerializable");
|
|
12
12
|
const ModuleDependency = require("./ModuleDependency");
|
|
13
13
|
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @
|
|
21
|
-
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
22
|
-
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
14
|
+
/** @import { ReplaceSource } from "webpack-sources" */
|
|
15
|
+
/** @import AsyncDependenciesBlock from "../AsyncDependenciesBlock" */
|
|
16
|
+
/** @import { ReferencedExports, UpdateHashContext } from "../Dependency" */
|
|
17
|
+
/** @import { DependencyTemplateContext } from "../DependencyTemplate" */
|
|
18
|
+
/** @import Entrypoint from "../Entrypoint" */
|
|
19
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
20
|
+
/** @import { Range } from "../javascript/JavascriptParser" */
|
|
23
21
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[WorkletDependencyOptions, Range]>} ObjectDeserializerContext */
|
|
24
22
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[WorkletDependencyOptions, Range]>} ObjectSerializerContext */
|
|
25
|
-
/** @
|
|
26
|
-
/** @
|
|
23
|
+
/** @import Hash from "../util/Hash" */
|
|
24
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
27
25
|
|
|
28
26
|
/**
|
|
29
27
|
* @typedef {object} WorkletDependencyOptions
|
|
@@ -142,15 +140,13 @@ WorkletDependency.Template = class WorkletDependencyTemplate extends (
|
|
|
142
140
|
// import.meta.url)` form (literal specifier, no runtime helpers) so other bundlers
|
|
143
141
|
// and webpack itself can statically follow the worklet. The worklet chunk links its
|
|
144
142
|
// splits via native `import`, so only the entry chunk is referenced.
|
|
145
|
-
const analyzableSpecifier =
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
)
|
|
153
|
-
: null;
|
|
143
|
+
const analyzableSpecifier = runtimeTemplate.getAnalyzableWorkerUrl(
|
|
144
|
+
dep.options.publicPath,
|
|
145
|
+
entryChunk,
|
|
146
|
+
module,
|
|
147
|
+
chunkGraph,
|
|
148
|
+
runtimeRequirements
|
|
149
|
+
);
|
|
154
150
|
if (analyzableSpecifier !== null) {
|
|
155
151
|
source.replace(
|
|
156
152
|
dep.callRange[0],
|
|
@@ -274,5 +270,6 @@ makeSerializable(
|
|
|
274
270
|
"webpack/lib/dependencies/WorkletDependency"
|
|
275
271
|
);
|
|
276
272
|
|
|
273
|
+
WorkletDependency.WORKLET_MODULE = WORKLET_MODULE;
|
|
274
|
+
|
|
277
275
|
module.exports = WorkletDependency;
|
|
278
|
-
module.exports.WORKLET_MODULE = WORKLET_MODULE;
|
|
@@ -5,10 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
/**
|
|
9
|
+
* @import {
|
|
10
|
+
* ArrowFunctionExpression,
|
|
11
|
+
* Expression,
|
|
12
|
+
* FunctionExpression,
|
|
13
|
+
* SpreadElement
|
|
14
|
+
* } from "estree"
|
|
15
|
+
*/
|
|
12
16
|
|
|
13
17
|
/** @typedef {{ fn: FunctionExpression | ArrowFunctionExpression, expressions: (Expression | SpreadElement)[], needThis: boolean | undefined }} FunctionExpressionResult */
|
|
14
18
|
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Alexander Akait @alexander-akait
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const Template = require("../Template");
|
|
9
|
+
|
|
10
|
+
/** @import RuntimeTemplate from "../RuntimeTemplate" */
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Wraps an import so its arguments evaluate in source order and the options are
|
|
14
|
+
* checked, rejecting rather than throwing. The last parameter holds them.
|
|
15
|
+
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
|
16
|
+
* @param {string[]} parameters parameter names, the options one last
|
|
17
|
+
* @param {string} content the import expression to return once the check passes
|
|
18
|
+
* @returns {string} the wrapping function
|
|
19
|
+
*/
|
|
20
|
+
const importOptionsCheck = (runtimeTemplate, parameters, content) => {
|
|
21
|
+
const options = parameters[parameters.length - 1];
|
|
22
|
+
return runtimeTemplate.basicFunction(parameters.join(", "), [
|
|
23
|
+
"try {",
|
|
24
|
+
Template.indent([
|
|
25
|
+
`if (${options} !== undefined) {`,
|
|
26
|
+
Template.indent([
|
|
27
|
+
`if ((typeof ${options} !== "object" && typeof ${options} !== "function") || ${options} === null) throw new TypeError("The second argument to import() must be an object");`,
|
|
28
|
+
`var a = ${options}["with"];`,
|
|
29
|
+
"if (a !== undefined) {",
|
|
30
|
+
Template.indent([
|
|
31
|
+
'if ((typeof a !== "object" && typeof a !== "function") || a === null) throw new TypeError("The \'with\' option must be an object");',
|
|
32
|
+
"for (var k = Object.keys(a), i = 0; i < k.length; i++) {",
|
|
33
|
+
Template.indent([
|
|
34
|
+
'if (typeof a[k[i]] !== "string") throw new TypeError("Import attribute values must be strings");'
|
|
35
|
+
]),
|
|
36
|
+
"}"
|
|
37
|
+
]),
|
|
38
|
+
"}"
|
|
39
|
+
]),
|
|
40
|
+
"}"
|
|
41
|
+
]),
|
|
42
|
+
"} catch (e) { return Promise.reject(e); }",
|
|
43
|
+
`return ${content};`
|
|
44
|
+
]);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
module.exports = importOptionsCheck;
|