@depup/webpack 5.109.2-depup.0 → 5.110.3-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/changes.json +7 -7
- package/lib/APIPlugin.js +123 -17
- package/lib/AsyncDependenciesBlock.js +10 -7
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +10 -6
- package/lib/CacheFacade.js +6 -6
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +46 -35
- package/lib/ChunkGroup.js +7 -7
- package/lib/ChunkTemplate.js +35 -44
- package/lib/CircularModulesPlugin.js +205 -28
- package/lib/CleanPlugin.js +4 -7
- package/lib/CodeGenerationResults.js +11 -8
- package/lib/CompatibilityPlugin.js +7 -7
- package/lib/Compilation.js +688 -409
- package/lib/Compiler.js +53 -38
- package/lib/ConcatenationScope.js +107 -8
- package/lib/ConditionalInitFragment.js +3 -3
- package/lib/ConstPlugin.js +13 -11
- package/lib/ContextExclusionPlugin.js +1 -1
- package/lib/ContextModule.js +146 -54
- package/lib/ContextModuleFactory.js +46 -14
- package/lib/ContextReplacementPlugin.js +12 -14
- package/lib/DefinePlugin.js +121 -37
- package/lib/DependenciesBlock.js +9 -6
- package/lib/Dependency.js +36 -16
- package/lib/DependencyTemplate.js +11 -12
- package/lib/DependencyTemplates.js +3 -3
- package/lib/DotenvPlugin.js +91 -26
- package/lib/DynamicEntryPlugin.js +8 -4
- package/lib/EntryOptionPlugin.js +8 -4
- package/lib/EntryPlugin.js +2 -2
- package/lib/Entrypoint.js +6 -2
- package/lib/EnvironmentPlugin.js +2 -2
- package/lib/EvalDevToolModulePlugin.js +8 -4
- package/lib/EvalSourceMapDevToolPlugin.js +15 -8
- package/lib/ExportsInfo.js +111 -14
- package/lib/ExportsInfoApiPlugin.js +2 -4
- package/lib/ExternalModule.js +232 -77
- package/lib/ExternalModuleFactoryPlugin.js +97 -38
- package/lib/ExternalsPlugin.js +10 -6
- package/lib/FileSystemInfo.js +44 -70
- package/lib/FlagAllModulesAsUsedPlugin.js +2 -3
- package/lib/FlagDependencyExportsPlugin.js +76 -19
- package/lib/FlagDependencyUsagePlugin.js +40 -49
- package/lib/FlagEntryExportAsUsedPlugin.js +1 -1
- package/lib/Generator.js +36 -15
- package/lib/HotModuleReplacementPlugin.js +16 -44
- package/lib/IgnorePlugin.js +8 -4
- package/lib/IgnoreWarningsPlugin.js +2 -2
- package/lib/InitFragment.js +8 -4
- package/lib/JavascriptMetaInfoPlugin.js +35 -4
- package/lib/LazyBarrel.js +3 -4
- package/lib/LibraryTemplatePlugin.js +10 -6
- package/lib/LoaderOptionsPlugin.js +7 -3
- package/lib/LoaderTargetPlugin.js +1 -1
- package/lib/MainTemplate.js +49 -42
- package/lib/ManifestPlugin.js +12 -11
- package/lib/Module.js +62 -33
- package/lib/ModuleFactory.js +3 -3
- package/lib/ModuleFilenameHelpers.js +9 -4
- package/lib/ModuleGraph.js +195 -21
- package/lib/ModuleGraphConnection.js +6 -13
- package/lib/ModuleInfoHeaderPlugin.js +8 -10
- package/lib/ModuleTemplate.js +62 -63
- package/lib/MultiCompiler.js +130 -64
- package/lib/MultiStats.js +40 -9
- package/lib/MultiWatching.js +3 -3
- package/lib/NoEmitOnErrorsPlugin.js +1 -1
- package/lib/NodeStuffPlugin.js +29 -19
- package/lib/NormalModule.js +152 -103
- package/lib/NormalModuleFactory.js +555 -110
- package/lib/NormalModuleReplacementPlugin.js +5 -8
- package/lib/NullFactory.js +6 -2
- package/lib/OptionsApply.js +7 -3
- package/lib/Parser.js +7 -3
- package/lib/PlatformPlugin.js +2 -2
- package/lib/PrefetchPlugin.js +1 -1
- package/lib/ProgressPlugin.js +16 -13
- package/lib/ProvidePlugin.js +3 -5
- package/lib/RawModule.js +25 -17
- package/lib/RecordIdsPlugin.js +3 -3
- package/lib/RequestShortener.js +1 -1
- package/lib/ResolverFactory.js +2 -2
- package/lib/RuntimeGlobals.js +22 -10
- package/lib/RuntimeModule.js +29 -19
- package/lib/RuntimePlugin.js +335 -169
- package/lib/RuntimeTemplate.js +2761 -316
- package/lib/SelfModuleFactory.js +7 -3
- package/lib/SourceMapDevToolModuleOptionsPlugin.js +6 -2
- package/lib/SourceMapDevToolPlugin.js +30 -20
- package/lib/Stats.js +3 -4
- package/lib/Template.js +32 -22
- package/lib/TemplatedPathPlugin.js +96 -14
- package/lib/UseStrictPlugin.js +4 -6
- package/lib/WarnCaseSensitiveModulesPlugin.js +4 -4
- package/lib/WarnDeprecatedOptionPlugin.js +1 -1
- package/lib/WarnNoModeSetPlugin.js +1 -1
- package/lib/WatchIgnorePlugin.js +8 -6
- package/lib/Watching.js +8 -8
- package/lib/WebpackIsIncludedPlugin.js +2 -4
- package/lib/WebpackOptionsApply.js +308 -18
- package/lib/WebpackOptionsDefaulter.js +6 -2
- package/lib/asset/AssetBytesGenerator.js +12 -10
- package/lib/asset/AssetBytesParser.js +2 -4
- package/lib/asset/AssetGenerator.js +188 -95
- package/lib/asset/AssetModule.js +7 -3
- package/lib/asset/AssetModulesPlugin.js +110 -38
- package/lib/asset/AssetParser.js +9 -7
- package/lib/asset/AssetSourceGenerator.js +60 -13
- package/lib/asset/AssetSourceParser.js +2 -4
- package/lib/asset/RawDataUrlModule.js +24 -16
- package/lib/asset/WebManifestGenerator.js +8 -10
- package/lib/asset/WebManifestParser.js +24 -10
- package/lib/async-modules/AsyncModuleHelpers.js +12 -6
- package/lib/async-modules/AwaitDependenciesInitFragment.js +2 -2
- package/lib/async-modules/InferAsyncModulesPlugin.js +2 -2
- package/lib/async-modules/isGeneratorLowered.js +4 -4
- package/lib/buildChunkGraph.js +36 -27
- package/lib/bun/BunTargetPlugin.js +1 -1
- package/lib/cache/AddBuildDependenciesPlugin.js +1 -1
- package/lib/cache/AddManagedPathsPlugin.js +1 -1
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +18 -10
- package/lib/cache/MemoryWithGcCachePlugin.js +34 -22
- package/lib/cache/PackFileCacheStrategy.js +30 -23
- package/lib/cache/ResolverCachePlugin.js +38 -18
- package/lib/cache/getLazyHashedEtag.js +1 -2
- package/lib/cache/mergeEtags.js +1 -1
- package/lib/cli.js +1 -3
- package/lib/config/browserslistTargetHandler.js +41 -5
- package/lib/config/defaults.js +270 -78
- package/lib/config/defineConfig.js +10 -2
- package/lib/config/getClaimedAssetTypes.js +65 -0
- package/lib/config/normalization.js +46 -16
- package/lib/config/target.js +46 -3
- package/lib/container/ContainerEntryDependency.js +1 -1
- package/lib/container/ContainerEntryModule.js +24 -15
- package/lib/container/ContainerEntryModuleFactory.js +7 -3
- package/lib/container/ContainerPlugin.js +9 -10
- package/lib/container/ContainerReferencePlugin.js +6 -2
- package/lib/container/FallbackDependency.js +1 -1
- package/lib/container/FallbackModule.js +24 -17
- package/lib/container/FallbackModuleFactory.js +7 -3
- package/lib/container/HoistContainerReferencesPlugin.js +6 -11
- package/lib/container/ModuleFederationPlugin.js +7 -24
- package/lib/container/RemoteModule.js +27 -19
- package/lib/container/RemoteRuntimeModule.js +10 -8
- package/lib/container/moduleFederationHooks.js +32 -0
- package/lib/css/CssGenerator.js +171 -43
- package/lib/css/CssInjectStyleRuntimeModule.js +7 -5
- package/lib/css/CssLoadingRuntimeModule.js +84 -32
- package/lib/css/CssModule.js +10 -7
- package/lib/css/CssModulesPlugin.js +172 -100
- package/lib/css/CssParser.js +1113 -568
- package/lib/css/CssServerStylesRuntimeModule.js +54 -0
- package/lib/css/cssMinify.js +168 -0
- package/lib/css/data.js +5334 -0
- package/lib/css/syntax.js +9647 -232
- package/lib/debug/ProfilingPlugin.js +14 -9
- package/lib/deno/DenoTargetPlugin.js +1 -1
- package/lib/dependencies/AMDDefineDependency.js +112 -87
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +30 -17
- package/lib/dependencies/AMDPlugin.js +9 -7
- package/lib/dependencies/AMDRequireArrayDependency.js +5 -5
- package/lib/dependencies/AMDRequireContextDependency.js +2 -2
- package/lib/dependencies/AMDRequireDependenciesBlock.js +1 -1
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +25 -14
- package/lib/dependencies/AMDRequireDependency.js +8 -7
- package/lib/dependencies/AMDRequireItemDependency.js +1 -1
- package/lib/dependencies/AMDRuntimeModules.js +21 -1
- package/lib/dependencies/BuildTimeConstDependency.js +102 -0
- package/lib/dependencies/CachedConstDependency.js +11 -8
- package/lib/dependencies/CommonJsDependencyHelpers.js +67 -46
- package/lib/dependencies/CommonJsExportRequireDependency.js +121 -45
- package/lib/dependencies/CommonJsExportsDependency.js +53 -49
- package/lib/dependencies/CommonJsExportsParserPlugin.js +207 -25
- package/lib/dependencies/CommonJsFullRequireDependency.js +119 -34
- package/lib/dependencies/CommonJsImportsParserPlugin.js +100 -50
- package/lib/dependencies/CommonJsObjectExportDependency.js +188 -0
- package/lib/dependencies/CommonJsPlugin.js +35 -6
- package/lib/dependencies/CommonJsRequireContextDependency.js +5 -6
- package/lib/dependencies/CommonJsRequireDependency.js +170 -27
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +63 -38
- package/lib/dependencies/ConstDependency.js +8 -9
- package/lib/dependencies/ContextDependency.js +12 -8
- package/lib/dependencies/ContextDependencyHelpers.js +14 -9
- package/lib/dependencies/ContextDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +24 -11
- package/lib/dependencies/ContextElementDependency.js +31 -12
- package/lib/dependencies/CreateRequireParserPlugin.js +12 -7
- package/lib/dependencies/CreateScriptUrlDependency.js +4 -4
- package/lib/dependencies/CssIcssExportDependency.js +56 -28
- package/lib/dependencies/CssIcssImportDependency.js +17 -13
- package/lib/dependencies/CssIcssSymbolDependency.js +9 -10
- package/lib/dependencies/CssImportDependency.js +18 -9
- package/lib/dependencies/CssUrlDependency.js +17 -13
- package/lib/dependencies/DllEntryDependency.js +1 -1
- package/lib/dependencies/DynamicExports.js +2 -2
- package/lib/dependencies/ExportBindingInitFragment.js +36 -9
- package/lib/dependencies/ExportsInfoDependency.js +7 -8
- package/lib/dependencies/ExternalModuleDependency.js +9 -5
- package/lib/dependencies/ExternalModuleInitFragment.js +2 -2
- package/lib/dependencies/ExternalModuleInitFragmentDependency.js +8 -5
- package/lib/dependencies/HarmonyAcceptDependency.js +5 -5
- package/lib/dependencies/HarmonyCompatibilityDependency.js +52 -17
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +11 -7
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +23 -14
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +80 -12
- package/lib/dependencies/HarmonyExportExpressionDependency.js +23 -18
- package/lib/dependencies/HarmonyExportHeaderDependency.js +7 -7
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +286 -80
- package/lib/dependencies/HarmonyExportInitFragment.js +18 -6
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +51 -14
- package/lib/dependencies/HarmonyExports.js +7 -4
- package/lib/dependencies/HarmonyImportDependency.js +121 -60
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +124 -38
- package/lib/dependencies/HarmonyImportGuard.js +20 -30
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +152 -9
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +97 -49
- package/lib/dependencies/HarmonyModulesPlugin.js +7 -3
- package/lib/dependencies/HarmonyTopLevelThisParserPlugin.js +1 -3
- package/lib/dependencies/HtmlEntryDependency.js +49 -31
- package/lib/dependencies/HtmlInlineHtmlDependency.js +7 -8
- package/lib/dependencies/HtmlInlineScriptDependency.js +11 -8
- package/lib/dependencies/HtmlInlineStyleDependency.js +7 -10
- package/lib/dependencies/HtmlSourceDependency.js +22 -14
- package/lib/dependencies/ImportContextDependency.js +45 -5
- package/lib/dependencies/ImportDependency.js +33 -50
- package/lib/dependencies/ImportEagerDependency.js +6 -9
- package/lib/dependencies/ImportMetaContextDependency.js +2 -2
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +14 -13
- package/lib/dependencies/ImportMetaContextPlugin.js +7 -3
- package/lib/dependencies/ImportMetaGlobDependency.js +2 -2
- package/lib/dependencies/ImportMetaGlobDependencyParserPlugin.js +2 -3
- package/lib/dependencies/ImportMetaGlobHelpers.js +19 -22
- package/lib/dependencies/ImportMetaHotAcceptDependency.js +1 -1
- package/lib/dependencies/ImportMetaHotDeclineDependency.js +1 -1
- package/lib/dependencies/ImportMetaPlugin.js +154 -71
- package/lib/dependencies/ImportMetaResolveDependency.js +3 -4
- package/lib/dependencies/ImportParserPlugin.js +73 -49
- package/lib/dependencies/ImportPhase.js +12 -5
- package/lib/dependencies/ImportPlugin.js +7 -3
- package/lib/dependencies/ImportWeakDependency.js +6 -9
- package/lib/dependencies/JsonExportsDependency.js +11 -7
- package/lib/dependencies/LoaderDependency.js +2 -2
- package/lib/dependencies/LoaderImportDependency.js +2 -2
- package/lib/dependencies/LoaderPlugin.js +11 -7
- package/lib/dependencies/LocalModuleDependency.js +5 -5
- package/lib/dependencies/LocalModulesHelpers.js +1 -1
- package/lib/dependencies/ModuleDecoratorDependency.js +6 -7
- package/lib/dependencies/ModuleDependency.js +9 -6
- package/lib/dependencies/ModuleDependencyTemplateAsId.js +4 -4
- package/lib/dependencies/ModuleDependencyTemplateAsRequireId.js +3 -3
- package/lib/dependencies/ModuleHotAcceptDependency.js +1 -1
- package/lib/dependencies/ModuleHotDeclineDependency.js +1 -1
- package/lib/dependencies/ModuleInitFragmentDependency.js +24 -10
- package/lib/dependencies/NullDependency.js +3 -3
- package/lib/dependencies/ProvidedDependency.js +14 -10
- package/lib/dependencies/PureExpressionDependency.js +9 -10
- package/lib/dependencies/RequireContextDependency.js +2 -2
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +2 -4
- package/lib/dependencies/RequireContextPlugin.js +8 -4
- package/lib/dependencies/RequireEnsureDependenciesBlock.js +2 -2
- package/lib/dependencies/RequireEnsureDependenciesBlockParserPlugin.js +5 -8
- package/lib/dependencies/RequireEnsureDependency.js +8 -7
- package/lib/dependencies/RequireEnsurePlugin.js +7 -3
- package/lib/dependencies/RequireHeaderDependency.js +50 -12
- package/lib/dependencies/RequireIncludeDependency.js +6 -6
- package/lib/dependencies/RequireIncludeDependencyParserPlugin.js +2 -3
- package/lib/dependencies/RequireIncludePlugin.js +7 -3
- package/lib/dependencies/RequireJsStuffPlugin.js +7 -3
- package/lib/dependencies/RequireResolveContextDependency.js +2 -2
- package/lib/dependencies/RequireResolveDependency.js +4 -4
- package/lib/dependencies/RequireResolveHeaderDependency.js +4 -4
- package/lib/dependencies/RuntimeRequirementsDependency.js +5 -6
- package/lib/dependencies/StaticExportsDependency.js +2 -2
- package/lib/dependencies/SystemPlugin.js +10 -6
- package/lib/dependencies/SystemRuntimeModule.js +10 -0
- package/lib/dependencies/TopLevelAwaitDependency.js +11 -7
- package/lib/dependencies/URLContextDependency.js +2 -2
- package/lib/dependencies/URLDependency.js +110 -64
- package/lib/dependencies/URLPlugin.js +7 -3
- package/lib/dependencies/UnsupportedDependency.js +4 -4
- package/lib/dependencies/WebAssemblyExportImportedDependency.js +3 -4
- package/lib/dependencies/WebAssemblyImportDependency.js +5 -5
- package/lib/dependencies/WebpackIsIncludedDependency.js +6 -6
- package/lib/dependencies/WorkerAndWorkletPlugin.js +47 -28
- package/lib/dependencies/WorkerDependency.js +22 -22
- package/lib/dependencies/WorkletDependency.js +18 -21
- package/lib/dependencies/getFunctionExpression.js +8 -4
- package/lib/dependencies/importOptionsCheck.js +47 -0
- package/lib/dependencies/processExportInfo.js +5 -5
- package/lib/dll/DelegatedModule.js +34 -22
- package/lib/dll/DelegatedModuleFactoryPlugin.js +15 -7
- package/lib/dll/DelegatedPlugin.js +2 -2
- package/lib/dll/DllEntryPlugin.js +2 -2
- package/lib/dll/DllModule.js +22 -15
- package/lib/dll/DllModuleFactory.js +7 -3
- package/lib/dll/DllPlugin.js +7 -5
- package/lib/dll/DllReferencePlugin.js +10 -7
- package/lib/dll/LibManifestPlugin.js +5 -5
- package/lib/electron/ElectronTargetPlugin.js +53 -49
- package/lib/errors/AsyncChunkWaterfallWarning.js +36 -0
- package/lib/errors/AsyncDependencyToInitialChunkError.js +2 -2
- package/lib/errors/BroadContextsWarning.js +43 -0
- package/lib/errors/BuildCycleError.js +1 -1
- package/lib/errors/CacheEffectivenessWarning.js +55 -0
- package/lib/errors/ChunkRenderError.js +1 -1
- package/lib/errors/CircularDependenciesWarning.js +38 -0
- package/lib/errors/CodeGenerationError.js +1 -1
- package/lib/errors/CommentCompilationWarning.js +1 -1
- package/lib/errors/ConflictingResourceHintsWarning.js +35 -0
- package/lib/errors/DotenvFileError.js +29 -0
- package/lib/errors/DuplicateModulesWarning.js +45 -0
- package/lib/errors/DynamicExportsWarning.js +30 -0
- package/lib/errors/EmbeddedSourceMapsWarning.js +25 -0
- package/lib/errors/EntrypointOverlapWarning.js +45 -0
- package/lib/errors/EnvironmentNotSupportAsyncWarning.js +2 -2
- package/lib/errors/EvalUsageWarning.js +28 -0
- package/lib/errors/HookWebpackError.js +5 -5
- package/lib/errors/HotspotsWarning.js +57 -0
- package/lib/errors/IgnoreErrorModuleFactory.js +7 -3
- package/lib/errors/ImportedBindingAssignmentError.js +30 -0
- package/lib/errors/InlinedAssetsWarning.js +36 -0
- package/lib/errors/InvalidDependenciesModuleWarning.js +1 -1
- package/lib/errors/LargeModulesWarning.js +45 -0
- package/lib/errors/LegacyJavascriptWarning.js +48 -0
- package/lib/errors/MissingSideEffectsWarning.js +36 -0
- package/lib/errors/MixedExportsWarning.js +41 -0
- package/lib/errors/ModuleDependencyError.js +13 -16
- package/lib/errors/ModuleDependencyWarning.js +5 -15
- package/lib/errors/ModuleHashingError.js +1 -1
- package/lib/errors/ModuleNotFoundError.js +2 -2
- package/lib/errors/ModuleParseError.js +1 -2
- package/lib/errors/ModuleRestoreError.js +1 -1
- package/lib/errors/ModuleStoreError.js +1 -1
- package/lib/errors/NodeStuffInWebError.js +1 -1
- package/lib/errors/OsDependentRuleWarning.js +31 -0
- package/lib/errors/PureAnnotationsWarning.js +36 -0
- package/lib/errors/RedundantDynamicImportWarning.js +31 -0
- package/lib/errors/ScopeHoistingBailoutsWarning.js +41 -0
- package/lib/errors/SplitChunksCappedWarning.js +41 -0
- package/lib/errors/TinyChunksWarning.js +40 -0
- package/lib/errors/TopLevelThisWarning.js +34 -0
- package/lib/errors/UnsplitVendorsWarning.js +42 -0
- package/lib/errors/UnsupportedFeatureWarning.js +1 -1
- package/lib/errors/UnusedAliasesWarning.js +29 -0
- package/lib/errors/UnusedDefinesWarning.js +29 -0
- package/lib/errors/UnusedExternalsWarning.js +29 -0
- package/lib/errors/UnusedReexportsWarning.js +42 -0
- package/lib/errors/UnusedRuleWarning.js +29 -0
- package/lib/errors/WebpackError.js +9 -5
- package/lib/errors/deriveStackFromNestedError.js +90 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +2 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +37 -19
- package/lib/esm/ModuleChunkLoadingPlugin.js +86 -51
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +161 -62
- package/lib/hmr/HotModuleReplacement.runtime.js +24 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -1
- package/lib/hmr/LazyCompilationPlugin.js +45 -24
- package/lib/hmr/lazyCompilationBackend.js +9 -6
- package/lib/hmr/parserHooks.js +56 -0
- package/lib/html/HtmlGenerator.js +277 -77
- package/lib/html/HtmlModule.js +7 -3
- package/lib/html/HtmlModulesPlugin.js +366 -200
- package/lib/html/HtmlParser.js +31 -86
- package/lib/html/data.js +1928 -0
- package/lib/html/htmlMinify.js +288 -0
- package/lib/html/syntax.js +6034 -1384
- package/lib/ids/ChunkModuleIdRangePlugin.js +3 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +1 -1
- package/lib/ids/DeterministicModuleIdsPlugin.js +2 -2
- package/lib/ids/HashedModuleIdsPlugin.js +6 -2
- package/lib/ids/IdHelpers.js +7 -8
- package/lib/ids/NamedChunkIdsPlugin.js +1 -1
- package/lib/ids/NamedModuleIdsPlugin.js +1 -1
- package/lib/ids/NaturalChunkIdsPlugin.js +2 -2
- package/lib/ids/NaturalModuleIdsPlugin.js +1 -1
- package/lib/ids/OccurrenceChunkIdsPlugin.js +7 -3
- package/lib/ids/OccurrenceModuleIdsPlugin.js +7 -3
- package/lib/ids/SyncModuleIdsPlugin.js +4 -4
- package/lib/index.js +10 -0
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +3 -3
- package/lib/javascript/BasicEvaluatedExpression.js +18 -14
- package/lib/javascript/ChunkFormatHelpers.js +6 -6
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +11 -5
- package/lib/javascript/EnableChunkLoadingPlugin.js +2 -2
- package/lib/javascript/JavascriptGenerator.js +65 -165
- package/lib/javascript/JavascriptModule.js +9 -3
- package/lib/javascript/JavascriptModulesPlugin.js +103 -123
- package/lib/javascript/JavascriptParser.js +242 -99
- package/lib/javascript/JavascriptParserHelpers.js +10 -7
- package/lib/javascript/ScopeAnalyzer.js +1094 -0
- package/lib/javascript/StartupHelpers.js +55 -9
- package/lib/javascript/syntax.js +2678 -232
- package/lib/json/JsonData.js +8 -4
- package/lib/json/JsonGenerator.js +38 -16
- package/lib/json/JsonModule.js +7 -3
- package/lib/json/JsonModulesPlugin.js +1 -1
- package/lib/json/JsonParser.js +5 -6
- package/lib/library/AbstractLibraryPlugin.js +20 -14
- package/lib/library/AmdLibraryPlugin.js +11 -7
- package/lib/library/AssignLibraryPlugin.js +19 -13
- package/lib/library/EnableLibraryPlugin.js +2 -2
- package/lib/library/ExportPropertyLibraryPlugin.js +15 -8
- package/lib/library/JsonpLibraryPlugin.js +11 -7
- package/lib/library/ModuleLibraryPlugin.js +256 -64
- package/lib/library/SystemLibraryPlugin.js +12 -8
- package/lib/library/UmdLibraryPlugin.js +62 -25
- package/lib/loaders/LoaderRunner.js +47 -6
- package/lib/loaders/loadLoader.js +8 -4
- package/lib/logging/createConsoleLogger.js +7 -4
- package/lib/node/CommonJsChunkLoadingPlugin.js +36 -22
- package/lib/node/NodeEnvironmentPlugin.js +17 -3
- package/lib/node/NodeSourcePlugin.js +1 -1
- package/lib/node/NodeTargetPlugin.js +4 -3
- package/lib/node/NodeTemplatePlugin.js +1 -1
- package/lib/node/NodeWatchFileSystem.js +70 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +65 -19
- package/lib/node/ReadFileCompileWasmPlugin.js +28 -16
- package/lib/node/RequireChunkLoadingRuntimeModule.js +35 -38
- package/lib/node/nodeConsole.js +7 -3
- package/lib/optimize/AggressiveMergingPlugin.js +2 -2
- package/lib/optimize/AggressiveSplittingPlugin.js +9 -6
- package/lib/optimize/ConcatenatedModule.js +1030 -476
- package/lib/optimize/ConstExportsPlugin.js +16 -7
- package/lib/optimize/EnsureChunkConditionsPlugin.js +3 -3
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -4
- package/lib/optimize/InlineExports.js +130 -5
- package/lib/optimize/InnerGraph.js +28 -12
- package/lib/optimize/InnerGraphPlugin.js +23 -18
- package/lib/optimize/LimitChunkCountPlugin.js +7 -3
- package/lib/optimize/MangleExportsPlugin.js +7 -8
- package/lib/optimize/MergeDuplicateChunksPlugin.js +7 -3
- package/lib/optimize/MinChunkSizePlugin.js +7 -3
- package/lib/optimize/ModuleConcatenationPlugin.js +51 -35
- package/lib/optimize/RealContentHashPlugin.js +121 -41
- package/lib/optimize/RemoveEmptyChunksPlugin.js +2 -2
- package/lib/optimize/RemoveParentModulesPlugin.js +4 -4
- package/lib/optimize/RuntimeChunkPlugin.js +2 -2
- package/lib/optimize/SideEffectsFlagPlugin.js +262 -39
- package/lib/optimize/SplitChunksPlugin.js +86 -24
- package/lib/performance/AssetsOverSizeLimitWarning.js +10 -2
- package/lib/performance/AsyncChunkWaterfallsPlugin.js +136 -0
- package/lib/performance/BroadContextsPlugin.js +142 -0
- package/lib/performance/CacheEffectivenessPlugin.js +125 -0
- package/lib/performance/ConflictingResourceHintsPlugin.js +99 -0
- package/lib/performance/DuplicateModulesPlugin.js +93 -0
- package/lib/performance/DuplicatePackagesPlugin.js +119 -0
- package/lib/performance/DuplicatePackagesWarning.js +84 -0
- package/lib/performance/DynamicExportsPlugin.js +120 -0
- package/lib/performance/EmbeddedSourceMapsPlugin.js +71 -0
- package/lib/performance/EntrypointOverlapPlugin.js +122 -0
- package/lib/performance/EntrypointsOverSizeLimitWarning.js +1 -1
- package/lib/performance/EvalUsagePlugin.js +115 -0
- package/lib/performance/HotspotsPlugin.js +296 -0
- package/lib/performance/InlinedAssetsPlugin.js +99 -0
- package/lib/performance/LargeModulesPlugin.js +126 -0
- package/lib/performance/LegacyJavascriptPlugin.js +139 -0
- package/lib/performance/MissingSideEffectsPlugin.js +138 -0
- package/lib/performance/MixedExportsPlugin.js +136 -0
- package/lib/performance/OsDependentRuleWarningPlugin.js +178 -0
- package/lib/performance/PureAnnotationsPlugin.js +219 -0
- package/lib/performance/RedundantDynamicImportsPlugin.js +225 -0
- package/lib/performance/RuntimeInLargeChunkWarning.js +27 -0
- package/lib/performance/ScopeHoistingBailoutsPlugin.js +164 -0
- package/lib/performance/SizeLimitsPlugin.js +139 -7
- package/lib/performance/SplitChunksCappedPlugin.js +99 -0
- package/lib/performance/TinyChunksPlugin.js +128 -0
- package/lib/performance/TopLevelThisPlugin.js +208 -0
- package/lib/performance/UnsplitVendorsPlugin.js +112 -0
- package/lib/performance/UnusedAliasesPlugin.js +253 -0
- package/lib/performance/UnusedDefinesPlugin.js +87 -0
- package/lib/performance/UnusedExternalsPlugin.js +110 -0
- package/lib/performance/UnusedReexportsPlugin.js +159 -0
- package/lib/performance/UnusedRuleWarningPlugin.js +105 -0
- package/lib/performance/getModuleSize.js +22 -0
- package/lib/performance/getSourceModules.js +22 -0
- package/lib/performance/hasOnlyUnusedExports.js +40 -0
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +24 -10
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +63 -46
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +2 -3
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +2 -2
- package/lib/prefetch/ResourceHintPlugin.js +295 -79
- package/lib/prefetch/ResourceHintRuntimeModule.js +1 -21
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +10 -133
- package/lib/prefetch/parseResourceHintOptions.js +31 -4
- package/lib/rules/BasicEffectRulePlugin.js +2 -2
- package/lib/rules/BasicMatcherRulePlugin.js +8 -4
- package/lib/rules/GlobMatcherRulePlugin.js +68 -0
- package/lib/rules/ObjectMatcherRulePlugin.js +12 -5
- package/lib/rules/RuleSetCompiler.js +146 -12
- package/lib/rules/UseEffectRulePlugin.js +18 -11
- package/lib/runtime/AsyncModuleGeneratorRuntimeModule.js +11 -1
- package/lib/runtime/AsyncModuleRuntimeModule.js +6 -2
- package/lib/runtime/AutoPublicPathRuntimeModule.js +15 -20
- package/lib/runtime/BaseUriRuntimeModule.js +33 -7
- package/lib/runtime/ChunkNameRuntimeModule.js +10 -0
- package/lib/runtime/CompatGetDefaultExportRuntimeModule.js +11 -1
- package/lib/runtime/CompatRuntimeModule.js +5 -3
- package/lib/runtime/ConcatenationWrapRuntimeModule.js +90 -0
- package/lib/runtime/ConstructRequireRuntimeModule.js +52 -0
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +8 -6
- package/lib/runtime/CreateScriptRuntimeModule.js +11 -1
- package/lib/runtime/CreateScriptUrlRuntimeModule.js +11 -1
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +56 -38
- package/lib/runtime/EnsureChunkRuntimeModule.js +18 -2
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +62 -37
- package/lib/runtime/GetFullHashRuntimeModule.js +12 -2
- package/lib/runtime/GetMainFilenameRuntimeModule.js +12 -2
- package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +2 -2
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +16 -3
- package/lib/runtime/GlobalRuntimeModule.js +18 -0
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +12 -2
- package/lib/runtime/LoadScriptRuntimeModule.js +2 -2
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +34 -7
- package/lib/runtime/MakeNamespaceObjectRuntimeModule.js +22 -6
- package/lib/runtime/NonceRuntimeModule.js +10 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +5 -3
- package/lib/runtime/PublicPathRuntimeModule.js +12 -2
- package/lib/runtime/RelativeUrlRuntimeModule.js +11 -1
- package/lib/runtime/RuntimeIdRuntimeModule.js +12 -2
- package/lib/runtime/SetAnonymousDefaultNameRuntimeModule.js +11 -1
- package/lib/runtime/StartupChunkDependenciesPlugin.js +18 -9
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +3 -3
- package/lib/runtime/StartupEntrypointRuntimeModule.js +21 -4
- package/lib/runtime/SystemContextRuntimeModule.js +10 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +1 -1
- package/lib/runtime/WorkerRuntimeModule.js +11 -1
- package/lib/runtime/baseUri.js +63 -0
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/FileUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +46 -20
- package/lib/schemes/VirtualUrlPlugin.js +13 -7
- package/lib/serialization/AggregateErrorSerializer.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +4 -4
- package/lib/serialization/ErrorObjectSerializer.js +1 -1
- package/lib/serialization/FileMiddleware.js +22 -9
- package/lib/serialization/ObjectMiddleware.js +139 -114
- package/lib/serialization/PlainObjectSerializer.js +19 -16
- package/lib/sharing/ConsumeSharedModule.js +30 -21
- package/lib/sharing/ConsumeSharedPlugin.js +18 -10
- package/lib/sharing/ConsumeSharedRuntimeModule.js +6 -9
- package/lib/sharing/ProvideSharedModule.js +25 -16
- package/lib/sharing/ProvideSharedModuleFactory.js +7 -3
- package/lib/sharing/ProvideSharedPlugin.js +8 -4
- package/lib/sharing/SharePlugin.js +17 -5
- package/lib/sharing/ShareRuntimeModule.js +4 -4
- package/lib/sharing/resolveMatchedConfigs.js +9 -6
- package/lib/sharing/utils.js +1 -3
- package/lib/stats/DefaultStatsFactoryPlugin.js +50 -29
- package/lib/stats/DefaultStatsPresetPlugin.js +17 -8
- package/lib/stats/DefaultStatsPrinterPlugin.js +36 -26
- package/lib/stats/StatsFactory.js +25 -26
- package/lib/stats/StatsPrinter.js +16 -12
- package/lib/typescript/TypeScriptPlugin.js +20 -24
- package/lib/url/URLParserPlugin.js +26 -13
- package/lib/util/ArrayQueue.js +3 -3
- package/lib/util/AsyncQueue.js +4 -3
- package/lib/util/Hash.js +5 -1
- package/lib/util/LazySet.js +35 -22
- package/lib/util/LocConverter.js +36 -13
- package/lib/util/SourceProcessor.js +1066 -24
- package/lib/util/StringXor.js +1 -1
- package/lib/util/URLAbsoluteSpecifier.js +3 -1
- package/lib/util/chainedImports.js +9 -5
- package/lib/util/cleverMerge.js +1 -1
- package/lib/util/comparators.js +45 -14
- package/lib/util/concatenate.js +203 -77
- package/lib/util/conventions.js +10 -2
- package/lib/util/createHash.js +2 -2
- package/lib/util/createHooksRegistry.js +8 -10
- package/lib/util/createMappings.js +25 -3
- package/lib/util/dataURL.js +225 -1
- package/lib/util/extractSourceMap.js +4 -3
- package/lib/util/findCaseMismatch.js +139 -0
- package/lib/util/formatLocation.js +1 -2
- package/lib/util/fs.js +22 -5
- package/lib/util/globUtils.js +298 -24
- package/lib/util/hash/BatchedHash.js +5 -1
- package/lib/util/hash/BulkUpdateHash.js +5 -1
- package/lib/util/hash/DebugHash.js +5 -1
- package/lib/util/hash/hash-digest.js +6 -2
- package/lib/util/identifier.js +4 -0
- package/lib/util/implicitTypeLoaderFallback.js +1 -1
- package/lib/util/internalSerializables.js +8 -0
- package/lib/util/lazyModule.js +56 -0
- package/lib/util/makeSerializable.js +7 -3
- package/lib/util/matchAlias.js +25 -0
- package/lib/util/mimeTypes.js +11 -5
- package/lib/util/nonNumericOnlyHash.js +4 -3
- package/lib/util/parseJson.js +5 -3
- package/lib/util/preloadModuleType.js +32 -0
- package/lib/util/registerExternalSerializer.js +7 -5
- package/lib/util/removeBOM.js +82 -1
- package/lib/util/runtime.js +2 -2
- package/lib/util/semver.js +1 -1
- package/lib/util/serialization.js +28 -28
- package/lib/util/source.js +2 -2
- package/lib/util/traverseDestructuringAssignmentProperties.js +6 -2
- package/lib/wasm/EnableWasmLoadingPlugin.js +10 -8
- package/lib/wasm/wasmModuleFilename.js +54 -0
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +43 -21
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +45 -21
- package/lib/wasm-async/AsyncWasmModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +4 -5
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +57 -17
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +34 -18
- package/lib/wasm-async/AsyncWebAssemblyParser.js +9 -8
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +29 -8
- package/lib/wasm-sync/SyncWasmModule.js +2 -2
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +18 -13
- package/lib/wasm-sync/WasmFinalizeExportsPlugin.js +4 -5
- package/lib/wasm-sync/WebAssemblyGenerator.js +18 -17
- package/lib/wasm-sync/WebAssemblyInInitialChunkError.js +4 -4
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +7 -7
- package/lib/wasm-sync/WebAssemblyModulesPlugin.js +24 -11
- package/lib/wasm-sync/WebAssemblyParser.js +4 -6
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/FetchCompileAsyncWasmPlugin.js +105 -19
- package/lib/web/FetchCompileWasmPlugin.js +48 -16
- package/lib/web/JsonpChunkLoadingPlugin.js +47 -23
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +50 -20
- package/lib/web/JsonpTemplatePlugin.js +2 -2
- package/lib/webpack.js +22 -11
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +60 -26
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +30 -32
- package/lib/webworker/WebWorkerTemplatePlugin.js +1 -1
- package/module.d.ts +1 -0
- package/package.json +32 -25
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +667 -34
- package/schemas/plugins/HtmlParserOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.json +10 -0
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.json +10 -0
- package/schemas/plugins/css/CssAutoOrModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssModuleParserOptions.check.js +1 -1
- package/schemas/plugins/css/CssParserOptions.check.js +1 -1
- package/types.d.ts +3223 -465
- package/lib/runtime/CommonJsWrapRuntimeModule.js +0 -37
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
const NormalModule = require("../NormalModule");
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
10
|
+
/** @import Module from "../Module" */
|
|
11
|
+
/** @import { NormalModuleCreateData } from "../NormalModule" */
|
|
12
|
+
/** @import { ImportPhaseName } from "../dependencies/ImportPhase" */
|
|
13
13
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<[ImportPhaseName | undefined]>} ObjectDeserializerContext */
|
|
14
14
|
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext<[ImportPhaseName | undefined]>} ObjectSerializerContext */
|
|
15
15
|
|
|
@@ -9,11 +9,10 @@ const { RawSource } = require("webpack-sources");
|
|
|
9
9
|
const Generator = require("../Generator");
|
|
10
10
|
const { WEBASSEMBLY_TYPES } = require("../ModuleSourceTypeConstants");
|
|
11
11
|
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @typedef {import("../NormalModule")} NormalModule */
|
|
12
|
+
/** @import { Source } from "webpack-sources" */
|
|
13
|
+
/** @import { GenerateContext } from "../Generator" */
|
|
14
|
+
/** @import { SourceType, SourceTypes } from "../Module" */
|
|
15
|
+
/** @import NormalModule from "../NormalModule" */
|
|
17
16
|
|
|
18
17
|
/**
|
|
19
18
|
* Represents the async web assembly generator runtime component.
|
|
@@ -13,13 +13,11 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
13
13
|
const Template = require("../Template");
|
|
14
14
|
const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
|
|
15
15
|
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @
|
|
21
|
-
/** @typedef {import("../Module").SourceTypes} SourceTypes */
|
|
22
|
-
/** @typedef {import("../NormalModule")} NormalModule */
|
|
16
|
+
/** @import { Source } from "webpack-sources" */
|
|
17
|
+
/** @import AsyncWasmModule from "./AsyncWasmModule" */
|
|
18
|
+
/** @import { GenerateContext } from "../Generator" */
|
|
19
|
+
/** @import Module, { SourceType, SourceTypes } from "../Module" */
|
|
20
|
+
/** @import NormalModule from "../NormalModule" */
|
|
23
21
|
|
|
24
22
|
/**
|
|
25
23
|
* Represents the async web assembly javascript generator runtime component.
|
|
@@ -72,8 +70,24 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
72
70
|
return this._generateSourcePhase(module, generateContext);
|
|
73
71
|
}
|
|
74
72
|
|
|
73
|
+
const analyzableUrl = runtimeTemplate.supportsAnalyzable(
|
|
74
|
+
"wasm",
|
|
75
|
+
chunkGraph,
|
|
76
|
+
module,
|
|
77
|
+
runtime
|
|
78
|
+
)
|
|
79
|
+
? runtimeTemplate.getAnalyzableWasmUrl(
|
|
80
|
+
module,
|
|
81
|
+
chunkGraph,
|
|
82
|
+
runtime,
|
|
83
|
+
runtimeRequirements
|
|
84
|
+
)
|
|
85
|
+
: null;
|
|
86
|
+
|
|
75
87
|
runtimeRequirements.add(RuntimeGlobals.module);
|
|
76
|
-
|
|
88
|
+
if (analyzableUrl === null) {
|
|
89
|
+
runtimeRequirements.add(RuntimeGlobals.moduleId);
|
|
90
|
+
}
|
|
77
91
|
runtimeRequirements.add(RuntimeGlobals.exports);
|
|
78
92
|
runtimeRequirements.add(RuntimeGlobals.instantiateWasm);
|
|
79
93
|
/** @type {InitFragment<GenerateContext>[]} */
|
|
@@ -173,11 +187,15 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
173
187
|
])
|
|
174
188
|
: undefined;
|
|
175
189
|
|
|
176
|
-
const
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
190
|
+
const locator =
|
|
191
|
+
analyzableUrl === null
|
|
192
|
+
? `${module.moduleArgument}.id, ${JSON.stringify(
|
|
193
|
+
chunkGraph.getRenderedModuleHash(module, runtime)
|
|
194
|
+
)}`
|
|
195
|
+
: analyzableUrl;
|
|
196
|
+
const instantiateCall = `${RuntimeGlobals.instantiateWasm}(${
|
|
197
|
+
module.exportsArgument
|
|
198
|
+
}, ${locator}${importsObj ? `, ${importsObj})` : ")"}`;
|
|
181
199
|
|
|
182
200
|
if (promises.length > 0) {
|
|
183
201
|
runtimeRequirements.add(RuntimeGlobals.asyncModule);
|
|
@@ -225,8 +243,24 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
225
243
|
const { chunkGraph, runtimeTemplate, runtimeRequirements, runtime } =
|
|
226
244
|
generateContext;
|
|
227
245
|
|
|
246
|
+
const analyzableUrl = runtimeTemplate.supportsAnalyzable(
|
|
247
|
+
"wasm",
|
|
248
|
+
chunkGraph,
|
|
249
|
+
module,
|
|
250
|
+
runtime
|
|
251
|
+
)
|
|
252
|
+
? runtimeTemplate.getAnalyzableWasmUrl(
|
|
253
|
+
module,
|
|
254
|
+
chunkGraph,
|
|
255
|
+
runtime,
|
|
256
|
+
runtimeRequirements
|
|
257
|
+
)
|
|
258
|
+
: null;
|
|
259
|
+
|
|
228
260
|
runtimeRequirements.add(RuntimeGlobals.module);
|
|
229
|
-
|
|
261
|
+
if (analyzableUrl === null) {
|
|
262
|
+
runtimeRequirements.add(RuntimeGlobals.moduleId);
|
|
263
|
+
}
|
|
230
264
|
runtimeRequirements.add(RuntimeGlobals.exports);
|
|
231
265
|
runtimeRequirements.add(RuntimeGlobals.compileWasm);
|
|
232
266
|
runtimeRequirements.add(RuntimeGlobals.asyncModule);
|
|
@@ -234,8 +268,12 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
234
268
|
|
|
235
269
|
// Source phase: export default WebAssembly.Module (via compileWasm)
|
|
236
270
|
const compileCall = `${RuntimeGlobals.compileWasm}(${
|
|
237
|
-
|
|
238
|
-
|
|
271
|
+
analyzableUrl === null
|
|
272
|
+
? `${module.moduleArgument}.id, ${JSON.stringify(
|
|
273
|
+
chunkGraph.getRenderedModuleHash(module, runtime)
|
|
274
|
+
)}`
|
|
275
|
+
: analyzableUrl
|
|
276
|
+
})`;
|
|
239
277
|
|
|
240
278
|
// Use async module wrapper to handle the Promise from compileWasm
|
|
241
279
|
return new RawSource(
|
|
@@ -264,7 +302,9 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
|
|
|
264
302
|
* @returns {Source | null} generated code
|
|
265
303
|
*/
|
|
266
304
|
generateError(error, module, generateContext) {
|
|
267
|
-
return new RawSource(
|
|
305
|
+
return new RawSource(
|
|
306
|
+
Generator.throwBuildErrorCode(error, "WebAssembly.CompileError")
|
|
307
|
+
);
|
|
268
308
|
}
|
|
269
309
|
}
|
|
270
310
|
|
|
@@ -12,27 +12,28 @@ const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDe
|
|
|
12
12
|
const { tryRunOrWebpackError } = require("../errors/HookWebpackError");
|
|
13
13
|
const { compareModulesByFullName } = require("../util/comparators");
|
|
14
14
|
const createHooksRegistry = require("../util/createHooksRegistry");
|
|
15
|
-
const
|
|
15
|
+
const lazyModule = require("../util/lazyModule");
|
|
16
|
+
const preloadModuleType = require("../util/preloadModuleType");
|
|
16
17
|
const AsyncWasmModule = require("./AsyncWasmModule");
|
|
17
18
|
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @
|
|
21
|
-
/** @
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
24
|
-
/** @
|
|
25
|
-
/** @
|
|
26
|
-
/** @
|
|
27
|
-
/** @
|
|
28
|
-
|
|
29
|
-
const getAsyncWebAssemblyGenerator =
|
|
19
|
+
/** @import { Source } from "webpack-sources" */
|
|
20
|
+
/** @import Chunk from "../Chunk" */
|
|
21
|
+
/** @import ChunkGraph from "../ChunkGraph" */
|
|
22
|
+
/** @import CodeGenerationResults from "../CodeGenerationResults" */
|
|
23
|
+
/** @import Compiler from "../Compiler" */
|
|
24
|
+
/** @import DependencyTemplates from "../DependencyTemplates" */
|
|
25
|
+
/** @import Module from "../Module" */
|
|
26
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
27
|
+
/** @import RuntimeTemplate from "../RuntimeTemplate" */
|
|
28
|
+
/** @import WebpackError from "../errors/WebpackError" */
|
|
29
|
+
|
|
30
|
+
const getAsyncWebAssemblyGenerator = lazyModule(() =>
|
|
30
31
|
require("./AsyncWebAssemblyGenerator")
|
|
31
32
|
);
|
|
32
|
-
const getAsyncWebAssemblyJavascriptGenerator =
|
|
33
|
+
const getAsyncWebAssemblyJavascriptGenerator = lazyModule(() =>
|
|
33
34
|
require("./AsyncWebAssemblyJavascriptGenerator")
|
|
34
35
|
);
|
|
35
|
-
const getAsyncWebAssemblyParser =
|
|
36
|
+
const getAsyncWebAssemblyParser = lazyModule(() =>
|
|
36
37
|
require("./AsyncWebAssemblyParser")
|
|
37
38
|
);
|
|
38
39
|
|
|
@@ -77,6 +78,9 @@ class AsyncWebAssemblyModulesPlugin {
|
|
|
77
78
|
* @returns {void}
|
|
78
79
|
*/
|
|
79
80
|
apply(compiler) {
|
|
81
|
+
// A binary's name may carry the compilation hash, which the analyzable call site
|
|
82
|
+
// leaves as a stand-in — so whatever the chunk loading is, the pass that fills it
|
|
83
|
+
// in has to be there. Applying it twice is a no-op.
|
|
80
84
|
compiler.hooks.compilation.tap(
|
|
81
85
|
PLUGIN_NAME,
|
|
82
86
|
(compilation, { normalModuleFactory }) => {
|
|
@@ -87,6 +91,17 @@ class AsyncWebAssemblyModulesPlugin {
|
|
|
87
91
|
normalModuleFactory
|
|
88
92
|
);
|
|
89
93
|
|
|
94
|
+
preloadModuleType(normalModuleFactory, PLUGIN_NAME, [
|
|
95
|
+
[
|
|
96
|
+
WEBASSEMBLY_MODULE_TYPE_ASYNC,
|
|
97
|
+
[
|
|
98
|
+
getAsyncWebAssemblyParser,
|
|
99
|
+
getAsyncWebAssemblyJavascriptGenerator,
|
|
100
|
+
getAsyncWebAssemblyGenerator
|
|
101
|
+
]
|
|
102
|
+
]
|
|
103
|
+
]);
|
|
104
|
+
|
|
90
105
|
normalModuleFactory.hooks.createModuleClass
|
|
91
106
|
.for(WEBASSEMBLY_MODULE_TYPE_ASYNC)
|
|
92
107
|
.tap(
|
|
@@ -101,7 +116,7 @@ class AsyncWebAssemblyModulesPlugin {
|
|
|
101
116
|
normalModuleFactory.hooks.createParser
|
|
102
117
|
.for(WEBASSEMBLY_MODULE_TYPE_ASYNC)
|
|
103
118
|
.tap(PLUGIN_NAME, () => {
|
|
104
|
-
const AsyncWebAssemblyParser = getAsyncWebAssemblyParser();
|
|
119
|
+
const AsyncWebAssemblyParser = getAsyncWebAssemblyParser.loaded();
|
|
105
120
|
|
|
106
121
|
return new AsyncWebAssemblyParser();
|
|
107
122
|
});
|
|
@@ -109,8 +124,9 @@ class AsyncWebAssemblyModulesPlugin {
|
|
|
109
124
|
.for(WEBASSEMBLY_MODULE_TYPE_ASYNC)
|
|
110
125
|
.tap(PLUGIN_NAME, () => {
|
|
111
126
|
const AsyncWebAssemblyJavascriptGenerator =
|
|
112
|
-
getAsyncWebAssemblyJavascriptGenerator();
|
|
113
|
-
const AsyncWebAssemblyGenerator =
|
|
127
|
+
getAsyncWebAssemblyJavascriptGenerator.loaded();
|
|
128
|
+
const AsyncWebAssemblyGenerator =
|
|
129
|
+
getAsyncWebAssemblyGenerator.loaded();
|
|
114
130
|
|
|
115
131
|
return Generator.byType({
|
|
116
132
|
javascript: new AsyncWebAssemblyJavascriptGenerator(),
|
|
@@ -10,14 +10,15 @@ const { decode } = require("@webassemblyjs/wasm-parser");
|
|
|
10
10
|
const Parser = require("../Parser");
|
|
11
11
|
const StaticExportsDependency = require("../dependencies/StaticExportsDependency");
|
|
12
12
|
const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
|
|
13
|
-
const
|
|
13
|
+
const memoize = require("../util/memoize");
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
/** @
|
|
20
|
-
/** @
|
|
15
|
+
const getEnvironmentNotSupportAsyncWarning = memoize(() =>
|
|
16
|
+
require("../errors/EnvironmentNotSupportAsyncWarning")
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
/** @import AsyncWasmModule from "./AsyncWasmModule" */
|
|
20
|
+
/** @import { BuildInfo, BuildMeta } from "../Module" */
|
|
21
|
+
/** @import { ParserState, PreparsedAst } from "../Parser" */
|
|
21
22
|
|
|
22
23
|
const WASM_HEADER = Buffer.from([0x00, 0x61, 0x73, 0x6d]);
|
|
23
24
|
|
|
@@ -45,7 +46,7 @@ class WebAssemblyParser extends Parser {
|
|
|
45
46
|
buildMeta.exportsType = "namespace";
|
|
46
47
|
buildMeta.async = true;
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
getEnvironmentNotSupportAsyncWarning().check(
|
|
49
50
|
state.module,
|
|
50
51
|
state.compilation.runtimeTemplate,
|
|
51
52
|
"asyncWebAssembly"
|
|
@@ -8,11 +8,13 @@
|
|
|
8
8
|
const { WEBASSEMBLY_MODULE_TYPE_ASYNC } = require("../ModuleTypeConstants");
|
|
9
9
|
const RuntimeGlobals = require("../RuntimeGlobals");
|
|
10
10
|
const Template = require("../Template");
|
|
11
|
+
const { usesFullHashDigest } = require("../TemplatedPathPlugin");
|
|
11
12
|
const AsyncWasmCompileRuntimeModule = require("../wasm-async/AsyncWasmCompileRuntimeModule");
|
|
12
13
|
const AsyncWasmLoadingRuntimeModule = require("../wasm-async/AsyncWasmLoadingRuntimeModule");
|
|
13
14
|
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
15
|
+
/** @import Chunk from "../Chunk" */
|
|
16
|
+
/** @import Compiler from "../Compiler" */
|
|
17
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
16
18
|
|
|
17
19
|
const PLUGIN_NAME = "UniversalCompileAsyncWasmPlugin";
|
|
18
20
|
|
|
@@ -61,21 +63,30 @@ class UniversalCompileAsyncWasmPlugin {
|
|
|
61
63
|
`var useFetch = ${compilation.runtimeTemplate.isWebLikePlatformExpression()};`,
|
|
62
64
|
`var wasmUrl = ${path};`
|
|
63
65
|
]);
|
|
66
|
+
// `wasmUrl` already holds a complete `URL` when the call site bakes it. Read that
|
|
67
|
+
// per call: it depends on parse results, so it is not settled while the plugin
|
|
68
|
+
// is being applied.
|
|
69
|
+
/**
|
|
70
|
+
* @param {boolean} analyzable whether the call site bakes a complete URL
|
|
71
|
+
* @returns {string} the argument to hand the reader
|
|
72
|
+
*/
|
|
73
|
+
const wasmUrlArg = (analyzable) =>
|
|
74
|
+
analyzable
|
|
75
|
+
? "wasmUrl"
|
|
76
|
+
: compilation.runtimeTemplate.importMetaUrl("wasmUrl");
|
|
64
77
|
/**
|
|
65
78
|
* Generates the runtime expression that fetches the binary in browsers
|
|
66
79
|
* or reads it from the filesystem in Node.js.
|
|
67
|
-
* @type {(path: string) => string}
|
|
80
|
+
* @type {(path: string, runtime: RuntimeSpec, analyzable: boolean) => string}
|
|
68
81
|
*/
|
|
69
|
-
const generateLoadBinaryCode = () =>
|
|
82
|
+
const generateLoadBinaryCode = (path, runtime, analyzable) =>
|
|
70
83
|
Template.asString([
|
|
71
84
|
"(useFetch",
|
|
72
|
-
Template.indent([
|
|
73
|
-
`? fetch(new URL(wasmUrl, ${compilation.outputOptions.importMetaName}.url))`
|
|
74
|
-
]),
|
|
85
|
+
Template.indent([`? fetch(${wasmUrlArg(analyzable)})`]),
|
|
75
86
|
Template.indent([
|
|
76
87
|
": Promise.all([import('fs'), import('url')]).then(([{ readFile }, { URL }]) => new Promise((resolve, reject) => {",
|
|
77
88
|
Template.indent([
|
|
78
|
-
`readFile(
|
|
89
|
+
`readFile(${wasmUrlArg(analyzable)}, (err, buffer) => {`,
|
|
79
90
|
Template.indent([
|
|
80
91
|
"if (err) return reject(err);",
|
|
81
92
|
"",
|
|
@@ -105,6 +116,11 @@ class UniversalCompileAsyncWasmPlugin {
|
|
|
105
116
|
compilation.addRuntimeModule(
|
|
106
117
|
chunk,
|
|
107
118
|
new AsyncWasmLoadingRuntimeModule({
|
|
119
|
+
fullHashDigest: usesFullHashDigest(
|
|
120
|
+
/** @type {string} */ (
|
|
121
|
+
compilation.outputOptions.webassemblyModuleFilename
|
|
122
|
+
)
|
|
123
|
+
),
|
|
108
124
|
generateBeforeLoadBinaryCode,
|
|
109
125
|
generateLoadBinaryCode,
|
|
110
126
|
generateBeforeInstantiateStreaming: generateBeforeStreaming,
|
|
@@ -128,6 +144,11 @@ class UniversalCompileAsyncWasmPlugin {
|
|
|
128
144
|
compilation.addRuntimeModule(
|
|
129
145
|
chunk,
|
|
130
146
|
new AsyncWasmCompileRuntimeModule({
|
|
147
|
+
fullHashDigest: usesFullHashDigest(
|
|
148
|
+
/** @type {string} */ (
|
|
149
|
+
compilation.outputOptions.webassemblyModuleFilename
|
|
150
|
+
)
|
|
151
|
+
),
|
|
131
152
|
generateBeforeLoadBinaryCode,
|
|
132
153
|
generateLoadBinaryCode,
|
|
133
154
|
generateBeforeCompileStreaming: generateBeforeStreaming,
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
const NormalModule = require("../NormalModule");
|
|
8
8
|
const makeSerializable = require("../util/makeSerializable");
|
|
9
9
|
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
10
|
+
/** @import { BuildMeta } from "../Module" */
|
|
11
|
+
/** @import { NormalModuleCreateData } from "../NormalModule" */
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Defines the build meta properties specific to sync wasm modules.
|
|
@@ -8,17 +8,16 @@ const RuntimeGlobals = require("../RuntimeGlobals");
|
|
|
8
8
|
const RuntimeModule = require("../RuntimeModule");
|
|
9
9
|
const Template = require("../Template");
|
|
10
10
|
const { compareModulesByIdentifier } = require("../util/comparators");
|
|
11
|
+
const { fullHashPathData } = require("../wasm/wasmModuleFilename");
|
|
11
12
|
const WebAssemblyUtils = require("./WebAssemblyUtils");
|
|
12
13
|
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @typedef {import("../ModuleGraph")} ModuleGraph */
|
|
21
|
-
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
|
|
14
|
+
/** @import { Signature } from "@webassemblyjs/ast" */
|
|
15
|
+
/** @import Chunk from "../Chunk" */
|
|
16
|
+
/** @import ChunkGraph, { ModuleId } from "../ChunkGraph" */
|
|
17
|
+
/** @import Compilation from "../Compilation" */
|
|
18
|
+
/** @import Module, { ReadOnlyRuntimeRequirements } from "../Module" */
|
|
19
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
20
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
22
21
|
|
|
23
22
|
// TODO webpack 6 remove the whole folder
|
|
24
23
|
|
|
@@ -225,6 +224,7 @@ const generateImportObject = (
|
|
|
225
224
|
* @property {boolean=} supportsStreaming
|
|
226
225
|
* @property {boolean=} mangleImports
|
|
227
226
|
* @property {ReadOnlyRuntimeRequirements} runtimeRequirements
|
|
227
|
+
* @property {boolean=} fullHashDigest the binary's name inlines a re-encoded compilation hash
|
|
228
228
|
*/
|
|
229
229
|
|
|
230
230
|
class WasmChunkLoadingRuntimeModule extends RuntimeModule {
|
|
@@ -235,9 +235,16 @@ class WasmChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
235
235
|
generateLoadBinaryCode,
|
|
236
236
|
supportsStreaming,
|
|
237
237
|
mangleImports,
|
|
238
|
-
runtimeRequirements
|
|
238
|
+
runtimeRequirements,
|
|
239
|
+
fullHashDigest
|
|
239
240
|
}) {
|
|
240
241
|
super("wasm chunk loading", RuntimeModule.STAGE_ATTACH);
|
|
242
|
+
// A re-encoded digest is inlined from the settled hash, so this has to render
|
|
243
|
+
// again once there is one.
|
|
244
|
+
if (fullHashDigest) {
|
|
245
|
+
/** @type {boolean} */
|
|
246
|
+
this.fullHash = true;
|
|
247
|
+
}
|
|
241
248
|
this.generateLoadBinaryCode = generateLoadBinaryCode;
|
|
242
249
|
/** @type {boolean | undefined} */
|
|
243
250
|
this.supportsStreaming = supportsStreaming;
|
|
@@ -291,9 +298,7 @@ class WasmChunkLoadingRuntimeModule extends RuntimeModule {
|
|
|
291
298
|
const wasmModuleSrcPath = compilation.getPath(
|
|
292
299
|
JSON.stringify(outputOptions.webassemblyModuleFilename),
|
|
293
300
|
{
|
|
294
|
-
|
|
295
|
-
hashWithLength: (length) =>
|
|
296
|
-
`" + ${RuntimeGlobals.getFullHash}().slice(0, ${length}) + "`,
|
|
301
|
+
...fullHashPathData(compilation),
|
|
297
302
|
module: {
|
|
298
303
|
id: '" + wasmModuleId + "',
|
|
299
304
|
hash: `" + ${JSON.stringify(
|
|
@@ -8,11 +8,10 @@
|
|
|
8
8
|
const formatLocation = require("../util/formatLocation");
|
|
9
9
|
const UnsupportedWebAssemblyFeatureError = require("./UnsupportedWebAssemblyFeatureError");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
13
|
-
/** @
|
|
14
|
-
/** @
|
|
15
|
-
/** @typedef {import("./SyncWasmModule").SyncWasmModuleBuildMeta} SyncWasmModuleBuildMeta */
|
|
11
|
+
/** @import Compiler from "../Compiler" */
|
|
12
|
+
/** @import Dependency from "../Dependency" */
|
|
13
|
+
/** @import Module from "../Module" */
|
|
14
|
+
/** @import { SyncWasmModuleBuildMeta } from "./SyncWasmModule" */
|
|
16
15
|
|
|
17
16
|
const PLUGIN_NAME = "WasmFinalizeExportsPlugin";
|
|
18
17
|
|
|
@@ -15,23 +15,24 @@ const { WEBASSEMBLY_TYPES } = require("../ModuleSourceTypeConstants");
|
|
|
15
15
|
const WebAssemblyExportImportedDependency = require("../dependencies/WebAssemblyExportImportedDependency");
|
|
16
16
|
const WebAssemblyUtils = require("./WebAssemblyUtils");
|
|
17
17
|
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @
|
|
21
|
-
/** @
|
|
22
|
-
/** @
|
|
23
|
-
/** @
|
|
24
|
-
/** @
|
|
25
|
-
/** @
|
|
26
|
-
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
18
|
+
/** @import { Source } from "webpack-sources" */
|
|
19
|
+
/** @import { GenerateContext, UpdateHashContext } from "../Generator" */
|
|
20
|
+
/** @import Module, { SourceType, SourceTypes } from "../Module" */
|
|
21
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
22
|
+
/** @import NormalModule from "../NormalModule" */
|
|
23
|
+
/** @import Hash from "../util/Hash" */
|
|
24
|
+
/** @import { RuntimeSpec } from "../util/runtime" */
|
|
25
|
+
/** @import { UsedWasmDependency } from "./WebAssemblyUtils" */
|
|
26
|
+
/**
|
|
27
|
+
* @import {
|
|
28
|
+
* Instruction,
|
|
29
|
+
* ModuleImport,
|
|
30
|
+
* ModuleExport,
|
|
31
|
+
* Global,
|
|
32
|
+
* AST,
|
|
33
|
+
* GlobalType
|
|
34
|
+
* } from "@webassemblyjs/ast"
|
|
35
|
+
*/
|
|
35
36
|
/**
|
|
36
37
|
* Defines the node path type used by this module.
|
|
37
38
|
* @template T
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
|
|
7
7
|
const WebpackError = require("../errors/WebpackError");
|
|
8
8
|
|
|
9
|
-
/** @
|
|
10
|
-
/** @
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
9
|
+
/** @import ChunkGraph from "../ChunkGraph" */
|
|
10
|
+
/** @import Module from "../Module" */
|
|
11
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
12
|
+
/** @import RequestShortener from "../RequestShortener" */
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Gets initial module chains.
|
|
@@ -16,12 +16,10 @@ const ModuleDependency = require("../dependencies/ModuleDependency");
|
|
|
16
16
|
const WebAssemblyExportImportedDependency = require("../dependencies/WebAssemblyExportImportedDependency");
|
|
17
17
|
const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
|
|
18
18
|
|
|
19
|
-
/** @
|
|
20
|
-
/** @
|
|
21
|
-
/** @
|
|
22
|
-
/** @
|
|
23
|
-
/** @typedef {import("../Module").SourceTypes} SourceTypes */
|
|
24
|
-
/** @typedef {import("../NormalModule")} NormalModule */
|
|
19
|
+
/** @import { Source } from "webpack-sources" */
|
|
20
|
+
/** @import { GenerateContext } from "../Generator" */
|
|
21
|
+
/** @import Module, { SourceType, SourceTypes } from "../Module" */
|
|
22
|
+
/** @import NormalModule from "../NormalModule" */
|
|
25
23
|
|
|
26
24
|
class WebAssemblyJavascriptGenerator extends Generator {
|
|
27
25
|
/**
|
|
@@ -233,7 +231,9 @@ class WebAssemblyJavascriptGenerator extends Generator {
|
|
|
233
231
|
* @returns {Source | null} generated code
|
|
234
232
|
*/
|
|
235
233
|
generateError(error, module, generateContext) {
|
|
236
|
-
return new RawSource(
|
|
234
|
+
return new RawSource(
|
|
235
|
+
Generator.throwBuildErrorCode(error, "WebAssembly.CompileError")
|
|
236
|
+
);
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
|
|
@@ -14,20 +14,21 @@ const { WEBASSEMBLY_MODULE_TYPE_SYNC } = require("../ModuleTypeConstants");
|
|
|
14
14
|
const WebAssemblyExportImportedDependency = require("../dependencies/WebAssemblyExportImportedDependency");
|
|
15
15
|
const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
|
|
16
16
|
const { compareModulesByFullName } = require("../util/comparators");
|
|
17
|
-
const
|
|
17
|
+
const lazyModule = require("../util/lazyModule");
|
|
18
|
+
const preloadModuleType = require("../util/preloadModuleType");
|
|
18
19
|
const WebAssemblyInInitialChunkError = require("./WebAssemblyInInitialChunkError");
|
|
19
20
|
|
|
20
|
-
/** @
|
|
21
|
-
/** @
|
|
21
|
+
/** @import Compiler from "../Compiler" */
|
|
22
|
+
/** @import Module from "../Module" */
|
|
22
23
|
|
|
23
|
-
const getWebAssemblyGenerator =
|
|
24
|
+
const getWebAssemblyGenerator = lazyModule(() =>
|
|
24
25
|
require("./WebAssemblyGenerator")
|
|
25
26
|
);
|
|
26
|
-
const getWebAssemblyJavascriptGenerator =
|
|
27
|
+
const getWebAssemblyJavascriptGenerator = lazyModule(() =>
|
|
27
28
|
require("./WebAssemblyJavascriptGenerator")
|
|
28
29
|
);
|
|
29
|
-
const getWebAssemblyParser =
|
|
30
|
-
const getSyncWasmModule =
|
|
30
|
+
const getWebAssemblyParser = lazyModule(() => require("./WebAssemblyParser"));
|
|
31
|
+
const getSyncWasmModule = lazyModule(() => require("./SyncWasmModule"));
|
|
31
32
|
|
|
32
33
|
const PLUGIN_NAME = "WebAssemblyModulesPlugin";
|
|
33
34
|
|
|
@@ -73,10 +74,22 @@ class WebAssemblyModulesPlugin {
|
|
|
73
74
|
normalModuleFactory
|
|
74
75
|
);
|
|
75
76
|
|
|
77
|
+
preloadModuleType(normalModuleFactory, PLUGIN_NAME, [
|
|
78
|
+
[
|
|
79
|
+
WEBASSEMBLY_MODULE_TYPE_SYNC,
|
|
80
|
+
[
|
|
81
|
+
getSyncWasmModule,
|
|
82
|
+
getWebAssemblyParser,
|
|
83
|
+
getWebAssemblyJavascriptGenerator,
|
|
84
|
+
getWebAssemblyGenerator
|
|
85
|
+
]
|
|
86
|
+
]
|
|
87
|
+
]);
|
|
88
|
+
|
|
76
89
|
normalModuleFactory.hooks.createModuleClass
|
|
77
90
|
.for(WEBASSEMBLY_MODULE_TYPE_SYNC)
|
|
78
91
|
.tap(PLUGIN_NAME, (createData, _resolveData) => {
|
|
79
|
-
const SyncWasmModule = getSyncWasmModule();
|
|
92
|
+
const SyncWasmModule = getSyncWasmModule.loaded();
|
|
80
93
|
|
|
81
94
|
return new SyncWasmModule(createData);
|
|
82
95
|
});
|
|
@@ -84,7 +97,7 @@ class WebAssemblyModulesPlugin {
|
|
|
84
97
|
normalModuleFactory.hooks.createParser
|
|
85
98
|
.for(WEBASSEMBLY_MODULE_TYPE_SYNC)
|
|
86
99
|
.tap(PLUGIN_NAME, () => {
|
|
87
|
-
const WebAssemblyParser = getWebAssemblyParser();
|
|
100
|
+
const WebAssemblyParser = getWebAssemblyParser.loaded();
|
|
88
101
|
|
|
89
102
|
return new WebAssemblyParser();
|
|
90
103
|
});
|
|
@@ -93,8 +106,8 @@ class WebAssemblyModulesPlugin {
|
|
|
93
106
|
.for(WEBASSEMBLY_MODULE_TYPE_SYNC)
|
|
94
107
|
.tap(PLUGIN_NAME, () => {
|
|
95
108
|
const WebAssemblyJavascriptGenerator =
|
|
96
|
-
getWebAssemblyJavascriptGenerator();
|
|
97
|
-
const WebAssemblyGenerator = getWebAssemblyGenerator();
|
|
109
|
+
getWebAssemblyJavascriptGenerator.loaded();
|
|
110
|
+
const WebAssemblyGenerator = getWebAssemblyGenerator.loaded();
|
|
98
111
|
|
|
99
112
|
return Generator.byType({
|
|
100
113
|
[JAVASCRIPT_TYPE]: new WebAssemblyJavascriptGenerator(),
|
|
@@ -13,12 +13,10 @@ const StaticExportsDependency = require("../dependencies/StaticExportsDependency
|
|
|
13
13
|
const WebAssemblyExportImportedDependency = require("../dependencies/WebAssemblyExportImportedDependency");
|
|
14
14
|
const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
|
|
15
15
|
|
|
16
|
-
/** @
|
|
17
|
-
/** @
|
|
18
|
-
/** @
|
|
19
|
-
/** @
|
|
20
|
-
/** @typedef {import("../Parser").ParserState} ParserState */
|
|
21
|
-
/** @typedef {import("../Parser").PreparsedAst} PreparsedAst */
|
|
16
|
+
/** @import { ModuleImport } from "@webassemblyjs/ast" */
|
|
17
|
+
/** @import { BuildInfo, BuildMeta } from "../Module" */
|
|
18
|
+
/** @import { SyncWasmModuleBuildMeta } from "./SyncWasmModule" */
|
|
19
|
+
/** @import { ParserState, PreparsedAst } from "../Parser" */
|
|
22
20
|
|
|
23
21
|
const JS_COMPAT_TYPES = new Set(["i32", "i64", "f32", "f64", "externref"]);
|
|
24
22
|
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
const Template = require("../Template");
|
|
9
9
|
const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
|
|
10
10
|
|
|
11
|
-
/** @
|
|
12
|
-
/** @
|
|
11
|
+
/** @import Module from "../Module" */
|
|
12
|
+
/** @import ModuleGraph from "../ModuleGraph" */
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Defines the used wasm dependency type used by this module.
|