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
|
@@ -19,8 +19,8 @@ const CssImportDependency = require("./CssImportDependency");
|
|
|
19
19
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
20
20
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
21
21
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
22
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
23
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
22
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, string]>} ObjectDeserializerContext */
|
|
23
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, string]>} ObjectSerializerContext */
|
|
24
24
|
/** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
|
|
25
25
|
/** @typedef {import("../../declarations/WebpackOptions").CssGeneratorExportsConvention} CssGeneratorExportsConvention */
|
|
26
26
|
/** @typedef {import("./CssIcssExportDependency").ExportMode} ExportMode */
|
|
@@ -39,7 +39,9 @@ class CssIcssImportDependency extends CssImportDependency {
|
|
|
39
39
|
*/
|
|
40
40
|
constructor(request, range, mode, importName, localName) {
|
|
41
41
|
super(request, range, mode);
|
|
42
|
+
/** @type {string} */
|
|
42
43
|
this.importName = importName;
|
|
44
|
+
/** @type {string} */
|
|
43
45
|
this.localName = localName;
|
|
44
46
|
/** @type {undefined | string[]} */
|
|
45
47
|
this._importNameConventionNames = undefined;
|
|
@@ -130,9 +132,7 @@ class CssIcssImportDependency extends CssImportDependency {
|
|
|
130
132
|
* @param {ObjectSerializerContext} context context
|
|
131
133
|
*/
|
|
132
134
|
serialize(context) {
|
|
133
|
-
|
|
134
|
-
write(this.importName);
|
|
135
|
-
write(this.localName);
|
|
135
|
+
context.write(this.importName).write(this.localName);
|
|
136
136
|
super.serialize(context);
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -141,10 +141,10 @@ class CssIcssImportDependency extends CssImportDependency {
|
|
|
141
141
|
* @param {ObjectDeserializerContext} context context
|
|
142
142
|
*/
|
|
143
143
|
deserialize(context) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
this.localName = read();
|
|
147
|
-
super.deserialize(
|
|
144
|
+
this.importName = context.read();
|
|
145
|
+
const c1 = context.rest;
|
|
146
|
+
this.localName = c1.read();
|
|
147
|
+
super.deserialize(c1.rest);
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
|
|
@@ -18,8 +18,8 @@ const NullDependency = require("./NullDependency");
|
|
|
18
18
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
|
19
19
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
20
20
|
/** @typedef {import("../css/CssParser").Range} Range */
|
|
21
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
22
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
21
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, Range, string | undefined, string | undefined, string | undefined]>} ObjectDeserializerContext */
|
|
22
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, Range, string | undefined, string | undefined, string | undefined]>} ObjectSerializerContext */
|
|
23
23
|
/** @typedef {import("../util/Hash")} Hash */
|
|
24
24
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
25
25
|
|
|
@@ -34,10 +34,14 @@ class CssIcssSymbolDependency extends NullDependency {
|
|
|
34
34
|
*/
|
|
35
35
|
constructor(localName, range, value, importName, request) {
|
|
36
36
|
super();
|
|
37
|
+
/** @type {string} */
|
|
37
38
|
this.localName = localName;
|
|
38
39
|
this.range = range;
|
|
40
|
+
/** @type {string | undefined} */
|
|
39
41
|
this.value = value;
|
|
42
|
+
/** @type {string | undefined} */
|
|
40
43
|
this.importName = importName;
|
|
44
|
+
/** @type {string | undefined} */
|
|
41
45
|
this.request = request;
|
|
42
46
|
/** @type {undefined | string} */
|
|
43
47
|
this._hashUpdate = undefined;
|
|
@@ -68,12 +72,12 @@ class CssIcssSymbolDependency extends NullDependency {
|
|
|
68
72
|
* @param {ObjectSerializerContext} context context
|
|
69
73
|
*/
|
|
70
74
|
serialize(context) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
context
|
|
76
|
+
.write(this.localName)
|
|
77
|
+
.write(this.range)
|
|
78
|
+
.write(this.value)
|
|
79
|
+
.write(this.importName)
|
|
80
|
+
.write(this.request);
|
|
77
81
|
super.serialize(context);
|
|
78
82
|
}
|
|
79
83
|
|
|
@@ -82,13 +86,16 @@ class CssIcssSymbolDependency extends NullDependency {
|
|
|
82
86
|
* @param {ObjectDeserializerContext} context context
|
|
83
87
|
*/
|
|
84
88
|
deserialize(context) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
this.range = read();
|
|
88
|
-
|
|
89
|
-
this.
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
this.localName = context.read();
|
|
90
|
+
const c1 = context.rest;
|
|
91
|
+
this.range = c1.read();
|
|
92
|
+
const c2 = c1.rest;
|
|
93
|
+
this.value = c2.read();
|
|
94
|
+
const c3 = c2.rest;
|
|
95
|
+
this.importName = c3.read();
|
|
96
|
+
const c4 = c3.rest;
|
|
97
|
+
this.request = c4.read();
|
|
98
|
+
super.deserialize(c4.rest);
|
|
92
99
|
}
|
|
93
100
|
}
|
|
94
101
|
|
|
@@ -9,8 +9,10 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
9
9
|
const ModuleDependency = require("./ModuleDependency");
|
|
10
10
|
|
|
11
11
|
/** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
|
|
12
|
+
/** @typedef {import("../../declarations/WebpackOptions").CssParserExportType} CssParserExportType */
|
|
12
13
|
/** @typedef {import("../Dependency")} Dependency */
|
|
13
14
|
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
|
|
15
|
+
/** @typedef {import("../css/CssModule").Inheritance} Inheritance */
|
|
14
16
|
/** @typedef {import("../css/CssParser").Range} Range */
|
|
15
17
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
16
18
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
@@ -25,14 +27,32 @@ class CssImportDependency extends ModuleDependency {
|
|
|
25
27
|
* @param {string=} layer layer
|
|
26
28
|
* @param {string=} supports list of supports conditions
|
|
27
29
|
* @param {string=} media list of media conditions
|
|
30
|
+
* @param {Inheritance=} inheritance layer/supports/media chain inherited from the importing module
|
|
31
|
+
* @param {CssParserExportType=} exportType exportType inherited from the importing module
|
|
28
32
|
*/
|
|
29
|
-
constructor(
|
|
33
|
+
constructor(
|
|
34
|
+
request,
|
|
35
|
+
range,
|
|
36
|
+
mode,
|
|
37
|
+
layer,
|
|
38
|
+
supports,
|
|
39
|
+
media,
|
|
40
|
+
inheritance,
|
|
41
|
+
exportType
|
|
42
|
+
) {
|
|
30
43
|
super(request);
|
|
31
44
|
this.range = range;
|
|
32
45
|
this.mode = mode;
|
|
46
|
+
/** @type {string | undefined} */
|
|
33
47
|
this.layer = layer;
|
|
48
|
+
/** @type {string | undefined} */
|
|
34
49
|
this.supports = supports;
|
|
50
|
+
/** @type {string | undefined} */
|
|
35
51
|
this.media = media;
|
|
52
|
+
/** @type {Inheritance | undefined} */
|
|
53
|
+
this.inheritance = inheritance;
|
|
54
|
+
/** @type {CssParserExportType | undefined} */
|
|
55
|
+
this.exportType = exportType;
|
|
36
56
|
}
|
|
37
57
|
|
|
38
58
|
get type() {
|
|
@@ -88,6 +108,8 @@ class CssImportDependency extends ModuleDependency {
|
|
|
88
108
|
write(this.layer);
|
|
89
109
|
write(this.supports);
|
|
90
110
|
write(this.media);
|
|
111
|
+
write(this.inheritance);
|
|
112
|
+
write(this.exportType);
|
|
91
113
|
super.serialize(context);
|
|
92
114
|
}
|
|
93
115
|
|
|
@@ -102,6 +124,8 @@ class CssImportDependency extends ModuleDependency {
|
|
|
102
124
|
this.layer = read();
|
|
103
125
|
this.supports = read();
|
|
104
126
|
this.media = read();
|
|
127
|
+
this.inheritance = read();
|
|
128
|
+
this.exportType = read();
|
|
105
129
|
super.deserialize(context);
|
|
106
130
|
}
|
|
107
131
|
}
|
|
@@ -21,10 +21,11 @@ const ModuleDependency = require("./ModuleDependency");
|
|
|
21
21
|
/** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
|
|
22
22
|
/** @typedef {import("../Module").CodeGenerationResultData} CodeGenerationResultData */
|
|
23
23
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
24
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
25
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
24
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<["string" | "url" | "src"]>} ObjectDeserializerContext */
|
|
25
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<["string" | "url" | "src"]>} ObjectSerializerContext */
|
|
26
26
|
/** @typedef {import("../util/Hash")} Hash */
|
|
27
27
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
28
|
+
/** @typedef {import("../NormalModule").NormalModuleBuildInfo} NormalModuleBuildInfo */
|
|
28
29
|
|
|
29
30
|
const getIgnoredRawDataUrlModule = memoize(
|
|
30
31
|
() => new RawDataUrlModule("data:,", "ignored-asset", "(ignored asset)")
|
|
@@ -75,7 +76,9 @@ class CssUrlDependency extends ModuleDependency {
|
|
|
75
76
|
const { chunkGraph } = context;
|
|
76
77
|
const module = chunkGraph.moduleGraph.getModule(this);
|
|
77
78
|
if (!module) return;
|
|
78
|
-
const buildInfo = /** @type {
|
|
79
|
+
const buildInfo = /** @type {NormalModuleBuildInfo | undefined} */ (
|
|
80
|
+
module.buildInfo
|
|
81
|
+
);
|
|
79
82
|
if (buildInfo && buildInfo.hash) {
|
|
80
83
|
hash.update(/** @type {string} */ (buildInfo.hash));
|
|
81
84
|
}
|
|
@@ -86,8 +89,7 @@ class CssUrlDependency extends ModuleDependency {
|
|
|
86
89
|
* @param {ObjectSerializerContext} context context
|
|
87
90
|
*/
|
|
88
91
|
serialize(context) {
|
|
89
|
-
|
|
90
|
-
write(this.urlType);
|
|
92
|
+
context.write(this.urlType);
|
|
91
93
|
super.serialize(context);
|
|
92
94
|
}
|
|
93
95
|
|
|
@@ -96,12 +98,22 @@ class CssUrlDependency extends ModuleDependency {
|
|
|
96
98
|
* @param {ObjectDeserializerContext} context context
|
|
97
99
|
*/
|
|
98
100
|
deserialize(context) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
super.deserialize(context);
|
|
101
|
+
this.urlType = context.read();
|
|
102
|
+
super.deserialize(context.rest);
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
105
|
|
|
106
|
+
// Hoisted out of `cssEscapeString` so the patterns + replacer aren't
|
|
107
|
+
// recompiled/reallocated per `url()` / `src()` reference at code-gen.
|
|
108
|
+
const CSS_ESCAPE_UNQUOTED_REGEXP = /[\n\t ()'"\\]/g;
|
|
109
|
+
const CSS_ESCAPE_DOUBLE_REGEXP = /[\n"\\]/g;
|
|
110
|
+
const CSS_ESCAPE_SINGLE_REGEXP = /[\n'\\]/g;
|
|
111
|
+
/**
|
|
112
|
+
* @param {string} m matched character
|
|
113
|
+
* @returns {string} the character backslash-escaped
|
|
114
|
+
*/
|
|
115
|
+
const cssEscapeReplacer = (m) => `\\${m}`;
|
|
116
|
+
|
|
105
117
|
/**
|
|
106
118
|
* Returns string in quotes if needed.
|
|
107
119
|
* @param {string} str string
|
|
@@ -130,11 +142,11 @@ const cssEscapeString = (str) => {
|
|
|
130
142
|
}
|
|
131
143
|
}
|
|
132
144
|
if (countWhiteOrBracket < 2) {
|
|
133
|
-
return str.replace(
|
|
145
|
+
return str.replace(CSS_ESCAPE_UNQUOTED_REGEXP, cssEscapeReplacer);
|
|
134
146
|
} else if (countQuotation <= countApostrophe) {
|
|
135
|
-
return `"${str.replace(
|
|
147
|
+
return `"${str.replace(CSS_ESCAPE_DOUBLE_REGEXP, cssEscapeReplacer)}"`;
|
|
136
148
|
}
|
|
137
|
-
return `'${str.replace(
|
|
149
|
+
return `'${str.replace(CSS_ESCAPE_SINGLE_REGEXP, cssEscapeReplacer)}'`;
|
|
138
150
|
};
|
|
139
151
|
|
|
140
152
|
CssUrlDependency.Template = class CssUrlDependencyTemplate extends (
|
|
@@ -216,7 +228,4 @@ CssUrlDependency.Template = class CssUrlDependencyTemplate extends (
|
|
|
216
228
|
|
|
217
229
|
makeSerializable(CssUrlDependency, "webpack/lib/dependencies/CssUrlDependency");
|
|
218
230
|
|
|
219
|
-
CssUrlDependency.PUBLIC_PATH_AUTO = "__WEBPACK_CSS_PUBLIC_PATH_AUTO__";
|
|
220
|
-
CssUrlDependency.PUBLIC_PATH_FULL_HASH = "__WEBPACK_CSS_PUBLIC_PATH_FULL_HASH_";
|
|
221
|
-
|
|
222
231
|
module.exports = CssUrlDependency;
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
const Dependency = require("../Dependency");
|
|
9
9
|
const makeSerializable = require("../util/makeSerializable");
|
|
10
10
|
|
|
11
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
12
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
13
11
|
/** @typedef {import("./EntryDependency")} EntryDependency */
|
|
12
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[EntryDependency[], string]>} ObjectDeserializerContext */
|
|
13
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[EntryDependency[], string]>} ObjectSerializerContext */
|
|
14
14
|
|
|
15
15
|
class DllEntryDependency extends Dependency {
|
|
16
16
|
/**
|
|
@@ -21,7 +21,9 @@ class DllEntryDependency extends Dependency {
|
|
|
21
21
|
constructor(dependencies, name) {
|
|
22
22
|
super();
|
|
23
23
|
|
|
24
|
+
/** @type {EntryDependency[]} */
|
|
24
25
|
this.dependencies = dependencies;
|
|
26
|
+
/** @type {string} */
|
|
25
27
|
this.name = name;
|
|
26
28
|
}
|
|
27
29
|
|
|
@@ -34,11 +36,7 @@ class DllEntryDependency extends Dependency {
|
|
|
34
36
|
* @param {ObjectSerializerContext} context context
|
|
35
37
|
*/
|
|
36
38
|
serialize(context) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
write(this.dependencies);
|
|
40
|
-
write(this.name);
|
|
41
|
-
|
|
39
|
+
context.write(this.dependencies).write(this.name);
|
|
42
40
|
super.serialize(context);
|
|
43
41
|
}
|
|
44
42
|
|
|
@@ -47,12 +45,10 @@ class DllEntryDependency extends Dependency {
|
|
|
47
45
|
* @param {ObjectDeserializerContext} context context
|
|
48
46
|
*/
|
|
49
47
|
deserialize(context) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
super.deserialize(context);
|
|
48
|
+
this.dependencies = context.read();
|
|
49
|
+
const c1 = context.rest;
|
|
50
|
+
this.name = c1.read();
|
|
51
|
+
super.deserialize(c1.rest);
|
|
56
52
|
}
|
|
57
53
|
}
|
|
58
54
|
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
Author Natsu @xiaoxiaojx
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
const InitFragment = require("../InitFragment");
|
|
9
|
+
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
10
|
+
|
|
11
|
+
/** @typedef {import("webpack-sources").Source} Source */
|
|
12
|
+
/** @typedef {import("../Generator").GenerateContext} GenerateContext */
|
|
13
|
+
/** @typedef {import("../ExportsInfo").UsedName} UsedName */
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @typedef {object} ExportBinding
|
|
17
|
+
* @property {UsedName} name the used export name
|
|
18
|
+
* @property {string} value the variable expression
|
|
19
|
+
* @property {"getter" | "value"=} bindingType "value" for value binding, defaults to "getter"
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Init fragment for const export bindings.
|
|
24
|
+
* Generates a flat-array __webpack_require__.d() call.
|
|
25
|
+
* Getter bindings: "key", () => expr (2 items).
|
|
26
|
+
* Value bindings: "key", 0, expr (3 items, 0 is sentinel).
|
|
27
|
+
*
|
|
28
|
+
* Uses a separate key ("harmony-export-bindings") from HarmonyExportInitFragment
|
|
29
|
+
* so the two fragment types do not merge and cannot interfere with each
|
|
30
|
+
* other's placement (top vs bottom).
|
|
31
|
+
* @extends {InitFragment<GenerateContext>} Context
|
|
32
|
+
*/
|
|
33
|
+
class ExportBindingInitFragment extends InitFragment {
|
|
34
|
+
/**
|
|
35
|
+
* @param {string} exportsArgument the exports identifier
|
|
36
|
+
* @param {ExportBinding[]} bindings list of export bindings
|
|
37
|
+
* @param {boolean=} placeAtEnd when true, place the d() call at the end of the module
|
|
38
|
+
*/
|
|
39
|
+
constructor(exportsArgument, bindings, placeAtEnd = false) {
|
|
40
|
+
super(
|
|
41
|
+
undefined,
|
|
42
|
+
InitFragment.STAGE_HARMONY_EXPORTS,
|
|
43
|
+
1,
|
|
44
|
+
"harmony-export-bindings"
|
|
45
|
+
);
|
|
46
|
+
/** @type {string} */
|
|
47
|
+
this.exportsArgument = exportsArgument;
|
|
48
|
+
/** @type {ExportBinding[]} */
|
|
49
|
+
this.bindings = bindings;
|
|
50
|
+
/** @type {boolean} */
|
|
51
|
+
this.placeAtEnd = placeAtEnd;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @param {ExportBindingInitFragment[]} fragments all fragments to merge
|
|
56
|
+
* @returns {ExportBindingInitFragment} merged fragment
|
|
57
|
+
*/
|
|
58
|
+
mergeAll(fragments) {
|
|
59
|
+
/** @type {ExportBinding[]} */
|
|
60
|
+
const bindings = [];
|
|
61
|
+
/** @type {Set<string>} */
|
|
62
|
+
const seenNames = new Set();
|
|
63
|
+
let placeAtEnd = false;
|
|
64
|
+
|
|
65
|
+
for (const fragment of fragments) {
|
|
66
|
+
for (const binding of fragment.bindings) {
|
|
67
|
+
const key = /** @type {string} */ (binding.name);
|
|
68
|
+
if (!seenNames.has(key)) {
|
|
69
|
+
seenNames.add(key);
|
|
70
|
+
bindings.push(binding);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (fragment.placeAtEnd) placeAtEnd = true;
|
|
74
|
+
}
|
|
75
|
+
return new ExportBindingInitFragment(
|
|
76
|
+
this.exportsArgument,
|
|
77
|
+
bindings,
|
|
78
|
+
placeAtEnd
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @param {ExportBindingInitFragment} other other
|
|
84
|
+
* @returns {ExportBindingInitFragment} merged result
|
|
85
|
+
*/
|
|
86
|
+
merge(other) {
|
|
87
|
+
/** @type {ExportBinding[]} */
|
|
88
|
+
const bindings = [];
|
|
89
|
+
/** @type {Set<string>} */
|
|
90
|
+
const seenNames = new Set();
|
|
91
|
+
for (const binding of other.bindings) {
|
|
92
|
+
const key = /** @type {string} */ (binding.name);
|
|
93
|
+
seenNames.add(key);
|
|
94
|
+
bindings.push(binding);
|
|
95
|
+
}
|
|
96
|
+
for (const binding of this.bindings) {
|
|
97
|
+
const key = /** @type {string} */ (binding.name);
|
|
98
|
+
if (!seenNames.has(key)) {
|
|
99
|
+
seenNames.add(key);
|
|
100
|
+
bindings.push(binding);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return new ExportBindingInitFragment(
|
|
104
|
+
this.exportsArgument,
|
|
105
|
+
bindings,
|
|
106
|
+
this.placeAtEnd || other.placeAtEnd
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @param {GenerateContext} context context
|
|
112
|
+
* @returns {string} the d() call or empty string
|
|
113
|
+
*/
|
|
114
|
+
_generateDefinition({ runtimeTemplate, runtimeRequirements }) {
|
|
115
|
+
if (this.bindings.length === 0) return "";
|
|
116
|
+
|
|
117
|
+
const sorted = [...this.bindings].sort((a, b) =>
|
|
118
|
+
/** @type {string} */ (a.name) < /** @type {string} */ (b.name) ? -1 : 1
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
/** @type {string[]} */
|
|
122
|
+
const items = [];
|
|
123
|
+
for (const binding of sorted) {
|
|
124
|
+
const key = JSON.stringify(/** @type {string} */ (binding.name));
|
|
125
|
+
if (binding.bindingType === "value") {
|
|
126
|
+
items.push(`\n/* harmony export */ ${key}, 0, ${binding.value}`);
|
|
127
|
+
} else {
|
|
128
|
+
items.push(
|
|
129
|
+
`\n/* harmony export */ ${key}, ${runtimeTemplate.returningFunction(binding.value)}`
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
runtimeRequirements.add(RuntimeGlobals.exports);
|
|
135
|
+
runtimeRequirements.add(RuntimeGlobals.definePropertyGetters);
|
|
136
|
+
return `/* harmony export */ ${RuntimeGlobals.definePropertyGetters}(${
|
|
137
|
+
this.exportsArgument
|
|
138
|
+
}, [${items.join(",")}\n/* harmony export */ ]);\n`;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Returns the source code that will be included as initialization code.
|
|
143
|
+
* @param {GenerateContext} context context
|
|
144
|
+
* @returns {string | Source | undefined} the source code that will be included as initialization code
|
|
145
|
+
*/
|
|
146
|
+
getContent(context) {
|
|
147
|
+
if (this.placeAtEnd) return undefined;
|
|
148
|
+
return this._generateDefinition(context);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Returns the source code that will be included at the end of the module.
|
|
153
|
+
* @param {GenerateContext} context context
|
|
154
|
+
* @returns {string | Source | undefined} the source code that will be included at the end of the module
|
|
155
|
+
*/
|
|
156
|
+
getEndContent(context) {
|
|
157
|
+
if (!this.placeAtEnd) return undefined;
|
|
158
|
+
const definePart = this._generateDefinition(context);
|
|
159
|
+
if (!definePart) return undefined;
|
|
160
|
+
return `\n${definePart}`;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
module.exports = ExportBindingInitFragment;
|
|
@@ -16,9 +16,9 @@ const NullDependency = require("./NullDependency");
|
|
|
16
16
|
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
17
17
|
/** @typedef {import("../ExportsInfo").ExportInfoName} ExportInfoName */
|
|
18
18
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
19
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
20
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
21
19
|
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
20
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[Range, ExportInfoName[] | null, string | null]>} ObjectDeserializerContext */
|
|
21
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[Range, ExportInfoName[] | null, string | null]>} ObjectSerializerContext */
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Defines the sortable set type used by this module.
|
|
@@ -99,7 +99,9 @@ class ExportsInfoDependency extends NullDependency {
|
|
|
99
99
|
constructor(range, exportName, property) {
|
|
100
100
|
super();
|
|
101
101
|
this.range = range;
|
|
102
|
+
/** @type {string[] | null} */
|
|
102
103
|
this.exportName = exportName;
|
|
104
|
+
/** @type {string | null} */
|
|
103
105
|
this.property = property;
|
|
104
106
|
}
|
|
105
107
|
|
|
@@ -108,10 +110,7 @@ class ExportsInfoDependency extends NullDependency {
|
|
|
108
110
|
* @param {ObjectSerializerContext} context context
|
|
109
111
|
*/
|
|
110
112
|
serialize(context) {
|
|
111
|
-
|
|
112
|
-
write(this.range);
|
|
113
|
-
write(this.exportName);
|
|
114
|
-
write(this.property);
|
|
113
|
+
context.write(this.range).write(this.exportName).write(this.property);
|
|
115
114
|
super.serialize(context);
|
|
116
115
|
}
|
|
117
116
|
|
|
@@ -121,12 +120,13 @@ class ExportsInfoDependency extends NullDependency {
|
|
|
121
120
|
* @returns {ExportsInfoDependency} ExportsInfoDependency
|
|
122
121
|
*/
|
|
123
122
|
static deserialize(context) {
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
);
|
|
129
|
-
obj
|
|
123
|
+
const range = context.read();
|
|
124
|
+
const c1 = context.rest;
|
|
125
|
+
const exportName = c1.read();
|
|
126
|
+
const c2 = c1.rest;
|
|
127
|
+
const property = c2.read();
|
|
128
|
+
const obj = new ExportsInfoDependency(range, exportName, property);
|
|
129
|
+
obj.deserialize(c2.rest);
|
|
130
130
|
return obj;
|
|
131
131
|
}
|
|
132
132
|
}
|
|
@@ -14,8 +14,8 @@ const ExternalModuleInitFragment = require("./ExternalModuleInitFragment");
|
|
|
14
14
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
15
15
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
16
16
|
/** @typedef {import("../dependencies/ExternalModuleInitFragment").ArrayImportSpecifiers} ArrayImportSpecifiers */
|
|
17
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
18
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
17
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<(string | ArrayImportSpecifiers | undefined)[]>} ObjectDeserializerContext */
|
|
18
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<(string | ArrayImportSpecifiers | undefined)[]>} ObjectSerializerContext */
|
|
19
19
|
|
|
20
20
|
class ExternalModuleDependency extends CachedConstDependency {
|
|
21
21
|
/**
|
|
@@ -39,8 +39,11 @@ class ExternalModuleDependency extends CachedConstDependency {
|
|
|
39
39
|
) {
|
|
40
40
|
super(expression, range, identifier, place);
|
|
41
41
|
|
|
42
|
+
/** @type {string} */
|
|
42
43
|
this.importedModule = module;
|
|
44
|
+
/** @type {ArrayImportSpecifiers} */
|
|
43
45
|
this.specifiers = importSpecifiers;
|
|
46
|
+
/** @type {string | undefined} */
|
|
44
47
|
this.default = defaultImport;
|
|
45
48
|
}
|
|
46
49
|
|
|
@@ -73,9 +76,9 @@ class ExternalModuleDependency extends CachedConstDependency {
|
|
|
73
76
|
deserialize(context) {
|
|
74
77
|
super.deserialize(context);
|
|
75
78
|
const { read } = context;
|
|
76
|
-
this.importedModule = read();
|
|
77
|
-
this.specifiers = read();
|
|
78
|
-
this.default = read();
|
|
79
|
+
this.importedModule = /** @type {string} */ (read());
|
|
80
|
+
this.specifiers = /** @type {ArrayImportSpecifiers} */ (read());
|
|
81
|
+
this.default = /** @type {string | undefined} */ (read());
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
84
|
|
|
@@ -10,11 +10,11 @@ const makeSerializable = require("../util/makeSerializable");
|
|
|
10
10
|
|
|
11
11
|
/** @typedef {import("webpack-sources").Source} Source */
|
|
12
12
|
/** @typedef {import("../Generator").GenerateContext} GenerateContext */
|
|
13
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
14
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
15
13
|
/** @typedef {{ name: string, value?: string }[]} ArrayImportSpecifiers */
|
|
16
14
|
/** @typedef {Set<string>} ImportSpecifier */
|
|
17
15
|
/** @typedef {Map<string, ImportSpecifier>} ImportSpecifiers */
|
|
16
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<(string | ArrayImportSpecifiers | ImportSpecifiers | undefined)[]>} ObjectDeserializerContext */
|
|
17
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<(string | ArrayImportSpecifiers | ImportSpecifiers | undefined)[]>} ObjectSerializerContext */
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* @extends {InitFragment<GenerateContext>}
|
|
@@ -32,6 +32,7 @@ class ExternalModuleInitFragment extends InitFragment {
|
|
|
32
32
|
0,
|
|
33
33
|
`external module imports|${importedModule}|${defaultImport || "null"}`
|
|
34
34
|
);
|
|
35
|
+
/** @type {string} */
|
|
35
36
|
this.importedModule = importedModule;
|
|
36
37
|
if (Array.isArray(specifiers)) {
|
|
37
38
|
/** @type {ImportSpecifiers} */
|
|
@@ -48,6 +49,7 @@ class ExternalModuleInitFragment extends InitFragment {
|
|
|
48
49
|
} else {
|
|
49
50
|
this.specifiers = specifiers;
|
|
50
51
|
}
|
|
52
|
+
/** @type {string | undefined} */
|
|
51
53
|
this.defaultImport = defaultImport;
|
|
52
54
|
}
|
|
53
55
|
|
|
@@ -126,9 +128,9 @@ class ExternalModuleInitFragment extends InitFragment {
|
|
|
126
128
|
deserialize(context) {
|
|
127
129
|
super.deserialize(context);
|
|
128
130
|
const { read } = context;
|
|
129
|
-
this.importedModule = read();
|
|
130
|
-
this.specifiers = read();
|
|
131
|
-
this.defaultImport = read();
|
|
131
|
+
this.importedModule = /** @type {string} */ (read());
|
|
132
|
+
this.specifiers = /** @type {ImportSpecifiers} */ (read());
|
|
133
|
+
this.defaultImport = /** @type {string | undefined} */ (read());
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
136
|
|
|
@@ -15,8 +15,8 @@ const NullDependency = require("./NullDependency");
|
|
|
15
15
|
/** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */
|
|
16
16
|
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
|
|
17
17
|
/** @typedef {import("../dependencies/ExternalModuleInitFragment").ArrayImportSpecifiers} ArrayImportSpecifiers */
|
|
18
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
|
|
19
|
-
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
|
|
18
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[string, ArrayImportSpecifiers, string | undefined]>} ObjectDeserializerContext */
|
|
19
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[string, ArrayImportSpecifiers, string | undefined]>} ObjectSerializerContext */
|
|
20
20
|
|
|
21
21
|
class ExternalModuleInitFragmentDependency extends NullDependency {
|
|
22
22
|
/**
|
|
@@ -27,8 +27,11 @@ class ExternalModuleInitFragmentDependency extends NullDependency {
|
|
|
27
27
|
*/
|
|
28
28
|
constructor(module, importSpecifiers, defaultImport) {
|
|
29
29
|
super();
|
|
30
|
+
/** @type {string} */
|
|
30
31
|
this.importedModule = module;
|
|
32
|
+
/** @type {ArrayImportSpecifiers} */
|
|
31
33
|
this.specifiers = importSpecifiers;
|
|
34
|
+
/** @type {string | undefined} */
|
|
32
35
|
this.default = defaultImport;
|
|
33
36
|
}
|
|
34
37
|
|
|
@@ -37,10 +40,10 @@ class ExternalModuleInitFragmentDependency extends NullDependency {
|
|
|
37
40
|
* @param {ObjectSerializerContext} context context
|
|
38
41
|
*/
|
|
39
42
|
serialize(context) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
context
|
|
44
|
+
.write(this.importedModule)
|
|
45
|
+
.write(this.specifiers)
|
|
46
|
+
.write(this.default);
|
|
44
47
|
}
|
|
45
48
|
|
|
46
49
|
/**
|
|
@@ -48,10 +51,10 @@ class ExternalModuleInitFragmentDependency extends NullDependency {
|
|
|
48
51
|
* @param {ObjectDeserializerContext} context context
|
|
49
52
|
*/
|
|
50
53
|
deserialize(context) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
this.specifiers = read();
|
|
54
|
-
this.default = read();
|
|
54
|
+
this.importedModule = context.read();
|
|
55
|
+
const c1 = context.rest;
|
|
56
|
+
this.specifiers = c1.read();
|
|
57
|
+
this.default = c1.rest.read();
|
|
55
58
|
}
|
|
56
59
|
}
|
|
57
60
|
|