@depup/webpack 5.110.1-depup.0 → 5.111.1-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 +7 -8
- package/changes.json +7 -11
- package/lib/APIPlugin.js +26 -11
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/Cache.js +8 -3
- package/lib/CacheFacade.js +1 -1
- package/lib/ChunkGraph.js +20 -18
- package/lib/CircularModulesPlugin.js +157 -55
- package/lib/CleanPlugin.js +2 -2
- package/lib/CompatibilityPlugin.js +3 -4
- package/lib/Compilation.js +337 -338
- package/lib/Compiler.js +213 -51
- package/lib/ConcatenationScope.js +25 -35
- package/lib/ConstPlugin.js +16 -132
- package/lib/CopyPlugin.js +1054 -0
- package/lib/DefinePlugin.js +24 -8
- package/lib/DependencyTemplate.js +2 -1
- package/lib/DotenvPlugin.js +64 -40
- package/lib/ErrorHelpers.js +113 -0
- package/lib/ExportsInfo.js +30 -16
- package/lib/ExternalModule.js +47 -22
- package/lib/FileSystemInfo.js +17 -14
- package/lib/FlagDependencyExportsPlugin.js +53 -34
- package/lib/FlagDependencyUsagePlugin.js +17 -15
- package/lib/Generator.js +24 -2
- package/lib/HotModuleReplacementPlugin.js +55 -7
- package/lib/IgnorePlugin.js +1 -1
- package/lib/JavascriptMetaInfoPlugin.js +5 -3
- package/lib/LoaderOptionsPlugin.js +1 -1
- package/lib/MainTemplate.js +5 -1
- package/lib/Module.js +19 -10
- package/lib/ModuleGraph.js +6 -9
- package/lib/MultiCompiler.js +7 -17
- package/lib/MultiWatching.js +1 -1
- package/lib/NormalModule.js +148 -70
- package/lib/NormalModuleFactory.js +1 -1
- package/lib/RuntimeGlobals.js +21 -7
- package/lib/RuntimeModule.js +28 -12
- package/lib/RuntimePlugin.js +33 -3
- package/lib/RuntimeTemplate.js +1147 -847
- package/lib/SourceMapDevToolPlugin.js +54 -104
- package/lib/TemplatedPathPlugin.js +16 -59
- package/lib/Watching.js +9 -0
- package/lib/WebpackOptionsApply.js +84 -91
- package/lib/asset/AssetBytesGenerator.js +7 -1
- package/lib/asset/AssetGenerator.js +50 -24
- package/lib/asset/AssetModule.js +3 -0
- package/lib/asset/AssetSourceGenerator.js +7 -1
- package/lib/asset/WebManifestParser.js +7 -5
- package/lib/async-modules/AsyncModuleHelpers.js +10 -4
- package/lib/buildChunkGraph.js +11 -15
- package/lib/cache/AddBuildDependenciesPlugin.js +33 -4
- package/lib/cache/IdleFileCachePlugin.js +2 -2
- package/lib/cache/MemoryCachePlugin.js +4 -4
- package/lib/cache/MemoryWithGcCachePlugin.js +7 -8
- package/lib/cache/PackFileCacheStrategy.js +17 -19
- package/lib/cache/getLazyHashedEtag.js +3 -5
- package/lib/config/browserslistTargetHandler.js +17 -4
- package/lib/config/defaults.js +162 -142
- package/lib/config/getClaimedAssetTypes.js +10 -11
- package/lib/config/normalization.js +100 -20
- package/lib/config/target.js +13 -4
- package/lib/container/ContainerReferencePlugin.js +6 -0
- package/lib/container/RemoteRuntimeModule.js +9 -0
- package/lib/container/declaredRemotes.js +39 -0
- package/lib/{ContextExclusionPlugin.js → context/ContextExclusionPlugin.js} +1 -1
- package/lib/{ContextModule.js → context/ContextModule.js} +54 -115
- package/lib/{ContextModuleFactory.js → context/ContextModuleFactory.js} +19 -21
- package/lib/{ContextReplacementPlugin.js → context/ContextReplacementPlugin.js} +4 -4
- package/lib/css/CssGenerator.js +27 -11
- package/lib/css/CssInjectStyleRuntimeModule.js +9 -0
- package/lib/css/CssLoadingRuntimeModule.js +92 -15
- package/lib/css/CssModule.js +1 -1
- package/lib/css/CssModulesPlugin.js +3 -10
- package/lib/css/CssParser.js +162 -31
- package/lib/css/CssServerStylesRuntimeModule.js +9 -0
- package/lib/css/cssMinify.js +43 -32
- package/lib/css/data.js +3526 -871
- package/lib/css/syntax.js +6455 -1237
- package/lib/debug/ProfilingPlugin.js +7 -4
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +6 -3
- package/lib/dependencies/AMDRuntimeModules.js +18 -0
- package/lib/dependencies/CommonJsExportRequireDependency.js +13 -12
- package/lib/dependencies/CommonJsExportsParserPlugin.js +12 -13
- package/lib/dependencies/CommonJsImportsParserPlugin.js +5 -5
- package/lib/dependencies/CommonJsPlugin.js +19 -3
- package/lib/dependencies/CommonJsRequireDependency.js +32 -9
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +2 -4
- package/lib/dependencies/ContextDependency.js +1 -1
- package/lib/dependencies/ContextDependencyHelpers.js +3 -9
- package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +20 -7
- package/lib/dependencies/ContextElementDependency.js +1 -1
- package/lib/dependencies/CssIcssExportDependency.js +13 -9
- package/lib/dependencies/CssIcssImportDependency.js +3 -6
- package/lib/dependencies/CssUrlDependency.js +3 -5
- package/lib/dependencies/HarmonyCompatibilityDependency.js +67 -22
- package/lib/dependencies/HarmonyDetectionParserPlugin.js +3 -4
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +10 -4
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +12 -7
- package/lib/dependencies/HarmonyExportExpressionDependency.js +47 -33
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +217 -34
- package/lib/dependencies/HarmonyExportInitFragment.js +110 -23
- package/lib/dependencies/HarmonyExportSpecifierDependency.js +25 -58
- package/lib/dependencies/HarmonyImportBareSideEffectDependency.js +59 -0
- package/lib/dependencies/HarmonyImportDependency.js +99 -41
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +198 -25
- package/lib/dependencies/HarmonyImportSideEffectDependency.js +117 -4
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +40 -3
- package/lib/dependencies/HarmonyModulesPlugin.js +20 -0
- package/lib/dependencies/HtmlEntryDependency.js +136 -104
- package/lib/dependencies/HtmlInlineScriptDependency.js +3 -4
- package/lib/dependencies/HtmlInlineStyleDependency.js +3 -4
- package/lib/dependencies/ImportContextDependency.js +43 -3
- package/lib/dependencies/ImportDependency.js +8 -29
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +1 -1
- package/lib/dependencies/ImportMetaGlobHelpers.js +1 -1
- package/lib/dependencies/ImportMetaMainDependency.js +104 -0
- package/lib/dependencies/ImportMetaPlugin.js +67 -25
- package/lib/dependencies/ImportParserPlugin.js +25 -15
- package/lib/dependencies/LoaderPlugin.js +26 -1
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
- package/lib/dependencies/RequireHeaderDependency.js +20 -21
- package/lib/dependencies/SystemRuntimeModule.js +9 -0
- package/lib/dependencies/URLContextDependency.js +1 -1
- package/lib/dependencies/URLDependency.js +6 -5
- package/lib/dependencies/WorkerAndWorkletPlugin.js +16 -21
- package/lib/dependencies/WorkerDependency.js +12 -18
- package/lib/dependencies/WorkletDependency.js +12 -20
- package/lib/dependencies/importOptionsCheck.js +47 -0
- package/lib/dll/DelegatedModule.js +18 -1
- package/lib/dll/DllReferencePlugin.js +11 -8
- package/lib/dll/LibManifestPlugin.js +1 -1
- package/lib/errors/AnalyzableBailoutsWarning.js +41 -0
- package/lib/errors/DotenvFileError.js +29 -0
- package/lib/errors/DuplicateModulesWarning.js +12 -7
- package/lib/errors/EmptyCopyPatternWarning.js +26 -0
- package/lib/errors/ExternalStarReexportError.js +44 -0
- package/lib/errors/HookWebpackError.js +3 -2
- package/lib/errors/ImportedBindingAssignmentError.js +30 -0
- package/lib/errors/MissingSourceMapsWarning.js +36 -0
- package/lib/errors/ModuleParseError.js +2 -1
- package/lib/errors/UnusedAssetsWarning.js +36 -0
- package/lib/errors/UnusedFederationWarning.js +35 -0
- package/lib/errors/UnusedModulesWarning.js +38 -0
- package/lib/esm/ExportWebpackRequireRuntimeModule.js +9 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +28 -3
- package/lib/esm/ModuleChunkLoadingPlugin.js +21 -5
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +91 -53
- package/lib/hmr/HotModuleReplacement.runtime.js +8 -2
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +9 -0
- package/lib/hmr/LazyCompilationPlugin.js +3 -5
- package/lib/html/HtmlGenerator.js +72 -87
- package/lib/html/HtmlModulesPlugin.js +479 -215
- package/lib/html/HtmlParser.js +110 -147
- package/lib/html/builtinEmbeddedRenderer.js +107 -0
- package/lib/html/data.js +142 -7
- package/lib/html/htmlMinify.js +92 -122
- package/lib/html/syntax.js +2031 -1556
- package/lib/ids/HashedModuleIdsPlugin.js +2 -1
- package/lib/index.js +49 -3
- package/lib/javascript/ChunkFormatHelpers.js +4 -3
- package/lib/javascript/JavascriptGenerator.js +8 -1
- package/lib/javascript/JavascriptModule.js +1 -0
- package/lib/javascript/JavascriptModulesPlugin.js +76 -80
- package/lib/javascript/JavascriptParser.js +1970 -900
- package/lib/javascript/StartupHelpers.js +27 -3
- package/lib/javascript/data.js +172 -0
- package/lib/javascript/grammar.js +5546 -0
- package/lib/javascript/parser.js +1500 -0
- package/lib/javascript/regexp.js +1762 -0
- package/lib/javascript/regexpData.js +51 -0
- package/lib/javascript/syntax.js +9061 -5262
- package/lib/json/JsonGenerator.js +7 -1
- package/lib/library/ModuleLibraryPlugin.js +171 -132
- package/lib/loaders/LoaderRunner.js +170 -14
- package/lib/node/NodeWatchFileSystem.js +3 -9
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +22 -0
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +8 -15
- package/lib/node/RequireChunkLoadingRuntimeModule.js +22 -0
- package/lib/optimize/AggressiveMergingPlugin.js +3 -5
- package/lib/optimize/ConcatenatedModule.js +222 -125
- package/lib/optimize/ConstExportsPlugin.js +50 -34
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -11
- package/lib/optimize/InlineExports.js +20 -2
- package/lib/optimize/InnerGraphPlugin.js +7 -13
- package/lib/optimize/LimitChunkCountPlugin.js +5 -8
- package/lib/optimize/MangleExportsPlugin.js +13 -4
- package/lib/optimize/ModuleConcatenationPlugin.js +27 -5
- package/lib/optimize/RealContentHashPlugin.js +179 -44
- package/lib/optimize/SideEffectsFlagPlugin.js +24 -28
- package/lib/optimize/SplitChunksPlugin.js +2 -4
- package/lib/performance/AnalyzableBailoutsPlugin.js +115 -0
- package/lib/performance/BroadContextsPlugin.js +1 -1
- package/lib/performance/CacheEffectivenessPlugin.js +7 -7
- package/lib/performance/DuplicateModulesPlugin.js +57 -13
- package/lib/performance/EvalUsagePlugin.js +5 -2
- package/lib/performance/MissingSourceMapsPlugin.js +115 -0
- package/lib/performance/PureAnnotationsPlugin.js +6 -3
- package/lib/performance/SizeLimitsPlugin.js +2 -4
- package/lib/performance/TopLevelThisPlugin.js +5 -4
- package/lib/performance/UnusedAssetsPlugin.js +109 -0
- package/lib/performance/UnusedFederationPlugin.js +147 -0
- package/lib/performance/UnusedModulesPlugin.js +141 -0
- package/lib/performance/UnusedReexportsPlugin.js +1 -55
- package/lib/performance/isOnlyReexported.js +65 -0
- package/lib/prefetch/ChunkPrefetchFunctionRuntimeModule.js +25 -5
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +8 -8
- package/lib/prefetch/ChunkPrefetchStartupRuntimeModule.js +9 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +9 -0
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +9 -0
- package/lib/prefetch/ResourceHintPlugin.js +29 -35
- package/lib/prefetch/ResourceHintRuntimeModule.js +9 -0
- package/lib/prefetch/StartupAssetHintRuntimeModule.js +16 -10
- package/lib/rules/RuleSetCompiler.js +211 -4
- package/lib/runtime/AsyncModuleRuntimeModule.js +103 -67
- package/lib/runtime/AutoPublicPathRuntimeModule.js +9 -0
- package/lib/runtime/BaseUriRuntimeModule.js +9 -0
- package/lib/runtime/ChunkNameRuntimeModule.js +9 -0
- package/lib/runtime/EnsureChunkRuntimeModule.js +35 -16
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +12 -4
- package/lib/runtime/GetFullHashRuntimeModule.js +9 -0
- package/lib/runtime/GetMainFilenameRuntimeModule.js +9 -0
- package/lib/runtime/GetWorkletBootstrapRuntimeModule.js +9 -0
- package/lib/runtime/GlobalRuntimeModule.js +11 -4
- package/lib/runtime/HasOwnPropertyRuntimeModule.js +9 -0
- package/lib/runtime/HelperRuntimeModule.js +10 -0
- package/lib/runtime/MakeDeferredNamespaceObjectRuntime.js +313 -222
- package/lib/runtime/NonceRuntimeModule.js +9 -0
- package/lib/runtime/OnChunksLoadedRuntimeModule.js +67 -20
- package/lib/runtime/PublicPathRuntimeModule.js +9 -0
- package/lib/runtime/RuntimeIdRuntimeModule.js +9 -0
- package/lib/runtime/SpecNamespaceObjectRuntimeModule.js +90 -0
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +9 -0
- package/lib/runtime/StartupEntrypointRuntimeModule.js +9 -0
- package/lib/runtime/SystemContextRuntimeModule.js +9 -0
- package/lib/runtime/ToBinaryRuntimeModule.js +9 -0
- package/lib/schemes/DataUriPlugin.js +3 -6
- package/lib/schemes/HttpUriPlugin.js +22 -5
- package/lib/schemes/VirtualUrlPlugin.js +1 -1
- package/lib/serialization/BinaryMiddleware.js +9 -9
- package/lib/serialization/FileMiddleware.js +31 -18
- package/lib/serialization/ObjectMiddleware.js +168 -139
- package/lib/sharing/ConsumeSharedPlugin.js +12 -0
- package/lib/sharing/ConsumeSharedRuntimeModule.js +11 -0
- package/lib/sharing/ShareRuntimeModule.js +9 -0
- package/lib/sharing/declaredShared.js +47 -0
- package/lib/stats/DefaultStatsFactoryPlugin.js +6 -5
- package/lib/stats/DefaultStatsPrinterPlugin.js +3 -0
- package/lib/typescript/TypeScriptPlugin.js +10 -13
- package/lib/url/URLParserPlugin.js +6 -8
- package/lib/util/ArrayQueue.js +3 -3
- package/lib/util/LocConverter.js +4 -7
- package/lib/util/SourceProcessor.js +115 -99
- package/lib/util/URLAbsoluteSpecifier.js +3 -1
- package/lib/util/async.js +292 -0
- package/lib/util/buildDiagnostics.js +69 -0
- package/lib/util/chainedImports.js +3 -4
- package/lib/util/concatenate.js +4 -4
- package/lib/util/conventions.js +5 -1
- package/lib/util/createHooksRegistry.js +1 -2
- package/lib/util/createMappings.js +25 -3
- package/lib/util/dataURL.js +2 -3
- package/lib/util/deterministicGrouping.js +8 -13
- package/lib/util/findGraphRoots.js +6 -13
- package/lib/util/fs.js +27 -1
- package/lib/util/globUtils.js +1 -1
- package/lib/util/handlerKeys.js +40 -0
- package/lib/util/hash/wasm-hash.js +3 -4
- package/lib/util/identifier.js +20 -0
- package/lib/util/internalSerializables.js +7 -1
- package/lib/util/registerExternalSerializer.js +6 -45
- package/lib/util/removeBOM.js +82 -1
- package/lib/util/semver.js +5 -3
- package/lib/wasm-async/AsyncWasmCompileRuntimeModule.js +14 -3
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +14 -3
- package/lib/wasm-async/AsyncWebAssemblyGenerator.js +6 -1
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -1
- package/lib/wasm-async/UniversalCompileAsyncWasmPlugin.js +7 -12
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +12 -4
- package/lib/wasm-sync/WebAssemblyGenerator.js +6 -1
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +5 -1
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -4
- package/lib/web/FetchCompileAsyncWasmPlugin.js +10 -6
- package/lib/web/FetchCompileWasmPlugin.js +4 -2
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +36 -0
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +19 -0
- package/package.json +55 -46
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +388 -76
- package/schemas/plugins/LoaderOptionsPlugin.check.js +1 -1
- package/schemas/plugins/ManifestPlugin.check.js +1 -1
- package/schemas/plugins/SourceMapDevToolPlugin.check.js +1 -1
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
- package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
- package/schemas/plugins/debug/ProfilingPlugin.check.js +1 -1
- package/schemas/plugins/dll/DllReferencePlugin.check.js +1 -1
- package/schemas/plugins/ids/HashedModuleIdsPlugin.check.js +1 -1
- package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
- package/types.d.ts +1795 -608
- package/lib/dependencies/ExportBindingInitFragment.js +0 -191
- package/lib/errors/EntrypointOverlapWarning.js +0 -45
- package/lib/performance/EntrypointOverlapPlugin.js +0 -122
|
@@ -31,13 +31,13 @@ class MemoryCachePlugin {
|
|
|
31
31
|
const cacheEntry = cache.get(identifier);
|
|
32
32
|
// A recorded miss: the whole chain was asked for this identifier already.
|
|
33
33
|
if (cacheEntry === null) return null;
|
|
34
|
-
//
|
|
35
|
-
// object, so equal content reached through a second object is a
|
|
34
|
+
// WHY: etags are compared by identity, and a lazy one is interned per
|
|
35
|
+
// source object, so equal content reached through a second object is a
|
|
36
36
|
// different etag. Hashing to tell those apart would cost every hit what
|
|
37
37
|
// laziness saves, so a mismatch falls through to the next stage instead:
|
|
38
38
|
// the file cache compares etags by value and can still answer. Returning
|
|
39
|
-
// `null` here would bail the hook and lose that
|
|
40
|
-
// `undefined` regardless, so it buys the caller nothing
|
|
39
|
+
// `null` here would bail the hook and lose that, and `Cache.get` maps it
|
|
40
|
+
// to `undefined` regardless, so it buys the caller nothing.
|
|
41
41
|
if (cacheEntry !== undefined && cacheEntry.etag === etag) {
|
|
42
42
|
return cacheEntry.data;
|
|
43
43
|
}
|
|
@@ -79,10 +79,9 @@ class MemoryWithGcCachePlugin {
|
|
|
79
79
|
continue;
|
|
80
80
|
}
|
|
81
81
|
if (entry !== undefined) {
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
// It will be deleted when removed from oldCache.
|
|
82
|
+
// Set to undefined rather than deleted, reserving the slot and sparing
|
|
83
|
+
// a rehash as entries come and go. It goes for good once `oldCache`
|
|
84
|
+
// drops it.
|
|
86
85
|
cache.set(identifier, undefined);
|
|
87
86
|
oldCache.delete(identifier);
|
|
88
87
|
oldCache.set(identifier, {
|
|
@@ -105,13 +104,13 @@ class MemoryWithGcCachePlugin {
|
|
|
105
104
|
const cacheEntry = cache.get(identifier);
|
|
106
105
|
// A recorded miss: the whole chain was asked for this identifier already.
|
|
107
106
|
if (cacheEntry === null) return null;
|
|
108
|
-
//
|
|
109
|
-
// object, so equal content reached through a second object is a
|
|
107
|
+
// WHY: etags are compared by identity, and a lazy one is interned per
|
|
108
|
+
// source object, so equal content reached through a second object is a
|
|
110
109
|
// different etag. Hashing to tell those apart would cost every hit what
|
|
111
110
|
// laziness saves, so a mismatch falls through to the next stage instead:
|
|
112
111
|
// the file cache compares etags by value and can still answer. Returning
|
|
113
|
-
// `null` here would bail the hook and lose that
|
|
114
|
-
// `undefined` regardless, so it buys the caller nothing
|
|
112
|
+
// `null` here would bail the hook and lose that, and `Cache.get` maps it
|
|
113
|
+
// to `undefined` regardless, so it buys the caller nothing.
|
|
115
114
|
let known = cacheEntry !== undefined;
|
|
116
115
|
if (cacheEntry !== undefined) {
|
|
117
116
|
if (cacheEntry.etag === etag) return cacheEntry.data;
|
|
@@ -901,24 +901,9 @@ makeSerializable(
|
|
|
901
901
|
/** @typedef {(() => Promise<PackContentItems> | PackContentItems) & Partial<{ options: { size?: number } }>} LazyFunction */
|
|
902
902
|
|
|
903
903
|
class PackContent {
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
A1 | undefined | Map | false | fresh content
|
|
908
|
-
A2 | undefined | Map | true | (will not happen)
|
|
909
|
-
B1 | lazy () => {} | undefined | false | not deserialized
|
|
910
|
-
B2 | lazy () => {} | undefined | true | not deserialized, but some items has been removed
|
|
911
|
-
C1 | lazy* () => {} | Map | false | deserialized
|
|
912
|
-
C2 | lazy* () => {} | Map | true | deserialized, and some items has been removed
|
|
913
|
-
|
|
914
|
-
this.used is a subset of this.items.
|
|
915
|
-
this.items is a subset of this.content.keys() resp. this.lazy().map.keys()
|
|
916
|
-
When this.outdated === false, this.items === this.content.keys() resp. this.lazy().map.keys()
|
|
917
|
-
When this.outdated === true, this.items should be used to recreated this.lazy/this.content.
|
|
918
|
-
When this.lazy and this.content is set, they contain the same data.
|
|
919
|
-
this.get must only be called with a valid item from this.items.
|
|
920
|
-
In state C this.lazy is unMemoized
|
|
921
|
-
*/
|
|
904
|
+
// `used` is a subset of `items`, itself a subset of the content's keys, and the
|
|
905
|
+
// two coincide while `outdated` is false. `lazy` and `content` hold the same
|
|
906
|
+
// data whenever both are set, and `get` takes only an item of `items`.
|
|
922
907
|
|
|
923
908
|
/**
|
|
924
909
|
* Creates an instance of PackContent.
|
|
@@ -1263,6 +1248,8 @@ class PackFileCacheStrategy {
|
|
|
1263
1248
|
this.buildDependencies = new Set();
|
|
1264
1249
|
/** @type {FileSystemDependencies} */
|
|
1265
1250
|
this.newBuildDependencies = new LazySet();
|
|
1251
|
+
/** @type {FileSystemDependencies} */
|
|
1252
|
+
this.newOptionalBuildDependencies = new LazySet();
|
|
1266
1253
|
/** @type {InstanceType<Snapshot> | undefined} */
|
|
1267
1254
|
this.resolveBuildDependenciesSnapshot = undefined;
|
|
1268
1255
|
/** @type {ResolveResults | undefined} */
|
|
@@ -1492,10 +1479,13 @@ class PackFileCacheStrategy {
|
|
|
1492
1479
|
/**
|
|
1493
1480
|
* Stores build dependencies.
|
|
1494
1481
|
* @param {FileSystemDependencies | Iterable<string>} dependencies dependencies to store
|
|
1482
|
+
* @param {FileSystemDependencies | Iterable<string>} optionalDependencies optional dependencies to store
|
|
1483
|
+
* @returns {void}
|
|
1495
1484
|
*/
|
|
1496
|
-
storeBuildDependencies(dependencies) {
|
|
1485
|
+
storeBuildDependencies(dependencies, optionalDependencies) {
|
|
1497
1486
|
if (this.readonly) return;
|
|
1498
1487
|
this.newBuildDependencies.addAll(dependencies);
|
|
1488
|
+
this.newOptionalBuildDependencies.addAll(optionalDependencies);
|
|
1499
1489
|
}
|
|
1500
1490
|
|
|
1501
1491
|
afterAllStored() {
|
|
@@ -1512,9 +1502,14 @@ class PackFileCacheStrategy {
|
|
|
1512
1502
|
let promise;
|
|
1513
1503
|
/** @type {Set<string>} */
|
|
1514
1504
|
const newBuildDependencies = new Set();
|
|
1505
|
+
/** @type {Set<string>} */
|
|
1506
|
+
const optionalBuildDependencies = new Set();
|
|
1515
1507
|
for (const dep of this.newBuildDependencies) {
|
|
1516
1508
|
if (!this.buildDependencies.has(dep)) {
|
|
1517
1509
|
newBuildDependencies.add(dep);
|
|
1510
|
+
if (this.newOptionalBuildDependencies.has(dep)) {
|
|
1511
|
+
optionalBuildDependencies.add(dep);
|
|
1512
|
+
}
|
|
1518
1513
|
}
|
|
1519
1514
|
}
|
|
1520
1515
|
if (newBuildDependencies.size > 0 || !this.buildSnapshot) {
|
|
@@ -1533,6 +1528,7 @@ class PackFileCacheStrategy {
|
|
|
1533
1528
|
this.fileSystemInfo.resolveBuildDependencies(
|
|
1534
1529
|
this.context,
|
|
1535
1530
|
newBuildDependencies,
|
|
1531
|
+
optionalBuildDependencies,
|
|
1536
1532
|
(err, result) => {
|
|
1537
1533
|
this.logger.timeEnd("resolve build dependencies");
|
|
1538
1534
|
if (err) return reject(err);
|
|
@@ -1667,6 +1663,7 @@ class PackFileCacheStrategy {
|
|
|
1667
1663
|
this.buildDependencies.add(dep);
|
|
1668
1664
|
}
|
|
1669
1665
|
this.newBuildDependencies.clear();
|
|
1666
|
+
this.newOptionalBuildDependencies.clear();
|
|
1670
1667
|
this.logger.timeEnd("store pack");
|
|
1671
1668
|
const stats = pack.getContentStats();
|
|
1672
1669
|
this.logger.log(
|
|
@@ -1887,6 +1884,7 @@ class PackFileCacheStrategy {
|
|
|
1887
1884
|
this.fileSystemInfo.clear();
|
|
1888
1885
|
this.buildDependencies.clear();
|
|
1889
1886
|
this.newBuildDependencies.clear();
|
|
1887
|
+
this.newOptionalBuildDependencies.clear();
|
|
1890
1888
|
this.resolveBuildDependenciesSnapshot = undefined;
|
|
1891
1889
|
this.resolveResults = undefined;
|
|
1892
1890
|
this.buildSnapshot = undefined;
|
|
@@ -42,11 +42,9 @@ class LazyHashedEtag {
|
|
|
42
42
|
/** @type {HashableObject} */
|
|
43
43
|
(this._obj).updateHash(hash);
|
|
44
44
|
this._hash = hash.digest("base64");
|
|
45
|
-
// Drop the captured object once the hash is memoized
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
// a heavy `CachedSource` here that would otherwise stay reachable
|
|
49
|
-
// through this etag for the lifetime of the compilation cache.
|
|
45
|
+
// Drop the captured object once the hash is memoized: the hash never
|
|
46
|
+
// resets, and callers often capture a heavy `CachedSource` that would
|
|
47
|
+
// otherwise stay reachable for the compilation cache's lifetime.
|
|
50
48
|
this._obj = undefined;
|
|
51
49
|
}
|
|
52
50
|
return this._hash;
|
|
@@ -422,12 +422,25 @@ const resolve = (browsers) => {
|
|
|
422
422
|
ios_saf: [15, 4],
|
|
423
423
|
samsung: 17,
|
|
424
424
|
android: 93,
|
|
425
|
-
// and_qq
|
|
426
|
-
// baidu: Not supported
|
|
427
|
-
// and_uc: Not supported
|
|
428
|
-
// kaios: Not supported
|
|
425
|
+
// and_qq, baidu, and_uc and kaios are not supported.
|
|
429
426
|
node: [16, 9]
|
|
430
427
|
}),
|
|
428
|
+
topLevelAwait: rawChecker({
|
|
429
|
+
chrome: 89,
|
|
430
|
+
and_chr: 89,
|
|
431
|
+
edge: 89,
|
|
432
|
+
firefox: 89,
|
|
433
|
+
and_ff: 89,
|
|
434
|
+
// ie: Not supported,
|
|
435
|
+
opera: 75,
|
|
436
|
+
op_mob: 63,
|
|
437
|
+
safari: 15,
|
|
438
|
+
ios_saf: 15,
|
|
439
|
+
samsung: 15,
|
|
440
|
+
android: 89,
|
|
441
|
+
// and_qq, baidu, and_uc and kaios are not supported.
|
|
442
|
+
node: [14, 8]
|
|
443
|
+
}),
|
|
431
444
|
spread: rawChecker({
|
|
432
445
|
chrome: 60,
|
|
433
446
|
and_chr: 60,
|