@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
|
@@ -11,18 +11,22 @@ const DONE_MARKER = 2;
|
|
|
11
11
|
const CANDIDATE_MARKER = 3;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
+
* Defines the nodes type used by this module.
|
|
14
15
|
* @template T
|
|
15
16
|
* @typedef {Set<Node<T>>} Nodes
|
|
16
17
|
*/
|
|
17
18
|
|
|
18
19
|
/**
|
|
20
|
+
* Represents the node runtime component.
|
|
19
21
|
* @template T
|
|
20
22
|
*/
|
|
21
23
|
class Node {
|
|
22
24
|
/**
|
|
25
|
+
* Creates an instance of Node.
|
|
23
26
|
* @param {T} item the value of the node
|
|
24
27
|
*/
|
|
25
28
|
constructor(item) {
|
|
29
|
+
/** @type {T} */
|
|
26
30
|
this.item = item;
|
|
27
31
|
/** @type {Nodes<T>} */
|
|
28
32
|
this.dependencies = new Set();
|
|
@@ -43,11 +47,13 @@ class SCC {
|
|
|
43
47
|
constructor() {
|
|
44
48
|
/** @type {Nodes<T>} */
|
|
45
49
|
this.nodes = new Set();
|
|
50
|
+
/** @type {number} */
|
|
46
51
|
this.marker = NO_MARKER;
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
54
|
|
|
50
55
|
/**
|
|
56
|
+
* Defines the stack entry type used by this module.
|
|
51
57
|
* @template T
|
|
52
58
|
* @typedef {object} StackEntry
|
|
53
59
|
* @property {Node<T>} node
|
|
@@ -55,6 +61,7 @@ class SCC {
|
|
|
55
61
|
*/
|
|
56
62
|
|
|
57
63
|
/**
|
|
64
|
+
* Returns graph roots of the items.
|
|
58
65
|
* @template T
|
|
59
66
|
* @param {Iterable<T>} items list of items
|
|
60
67
|
* @param {(item: T) => Iterable<T>} getDependencies function to get dependencies of an item (items that are not in list are ignored)
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
/** @typedef {import("
|
|
9
|
-
/** @typedef {import("
|
|
8
|
+
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
|
|
9
|
+
/** @typedef {import("../Dependency").SourcePosition} SourcePosition */
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
+
* Returns formatted position.
|
|
12
13
|
* @param {SourcePosition} pos position
|
|
13
14
|
* @returns {string} formatted position
|
|
14
15
|
*/
|
|
@@ -24,6 +25,7 @@ const formatPosition = (pos) => {
|
|
|
24
25
|
};
|
|
25
26
|
|
|
26
27
|
/**
|
|
28
|
+
* Returns formatted location.
|
|
27
29
|
* @param {DependencyLocation} loc location
|
|
28
30
|
* @returns {string} formatted location
|
|
29
31
|
*/
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* Returns the formatted size.
|
|
9
10
|
* @param {number=} size the size in bytes
|
|
10
11
|
* @returns {string} the formatted size
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
|
+
const formatSize = (size) => {
|
|
13
14
|
if (typeof size !== "number" || Number.isNaN(size) === true) {
|
|
14
15
|
return "unknown size";
|
|
15
16
|
}
|
|
@@ -18,8 +19,14 @@ module.exports.formatSize = (size) => {
|
|
|
18
19
|
return "0 bytes";
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
const abbreviations = ["bytes", "KiB", "MiB", "GiB"];
|
|
22
|
-
|
|
22
|
+
const abbreviations = ["bytes", "KiB", "MiB", "GiB", "TiB", "PiB"];
|
|
23
|
+
// clamp so sizes beyond the largest unit don't index past the table
|
|
24
|
+
const index = Math.min(
|
|
25
|
+
Math.floor(Math.log(size) / Math.log(1024)),
|
|
26
|
+
abbreviations.length - 1
|
|
27
|
+
);
|
|
23
28
|
|
|
24
29
|
return `${Number((size / 1024 ** index).toPrecision(3))} ${abbreviations[index]}`;
|
|
25
30
|
};
|
|
31
|
+
|
|
32
|
+
module.exports = formatSize;
|
package/lib/util/fs.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
const path = require("path");
|
|
9
|
+
const { ABSOLUTE_PATH_REGEXP } = require("./identifier");
|
|
9
10
|
|
|
10
11
|
/** @typedef {import("../../declarations/WebpackOptions").WatchOptions} WatchOptions */
|
|
11
12
|
/** @typedef {import("watchpack").Entry} Entry */
|
|
@@ -13,6 +14,7 @@ const path = require("path");
|
|
|
13
14
|
/** @typedef {import("watchpack").ExistenceOnlyTimeEntry} ExistenceOnlyTimeEntry */
|
|
14
15
|
|
|
15
16
|
/**
|
|
17
|
+
* Defines the i stats base type used by this module.
|
|
16
18
|
* @template T
|
|
17
19
|
* @typedef {object} IStatsBase
|
|
18
20
|
* @property {() => boolean} isFile
|
|
@@ -43,14 +45,17 @@ const path = require("path");
|
|
|
43
45
|
*/
|
|
44
46
|
|
|
45
47
|
/**
|
|
48
|
+
* Defines the i stats type used by this module.
|
|
46
49
|
* @typedef {IStatsBase<number>} IStats
|
|
47
50
|
*/
|
|
48
51
|
|
|
49
52
|
/**
|
|
53
|
+
* Defines the i big int stats type used by this module.
|
|
50
54
|
* @typedef {IStatsBase<bigint> & { atimeNs: bigint, mtimeNs: bigint, ctimeNs: bigint, birthtimeNs: bigint }} IBigIntStats
|
|
51
55
|
*/
|
|
52
56
|
|
|
53
57
|
/**
|
|
58
|
+
* Defines the dirent type used by this module.
|
|
54
59
|
* @template {string | Buffer} [T=string]
|
|
55
60
|
* @typedef {object} Dirent
|
|
56
61
|
* @property {() => boolean} isFile true when is file, otherwise false
|
|
@@ -91,6 +96,7 @@ const path = require("path");
|
|
|
91
96
|
/** @typedef {Set<string>} Removals */
|
|
92
97
|
|
|
93
98
|
/**
|
|
99
|
+
* Defines the watcher info type used by this module.
|
|
94
100
|
* @typedef {object} WatcherInfo
|
|
95
101
|
* @property {Changes | null} changes get current aggregated changes that have not yet send to callback
|
|
96
102
|
* @property {Removals | null} removals get current aggregated removals that have not yet send to callback
|
|
@@ -100,6 +106,7 @@ const path = require("path");
|
|
|
100
106
|
|
|
101
107
|
// TODO webpack 6 deprecate missing getInfo
|
|
102
108
|
/**
|
|
109
|
+
* Defines the watcher type used by this module.
|
|
103
110
|
* @typedef {object} Watcher
|
|
104
111
|
* @property {() => void} close closes the watcher and all underlying file watchers
|
|
105
112
|
* @property {() => void} pause closes the watcher, but keeps underlying file watchers alive until the next watch call
|
|
@@ -111,6 +118,7 @@ const path = require("path");
|
|
|
111
118
|
*/
|
|
112
119
|
|
|
113
120
|
/**
|
|
121
|
+
* Defines the watch method callback.
|
|
114
122
|
* @callback WatchMethod
|
|
115
123
|
* @param {Iterable<string>} files watched files
|
|
116
124
|
* @param {Iterable<string>} directories watched directories
|
|
@@ -125,19 +133,23 @@ const path = require("path");
|
|
|
125
133
|
// TODO webpack 6 make optional methods required and avoid using non standard methods like `join`, `relative`, `dirname`, move IntermediateFileSystemExtras methods to InputFilesystem or OutputFilesystem
|
|
126
134
|
|
|
127
135
|
/**
|
|
136
|
+
* Defines the path like type used by this module.
|
|
128
137
|
* @typedef {string | Buffer | URL} PathLike
|
|
129
138
|
*/
|
|
130
139
|
|
|
131
140
|
/**
|
|
141
|
+
* Defines the path or file descriptor type used by this module.
|
|
132
142
|
* @typedef {PathLike | number} PathOrFileDescriptor
|
|
133
143
|
*/
|
|
134
144
|
|
|
135
145
|
/**
|
|
146
|
+
* Defines the object encoding options type used by this module.
|
|
136
147
|
* @typedef {object} ObjectEncodingOptions
|
|
137
148
|
* @property {BufferEncoding | null | undefined=} encoding
|
|
138
149
|
*/
|
|
139
150
|
|
|
140
151
|
/**
|
|
152
|
+
* Describes the read file shape.
|
|
141
153
|
* @typedef {{
|
|
142
154
|
* (path: PathOrFileDescriptor, options: ({ encoding?: null | undefined, flag?: string | undefined } & import("events").Abortable) | undefined | null, callback: BufferCallback): void,
|
|
143
155
|
* (path: PathOrFileDescriptor, options: ({ encoding: BufferEncoding, flag?: string | undefined } & import("events").Abortable) | BufferEncoding, callback: StringCallback): void,
|
|
@@ -147,6 +159,7 @@ const path = require("path");
|
|
|
147
159
|
*/
|
|
148
160
|
|
|
149
161
|
/**
|
|
162
|
+
* Describes the read file sync shape.
|
|
150
163
|
* @typedef {{
|
|
151
164
|
* (path: PathOrFileDescriptor, options?: { encoding?: null | undefined, flag?: string | undefined } | null): Buffer,
|
|
152
165
|
* (path: PathOrFileDescriptor, options: { encoding: BufferEncoding, flag?: string | undefined } | BufferEncoding): string,
|
|
@@ -155,25 +168,30 @@ const path = require("path");
|
|
|
155
168
|
*/
|
|
156
169
|
|
|
157
170
|
/**
|
|
171
|
+
* Defines the encoding option type used by this module.
|
|
158
172
|
* @typedef {ObjectEncodingOptions | BufferEncoding | undefined | null} EncodingOption
|
|
159
173
|
*/
|
|
160
174
|
|
|
161
175
|
/**
|
|
176
|
+
* Defines the buffer encoding option type used by this module.
|
|
162
177
|
* @typedef {"buffer" | { encoding: "buffer" }} BufferEncodingOption
|
|
163
178
|
*/
|
|
164
179
|
|
|
165
180
|
/**
|
|
181
|
+
* Defines the stat options type used by this module.
|
|
166
182
|
* @typedef {object} StatOptions
|
|
167
183
|
* @property {(boolean | undefined)=} bigint
|
|
168
184
|
*/
|
|
169
185
|
|
|
170
186
|
/**
|
|
187
|
+
* Defines the stat sync options type used by this module.
|
|
171
188
|
* @typedef {object} StatSyncOptions
|
|
172
189
|
* @property {(boolean | undefined)=} bigint
|
|
173
190
|
* @property {(boolean | undefined)=} throwIfNoEntry
|
|
174
191
|
*/
|
|
175
192
|
|
|
176
193
|
/**
|
|
194
|
+
* Describes the readlink shape.
|
|
177
195
|
* @typedef {{
|
|
178
196
|
* (path: PathLike, options: EncodingOption, callback: StringCallback): void,
|
|
179
197
|
* (path: PathLike, options: BufferEncodingOption, callback: BufferCallback): void,
|
|
@@ -183,6 +201,7 @@ const path = require("path");
|
|
|
183
201
|
*/
|
|
184
202
|
|
|
185
203
|
/**
|
|
204
|
+
* Describes the readlink sync shape.
|
|
186
205
|
* @typedef {{
|
|
187
206
|
* (path: PathLike, options?: EncodingOption): string,
|
|
188
207
|
* (path: PathLike, options: BufferEncodingOption): Buffer,
|
|
@@ -191,6 +210,7 @@ const path = require("path");
|
|
|
191
210
|
*/
|
|
192
211
|
|
|
193
212
|
/**
|
|
213
|
+
* Describes the readdir shape.
|
|
194
214
|
* @typedef {{
|
|
195
215
|
* (path: PathLike, options: { encoding: BufferEncoding | null, withFileTypes?: false | undefined, recursive?: boolean | undefined } | BufferEncoding | undefined | null, callback: (err: NodeJS.ErrnoException | null, files?: string[]) => void): void,
|
|
196
216
|
* (path: PathLike, options: { encoding: "buffer", withFileTypes?: false | undefined, recursive?: boolean | undefined } | "buffer", callback: (err: NodeJS.ErrnoException | null, files?: Buffer[]) => void): void,
|
|
@@ -202,6 +222,7 @@ const path = require("path");
|
|
|
202
222
|
*/
|
|
203
223
|
|
|
204
224
|
/**
|
|
225
|
+
* Describes the readdir sync shape.
|
|
205
226
|
* @typedef {{
|
|
206
227
|
* (path: PathLike, options?: { encoding: BufferEncoding | null, withFileTypes?: false | undefined, recursive?: boolean | undefined } | BufferEncoding | null): string[],
|
|
207
228
|
* (path: PathLike, options: { encoding: "buffer", withFileTypes?: false | undefined, recursive?: boolean | undefined } | "buffer"): Buffer[],
|
|
@@ -212,6 +233,7 @@ const path = require("path");
|
|
|
212
233
|
*/
|
|
213
234
|
|
|
214
235
|
/**
|
|
236
|
+
* Describes the stat shape.
|
|
215
237
|
* @typedef {{
|
|
216
238
|
* (path: PathLike, callback: StatsCallback): void,
|
|
217
239
|
* (path: PathLike, options: (StatOptions & { bigint?: false | undefined }) | undefined, callback: StatsCallback): void,
|
|
@@ -221,18 +243,20 @@ const path = require("path");
|
|
|
221
243
|
*/
|
|
222
244
|
|
|
223
245
|
/**
|
|
246
|
+
* Describes the stat sync shape.
|
|
224
247
|
* @typedef {{
|
|
225
|
-
* (path: PathLike
|
|
248
|
+
* (path: PathLike): IStats,
|
|
249
|
+
* (path: PathLike, options?: StatSyncOptions & { bigint?: false | undefined, throwIfNoEntry?: true | undefined }): IStats,
|
|
250
|
+
* (path: PathLike, options: StatSyncOptions & { bigint: true, throwIfNoEntry?: true | undefined }): IBigIntStats,
|
|
226
251
|
* (path: PathLike, options?: StatSyncOptions & { bigint?: false | undefined, throwIfNoEntry: false }): IStats | undefined,
|
|
227
252
|
* (path: PathLike, options: StatSyncOptions & { bigint: true, throwIfNoEntry: false }): IBigIntStats | undefined,
|
|
228
|
-
* (path: PathLike, options
|
|
229
|
-
* (path: PathLike, options: StatSyncOptions & { bigint: true }): IBigIntStats,
|
|
230
|
-
* (path: PathLike, options: StatSyncOptions & { bigint: boolean, throwIfNoEntry?: false | undefined }): IStats | IBigIntStats,
|
|
253
|
+
* (path: PathLike, options: StatSyncOptions & { bigint: boolean, throwIfNoEntry?: true | undefined }): IStats | IBigIntStats,
|
|
231
254
|
* (path: PathLike, options?: StatSyncOptions): IStats | IBigIntStats | undefined,
|
|
232
255
|
* }} StatSync
|
|
233
256
|
*/
|
|
234
257
|
|
|
235
258
|
/**
|
|
259
|
+
* Describes the l stat shape.
|
|
236
260
|
* @typedef {{
|
|
237
261
|
* (path: PathLike, callback: StatsCallback): void,
|
|
238
262
|
* (path: PathLike, options: (StatOptions & { bigint?: false | undefined }) | undefined, callback: StatsCallback): void,
|
|
@@ -242,18 +266,20 @@ const path = require("path");
|
|
|
242
266
|
*/
|
|
243
267
|
|
|
244
268
|
/**
|
|
269
|
+
* Describes the l stat sync shape.
|
|
245
270
|
* @typedef {{
|
|
246
|
-
* (path: PathLike
|
|
271
|
+
* (path: PathLike): IStats,
|
|
272
|
+
* (path: PathLike, options?: StatSyncOptions & { bigint?: false | undefined, throwIfNoEntry?: true | undefined }): IStats,
|
|
273
|
+
* (path: PathLike, options: StatSyncOptions & { bigint: true, throwIfNoEntry?: true | undefined }): IBigIntStats,
|
|
247
274
|
* (path: PathLike, options?: StatSyncOptions & { bigint?: false | undefined, throwIfNoEntry: false }): IStats | undefined,
|
|
248
275
|
* (path: PathLike, options: StatSyncOptions & { bigint: true, throwIfNoEntry: false }): IBigIntStats | undefined,
|
|
249
|
-
* (path: PathLike, options
|
|
250
|
-
* (path: PathLike, options: StatSyncOptions & { bigint: true }): IBigIntStats,
|
|
251
|
-
* (path: PathLike, options: StatSyncOptions & { bigint: boolean, throwIfNoEntry?: false | undefined }): IStats | IBigIntStats,
|
|
276
|
+
* (path: PathLike, options: StatSyncOptions & { bigint: boolean, throwIfNoEntry?: true | undefined }): IStats | IBigIntStats,
|
|
252
277
|
* (path: PathLike, options?: StatSyncOptions): IStats | IBigIntStats | undefined,
|
|
253
278
|
* }} LStatSync
|
|
254
279
|
*/
|
|
255
280
|
|
|
256
281
|
/**
|
|
282
|
+
* Describes the real path shape.
|
|
257
283
|
* @typedef {{
|
|
258
284
|
* (path: PathLike, options: EncodingOption, callback: StringCallback): void,
|
|
259
285
|
* (path: PathLike, options: BufferEncodingOption, callback: BufferCallback): void,
|
|
@@ -263,6 +289,7 @@ const path = require("path");
|
|
|
263
289
|
*/
|
|
264
290
|
|
|
265
291
|
/**
|
|
292
|
+
* Describes the real path sync shape.
|
|
266
293
|
* @typedef {{
|
|
267
294
|
* (path: PathLike, options?: EncodingOption): string,
|
|
268
295
|
* (path: PathLike, options: BufferEncodingOption): Buffer,
|
|
@@ -271,18 +298,27 @@ const path = require("path");
|
|
|
271
298
|
*/
|
|
272
299
|
|
|
273
300
|
/**
|
|
301
|
+
* Defines the read json type used by this module.
|
|
274
302
|
* @typedef {(pathOrFileDescriptor: PathOrFileDescriptor, callback: ReadJsonCallback) => void} ReadJson
|
|
275
303
|
*/
|
|
276
304
|
|
|
277
305
|
/**
|
|
306
|
+
* Defines the read json sync type used by this module.
|
|
278
307
|
* @typedef {(pathOrFileDescriptor: PathOrFileDescriptor) => JsonObject} ReadJsonSync
|
|
279
308
|
*/
|
|
280
309
|
|
|
281
310
|
/**
|
|
282
|
-
*
|
|
311
|
+
* Defines the purge type used by this module.
|
|
312
|
+
*
|
|
313
|
+
* `options.exact` (supported by enhanced-resolve's `CachedInputFileSystem`
|
|
314
|
+
* from v5.22.0): when true, only entries whose key exactly matches `value`
|
|
315
|
+
* are invalidated; cached entries for descendants are preserved. Default
|
|
316
|
+
* is false (legacy prefix-match behavior).
|
|
317
|
+
* @typedef {(value?: string | string[] | Set<string>, options?: { exact?: boolean }) => void} Purge
|
|
283
318
|
*/
|
|
284
319
|
|
|
285
320
|
/**
|
|
321
|
+
* Defines the input file system type used by this module.
|
|
286
322
|
* @typedef {object} InputFileSystem
|
|
287
323
|
* @property {ReadFile} readFile
|
|
288
324
|
* @property {ReadFileSync=} readFileSync
|
|
@@ -305,14 +341,17 @@ const path = require("path");
|
|
|
305
341
|
*/
|
|
306
342
|
|
|
307
343
|
/**
|
|
344
|
+
* Defines the mode type used by this module.
|
|
308
345
|
* @typedef {number | string} Mode
|
|
309
346
|
*/
|
|
310
347
|
|
|
311
348
|
/**
|
|
349
|
+
* Defines the write file options type used by this module.
|
|
312
350
|
* @typedef {(ObjectEncodingOptions & import("events").Abortable & { mode?: Mode | undefined, flag?: string | undefined, flush?: boolean | undefined }) | BufferEncoding | null} WriteFileOptions
|
|
313
351
|
*/
|
|
314
352
|
|
|
315
353
|
/**
|
|
354
|
+
* Describes the write file shape.
|
|
316
355
|
* @typedef {{
|
|
317
356
|
* (file: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options: WriteFileOptions, callback: NoParamCallback): void,
|
|
318
357
|
* (file: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, callback: NoParamCallback): void,
|
|
@@ -320,10 +359,12 @@ const path = require("path");
|
|
|
320
359
|
*/
|
|
321
360
|
|
|
322
361
|
/**
|
|
362
|
+
* Defines the make directory options type used by this module.
|
|
323
363
|
* @typedef {{ recursive?: boolean | undefined, mode?: Mode | undefined }} MakeDirectoryOptions
|
|
324
364
|
*/
|
|
325
365
|
|
|
326
366
|
/**
|
|
367
|
+
* Describes the mkdir shape.
|
|
327
368
|
* @typedef {{
|
|
328
369
|
* (file: PathLike, options: MakeDirectoryOptions & { recursive: true }, callback: StringCallback): void,
|
|
329
370
|
* (file: PathLike, options: Mode | (MakeDirectoryOptions & { recursive?: false | undefined }) | null | undefined, callback: NoParamCallback): void,
|
|
@@ -333,26 +374,32 @@ const path = require("path");
|
|
|
333
374
|
*/
|
|
334
375
|
|
|
335
376
|
/**
|
|
377
|
+
* Defines the rmdir type used by this module.
|
|
336
378
|
* @typedef {{ (file: PathLike, callback: NoParamCallback): void }} Rmdir
|
|
337
379
|
*/
|
|
338
380
|
|
|
339
381
|
/**
|
|
382
|
+
* Defines the unlink type used by this module.
|
|
340
383
|
* @typedef {(pathLike: PathLike, callback: NoParamCallback) => void} Unlink
|
|
341
384
|
*/
|
|
342
385
|
|
|
343
386
|
/**
|
|
387
|
+
* Defines the create read stream fs implementation type used by this module.
|
|
344
388
|
* @typedef {FSImplementation & { read: (...args: EXPECTED_ANY[]) => EXPECTED_ANY }} CreateReadStreamFSImplementation
|
|
345
389
|
*/
|
|
346
390
|
|
|
347
391
|
/**
|
|
392
|
+
* Defines the read stream options type used by this module.
|
|
348
393
|
* @typedef {StreamOptions & { fs?: CreateReadStreamFSImplementation | null | undefined, end?: number | undefined }} ReadStreamOptions
|
|
349
394
|
*/
|
|
350
395
|
|
|
351
396
|
/**
|
|
397
|
+
* Defines the create read stream type used by this module.
|
|
352
398
|
* @typedef {(path: PathLike, options?: BufferEncoding | ReadStreamOptions) => NodeJS.ReadableStream} CreateReadStream
|
|
353
399
|
*/
|
|
354
400
|
|
|
355
401
|
/**
|
|
402
|
+
* Defines the output file system type used by this module.
|
|
356
403
|
* @typedef {object} OutputFileSystem
|
|
357
404
|
* @property {Mkdir} mkdir
|
|
358
405
|
* @property {Readdir=} readdir
|
|
@@ -369,11 +416,13 @@ const path = require("path");
|
|
|
369
416
|
*/
|
|
370
417
|
|
|
371
418
|
/**
|
|
419
|
+
* Defines the watch file system type used by this module.
|
|
372
420
|
* @typedef {object} WatchFileSystem
|
|
373
421
|
* @property {WatchMethod} watch
|
|
374
422
|
*/
|
|
375
423
|
|
|
376
424
|
/**
|
|
425
|
+
* Describes the mkdir sync shape.
|
|
377
426
|
* @typedef {{
|
|
378
427
|
* (path: PathLike, options: MakeDirectoryOptions & { recursive: true }): string | undefined,
|
|
379
428
|
* (path: PathLike, options?: Mode | (MakeDirectoryOptions & { recursive?: false | undefined }) | null): void,
|
|
@@ -382,6 +431,7 @@ const path = require("path");
|
|
|
382
431
|
*/
|
|
383
432
|
|
|
384
433
|
/**
|
|
434
|
+
* Defines the stream options type used by this module.
|
|
385
435
|
* @typedef {object} StreamOptions
|
|
386
436
|
* @property {(string | undefined)=} flags
|
|
387
437
|
* @property {(BufferEncoding | undefined)} encoding
|
|
@@ -394,28 +444,34 @@ const path = require("path");
|
|
|
394
444
|
*/
|
|
395
445
|
|
|
396
446
|
/**
|
|
447
|
+
* Defines the fs implementation type used by this module.
|
|
397
448
|
* @typedef {object} FSImplementation
|
|
398
449
|
* @property {((...args: EXPECTED_ANY[]) => EXPECTED_ANY)=} open
|
|
399
450
|
* @property {((...args: EXPECTED_ANY[]) => EXPECTED_ANY)=} close
|
|
400
451
|
*/
|
|
401
452
|
|
|
402
453
|
/**
|
|
454
|
+
* Defines the create write stream fs implementation type used by this module.
|
|
403
455
|
* @typedef {FSImplementation & { write: (...args: EXPECTED_ANY[]) => EXPECTED_ANY, close?: (...args: EXPECTED_ANY[]) => EXPECTED_ANY }} CreateWriteStreamFSImplementation
|
|
404
456
|
*/
|
|
405
457
|
|
|
406
458
|
/**
|
|
459
|
+
* Defines the write stream options type used by this module.
|
|
407
460
|
* @typedef {StreamOptions & { fs?: CreateWriteStreamFSImplementation | null | undefined, flush?: boolean | undefined }} WriteStreamOptions
|
|
408
461
|
*/
|
|
409
462
|
|
|
410
463
|
/**
|
|
464
|
+
* Defines the create write stream type used by this module.
|
|
411
465
|
* @typedef {(pathLike: PathLike, result?: BufferEncoding | WriteStreamOptions) => NodeJS.WritableStream} CreateWriteStream
|
|
412
466
|
*/
|
|
413
467
|
|
|
414
468
|
/**
|
|
469
|
+
* Defines the open mode type used by this module.
|
|
415
470
|
* @typedef {number | string} OpenMode
|
|
416
471
|
*/
|
|
417
472
|
|
|
418
473
|
/**
|
|
474
|
+
* Describes the open shape.
|
|
419
475
|
* @typedef {{
|
|
420
476
|
* (file: PathLike, flags: OpenMode | undefined, mode: Mode | undefined | null, callback: NumberCallback): void,
|
|
421
477
|
* (file: PathLike, flags: OpenMode | undefined, callback: NumberCallback): void,
|
|
@@ -424,10 +480,12 @@ const path = require("path");
|
|
|
424
480
|
*/
|
|
425
481
|
|
|
426
482
|
/**
|
|
483
|
+
* Defines the read position type used by this module.
|
|
427
484
|
* @typedef {number | bigint} ReadPosition
|
|
428
485
|
*/
|
|
429
486
|
|
|
430
487
|
/**
|
|
488
|
+
* Defines the read sync options type used by this module.
|
|
431
489
|
* @typedef {object} ReadSyncOptions
|
|
432
490
|
* @property {(number | undefined)=} offset
|
|
433
491
|
* @property {(number | undefined)=} length
|
|
@@ -435,6 +493,7 @@ const path = require("path");
|
|
|
435
493
|
*/
|
|
436
494
|
|
|
437
495
|
/**
|
|
496
|
+
* Defines the read async options type used by this module.
|
|
438
497
|
* @template {NodeJS.ArrayBufferView} TBuffer
|
|
439
498
|
* @typedef {object} ReadAsyncOptions
|
|
440
499
|
* @property {(number | undefined)=} offset
|
|
@@ -444,6 +503,7 @@ const path = require("path");
|
|
|
444
503
|
*/
|
|
445
504
|
|
|
446
505
|
/**
|
|
506
|
+
* Defines the shared type used by this module.
|
|
447
507
|
* @template {NodeJS.ArrayBufferView} [TBuffer=NodeJS.ArrayBufferView]
|
|
448
508
|
* @typedef {{
|
|
449
509
|
* (fd: number, buffer: TBuffer, offset: number, length: number, position: ReadPosition | null, callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void): void,
|
|
@@ -457,6 +517,7 @@ const path = require("path");
|
|
|
457
517
|
/** @typedef {(a: PathLike, b: PathLike, callback: NoParamCallback) => void} Rename */
|
|
458
518
|
|
|
459
519
|
/**
|
|
520
|
+
* Defines the intermediate file system extras type used by this module.
|
|
460
521
|
* @typedef {object} IntermediateFileSystemExtras
|
|
461
522
|
* @property {MkdirSync} mkdirSync
|
|
462
523
|
* @property {CreateWriteStream} createWriteStream
|
|
@@ -469,6 +530,7 @@ const path = require("path");
|
|
|
469
530
|
/** @typedef {InputFileSystem & OutputFileSystem & IntermediateFileSystemExtras} IntermediateFileSystem */
|
|
470
531
|
|
|
471
532
|
/**
|
|
533
|
+
* Returns location of targetPath relative to rootPath.
|
|
472
534
|
* @param {InputFileSystem | OutputFileSystem | undefined} fs a file system
|
|
473
535
|
* @param {string} rootPath the root path
|
|
474
536
|
* @param {string} targetPath the target path
|
|
@@ -488,6 +550,7 @@ const relative = (fs, rootPath, targetPath) => {
|
|
|
488
550
|
};
|
|
489
551
|
|
|
490
552
|
/**
|
|
553
|
+
* Returns the joined path.
|
|
491
554
|
* @param {InputFileSystem | OutputFileSystem | undefined} fs a file system
|
|
492
555
|
* @param {string} rootPath a path
|
|
493
556
|
* @param {string} filename a filename
|
|
@@ -507,6 +570,7 @@ const join = (fs, rootPath, filename) => {
|
|
|
507
570
|
};
|
|
508
571
|
|
|
509
572
|
/**
|
|
573
|
+
* Returns the parent directory of the absolute path.
|
|
510
574
|
* @param {InputFileSystem | OutputFileSystem | undefined} fs a file system
|
|
511
575
|
* @param {string} absPath an absolute path
|
|
512
576
|
* @returns {string} the parent directory of the absolute path
|
|
@@ -525,6 +589,7 @@ const dirname = (fs, absPath) => {
|
|
|
525
589
|
};
|
|
526
590
|
|
|
527
591
|
/**
|
|
592
|
+
* Processes the provided f.
|
|
528
593
|
* @param {OutputFileSystem} fs a file system
|
|
529
594
|
* @param {string} p an absolute path
|
|
530
595
|
* @param {(err?: Error) => void} callback callback function for the error
|
|
@@ -546,7 +611,9 @@ const mkdirp = (fs, p, callback) => {
|
|
|
546
611
|
}
|
|
547
612
|
fs.mkdir(p, (err) => {
|
|
548
613
|
if (err) {
|
|
549
|
-
|
|
614
|
+
// EEXIST: parent already created it; EISDIR: memfs/BSD for an
|
|
615
|
+
// existing dir such as the root "/" (#10544)
|
|
616
|
+
if (err.code === "EEXIST" || err.code === "EISDIR") {
|
|
550
617
|
callback();
|
|
551
618
|
return;
|
|
552
619
|
}
|
|
@@ -557,7 +624,7 @@ const mkdirp = (fs, p, callback) => {
|
|
|
557
624
|
});
|
|
558
625
|
});
|
|
559
626
|
return;
|
|
560
|
-
} else if (err.code === "EEXIST") {
|
|
627
|
+
} else if (err.code === "EEXIST" || err.code === "EISDIR") {
|
|
561
628
|
callback();
|
|
562
629
|
return;
|
|
563
630
|
}
|
|
@@ -569,6 +636,7 @@ const mkdirp = (fs, p, callback) => {
|
|
|
569
636
|
};
|
|
570
637
|
|
|
571
638
|
/**
|
|
639
|
+
* Processes the provided f.
|
|
572
640
|
* @param {IntermediateFileSystem} fs a file system
|
|
573
641
|
* @param {string} p an absolute path
|
|
574
642
|
* @returns {void}
|
|
@@ -586,7 +654,10 @@ const mkdirpSync = (fs, p) => {
|
|
|
586
654
|
mkdirpSync(fs, dir);
|
|
587
655
|
fs.mkdirSync(p);
|
|
588
656
|
return;
|
|
589
|
-
} else if (
|
|
657
|
+
} else if (
|
|
658
|
+
/** @type {NodeJS.ErrnoException} */ (err).code === "EEXIST" ||
|
|
659
|
+
/** @type {NodeJS.ErrnoException} */ (err).code === "EISDIR"
|
|
660
|
+
) {
|
|
590
661
|
return;
|
|
591
662
|
}
|
|
592
663
|
throw err;
|
|
@@ -595,6 +666,7 @@ const mkdirpSync = (fs, p) => {
|
|
|
595
666
|
};
|
|
596
667
|
|
|
597
668
|
/**
|
|
669
|
+
* Processes the provided f.
|
|
598
670
|
* @param {InputFileSystem} fs a file system
|
|
599
671
|
* @param {string} p an absolute path
|
|
600
672
|
* @param {ReadJsonCallback} callback callback
|
|
@@ -620,6 +692,7 @@ const readJson = (fs, p, callback) => {
|
|
|
620
692
|
};
|
|
621
693
|
|
|
622
694
|
/**
|
|
695
|
+
* Lstat readlink absolute.
|
|
623
696
|
* @param {InputFileSystem} fs a file system
|
|
624
697
|
* @param {string} p an absolute path
|
|
625
698
|
* @param {(err: NodeJS.ErrnoException | Error | null, stats?: IStats | string) => void} callback callback
|
|
@@ -659,11 +732,11 @@ const lstatReadlinkAbsolute = (fs, p, callback) => {
|
|
|
659
732
|
};
|
|
660
733
|
|
|
661
734
|
/**
|
|
735
|
+
* Checks whether this object is absolute.
|
|
662
736
|
* @param {string} pathname a path
|
|
663
737
|
* @returns {boolean} is absolute
|
|
664
738
|
*/
|
|
665
|
-
const isAbsolute = (pathname) =>
|
|
666
|
-
path.posix.isAbsolute(pathname) || path.win32.isAbsolute(pathname);
|
|
739
|
+
const isAbsolute = (pathname) => ABSOLUTE_PATH_REGEXP.test(pathname);
|
|
667
740
|
|
|
668
741
|
module.exports.dirname = dirname;
|
|
669
742
|
module.exports.isAbsolute = isAbsolute;
|