@depup/webpack 5.106.1-depup.0 → 5.109.2-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -11
- package/bin/webpack.js +12 -0
- package/changes.json +16 -24
- package/hot/dev-server.js +2 -0
- package/lib/APIPlugin.js +60 -35
- package/lib/AsyncDependenciesBlock.js +3 -0
- package/lib/AutomaticPrefetchPlugin.js +6 -1
- package/lib/BannerPlugin.js +13 -5
- package/lib/Cache.js +27 -5
- package/lib/CacheFacade.js +41 -0
- package/lib/Chunk.js +71 -25
- package/lib/ChunkGraph.js +153 -19
- package/lib/ChunkGroup.js +115 -28
- package/lib/ChunkTemplate.js +9 -0
- package/lib/CircularModulesPlugin.js +190 -0
- package/lib/CleanPlugin.js +27 -28
- package/lib/CodeGenerationResults.js +19 -0
- package/lib/CompatibilityPlugin.js +85 -37
- package/lib/Compilation.js +656 -112
- package/lib/Compiler.js +109 -35
- package/lib/ConcatenationScope.js +34 -4
- package/lib/ConditionalInitFragment.js +6 -0
- package/lib/ConstPlugin.js +15 -12
- package/lib/ContextExclusionPlugin.js +3 -1
- package/lib/ContextModule.js +345 -55
- package/lib/ContextModuleFactory.js +193 -51
- package/lib/ContextReplacementPlugin.js +8 -1
- package/lib/DefinePlugin.js +537 -139
- package/lib/DependenciesBlock.js +6 -1
- package/lib/Dependency.js +159 -11
- package/lib/DependencyTemplate.js +7 -1
- package/lib/DependencyTemplates.js +4 -0
- package/lib/DotenvPlugin.js +3 -0
- package/lib/DynamicEntryPlugin.js +3 -1
- package/lib/EntryOptionPlugin.js +42 -2
- package/lib/EntryPlugin.js +4 -1
- package/lib/Entrypoint.js +5 -1
- package/lib/EnvironmentPlugin.js +3 -2
- package/lib/ErrorHelpers.js +7 -0
- package/lib/EvalDevToolModulePlugin.js +3 -1
- package/lib/EvalSourceMapDevToolPlugin.js +11 -11
- package/lib/ExportsInfo.js +421 -113
- package/lib/ExportsInfoApiPlugin.js +4 -3
- package/lib/ExternalModule.js +381 -80
- package/lib/ExternalModuleFactoryPlugin.js +75 -3
- package/lib/ExternalsPlugin.js +3 -1
- package/lib/FileSystemInfo.js +701 -175
- package/lib/FlagAllModulesAsUsedPlugin.js +3 -6
- package/lib/FlagDependencyExportsPlugin.js +82 -9
- package/lib/FlagDependencyUsagePlugin.js +115 -8
- package/lib/FlagEntryExportAsUsedPlugin.js +4 -1
- package/lib/Generator.js +24 -3
- package/lib/HotModuleReplacementPlugin.js +110 -44
- package/lib/IgnorePlugin.js +5 -2
- package/lib/IgnoreWarningsPlugin.js +2 -1
- package/lib/InitFragment.js +33 -30
- package/lib/JavascriptMetaInfoPlugin.js +9 -6
- package/lib/LazyBarrel.js +389 -0
- package/lib/LibraryTemplatePlugin.js +2 -1
- package/lib/LoaderOptionsPlugin.js +3 -1
- package/lib/LoaderTargetPlugin.js +3 -1
- package/lib/MainTemplate.js +15 -0
- package/lib/ManifestPlugin.js +9 -2
- package/lib/Module.js +121 -57
- package/lib/ModuleFactory.js +6 -1
- package/lib/ModuleFilenameHelpers.js +18 -4
- package/lib/ModuleGraph.js +69 -2
- package/lib/ModuleGraphConnection.js +9 -0
- package/lib/ModuleInfoHeaderPlugin.js +5 -0
- package/lib/ModuleNotFoundError.js +3 -83
- package/lib/ModuleProfile.js +27 -1
- package/lib/ModuleSourceTypeConstants.js +52 -19
- package/lib/ModuleTemplate.js +10 -0
- package/lib/ModuleTypeConstants.js +20 -4
- package/lib/MultiCompiler.js +59 -4
- package/lib/MultiStats.js +9 -0
- package/lib/MultiWatching.js +6 -0
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +78 -46
- package/lib/NormalModule.js +519 -206
- package/lib/NormalModuleFactory.js +156 -31
- package/lib/NormalModuleReplacementPlugin.js +3 -1
- package/lib/NullFactory.js +1 -0
- package/lib/OptionsApply.js +1 -0
- package/lib/Parser.js +3 -1
- package/lib/PlatformPlugin.js +2 -1
- package/lib/PrefetchPlugin.js +4 -1
- package/lib/ProgressPlugin.js +351 -161
- package/lib/ProvidePlugin.js +6 -3
- package/lib/RawModule.js +32 -16
- package/lib/RecordIdsPlugin.js +9 -0
- package/lib/RequestShortener.js +8 -0
- package/lib/ResolverFactory.js +5 -0
- package/lib/RuntimeGlobals.js +58 -5
- package/lib/RuntimeModule.js +22 -7
- package/lib/RuntimePlugin.js +123 -118
- package/lib/RuntimeTemplate.js +616 -37
- package/lib/SelfModuleFactory.js +3 -0
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +2 -0
- package/lib/SourceMapDevToolPlugin.js +341 -63
- package/lib/Stats.js +6 -0
- package/lib/Template.js +52 -6
- package/lib/TemplatedPathPlugin.js +505 -138
- package/lib/UseStrictPlugin.js +3 -2
- package/lib/WarnCaseSensitiveModulesPlugin.js +72 -3
- package/lib/WarnDeprecatedOptionPlugin.js +6 -2
- package/lib/WarnNoModeSetPlugin.js +18 -2
- package/lib/WatchIgnorePlugin.js +5 -1
- package/lib/Watching.js +25 -3
- package/lib/WebpackError.js +3 -74
- package/lib/WebpackIsIncludedPlugin.js +4 -2
- package/lib/WebpackOptionsApply.js +88 -25
- package/lib/WebpackOptionsDefaulter.js +1 -0
- package/lib/asset/AssetBytesGenerator.js +28 -10
- package/lib/asset/AssetBytesParser.js +1 -0
- package/lib/asset/AssetGenerator.js +199 -60
- package/lib/asset/AssetModule.js +47 -0
- package/lib/asset/AssetModulesPlugin.js +115 -24
- package/lib/asset/AssetParser.js +4 -2
- package/lib/asset/AssetSourceGenerator.js +26 -8
- package/lib/asset/AssetSourceParser.js +1 -0
- package/lib/asset/RawDataUrlModule.js +23 -13
- package/lib/asset/WebManifestGenerator.js +164 -0
- package/lib/asset/WebManifestParser.js +130 -0
- package/lib/async-modules/AsyncModuleHelpers.js +1 -0
- package/lib/async-modules/AwaitDependenciesInitFragment.js +18 -4
- package/lib/async-modules/InferAsyncModulesPlugin.js +1 -1
- package/lib/async-modules/isGeneratorLowered.js +26 -0
- package/lib/buildChunkGraph.js +107 -15
- package/lib/bun/BunTargetPlugin.js +42 -0
- package/lib/cache/AddBuildDependenciesPlugin.js +3 -1
- package/lib/cache/AddManagedPathsPlugin.js +5 -1
- package/lib/cache/IdleFileCachePlugin.js +6 -1
- package/lib/cache/MemoryCachePlugin.js +1 -1
- package/lib/cache/MemoryWithGcCachePlugin.js +4 -1
- package/lib/cache/PackFileCacheStrategy.js +302 -12
- package/lib/cache/ResolverCachePlugin.js +12 -1
- package/lib/cache/getLazyHashedEtag.js +13 -2
- package/lib/cache/mergeEtags.js +4 -0
- package/lib/cli.js +142 -20
- package/lib/config/browserslistTargetHandler.js +141 -0
- package/lib/config/defaults.js +612 -43
- package/lib/config/defineConfig.js +31 -0
- package/lib/config/normalization.js +46 -1
- package/lib/config/target.js +200 -2
- package/lib/container/ContainerEntryDependency.js +2 -0
- package/lib/container/ContainerEntryModule.js +27 -14
- package/lib/container/ContainerEntryModuleFactory.js +1 -0
- package/lib/container/ContainerExposedDependency.js +6 -2
- package/lib/container/ContainerPlugin.js +2 -1
- package/lib/container/ContainerReferencePlugin.js +3 -2
- package/lib/container/FallbackDependency.js +9 -7
- package/lib/container/FallbackItemDependency.js +1 -0
- package/lib/container/FallbackModule.js +22 -9
- package/lib/container/FallbackModuleFactory.js +1 -0
- package/lib/container/HoistContainerReferencesPlugin.js +47 -55
- package/lib/container/ModuleFederationPlugin.js +21 -29
- package/lib/container/RemoteModule.js +33 -10
- package/lib/container/RemoteRuntimeModule.js +15 -12
- package/lib/container/RemoteToExternalDependency.js +1 -0
- package/lib/container/options.js +7 -0
- package/lib/css/CssGenerator.js +540 -272
- package/lib/css/CssInjectStyleRuntimeModule.js +86 -70
- package/lib/css/CssLoadingRuntimeModule.js +173 -81
- package/lib/{CssModule.js → css/CssModule.js} +72 -37
- package/lib/css/CssModulesPlugin.js +371 -208
- package/lib/css/CssParser.js +3538 -1963
- package/lib/css/syntax.js +4155 -0
- package/lib/debug/ProfilingPlugin.js +33 -2
- package/lib/deno/DenoTargetPlugin.js +41 -0
- package/lib/dependencies/AMDDefineDependency.js +29 -17
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +19 -6
- package/lib/dependencies/AMDPlugin.js +6 -3
- package/lib/dependencies/AMDRequireArrayDependency.js +13 -11
- package/lib/dependencies/AMDRequireContextDependency.js +10 -11
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -0
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +28 -14
- package/lib/dependencies/AMDRequireDependency.js +28 -20
- package/lib/dependencies/AMDRequireItemDependency.js +1 -0
- package/lib/dependencies/AMDRuntimeModules.js +3 -0
- package/lib/dependencies/CachedConstDependency.js +9 -1
- package/lib/dependencies/CommonJsDependencyHelpers.js +104 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +157 -38
- package/lib/dependencies/CommonJsExportsDependency.js +74 -20
- package/lib/dependencies/CommonJsExportsParserPlugin.js +246 -15
- package/lib/dependencies/CommonJsFullRequireDependency.js +91 -27
- package/lib/dependencies/CommonJsImportsParserPlugin.js +189 -24
- package/lib/dependencies/CommonJsPlugin.js +7 -4
- package/lib/dependencies/CommonJsRequireContextDependency.js +13 -13
- package/lib/dependencies/CommonJsRequireDependency.js +135 -13
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +60 -16
- package/lib/dependencies/ConstDependency.js +22 -12
- package/lib/dependencies/ContextDependency.js +13 -2
- package/lib/dependencies/ContextDependencyHelpers.js +7 -4
- package/lib/dependencies/ContextDependencyTemplateAsId.js +2 -1
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +1 -0
- package/lib/dependencies/ContextElementDependency.js +27 -14
- package/lib/dependencies/CreateRequireParserPlugin.js +14 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +9 -7
- package/lib/dependencies/CriticalDependencyWarning.js +3 -1
- package/lib/dependencies/CssIcssExportDependency.js +681 -367
- package/lib/dependencies/CssIcssImportDependency.js +62 -17
- package/lib/dependencies/CssIcssSymbolDependency.js +36 -17
- package/lib/dependencies/CssImportDependency.js +37 -1
- package/lib/dependencies/CssUrlDependency.js +87 -14
- package/lib/dependencies/DelegatedSourceDependency.js +1 -0
- package/lib/dependencies/DllEntryDependency.js +12 -13
- package/lib/dependencies/DynamicExports.js +5 -0
- package/lib/dependencies/EntryDependency.js +1 -0
- package/lib/dependencies/ExportBindingInitFragment.js +164 -0
- package/lib/dependencies/ExportsInfoDependency.js +18 -12
- package/lib/dependencies/ExternalModuleDependency.js +13 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +10 -5
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +19 -12
- package/lib/dependencies/HarmonyAcceptDependency.js +24 -26
- package/lib/dependencies/HarmonyAcceptImportDependency.js +2 -0
- package/lib/dependencies/HarmonyCompatibilityDependency.js +33 -14
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +108 -30
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +34 -3
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +70 -33
- package/lib/dependencies/HarmonyExportExpressionDependency.js +133 -43
- package/lib/dependencies/HarmonyExportHeaderDependency.js +11 -9
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +268 -44
- package/lib/dependencies/HarmonyExportInitFragment.js +28 -20
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +88 -18
- package/lib/dependencies/HarmonyExports.js +6 -1
- package/lib/dependencies/HarmonyImportDependency.js +60 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +139 -146
- package/lib/dependencies/HarmonyImportGuard.js +427 -0
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +22 -1
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +146 -24
- package/lib/{HarmonyLinkingError.js → dependencies/HarmonyLinkingError.js} +6 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +11 -1
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +2 -1
- package/lib/dependencies/HtmlEntryDependency.js +1295 -0
- package/lib/dependencies/HtmlInlineHtmlDependency.js +107 -0
- package/lib/dependencies/HtmlInlineScriptDependency.js +126 -0
- package/lib/dependencies/HtmlInlineStyleDependency.js +152 -0
- package/lib/dependencies/HtmlSourceDependency.js +172 -0
- package/lib/dependencies/ImportContextDependency.js +9 -9
- package/lib/dependencies/ImportDependency.js +92 -3
- package/lib/dependencies/ImportEagerDependency.js +2 -0
- package/lib/dependencies/ImportMetaContextDependency.js +1 -0
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +35 -19
- package/lib/dependencies/ImportMetaContextPlugin.js +40 -8
- package/lib/dependencies/ImportMetaGlobDependency.js +81 -0
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +78 -0
- package/lib/dependencies/ImportMetaGlobHelpers.js +660 -0
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +2 -0
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +2 -0
- package/lib/dependencies/ImportMetaPlugin.js +595 -209
- package/lib/dependencies/ImportMetaResolveDependency.js +90 -0
- package/lib/dependencies/ImportParserPlugin.js +114 -27
- package/lib/dependencies/ImportPhase.js +17 -11
- package/lib/dependencies/ImportPlugin.js +2 -1
- package/lib/dependencies/ImportWeakDependency.js +3 -0
- package/lib/dependencies/JsonExportsDependency.js +15 -10
- package/lib/dependencies/LoaderDependency.js +2 -0
- package/lib/dependencies/LoaderImportDependency.js +3 -0
- package/lib/dependencies/LoaderPlugin.js +9 -2
- package/lib/dependencies/LocalModule.js +15 -12
- package/lib/dependencies/LocalModuleDependency.js +15 -13
- package/lib/dependencies/LocalModulesHelpers.js +3 -0
- package/lib/dependencies/ModuleDecoratorDependency.js +16 -10
- package/lib/dependencies/ModuleDependency.js +14 -0
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +1 -0
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +1 -0
- package/lib/dependencies/ModuleHotAcceptDependency.js +2 -0
- package/lib/dependencies/ModuleHotDeclineDependency.js +2 -0
- package/lib/dependencies/ModuleInitFragmentDependency.js +19 -11
- package/lib/dependencies/NullDependency.js +2 -0
- package/lib/dependencies/PrefetchDependency.js +1 -0
- package/lib/dependencies/ProvidedDependency.js +36 -27
- package/lib/dependencies/PureExpressionDependency.js +14 -10
- package/lib/dependencies/RequireContextDependency.js +1 -0
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -1
- package/lib/dependencies/RequireContextPlugin.js +2 -1
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +1 -0
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +4 -6
- package/lib/dependencies/RequireEnsureDependency.js +16 -13
- package/lib/dependencies/RequireEnsureItemDependency.js +1 -0
- package/lib/dependencies/RequireEnsurePlugin.js +2 -1
- package/lib/dependencies/RequireHeaderDependency.js +7 -4
- package/lib/dependencies/RequireIncludeDependency.js +2 -0
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +11 -12
- package/lib/dependencies/RequireIncludePlugin.js +2 -1
- package/lib/{RequireJsStuffPlugin.js → dependencies/RequireJsStuffPlugin.js} +9 -8
- package/lib/dependencies/RequireResolveContextDependency.js +10 -11
- package/lib/dependencies/RequireResolveDependency.js +2 -0
- package/lib/dependencies/RequireResolveHeaderDependency.js +8 -5
- package/lib/dependencies/RuntimeRequirementsDependency.js +11 -8
- package/lib/dependencies/StaticExportsDependency.js +13 -10
- package/lib/dependencies/SystemPlugin.js +9 -6
- package/lib/dependencies/SystemRuntimeModule.js +1 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +93 -0
- package/lib/dependencies/URLContextDependency.js +8 -7
- package/lib/dependencies/URLDependency.js +157 -33
- package/lib/dependencies/URLPlugin.js +2 -0
- package/lib/dependencies/UnsupportedDependency.js +12 -13
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +15 -16
- package/lib/dependencies/WebAssemblyImportDependency.js +19 -18
- package/lib/dependencies/WebpackIsIncludedDependency.js +3 -0
- package/lib/dependencies/{WorkerPlugin.js → WorkerAndWorkletPlugin.js} +364 -114
- package/lib/dependencies/WorkerDependency.js +111 -27
- package/lib/dependencies/WorkletDependency.js +278 -0
- package/lib/dependencies/getFunctionExpression.js +1 -0
- package/lib/dependencies/processExportInfo.js +14 -11
- package/lib/{DelegatedModule.js → dll/DelegatedModule.js} +71 -44
- package/lib/{DelegatedModuleFactoryPlugin.js → dll/DelegatedModuleFactoryPlugin.js} +27 -4
- package/lib/{DelegatedPlugin.js → dll/DelegatedPlugin.js} +5 -3
- package/lib/{DllEntryPlugin.js → dll/DllEntryPlugin.js} +9 -5
- package/lib/{DllModule.js → dll/DllModule.js} +36 -24
- package/lib/{DllModuleFactory.js → dll/DllModuleFactory.js} +5 -4
- package/lib/{DllPlugin.js → dll/DllPlugin.js} +24 -6
- package/lib/{DllReferencePlugin.js → dll/DllReferencePlugin.js} +26 -18
- package/lib/{LibManifestPlugin.js → dll/LibManifestPlugin.js} +14 -10
- package/lib/electron/ElectronTargetPlugin.js +24 -5
- package/lib/{AbstractMethodError.js → errors/AbstractMethodError.js} +10 -1
- package/lib/{AsyncDependencyToInitialChunkError.js → errors/AsyncDependencyToInitialChunkError.js} +8 -3
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/{ChunkRenderError.js → errors/ChunkRenderError.js} +1 -1
- package/lib/{CodeGenerationError.js → errors/CodeGenerationError.js} +1 -1
- package/lib/{CommentCompilationWarning.js → errors/CommentCompilationWarning.js} +9 -3
- package/lib/{ConcurrentCompilationError.js → errors/ConcurrentCompilationError.js} +5 -2
- package/lib/{EnvironmentNotSupportAsyncWarning.js → errors/EnvironmentNotSupportAsyncWarning.js} +5 -5
- package/lib/{HookWebpackError.js → errors/HookWebpackError.js} +20 -16
- package/lib/{IgnoreErrorModuleFactory.js → errors/IgnoreErrorModuleFactory.js} +7 -4
- package/lib/{InvalidDependenciesModuleWarning.js → errors/InvalidDependenciesModuleWarning.js} +6 -3
- package/lib/errors/JSONParseError.js +115 -0
- package/lib/errors/LoaderLoadingError.js +20 -0
- package/lib/{ModuleBuildError.js → errors/ModuleBuildError.js} +22 -16
- package/lib/{ModuleDependencyError.js → errors/ModuleDependencyError.js} +10 -3
- package/lib/{ModuleDependencyWarning.js → errors/ModuleDependencyWarning.js} +13 -5
- package/lib/{ModuleError.js → errors/ModuleError.js} +10 -14
- package/lib/{ModuleHashingError.js → errors/ModuleHashingError.js} +5 -1
- package/lib/errors/ModuleNotFoundError.js +94 -0
- package/lib/errors/ModuleParseError.js +141 -0
- package/lib/{ModuleRestoreError.js → errors/ModuleRestoreError.js} +4 -1
- package/lib/{ModuleStoreError.js → errors/ModuleStoreError.js} +5 -1
- package/lib/{ModuleWarning.js → errors/ModuleWarning.js} +13 -14
- package/lib/{NodeStuffInWebError.js → errors/NodeStuffInWebError.js} +7 -5
- package/lib/errors/NonErrorEmittedError.js +30 -0
- package/lib/{UnhandledSchemeError.js → errors/UnhandledSchemeError.js} +9 -2
- package/lib/{UnsupportedFeatureWarning.js → errors/UnsupportedFeatureWarning.js} +4 -3
- package/lib/errors/WebpackError.js +84 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +52 -15
- package/lib/esm/ModuleChunkLoadingPlugin.js +11 -3
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +80 -52
- package/lib/hmr/HotModuleReplacement.runtime.js +175 -30
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +8 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +173 -26
- package/lib/hmr/JavascriptHotModuleReplacementHelper.js +1 -0
- package/lib/hmr/LazyCompilationPlugin.js +154 -7
- package/lib/hmr/lazyCompilationBackend.js +53 -12
- package/lib/html/HtmlGenerator.js +1490 -0
- package/lib/html/HtmlModule.js +41 -0
- package/lib/html/HtmlModulesPlugin.js +1129 -0
- package/lib/html/HtmlParser.js +1970 -0
- package/lib/html/favicon.svg +1 -0
- package/lib/html/syntax.js +9106 -0
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -1
- package/lib/ids/DeterministicChunkIdsPlugin.js +3 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +3 -1
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/ids/IdHelpers.js +49 -12
- package/lib/ids/NamedChunkIdsPlugin.js +3 -1
- package/lib/ids/NamedModuleIdsPlugin.js +3 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +1 -1
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +2 -1
- package/lib/ids/OccurrenceModuleIdsPlugin.js +4 -1
- package/lib/ids/SyncModuleIdsPlugin.js +3 -1
- package/lib/index.js +66 -15
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +5 -6
- package/lib/javascript/BasicEvaluatedExpression.js +370 -49
- package/lib/javascript/ChunkFormatHelpers.js +2 -1
- package/lib/javascript/ChunkHelpers.js +1 -0
- package/lib/javascript/CommonJsChunkFormatPlugin.js +1 -1
- package/lib/javascript/EnableChunkLoadingPlugin.js +6 -1
- package/lib/javascript/JavascriptGenerator.js +213 -51
- package/lib/javascript/JavascriptModule.js +54 -0
- package/lib/javascript/JavascriptModulesPlugin.js +628 -198
- package/lib/javascript/JavascriptParser.js +1334 -471
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/StartupHelpers.js +5 -0
- package/lib/javascript/syntax.js +5037 -0
- package/lib/json/JsonData.js +5 -0
- package/lib/json/JsonGenerator.js +21 -0
- package/lib/json/JsonModule.js +40 -0
- package/lib/json/JsonModulesPlugin.js +8 -1
- package/lib/json/JsonParser.js +18 -27
- package/lib/library/AbstractLibraryPlugin.js +17 -2
- package/lib/library/AmdLibraryPlugin.js +8 -0
- package/lib/library/AssignLibraryPlugin.js +21 -3
- package/lib/library/EnableLibraryPlugin.js +8 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +10 -0
- package/lib/{FalseIIFEUmdWarning.js → library/FalseIIFEUmdWarning.js} +2 -1
- package/lib/library/JsonpLibraryPlugin.js +8 -0
- package/lib/library/ModuleLibraryPlugin.js +154 -7
- package/lib/library/SystemLibraryPlugin.js +11 -3
- package/lib/library/UmdLibraryPlugin.js +16 -0
- package/lib/loaders/LoaderRunner.js +714 -0
- package/lib/loaders/loadLoader.js +100 -0
- package/lib/logging/Logger.js +17 -0
- package/lib/logging/createConsoleLogger.js +7 -0
- package/lib/logging/runtime.js +2 -0
- package/lib/logging/truncateArgs.js +2 -0
- package/lib/node/CommonJsChunkLoadingPlugin.js +5 -1
- package/lib/node/NodeEnvironmentPlugin.js +7 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -63
- package/lib/node/NodeTemplatePlugin.js +3 -1
- package/lib/node/NodeWatchFileSystem.js +40 -22
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +13 -9
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +33 -3
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -3
- package/lib/node/RequireChunkLoadingRuntimeModule.js +21 -16
- package/lib/node/nodeBuiltins.js +80 -0
- package/lib/node/nodeConsole.js +116 -64
- package/lib/optimize/AggressiveMergingPlugin.js +22 -16
- package/lib/optimize/AggressiveSplittingPlugin.js +6 -1
- package/lib/optimize/ConcatenatedModule.js +603 -130
- package/lib/optimize/ConstExportsPlugin.js +211 -0
- package/lib/optimize/EnsureChunkConditionsPlugin.js +2 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +15 -4
- package/lib/optimize/InlineExports.js +178 -0
- package/lib/optimize/InnerGraph.js +374 -262
- package/lib/optimize/InnerGraphPlugin.js +246 -117
- package/lib/optimize/LimitChunkCountPlugin.js +9 -0
- package/lib/optimize/MangleExportsPlugin.js +5 -1
- package/lib/optimize/MergeDuplicateChunksPlugin.js +2 -0
- package/lib/optimize/MinChunkSizePlugin.js +2 -1
- package/lib/optimize/MinMaxSizeWarning.js +5 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +229 -55
- package/lib/optimize/RealContentHashPlugin.js +130 -52
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -1
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -1
- package/lib/optimize/RuntimeChunkPlugin.js +2 -1
- package/lib/optimize/SideEffectsFlagPlugin.js +381 -55
- package/lib/optimize/SplitChunksPlugin.js +200 -50
- package/lib/performance/AssetsOverSizeLimitWarning.js +3 -2
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +3 -2
- package/lib/performance/NoAsyncChunksWarning.js +5 -3
- package/lib/performance/SizeLimitsPlugin.js +8 -2
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +21 -0
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +5 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +25 -13
- package/lib/prefetch/ResourceHintPlugin.js +687 -0
- package/lib/prefetch/ResourceHintRuntimeModule.js +149 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +210 -0
- package/lib/prefetch/parseResourceHintOptions.js +103 -0
- package/lib/rules/BasicEffectRulePlugin.js +3 -0
- package/lib/rules/BasicMatcherRulePlugin.js +3 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +3 -0
- package/lib/rules/RuleSetCompiler.js +132 -0
- package/lib/rules/UseEffectRulePlugin.js +10 -3
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +56 -0
- package/lib/runtime/AsyncModuleRuntimeModule.js +52 -33
- package/lib/runtime/AutoPublicPathRuntimeModule.js +22 -9
- package/lib/runtime/BaseUriRuntimeModule.js +1 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +1 -0
- package/lib/runtime/CommonJsWrapRuntimeModule.js +37 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +2 -1
- package/lib/runtime/CompatRuntimeModule.js +2 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +7 -4
- package/lib/runtime/CreateScriptRuntimeModule.js +1 -0
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +1 -0
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +34 -4
- package/lib/runtime/EnsureChunkRuntimeModule.js +1 -0
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +88 -8
- package/lib/runtime/GetFullHashRuntimeModule.js +1 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +1 -0
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -1
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +59 -0
- package/lib/runtime/GlobalRuntimeModule.js +1 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +2 -1
- package/lib/runtime/HelperRuntimeModule.js +5 -0
- package/lib/runtime/LoadScriptRuntimeModule.js +28 -37
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +354 -37
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +2 -1
- package/lib/runtime/NonceRuntimeModule.js +1 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -4
- package/lib/runtime/PublicPathRuntimeModule.js +1 -0
- package/lib/runtime/RelativeUrlRuntimeModule.js +4 -2
- package/lib/runtime/RuntimeIdRuntimeModule.js +1 -0
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +38 -0
- package/lib/runtime/StartupChunkDependenciesPlugin.js +13 -1
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +2 -1
- package/lib/runtime/StartupEntrypointRuntimeModule.js +5 -3
- package/lib/runtime/SystemContextRuntimeModule.js +1 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -0
- package/lib/runtime/WorkerRuntimeModule.js +33 -0
- package/lib/schemes/DataUriPlugin.js +14 -2
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +86 -4
- package/lib/schemes/VirtualUrlPlugin.js +8 -4
- package/lib/serialization/AggregateErrorSerializer.js +9 -6
- package/lib/serialization/ArraySerializer.js +6 -8
- package/lib/serialization/BinaryMiddleware.js +427 -1006
- package/lib/serialization/DateObjectSerializer.js +4 -2
- package/lib/serialization/ErrorObjectSerializer.js +10 -6
- package/lib/serialization/FileMiddleware.js +345 -59
- package/lib/serialization/MapObjectSerializer.js +7 -9
- package/lib/serialization/NullPrototypeObjectSerializer.js +9 -9
- package/lib/serialization/ObjectMiddleware.js +73 -13
- package/lib/serialization/PlainObjectSerializer.js +16 -8
- package/lib/serialization/RegExpObjectSerializer.js +4 -2
- package/lib/serialization/Serializer.js +6 -0
- package/lib/serialization/SerializerMiddleware.js +14 -2
- package/lib/serialization/SetObjectSerializer.js +6 -8
- package/lib/serialization/SingleItemMiddleware.js +3 -0
- package/lib/sharing/ConsumeSharedFallbackDependency.js +1 -0
- package/lib/sharing/ConsumeSharedModule.js +21 -7
- package/lib/sharing/ConsumeSharedPlugin.js +11 -11
- package/lib/sharing/ConsumeSharedRuntimeModule.js +55 -45
- package/lib/sharing/ProvideForSharedDependency.js +1 -0
- package/lib/sharing/ProvideSharedDependency.js +34 -15
- package/lib/sharing/ProvideSharedModule.js +42 -12
- package/lib/sharing/ProvideSharedModuleFactory.js +1 -0
- package/lib/sharing/ProvideSharedPlugin.js +13 -8
- package/lib/sharing/SharePlugin.js +5 -1
- package/lib/sharing/ShareRuntimeModule.js +19 -16
- package/lib/sharing/resolveMatchedConfigs.js +6 -2
- package/lib/sharing/utils.js +9 -1
- package/lib/stats/DefaultStatsFactoryPlugin.js +289 -201
- package/lib/stats/DefaultStatsPresetPlugin.js +14 -2
- package/lib/stats/DefaultStatsPrinterPlugin.js +74 -170
- package/lib/stats/StatsFactory.js +70 -27
- package/lib/stats/StatsPrinter.js +16 -2
- package/lib/typescript/TypeScriptPlugin.js +210 -0
- package/lib/url/URLParserPlugin.js +111 -23
- package/lib/util/ArrayHelpers.js +1 -0
- package/lib/util/ArrayQueue.js +10 -5
- package/lib/util/AsyncQueue.js +154 -74
- package/lib/util/Hash.js +2 -2
- package/lib/util/IterableHelpers.js +3 -0
- package/lib/util/LazyBucketSortedSet.js +26 -0
- package/lib/util/LazySet.js +45 -4
- package/lib/util/LocConverter.js +64 -0
- package/lib/util/ParallelismFactorCalculator.js +1 -0
- package/lib/util/Queue.js +6 -3
- package/lib/util/Semaphore.js +15 -1
- package/lib/util/SetHelpers.js +4 -1
- package/lib/util/SortableSet.js +7 -1
- package/lib/util/SourceProcessor.js +119 -0
- package/lib/util/StackedCacheMap.js +20 -3
- package/lib/util/StackedMap.js +162 -43
- package/lib/util/StringXor.js +1 -1
- package/lib/util/TupleQueue.js +7 -3
- package/lib/util/TupleSet.js +14 -0
- package/lib/util/URLAbsoluteSpecifier.js +1 -0
- package/lib/util/WeakTupleMap.js +60 -1
- package/lib/util/binarySearchBounds.js +3 -2
- package/lib/util/chainedImports.js +3 -3
- package/lib/util/cleverMerge.js +19 -2
- package/lib/util/comparators.js +35 -4
- package/lib/util/compileBooleanMatcher.js +9 -0
- package/lib/util/concatenate.js +80 -24
- package/lib/util/conventions.js +46 -1
- package/lib/util/createHash.js +0 -1
- package/lib/util/createHooksRegistry.js +43 -0
- package/lib/util/createMappings.js +118 -0
- package/lib/util/dataURL.js +3 -2
- package/lib/util/deprecation.js +19 -0
- package/lib/util/deterministicGrouping.js +46 -17
- package/lib/util/extractSourceMap.js +2 -1
- package/lib/util/extractUrlAndGlobal.js +1 -0
- package/lib/util/findGraphRoots.js +7 -0
- package/lib/{formatLocation.js → util/formatLocation.js} +4 -2
- package/lib/{SizeFormatHelpers.js → util/formatSize.js} +10 -3
- package/lib/util/fs.js +87 -14
- package/lib/util/generateDebugId.js +1 -0
- package/lib/util/globUtils.js +710 -0
- package/lib/util/hash/BatchedHash.js +1 -0
- package/lib/util/hash/BulkUpdateHash.js +1 -0
- package/lib/util/hash/DebugHash.js +1 -0
- package/lib/util/hash/hash-digest.js +32 -15
- package/lib/util/hash/md4.js +1 -1
- package/lib/util/hash/wasm-hash.js +5 -0
- package/lib/util/hash/xxhash64.js +1 -1
- package/lib/util/identifier.js +118 -7
- package/lib/util/implicitTypeLoaderFallback.js +62 -0
- package/lib/util/internalSerializables.js +102 -60
- package/lib/util/magicComment.js +149 -7
- package/lib/util/makeSerializable.js +7 -0
- package/lib/util/memoize.js +2 -0
- package/lib/util/mimeTypes.js +176 -0
- package/lib/util/nonNumericOnlyHash.js +31 -1
- package/lib/util/numberHash.js +2 -2
- package/lib/util/parseJson.js +41 -0
- package/lib/util/processAsyncTree.js +8 -0
- package/lib/util/property.js +9 -2
- package/lib/util/publicPathPlaceholder.js +64 -0
- package/lib/util/registerExternalSerializer.js +24 -4
- package/lib/util/removeBOM.js +1 -0
- package/lib/util/runtime.js +32 -0
- package/lib/util/semver.js +15 -0
- package/lib/util/serialization.js +2 -0
- package/lib/util/smartGrouping.js +8 -0
- package/lib/util/source.js +23 -0
- package/lib/util/topologicalSort.js +69 -0
- package/lib/validateSchema.js +1 -0
- package/lib/wasm/EnableWasmLoadingPlugin.js +15 -1
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +25 -18
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +34 -22
- package/lib/wasm-async/AsyncWasmModule.js +77 -0
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -0
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +22 -126
- package/lib/wasm-async/AsyncWebAssemblyParser.js +3 -2
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +13 -2
- package/lib/wasm-sync/SyncWasmModule.js +39 -0
- package/lib/wasm-sync/UnsupportedWebAssemblyFeatureError.js +7 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +86 -19
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -3
- package/lib/wasm-sync/WebAssemblyGenerator.js +27 -1
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +9 -3
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +4 -0
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +20 -1
- package/lib/wasm-sync/WebAssemblyParser.js +9 -3
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -0
- package/lib/web/FetchCompileAsyncWasmPlugin.js +29 -1
- package/lib/web/FetchCompileWasmPlugin.js +27 -1
- package/lib/web/JsonpChunkLoadingPlugin.js +11 -1
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +58 -64
- package/lib/web/JsonpTemplatePlugin.js +2 -1
- package/lib/webpack.js +78 -1
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +10 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +15 -10
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +21 -0
- package/package.json +79 -77
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +1173 -80
- package/schemas/plugins/{DllPlugin.check.d.ts → HtmlGeneratorOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlGeneratorOptions.check.js +6 -0
- package/schemas/plugins/HtmlGeneratorOptions.json +3 -0
- package/schemas/plugins/{DllReferencePlugin.check.d.ts → HtmlParserOptions.check.d.ts} +1 -1
- package/schemas/plugins/HtmlParserOptions.check.js +6 -0
- package/schemas/plugins/HtmlParserOptions.json +3 -0
- package/schemas/plugins/ProgressPlugin.check.js +1 -1
- package/schemas/plugins/ProgressPlugin.json +38 -0
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +2 -0
- package/schemas/plugins/container/ExternalsType.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +2 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.d.ts +7 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +6 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.json +3 -0
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/schemas/plugins/dll/DllPlugin.check.d.ts +7 -0
- package/schemas/plugins/dll/DllReferencePlugin.check.d.ts +7 -0
- package/types.d.ts +11053 -3019
- package/lib/CaseSensitiveModulesWarning.js +0 -72
- package/lib/GraphHelpers.js +0 -46
- package/lib/ModuleParseError.js +0 -125
- package/lib/NoModeWarning.js +0 -23
- package/lib/css/CssMergeStyleSheetsRuntimeModule.js +0 -56
- package/lib/css/walkCssTokens.js +0 -1843
- package/lib/util/AppendOnlyStackedSet.js +0 -78
- /package/schemas/plugins/{DllPlugin.check.js → dll/DllPlugin.check.js} +0 -0
- /package/schemas/plugins/{DllPlugin.json → dll/DllPlugin.json} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.check.js → dll/DllReferencePlugin.check.js} +0 -0
- /package/schemas/plugins/{DllReferencePlugin.json → dll/DllReferencePlugin.json} +0 -0
package/lib/util/semver.js
CHANGED
|
@@ -11,11 +11,13 @@
|
|
|
11
11
|
/** @typedef {(SemVerRangeItem | SemVerRangeItem[])[]} SemVerRange */
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
+
* Returns parsed version.
|
|
14
15
|
* @param {string} str version string
|
|
15
16
|
* @returns {SemVerRange} parsed version
|
|
16
17
|
*/
|
|
17
18
|
const parseVersion = (str) => {
|
|
18
19
|
/**
|
|
20
|
+
* Returns result.
|
|
19
21
|
* @param {str} str str
|
|
20
22
|
* @returns {VersionValue[]} result
|
|
21
23
|
*/
|
|
@@ -49,6 +51,7 @@ module.exports.parseVersion = parseVersion;
|
|
|
49
51
|
|
|
50
52
|
/* eslint-disable eqeqeq */
|
|
51
53
|
/**
|
|
54
|
+
* Returns true, iff a < b.
|
|
52
55
|
* @param {string} a version
|
|
53
56
|
* @param {string} b version
|
|
54
57
|
* @returns {boolean} true, iff a < b
|
|
@@ -98,11 +101,13 @@ const versionLt = (a, b) => {
|
|
|
98
101
|
module.exports.versionLt = versionLt;
|
|
99
102
|
|
|
100
103
|
/**
|
|
104
|
+
* Returns parsed range.
|
|
101
105
|
* @param {string} str range string
|
|
102
106
|
* @returns {SemVerRange} parsed range
|
|
103
107
|
*/
|
|
104
108
|
module.exports.parseRange = (str) => {
|
|
105
109
|
/**
|
|
110
|
+
* Returns result.
|
|
106
111
|
* @param {string} str str
|
|
107
112
|
* @returns {VersionValue[]} result
|
|
108
113
|
*/
|
|
@@ -114,6 +119,7 @@ module.exports.parseRange = (str) => {
|
|
|
114
119
|
|
|
115
120
|
// see https://docs.npmjs.com/misc/semver#range-grammar for grammar
|
|
116
121
|
/**
|
|
122
|
+
* Returns the sem ver range item.
|
|
117
123
|
* @param {string} str str
|
|
118
124
|
* @returns {SemVerRangeItem[]}
|
|
119
125
|
*/
|
|
@@ -143,6 +149,7 @@ module.exports.parseRange = (str) => {
|
|
|
143
149
|
};
|
|
144
150
|
|
|
145
151
|
/**
|
|
152
|
+
* Returns the sem ver range item.
|
|
146
153
|
*
|
|
147
154
|
* @param {SemVerRangeItem[]} range range
|
|
148
155
|
* @returns {SemVerRangeItem[]}
|
|
@@ -163,6 +170,7 @@ module.exports.parseRange = (str) => {
|
|
|
163
170
|
};
|
|
164
171
|
|
|
165
172
|
/**
|
|
173
|
+
* Returns result.
|
|
166
174
|
*
|
|
167
175
|
* @param {SemVerRangeItem[]} range
|
|
168
176
|
* @returns {SemVerRangeItem[]} result
|
|
@@ -172,6 +180,7 @@ module.exports.parseRange = (str) => {
|
|
|
172
180
|
};
|
|
173
181
|
|
|
174
182
|
/**
|
|
183
|
+
* Returns the sem ver range.
|
|
175
184
|
* @param {string} str str
|
|
176
185
|
* @returns {SemVerRange}
|
|
177
186
|
*/
|
|
@@ -230,6 +239,7 @@ module.exports.parseRange = (str) => {
|
|
|
230
239
|
};
|
|
231
240
|
|
|
232
241
|
/**
|
|
242
|
+
* Returns result.
|
|
233
243
|
*
|
|
234
244
|
* @param {SemVerRangeItem[][]} items items
|
|
235
245
|
* @param {number} fn fn
|
|
@@ -251,6 +261,7 @@ module.exports.parseRange = (str) => {
|
|
|
251
261
|
};
|
|
252
262
|
|
|
253
263
|
/**
|
|
264
|
+
* Returns the sem ver range.
|
|
254
265
|
* @param {string} str str
|
|
255
266
|
* @returns {SemVerRange}
|
|
256
267
|
*/
|
|
@@ -291,6 +302,7 @@ module.exports.parseRange = (str) => {
|
|
|
291
302
|
};
|
|
292
303
|
|
|
293
304
|
/**
|
|
305
|
+
* Returns the sem ver range.
|
|
294
306
|
* @param {string} str str
|
|
295
307
|
* @returns {SemVerRange}
|
|
296
308
|
*/
|
|
@@ -309,6 +321,7 @@ module.exports.parseRange = (str) => {
|
|
|
309
321
|
|
|
310
322
|
/* eslint-disable eqeqeq */
|
|
311
323
|
/**
|
|
324
|
+
* Returns the string.
|
|
312
325
|
* @param {SemVerRange} range
|
|
313
326
|
* @returns {string}
|
|
314
327
|
*/
|
|
@@ -370,6 +383,7 @@ const rangeToString = (range) => {
|
|
|
370
383
|
module.exports.rangeToString = rangeToString;
|
|
371
384
|
|
|
372
385
|
/**
|
|
386
|
+
* Returns if version satisfy the range.
|
|
373
387
|
* @param {SemVerRange} range version range
|
|
374
388
|
* @param {string} version the version
|
|
375
389
|
* @returns {boolean} if version satisfy the range
|
|
@@ -531,6 +545,7 @@ const satisfy = (range, version) => {
|
|
|
531
545
|
module.exports.satisfy = satisfy;
|
|
532
546
|
|
|
533
547
|
/**
|
|
548
|
+
* Returns the string.
|
|
534
549
|
* @param {SemVerRange | string | number | false | undefined} json
|
|
535
550
|
* @returns {string}
|
|
536
551
|
*/
|
|
@@ -13,6 +13,7 @@ const memoize = require("./memoize");
|
|
|
13
13
|
/** @typedef {import("../util/fs").IntermediateFileSystem} IntermediateFileSystem */
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
+
* Defines the serializer type used by this module.
|
|
16
17
|
* @template D, S, C
|
|
17
18
|
* @typedef {import("../serialization/Serializer")<D, S, C>} Serializer
|
|
18
19
|
*/
|
|
@@ -109,6 +110,7 @@ module.exports = {
|
|
|
109
110
|
);
|
|
110
111
|
},
|
|
111
112
|
/**
|
|
113
|
+
* Creates a file serializer.
|
|
112
114
|
* @template D, S, C
|
|
113
115
|
* @param {IntermediateFileSystem} fs filesystem
|
|
114
116
|
* @param {HashFunction} hashFunction hash function to use
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* Defines the group options type used by this module.
|
|
9
10
|
* @typedef {object} GroupOptions
|
|
10
11
|
* @property {boolean=} groupChildren
|
|
11
12
|
* @property {boolean=} force
|
|
@@ -13,6 +14,7 @@
|
|
|
13
14
|
*/
|
|
14
15
|
|
|
15
16
|
/**
|
|
17
|
+
* Defines the group config type used by this module.
|
|
16
18
|
* @template I
|
|
17
19
|
* @template G
|
|
18
20
|
* @typedef {object} GroupConfig
|
|
@@ -22,17 +24,20 @@
|
|
|
22
24
|
*/
|
|
23
25
|
|
|
24
26
|
/**
|
|
27
|
+
* Defines the group type used by this module.
|
|
25
28
|
* @template I
|
|
26
29
|
* @template G
|
|
27
30
|
* @typedef {{ config: GroupConfig<I, G>, name: string, alreadyGrouped: boolean, items: Items<I, G> | undefined }} Group
|
|
28
31
|
*/
|
|
29
32
|
|
|
30
33
|
/**
|
|
34
|
+
* Defines the groups type used by this module.
|
|
31
35
|
* @template I, G
|
|
32
36
|
* @typedef {Set<Group<I, G>>} Groups
|
|
33
37
|
*/
|
|
34
38
|
|
|
35
39
|
/**
|
|
40
|
+
* Defines the item with groups type used by this module.
|
|
36
41
|
* @template I
|
|
37
42
|
* @template G
|
|
38
43
|
* @typedef {object} ItemWithGroups
|
|
@@ -41,11 +46,13 @@
|
|
|
41
46
|
*/
|
|
42
47
|
|
|
43
48
|
/**
|
|
49
|
+
* Defines the items type used by this module.
|
|
44
50
|
* @template T, G
|
|
45
51
|
* @typedef {Set<ItemWithGroups<T, G>>} Items
|
|
46
52
|
*/
|
|
47
53
|
|
|
48
54
|
/**
|
|
55
|
+
* Returns grouped items.
|
|
49
56
|
* @template I
|
|
50
57
|
* @template G
|
|
51
58
|
* @template R
|
|
@@ -90,6 +97,7 @@ const smartGrouping = (items, groupConfigs) => {
|
|
|
90
97
|
}
|
|
91
98
|
|
|
92
99
|
/**
|
|
100
|
+
* Returns groups items.
|
|
93
101
|
* @param {Items<I, G>} itemsWithGroups input items with groups
|
|
94
102
|
* @returns {(I | G)[]} groups items
|
|
95
103
|
*/
|
package/lib/util/source.js
CHANGED
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/** @typedef {import("webpack-sources").Source} Source */
|
|
9
|
+
/** @typedef {import("./Hash")} Hash */
|
|
9
10
|
|
|
10
11
|
/** @type {WeakMap<Source, WeakMap<Source, boolean>>} */
|
|
11
12
|
const equalityCache = new WeakMap();
|
|
12
13
|
|
|
13
14
|
/**
|
|
15
|
+
* Checks whether source equal true, when both sources are equal.
|
|
14
16
|
* @param {Source} a a source
|
|
15
17
|
* @param {Source} b another source
|
|
16
18
|
* @returns {boolean} true, when both sources are equal
|
|
@@ -29,6 +31,7 @@ const _isSourceEqual = (a, b) => {
|
|
|
29
31
|
};
|
|
30
32
|
|
|
31
33
|
/**
|
|
34
|
+
* Checks whether this object is source equal.
|
|
32
35
|
* @param {Source} a a source
|
|
33
36
|
* @param {Source} b another source
|
|
34
37
|
* @returns {boolean} true, when both sources are equal
|
|
@@ -59,4 +62,24 @@ const isSourceEqual = (a, b) => {
|
|
|
59
62
|
return result;
|
|
60
63
|
};
|
|
61
64
|
|
|
65
|
+
// TODO remove in webpack 6, this is protection against authors who directly use `webpack-sources` outdated version
|
|
66
|
+
/**
|
|
67
|
+
* Feeds the Source's content into a Hash without forcing a single
|
|
68
|
+
* concatenated Buffer. Uses webpack-sources >= 3.4.0 `buffers()` when
|
|
69
|
+
* available so `ConcatSource` can stream its children directly.
|
|
70
|
+
* @param {Hash} hash hash to update
|
|
71
|
+
* @param {Source} source source whose bytes are appended
|
|
72
|
+
* @returns {void}
|
|
73
|
+
*/
|
|
74
|
+
const updateHashFromSource = (hash, source) => {
|
|
75
|
+
// TODO webpack 6: drop the `buffers` check, require webpack-sources >= 3.4
|
|
76
|
+
// and call `source.buffers()` unconditionally.
|
|
77
|
+
if (typeof source.buffers === "function") {
|
|
78
|
+
for (const buf of source.buffers()) hash.update(buf);
|
|
79
|
+
} else {
|
|
80
|
+
hash.update(source.buffer());
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
62
84
|
module.exports.isSourceEqual = isSourceEqual;
|
|
85
|
+
module.exports.updateHashFromSource = updateHashFromSource;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Topologically sort `nodes` using Kahn's algorithm with source-order
|
|
9
|
+
* tie-breaking. Nodes that participate in a cycle remain unvisited —
|
|
10
|
+
* `visit` is never called for them — so the caller can naturally keep
|
|
11
|
+
* them in their original position by treating "no visit" as "keep
|
|
12
|
+
* source order".
|
|
13
|
+
*
|
|
14
|
+
* Precondition: every node appearing in `graph` (as a key OR inside any
|
|
15
|
+
* successor set) must also appear in `nodes`. The caller owns this
|
|
16
|
+
* invariant; the function does not validate it.
|
|
17
|
+
*
|
|
18
|
+
* Complexity: O(V·(V + E)). Each outer iteration scans the ready set
|
|
19
|
+
* linearly to find the smallest source-index node. CSS composes graphs
|
|
20
|
+
* are small (a handful of files per module) so this is fine; if a much
|
|
21
|
+
* larger graph ever needs sorting here, swap in a min-heap.
|
|
22
|
+
* @template T
|
|
23
|
+
* @param {Map<T, Set<T>>} graph adjacency list (`a -> b` means `a` must come before `b`)
|
|
24
|
+
* @param {T[]} nodes nodes in source first-appearance order
|
|
25
|
+
* @param {(node: T, index: number) => void} visit called once per non-cyclic node in topological order
|
|
26
|
+
* @returns {void}
|
|
27
|
+
*/
|
|
28
|
+
module.exports = (graph, nodes, visit) => {
|
|
29
|
+
/** @type {Map<T, number>} */
|
|
30
|
+
const inDegree = new Map();
|
|
31
|
+
/** @type {Map<T, number>} */
|
|
32
|
+
const sourceIndex = new Map();
|
|
33
|
+
for (let i = 0; i < nodes.length; i++) {
|
|
34
|
+
inDegree.set(nodes[i], 0);
|
|
35
|
+
sourceIndex.set(nodes[i], i);
|
|
36
|
+
}
|
|
37
|
+
for (const successors of graph.values()) {
|
|
38
|
+
for (const to of successors) {
|
|
39
|
+
inDegree.set(to, /** @type {number} */ (inDegree.get(to)) + 1);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const ready = nodes.filter((n) => inDegree.get(n) === 0);
|
|
44
|
+
let index = 0;
|
|
45
|
+
while (ready.length > 0) {
|
|
46
|
+
// Smallest-source-index wins ties. Linear scan + swap-with-last
|
|
47
|
+
// + pop avoids re-sorting the ready set on every iteration.
|
|
48
|
+
let minIdx = 0;
|
|
49
|
+
for (let i = 1; i < ready.length; i++) {
|
|
50
|
+
if (
|
|
51
|
+
/** @type {number} */ (sourceIndex.get(ready[i])) <
|
|
52
|
+
/** @type {number} */ (sourceIndex.get(ready[minIdx]))
|
|
53
|
+
) {
|
|
54
|
+
minIdx = i;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const node = ready[minIdx];
|
|
58
|
+
ready[minIdx] = ready[ready.length - 1];
|
|
59
|
+
ready.pop();
|
|
60
|
+
visit(node, index++);
|
|
61
|
+
const successors = graph.get(node);
|
|
62
|
+
if (!successors) continue;
|
|
63
|
+
for (const to of successors) {
|
|
64
|
+
const newDeg = /** @type {number} */ (inDegree.get(to)) - 1;
|
|
65
|
+
inDegree.set(to, newDeg);
|
|
66
|
+
if (newDeg === 0) ready.push(to);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
package/lib/validateSchema.js
CHANGED
|
@@ -69,6 +69,7 @@ const REMOVED = {
|
|
|
69
69
|
/* cSpell:enable */
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
|
+
* Processes the provided schema.
|
|
72
73
|
* @param {Parameters<typeof validate>[0]} schema a json schema
|
|
73
74
|
* @param {Parameters<typeof validate>[1]} options the options that should be validated
|
|
74
75
|
* @param {Parameters<typeof validate>[2]=} validationConfiguration configuration for generating errors
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
const enabledTypes = new WeakMap();
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
+
* Returns the set of wasm loading backends that have already been enabled for
|
|
18
|
+
* the compiler.
|
|
17
19
|
* @param {Compiler} compiler compiler instance
|
|
18
20
|
* @returns {WasmLoadingTypes} enabled types
|
|
19
21
|
*/
|
|
@@ -27,8 +29,14 @@ const getEnabledTypes = (compiler) => {
|
|
|
27
29
|
return set;
|
|
28
30
|
};
|
|
29
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Validates and enables named wasm loading backends by applying the plugin
|
|
34
|
+
* implementations that provide their runtime support.
|
|
35
|
+
*/
|
|
30
36
|
class EnableWasmLoadingPlugin {
|
|
31
37
|
/**
|
|
38
|
+
* Stores the wasm loading backend name that should be enabled for the
|
|
39
|
+
* compiler.
|
|
32
40
|
* @param {WasmLoadingType} type library type that should be available
|
|
33
41
|
*/
|
|
34
42
|
constructor(type) {
|
|
@@ -37,6 +45,8 @@ class EnableWasmLoadingPlugin {
|
|
|
37
45
|
}
|
|
38
46
|
|
|
39
47
|
/**
|
|
48
|
+
* Marks a custom or built-in wasm loading type as enabled for the compiler
|
|
49
|
+
* without applying additional built-in behavior.
|
|
40
50
|
* @param {Compiler} compiler the compiler instance
|
|
41
51
|
* @param {WasmLoadingType} type type of library
|
|
42
52
|
* @returns {void}
|
|
@@ -46,6 +56,8 @@ class EnableWasmLoadingPlugin {
|
|
|
46
56
|
}
|
|
47
57
|
|
|
48
58
|
/**
|
|
59
|
+
* Verifies that a wasm loading type has been enabled before code generation
|
|
60
|
+
* attempts to use it.
|
|
49
61
|
* @param {Compiler} compiler the compiler instance
|
|
50
62
|
* @param {WasmLoadingType} type type of library
|
|
51
63
|
* @returns {void}
|
|
@@ -63,7 +75,9 @@ class EnableWasmLoadingPlugin {
|
|
|
63
75
|
}
|
|
64
76
|
|
|
65
77
|
/**
|
|
66
|
-
*
|
|
78
|
+
* Enables the requested wasm loading backend once and applies the
|
|
79
|
+
* environment-specific plugins that provide its parser, generator, and
|
|
80
|
+
* runtime support.
|
|
67
81
|
* @param {Compiler} compiler the compiler instance
|
|
68
82
|
* @returns {void}
|
|
69
83
|
*/
|
|
@@ -46,19 +46,22 @@ class AsyncWasmCompileRuntimeModule extends RuntimeModule {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
|
+
* Generates runtime code for this runtime module.
|
|
49
50
|
* @returns {string | null} runtime code
|
|
50
51
|
*/
|
|
51
52
|
generate() {
|
|
52
53
|
const compilation = /** @type {Compilation} */ (this.compilation);
|
|
53
54
|
const chunk = /** @type {Chunk} */ (this.chunk);
|
|
54
55
|
const { outputOptions, runtimeTemplate } = compilation;
|
|
56
|
+
// Opt-out fallback to non-streaming when the server serves wasm with a wrong MIME type.
|
|
57
|
+
const streamingFallback = outputOptions.wasmStreamingFallback;
|
|
55
58
|
const fn = RuntimeGlobals.compileWasm;
|
|
56
59
|
const wasmModuleSrcPath = compilation.getPath(
|
|
57
60
|
JSON.stringify(outputOptions.webassemblyModuleFilename),
|
|
58
61
|
{
|
|
59
62
|
hash: `" + ${RuntimeGlobals.getFullHash}() + "`,
|
|
60
63
|
hashWithLength: (length) =>
|
|
61
|
-
`" + ${RuntimeGlobals.getFullHash}
|
|
64
|
+
`" + ${RuntimeGlobals.getFullHash}().slice(0, ${length}) + "`,
|
|
62
65
|
module: {
|
|
63
66
|
id: '" + wasmModuleId + "',
|
|
64
67
|
hash: '" + wasmModuleHash + "',
|
|
@@ -104,24 +107,28 @@ class AsyncWasmCompileRuntimeModule extends RuntimeModule {
|
|
|
104
107
|
? this.generateBeforeCompileStreaming()
|
|
105
108
|
: ""
|
|
106
109
|
),
|
|
107
|
-
Template.indent(
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
Template.indent([
|
|
112
|
-
runtimeTemplate.basicFunction("e", [
|
|
113
|
-
'if(res.headers.get("Content-Type") !== "application/wasm") {',
|
|
110
|
+
Template.indent(
|
|
111
|
+
streamingFallback
|
|
112
|
+
? [
|
|
113
|
+
"return WebAssembly.compileStreaming(res)",
|
|
114
114
|
Template.indent([
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
115
|
+
".catch(",
|
|
116
|
+
Template.indent([
|
|
117
|
+
runtimeTemplate.basicFunction("e", [
|
|
118
|
+
'if(res.headers.get("Content-Type") !== "application/wasm") {',
|
|
119
|
+
Template.indent([
|
|
120
|
+
'console.warn("`WebAssembly.compileStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.compile` which is slower. Original error:\\n", e);',
|
|
121
|
+
"return fallback();"
|
|
122
|
+
]),
|
|
123
|
+
"}",
|
|
124
|
+
"throw e;"
|
|
125
|
+
])
|
|
126
|
+
]),
|
|
127
|
+
");"
|
|
128
|
+
])
|
|
129
|
+
]
|
|
130
|
+
: ["return WebAssembly.compileStreaming(res);"]
|
|
131
|
+
),
|
|
125
132
|
"}",
|
|
126
133
|
"return fallback();"
|
|
127
134
|
]),
|
|
@@ -47,19 +47,22 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
|
+
* Generates runtime code for this runtime module.
|
|
50
51
|
* @returns {string | null} runtime code
|
|
51
52
|
*/
|
|
52
53
|
generate() {
|
|
53
54
|
const compilation = /** @type {Compilation} */ (this.compilation);
|
|
54
55
|
const chunk = /** @type {Chunk} */ (this.chunk);
|
|
55
56
|
const { outputOptions, runtimeTemplate } = compilation;
|
|
57
|
+
// Opt-in fallback to non-streaming when the server serves wasm with a wrong MIME type.
|
|
58
|
+
const streamingFallback = outputOptions.wasmStreamingFallback;
|
|
56
59
|
const fn = RuntimeGlobals.instantiateWasm;
|
|
57
60
|
const wasmModuleSrcPath = compilation.getPath(
|
|
58
61
|
JSON.stringify(outputOptions.webassemblyModuleFilename),
|
|
59
62
|
{
|
|
60
63
|
hash: `" + ${RuntimeGlobals.getFullHash}() + "`,
|
|
61
64
|
hashWithLength: (length) =>
|
|
62
|
-
`" + ${RuntimeGlobals.getFullHash}
|
|
65
|
+
`" + ${RuntimeGlobals.getFullHash}().slice(0, ${length}) + "`,
|
|
63
66
|
module: {
|
|
64
67
|
id: '" + wasmModuleId + "',
|
|
65
68
|
hash: '" + wasmModuleHash + "',
|
|
@@ -106,28 +109,37 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
|
|
|
106
109
|
? this.generateBeforeInstantiateStreaming()
|
|
107
110
|
: ""
|
|
108
111
|
),
|
|
109
|
-
Template.indent(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
Template.indent([
|
|
114
|
-
`${runtimeTemplate.returningFunction(
|
|
115
|
-
"Object.assign(exports, res.instance.exports)",
|
|
116
|
-
"res"
|
|
117
|
-
)},`,
|
|
118
|
-
runtimeTemplate.basicFunction("e", [
|
|
119
|
-
'if(res.headers.get("Content-Type") !== "application/wasm") {',
|
|
112
|
+
Template.indent(
|
|
113
|
+
streamingFallback
|
|
114
|
+
? [
|
|
115
|
+
"return WebAssembly.instantiateStreaming(res, importsObj)",
|
|
120
116
|
Template.indent([
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
117
|
+
".then(",
|
|
118
|
+
Template.indent([
|
|
119
|
+
`${runtimeTemplate.returningFunction(
|
|
120
|
+
"Object.assign(exports, res.instance.exports)",
|
|
121
|
+
"res"
|
|
122
|
+
)},`,
|
|
123
|
+
runtimeTemplate.basicFunction("e", [
|
|
124
|
+
'if(res.headers.get("Content-Type") !== "application/wasm") {',
|
|
125
|
+
Template.indent([
|
|
126
|
+
'console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n", e);',
|
|
127
|
+
"return fallback();"
|
|
128
|
+
]),
|
|
129
|
+
"}",
|
|
130
|
+
"throw e;"
|
|
131
|
+
])
|
|
132
|
+
]),
|
|
133
|
+
");"
|
|
134
|
+
])
|
|
135
|
+
]
|
|
136
|
+
: [
|
|
137
|
+
`return WebAssembly.instantiateStreaming(res, importsObj).then(${runtimeTemplate.returningFunction(
|
|
138
|
+
"Object.assign(exports, res.instance.exports)",
|
|
139
|
+
"res"
|
|
140
|
+
)});`
|
|
141
|
+
]
|
|
142
|
+
),
|
|
131
143
|
"}",
|
|
132
144
|
"return fallback();"
|
|
133
145
|
]),
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
const NormalModule = require("../NormalModule");
|
|
8
|
+
const makeSerializable = require("../util/makeSerializable");
|
|
9
|
+
|
|
10
|
+
/** @typedef {import("../Module")} Module */
|
|
11
|
+
/** @typedef {import("../NormalModule").NormalModuleCreateData} NormalModuleCreateData */
|
|
12
|
+
/** @typedef {import("../dependencies/ImportPhase").ImportPhaseName} ImportPhaseName */
|
|
13
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[ImportPhaseName | undefined]>} ObjectDeserializerContext */
|
|
14
|
+
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[ImportPhaseName | undefined]>} ObjectSerializerContext */
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Module class for `webassembly/async` modules. Wasm-specific properties should live here instead of `NormalModule`.
|
|
18
|
+
*/
|
|
19
|
+
class AsyncWasmModule extends NormalModule {
|
|
20
|
+
/**
|
|
21
|
+
* @param {NormalModuleCreateData & { phase: ImportPhaseName | undefined }} options options object
|
|
22
|
+
*/
|
|
23
|
+
constructor(options) {
|
|
24
|
+
super(options);
|
|
25
|
+
/** @type {ImportPhaseName | undefined} */
|
|
26
|
+
this.phase = options.phase;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Returns the unique identifier used to reference this module.
|
|
31
|
+
* @returns {string} a unique identifier of the module
|
|
32
|
+
*/
|
|
33
|
+
identifier() {
|
|
34
|
+
let str = super.identifier();
|
|
35
|
+
|
|
36
|
+
if (this.phase) {
|
|
37
|
+
str = `${str}|${this.phase}`;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return str;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Assuming this module is in the cache. Update the (cached) module with
|
|
45
|
+
* the fresh module from the factory. Usually updates internal references
|
|
46
|
+
* and properties.
|
|
47
|
+
* @param {Module} module fresh module
|
|
48
|
+
* @returns {void}
|
|
49
|
+
*/
|
|
50
|
+
updateCacheModule(module) {
|
|
51
|
+
super.updateCacheModule(module);
|
|
52
|
+
const m = /** @type {AsyncWasmModule} */ (module);
|
|
53
|
+
this.phase = m.phase;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Serializes this instance into the provided serializer context.
|
|
58
|
+
* @param {ObjectSerializerContext} context context
|
|
59
|
+
*/
|
|
60
|
+
serialize(context) {
|
|
61
|
+
context.write(this.phase);
|
|
62
|
+
super.serialize(context);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Restores this instance from the provided deserializer context.
|
|
67
|
+
* @param {ObjectDeserializerContext} context context
|
|
68
|
+
*/
|
|
69
|
+
deserialize(context) {
|
|
70
|
+
this.phase = context.read();
|
|
71
|
+
super.deserialize(context.rest);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
makeSerializable(AsyncWasmModule, "webpack/lib/wasm-async/AsyncWasmModule");
|
|
76
|
+
|
|
77
|
+
module.exports = AsyncWasmModule;
|
|
@@ -16,12 +16,14 @@ const { WEBASSEMBLY_TYPES } = require("../ModuleSourceTypeConstants");
|
|
|
16
16
|
/** @typedef {import("../NormalModule")} NormalModule */
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
+
* Represents the async web assembly generator runtime component.
|
|
19
20
|
* @typedef {object} AsyncWebAssemblyGeneratorOptions
|
|
20
21
|
* @property {boolean=} mangleImports mangle imports
|
|
21
22
|
*/
|
|
22
23
|
|
|
23
24
|
class AsyncWebAssemblyGenerator extends Generator {
|
|
24
25
|
/**
|
|
26
|
+
* Creates an instance of AsyncWebAssemblyGenerator.
|
|
25
27
|
* @param {AsyncWebAssemblyGeneratorOptions} options options
|
|
26
28
|
*/
|
|
27
29
|
constructor(options) {
|
|
@@ -31,6 +33,7 @@ class AsyncWebAssemblyGenerator extends Generator {
|
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
/**
|
|
36
|
+
* Returns the source types available for this module.
|
|
34
37
|
* @param {NormalModule} module fresh module
|
|
35
38
|
* @returns {SourceTypes} available types (do not mutate)
|
|
36
39
|
*/
|
|
@@ -39,6 +42,7 @@ class AsyncWebAssemblyGenerator extends Generator {
|
|
|
39
42
|
}
|
|
40
43
|
|
|
41
44
|
/**
|
|
45
|
+
* Returns the estimated size for the requested source type.
|
|
42
46
|
* @param {NormalModule} module the module
|
|
43
47
|
* @param {SourceType=} type source type
|
|
44
48
|
* @returns {number} estimate size of the module
|
|
@@ -52,6 +56,7 @@ class AsyncWebAssemblyGenerator extends Generator {
|
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
/**
|
|
59
|
+
* Generates generated code for this runtime module.
|
|
55
60
|
* @param {NormalModule} module module for which the code should be generated
|
|
56
61
|
* @param {GenerateContext} generateContext context for generate
|
|
57
62
|
* @returns {Source | null} generated code
|
|
@@ -61,6 +66,7 @@ class AsyncWebAssemblyGenerator extends Generator {
|
|
|
61
66
|
}
|
|
62
67
|
|
|
63
68
|
/**
|
|
69
|
+
* Generates fallback output for the provided error condition.
|
|
64
70
|
* @param {Error} error the error
|
|
65
71
|
* @param {NormalModule} module module for which the code should be generated
|
|
66
72
|
* @param {GenerateContext} generateContext context for generate
|
|
@@ -14,7 +14,7 @@ const Template = require("../Template");
|
|
|
14
14
|
const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
|
|
15
15
|
|
|
16
16
|
/** @typedef {import("webpack-sources").Source} Source */
|
|
17
|
-
/** @typedef {import("./
|
|
17
|
+
/** @typedef {import("./AsyncWasmModule")} AsyncWasmModule */
|
|
18
18
|
/** @typedef {import("../Generator").GenerateContext} GenerateContext */
|
|
19
19
|
/** @typedef {import("../Module")} Module */
|
|
20
20
|
/** @typedef {import("../Module").SourceType} SourceType */
|
|
@@ -22,11 +22,13 @@ const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDe
|
|
|
22
22
|
/** @typedef {import("../NormalModule")} NormalModule */
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
+
* Represents the async web assembly javascript generator runtime component.
|
|
25
26
|
* @typedef {{ request: string, importVar: string, dependency: WebAssemblyImportDependency }} ImportObjRequestItem
|
|
26
27
|
*/
|
|
27
28
|
|
|
28
29
|
class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
29
30
|
/**
|
|
31
|
+
* Returns the source types available for this module.
|
|
30
32
|
* @param {NormalModule} module fresh module
|
|
31
33
|
* @returns {SourceTypes} available types (do not mutate)
|
|
32
34
|
*/
|
|
@@ -35,6 +37,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
/**
|
|
40
|
+
* Returns the estimated size for the requested source type.
|
|
38
41
|
* @param {NormalModule} module the module
|
|
39
42
|
* @param {SourceType=} type source type
|
|
40
43
|
* @returns {number} estimate size of the module
|
|
@@ -50,6 +53,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
50
53
|
}
|
|
51
54
|
|
|
52
55
|
/**
|
|
56
|
+
* Generates generated code for this runtime module.
|
|
53
57
|
* @param {NormalModule} module module for which the code should be generated
|
|
54
58
|
* @param {GenerateContext} generateContext context for generate
|
|
55
59
|
* @returns {Source | null} generated code
|
|
@@ -253,6 +257,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
253
257
|
}
|
|
254
258
|
|
|
255
259
|
/**
|
|
260
|
+
* Generates fallback output for the provided error condition.
|
|
256
261
|
* @param {Error} error the error
|
|
257
262
|
* @param {NormalModule} module module for which the code should be generated
|
|
258
263
|
* @param {GenerateContext} generateContext context for generate
|