webpack 5.59.0 → 5.76.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.

Potentially problematic release.


This version of webpack might be problematic. Click here for more details.

Files changed (236) hide show
  1. package/README.md +22 -24
  2. package/bin/webpack.js +0 -0
  3. package/hot/dev-server.js +17 -4
  4. package/hot/lazy-compilation-node.js +3 -1
  5. package/hot/poll.js +1 -1
  6. package/hot/signal.js +1 -1
  7. package/lib/APIPlugin.js +33 -0
  8. package/lib/BannerPlugin.js +13 -5
  9. package/lib/Cache.js +1 -1
  10. package/lib/CacheFacade.js +4 -11
  11. package/lib/Chunk.js +6 -3
  12. package/lib/ChunkGraph.js +94 -8
  13. package/lib/ChunkGroup.js +1 -1
  14. package/lib/CleanPlugin.js +81 -20
  15. package/lib/Compilation.js +188 -93
  16. package/lib/Compiler.js +87 -18
  17. package/lib/ConstPlugin.js +2 -2
  18. package/lib/ContextModule.js +142 -51
  19. package/lib/ContextModuleFactory.js +65 -25
  20. package/lib/DelegatedModule.js +1 -1
  21. package/lib/DelegatedModuleFactoryPlugin.js +1 -1
  22. package/lib/Dependency.js +17 -0
  23. package/lib/DependencyTemplate.js +9 -0
  24. package/lib/DependencyTemplates.js +1 -1
  25. package/lib/DllModule.js +1 -1
  26. package/lib/DllReferencePlugin.js +1 -1
  27. package/lib/EntryOptionPlugin.js +2 -0
  28. package/lib/ErrorHelpers.js +2 -2
  29. package/lib/EvalDevToolModulePlugin.js +16 -1
  30. package/lib/EvalSourceMapDevToolPlugin.js +25 -4
  31. package/lib/ExportsInfo.js +5 -5
  32. package/lib/ExternalModule.js +94 -54
  33. package/lib/ExternalModuleFactoryPlugin.js +5 -5
  34. package/lib/FileSystemInfo.js +124 -58
  35. package/lib/Generator.js +3 -0
  36. package/lib/HookWebpackError.js +1 -1
  37. package/lib/HotModuleReplacementPlugin.js +3 -1
  38. package/lib/LoaderOptionsPlugin.js +1 -1
  39. package/lib/Module.js +28 -4
  40. package/lib/ModuleFilenameHelpers.js +8 -4
  41. package/lib/ModuleHashingError.js +29 -0
  42. package/lib/MultiCompiler.js +1 -1
  43. package/lib/MultiWatching.js +1 -1
  44. package/lib/NodeStuffPlugin.js +13 -3
  45. package/lib/NormalModule.js +51 -33
  46. package/lib/NormalModuleFactory.js +42 -37
  47. package/lib/ProgressPlugin.js +4 -5
  48. package/lib/RawModule.js +1 -1
  49. package/lib/RuntimeGlobals.js +29 -1
  50. package/lib/RuntimeModule.js +1 -1
  51. package/lib/RuntimePlugin.js +84 -1
  52. package/lib/RuntimeTemplate.js +114 -2
  53. package/lib/Template.js +3 -2
  54. package/lib/TemplatedPathPlugin.js +48 -23
  55. package/lib/WatchIgnorePlugin.js +19 -7
  56. package/lib/Watching.js +33 -19
  57. package/lib/WebpackOptionsApply.js +79 -11
  58. package/lib/asset/AssetGenerator.js +228 -71
  59. package/lib/asset/AssetModulesPlugin.js +3 -0
  60. package/lib/asset/AssetParser.js +1 -0
  61. package/lib/asset/AssetSourceGenerator.js +31 -6
  62. package/lib/asset/AssetSourceParser.js +1 -0
  63. package/lib/asset/RawDataUrlModule.js +148 -0
  64. package/lib/async-modules/AwaitDependenciesInitFragment.js +4 -4
  65. package/lib/buildChunkGraph.js +38 -7
  66. package/lib/cache/PackFileCacheStrategy.js +15 -8
  67. package/lib/cache/ResolverCachePlugin.js +90 -29
  68. package/lib/cli.js +44 -3
  69. package/lib/config/browserslistTargetHandler.js +41 -6
  70. package/lib/config/defaults.js +123 -19
  71. package/lib/config/normalization.js +10 -2
  72. package/lib/config/target.js +10 -0
  73. package/lib/container/ContainerEntryModule.js +8 -5
  74. package/lib/container/FallbackModule.js +4 -4
  75. package/lib/container/ModuleFederationPlugin.js +2 -0
  76. package/lib/container/RemoteModule.js +4 -2
  77. package/lib/container/RemoteRuntimeModule.js +8 -7
  78. package/lib/css/CssExportsGenerator.js +139 -0
  79. package/lib/css/CssGenerator.js +109 -0
  80. package/lib/css/CssLoadingRuntimeModule.js +442 -0
  81. package/lib/css/CssModulesPlugin.js +462 -0
  82. package/lib/css/CssParser.js +618 -0
  83. package/lib/css/walkCssTokens.js +659 -0
  84. package/lib/debug/ProfilingPlugin.js +24 -21
  85. package/lib/dependencies/AMDRequireDependency.js +6 -6
  86. package/lib/dependencies/CommonJsExportsParserPlugin.js +1 -2
  87. package/lib/dependencies/CommonJsFullRequireDependency.js +5 -1
  88. package/lib/dependencies/CommonJsImportsParserPlugin.js +344 -61
  89. package/lib/dependencies/CommonJsRequireContextDependency.js +6 -2
  90. package/lib/dependencies/CommonJsRequireDependency.js +2 -1
  91. package/lib/dependencies/ContextDependency.js +16 -2
  92. package/lib/dependencies/ContextDependencyHelpers.js +21 -8
  93. package/lib/dependencies/ContextDependencyTemplateAsRequireCall.js +4 -1
  94. package/lib/dependencies/ContextElementDependency.js +25 -3
  95. package/lib/dependencies/CreateScriptUrlDependency.js +12 -0
  96. package/lib/dependencies/CssExportDependency.js +85 -0
  97. package/lib/dependencies/CssImportDependency.js +75 -0
  98. package/lib/dependencies/CssLocalIdentifierDependency.js +119 -0
  99. package/lib/dependencies/CssSelfLocalIdentifierDependency.js +101 -0
  100. package/lib/dependencies/CssUrlDependency.js +132 -0
  101. package/lib/dependencies/ExportsInfoDependency.js +6 -0
  102. package/lib/dependencies/HarmonyAcceptImportDependency.js +5 -3
  103. package/lib/dependencies/HarmonyCompatibilityDependency.js +5 -5
  104. package/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +127 -0
  105. package/lib/dependencies/HarmonyExportDependencyParserPlugin.js +12 -3
  106. package/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +25 -17
  107. package/lib/dependencies/HarmonyExportInitFragment.js +4 -1
  108. package/lib/dependencies/HarmonyImportDependency.js +23 -0
  109. package/lib/dependencies/HarmonyImportDependencyParserPlugin.js +142 -45
  110. package/lib/dependencies/HarmonyImportSpecifierDependency.js +46 -22
  111. package/lib/dependencies/HarmonyModulesPlugin.js +10 -0
  112. package/lib/dependencies/ImportContextDependency.js +0 -2
  113. package/lib/dependencies/ImportMetaContextDependency.js +35 -0
  114. package/lib/dependencies/ImportMetaContextDependencyParserPlugin.js +252 -0
  115. package/lib/dependencies/ImportMetaContextPlugin.js +59 -0
  116. package/lib/dependencies/ImportMetaPlugin.js +22 -3
  117. package/lib/dependencies/ImportParserPlugin.js +35 -29
  118. package/lib/dependencies/JsonExportsDependency.js +17 -21
  119. package/lib/dependencies/LoaderDependency.js +13 -0
  120. package/lib/dependencies/LoaderImportDependency.js +13 -0
  121. package/lib/dependencies/LoaderPlugin.js +4 -2
  122. package/lib/dependencies/ModuleDependency.js +11 -1
  123. package/lib/dependencies/ProvidedDependency.js +31 -8
  124. package/lib/dependencies/RequireContextDependency.js +0 -16
  125. package/lib/dependencies/RequireEnsureDependency.js +2 -2
  126. package/lib/dependencies/RequireResolveContextDependency.js +2 -2
  127. package/lib/dependencies/RequireResolveDependency.js +2 -1
  128. package/lib/dependencies/URLDependency.js +3 -8
  129. package/lib/dependencies/URLPlugin.js +22 -1
  130. package/lib/dependencies/WorkerPlugin.js +2 -0
  131. package/lib/esm/ModuleChunkFormatPlugin.js +74 -49
  132. package/lib/esm/ModuleChunkLoadingPlugin.js +3 -1
  133. package/lib/esm/ModuleChunkLoadingRuntimeModule.js +25 -9
  134. package/lib/hmr/HotModuleReplacement.runtime.js +29 -14
  135. package/lib/hmr/JavascriptHotModuleReplacement.runtime.js +4 -3
  136. package/lib/hmr/LazyCompilationPlugin.js +54 -26
  137. package/lib/hmr/lazyCompilationBackend.js +51 -12
  138. package/lib/ids/DeterministicModuleIdsPlugin.js +55 -35
  139. package/lib/ids/HashedModuleIdsPlugin.js +11 -14
  140. package/lib/ids/IdHelpers.js +26 -12
  141. package/lib/ids/NamedModuleIdsPlugin.js +6 -9
  142. package/lib/ids/NaturalModuleIdsPlugin.js +10 -13
  143. package/lib/ids/OccurrenceModuleIdsPlugin.js +13 -10
  144. package/lib/ids/SyncModuleIdsPlugin.js +140 -0
  145. package/lib/index.js +20 -0
  146. package/lib/javascript/ArrayPushCallbackChunkFormatPlugin.js +2 -2
  147. package/lib/javascript/BasicEvaluatedExpression.js +5 -2
  148. package/lib/javascript/ChunkHelpers.js +33 -0
  149. package/lib/javascript/JavascriptGenerator.js +1 -0
  150. package/lib/javascript/JavascriptModulesPlugin.js +27 -2
  151. package/lib/javascript/JavascriptParser.js +143 -73
  152. package/lib/javascript/StartupHelpers.js +7 -30
  153. package/lib/json/JsonData.js +8 -0
  154. package/lib/json/JsonParser.js +4 -6
  155. package/lib/library/AssignLibraryPlugin.js +39 -15
  156. package/lib/library/EnableLibraryPlugin.js +11 -0
  157. package/lib/library/UmdLibraryPlugin.js +5 -3
  158. package/lib/node/NodeTargetPlugin.js +3 -0
  159. package/lib/node/NodeWatchFileSystem.js +85 -31
  160. package/lib/node/ReadFileChunkLoadingRuntimeModule.js +23 -8
  161. package/lib/node/RequireChunkLoadingRuntimeModule.js +24 -9
  162. package/lib/optimize/ConcatenatedModule.js +62 -26
  163. package/lib/optimize/ModuleConcatenationPlugin.js +26 -4
  164. package/lib/optimize/RealContentHashPlugin.js +45 -15
  165. package/lib/optimize/SplitChunksPlugin.js +8 -1
  166. package/lib/runtime/AsyncModuleRuntimeModule.js +50 -66
  167. package/lib/runtime/BaseUriRuntimeModule.js +31 -0
  168. package/lib/runtime/CreateScriptRuntimeModule.js +36 -0
  169. package/lib/runtime/CreateScriptUrlRuntimeModule.js +9 -34
  170. package/lib/runtime/GetTrustedTypesPolicyRuntimeModule.js +76 -0
  171. package/lib/runtime/LoadScriptRuntimeModule.js +11 -9
  172. package/lib/runtime/NonceRuntimeModule.js +24 -0
  173. package/lib/schemes/HttpUriPlugin.js +77 -14
  174. package/lib/serialization/FileMiddleware.js +44 -9
  175. package/lib/sharing/ConsumeSharedModule.js +8 -2
  176. package/lib/sharing/ConsumeSharedRuntimeModule.js +26 -5
  177. package/lib/sharing/ProvideSharedModule.js +4 -2
  178. package/lib/sharing/ProvideSharedPlugin.js +1 -2
  179. package/lib/sharing/ShareRuntimeModule.js +1 -1
  180. package/lib/sharing/utils.js +1 -1
  181. package/lib/stats/DefaultStatsFactoryPlugin.js +113 -68
  182. package/lib/stats/DefaultStatsPrinterPlugin.js +90 -25
  183. package/lib/util/ArrayHelpers.js +30 -0
  184. package/lib/util/AsyncQueue.js +1 -1
  185. package/lib/util/compileBooleanMatcher.js +1 -1
  186. package/lib/util/create-schema-validation.js +9 -2
  187. package/lib/util/createHash.js +12 -0
  188. package/lib/util/deprecation.js +10 -2
  189. package/lib/util/deterministicGrouping.js +1 -1
  190. package/lib/util/extractUrlAndGlobal.js +3 -0
  191. package/lib/util/fs.js +11 -0
  192. package/lib/util/hash/BatchedHash.js +7 -4
  193. package/lib/util/hash/md4.js +20 -0
  194. package/lib/util/hash/wasm-hash.js +163 -0
  195. package/lib/util/hash/xxhash64.js +5 -139
  196. package/lib/util/identifier.js +65 -44
  197. package/lib/util/internalSerializables.js +15 -0
  198. package/lib/util/nonNumericOnlyHash.js +22 -0
  199. package/lib/util/semver.js +17 -10
  200. package/lib/wasm-async/AsyncWebAssemblyJavascriptGenerator.js +9 -3
  201. package/lib/wasm-sync/WebAssemblyParser.js +1 -1
  202. package/lib/web/JsonpChunkLoadingRuntimeModule.js +31 -18
  203. package/lib/webpack.js +10 -3
  204. package/lib/webworker/ImportScriptsChunkLoadingPlugin.js +3 -11
  205. package/lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js +33 -22
  206. package/module.d.ts +215 -0
  207. package/package.json +28 -32
  208. package/schemas/WebpackOptions.check.js +1 -1
  209. package/schemas/WebpackOptions.json +321 -30
  210. package/schemas/plugins/BannerPlugin.check.js +1 -1
  211. package/schemas/plugins/BannerPlugin.json +4 -0
  212. package/schemas/plugins/DllReferencePlugin.check.js +1 -1
  213. package/schemas/plugins/HashedModuleIdsPlugin.check.js +1 -1
  214. package/schemas/plugins/ProgressPlugin.check.js +1 -1
  215. package/schemas/plugins/asset/AssetGeneratorOptions.check.js +1 -1
  216. package/schemas/plugins/asset/AssetParserOptions.check.js +1 -1
  217. package/schemas/plugins/asset/AssetResourceGeneratorOptions.check.js +1 -1
  218. package/schemas/plugins/container/ContainerPlugin.check.js +1 -1
  219. package/schemas/plugins/container/ContainerPlugin.json +2 -1
  220. package/schemas/plugins/container/ContainerReferencePlugin.check.js +1 -1
  221. package/schemas/plugins/container/ContainerReferencePlugin.json +1 -0
  222. package/schemas/plugins/container/ExternalsType.check.js +1 -1
  223. package/schemas/plugins/container/ModuleFederationPlugin.check.js +1 -1
  224. package/schemas/plugins/container/ModuleFederationPlugin.json +3 -1
  225. package/schemas/plugins/css/CssGeneratorOptions.check.d.ts +7 -0
  226. package/schemas/plugins/css/CssGeneratorOptions.check.js +6 -0
  227. package/schemas/plugins/css/CssGeneratorOptions.json +3 -0
  228. package/schemas/plugins/css/CssParserOptions.check.d.ts +7 -0
  229. package/schemas/plugins/css/CssParserOptions.check.js +6 -0
  230. package/schemas/plugins/css/CssParserOptions.json +3 -0
  231. package/schemas/plugins/optimize/AggressiveSplittingPlugin.check.js +1 -1
  232. package/schemas/plugins/optimize/LimitChunkCountPlugin.check.js +1 -1
  233. package/schemas/plugins/optimize/MinChunkSizePlugin.check.js +1 -1
  234. package/schemas/plugins/schemes/HttpUriPlugin.check.js +1 -1
  235. package/schemas/plugins/schemes/HttpUriPlugin.json +4 -0
  236. package/types.d.ts +869 -296
