webpack 5.92.1 → 5.94.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 +8 -5
- package/bin/webpack.js +6 -7
- package/hot/log.js +1 -2
- package/hot/only-dev-server.js +1 -1
- package/hot/poll.js +1 -1
- package/hot/signal.js +1 -1
- package/lib/APIPlugin.js +4 -3
- package/lib/AbstractMethodError.js +10 -5
- package/lib/AutomaticPrefetchPlugin.js +1 -1
- package/lib/BannerPlugin.js +12 -6
- package/lib/Cache.js +8 -10
- package/lib/CacheFacade.js +3 -3
- package/lib/CaseSensitiveModulesWarning.js +5 -7
- package/lib/Chunk.js +14 -11
- package/lib/ChunkGraph.js +58 -36
- package/lib/ChunkGroup.js +2 -3
- package/lib/ChunkTemplate.js +43 -0
- package/lib/CleanPlugin.js +10 -11
- package/lib/CodeGenerationResults.js +6 -5
- package/lib/CommentCompilationWarning.js +0 -1
- package/lib/Compilation.js +223 -191
- package/lib/Compiler.js +81 -82
- package/lib/ConcatenationScope.js +3 -6
- package/lib/ConditionalInitFragment.js +6 -7
- package/lib/ConstPlugin.js +7 -15
- package/lib/ContextExclusionPlugin.js +3 -3
- package/lib/ContextModule.js +36 -21
- package/lib/ContextModuleFactory.js +89 -44
- package/lib/ContextReplacementPlugin.js +10 -9
- package/lib/DefinePlugin.js +76 -69
- package/lib/DelegatedModule.js +7 -3
- package/lib/DelegatedModuleFactoryPlugin.js +36 -22
- package/lib/DelegatedPlugin.js +4 -0
- package/lib/DependenciesBlock.js +0 -1
- package/lib/Dependency.js +10 -14
- package/lib/DllEntryPlugin.js +4 -2
- package/lib/DllModuleFactory.js +1 -0
- package/lib/DllPlugin.js +9 -7
- package/lib/DllReferencePlugin.js +30 -15
- package/lib/EntryPlugin.js +1 -3
- package/lib/EnvironmentPlugin.js +5 -2
- package/lib/ErrorHelpers.js +11 -12
- package/lib/EvalDevToolModulePlugin.js +10 -12
- package/lib/EvalSourceMapDevToolPlugin.js +15 -13
- package/lib/ExportsInfo.js +185 -120
- package/lib/ExternalModule.js +104 -64
- package/lib/ExternalModuleFactoryPlugin.js +23 -10
- package/lib/FileSystemInfo.js +791 -422
- package/lib/FlagAllModulesAsUsedPlugin.js +1 -1
- package/lib/FlagDependencyExportsPlugin.js +12 -11
- package/lib/FlagDependencyUsagePlugin.js +1 -1
- package/lib/Generator.js +2 -5
- package/lib/GraphHelpers.js +3 -2
- package/lib/HookWebpackError.js +8 -10
- package/lib/HotModuleReplacementPlugin.js +78 -64
- package/lib/IgnoreErrorModuleFactory.js +3 -3
- package/lib/IgnorePlugin.js +1 -3
- package/lib/IgnoreWarningsPlugin.js +6 -9
- package/lib/InitFragment.js +2 -3
- package/lib/LibManifestPlugin.js +4 -3
- package/lib/MainTemplate.js +72 -19
- package/lib/Module.js +25 -9
- package/lib/ModuleBuildError.js +4 -11
- package/lib/ModuleDependencyError.js +5 -5
- package/lib/ModuleDependencyWarning.js +5 -5
- package/lib/ModuleError.js +1 -5
- package/lib/ModuleFilenameHelpers.js +29 -46
- package/lib/ModuleGraph.js +7 -6
- package/lib/ModuleGraphConnection.js +6 -6
- package/lib/ModuleInfoHeaderPlugin.js +82 -30
- package/lib/ModuleParseError.js +8 -9
- package/lib/ModuleRestoreError.js +1 -1
- package/lib/ModuleStoreError.js +1 -1
- package/lib/ModuleTemplate.js +33 -1
- package/lib/ModuleTypeConstants.js +21 -22
- package/lib/ModuleWarning.js +1 -5
- package/lib/MultiCompiler.js +24 -26
- package/lib/MultiStats.js +73 -31
- package/lib/MultiWatching.js +1 -1
- package/lib/NormalModule.js +132 -70
- package/lib/NormalModuleFactory.js +53 -49
- package/lib/OptimizationStages.js +3 -3
- package/lib/ProgressPlugin.js +9 -9
- package/lib/ProvidePlugin.js +4 -4
- package/lib/RuntimeGlobals.js +71 -70
- package/lib/RuntimeModule.js +1 -1
- package/lib/RuntimePlugin.js +24 -12
- package/lib/RuntimeTemplate.js +40 -44
- package/lib/SizeFormatHelpers.js +2 -4
- package/lib/SourceMapDevToolPlugin.js +42 -34
- package/lib/Stats.js +5 -11
- package/lib/Template.js +18 -24
- package/lib/TemplatedPathPlugin.js +12 -10
- package/lib/UseStrictPlugin.js +8 -1
- package/lib/WarnDeprecatedOptionPlugin.js +0 -1
- package/lib/WatchIgnorePlugin.js +26 -9
- package/lib/Watching.js +10 -5
- package/lib/WebpackOptionsApply.js +89 -62
- package/lib/asset/AssetGenerator.js +107 -42
- package/lib/asset/AssetModulesPlugin.js +29 -23
- package/lib/asset/AssetSourceGenerator.js +2 -7
- package/lib/async-modules/AwaitDependenciesInitFragment.js +6 -7
- package/lib/buildChunkGraph.js +14 -19
- package/lib/cache/IdleFileCachePlugin.js +4 -4
- package/lib/cache/MemoryWithGcCachePlugin.js +5 -5
- package/lib/cache/PackFileCacheStrategy.js +51 -50
- package/lib/cache/ResolverCachePlugin.js +6 -6
- package/lib/cache/mergeEtags.js +16 -21
- package/lib/cli.js +148 -104
- package/lib/config/browserslistTargetHandler.js +16 -13
- package/lib/config/defaults.js +31 -28
- package/lib/config/normalization.js +335 -344
- package/lib/config/target.js +42 -52
- package/lib/container/ContainerEntryModule.js +2 -2
- package/lib/container/ContainerPlugin.js +1 -1
- package/lib/container/RemoteRuntimeModule.js +11 -8
- package/lib/container/options.js +18 -4
- package/lib/css/CssExportsGenerator.js +39 -40
- package/lib/css/CssGenerator.js +11 -14
- package/lib/css/CssLoadingRuntimeModule.js +10 -10
- package/lib/css/CssModulesPlugin.js +127 -47
- package/lib/css/CssParser.js +20 -18
- package/lib/css/walkCssTokens.js +80 -95
- package/lib/debug/ProfilingPlugin.js +19 -20
- package/lib/dependencies/AMDDefineDependency.js +1 -1
- package/lib/dependencies/AMDDefineDependencyParserPlugin.js +83 -47
- package/lib/dependencies/AMDRequireArrayDependency.js +9 -10
- package/lib/dependencies/AMDRequireDependenciesBlockParserPlugin.js +22 -16
- package/lib/dependencies/AMDRuntimeModules.js +2 -2
- package/lib/dependencies/CommonJsDependencyHelpers.js +6 -2
- package/lib/dependencies/CommonJsExportRequireDependency.js +37 -41
- package/lib/dependencies/CommonJsExportsDependency.js +0 -1
- package/lib/dependencies/CommonJsExportsParserPlugin.js +19 -23
- package/lib/dependencies/CommonJsFullRequireDependency.js +1 -1
- package/lib/dependencies/CommonJsImportsParserPlugin.js +52 -61
- package/lib/dependencies/CommonJsSelfReferenceDependency.js +6 -8
- package/lib/dependencies/ConstDependency.js +1 -1
- package/lib/dependencies/ContextDependency.js +1 -1
- package/lib/dependencies/ContextDependencyHelpers.js +31 -34
- package/lib/dependencies/ContextElementDependency.js +2 -2
- package/lib/dependencies/CriticalDependencyWarning.js +1 -1
- package/lib/dependencies/CssExportDependency.js +72 -9
- package/lib/dependencies/CssImportDependency.js +0 -2
- package/lib/dependencies/CssLocalIdentifierDependency.js +68 -21
- package/lib/dependencies/CssSelfLocalIdentifierDependency.js +2 -1
- package/lib/dependencies/CssUrlDependency.js +4 -5
- package/lib/dependencies/DynamicExports.js +5 -5
- package/lib/dependencies/ExportsInfoDependency.js +1 -2
- package/lib/dependencies/HarmonyAcceptImportDependency.js +1 -1
- package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +4 -5
- package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +27 -16
- package/lib/dependencies/HarmonyExportExpressionDependency.js +1 -1
- package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +107 -64
- package/lib/dependencies/HarmonyExports.js +2 -2
- package/lib/dependencies/HarmonyImportDependency.js +2 -4
- package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +19 -4
- package/lib/dependencies/HarmonyImportSpecifierDependency.js +41 -16
- package/lib/dependencies/ImportDependency.js +1 -1
- package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +5 -5
- package/lib/dependencies/ImportMetaPlugin.js +11 -13
- package/lib/dependencies/ImportParserPlugin.js +39 -44
- package/lib/dependencies/JsonExportsDependency.js +22 -18
- package/lib/dependencies/LoaderPlugin.js +47 -36
- package/lib/dependencies/LocalModule.js +1 -1
- package/lib/dependencies/LocalModulesHelpers.js +4 -4
- package/lib/dependencies/ModuleDecoratorDependency.js +1 -1
- package/lib/dependencies/ProvidedDependency.js +1 -1
- package/lib/dependencies/PureExpressionDependency.js +6 -6
- package/lib/dependencies/RequireContextDependencyParserPlugin.js +1 -1
- package/lib/dependencies/RuntimeRequirementsDependency.js +1 -1
- package/lib/dependencies/SystemPlugin.js +1 -1
- package/lib/dependencies/URLDependency.js +3 -3
- package/lib/dependencies/URLPlugin.js +66 -12
- package/lib/dependencies/WorkerPlugin.js +25 -24
- package/lib/dependencies/processExportInfo.js +3 -1
- package/lib/electron/ElectronTargetPlugin.js +1 -0
- package/lib/esm/ModuleChunkFormatPlugin.js +11 -12
- package/lib/esm/ModuleChunkLoadingRuntimeModule.js +7 -3
- package/lib/formatLocation.js +1 -2
- package/lib/hmr/HotModuleReplacement.runtime.js +4 -5
- package/lib/hmr/HotModuleReplacementRuntimeModule.js +1 -0
- package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +9 -12
- package/lib/hmr/LazyCompilationPlugin.js +27 -12
- package/lib/hmr/lazyCompilationBackend.js +64 -40
- package/lib/ids/ChunkModuleIdRangePlugin.js +1 -3
- package/lib/ids/DeterministicChunkIdsPlugin.js +2 -4
- package/lib/ids/DeterministicModuleIdsPlugin.js +1 -1
- package/lib/ids/HashedModuleIdsPlugin.js +5 -1
- package/lib/ids/IdHelpers.js +29 -39
- package/lib/ids/SyncModuleIdsPlugin.js +7 -2
- package/lib/index.js +1 -5
- package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +6 -4
- package/lib/javascript/BasicEvaluatedExpression.js +4 -19
- package/lib/javascript/ChunkHelpers.js +1 -1
- package/lib/javascript/CommonJsChunkFormatPlugin.js +10 -11
- package/lib/javascript/EnableChunkLoadingPlugin.js +7 -6
- package/lib/javascript/JavascriptGenerator.js +23 -7
- package/lib/javascript/JavascriptModulesPlugin.js +97 -70
- package/lib/javascript/JavascriptParser.js +179 -200
- package/lib/javascript/JavascriptParserHelpers.js +20 -21
- package/lib/javascript/StartupHelpers.js +41 -13
- package/lib/json/JsonGenerator.js +7 -13
- package/lib/json/JsonModulesPlugin.js +1 -4
- package/lib/json/JsonParser.js +5 -3
- package/lib/library/AmdLibraryPlugin.js +12 -16
- package/lib/library/AssignLibraryPlugin.js +9 -11
- package/lib/library/EnableLibraryPlugin.js +25 -15
- package/lib/library/ExportPropertyLibraryPlugin.js +8 -2
- package/lib/library/JsonpLibraryPlugin.js +2 -1
- package/lib/library/ModernModuleLibraryPlugin.js +144 -0
- package/lib/library/ModuleLibraryPlugin.js +2 -1
- package/lib/library/SystemLibraryPlugin.js +2 -1
- package/lib/library/UmdLibraryPlugin.js +66 -92
- package/lib/logging/Logger.js +32 -4
- package/lib/logging/createConsoleLogger.js +12 -13
- package/lib/logging/runtime.js +7 -8
- package/lib/logging/truncateArgs.js +5 -8
- package/lib/node/NodeWatchFileSystem.js +3 -18
- package/lib/node/ReadFileChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/ReadFileCompileAsyncWasmPlugin.js +1 -0
- package/lib/node/RequireChunkLoadingRuntimeModule.js +2 -2
- package/lib/node/nodeConsole.js +22 -22
- package/lib/optimize/AggressiveMergingPlugin.js +2 -4
- package/lib/optimize/AggressiveSplittingPlugin.js +16 -19
- package/lib/optimize/ConcatenatedModule.js +144 -61
- package/lib/optimize/EnsureChunkConditionsPlugin.js +1 -1
- package/lib/optimize/FlagIncludedChunksPlugin.js +3 -3
- package/lib/optimize/InnerGraph.js +17 -17
- package/lib/optimize/InnerGraphPlugin.js +8 -7
- package/lib/optimize/LimitChunkCountPlugin.js +2 -3
- package/lib/optimize/MangleExportsPlugin.js +1 -0
- package/lib/optimize/MinMaxSizeWarning.js +1 -1
- package/lib/optimize/ModuleConcatenationPlugin.js +56 -78
- package/lib/optimize/RealContentHashPlugin.js +7 -10
- package/lib/optimize/RemoveParentModulesPlugin.js +3 -3
- package/lib/optimize/SideEffectsFlagPlugin.js +6 -2
- package/lib/optimize/SplitChunksPlugin.js +34 -30
- package/lib/performance/SizeLimitsPlugin.js +2 -2
- package/lib/prefetch/ChunkPrefetchPreloadPlugin.js +1 -0
- package/lib/prefetch/ChunkPrefetchTriggerRuntimeModule.js +1 -1
- package/lib/prefetch/ChunkPreloadTriggerRuntimeModule.js +1 -1
- package/lib/rules/BasicEffectRulePlugin.js +3 -1
- package/lib/rules/BasicMatcherRulePlugin.js +3 -1
- package/lib/rules/ObjectMatcherRulePlugin.js +4 -1
- package/lib/rules/RuleSetCompiler.js +41 -22
- package/lib/rules/UseEffectRulePlugin.js +36 -32
- package/lib/runtime/AsyncModuleRuntimeModule.js +1 -1
- package/lib/runtime/AutoPublicPathRuntimeModule.js +8 -3
- package/lib/runtime/CreateFakeNamespaceObjectRuntimeModule.js +2 -2
- package/lib/runtime/DefinePropertyGettersRuntimeModule.js +1 -1
- package/lib/runtime/EnsureChunkRuntimeModule.js +10 -11
- package/lib/runtime/GetChunkFilenameRuntimeModule.js +11 -17
- package/lib/runtime/LoadScriptRuntimeModule.js +17 -18
- package/lib/runtime/StartupChunkDependenciesRuntimeModule.js +1 -3
- package/lib/schemes/DataUriPlugin.js +1 -1
- package/lib/schemes/HttpUriPlugin.js +241 -126
- package/lib/serialization/BinaryMiddleware.js +44 -28
- package/lib/serialization/DateObjectSerializer.js +1 -0
- package/lib/serialization/ErrorObjectSerializer.js +2 -0
- package/lib/serialization/FileMiddleware.js +154 -106
- package/lib/serialization/MapObjectSerializer.js +2 -1
- package/lib/serialization/NullPrototypeObjectSerializer.js +3 -2
- package/lib/serialization/ObjectMiddleware.js +52 -56
- package/lib/serialization/PlainObjectSerializer.js +32 -6
- package/lib/serialization/RegExpObjectSerializer.js +1 -0
- package/lib/serialization/Serializer.js +4 -5
- package/lib/serialization/SerializerMiddleware.js +6 -6
- package/lib/serialization/SetObjectSerializer.js +2 -1
- package/lib/sharing/ConsumeSharedModule.js +19 -14
- package/lib/sharing/ConsumeSharedPlugin.js +116 -97
- package/lib/sharing/ConsumeSharedRuntimeModule.js +108 -141
- package/lib/sharing/ProvideForSharedDependency.js +0 -1
- package/lib/sharing/ProvideSharedPlugin.js +2 -2
- package/lib/sharing/resolveMatchedConfigs.js +2 -1
- package/lib/sharing/utils.js +15 -27
- package/lib/stats/DefaultStatsFactoryPlugin.js +424 -281
- package/lib/stats/DefaultStatsPresetPlugin.js +73 -18
- package/lib/stats/DefaultStatsPrinterPlugin.js +370 -101
- package/lib/stats/StatsFactory.js +127 -56
- package/lib/stats/StatsPrinter.js +75 -44
- package/lib/util/ArrayHelpers.js +8 -4
- package/lib/util/ArrayQueue.js +1 -1
- package/lib/util/AsyncQueue.js +31 -12
- package/lib/util/IterableHelpers.js +3 -4
- package/lib/util/LazyBucketSortedSet.js +60 -44
- package/lib/util/LazySet.js +1 -0
- package/lib/util/MapHelpers.js +1 -3
- package/lib/util/ParallelismFactorCalculator.js +1 -1
- package/lib/util/Queue.js +1 -1
- package/lib/util/Semaphore.js +4 -7
- package/lib/util/SetHelpers.js +5 -5
- package/lib/util/SortableSet.js +4 -3
- package/lib/util/StackedCacheMap.js +4 -6
- package/lib/util/StackedMap.js +1 -3
- package/lib/util/StringXor.js +0 -5
- package/lib/util/TupleQueue.js +1 -1
- package/lib/util/TupleSet.js +15 -5
- package/lib/util/URLAbsoluteSpecifier.js +7 -7
- package/lib/util/WeakTupleMap.js +19 -21
- package/lib/util/binarySearchBounds.js +5 -12
- package/lib/util/chainedImports.js +1 -1
- package/lib/util/cleverMerge.js +21 -19
- package/lib/util/comparators.js +57 -52
- package/lib/util/compileBooleanMatcher.js +3 -6
- package/lib/util/conventions.js +10 -13
- package/lib/util/createHash.js +9 -6
- package/lib/util/deprecation.js +22 -12
- package/lib/util/deterministicGrouping.js +19 -26
- package/lib/util/findGraphRoots.js +2 -2
- package/lib/util/fs.js +31 -31
- package/lib/util/hash/md4.js +2 -2
- package/lib/util/hash/wasm-hash.js +7 -7
- package/lib/util/hash/xxhash64.js +2 -2
- package/lib/util/identifier.js +81 -59
- package/lib/util/memoize.js +8 -10
- package/lib/util/mergeScope.js +6 -9
- package/lib/util/nonNumericOnlyHash.js +2 -2
- package/lib/util/numberHash.js +1 -6
- package/lib/util/objectToMap.js +0 -1
- package/lib/util/propertyAccess.js +2 -5
- package/lib/util/propertyName.js +1 -3
- package/lib/util/registerExternalSerializer.js +1 -1
- package/lib/util/runtime.js +103 -113
- package/lib/util/semver.js +29 -27
- package/lib/util/serialization.js +16 -1
- package/lib/util/smartGrouping.js +5 -5
- package/lib/util/source.js +1 -1
- package/lib/wasm/EnableWasmLoadingPlugin.js +5 -4
- package/lib/wasm-async/AsyncWasmLoadingRuntimeModule.js +3 -3
- package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +5 -6
- package/lib/wasm-async/AsyncWebAssemblyModulesPlugin.js +3 -3
- package/lib/wasm-sync/WasmChunkLoadingRuntimeModule.js +20 -19
- package/lib/wasm-sync/WebAssemblyGenerator.js +14 -29
- package/lib/wasm-sync/WebAssemblyJavascriptGenerator.js +1 -1
- package/lib/wasm-sync/WebAssemblyUtils.js +2 -2
- package/lib/web/JsonpChunkLoadingRuntimeModule.js +2 -3
- package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -1
- package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +1 -1
- package/package.json +17 -16
- package/schemas/WebpackOptions.check.js +1 -1
- package/schemas/WebpackOptions.json +17 -0
- package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetInlineGeneratorOptions.check.js +1 -1
- package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
- package/schemas/plugins/container/ContainerReferencePlugin.json +1 -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 +1 -0
- package/types.d.ts +682 -347
package/lib/util/deprecation.js
CHANGED
@@ -15,7 +15,10 @@ const deprecationCache = new Map();
|
|
15
15
|
* @property {true} _fakeHook it's a fake hook
|
16
16
|
*/
|
17
17
|
|
18
|
-
/**
|
18
|
+
/**
|
19
|
+
* @template T
|
20
|
+
* @typedef {T & FakeHookMarker} FakeHook<T>
|
21
|
+
*/
|
19
22
|
|
20
23
|
/**
|
21
24
|
* @param {string} message deprecation message
|
@@ -28,7 +31,7 @@ const createDeprecation = (message, code) => {
|
|
28
31
|
const fn = util.deprecate(
|
29
32
|
() => {},
|
30
33
|
message,
|
31
|
-
|
34
|
+
`DEP_WEBPACK_DEPRECATION_${code}`
|
32
35
|
);
|
33
36
|
deprecationCache.set(message, fn);
|
34
37
|
return fn;
|
@@ -69,7 +72,7 @@ const DISABLED_METHODS = [
|
|
69
72
|
* @param {string} name property name
|
70
73
|
* @returns {void}
|
71
74
|
*/
|
72
|
-
exports.arrayToSetDeprecation = (set, name) => {
|
75
|
+
module.exports.arrayToSetDeprecation = (set, name) => {
|
73
76
|
for (const method of COPY_METHODS) {
|
74
77
|
if (set[method]) continue;
|
75
78
|
const d = createDeprecation(
|
@@ -84,7 +87,11 @@ exports.arrayToSetDeprecation = (set, name) => {
|
|
84
87
|
set[method] = function () {
|
85
88
|
d();
|
86
89
|
const array = Array.from(this);
|
87
|
-
return Array.prototype[method].apply(
|
90
|
+
return Array.prototype[/** @type {keyof COPY_METHODS} */ (method)].apply(
|
91
|
+
array,
|
92
|
+
// eslint-disable-next-line prefer-rest-params
|
93
|
+
arguments
|
94
|
+
);
|
88
95
|
};
|
89
96
|
}
|
90
97
|
const dPush = createDeprecation(
|
@@ -106,6 +113,7 @@ exports.arrayToSetDeprecation = (set, name) => {
|
|
106
113
|
*/
|
107
114
|
set.push = function () {
|
108
115
|
dPush();
|
116
|
+
// eslint-disable-next-line prefer-rest-params
|
109
117
|
for (const item of Array.from(arguments)) {
|
110
118
|
this.add(item);
|
111
119
|
}
|
@@ -128,13 +136,13 @@ exports.arrayToSetDeprecation = (set, name) => {
|
|
128
136
|
* @this {Set<any>} a Set
|
129
137
|
* @returns {any} the value at this location
|
130
138
|
*/
|
139
|
+
// eslint-disable-next-line func-style
|
131
140
|
const fn = function () {
|
132
141
|
dIndexer();
|
133
142
|
let i = 0;
|
134
143
|
for (const item of this) {
|
135
144
|
if (i++ === index) return item;
|
136
145
|
}
|
137
|
-
return undefined;
|
138
146
|
};
|
139
147
|
return fn;
|
140
148
|
};
|
@@ -171,14 +179,17 @@ exports.arrayToSetDeprecation = (set, name) => {
|
|
171
179
|
set[Symbol.isConcatSpreadable] = true;
|
172
180
|
};
|
173
181
|
|
174
|
-
exports.createArrayToSetDeprecationSet = name => {
|
182
|
+
module.exports.createArrayToSetDeprecationSet = name => {
|
175
183
|
let initialized = false;
|
176
184
|
class SetDeprecatedArray extends Set {
|
177
185
|
constructor(items) {
|
178
186
|
super(items);
|
179
187
|
if (!initialized) {
|
180
188
|
initialized = true;
|
181
|
-
exports.arrayToSetDeprecation(
|
189
|
+
module.exports.arrayToSetDeprecation(
|
190
|
+
SetDeprecatedArray.prototype,
|
191
|
+
name
|
192
|
+
);
|
182
193
|
}
|
183
194
|
}
|
184
195
|
}
|
@@ -186,14 +197,13 @@ exports.createArrayToSetDeprecationSet = name => {
|
|
186
197
|
};
|
187
198
|
|
188
199
|
/**
|
189
|
-
* @template T
|
190
200
|
* @param {object} obj object
|
191
201
|
* @param {string} name property name
|
192
202
|
* @param {string} code deprecation code
|
193
203
|
* @param {string} note additional note
|
194
|
-
* @returns {object} frozen object with deprecation when modifying
|
204
|
+
* @returns {Proxy<object>} frozen object with deprecation when modifying
|
195
205
|
*/
|
196
|
-
exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => {
|
206
|
+
module.exports.soonFrozenObjectDeprecation = (obj, name, code, note = "") => {
|
197
207
|
const message = `${name} will be frozen in future, all modifications are deprecated.${
|
198
208
|
note && `\n${note}`
|
199
209
|
}`;
|
@@ -260,7 +270,7 @@ const deprecateAllProperties = (obj, message, code) => {
|
|
260
270
|
}
|
261
271
|
return /** @type {T} */ (newObj);
|
262
272
|
};
|
263
|
-
exports.deprecateAllProperties = deprecateAllProperties;
|
273
|
+
module.exports.deprecateAllProperties = deprecateAllProperties;
|
264
274
|
|
265
275
|
/**
|
266
276
|
* @template T
|
@@ -269,7 +279,7 @@ exports.deprecateAllProperties = deprecateAllProperties;
|
|
269
279
|
* @param {string=} code deprecation code (not deprecated when unset)
|
270
280
|
* @returns {FakeHook<T>} fake hook which redirects
|
271
281
|
*/
|
272
|
-
exports.createFakeHook = (fakeHook, message, code) => {
|
282
|
+
module.exports.createFakeHook = (fakeHook, message, code) => {
|
273
283
|
if (message && code) {
|
274
284
|
fakeHook = deprecateAllProperties(fakeHook, message, code);
|
275
285
|
}
|
@@ -25,7 +25,6 @@
|
|
25
25
|
// 3.2% that 5 or more groups are invalidated
|
26
26
|
|
27
27
|
/**
|
28
|
-
*
|
29
28
|
* @param {string} a key
|
30
29
|
* @param {string} b key
|
31
30
|
* @returns {number} the similarity as number
|
@@ -116,9 +115,7 @@ const isTooBig = (size, maxSize) => {
|
|
116
115
|
const s = size[key];
|
117
116
|
if (s === 0) continue;
|
118
117
|
const maxSizeValue = maxSize[key];
|
119
|
-
if (typeof maxSizeValue === "number")
|
120
|
-
if (s > maxSizeValue) return true;
|
121
|
-
}
|
118
|
+
if (typeof maxSizeValue === "number" && s > maxSizeValue) return true;
|
122
119
|
}
|
123
120
|
return false;
|
124
121
|
};
|
@@ -133,9 +130,7 @@ const isTooSmall = (size, minSize) => {
|
|
133
130
|
const s = size[key];
|
134
131
|
if (s === 0) continue;
|
135
132
|
const minSizeValue = minSize[key];
|
136
|
-
if (typeof minSizeValue === "number")
|
137
|
-
if (s < minSizeValue) return true;
|
138
|
-
}
|
133
|
+
if (typeof minSizeValue === "number" && s < minSizeValue) return true;
|
139
134
|
}
|
140
135
|
return false;
|
141
136
|
};
|
@@ -151,9 +146,7 @@ const getTooSmallTypes = (size, minSize) => {
|
|
151
146
|
const s = size[key];
|
152
147
|
if (s === 0) continue;
|
153
148
|
const minSizeValue = minSize[key];
|
154
|
-
if (typeof minSizeValue === "number")
|
155
|
-
if (s < minSizeValue) types.add(key);
|
156
|
-
}
|
149
|
+
if (typeof minSizeValue === "number" && s < minSizeValue) types.add(key);
|
157
150
|
}
|
158
151
|
return types;
|
159
152
|
};
|
@@ -236,14 +229,14 @@ class Group {
|
|
236
229
|
newSimilarities.push(
|
237
230
|
lastNode === this.nodes[i - 1]
|
238
231
|
? /** @type {number[]} */ (this.similarities)[i - 1]
|
239
|
-
: similarity(lastNode.key, node.key)
|
232
|
+
: similarity(/** @type {Node<T>} */ (lastNode).key, node.key)
|
240
233
|
);
|
241
234
|
}
|
242
235
|
newNodes.push(node);
|
243
236
|
lastNode = node;
|
244
237
|
}
|
245
238
|
}
|
246
|
-
if (resultNodes.length === this.nodes.length) return
|
239
|
+
if (resultNodes.length === this.nodes.length) return;
|
247
240
|
this.nodes = newNodes;
|
248
241
|
this.similarities = newSimilarities;
|
249
242
|
this.size = sumSize(newNodes);
|
@@ -260,7 +253,7 @@ const getSimilarities = nodes => {
|
|
260
253
|
// calculate similarities between lexically adjacent nodes
|
261
254
|
/** @type {number[]} */
|
262
255
|
const similarities = [];
|
263
|
-
let last
|
256
|
+
let last;
|
264
257
|
for (const node of nodes) {
|
265
258
|
if (last !== undefined) {
|
266
259
|
similarities.push(similarity(last.key, node.key));
|
@@ -371,9 +364,8 @@ module.exports = ({ maxSize, minSize, items, getSize, getKey }) => {
|
|
371
364
|
result.push(new Group(problemNodes, null));
|
372
365
|
}
|
373
366
|
return true;
|
374
|
-
} else {
|
375
|
-
return false;
|
376
367
|
}
|
368
|
+
return false;
|
377
369
|
};
|
378
370
|
|
379
371
|
if (initialGroup.nodes.length > 0) {
|
@@ -398,14 +390,14 @@ module.exports = ({ maxSize, minSize, items, getSize, getKey }) => {
|
|
398
390
|
// going minSize from left and right
|
399
391
|
// at least one node need to be included otherwise we get stuck
|
400
392
|
let left = 1;
|
401
|
-
|
393
|
+
const leftSize = Object.create(null);
|
402
394
|
addSizeTo(leftSize, group.nodes[0].size);
|
403
395
|
while (left < group.nodes.length && isTooSmall(leftSize, minSize)) {
|
404
396
|
addSizeTo(leftSize, group.nodes[left].size);
|
405
397
|
left++;
|
406
398
|
}
|
407
399
|
let right = group.nodes.length - 2;
|
408
|
-
|
400
|
+
const rightSize = Object.create(null);
|
409
401
|
addSizeTo(rightSize, group.nodes[group.nodes.length - 1].size);
|
410
402
|
while (right >= 0 && isTooSmall(rightSize, minSize)) {
|
411
403
|
addSizeTo(rightSize, group.nodes[right].size);
|
@@ -453,7 +445,7 @@ module.exports = ({ maxSize, minSize, items, getSize, getKey }) => {
|
|
453
445
|
let best = -1;
|
454
446
|
let bestSimilarity = Infinity;
|
455
447
|
let pos = left;
|
456
|
-
|
448
|
+
const rightSize = sumSize(group.nodes.slice(pos));
|
457
449
|
|
458
450
|
// pos v v right
|
459
451
|
// [ O O O ] O O O [ O O O ]
|
@@ -536,12 +528,13 @@ module.exports = ({ maxSize, minSize, items, getSize, getKey }) => {
|
|
536
528
|
}
|
537
529
|
|
538
530
|
// return the results
|
539
|
-
return result.map(
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
531
|
+
return result.map(
|
532
|
+
group =>
|
533
|
+
/** @type {GroupedItems<T>} */
|
534
|
+
({
|
535
|
+
key: group.key,
|
536
|
+
items: group.nodes.map(node => node.item),
|
537
|
+
size: group.size
|
538
|
+
})
|
539
|
+
);
|
547
540
|
};
|
@@ -225,7 +225,7 @@ module.exports = (items, getDependencies) => {
|
|
225
225
|
// When roots were found, return them
|
226
226
|
if (roots.size > 0) {
|
227
227
|
return Array.from(roots, r => r.item);
|
228
|
-
} else {
|
229
|
-
throw new Error("Implementation of findGraphRoots is broken");
|
230
228
|
}
|
229
|
+
|
230
|
+
throw new Error("Implementation of findGraphRoots is broken");
|
231
231
|
};
|
package/lib/util/fs.js
CHANGED
@@ -80,23 +80,28 @@ const path = require("path");
|
|
80
80
|
/** @typedef {function(NodeJS.ErrnoException | null, number=): void} NumberCallback */
|
81
81
|
/** @typedef {function(NodeJS.ErrnoException | Error | null, JsonObject=): void} ReadJsonCallback */
|
82
82
|
|
83
|
+
/** @typedef {Map<string, FileSystemInfoEntry | "ignore">} TimeInfoEntries */
|
84
|
+
|
83
85
|
/**
|
84
86
|
* @typedef {object} WatcherInfo
|
85
87
|
* @property {Set<string>} changes get current aggregated changes that have not yet send to callback
|
86
88
|
* @property {Set<string>} removals get current aggregated removals that have not yet send to callback
|
87
|
-
* @property {
|
88
|
-
* @property {
|
89
|
+
* @property {TimeInfoEntries} fileTimeInfoEntries get info about files
|
90
|
+
* @property {TimeInfoEntries} contextTimeInfoEntries get info about directories
|
89
91
|
*/
|
90
92
|
|
93
|
+
/** @typedef {Set<string>} Changes */
|
94
|
+
/** @typedef {Set<string>} Removals */
|
95
|
+
|
91
96
|
// TODO webpack 6 deprecate missing getInfo
|
92
97
|
/**
|
93
98
|
* @typedef {object} Watcher
|
94
99
|
* @property {function(): void} close closes the watcher and all underlying file watchers
|
95
100
|
* @property {function(): void} pause closes the watcher, but keeps underlying file watchers alive until the next watch call
|
96
|
-
* @property {function():
|
97
|
-
* @property {function():
|
98
|
-
* @property {function():
|
99
|
-
* @property {function():
|
101
|
+
* @property {function(): Changes=} getAggregatedChanges get current aggregated changes that have not yet send to callback
|
102
|
+
* @property {function(): Removals=} getAggregatedRemovals get current aggregated removals that have not yet send to callback
|
103
|
+
* @property {function(): TimeInfoEntries} getFileTimeInfoEntries get info about files
|
104
|
+
* @property {function(): TimeInfoEntries} getContextTimeInfoEntries get info about directories
|
100
105
|
* @property {function(): WatcherInfo=} getInfo get info about timestamps and changes
|
101
106
|
*/
|
102
107
|
|
@@ -107,7 +112,7 @@ const path = require("path");
|
|
107
112
|
* @param {Iterable<string>} missing watched existence entries
|
108
113
|
* @param {number} startTime timestamp of start time
|
109
114
|
* @param {WatchOptions} options options object
|
110
|
-
* @param {function(Error | null,
|
115
|
+
* @param {function(Error | null, TimeInfoEntries=, TimeInfoEntries=, Changes=, Removals=): void} callback aggregated callback
|
111
116
|
* @param {function(string, number): void} callbackUndelayed callback when the first change was detected
|
112
117
|
* @returns {Watcher} a watcher
|
113
118
|
*/
|
@@ -451,7 +456,6 @@ const path = require("path");
|
|
451
456
|
/** @typedef {InputFileSystem & OutputFileSystem & IntermediateFileSystemExtras} IntermediateFileSystem */
|
452
457
|
|
453
458
|
/**
|
454
|
-
*
|
455
459
|
* @param {InputFileSystem|OutputFileSystem|undefined} fs a file system
|
456
460
|
* @param {string} rootPath the root path
|
457
461
|
* @param {string} targetPath the target path
|
@@ -464,13 +468,12 @@ const relative = (fs, rootPath, targetPath) => {
|
|
464
468
|
return path.posix.relative(rootPath, targetPath);
|
465
469
|
} else if (path.win32.isAbsolute(rootPath)) {
|
466
470
|
return path.win32.relative(rootPath, targetPath);
|
467
|
-
} else {
|
468
|
-
throw new Error(
|
469
|
-
`${rootPath} is neither a posix nor a windows path, and there is no 'relative' method defined in the file system`
|
470
|
-
);
|
471
471
|
}
|
472
|
+
throw new Error(
|
473
|
+
`${rootPath} is neither a posix nor a windows path, and there is no 'relative' method defined in the file system`
|
474
|
+
);
|
472
475
|
};
|
473
|
-
exports.relative = relative;
|
476
|
+
module.exports.relative = relative;
|
474
477
|
|
475
478
|
/**
|
476
479
|
* @param {InputFileSystem|OutputFileSystem|undefined} fs a file system
|
@@ -485,13 +488,12 @@ const join = (fs, rootPath, filename) => {
|
|
485
488
|
return path.posix.join(rootPath, filename);
|
486
489
|
} else if (path.win32.isAbsolute(rootPath)) {
|
487
490
|
return path.win32.join(rootPath, filename);
|
488
|
-
} else {
|
489
|
-
throw new Error(
|
490
|
-
`${rootPath} is neither a posix nor a windows path, and there is no 'join' method defined in the file system`
|
491
|
-
);
|
492
491
|
}
|
492
|
+
throw new Error(
|
493
|
+
`${rootPath} is neither a posix nor a windows path, and there is no 'join' method defined in the file system`
|
494
|
+
);
|
493
495
|
};
|
494
|
-
exports.join = join;
|
496
|
+
module.exports.join = join;
|
495
497
|
|
496
498
|
/**
|
497
499
|
* @param {InputFileSystem|OutputFileSystem|undefined} fs a file system
|
@@ -505,13 +507,12 @@ const dirname = (fs, absPath) => {
|
|
505
507
|
return path.posix.dirname(absPath);
|
506
508
|
} else if (path.win32.isAbsolute(absPath)) {
|
507
509
|
return path.win32.dirname(absPath);
|
508
|
-
} else {
|
509
|
-
throw new Error(
|
510
|
-
`${absPath} is neither a posix nor a windows path, and there is no 'dirname' method defined in the file system`
|
511
|
-
);
|
512
510
|
}
|
511
|
+
throw new Error(
|
512
|
+
`${absPath} is neither a posix nor a windows path, and there is no 'dirname' method defined in the file system`
|
513
|
+
);
|
513
514
|
};
|
514
|
-
exports.dirname = dirname;
|
515
|
+
module.exports.dirname = dirname;
|
515
516
|
|
516
517
|
/**
|
517
518
|
* @param {OutputFileSystem} fs a file system
|
@@ -556,7 +557,7 @@ const mkdirp = (fs, p, callback) => {
|
|
556
557
|
callback();
|
557
558
|
});
|
558
559
|
};
|
559
|
-
exports.mkdirp = mkdirp;
|
560
|
+
module.exports.mkdirp = mkdirp;
|
560
561
|
|
561
562
|
/**
|
562
563
|
* @param {IntermediateFileSystem} fs a file system
|
@@ -583,7 +584,7 @@ const mkdirpSync = (fs, p) => {
|
|
583
584
|
}
|
584
585
|
}
|
585
586
|
};
|
586
|
-
exports.mkdirpSync = mkdirpSync;
|
587
|
+
module.exports.mkdirpSync = mkdirpSync;
|
587
588
|
|
588
589
|
/**
|
589
590
|
* @param {InputFileSystem} fs a file system
|
@@ -601,13 +602,13 @@ const readJson = (fs, p, callback) => {
|
|
601
602
|
let data;
|
602
603
|
try {
|
603
604
|
data = JSON.parse(/** @type {Buffer} */ (buf).toString("utf-8"));
|
604
|
-
} catch (
|
605
|
-
return callback(/** @type {Error} */ (
|
605
|
+
} catch (err1) {
|
606
|
+
return callback(/** @type {Error} */ (err1));
|
606
607
|
}
|
607
608
|
return callback(null, data);
|
608
609
|
});
|
609
610
|
};
|
610
|
-
exports.readJson = readJson;
|
611
|
+
module.exports.readJson = readJson;
|
611
612
|
|
612
613
|
/**
|
613
614
|
* @param {InputFileSystem} fs a file system
|
@@ -641,11 +642,10 @@ const lstatReadlinkAbsolute = (fs, p, callback) => {
|
|
641
642
|
callback(null, stats);
|
642
643
|
}
|
643
644
|
);
|
644
|
-
} else {
|
645
|
-
return fs.stat(p, callback);
|
646
645
|
}
|
646
|
+
return fs.stat(p, callback);
|
647
647
|
};
|
648
648
|
if ("lstat" in fs) return doStat();
|
649
649
|
doReadLink();
|
650
650
|
};
|
651
|
-
exports.lstatReadlinkAbsolute = lstatReadlinkAbsolute;
|
651
|
+
module.exports.lstatReadlinkAbsolute = lstatReadlinkAbsolute;
|
package/lib/util/hash/md4.js
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
const create = require("./wasm-hash");
|
9
9
|
|
10
|
-
|
10
|
+
// #region wasm code: md4 (../../../assembly/hash/md4.asm.ts) --initialMemory 1
|
11
11
|
const md4 = new WebAssembly.Module(
|
12
12
|
Buffer.from(
|
13
13
|
// 2154 bytes
|
@@ -15,6 +15,6 @@ const md4 = new WebAssembly.Module(
|
|
15
15
|
"base64"
|
16
16
|
)
|
17
17
|
);
|
18
|
-
|
18
|
+
// #endregion
|
19
19
|
|
20
20
|
module.exports = create.bind(null, md4, [], 64, 32);
|
@@ -149,14 +149,14 @@ const create = (wasmModule, instancesPool, chunkSize, digestSize) => {
|
|
149
149
|
const old = instancesPool.pop();
|
150
150
|
old.reset();
|
151
151
|
return old;
|
152
|
-
} else {
|
153
|
-
return new WasmHash(
|
154
|
-
new WebAssembly.Instance(wasmModule),
|
155
|
-
instancesPool,
|
156
|
-
chunkSize,
|
157
|
-
digestSize
|
158
|
-
);
|
159
152
|
}
|
153
|
+
|
154
|
+
return new WasmHash(
|
155
|
+
new WebAssembly.Instance(wasmModule),
|
156
|
+
instancesPool,
|
157
|
+
chunkSize,
|
158
|
+
digestSize
|
159
|
+
);
|
160
160
|
};
|
161
161
|
|
162
162
|
module.exports = create;
|
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
const create = require("./wasm-hash");
|
9
9
|
|
10
|
-
|
10
|
+
// #region wasm code: xxhash64 (../../../assembly/hash/xxhash64.asm.ts) --initialMemory 1
|
11
11
|
const xxhash64 = new WebAssembly.Module(
|
12
12
|
Buffer.from(
|
13
13
|
// 1160 bytes
|
@@ -15,6 +15,6 @@ const xxhash64 = new WebAssembly.Module(
|
|
15
15
|
"base64"
|
16
16
|
)
|
17
17
|
);
|
18
|
-
|
18
|
+
// #endregion
|
19
19
|
|
20
20
|
module.exports = create.bind(null, xxhash64, [], 32, 16);
|