webpack 5.107.2 → 5.108.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/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +8 -4
- package/lib/CacheFacade.js +7 -0
- package/lib/Chunk.js +4 -0
- package/lib/ChunkGraph.js +30 -9
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +2 -1
- package/lib/Compilation.js +396 -65
- package/lib/Compiler.js +25 -11
- package/lib/ConcatenationScope.js +10 -3
- package/lib/ContextExclusionPlugin.js +1 -0
- package/lib/ContextModule.js +92 -47
- package/lib/ContextReplacementPlugin.js +4 -0
- package/lib/DefinePlugin.js +89 -15
- package/lib/Dependency.js +111 -7
- package/lib/EntryOptionPlugin.js +39 -2
- package/lib/EntryPlugin.js +2 -0
- package/lib/ExportsInfo.js +314 -73
- package/lib/ExternalModule.js +82 -34
- package/lib/ExternalModuleFactoryPlugin.js +1 -0
- package/lib/ExternalsPlugin.js +1 -0
- package/lib/FileSystemInfo.js +173 -23
- package/lib/FlagAllModulesAsUsedPlugin.js +1 -5
- package/lib/FlagDependencyExportsPlugin.js +23 -0
- package/lib/FlagDependencyUsagePlugin.js +87 -5
- package/lib/FlagEntryExportAsUsedPlugin.js +2 -0
- package/lib/Generator.js +8 -0
- package/lib/HotModuleReplacementPlugin.js +65 -28
- package/lib/IgnorePlugin.js +1 -0
- package/lib/InitFragment.js +5 -0
- package/lib/JavascriptMetaInfoPlugin.js +7 -5
- package/lib/LazyBarrel.js +361 -0
- package/lib/LoaderTargetPlugin.js +1 -0
- package/lib/Module.js +21 -42
- package/lib/ModuleGraph.js +3 -2
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleTemplate.js +2 -0
- package/lib/MultiCompiler.js +2 -0
- package/lib/MultiStats.js +1 -0
- package/lib/MultiWatching.js +2 -0
- package/lib/NodeStuffPlugin.js +22 -17
- package/lib/NormalModule.js +142 -80
- package/lib/NormalModuleReplacementPlugin.js +2 -0
- package/lib/PrefetchPlugin.js +2 -0
- package/lib/ProgressPlugin.js +8 -0
- package/lib/ProvidePlugin.js +1 -0
- package/lib/RawModule.js +20 -16
- package/lib/RecordIdsPlugin.js +1 -0
- package/lib/RuntimeGlobals.js +5 -0
- package/lib/RuntimePlugin.js +58 -26
- package/lib/RuntimeTemplate.js +278 -21
- package/lib/SelfModuleFactory.js +1 -0
- package/lib/SourceMapDevToolPlugin.js +3 -5
- package/lib/Stats.js +1 -0
- package/lib/Template.js +8 -2
- package/lib/TemplatedPathPlugin.js +473 -131
- package/lib/WarnCaseSensitiveModulesPlugin.js +1 -0
- package/lib/WarnDeprecatedOptionPlugin.js +4 -0
- package/lib/WarnNoModeSetPlugin.js +1 -0
- package/lib/WatchIgnorePlugin.js +1 -0
- package/lib/Watching.js +9 -0
- package/lib/WebpackOptionsApply.js +50 -5
- package/lib/asset/AssetBytesGenerator.js +11 -3
- package/lib/asset/AssetGenerator.js +47 -22
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +14 -14
- package/lib/asset/AssetParser.js +2 -2
- package/lib/asset/AssetSourceGenerator.js +8 -0
- package/lib/asset/RawDataUrlModule.js +12 -13
- package/lib/buildChunkGraph.js +64 -7
- package/lib/bun/BunTargetPlugin.js +48 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +1 -0
- package/lib/cache/AddManagedPathsPlugin.js +3 -0
- package/lib/cache/IdleFileCachePlugin.js +4 -0
- package/lib/cache/MemoryWithGcCachePlugin.js +1 -0
- package/lib/cache/PackFileCacheStrategy.js +1 -0
- package/lib/cache/ResolverCachePlugin.js +2 -0
- package/lib/cache/mergeEtags.js +2 -0
- package/lib/cli.js +109 -19
- package/lib/config/browserslistTargetHandler.js +99 -0
- package/lib/config/defaults.js +147 -7
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +5 -0
- package/lib/config/target.js +181 -2
- package/lib/container/ContainerEntryModule.js +15 -14
- package/lib/container/ContainerExposedDependency.js +2 -2
- package/lib/container/ContainerReferencePlugin.js +1 -1
- package/lib/container/FallbackDependency.js +5 -7
- package/lib/container/FallbackModule.js +10 -9
- package/lib/container/RemoteModule.js +20 -10
- package/lib/container/RemoteRuntimeModule.js +14 -12
- package/lib/css/CssGenerator.js +353 -327
- package/lib/css/CssInjectStyleRuntimeModule.js +36 -8
- package/lib/css/CssLoadingRuntimeModule.js +118 -47
- package/lib/css/CssModule.js +52 -23
- package/lib/css/CssModulesPlugin.js +107 -124
- package/lib/css/CssParser.js +2759 -2205
- package/lib/css/syntax.js +2859 -0
- package/lib/debug/ProfilingPlugin.js +2 -0
- package/lib/deno/DenoTargetPlugin.js +47 -0
- package/lib/dependencies/AMDDefineDependency.js +22 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +1 -0
- package/lib/dependencies/AMDRequireArrayDependency.js +7 -11
- package/lib/dependencies/AMDRequireContextDependency.js +7 -11
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +1 -0
- package/lib/dependencies/AMDRequireDependency.js +24 -20
- package/lib/dependencies/CachedConstDependency.js +3 -0
- package/lib/dependencies/CommonJsDependencyHelpers.js +1 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +79 -31
- package/lib/dependencies/CommonJsExportsDependency.js +21 -16
- package/lib/dependencies/CommonJsExportsParserPlugin.js +230 -7
- package/lib/dependencies/CommonJsFullRequireDependency.js +27 -19
- package/lib/dependencies/CommonJsImportsParserPlugin.js +51 -16
- package/lib/dependencies/CommonJsPlugin.js +1 -1
- package/lib/dependencies/CommonJsRequireContextDependency.js +10 -13
- package/lib/dependencies/CommonJsRequireDependency.js +42 -11
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +22 -14
- package/lib/dependencies/ConstDependency.js +16 -11
- package/lib/dependencies/ContextDependency.js +4 -0
- package/lib/dependencies/ContextDependencyTemplateAsId.js +1 -1
- package/lib/dependencies/ContextElementDependency.js +23 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +1 -0
- package/lib/dependencies/CreateScriptUrlDependency.js +5 -7
- package/lib/dependencies/CriticalDependencyWarning.js +1 -0
- package/lib/dependencies/CssIcssExportDependency.js +512 -574
- package/lib/dependencies/CssIcssImportDependency.js +9 -9
- package/lib/dependencies/CssIcssSymbolDependency.js +22 -15
- package/lib/dependencies/CssImportDependency.js +25 -1
- package/lib/dependencies/CssUrlDependency.js +23 -14
- package/lib/dependencies/DllEntryDependency.js +9 -13
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +12 -12
- package/lib/dependencies/ExternalModuleDependency.js +8 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +7 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +13 -10
- package/lib/dependencies/HarmonyAcceptDependency.js +11 -11
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -0
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +47 -22
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +28 -2
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +46 -22
- package/lib/dependencies/HarmonyExportExpressionDependency.js +107 -30
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +109 -31
- package/lib/dependencies/HarmonyExportInitFragment.js +18 -15
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +83 -18
- package/lib/dependencies/HarmonyExports.js +4 -1
- package/lib/dependencies/HarmonyImportDependency.js +24 -0
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +110 -74
- package/lib/dependencies/HarmonyImportGuard.js +254 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +18 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +118 -14
- package/lib/dependencies/HarmonyLinkingError.js +1 -0
- package/lib/dependencies/HarmonyModulesPlugin.js +1 -0
- package/lib/dependencies/{HtmlScriptSrcDependency.js → HtmlEntryDependency.js} +261 -109
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +17 -13
- package/lib/dependencies/HtmlInlineStyleDependency.js +45 -11
- package/lib/dependencies/ImportContextDependency.js +5 -9
- package/lib/dependencies/ImportDependency.js +44 -2
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -0
- package/lib/dependencies/ImportMetaPlugin.js +74 -30
- package/lib/dependencies/ImportParserPlugin.js +19 -0
- package/lib/dependencies/ImportWeakDependency.js +1 -0
- package/lib/dependencies/JsonExportsDependency.js +9 -9
- package/lib/dependencies/LoaderImportDependency.js +1 -0
- package/lib/dependencies/LocalModule.js +11 -12
- package/lib/dependencies/LocalModuleDependency.js +11 -13
- package/lib/dependencies/ModuleDecoratorDependency.js +9 -9
- package/lib/dependencies/ModuleDependency.js +7 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +15 -11
- package/lib/dependencies/ProvidedDependency.js +31 -27
- package/lib/dependencies/PureExpressionDependency.js +7 -9
- package/lib/dependencies/RequireEnsureDependency.js +12 -13
- package/lib/dependencies/RequireHeaderDependency.js +3 -4
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +3 -0
- package/lib/dependencies/RequireResolveContextDependency.js +7 -11
- package/lib/dependencies/RequireResolveDependency.js +1 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +3 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +6 -7
- package/lib/dependencies/StaticExportsDependency.js +10 -10
- package/lib/dependencies/SystemPlugin.js +2 -0
- package/lib/dependencies/URLContextDependency.js +5 -7
- package/lib/dependencies/URLDependency.js +14 -16
- package/lib/dependencies/UnsupportedDependency.js +8 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +11 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +14 -16
- package/lib/dependencies/WebpackIsIncludedDependency.js +1 -0
- package/lib/dependencies/WorkerDependency.js +19 -8
- package/lib/dependencies/WorkerPlugin.js +22 -6
- package/lib/dependencies/processExportInfo.js +13 -11
- package/lib/dll/DelegatedModule.js +29 -15
- package/lib/dll/DelegatedModuleFactoryPlugin.js +1 -0
- package/lib/dll/DelegatedPlugin.js +1 -0
- package/lib/dll/DllEntryPlugin.js +3 -0
- package/lib/dll/DllModule.js +3 -2
- package/lib/dll/DllPlugin.js +16 -0
- package/lib/dll/DllReferencePlugin.js +3 -0
- package/lib/dll/LibManifestPlugin.js +1 -0
- package/lib/electron/ElectronTargetPlugin.js +22 -4
- package/lib/errors/ConcurrentCompilationError.js +1 -0
- package/lib/errors/HookWebpackError.js +11 -13
- package/lib/errors/IgnoreErrorModuleFactory.js +1 -0
- package/lib/errors/InvalidDependenciesModuleWarning.js +2 -0
- package/lib/errors/JSONParseError.js +9 -8
- package/lib/errors/ModuleBuildError.js +16 -13
- package/lib/errors/ModuleDependencyError.js +8 -1
- package/lib/errors/ModuleDependencyWarning.js +8 -1
- package/lib/errors/ModuleError.js +5 -11
- package/lib/errors/ModuleHashingError.js +4 -0
- package/lib/errors/ModuleNotFoundError.js +3 -0
- package/lib/errors/ModuleParseError.js +5 -11
- package/lib/errors/ModuleRestoreError.js +2 -0
- package/lib/errors/ModuleStoreError.js +3 -0
- package/lib/errors/ModuleWarning.js +7 -11
- package/lib/errors/NodeStuffInWebError.js +1 -0
- package/lib/errors/NonErrorEmittedError.js +2 -0
- package/lib/errors/UnhandledSchemeError.js +1 -0
- package/lib/esm/ModuleChunkLoadingPlugin.js +0 -1
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +28 -23
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +7 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/LazyCompilationPlugin.js +30 -6
- package/lib/html/HtmlGenerator.js +217 -23
- package/lib/html/HtmlModule.js +40 -0
- package/lib/html/HtmlModulesPlugin.js +219 -55
- package/lib/html/HtmlParser.js +1108 -1099
- package/lib/html/{walkHtmlTokens.js → syntax.js} +4701 -212
- package/lib/ids/IdHelpers.js +4 -2
- package/lib/index.js +19 -0
- package/lib/javascript/BasicEvaluatedExpression.js +1 -0
- package/lib/javascript/EnableChunkLoadingPlugin.js +1 -0
- package/lib/javascript/JavascriptGenerator.js +6 -2
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +257 -102
- package/lib/javascript/JavascriptParser.js +285 -158
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +7 -0
- package/lib/json/JsonParser.js +4 -2
- package/lib/library/AssignLibraryPlugin.js +5 -3
- package/lib/library/ExportPropertyLibraryPlugin.js +1 -0
- package/lib/library/FalseIIFEUmdWarning.js +1 -0
- package/lib/library/ModuleLibraryPlugin.js +24 -5
- package/lib/library/SystemLibraryPlugin.js +3 -3
- package/lib/node/NodeTargetPlugin.js +1 -0
- package/lib/node/NodeWatchFileSystem.js +1 -0
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +10 -9
- package/lib/node/RequireChunkLoadingRuntimeModule.js +18 -16
- package/lib/optimize/ConcatenatedModule.js +395 -77
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +372 -275
- package/lib/optimize/InnerGraphPlugin.js +196 -99
- package/lib/optimize/ModuleConcatenationPlugin.js +56 -25
- package/lib/optimize/RealContentHashPlugin.js +14 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +234 -64
- package/lib/runtime/AsyncModuleRuntimeModule.js +32 -30
- package/lib/runtime/AutoPublicPathRuntimeModule.js +11 -5
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +1 -1
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +6 -4
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +33 -4
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +82 -3
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +1 -1
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +1 -1
- package/lib/runtime/LoadScriptRuntimeModule.js +18 -13
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +39 -26
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +1 -1
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +4 -4
- package/lib/runtime/RelativeUrlRuntimeModule.js +3 -2
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +4 -3
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/HttpUriPlugin.js +3 -2
- package/lib/serialization/AggregateErrorSerializer.js +7 -6
- package/lib/serialization/ArraySerializer.js +4 -8
- package/lib/serialization/BinaryMiddleware.js +538 -468
- package/lib/serialization/DateObjectSerializer.js +2 -2
- package/lib/serialization/ErrorObjectSerializer.js +7 -6
- package/lib/serialization/MapObjectSerializer.js +5 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +7 -9
- package/lib/serialization/ObjectMiddleware.js +50 -13
- package/lib/serialization/PlainObjectSerializer.js +9 -8
- package/lib/serialization/RegExpObjectSerializer.js +2 -2
- package/lib/serialization/Serializer.js +1 -0
- package/lib/serialization/SetObjectSerializer.js +4 -8
- package/lib/sharing/ConsumeSharedModule.js +6 -7
- package/lib/sharing/ConsumeSharedPlugin.js +1 -0
- package/lib/sharing/ConsumeSharedRuntimeModule.js +46 -41
- package/lib/sharing/ProvideSharedDependency.js +30 -15
- package/lib/sharing/ProvideSharedModule.js +30 -11
- package/lib/sharing/ProvideSharedPlugin.js +4 -2
- package/lib/sharing/SharePlugin.js +3 -0
- package/lib/sharing/ShareRuntimeModule.js +18 -16
- package/lib/sharing/resolveMatchedConfigs.js +2 -1
- package/lib/sharing/utils.js +1 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +4 -6
- package/lib/stats/DefaultStatsPrinterPlugin.js +14 -14
- package/lib/stats/StatsFactory.js +11 -9
- package/lib/stats/StatsPrinter.js +9 -2
- package/lib/url/URLParserPlugin.js +5 -2
- package/lib/util/AsyncQueue.js +10 -0
- package/lib/util/LazyBucketSortedSet.js +5 -0
- package/lib/util/LazySet.js +6 -4
- package/lib/util/LocConverter.js +11 -1
- package/lib/util/Semaphore.js +1 -0
- package/lib/util/SourceProcessor.js +106 -0
- package/lib/util/TupleSet.js +1 -0
- package/lib/util/WeakTupleMap.js +27 -1
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/comparators.js +2 -2
- package/lib/util/concatenate.js +31 -7
- package/lib/util/createHash.js +0 -1
- package/lib/util/deterministicGrouping.js +19 -12
- package/lib/util/extractSourceMap.js +1 -1
- package/lib/util/findGraphRoots.js +2 -0
- package/lib/util/fs.js +10 -5
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +24 -15
- package/lib/util/identifier.js +7 -0
- package/lib/util/internalSerializables.js +11 -2
- package/lib/util/magicComment.js +42 -0
- package/lib/util/makeSerializable.js +1 -0
- package/lib/util/nonNumericOnlyHash.js +30 -1
- package/lib/util/property.js +7 -1
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +4 -4
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +1 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +1 -96
- package/lib/wasm-async/AsyncWebAssemblyParser.js +1 -1
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +1 -1
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +1 -0
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +6 -3
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +2 -1
- package/lib/wasm-sync/WebAssemblyGenerator.js +1 -0
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +2 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +10 -0
- package/lib/wasm-sync/WebAssemblyParser.js +7 -3
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +45 -39
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +11 -10
- package/package.json +35 -27
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +212 -3
- package/schemas/plugins/HtmlGeneratorOptions.check.js +1 -1
- package/schemas/plugins/HtmlParserOptions.check.d.ts +7 -0
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -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 +1456 -290
- package/lib/css/walkCssTokens.js +0 -2020
- package/lib/util/AppendOnlyStackedSet.js +0 -93
|
@@ -10,11 +10,11 @@ const NullDependency = require("./NullDependency");
|
|
|
10
10
|
|
|
11
11
|
/** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
|
|
12
12
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
13
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
14
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
15
|
-
|
|
16
13
|
/** @typedef {string[] | true} Exports */
|
|
17
14
|
|
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Exports, boolean]>} ObjectDeserializerContext */
|
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Exports, boolean]>} ObjectSerializerContext */
|
|
17
|
+
|
|
18
18
|
class StaticExportsDependency extends NullDependency {
|
|
19
19
|
/**
|
|
20
20
|
* Creates an instance of StaticExportsDependency.
|
|
@@ -23,7 +23,9 @@ class StaticExportsDependency extends NullDependency {
|
|
|
23
23
|
*/
|
|
24
24
|
constructor(exports, canMangle) {
|
|
25
25
|
super();
|
|
26
|
+
/** @type {Exports} */
|
|
26
27
|
this.exports = exports;
|
|
28
|
+
/** @type {boolean} */
|
|
27
29
|
this.canMangle = canMangle;
|
|
28
30
|
}
|
|
29
31
|
|
|
@@ -49,9 +51,7 @@ class StaticExportsDependency extends NullDependency {
|
|
|
49
51
|
* @param {ObjectSerializerContext} context context
|
|
50
52
|
*/
|
|
51
53
|
serialize(context) {
|
|
52
|
-
|
|
53
|
-
write(this.exports);
|
|
54
|
-
write(this.canMangle);
|
|
54
|
+
context.write(this.exports).write(this.canMangle);
|
|
55
55
|
super.serialize(context);
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -60,10 +60,10 @@ class StaticExportsDependency extends NullDependency {
|
|
|
60
60
|
* @param {ObjectDeserializerContext} context context
|
|
61
61
|
*/
|
|
62
62
|
deserialize(context) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
this.canMangle = read();
|
|
66
|
-
super.deserialize(
|
|
63
|
+
this.exports = context.read();
|
|
64
|
+
const c1 = context.rest;
|
|
65
|
+
this.canMangle = c1.read();
|
|
66
|
+
super.deserialize(c1.rest);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
|
|
@@ -155,8 +155,10 @@ class SystemImportDeprecationWarning extends WebpackError {
|
|
|
155
155
|
"For more info visit https://webpack.js.org/guides/code-splitting/"
|
|
156
156
|
);
|
|
157
157
|
|
|
158
|
+
/** @type {string} */
|
|
158
159
|
this.name = "SystemImportDeprecationWarning";
|
|
159
160
|
|
|
161
|
+
/** @type {DependencyLocation} */
|
|
160
162
|
this.loc = loc;
|
|
161
163
|
}
|
|
162
164
|
}
|
|
@@ -11,8 +11,8 @@ const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTempl
|
|
|
11
11
|
|
|
12
12
|
/** @typedef {import("../ContextModule").ContextOptions} ContextOptions */
|
|
13
13
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
14
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
15
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
14
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range]>} ObjectDeserializerContext */
|
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Range]>} ObjectSerializerContext */
|
|
16
16
|
|
|
17
17
|
/** @typedef {ContextOptions & { request: string }} ContextDependencyOptions */
|
|
18
18
|
|
|
@@ -42,8 +42,7 @@ class URLContextDependency extends ContextDependency {
|
|
|
42
42
|
* @param {ObjectSerializerContext} context context
|
|
43
43
|
*/
|
|
44
44
|
serialize(context) {
|
|
45
|
-
|
|
46
|
-
write(this.valueRange);
|
|
45
|
+
context.write(this.valueRange);
|
|
47
46
|
super.serialize(context);
|
|
48
47
|
}
|
|
49
48
|
|
|
@@ -52,9 +51,8 @@ class URLContextDependency extends ContextDependency {
|
|
|
52
51
|
* @param {ObjectDeserializerContext} context context
|
|
53
52
|
*/
|
|
54
53
|
deserialize(context) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
super.deserialize(context);
|
|
54
|
+
this.valueRange = context.read();
|
|
55
|
+
super.deserialize(context.rest);
|
|
58
56
|
}
|
|
59
57
|
}
|
|
60
58
|
|
|
@@ -22,8 +22,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
22
22
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
23
23
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
24
24
|
/** @typedef {import("../optimize/InnerGraph").UsedByExports} UsedByExports */
|
|
25
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
26
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
25
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range, boolean, UsedByExports | undefined]>} ObjectDeserializerContext */
|
|
26
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Range, boolean, UsedByExports | undefined]>} ObjectSerializerContext */
|
|
27
27
|
|
|
28
28
|
const getIgnoredRawDataUrlModule = memoize(
|
|
29
29
|
() => new RawDataUrlModule("data:,", "ignored-asset", "(ignored asset)")
|
|
@@ -41,6 +41,7 @@ class URLDependency extends ModuleDependency {
|
|
|
41
41
|
super(request);
|
|
42
42
|
this.range = range;
|
|
43
43
|
this.outerRange = outerRange;
|
|
44
|
+
/** @type {boolean} */
|
|
44
45
|
this.relative = relative || false;
|
|
45
46
|
/** @type {UsedByExports | undefined} */
|
|
46
47
|
this.usedByExports = undefined;
|
|
@@ -60,11 +61,7 @@ class URLDependency extends ModuleDependency {
|
|
|
60
61
|
* @returns {null | false | GetConditionFn} function to determine if the connection is active
|
|
61
62
|
*/
|
|
62
63
|
getCondition(moduleGraph) {
|
|
63
|
-
return getDependencyUsedByExportsCondition(
|
|
64
|
-
this,
|
|
65
|
-
this.usedByExports,
|
|
66
|
-
moduleGraph
|
|
67
|
-
);
|
|
64
|
+
return getDependencyUsedByExportsCondition(this, moduleGraph);
|
|
68
65
|
}
|
|
69
66
|
|
|
70
67
|
/**
|
|
@@ -81,10 +78,10 @@ class URLDependency extends ModuleDependency {
|
|
|
81
78
|
* @param {ObjectSerializerContext} context context
|
|
82
79
|
*/
|
|
83
80
|
serialize(context) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
81
|
+
context
|
|
82
|
+
.write(this.outerRange)
|
|
83
|
+
.write(this.relative)
|
|
84
|
+
.write(this.usedByExports);
|
|
88
85
|
super.serialize(context);
|
|
89
86
|
}
|
|
90
87
|
|
|
@@ -93,11 +90,12 @@ class URLDependency extends ModuleDependency {
|
|
|
93
90
|
* @param {ObjectDeserializerContext} context context
|
|
94
91
|
*/
|
|
95
92
|
deserialize(context) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
this.relative = read();
|
|
99
|
-
|
|
100
|
-
|
|
93
|
+
this.outerRange = context.read();
|
|
94
|
+
const c1 = context.rest;
|
|
95
|
+
this.relative = c1.read();
|
|
96
|
+
const c2 = c1.rest;
|
|
97
|
+
this.usedByExports = c2.read();
|
|
98
|
+
super.deserialize(c2.rest);
|
|
101
99
|
}
|
|
102
100
|
}
|
|
103
101
|
|
|
@@ -12,8 +12,8 @@ const NullDependency = require("./NullDependency");
|
|
|
12
12
|
/** @typedef {import("../Dependency")} Dependency */
|
|
13
13
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
14
14
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
15
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
16
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, Range]>} ObjectDeserializerContext */
|
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, Range]>} ObjectSerializerContext */
|
|
17
17
|
|
|
18
18
|
class UnsupportedDependency extends NullDependency {
|
|
19
19
|
/**
|
|
@@ -24,6 +24,7 @@ class UnsupportedDependency extends NullDependency {
|
|
|
24
24
|
constructor(request, range) {
|
|
25
25
|
super();
|
|
26
26
|
|
|
27
|
+
/** @type {string} */
|
|
27
28
|
this.request = request;
|
|
28
29
|
this.range = range;
|
|
29
30
|
}
|
|
@@ -33,11 +34,7 @@ class UnsupportedDependency extends NullDependency {
|
|
|
33
34
|
* @param {ObjectSerializerContext} context context
|
|
34
35
|
*/
|
|
35
36
|
serialize(context) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
write(this.request);
|
|
39
|
-
write(this.range);
|
|
40
|
-
|
|
37
|
+
context.write(this.request).write(this.range);
|
|
41
38
|
super.serialize(context);
|
|
42
39
|
}
|
|
43
40
|
|
|
@@ -46,12 +43,10 @@ class UnsupportedDependency extends NullDependency {
|
|
|
46
43
|
* @param {ObjectDeserializerContext} context context
|
|
47
44
|
*/
|
|
48
45
|
deserialize(context) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
this.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
super.deserialize(context);
|
|
46
|
+
this.request = context.read();
|
|
47
|
+
const c1 = context.rest;
|
|
48
|
+
this.range = c1.read();
|
|
49
|
+
super.deserialize(c1.rest);
|
|
55
50
|
}
|
|
56
51
|
}
|
|
57
52
|
|
|
@@ -12,8 +12,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
12
12
|
/** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
|
|
13
13
|
/** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */
|
|
14
14
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
15
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
16
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
15
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string, string]>} ObjectDeserializerContext */
|
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, string, string]>} ObjectSerializerContext */
|
|
17
17
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
18
18
|
|
|
19
19
|
class WebAssemblyExportImportedDependency extends ModuleDependency {
|
|
@@ -49,7 +49,8 @@ class WebAssemblyExportImportedDependency extends ModuleDependency {
|
|
|
49
49
|
* @returns {ReferencedExports} referenced exports
|
|
50
50
|
*/
|
|
51
51
|
getReferencedExports(moduleGraph, runtime) {
|
|
52
|
-
|
|
52
|
+
// re-exporting wasm glue needs the real binding, never an inlined literal
|
|
53
|
+
return [{ name: [this.name], canInline: false }];
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
get type() {
|
|
@@ -65,12 +66,7 @@ class WebAssemblyExportImportedDependency extends ModuleDependency {
|
|
|
65
66
|
* @param {ObjectSerializerContext} context context
|
|
66
67
|
*/
|
|
67
68
|
serialize(context) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
write(this.exportName);
|
|
71
|
-
write(this.name);
|
|
72
|
-
write(this.valueType);
|
|
73
|
-
|
|
69
|
+
context.write(this.exportName).write(this.name).write(this.valueType);
|
|
74
70
|
super.serialize(context);
|
|
75
71
|
}
|
|
76
72
|
|
|
@@ -79,13 +75,12 @@ class WebAssemblyExportImportedDependency extends ModuleDependency {
|
|
|
79
75
|
* @param {ObjectDeserializerContext} context context
|
|
80
76
|
*/
|
|
81
77
|
deserialize(context) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
this.
|
|
85
|
-
|
|
86
|
-
this.valueType = read();
|
|
87
|
-
|
|
88
|
-
super.deserialize(context);
|
|
78
|
+
this.exportName = context.read();
|
|
79
|
+
const c1 = context.rest;
|
|
80
|
+
this.name = c1.read();
|
|
81
|
+
const c2 = c1.rest;
|
|
82
|
+
this.valueType = c2.read();
|
|
83
|
+
super.deserialize(c2.rest);
|
|
89
84
|
}
|
|
90
85
|
}
|
|
91
86
|
|
|
@@ -13,8 +13,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
13
13
|
/** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
|
|
14
14
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
15
15
|
/** @typedef {import("../errors/WebpackError")} WebpackError */
|
|
16
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
17
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, ModuleImportDescription, false | string]>} ObjectDeserializerContext */
|
|
17
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, ModuleImportDescription, false | string]>} ObjectSerializerContext */
|
|
18
18
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
19
19
|
|
|
20
20
|
class WebAssemblyImportDependency extends ModuleDependency {
|
|
@@ -50,7 +50,8 @@ class WebAssemblyImportDependency extends ModuleDependency {
|
|
|
50
50
|
* @returns {ReferencedExports} referenced exports
|
|
51
51
|
*/
|
|
52
52
|
getReferencedExports(moduleGraph, runtime) {
|
|
53
|
-
|
|
53
|
+
// wasm import glue needs the real binding, never an inlined literal
|
|
54
|
+
return [{ name: [this.name], canInline: false }];
|
|
54
55
|
}
|
|
55
56
|
|
|
56
57
|
/**
|
|
@@ -79,12 +80,10 @@ class WebAssemblyImportDependency extends ModuleDependency {
|
|
|
79
80
|
* @param {ObjectSerializerContext} context context
|
|
80
81
|
*/
|
|
81
82
|
serialize(context) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
write(this.onlyDirectImport);
|
|
87
|
-
|
|
83
|
+
context
|
|
84
|
+
.write(this.name)
|
|
85
|
+
.write(this.description)
|
|
86
|
+
.write(this.onlyDirectImport);
|
|
88
87
|
super.serialize(context);
|
|
89
88
|
}
|
|
90
89
|
|
|
@@ -93,13 +92,12 @@ class WebAssemblyImportDependency extends ModuleDependency {
|
|
|
93
92
|
* @param {ObjectDeserializerContext} context context
|
|
94
93
|
*/
|
|
95
94
|
deserialize(context) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
this.
|
|
99
|
-
|
|
100
|
-
this.onlyDirectImport = read();
|
|
101
|
-
|
|
102
|
-
super.deserialize(context);
|
|
95
|
+
this.name = context.read();
|
|
96
|
+
const c1 = context.rest;
|
|
97
|
+
this.description = c1.read();
|
|
98
|
+
const c2 = c1.rest;
|
|
99
|
+
this.onlyDirectImport = c2.read();
|
|
100
|
+
super.deserialize(c2.rest);
|
|
103
101
|
}
|
|
104
102
|
}
|
|
105
103
|
|
|
@@ -18,8 +18,8 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
18
18
|
/** @typedef {import("../Entrypoint")} Entrypoint */
|
|
19
19
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
20
20
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
21
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
22
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
21
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[WorkerDependencyOptions]>} ObjectDeserializerContext */
|
|
22
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[WorkerDependencyOptions]>} ObjectSerializerContext */
|
|
23
23
|
/** @typedef {import("../util/Hash")} Hash */
|
|
24
24
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
25
25
|
|
|
@@ -28,6 +28,7 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
28
28
|
* @typedef {object} WorkerDependencyOptions
|
|
29
29
|
* @property {string=} publicPath public path for the worker
|
|
30
30
|
* @property {boolean=} needNewUrl true when need generate `new URL(...)`, otherwise false
|
|
31
|
+
* @property {Range=} workerConstructorRange range of the global `Worker` constructor, set only for the `new Worker()` global syntax that needs a node-target rewrite
|
|
31
32
|
*/
|
|
32
33
|
|
|
33
34
|
class WorkerDependency extends ModuleDependency {
|
|
@@ -84,8 +85,7 @@ class WorkerDependency extends ModuleDependency {
|
|
|
84
85
|
* @param {ObjectSerializerContext} context context
|
|
85
86
|
*/
|
|
86
87
|
serialize(context) {
|
|
87
|
-
|
|
88
|
-
write(this.options);
|
|
88
|
+
context.write(this.options);
|
|
89
89
|
super.serialize(context);
|
|
90
90
|
}
|
|
91
91
|
|
|
@@ -94,9 +94,8 @@ class WorkerDependency extends ModuleDependency {
|
|
|
94
94
|
* @param {ObjectDeserializerContext} context context
|
|
95
95
|
*/
|
|
96
96
|
deserialize(context) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
super.deserialize(context);
|
|
97
|
+
this.options = context.read();
|
|
98
|
+
super.deserialize(context.rest);
|
|
100
99
|
}
|
|
101
100
|
}
|
|
102
101
|
|
|
@@ -111,7 +110,8 @@ WorkerDependency.Template = class WorkerDependencyTemplate extends (
|
|
|
111
110
|
* @returns {void}
|
|
112
111
|
*/
|
|
113
112
|
apply(dependency, source, templateContext) {
|
|
114
|
-
const { chunkGraph, moduleGraph, runtimeRequirements } =
|
|
113
|
+
const { chunkGraph, moduleGraph, runtimeRequirements, runtimeTemplate } =
|
|
114
|
+
templateContext;
|
|
115
115
|
const dep = /** @type {WorkerDependency} */ (dependency);
|
|
116
116
|
const block = /** @type {AsyncDependenciesBlock} */ (
|
|
117
117
|
moduleGraph.getParentBlock(dependency)
|
|
@@ -138,6 +138,17 @@ WorkerDependency.Template = class WorkerDependencyTemplate extends (
|
|
|
138
138
|
dep.range[1] - 1,
|
|
139
139
|
dep.options.needNewUrl ? `new URL(${workerImportStr})` : workerImportStr
|
|
140
140
|
);
|
|
141
|
+
|
|
142
|
+
// `Worker` is global only on the web, so route node (universal or node-only) through `worker_threads`
|
|
143
|
+
const { platform } = runtimeTemplate.compilation.compiler;
|
|
144
|
+
const ctorRange = dep.options.workerConstructorRange;
|
|
145
|
+
if (
|
|
146
|
+
ctorRange &&
|
|
147
|
+
(runtimeTemplate.isUniversalTarget() || (platform.node && !platform.web))
|
|
148
|
+
) {
|
|
149
|
+
runtimeRequirements.add(RuntimeGlobals.worker);
|
|
150
|
+
source.replace(ctorRange[0], ctorRange[1] - 1, RuntimeGlobals.worker);
|
|
151
|
+
}
|
|
141
152
|
}
|
|
142
153
|
};
|
|
143
154
|
|
|
@@ -77,9 +77,13 @@ class WorkerPlugin {
|
|
|
77
77
|
* @param {WorkerPublicPath=} workerPublicPath worker public path
|
|
78
78
|
*/
|
|
79
79
|
constructor(chunkLoading, wasmLoading, module, workerPublicPath) {
|
|
80
|
+
/** @type {ChunkLoading | undefined} */
|
|
80
81
|
this._chunkLoading = chunkLoading;
|
|
82
|
+
/** @type {WasmLoading | undefined} */
|
|
81
83
|
this._wasmLoading = wasmLoading;
|
|
84
|
+
/** @type {boolean | undefined} */
|
|
82
85
|
this._module = module;
|
|
86
|
+
/** @type {string | undefined} */
|
|
83
87
|
this._workerPublicPath = workerPublicPath;
|
|
84
88
|
}
|
|
85
89
|
|
|
@@ -255,9 +259,10 @@ class WorkerPlugin {
|
|
|
255
259
|
/**
|
|
256
260
|
* Returns true when handled.
|
|
257
261
|
* @param {CallExpression} expr expression
|
|
262
|
+
* @param {boolean=} isGlobalWorker matched the global `new Worker()` syntax (eligible for universal rewrite)
|
|
258
263
|
* @returns {boolean | void} true when handled
|
|
259
264
|
*/
|
|
260
|
-
const handleNewWorker = (expr) => {
|
|
265
|
+
const handleNewWorker = (expr, isGlobalWorker = false) => {
|
|
261
266
|
if (expr.arguments.length === 0 || expr.arguments.length > 2) {
|
|
262
267
|
return;
|
|
263
268
|
}
|
|
@@ -412,13 +417,17 @@ class WorkerPlugin {
|
|
|
412
417
|
entryOptions: {
|
|
413
418
|
chunkLoading: this._chunkLoading,
|
|
414
419
|
wasmLoading: this._wasmLoading,
|
|
415
|
-
...entryOptions
|
|
420
|
+
...entryOptions,
|
|
421
|
+
worker: true
|
|
416
422
|
}
|
|
417
423
|
});
|
|
418
424
|
block.loc = expr.loc;
|
|
419
425
|
const dep = new WorkerDependency(url, range, {
|
|
420
426
|
publicPath: this._workerPublicPath,
|
|
421
|
-
needNewUrl
|
|
427
|
+
needNewUrl,
|
|
428
|
+
workerConstructorRange: isGlobalWorker
|
|
429
|
+
? /** @type {Range} */ (expr.callee.range)
|
|
430
|
+
: undefined
|
|
422
431
|
});
|
|
423
432
|
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
|
|
424
433
|
block.addDependency(dep);
|
|
@@ -454,12 +463,15 @@ class WorkerPlugin {
|
|
|
454
463
|
parser.state.module.addPresentationalDependency(dep);
|
|
455
464
|
}
|
|
456
465
|
} else if (insertType === "spread") {
|
|
466
|
+
const type = this._module ? '"module"' : "undefined";
|
|
467
|
+
// `{ ...(opts), type }` is equivalent to `Object.assign({}, opts, { type })`
|
|
468
|
+
const useSpread = compilation.outputOptions.environment.spread;
|
|
457
469
|
const dep1 = new ConstDependency(
|
|
458
|
-
"Object.assign({}, ",
|
|
470
|
+
useSpread ? "{ ...(" : "Object.assign({}, ",
|
|
459
471
|
/** @type {Range} */ (insertLocation)[0]
|
|
460
472
|
);
|
|
461
473
|
const dep2 = new ConstDependency(
|
|
462
|
-
|
|
474
|
+
useSpread ? `), type: ${type} }` : `, { type: ${type} })`,
|
|
463
475
|
/** @type {Range} */ (insertLocation)[1]
|
|
464
476
|
);
|
|
465
477
|
dep1.loc = /** @type {DependencyLocation} */ (expr.loc);
|
|
@@ -559,7 +571,11 @@ class WorkerPlugin {
|
|
|
559
571
|
return handleNewWorker(expr);
|
|
560
572
|
});
|
|
561
573
|
} else {
|
|
562
|
-
parser.hooks.new
|
|
574
|
+
parser.hooks.new
|
|
575
|
+
.for(item)
|
|
576
|
+
.tap(PLUGIN_NAME, (expr) =>
|
|
577
|
+
handleNewWorker(expr, item === "Worker")
|
|
578
|
+
);
|
|
563
579
|
}
|
|
564
580
|
}
|
|
565
581
|
};
|
|
@@ -18,7 +18,7 @@ const { UsageState } = require("../ExportsInfo");
|
|
|
18
18
|
* @param {string[]} prefix export prefix
|
|
19
19
|
* @param {ExportInfo=} exportInfo the export info
|
|
20
20
|
* @param {boolean} defaultPointsToSelf when true, using default will reference itself
|
|
21
|
-
* @param {Set<ExportInfo
|
|
21
|
+
* @param {Set<ExportInfo>=} alreadyVisited already visited export info (to handle circular reexports)
|
|
22
22
|
*/
|
|
23
23
|
const processExportInfo = (
|
|
24
24
|
runtime,
|
|
@@ -26,7 +26,7 @@ const processExportInfo = (
|
|
|
26
26
|
prefix,
|
|
27
27
|
exportInfo,
|
|
28
28
|
defaultPointsToSelf = false,
|
|
29
|
-
alreadyVisited =
|
|
29
|
+
alreadyVisited = undefined
|
|
30
30
|
) => {
|
|
31
31
|
if (!exportInfo) {
|
|
32
32
|
referencedExports.push(prefix);
|
|
@@ -34,35 +34,37 @@ const processExportInfo = (
|
|
|
34
34
|
}
|
|
35
35
|
const used = exportInfo.getUsed(runtime);
|
|
36
36
|
if (used === UsageState.Unused) return;
|
|
37
|
-
if (alreadyVisited.has(exportInfo)) {
|
|
37
|
+
if (alreadyVisited !== undefined && alreadyVisited.has(exportInfo)) {
|
|
38
38
|
referencedExports.push(prefix);
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
// Terminal case: not recursing, so no need to track visited here
|
|
42
42
|
if (
|
|
43
43
|
used !== UsageState.OnlyPropertiesUsed ||
|
|
44
44
|
!exportInfo.exportsInfo ||
|
|
45
45
|
exportInfo.exportsInfo.otherExportsInfo.getUsed(runtime) !==
|
|
46
46
|
UsageState.Unused
|
|
47
47
|
) {
|
|
48
|
-
alreadyVisited.delete(exportInfo);
|
|
49
48
|
referencedExports.push(prefix);
|
|
50
49
|
return;
|
|
51
50
|
}
|
|
51
|
+
// Only the recursive path needs the visited set; allocate it lazily
|
|
52
|
+
const visited = alreadyVisited !== undefined ? alreadyVisited : new Set();
|
|
53
|
+
visited.add(exportInfo);
|
|
52
54
|
const exportsInfo = exportInfo.exportsInfo;
|
|
53
|
-
for (const
|
|
55
|
+
for (const childExportInfo of exportsInfo.orderedExports) {
|
|
54
56
|
processExportInfo(
|
|
55
57
|
runtime,
|
|
56
58
|
referencedExports,
|
|
57
|
-
defaultPointsToSelf &&
|
|
59
|
+
defaultPointsToSelf && childExportInfo.name === "default"
|
|
58
60
|
? prefix
|
|
59
|
-
: [...prefix,
|
|
60
|
-
|
|
61
|
+
: [...prefix, childExportInfo.name],
|
|
62
|
+
childExportInfo,
|
|
61
63
|
false,
|
|
62
|
-
|
|
64
|
+
visited
|
|
63
65
|
);
|
|
64
66
|
}
|
|
65
|
-
|
|
67
|
+
visited.delete(exportInfo);
|
|
66
68
|
};
|
|
67
69
|
|
|
68
70
|
module.exports = processExportInfo;
|
|
@@ -36,8 +36,8 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
36
36
|
/** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
|
|
37
37
|
/** @typedef {import("../RequestShortener")} RequestShortener */
|
|
38
38
|
/** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
|
|
39
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
40
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
39
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[DelegatedModuleSourceRequest, DelegatedModuleData, DelegatedModuleType, string, string | Module]>} ObjectDeserializerContext */
|
|
40
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[DelegatedModuleSourceRequest, DelegatedModuleData, DelegatedModuleType, string, string | Module]>} ObjectSerializerContext */
|
|
41
41
|
/** @typedef {import("../dependencies/StaticExportsDependency").Exports} Exports */
|
|
42
42
|
/** @typedef {import("../util/Hash")} Hash */
|
|
43
43
|
/** @typedef {import("../util/fs").InputFileSystem} InputFileSystem */
|
|
@@ -72,11 +72,17 @@ class DelegatedModule extends Module {
|
|
|
72
72
|
super(JAVASCRIPT_MODULE_TYPE_DYNAMIC, null);
|
|
73
73
|
|
|
74
74
|
// Info from Factory
|
|
75
|
+
/** @type {string} */
|
|
75
76
|
this.sourceRequest = sourceRequest;
|
|
77
|
+
/** @type {ModuleId} */
|
|
76
78
|
this.request = data.id;
|
|
79
|
+
/** @type {DelegatedModuleType} */
|
|
77
80
|
this.delegationType = type;
|
|
81
|
+
/** @type {string} */
|
|
78
82
|
this.userRequest = userRequest;
|
|
83
|
+
/** @type {string | Module} */
|
|
79
84
|
this.originalRequest = originalRequest;
|
|
85
|
+
/** @type {DelegatedModuleData} */
|
|
80
86
|
this.delegateData = data;
|
|
81
87
|
|
|
82
88
|
// Build info
|
|
@@ -232,13 +238,13 @@ class DelegatedModule extends Module {
|
|
|
232
238
|
* @param {ObjectSerializerContext} context context
|
|
233
239
|
*/
|
|
234
240
|
serialize(context) {
|
|
235
|
-
const { write } = context;
|
|
236
241
|
// constructor
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
+
context
|
|
243
|
+
.write(this.sourceRequest)
|
|
244
|
+
.write(this.delegateData)
|
|
245
|
+
.write(this.delegationType)
|
|
246
|
+
.write(this.userRequest)
|
|
247
|
+
.write(this.originalRequest);
|
|
242
248
|
super.serialize(context);
|
|
243
249
|
}
|
|
244
250
|
|
|
@@ -248,15 +254,23 @@ class DelegatedModule extends Module {
|
|
|
248
254
|
* @returns {DelegatedModule} DelegatedModule
|
|
249
255
|
*/
|
|
250
256
|
static deserialize(context) {
|
|
251
|
-
const
|
|
257
|
+
const sourceRequest = context.read();
|
|
258
|
+
const c1 = context.rest;
|
|
259
|
+
const delegateData = c1.read();
|
|
260
|
+
const c2 = c1.rest;
|
|
261
|
+
const delegationType = c2.read();
|
|
262
|
+
const c3 = c2.rest;
|
|
263
|
+
const userRequest = c3.read();
|
|
264
|
+
const c4 = c3.rest;
|
|
265
|
+
const originalRequest = c4.read();
|
|
252
266
|
const obj = new DelegatedModule(
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
267
|
+
sourceRequest,
|
|
268
|
+
delegateData,
|
|
269
|
+
delegationType,
|
|
270
|
+
userRequest,
|
|
271
|
+
originalRequest
|
|
258
272
|
);
|
|
259
|
-
obj.deserialize(
|
|
273
|
+
obj.deserialize(c4.rest);
|
|
260
274
|
return obj;
|
|
261
275
|
}
|
|
262
276
|
|
|
@@ -35,6 +35,7 @@ class DelegatedModuleFactoryPlugin {
|
|
|
35
35
|
* @param {Options} options options
|
|
36
36
|
*/
|
|
37
37
|
constructor(options) {
|
|
38
|
+
/** @type {Options} */
|
|
38
39
|
this.options = options;
|
|
39
40
|
options.type = options.type || "require";
|
|
40
41
|
options.extensions = options.extensions || ["", ".js", ".json", ".wasm"];
|
|
@@ -25,8 +25,11 @@ class DllEntryPlugin {
|
|
|
25
25
|
* @param {Options} options options
|
|
26
26
|
*/
|
|
27
27
|
constructor(context, entries, options) {
|
|
28
|
+
/** @type {string} */
|
|
28
29
|
this.context = context;
|
|
30
|
+
/** @type {Entries} */
|
|
29
31
|
this.entries = entries;
|
|
32
|
+
/** @type {Options} */
|
|
30
33
|
this.options = options;
|
|
31
34
|
}
|
|
32
35
|
|