@@ -70,7 +70,7 @@
70
70
  ]
71
71
  },
72
72
  "AssetGeneratorDataUrlFunction": {
73
- "description": "Function that executes for module and should return an DataUrl string.",
73
+ "description": "Function that executes for module and should return an DataUrl string. It can have a string as 'ident' property which contributes to the module hash.",
74
74
  "instanceof": "Function",
75
75
  "tsType": "((source: string | Buffer, context: { filename: string, module: import('../lib/Module') }) => string)"
76
76
  },
@@ -108,6 +108,9 @@
108
108
  "filename": {
109
109
  "$ref": "#/definitions/FilenameTemplate"
110
110
  },
111
+ "outputPath": {
112
+ "$ref": "#/definitions/AssetModuleOutputPath"
113
+ },
111
114
  "publicPath": {
112
115
  "$ref": "#/definitions/RawPublicPath"
113
116
  }
@@ -136,6 +139,19 @@
136
139
  }
137
140
  ]
138
141
  },
142
+ "AssetModuleOutputPath": {
143
+ "description": "Emit the asset in the specified folder relative to 'output.path'. This should only be needed when custom 'publicPath' is specified to match the folder structure there.",
144
+ "anyOf": [
145
+ {
146
+ "type": "string",
147
+ "absolutePath": false
148
+ },
149
+ {
150
+ "instanceof": "Function",
151
+ "tsType": "((pathData: import(\"../lib/Compilation\").PathData, assetInfo?: import(\"../lib/Compilation\").AssetInfo) => string)"
152
+ }
153
+ ]
154
+ },
139
155
  "AssetParserDataUrlFunction": {
140
156
  "description": "Function that executes for module and should return whenever asset should be inlined as DataUrl.",
141
157
  "instanceof": "Function",
@@ -182,6 +198,9 @@
182
198
  "filename": {
183
199
  "$ref": "#/definitions/FilenameTemplate"
184
200
  },
201
+ "outputPath": {
202
+ "$ref": "#/definitions/AssetModuleOutputPath"
203
+ },
185
204
  "publicPath": {
186
205
  "$ref": "#/definitions/RawPublicPath"
187
206
  }
@@ -335,6 +354,45 @@
335
354
  "description": "This option enables cross-origin loading of chunks.",
336
355
  "enum": [false, "anonymous", "use-credentials"]
337
356
  },
