@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
|
@@ -5,14 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
/** @typedef {import("./Hash")} Hash */
|
|
9
|
+
|
|
8
10
|
const A_CODE = "a".charCodeAt(0);
|
|
9
11
|
|
|
10
12
|
/**
|
|
13
|
+
* Returns hash that has at least one non numeric char.
|
|
11
14
|
* @param {string} hash hash
|
|
12
15
|
* @param {number} hashLength hash length
|
|
13
16
|
* @returns {string} returns hash that has at least one non numeric char
|
|
14
17
|
*/
|
|
15
|
-
|
|
18
|
+
const nonNumericOnlyHash = (hash, hashLength) => {
|
|
16
19
|
if (hashLength < 1) return "";
|
|
17
20
|
const slice = hash.slice(0, hashLength);
|
|
18
21
|
if (/[^\d]/.test(slice)) return slice;
|
|
@@ -20,3 +23,30 @@ module.exports = (hash, hashLength) => {
|
|
|
20
23
|
A_CODE + (Number.parseInt(hash[0], 10) % 6)
|
|
21
24
|
)}${slice.slice(1)}`;
|
|
22
25
|
};
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Digests a hash and truncates it to a content-hash string (non-numeric first char).
|
|
29
|
+
* @param {Hash} hash hash
|
|
30
|
+
* @param {string} hashDigest digest encoding
|
|
31
|
+
* @param {number} hashDigestLength hash length
|
|
32
|
+
* @returns {string} content hash string
|
|
33
|
+
*/
|
|
34
|
+
const digestNonNumericOnly = (hash, hashDigest, hashDigestLength) =>
|
|
35
|
+
nonNumericOnlyHash(hash.digest(hashDigest), hashDigestLength);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Digests a hash, returning both the truncated content-hash string and the full
|
|
39
|
+
* (untruncated) digest, so `[contenthash:<digest>]` can re-encode from full entropy.
|
|
40
|
+
* @param {Hash} hash hash
|
|
41
|
+
* @param {string} hashDigest digest encoding
|
|
42
|
+
* @param {number} hashDigestLength hash length
|
|
43
|
+
* @returns {[string, string]} content hash string and full digest
|
|
44
|
+
*/
|
|
45
|
+
const digestNonNumericOnlyWithFull = (hash, hashDigest, hashDigestLength) => {
|
|
46
|
+
const full = /** @type {string} */ (hash.digest(hashDigest));
|
|
47
|
+
return [nonNumericOnlyHash(full, hashDigestLength), full];
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
module.exports = nonNumericOnlyHash;
|
|
51
|
+
module.exports.digestNonNumericOnly = digestNonNumericOnly;
|
|
52
|
+
module.exports.digestNonNumericOnlyWithFull = digestNonNumericOnlyWithFull;
|
package/lib/util/numberHash.js
CHANGED
|
@@ -83,8 +83,8 @@ function fnv1a64(str) {
|
|
|
83
83
|
* @example
|
|
84
84
|
* ```js
|
|
85
85
|
* const numberHash = require("webpack/lib/util/numberHash");
|
|
86
|
-
* numberHash("hello", 1000); //
|
|
87
|
-
* numberHash("hello world"); //
|
|
86
|
+
* numberHash("hello", 1000); // 723
|
|
87
|
+
* numberHash("hello world", 1000); // 159
|
|
88
88
|
* ```
|
|
89
89
|
*/
|
|
90
90
|
module.exports = (str, range) => {
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
const JSONParseError = require("../errors/JSONParseError");
|
|
8
|
+
|
|
9
|
+
/** @typedef {import("../util/fs").JsonValue} JsonValue */
|
|
10
|
+
|
|
11
|
+
// Inspired by https://github.com/npm/json-parse-even-better-errors
|
|
12
|
+
|
|
13
|
+
// Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
|
|
14
|
+
// because the buffer-to-string conversion in `fs.readFileSync()`
|
|
15
|
+
// translates it to FEFF, the UTF-16 BOM.
|
|
16
|
+
/**
|
|
17
|
+
* @param {string | Buffer} txt text
|
|
18
|
+
* @returns {string} text without BOM
|
|
19
|
+
*/
|
|
20
|
+
const stripBOM = (txt) => String(txt).replace(/^\uFEFF/, "");
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @template [R=JsonValue]
|
|
24
|
+
* @callback ParseJsonFn
|
|
25
|
+
* @param {string} raw text
|
|
26
|
+
* @param {(this: EXPECTED_ANY, key: string, value: EXPECTED_ANY) => EXPECTED_ANY=} reviver reviver
|
|
27
|
+
* @returns {R} parsed JSON
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/** @type {ParseJsonFn} */
|
|
31
|
+
const parseJson = (raw, reviver) => {
|
|
32
|
+
const txt = stripBOM(raw);
|
|
33
|
+
|
|
34
|
+
try {
|
|
35
|
+
return JSON.parse(txt, reviver);
|
|
36
|
+
} catch (err) {
|
|
37
|
+
throw new JSONParseError(/** @type {Error} */ (err), raw, txt);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
module.exports = parseJson;
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* Walks a dynamically expanding async work tree with bounded concurrency.
|
|
10
|
+
* Each processed item may enqueue more items through `push`, allowing callers
|
|
11
|
+
* to model breadth-first or depth-first discovery without managing the queue
|
|
12
|
+
* themselves.
|
|
9
13
|
* @template T
|
|
10
14
|
* @template {Error} E
|
|
11
15
|
* @param {Iterable<T>} items initial items
|
|
@@ -22,6 +26,8 @@ const processAsyncTree = (items, concurrency, processor, callback) => {
|
|
|
22
26
|
let processScheduled = true;
|
|
23
27
|
|
|
24
28
|
/**
|
|
29
|
+
* Enqueues a newly discovered item and schedules queue processing when the
|
|
30
|
+
* current concurrency budget allows more work to start.
|
|
25
31
|
* @param {T} item item
|
|
26
32
|
*/
|
|
27
33
|
const push = (item) => {
|
|
@@ -33,6 +39,8 @@ const processAsyncTree = (items, concurrency, processor, callback) => {
|
|
|
33
39
|
};
|
|
34
40
|
|
|
35
41
|
/**
|
|
42
|
+
* Handles completion of a single processor call, propagating the first
|
|
43
|
+
* error and scheduling more queued work when possible.
|
|
36
44
|
* @param {E | null | undefined} err error
|
|
37
45
|
*/
|
|
38
46
|
const processorCallback = (err) => {
|
package/lib/util/property.js
CHANGED
|
@@ -74,7 +74,8 @@ const propertyName = (prop) => {
|
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
|
-
*
|
|
77
|
+
* Returns chain of property accesses.
|
|
78
|
+
* @param {readonly string[]} properties properties
|
|
78
79
|
* @param {number} start start index
|
|
79
80
|
* @returns {string} chain of property accesses
|
|
80
81
|
*/
|
|
@@ -82,7 +83,13 @@ const propertyAccess = (properties, start = 0) => {
|
|
|
82
83
|
let str = "";
|
|
83
84
|
for (let i = start; i < properties.length; i++) {
|
|
84
85
|
const p = properties[i];
|
|
85
|
-
|
|
86
|
+
// Only first chars 0-9, "-", "N", "I" can begin a canonical numeric form
|
|
87
|
+
// (number, NaN, Infinity); skip the Number() round-trip otherwise.
|
|
88
|
+
const c = p.charCodeAt(0);
|
|
89
|
+
if (
|
|
90
|
+
((c >= 48 && c <= 57) || c === 45 || c === 78 || c === 73) &&
|
|
91
|
+
`${Number(p)}` === p
|
|
92
|
+
) {
|
|
86
93
|
str += `[${p}]`;
|
|
87
94
|
} else if (SAFE_IDENTIFIER.test(p) && !RESERVED_IDENTIFIER.has(p)) {
|
|
88
95
|
str += `.${p}`;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/*
|
|
2
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
// Placeholders embedded into asset `url()` / HTML chunk URLs at code-generation
|
|
8
|
+
// time, when the final public path can't be resolved yet, then substituted
|
|
9
|
+
// later once the information is available:
|
|
10
|
+
// - PUBLIC_PATH_AUTO — stands in for `output.publicPath: "auto"`; replaced
|
|
11
|
+
// with the per-output-file undo path (relative `../` segments back to the
|
|
12
|
+
// output root) during chunk/asset render.
|
|
13
|
+
// - PUBLIC_PATH_FULL_HASH — stands in for `[fullhash]`/`[hash]` in a public
|
|
14
|
+
// path before the compilation hash exists. Form: `<prefix><len>__`, where
|
|
15
|
+
// `<len>` is the requested hash length (`0` means the full hash). Replaced
|
|
16
|
+
// with the real hash (build-time, e.g. CSS `.css` files) or a runtime
|
|
17
|
+
// `__webpack_require__.h()` expression (inlined CSS in JS).
|
|
18
|
+
const PUBLIC_PATH_AUTO = "__WEBPACK_CSS_PUBLIC_PATH_AUTO__";
|
|
19
|
+
const PUBLIC_PATH_FULL_HASH = "__WEBPACK_CSS_PUBLIC_PATH_FULL_HASH_";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Scan `content` for `PUBLIC_PATH_FULL_HASH` placeholders and invoke `onMatch`
|
|
23
|
+
* once per well-formed occurrence. The placeholder spans the half-open range
|
|
24
|
+
* `[start, end)` and encodes the requested hash length (`0` means the full
|
|
25
|
+
* hash). Callers substitute the build-time hash or a runtime expression
|
|
26
|
+
* depending on context.
|
|
27
|
+
* @param {string} content text to scan
|
|
28
|
+
* @param {(start: number, end: number, length: number) => void} onMatch placeholder callback
|
|
29
|
+
* @returns {void}
|
|
30
|
+
*/
|
|
31
|
+
const walkFullHashPlaceholders = (content, onMatch) => {
|
|
32
|
+
const prefix = PUBLIC_PATH_FULL_HASH;
|
|
33
|
+
const prefixLen = prefix.length;
|
|
34
|
+
const len = content.length;
|
|
35
|
+
let idx = content.indexOf(prefix);
|
|
36
|
+
while (idx !== -1) {
|
|
37
|
+
let digitEnd = idx + prefixLen;
|
|
38
|
+
while (digitEnd < len) {
|
|
39
|
+
const cc = content.charCodeAt(digitEnd);
|
|
40
|
+
if (cc < 48 || cc > 57) break;
|
|
41
|
+
digitEnd++;
|
|
42
|
+
}
|
|
43
|
+
// Well-formed placeholder: at least one digit followed by `__`.
|
|
44
|
+
if (
|
|
45
|
+
digitEnd > idx + prefixLen &&
|
|
46
|
+
digitEnd + 1 < len &&
|
|
47
|
+
content.charCodeAt(digitEnd) === 95 &&
|
|
48
|
+
content.charCodeAt(digitEnd + 1) === 95
|
|
49
|
+
) {
|
|
50
|
+
const length = Number.parseInt(
|
|
51
|
+
content.slice(idx + prefixLen, digitEnd),
|
|
52
|
+
10
|
|
53
|
+
);
|
|
54
|
+
onMatch(idx, digitEnd + 2, length);
|
|
55
|
+
idx = content.indexOf(prefix, digitEnd + 2);
|
|
56
|
+
} else {
|
|
57
|
+
idx = content.indexOf(prefix, idx + prefixLen);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
module.exports.PUBLIC_PATH_AUTO = PUBLIC_PATH_AUTO;
|
|
63
|
+
module.exports.PUBLIC_PATH_FULL_HASH = PUBLIC_PATH_FULL_HASH;
|
|
64
|
+
module.exports.walkFullHashPlaceholders = walkFullHashPlaceholders;
|
|
@@ -33,6 +33,7 @@ register(
|
|
|
33
33
|
"webpack-sources/CachedSource",
|
|
34
34
|
new (class CachedSourceSerializer {
|
|
35
35
|
/**
|
|
36
|
+
* Serializes this instance into the provided serializer context.
|
|
36
37
|
* @param {CachedSource} source the cached source to be serialized
|
|
37
38
|
* @param {ObjectSerializerContext} context context
|
|
38
39
|
* @returns {void}
|
|
@@ -47,6 +48,7 @@ register(
|
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
/**
|
|
51
|
+
* Restores this instance from the provided deserializer context.
|
|
50
52
|
* @param {ObjectDeserializerContext} context context
|
|
51
53
|
* @returns {CachedSource} cached source
|
|
52
54
|
*/
|
|
@@ -64,6 +66,7 @@ register(
|
|
|
64
66
|
"webpack-sources/RawSource",
|
|
65
67
|
new (class RawSourceSerializer {
|
|
66
68
|
/**
|
|
69
|
+
* Serializes this instance into the provided serializer context.
|
|
67
70
|
* @param {RawSource} source the raw source to be serialized
|
|
68
71
|
* @param {ObjectSerializerContext} context context
|
|
69
72
|
* @returns {void}
|
|
@@ -74,6 +77,7 @@ register(
|
|
|
74
77
|
}
|
|
75
78
|
|
|
76
79
|
/**
|
|
80
|
+
* Restores this instance from the provided deserializer context.
|
|
77
81
|
* @param {ObjectDeserializerContext} context context
|
|
78
82
|
* @returns {RawSource} raw source
|
|
79
83
|
*/
|
|
@@ -91,6 +95,7 @@ register(
|
|
|
91
95
|
"webpack-sources/ConcatSource",
|
|
92
96
|
new (class ConcatSourceSerializer {
|
|
93
97
|
/**
|
|
98
|
+
* Serializes this instance into the provided serializer context.
|
|
94
99
|
* @param {ConcatSource} source the concat source to be serialized
|
|
95
100
|
* @param {ObjectSerializerContext} context context
|
|
96
101
|
* @returns {void}
|
|
@@ -100,6 +105,7 @@ register(
|
|
|
100
105
|
}
|
|
101
106
|
|
|
102
107
|
/**
|
|
108
|
+
* Restores this instance from the provided deserializer context.
|
|
103
109
|
* @param {ObjectDeserializerContext} context context
|
|
104
110
|
* @returns {ConcatSource} concat source
|
|
105
111
|
*/
|
|
@@ -117,6 +123,7 @@ register(
|
|
|
117
123
|
"webpack-sources/PrefixSource",
|
|
118
124
|
new (class PrefixSourceSerializer {
|
|
119
125
|
/**
|
|
126
|
+
* Serializes this instance into the provided serializer context.
|
|
120
127
|
* @param {PrefixSource} source the prefix source to be serialized
|
|
121
128
|
* @param {ObjectSerializerContext} context context
|
|
122
129
|
* @returns {void}
|
|
@@ -127,6 +134,7 @@ register(
|
|
|
127
134
|
}
|
|
128
135
|
|
|
129
136
|
/**
|
|
137
|
+
* Restores this instance from the provided deserializer context.
|
|
130
138
|
* @param {ObjectDeserializerContext} context context
|
|
131
139
|
* @returns {PrefixSource} prefix source
|
|
132
140
|
*/
|
|
@@ -142,6 +150,7 @@ register(
|
|
|
142
150
|
"webpack-sources/ReplaceSource",
|
|
143
151
|
new (class ReplaceSourceSerializer {
|
|
144
152
|
/**
|
|
153
|
+
* Serializes this instance into the provided serializer context.
|
|
145
154
|
* @param {ReplaceSource} source the replace source to be serialized
|
|
146
155
|
* @param {ObjectSerializerContext} context context
|
|
147
156
|
* @returns {void}
|
|
@@ -162,6 +171,7 @@ register(
|
|
|
162
171
|
}
|
|
163
172
|
|
|
164
173
|
/**
|
|
174
|
+
* Restores this instance from the provided deserializer context.
|
|
165
175
|
* @param {ObjectDeserializerContext} context context
|
|
166
176
|
* @returns {ReplaceSource} replace source
|
|
167
177
|
*/
|
|
@@ -193,6 +203,7 @@ register(
|
|
|
193
203
|
"webpack-sources/OriginalSource",
|
|
194
204
|
new (class OriginalSourceSerializer {
|
|
195
205
|
/**
|
|
206
|
+
* Serializes this instance into the provided serializer context.
|
|
196
207
|
* @param {OriginalSource} source the original source to be serialized
|
|
197
208
|
* @param {ObjectSerializerContext} context context
|
|
198
209
|
* @returns {void}
|
|
@@ -203,6 +214,7 @@ register(
|
|
|
203
214
|
}
|
|
204
215
|
|
|
205
216
|
/**
|
|
217
|
+
* Restores this instance from the provided deserializer context.
|
|
206
218
|
* @param {ObjectDeserializerContext} context context
|
|
207
219
|
* @returns {OriginalSource} original source
|
|
208
220
|
*/
|
|
@@ -220,8 +232,9 @@ register(
|
|
|
220
232
|
"acorn/SourceLocation",
|
|
221
233
|
new (class SourceLocationSerializer {
|
|
222
234
|
/**
|
|
235
|
+
* Serializes this instance into the provided serializer context.
|
|
223
236
|
* @param {SourceLocation} loc the location to be serialized
|
|
224
|
-
* @param {ObjectSerializerContext} context context
|
|
237
|
+
* @param {import("../serialization/ObjectMiddleware").ObjectSerializerContext<number[]>} context context
|
|
225
238
|
* @returns {void}
|
|
226
239
|
*/
|
|
227
240
|
serialize(loc, { write }) {
|
|
@@ -232,7 +245,8 @@ register(
|
|
|
232
245
|
}
|
|
233
246
|
|
|
234
247
|
/**
|
|
235
|
-
*
|
|
248
|
+
* Restores this instance from the provided deserializer context.
|
|
249
|
+
* @param {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<number[]>} context context
|
|
236
250
|
* @returns {RealDependencyLocation} location
|
|
237
251
|
*/
|
|
238
252
|
deserialize({ read }) {
|
|
@@ -256,8 +270,9 @@ register(
|
|
|
256
270
|
"acorn/Position",
|
|
257
271
|
new (class PositionSerializer {
|
|
258
272
|
/**
|
|
273
|
+
* Serializes this instance into the provided serializer context.
|
|
259
274
|
* @param {Position} pos the position to be serialized
|
|
260
|
-
* @param {ObjectSerializerContext} context context
|
|
275
|
+
* @param {import("../serialization/ObjectMiddleware").ObjectSerializerContext<number[]>} context context
|
|
261
276
|
* @returns {void}
|
|
262
277
|
*/
|
|
263
278
|
serialize(pos, { write }) {
|
|
@@ -266,7 +281,8 @@ register(
|
|
|
266
281
|
}
|
|
267
282
|
|
|
268
283
|
/**
|
|
269
|
-
*
|
|
284
|
+
* Restores this instance from the provided deserializer context.
|
|
285
|
+
* @param {import("../serialization/ObjectMiddleware").ObjectDeserializerContext<number[]>} context context
|
|
270
286
|
* @returns {SourcePosition} position
|
|
271
287
|
*/
|
|
272
288
|
deserialize({ read }) {
|
|
@@ -284,6 +300,7 @@ register(
|
|
|
284
300
|
"webpack-sources/SourceMapSource",
|
|
285
301
|
new (class SourceMapSourceSerializer {
|
|
286
302
|
/**
|
|
303
|
+
* Serializes this instance into the provided serializer context.
|
|
287
304
|
* @param {SourceMapSource} source the source map source to be serialized
|
|
288
305
|
* @param {ObjectSerializerContext} context context
|
|
289
306
|
* @returns {void}
|
|
@@ -293,6 +310,7 @@ register(
|
|
|
293
310
|
}
|
|
294
311
|
|
|
295
312
|
/**
|
|
313
|
+
* Restores this instance from the provided deserializer context.
|
|
296
314
|
* @param {ObjectDeserializerContext} context context
|
|
297
315
|
* @returns {SourceMapSource} source source map source
|
|
298
316
|
*/
|
|
@@ -309,6 +327,7 @@ register(
|
|
|
309
327
|
"schema-utils/ValidationError",
|
|
310
328
|
new (class ValidationErrorSerializer {
|
|
311
329
|
/**
|
|
330
|
+
* Serializes this instance into the provided serializer context.
|
|
312
331
|
* @param {ValidationError} error the source map source to be serialized
|
|
313
332
|
* @param {ObjectSerializerContext} context context
|
|
314
333
|
* @returns {void}
|
|
@@ -324,6 +343,7 @@ register(
|
|
|
324
343
|
}
|
|
325
344
|
|
|
326
345
|
/**
|
|
346
|
+
* Restores this instance from the provided deserializer context.
|
|
327
347
|
* @param {ObjectDeserializerContext} context context
|
|
328
348
|
* @returns {ValidationError} error
|
|
329
349
|
*/
|
package/lib/util/removeBOM.js
CHANGED
package/lib/util/runtime.js
CHANGED
|
@@ -15,6 +15,7 @@ const SortableSet = require("./SortableSet");
|
|
|
15
15
|
/** @typedef {RuntimeSpec | boolean} RuntimeCondition */
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
+
* Gets entry runtime.
|
|
18
19
|
* @param {Compilation} compilation the compilation
|
|
19
20
|
* @param {string} name name of the entry
|
|
20
21
|
* @param {EntryOptions=} options optionally already received entry options
|
|
@@ -54,6 +55,7 @@ const getEntryRuntime = (compilation, name, options) => {
|
|
|
54
55
|
};
|
|
55
56
|
|
|
56
57
|
/**
|
|
58
|
+
* Processes the provided runtime.
|
|
57
59
|
* @param {RuntimeSpec} runtime runtime
|
|
58
60
|
* @param {(runtime: string | undefined) => void} fn functor
|
|
59
61
|
* @param {boolean} deterministicOrder enforce a deterministic order
|
|
@@ -73,6 +75,7 @@ const forEachRuntime = (runtime, fn, deterministicOrder = false) => {
|
|
|
73
75
|
};
|
|
74
76
|
|
|
75
77
|
/**
|
|
78
|
+
* Returns runtime key.
|
|
76
79
|
* @template T
|
|
77
80
|
* @param {Exclude<RuntimeSpec, undefined | string>} set set
|
|
78
81
|
* @returns {string} runtime key
|
|
@@ -83,6 +86,7 @@ const getRuntimesKey = (set) => {
|
|
|
83
86
|
};
|
|
84
87
|
|
|
85
88
|
/**
|
|
89
|
+
* Returns key of runtimes.
|
|
86
90
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
87
91
|
* @returns {string} key of runtimes
|
|
88
92
|
*/
|
|
@@ -93,6 +97,7 @@ const getRuntimeKey = (runtime) => {
|
|
|
93
97
|
};
|
|
94
98
|
|
|
95
99
|
/**
|
|
100
|
+
* Returns runtime(s).
|
|
96
101
|
* @param {string} key key of runtimes
|
|
97
102
|
* @returns {RuntimeSpec} runtime(s)
|
|
98
103
|
*/
|
|
@@ -104,6 +109,7 @@ const keyToRuntime = (key) => {
|
|
|
104
109
|
};
|
|
105
110
|
|
|
106
111
|
/**
|
|
112
|
+
* Gets runtimes string.
|
|
107
113
|
* @template T
|
|
108
114
|
* @param {Exclude<RuntimeSpec, undefined | string>} set set
|
|
109
115
|
* @returns {string} runtime string
|
|
@@ -114,6 +120,7 @@ const getRuntimesString = (set) => {
|
|
|
114
120
|
};
|
|
115
121
|
|
|
116
122
|
/**
|
|
123
|
+
* Returns readable version.
|
|
117
124
|
* @param {RuntimeSpec} runtime runtime(s)
|
|
118
125
|
* @returns {string} readable version
|
|
119
126
|
*/
|
|
@@ -124,6 +131,7 @@ const runtimeToString = (runtime) => {
|
|
|
124
131
|
};
|
|
125
132
|
|
|
126
133
|
/**
|
|
134
|
+
* Runtime condition to string.
|
|
127
135
|
* @param {RuntimeCondition} runtimeCondition runtime condition
|
|
128
136
|
* @returns {string} readable version
|
|
129
137
|
*/
|
|
@@ -134,6 +142,7 @@ const runtimeConditionToString = (runtimeCondition) => {
|
|
|
134
142
|
};
|
|
135
143
|
|
|
136
144
|
/**
|
|
145
|
+
* Returns true, when they are equal.
|
|
137
146
|
* @param {RuntimeSpec} a first
|
|
138
147
|
* @param {RuntimeSpec} b second
|
|
139
148
|
* @returns {boolean} true, when they are equal
|
|
@@ -164,6 +173,7 @@ const runtimeEqual = (a, b) => {
|
|
|
164
173
|
};
|
|
165
174
|
|
|
166
175
|
/**
|
|
176
|
+
* Compares the provided values and returns their ordering.
|
|
167
177
|
* @param {RuntimeSpec} a first
|
|
168
178
|
* @param {RuntimeSpec} b second
|
|
169
179
|
* @returns {-1 | 0 | 1} compare
|
|
@@ -184,6 +194,7 @@ const compareRuntime = (a, b) => {
|
|
|
184
194
|
};
|
|
185
195
|
|
|
186
196
|
/**
|
|
197
|
+
* Merges the provided values into a single result.
|
|
187
198
|
* @param {RuntimeSpec} a first
|
|
188
199
|
* @param {RuntimeSpec} b second
|
|
189
200
|
* @returns {RuntimeSpec} merged
|
|
@@ -225,6 +236,7 @@ const mergeRuntime = (a, b) => {
|
|
|
225
236
|
};
|
|
226
237
|
|
|
227
238
|
/**
|
|
239
|
+
* Merges runtime condition.
|
|
228
240
|
* @param {RuntimeCondition} a first
|
|
229
241
|
* @param {RuntimeCondition} b second
|
|
230
242
|
* @param {RuntimeSpec} runtime full runtime
|
|
@@ -246,6 +258,7 @@ const mergeRuntimeCondition = (a, b, runtime) => {
|
|
|
246
258
|
};
|
|
247
259
|
|
|
248
260
|
/**
|
|
261
|
+
* Merges runtime condition non false.
|
|
249
262
|
* @param {RuntimeSpec | true} a first
|
|
250
263
|
* @param {RuntimeSpec | true} b second
|
|
251
264
|
* @param {RuntimeSpec} runtime full runtime
|
|
@@ -265,6 +278,7 @@ const mergeRuntimeConditionNonFalse = (a, b, runtime) => {
|
|
|
265
278
|
};
|
|
266
279
|
|
|
267
280
|
/**
|
|
281
|
+
* Merges runtime owned.
|
|
268
282
|
* @param {RuntimeSpec} a first (may be modified)
|
|
269
283
|
* @param {RuntimeSpec} b second
|
|
270
284
|
* @returns {RuntimeSpec} merged
|
|
@@ -302,6 +316,7 @@ const mergeRuntimeOwned = (a, b) => {
|
|
|
302
316
|
};
|
|
303
317
|
|
|
304
318
|
/**
|
|
319
|
+
* Returns merged.
|
|
305
320
|
* @param {RuntimeSpec} a first
|
|
306
321
|
* @param {RuntimeSpec} b second
|
|
307
322
|
* @returns {RuntimeSpec} merged
|
|
@@ -339,6 +354,7 @@ const intersectRuntime = (a, b) => {
|
|
|
339
354
|
};
|
|
340
355
|
|
|
341
356
|
/**
|
|
357
|
+
* Returns result.
|
|
342
358
|
* @param {RuntimeSpec} a first
|
|
343
359
|
* @param {RuntimeSpec} b second
|
|
344
360
|
* @returns {RuntimeSpec} result
|
|
@@ -384,6 +400,7 @@ const subtractRuntime = (a, b) => {
|
|
|
384
400
|
};
|
|
385
401
|
|
|
386
402
|
/**
|
|
403
|
+
* Subtract runtime condition.
|
|
387
404
|
* @param {RuntimeCondition} a first
|
|
388
405
|
* @param {RuntimeCondition} b second
|
|
389
406
|
* @param {RuntimeSpec} runtime runtime
|
|
@@ -398,6 +415,7 @@ const subtractRuntimeCondition = (a, b, runtime) => {
|
|
|
398
415
|
};
|
|
399
416
|
|
|
400
417
|
/**
|
|
418
|
+
* Returns true/false if filter is constant for all runtimes, otherwise runtimes that are active.
|
|
401
419
|
* @param {RuntimeSpec} runtime runtime
|
|
402
420
|
* @param {(runtime?: RuntimeSpec) => boolean} filter filter function
|
|
403
421
|
* @returns {boolean | RuntimeSpec} true/false if filter is constant for all runtimes, otherwise runtimes that are active
|
|
@@ -424,16 +442,19 @@ const filterRuntime = (runtime, filter) => {
|
|
|
424
442
|
};
|
|
425
443
|
|
|
426
444
|
/**
|
|
445
|
+
* Defines the runtime spec map inner map type used by this module.
|
|
427
446
|
* @template T
|
|
428
447
|
* @typedef {Map<string, T>} RuntimeSpecMapInnerMap
|
|
429
448
|
*/
|
|
430
449
|
|
|
431
450
|
/**
|
|
451
|
+
* Represents RuntimeSpecMap.
|
|
432
452
|
* @template T
|
|
433
453
|
* @template [R=T]
|
|
434
454
|
*/
|
|
435
455
|
class RuntimeSpecMap {
|
|
436
456
|
/**
|
|
457
|
+
* Creates an instance of RuntimeSpecMap.
|
|
437
458
|
* @param {RuntimeSpecMap<T, R>=} clone copy form this
|
|
438
459
|
*/
|
|
439
460
|
constructor(clone) {
|
|
@@ -448,6 +469,7 @@ class RuntimeSpecMap {
|
|
|
448
469
|
}
|
|
449
470
|
|
|
450
471
|
/**
|
|
472
|
+
* Returns value.
|
|
451
473
|
* @param {RuntimeSpec} runtime the runtimes
|
|
452
474
|
* @returns {R | undefined} value
|
|
453
475
|
*/
|
|
@@ -467,6 +489,7 @@ class RuntimeSpecMap {
|
|
|
467
489
|
}
|
|
468
490
|
|
|
469
491
|
/**
|
|
492
|
+
* Returns true, when the runtime is stored.
|
|
470
493
|
* @param {RuntimeSpec} runtime the runtimes
|
|
471
494
|
* @returns {boolean} true, when the runtime is stored
|
|
472
495
|
*/
|
|
@@ -484,6 +507,7 @@ class RuntimeSpecMap {
|
|
|
484
507
|
}
|
|
485
508
|
|
|
486
509
|
/**
|
|
510
|
+
* Updates default using the provided runtime.
|
|
487
511
|
* @param {RuntimeSpec} runtime the runtimes
|
|
488
512
|
* @param {R} value the value
|
|
489
513
|
*/
|
|
@@ -515,6 +539,7 @@ class RuntimeSpecMap {
|
|
|
515
539
|
}
|
|
516
540
|
|
|
517
541
|
/**
|
|
542
|
+
* Returns the new value.
|
|
518
543
|
* @param {RuntimeSpec} runtime the runtimes
|
|
519
544
|
* @param {() => R} computer function to compute the value
|
|
520
545
|
* @returns {R} the new value
|
|
@@ -557,6 +582,7 @@ class RuntimeSpecMap {
|
|
|
557
582
|
}
|
|
558
583
|
|
|
559
584
|
/**
|
|
585
|
+
* Processes the provided runtime.
|
|
560
586
|
* @param {RuntimeSpec} runtime the runtimes
|
|
561
587
|
*/
|
|
562
588
|
delete(runtime) {
|
|
@@ -577,6 +603,7 @@ class RuntimeSpecMap {
|
|
|
577
603
|
}
|
|
578
604
|
|
|
579
605
|
/**
|
|
606
|
+
* Processes the provided runtime.
|
|
580
607
|
* @param {RuntimeSpec} runtime the runtimes
|
|
581
608
|
* @param {(value: R | undefined) => R} fn function to update the value
|
|
582
609
|
*/
|
|
@@ -634,6 +661,7 @@ class RuntimeSpecMap {
|
|
|
634
661
|
}
|
|
635
662
|
|
|
636
663
|
/**
|
|
664
|
+
* Returns values.
|
|
637
665
|
* @returns {IterableIterator<R>} values
|
|
638
666
|
*/
|
|
639
667
|
values() {
|
|
@@ -658,6 +686,7 @@ class RuntimeSpecMap {
|
|
|
658
686
|
|
|
659
687
|
class RuntimeSpecSet {
|
|
660
688
|
/**
|
|
689
|
+
* Creates an instance of RuntimeSpecSet.
|
|
661
690
|
* @param {Iterable<RuntimeSpec>=} iterable iterable
|
|
662
691
|
*/
|
|
663
692
|
constructor(iterable) {
|
|
@@ -671,6 +700,7 @@ class RuntimeSpecSet {
|
|
|
671
700
|
}
|
|
672
701
|
|
|
673
702
|
/**
|
|
703
|
+
* Processes the provided runtime.
|
|
674
704
|
* @param {RuntimeSpec} runtime runtime
|
|
675
705
|
*/
|
|
676
706
|
add(runtime) {
|
|
@@ -678,6 +708,7 @@ class RuntimeSpecSet {
|
|
|
678
708
|
}
|
|
679
709
|
|
|
680
710
|
/**
|
|
711
|
+
* Returns true, when the runtime exists.
|
|
681
712
|
* @param {RuntimeSpec} runtime runtime
|
|
682
713
|
* @returns {boolean} true, when the runtime exists
|
|
683
714
|
*/
|
|
@@ -686,6 +717,7 @@ class RuntimeSpecSet {
|
|
|
686
717
|
}
|
|
687
718
|
|
|
688
719
|
/**
|
|
720
|
+
* Returns iterable iterator.
|
|
689
721
|
* @returns {IterableIterator<RuntimeSpec>} iterable iterator
|
|
690
722
|
*/
|
|
691
723
|
[Symbol.iterator]() {
|