357
+ "CssChunkFilename": {
358
+ "description": "Specifies the filename template of non-initial output css files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.",
359
+ "oneOf": [
360
+ {
361
+ "$ref": "#/definitions/FilenameTemplate"
362
+ }
363
+ ]
364
+ },
365
+ "CssExperimentOptions": {
366
+ "description": "Options for css handling.",
367
+ "type": "object",
368
+ "additionalProperties": false,
369
+ "properties": {
370
+ "exportsOnly": {
371
+ "description": "Avoid generating and loading a stylesheet and only embed exports from css into output javascript files.",
372
+ "type": "boolean"
373
+ }
374
+ }
375
+ },
376
+ "CssFilename": {
377
+ "description": "Specifies the filename template of output css files on disk. You must **not** specify an absolute path here, but the path may contain folders separated by '/'! The specified path is joined with the value of the 'output.path' option to determine the location on disk.",
378
+ "oneOf": [
379
+ {
380
+ "$ref": "#/definitions/FilenameTemplate"
381
+ }
382
+ ]
383
+ },
384
+ "CssGeneratorOptions": {
385
+ "description": "Generator options for css modules.",
386
+ "type": "object",
387
+ "additionalProperties": false,
388
+ "properties": {}
389
+ },
390
+ "CssParserOptions": {
391
+ "description": "Parser options for css modules.",
392
+ "type": "object",
393
+ "additionalProperties": false,
394
+ "properties": {}
395
+ },
338
396
  "Dependencies": {
339
397
  "description": "References to other configurations to depend on.",
340
398
  "type": "array",
@@ -434,6 +492,14 @@
434
492
  "type": "object",
435
493
  "additionalProperties": false,
436
494
  "properties": {
495
+ "asyncChunks": {
496
+ "description": "Enable/disable creating async chunks that are loaded on demand.",
497
+ "type": "boolean"
498
+ },
499
+ "baseUri": {
500
+ "description": "Base uri for this entry.",
501
+ "type": "string"
502
+ },
437
503
  "chunkLoading": {
438
504
  "$ref": "#/definitions/ChunkLoading"
439
505
  },
@@ -487,6 +553,14 @@
487
553
  "type": "object",
488
554
  "additionalProperties": false,
489
555
  "properties": {
556
+ "asyncChunks": {
557
+ "description": "Enable/disable creating async chunks that are loaded on demand.",
558
+ "type": "boolean"
559
+ },
560
+ "baseUri": {
561
+ "description": "Base uri for this entry.",
562
+ "type": "string"
563
+ },
490
564
  "chunkLoading": {
491
565
  "$ref": "#/definitions/ChunkLoading"
492
566
  },
@@ -672,6 +746,14 @@
672
746
  "module": {
673
747
  "description": "The environment supports EcmaScript Module syntax to import EcmaScript modules (import ... from '...').",
674
748
  "type": "boolean"
749
+ },
750
+ "optionalChaining": {
751
+ "description": "The environment supports optional chaining ('obj?.a' or 'obj?.()').",
752
+ "type": "boolean"
753
+ },
754
+ "templateLiteral": {
755
+ "description": "The environment supports template literals.",
756
+ "type": "boolean"
675
757
  }
676
758
  }
677
759
  },
@@ -681,14 +763,14 @@
681
763
  "implements": ["#/definitions/ExperimentsCommon"],
682
764
  "additionalProperties": false,
683
765
  "properties": {
684
- "asset": {
685
- "description": "Allow module type 'asset' to generate assets.",
686
- "type": "boolean"
687
- },
688
766
  "asyncWebAssembly": {
689
767
  "description": "Support WebAssembly as asynchronous EcmaScript Module.",
690
768
  "type": "boolean"
691
769
  },
770
+ "backCompat": {
771
+ "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
772
+ "type": "boolean"
773
+ },
692
774
  "buildHttp": {
693
775
  "description": "Build http(s): urls using a lockfile and resource content cache.",
694
776
  "anyOf": [
@@ -704,12 +786,23 @@
704
786
  "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
705
787
  "type": "boolean"
706
788
  },
789
+ "css": {
790
+ "description": "Enable css support.",
791
+ "anyOf": [
792
+ {
793
+ "type": "boolean"
794
+ },
795
+ {
796
+ "$ref": "#/definitions/CssExperimentOptions"
797
+ }
798
+ ]
799
+ },
707
800
  "futureDefaults": {
708
801
  "description": "Apply defaults of next major version.",
709
802
  "type": "boolean"
710
803
  },
711
804
  "layers": {
712
- "description": "Enable module and chunk layers.",
805
+ "description": "Enable module layers.",
713
806
  "type": "boolean"
714
807
  },
715
808
  "lazyCompilation": {
@@ -742,14 +835,14 @@
742
835
  "type": "object",
743
836
  "additionalProperties": false,
744
837
  "properties": {
745
- "asset": {
746
- "description": "Allow module type 'asset' to generate assets.",
747
- "type": "boolean"
748
- },
749
838
  "asyncWebAssembly": {
750
839
  "description": "Support WebAssembly as asynchronous EcmaScript Module.",
751
840
  "type": "boolean"
752
841
  },
842
+ "backCompat": {
843
+ "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
844
+ "type": "boolean"
845
+ },
753
846
  "cacheUnaffected": {
754
847
  "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
755
848
  "type": "boolean"
@@ -759,7 +852,7 @@
759
852
  "type": "boolean"
760
853
  },
761
854
  "layers": {
762
- "description": "Enable module and chunk layers.",
855
+ "description": "Enable module layers.",
763
856
  "type": "boolean"
764
857
  },
765
858
  "outputModule": {
@@ -782,14 +875,14 @@
782
875
  "implements": ["#/definitions/ExperimentsCommon"],
783
876
  "additionalProperties": false,
784
877
  "properties": {
785
- "asset": {
786
- "description": "Allow module type 'asset' to generate assets.",
787
- "type": "boolean"
788
- },
789
878
  "asyncWebAssembly": {
790
879
  "description": "Support WebAssembly as asynchronous EcmaScript Module.",
791
880
  "type": "boolean"
792
881
  },
882
+ "backCompat": {
883
+ "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
884
+ "type": "boolean"
885
+ },
793
886
  "buildHttp": {
794
887
  "description": "Build http(s): urls using a lockfile and resource content cache.",
795
888
  "oneOf": [
@@ -802,17 +895,31 @@
802
895
  "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
803
896
  "type": "boolean"
804
897
  },
898
+ "css": {
899
+ "description": "Enable css support.",
900
+ "anyOf": [
901
+ {
902
+ "enum": [false]
903
+ },
904
+ {
905
+ "$ref": "#/definitions/CssExperimentOptions"
906
+ }
907
+ ]
908
+ },
805
909
  "futureDefaults": {
806
910
  "description": "Apply defaults of next major version.",
807
911
  "type": "boolean"
808
912
  },
809
913
  "layers": {
810
- "description": "Enable module and chunk layers.",
914
+ "description": "Enable module layers.",
811
915
  "type": "boolean"
812
916
  },
813
917
  "lazyCompilation": {
814
918
  "description": "Compile entrypoints and import()s only when they are accessed.",
815
- "oneOf": [
919
+ "anyOf": [
920
+ {
921
+ "enum": [false]
922
+ },
816
923
  {
817
924
  "$ref": "#/definitions/LazyCompilationOptions"
818
925
  }
@@ -994,6 +1101,7 @@
994
1101
  "commonjs",
995
1102
  "commonjs2",
996
1103
  "commonjs-module",
1104
+ "commonjs-static",
997
1105
  "amd",
998
1106
  "amd-require",
999
1107
  "umd",
@@ -1068,12 +1176,12 @@
1068
1176
  "description": "List of paths that are managed by a package manager and contain a version or hash in its path so all files are immutable.",
1069
1177
  "anyOf": [
1070
1178
  {
1071
- "description": "A RegExp matching a immutable directory (usually a package manager cache directory, including the tailing slash)",
1179
+ "description": "A RegExp matching an immutable directory (usually a package manager cache directory, including the tailing slash)",
1072
1180
  "instanceof": "RegExp",
1073
1181
  "tsType": "RegExp"
1074
1182
  },
1075
1183
  {
1076
- "description": "A path to a immutable directory (usually a package manager cache directory).",
1184
+ "description": "A path to an immutable directory (usually a package manager cache directory).",
1077
1185
  "type": "string",
1078
1186
  "absolutePath": true,
1079
1187
  "minLength": 1
@@ -1323,6 +1431,10 @@
1323
1431
  "type": "string",
1324
1432
  "absolutePath": true
1325
1433
  },
1434
+ "proxy": {
1435
+ "description": "Proxy configuration, which can be used to specify a proxy server to use for HTTP requests.",
1436
+ "type": "string"
1437
+ },
1326
1438
  "upgrade": {
1327
1439
  "description": "When set, resources of existing lockfile entries will be fetched and entries will be upgraded when resource content has changed.",
1328
1440
  "type": "boolean"
@@ -1474,6 +1586,47 @@
1474
1586
  "description": "Enable/disable parsing of magic comments in CommonJs syntax.",
1475
1587
  "type": "boolean"
1476
1588
  },
1589
+ "createRequire": {
1590
+ "description": "Enable/disable parsing \"import { createRequire } from \"module\"\" and evaluating createRequire().",
1591
+ "anyOf": [
1592
+ {
1593
+ "type": "boolean"
1594
+ },
1595
+ {
1596
+ "type": "string"
1597
+ }
1598
+ ]
1599
+ },
1600
+ "dynamicImportMode": {
1601
+ "description": "Specifies global mode for dynamic import.",
1602
+ "enum": ["eager", "weak", "lazy", "lazy-once"]
1603
+ },
1604
+ "dynamicImportPrefetch": {
1605
+ "description": "Specifies global prefetch for dynamic import.",
1606
+ "anyOf": [
1607
+ {
1608
+ "type": "number"
1609
+ },
1610
+ {
1611
+ "type": "boolean"
1612
+ }
1613
+ ]
1614
+ },
1615
+ "dynamicImportPreload": {
1616
+ "description": "Specifies global preload for dynamic import.",
1617
+ "anyOf": [
1618
+ {
1619
+ "type": "number"
1620
+ },
1621
+ {
1622
+ "type": "boolean"
1623
+ }
1624
+ ]
1625
+ },
1626
+ "exportsPresence": {
1627
+ "description": "Specifies the behavior of invalid export names in \"import ... from ...\" and \"export ... from ...\".",
1628
+ "enum": ["error", "warn", "auto", false]
1629
+ },
1477
1630
  "exprContextCritical": {
1478
1631
  "description": "Enable warnings for full dynamic dependencies.",
1479
1632
  "type": "boolean"
@@ -1506,9 +1659,25 @@
1506
1659
  "description": "Enable/disable parsing of import() syntax.",
1507
1660
  "type": "boolean"
1508
1661
  },
1662
+ "importExportsPresence": {
1663
+ "description": "Specifies the behavior of invalid export names in \"import ... from ...\".",
1664
+ "enum": ["error", "warn", "auto", false]
1665
+ },
1666
+ "importMeta": {
1667
+ "description": "Enable/disable evaluating import.meta.",
1668
+ "type": "boolean"
1669
+ },
1670
+ "importMetaContext": {
1671
+ "description": "Enable/disable evaluating import.meta.webpackContext.",
1672
+ "type": "boolean"
1673
+ },
1509
1674
  "node": {
1510
1675
  "$ref": "#/definitions/Node"
1511
1676
  },
1677
+ "reexportExportsPresence": {
1678
+ "description": "Specifies the behavior of invalid export names in \"export ... from ...\". This might be useful to disable during the migration from \"export ... from ...\" to \"export type ... from ...\" when reexporting types in TypeScript.",
1679
+ "enum": ["error", "warn", "auto", false]
1680
+ },
1512
1681
  "requireContext": {
1513
1682
  "description": "Enable/disable parsing of require.context syntax.",
1514
1683
  "type": "boolean"
@@ -1526,7 +1695,7 @@
1526
1695
  "type": "boolean"
1527
1696
  },
1528
1697
  "strictExportPresence": {
1529
- "description": "Emit errors instead of warnings when imported names don't exist in imported module.",
1698
+ "description": "Deprecated in favor of \"exportsPresence\". Emit errors instead of warnings when imported names don't exist in imported module.",
1530
1699
  "type": "boolean"
1531
1700
  },
1532
1701
  "strictThisContextOnImports": {
@@ -1615,20 +1784,86 @@
1615
1784
  }
1616
1785
  ]
1617
1786
  },
1618
- "LazyCompilationOptions": {
1619
- "description": "Options for compiling entrypoints and import()s only when they are accessed.",
1787
+ "LazyCompilationDefaultBackendOptions": {
1788
+ "description": "Options for the default backend.",
1620
1789
  "type": "object",
1621
1790
  "additionalProperties": false,
1622
1791
  "properties": {
1623
- "backend": {
1624
- "description": "A custom backend.",
1625
- "instanceof": "Function",
1626
- "tsType": "(((compiler: import('../lib/Compiler'), client: string, callback: (err?: Error, api?: any) => void) => void) | ((compiler: import('../lib/Compiler'), client: string) => Promise<any>))"
1627
- },
1628
1792
  "client": {
1629
1793
  "description": "A custom client.",
1630
1794
  "type": "string"
1631
1795
  },
1796
+ "listen": {
1797
+ "description": "Specifies where to listen to from the server.",
1798
+ "anyOf": [
1799
+ {
1800
+ "description": "A port.",
1801
+ "type": "number"
1802
+ },
1803
+ {
1804
+ "description": "Listen options.",
1805
+ "type": "object",
1806
+ "additionalProperties": true,
1807
+ "properties": {
1808
+ "host": {
1809
+ "description": "A host.",
1810
+ "type": "string"
1811
+ },
1812
+ "port": {
1813
+ "description": "A port.",
1814
+ "type": "number"
1815
+ }
1816
+ },
1817
+ "tsType": "import(\"net\").ListenOptions"
1818
+ },
1819
+ {
1820
+ "description": "A custom listen function.",
1821
+ "instanceof": "Function",
1822
+ "tsType": "((server: import(\"net\").Server) => void)"
1823
+ }
1824
+ ]
1825
+ },
1826
+ "protocol": {
1827
+ "description": "Specifies the protocol the client should use to connect to the server.",
1828
+ "enum": ["http", "https"]
1829
+ },
1830
+ "server": {
1831
+ "description": "Specifies how to create the server handling the EventSource requests.",
1832
+ "anyOf": [
1833
+ {
1834
+ "description": "ServerOptions for the http or https createServer call.",
1835
+ "type": "object",
1836
+ "additionalProperties": true,
1837
+ "properties": {},
1838
+ "tsType": "(import(\"https\").ServerOptions | import(\"http\").ServerOptions)"
1839
+ },
1840
+ {
1841
+ "description": "A custom create server function.",
1842
+ "instanceof": "Function",
1843
+ "tsType": "(() => import(\"net\").Server)"
1844
+ }
1845
+ ]
1846
+ }
1847
+ }
1848
+ },
1849
+ "LazyCompilationOptions": {
1850
+ "description": "Options for compiling entrypoints and import()s only when they are accessed.",
1851
+ "type": "object",
1852
+ "additionalProperties": false,
1853
+ "properties": {
1854
+ "backend": {
1855
+ "description": "Specifies the backend that should be used for handling client keep alive.",
1856
+ "anyOf": [
1857
+ {
1858
+ "description": "A custom backend.",
1859
+ "instanceof": "Function",
1860
+ "tsType": "(((compiler: import('../lib/Compiler'), callback: (err?: Error, api?: import(\"../lib/hmr/LazyCompilationPlugin\").BackendApi) => void) => void) | ((compiler: import('../lib/Compiler')) => Promise<import(\"../lib/hmr/LazyCompilationPlugin\").BackendApi>))"
1861
+ },
1862
+ {
1863
+ "$ref": "#/definitions/LazyCompilationDefaultBackendOptions"
1864
+ }
1865
+ ]
1866
+ },
1632
1867
  "entries": {
1633
1868
  "description": "Enable/disable lazy compilation for entries.",
1634
1869
  "type": "boolean"
@@ -1785,7 +2020,7 @@
1785
2020
  "required": ["type"]
1786
2021
  },
1787
2022
  "LibraryType": {
1788
- "description": "Type of library (types included by default are 'var', 'module', 'assign', 'assign-properties', 'this', 'window', 'self', 'global', 'commonjs', 'commonjs2', 'commonjs-module', 'amd', 'amd-require', 'umd', 'umd2', 'jsonp', 'system', but others might be added by plugins).",
2023
+ "description": "Type of library (types included by default are 'var', 'module', 'assign', 'assign-properties', 'this', 'window', 'self', 'global', 'commonjs', 'commonjs2', 'commonjs-module', 'commonjs-static', 'amd', 'amd-require', 'umd', 'umd2', 'jsonp', 'system', but others might be added by plugins).",
1789
2024
  "anyOf": [
1790
2025
  {
1791
2026
  "enum": [
@@ -1800,6 +2035,7 @@
1800
2035
  "commonjs",
1801
2036
  "commonjs2",
1802
2037
  "commonjs-module",
2038
+ "commonjs-static",
1803
2039
  "amd",
1804
2040
  "amd-require",
1805
2041
  "umd",
@@ -2631,6 +2867,18 @@
2631
2867
  "type": "string",
2632
2868
  "minLength": 1
2633
2869
  },
2870
+ "chunks": {
2871
+ "description": "Select chunks for determining shared modules (defaults to \"async\", \"initial\" and \"all\" requires adding these chunks to the HTML).",
2872
+ "anyOf": [
2873
+ {
2874
+ "enum": ["initial", "async", "all"]
2875
+ },
2876
+ {
2877
+ "instanceof": "Function",
2878
+ "tsType": "((chunk: import('../lib/Chunk')) => boolean)"
2879
+ }
2880
+ ]
2881
+ },
2634
2882
  "maxAsyncSize": {
2635
2883
  "description": "Maximal size hint for the on-demand chunks.",
2636
2884
  "oneOf": [
@@ -2801,6 +3049,10 @@
2801
3049
  "assetModuleFilename": {
2802
3050
  "$ref": "#/definitions/AssetModuleFilename"
2803
3051
  },
3052
+ "asyncChunks": {
3053
+ "description": "Enable/disable creating async chunks that are loaded on demand.",
3054
+ "type": "boolean"
3055
+ },
2804
3056
  "auxiliaryComment": {
2805
3057
  "cli": {
2806
3058
  "exclude": true
@@ -2838,6 +3090,12 @@
2838
3090
  "crossOriginLoading": {
2839
3091
  "$ref": "#/definitions/CrossOriginLoading"
2840
3092
  },
3093
+ "cssChunkFilename": {
3094
+ "$ref": "#/definitions/CssChunkFilename"
3095
+ },
3096
+ "cssFilename": {
3097
+ "$ref": "#/definitions/CssFilename"
3098
+ },
2841
3099
  "devtoolFallbackModuleFilenameTemplate": {
2842
3100
  "$ref": "#/definitions/DevtoolFallbackModuleFilenameTemplate"
2843
3101
  },
@@ -3000,6 +3258,10 @@
3000
3258
  "assetModuleFilename": {
3001
3259
  "$ref": "#/definitions/AssetModuleFilename"
3002
3260
  },
3261
+ "asyncChunks": {
3262
+ "description": "Enable/disable creating async chunks that are loaded on demand.",
3263
+ "type": "boolean"
3264
+ },
3003
3265
  "charset": {
3004
3266
  "$ref": "#/definitions/Charset"
3005
3267
  },
@@ -3027,6 +3289,12 @@
3027
3289
  "crossOriginLoading": {
3028
3290
  "$ref": "#/definitions/CrossOriginLoading"
3029
3291
  },
3292
+ "cssChunkFilename": {
3293
+ "$ref": "#/definitions/CssChunkFilename"
3294
+ },
3295
+ "cssFilename": {
3296
+ "$ref": "#/definitions/CssFilename"
3297
+ },
3030
3298
  "devtoolFallbackModuleFilenameTemplate": {
3031
3299
  "$ref": "#/definitions/DevtoolFallbackModuleFilenameTemplate"
3032
3300
  },
@@ -3475,6 +3743,29 @@
3475
3743
  "type": "string"
3476
3744
  }
3477
3745
  },
3746
+ "extensionAlias": {
3747
+ "description": "An object which maps extension to extension aliases.",
3748
+ "type": "object",
3749
+ "additionalProperties": {
3750
+ "description": "Extension alias.",
3751
+ "anyOf": [
3752
+ {
3753
+ "description": "Multiple extensions.",
3754
+ "type": "array",
3755
+ "items": {
3756
+ "description": "Aliased extension.",
3757
+ "type": "string",
3758
+ "minLength": 1
3759
+ }
3760
+ },
3761
+ {
3762
+ "description": "Aliased extension.",
3763
+ "type": "string",
3764
+ "minLength": 1
3765
+ }
3766
+ ]
3767
+ }
3768
+ },
3478
3769
  "extensions": {
3479
3770
  "description": "Extensions added to the request when trying to find the file.",
3480
3771
  "type": "array",
@@ -4138,12 +4429,12 @@
4138
4429
  "description": "List of paths that are managed by a package manager and contain a version or hash in its path so all files are immutable.",
4139
4430
  "anyOf": [
4140
4431
  {
4141
- "description": "A RegExp matching a immutable directory (usually a package manager cache directory, including the tailing slash)",
4432
+ "description": "A RegExp matching an immutable directory (usually a package manager cache directory, including the tailing slash)",
4142
4433
  "instanceof": "RegExp",
4143
4434
  "tsType": "RegExp"
4144
4435
  },
4145
4436
  {
4146
- "description": "A path to a immutable directory (usually a package manager cache directory).",
4437
+ "description": "A path to an immutable directory (usually a package manager cache directory).",
4147
4438
  "type": "string",
4148
4439
  "absolutePath": true,
4149
4440
  "minLength": 1
@@ -3,4 +3,4 @@
3
3
  * DO NOT MODIFY BY HAND.
4
4
  * Run `yarn special-lint-fix` to update
5
5
  */
6
- "use strict";function n(t,{instancePath:l="",parentData:s,parentDataProperty:e,rootData:a=t}={}){let r=null,o=0;const u=o;let i=!1;const p=o;if(o===p)if(Array.isArray(t)){const n=t.length;for(let l=0;l<n;l++){let n=t[l];const s=o,e=o;let a=!1,u=null;const i=o,p=o;let f=!1;const h=o;if(!(n instanceof RegExp)){const n={params:{}};null===r?r=[n]:r.push(n),o++}var c=h===o;if(f=f||c,!f){const t=o;if(o===t)if("string"==typeof n){if(n.length<1){const n={params:{}};null===r?r=[n]:r.push(n),o++}}else{const n={params:{type:"string"}};null===r?r=[n]:r.push(n),o++}c=t===o,f=f||c}if(f)o=p,null!==r&&(p?r.length=p:r=null);else{const n={params:{}};null===r?r=[n]:r.push(n),o++}if(i===o&&(a=!0,u=0),a)o=e,null!==r&&(e?r.length=e:r=null);else{const n={params:{passingSchemas:u}};null===r?r=[n]:r.push(n),o++}if(s!==o)break}}else{const n={params:{type:"array"}};null===r?r=[n]:r.push(n),o++}var f=p===o;if(i=i||f,!i){const n=o,l=o;let s=!1;const e=o;if(!(t instanceof RegExp)){const n={params:{}};null===r?r=[n]:r.push(n),o++}var h=e===o;if(s=s||h,!s){const n=o;if(o===n)if("string"==typeof t){if(t.length<1){const n={params:{}};null===r?r=[n]:r.push(n),o++}}else{const n={params:{type:"string"}};null===r?r=[n]:r.push(n),o++}h=n===o,s=s||h}if(s)o=l,null!==r&&(l?r.length=l:r=null);else{const n={params:{}};null===r?r=[n]:r.push(n),o++}f=n===o,i=i||f}if(!i){const t={params:{}};return null===r?r=[t]:r.push(t),o++,n.errors=r,!1}return o=u,null!==r&&(u?r.length=u:r=null),n.errors=r,0===o}function t(l,{instancePath:s="",parentData:e,parentDataProperty:a,rootData:r=l}={}){let o=null,u=0;const i=u;let p=!1;const c=u;if(u===c)if("string"==typeof l){if(l.length<1){const n={params:{}};null===o?o=[n]:o.push(n),u++}}else{const n={params:{type:"string"}};null===o?o=[n]:o.push(n),u++}var f=c===u;if(p=p||f,!p){const t=u;if(u===t)if(l&&"object"==typeof l&&!Array.isArray(l)){let t;if(void 0===l.banner&&(t="banner")){const n={params:{missingProperty:t}};null===o?o=[n]:o.push(n),u++}else{const t=u;for(const n in l)if("banner"!==n&&"entryOnly"!==n&&"exclude"!==n&&"include"!==n&&"raw"!==n&&"test"!==n){const t={params:{additionalProperty:n}};null===o?o=[t]:o.push(t),u++;break}if(t===u){if(void 0!==l.banner){let n=l.banner;const t=u,s=u;let e=!1;const a=u;if("string"!=typeof n){const n={params:{type:"string"}};null===o?o=[n]:o.push(n),u++}var h=a===u;if(e=e||h,!e){const t=u;if(!(n instanceof Function)){const n={params:{}};null===o?o=[n]:o.push(n),u++}h=t===u,e=e||h}if(e)u=s,null!==o&&(s?o.length=s:o=null);else{const n={params:{}};null===o?o=[n]:o.push(n),u++}var m=t===u}else m=!0;if(m){if(void 0!==l.entryOnly){const n=u;if("boolean"!=typeof l.entryOnly){const n={params:{type:"boolean"}};null===o?o=[n]:o.push(n),u++}m=n===u}else m=!0;if(m){if(void 0!==l.exclude){const t=u,e=u;let a=!1,i=null;const p=u;if(n(l.exclude,{instancePath:s+"/exclude",parentData:l,parentDataProperty:"exclude",rootData:r})||(o=null===o?n.errors:o.concat(n.errors),u=o.length),p===u&&(a=!0,i=0),a)u=e,null!==o&&(e?o.length=e:o=null);else{const n={params:{passingSchemas:i}};null===o?o=[n]:o.push(n),u++}m=t===u}else m=!0;if(m){if(void 0!==l.include){const t=u,e=u;let a=!1,i=null;const p=u;if(n(l.include,{instancePath:s+"/include",parentData:l,parentDataProperty:"include",rootData:r})||(o=null===o?n.errors:o.concat(n.errors),u=o.length),p===u&&(a=!0,i=0),a)u=e,null!==o&&(e?o.length=e:o=null);else{const n={params:{passingSchemas:i}};null===o?o=[n]:o.push(n),u++}m=t===u}else m=!0;if(m){if(void 0!==l.raw){const n=u;if("boolean"!=typeof l.raw){const n={params:{type:"boolean"}};null===o?o=[n]:o.push(n),u++}m=n===u}else m=!0;if(m)if(void 0!==l.test){const t=u,e=u;let a=!1,i=null;const p=u;if(n(l.test,{instancePath:s+"/test",parentData:l,parentDataProperty:"test",rootData:r})||(o=null===o?n.errors:o.concat(n.errors),u=o.length),p===u&&(a=!0,i=0),a)u=e,null!==o&&(e?o.length=e:o=null);else{const n={params:{passingSchemas:i}};null===o?o=[n]:o.push(n),u++}m=t===u}else m=!0}}}}}}}else{const n={params:{type:"object"}};null===o?o=[n]:o.push(n),u++}if(f=t===u,p=p||f,!p){const n=u;if(!(l instanceof Function)){const n={params:{}};null===o?o=[n]:o.push(n),u++}f=n===u,p=p||f}}if(!p){const n={params:{}};return null===o?o=[n]:o.push(n),u++,t.errors=o,!1}return u=i,null!==o&&(i?o.length=i:o=null),t.errors=o,0===u}module.exports=t,module.exports.default=t;
6
+ "use strict";function n(t,{instancePath:l="",parentData:e,parentDataProperty:s,rootData:a=t}={}){let r=null,o=0;const u=o;let i=!1;const p=o;if(o===p)if(Array.isArray(t)){const n=t.length;for(let l=0;l<n;l++){let n=t[l];const e=o,s=o;let a=!1,u=null;const i=o,p=o;let f=!1;const h=o;if(!(n instanceof RegExp)){const n={params:{}};null===r?r=[n]:r.push(n),o++}var c=h===o;if(f=f||c,!f){const t=o;if(o===t)if("string"==typeof n){if(n.length<1){const n={params:{}};null===r?r=[n]:r.push(n),o++}}else{const n={params:{type:"string"}};null===r?r=[n]:r.push(n),o++}c=t===o,f=f||c}if(f)o=p,null!==r&&(p?r.length=p:r=null);else{const n={params:{}};null===r?r=[n]:r.push(n),o++}if(i===o&&(a=!0,u=0),a)o=s,null!==r&&(s?r.length=s:r=null);else{const n={params:{passingSchemas:u}};null===r?r=[n]:r.push(n),o++}if(e!==o)break}}else{const n={params:{type:"array"}};null===r?r=[n]:r.push(n),o++}var f=p===o;if(i=i||f,!i){const n=o,l=o;let e=!1;const s=o;if(!(t instanceof RegExp)){const n={params:{}};null===r?r=[n]:r.push(n),o++}var h=s===o;if(e=e||h,!e){const n=o;if(o===n)if("string"==typeof t){if(t.length<1){const n={params:{}};null===r?r=[n]:r.push(n),o++}}else{const n={params:{type:"string"}};null===r?r=[n]:r.push(n),o++}h=n===o,e=e||h}if(e)o=l,null!==r&&(l?r.length=l:r=null);else{const n={params:{}};null===r?r=[n]:r.push(n),o++}f=n===o,i=i||f}if(!i){const t={params:{}};return null===r?r=[t]:r.push(t),o++,n.errors=r,!1}return o=u,null!==r&&(u?r.length=u:r=null),n.errors=r,0===o}function t(l,{instancePath:e="",parentData:s,parentDataProperty:a,rootData:r=l}={}){let o=null,u=0;const i=u;let p=!1;const c=u;if(u===c)if("string"==typeof l){if(l.length<1){const n={params:{}};null===o?o=[n]:o.push(n),u++}}else{const n={params:{type:"string"}};null===o?o=[n]:o.push(n),u++}var f=c===u;if(p=p||f,!p){const t=u;if(u===t)if(l&&"object"==typeof l&&!Array.isArray(l)){let t;if(void 0===l.banner&&(t="banner")){const n={params:{missingProperty:t}};null===o?o=[n]:o.push(n),u++}else{const t=u;for(const n in l)if("banner"!==n&&"entryOnly"!==n&&"exclude"!==n&&"footer"!==n&&"include"!==n&&"raw"!==n&&"test"!==n){const t={params:{additionalProperty:n}};null===o?o=[t]:o.push(t),u++;break}if(t===u){if(void 0!==l.banner){let n=l.banner;const t=u,e=u;let s=!1;const a=u;if("string"!=typeof n){const n={params:{type:"string"}};null===o?o=[n]:o.push(n),u++}var h=a===u;if(s=s||h,!s){const t=u;if(!(n instanceof Function)){const n={params:{}};null===o?o=[n]:o.push(n),u++}h=t===u,s=s||h}if(s)u=e,null!==o&&(e?o.length=e:o=null);else{const n={params:{}};null===o?o=[n]:o.push(n),u++}var y=t===u}else y=!0;if(y){if(void 0!==l.entryOnly){const n=u;if("boolean"!=typeof l.entryOnly){const n={params:{type:"boolean"}};null===o?o=[n]:o.push(n),u++}y=n===u}else y=!0;if(y){if(void 0!==l.exclude){const t=u,s=u;let a=!1,i=null;const p=u;if(n(l.exclude,{instancePath:e+"/exclude",parentData:l,parentDataProperty:"exclude",rootData:r})||(o=null===o?n.errors:o.concat(n.errors),u=o.length),p===u&&(a=!0,i=0),a)u=s,null!==o&&(s?o.length=s:o=null);else{const n={params:{passingSchemas:i}};null===o?o=[n]:o.push(n),u++}y=t===u}else y=!0;if(y){if(void 0!==l.footer){const n=u;if("boolean"!=typeof l.footer){const n={params:{type:"boolean"}};null===o?o=[n]:o.push(n),u++}y=n===u}else y=!0;if(y){if(void 0!==l.include){const t=u,s=u;let a=!1,i=null;const p=u;if(n(l.include,{instancePath:e+"/include",parentData:l,parentDataProperty:"include",rootData:r})||(o=null===o?n.errors:o.concat(n.errors),u=o.length),p===u&&(a=!0,i=0),a)u=s,null!==o&&(s?o.length=s:o=null);else{const n={params:{passingSchemas:i}};null===o?o=[n]:o.push(n),u++}y=t===u}else y=!0;if(y){if(void 0!==l.raw){const n=u;if("boolean"!=typeof l.raw){const n={params:{type:"boolean"}};null===o?o=[n]:o.push(n),u++}y=n===u}else y=!0;if(y)if(void 0!==l.test){const t=u,s=u;let a=!1,i=null;const p=u;if(n(l.test,{instancePath:e+"/test",parentData:l,parentDataProperty:"test",rootData:r})||(o=null===o?n.errors:o.concat(n.errors),u=o.length),p===u&&(a=!0,i=0),a)u=s,null!==o&&(s?o.length=s:o=null);else{const n={params:{passingSchemas:i}};null===o?o=[n]:o.push(n),u++}y=t===u}else y=!0}}}}}}}}else{const n={params:{type:"object"}};null===o?o=[n]:o.push(n),u++}if(f=t===u,p=p||f,!p){const n=u;if(!(l instanceof Function)){const n={params:{}};null===o?o=[n]:o.push(n),u++}f=n===u,p=p||f}}if(!p){const n={params:{}};return null===o?o=[n]:o.push(n),u++,t.errors=o,!1}return u=i,null!==o&&(i?o.length=i:o=null),t.errors=o,0===u}module.exports=t,module.exports.default=t;
@@ -73,6 +73,10 @@
73
73
  }
74
74
  ]
75
75
  },
76
+ "footer": {
77
+ "description": "If true, banner will be placed at the end of the output.",
78
+ "type": "boolean"
79
+ },
76
80
  "include": {
77
81
  "description": "Include all modules matching any of these conditions.",
78
82
  "oneOf": [