@tramvai/cli 5.53.81 → 5.53.111

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.
Files changed (196) hide show
  1. package/README.md +1 -1
  2. package/bin/const.js +5 -0
  3. package/bin/platform.js +12 -6
  4. package/bin/spawn.js +6 -0
  5. package/lib/api/analyze/index.d.ts.map +1 -1
  6. package/lib/api/analyze/index.js +1 -13
  7. package/lib/api/analyze/index.js.map +1 -1
  8. package/lib/api/benchmark/build.d.ts +1 -6
  9. package/lib/api/benchmark/build.d.ts.map +1 -1
  10. package/lib/api/benchmark/build.js +59 -23
  11. package/lib/api/benchmark/build.js.map +1 -1
  12. package/lib/api/benchmark/const.d.ts +2 -0
  13. package/lib/api/benchmark/const.d.ts.map +1 -0
  14. package/lib/api/benchmark/const.js +5 -0
  15. package/lib/api/benchmark/const.js.map +1 -0
  16. package/lib/api/benchmark/index.d.ts +4 -6
  17. package/lib/api/benchmark/index.d.ts.map +1 -1
  18. package/lib/api/benchmark/index.js.map +1 -1
  19. package/lib/api/benchmark/start.d.ts +1 -7
  20. package/lib/api/benchmark/start.d.ts.map +1 -1
  21. package/lib/api/benchmark/start.js +56 -49
  22. package/lib/api/benchmark/start.js.map +1 -1
  23. package/lib/api/benchmark/types.d.ts +76 -12
  24. package/lib/api/benchmark/types.d.ts.map +1 -1
  25. package/lib/api/benchmark/utils/compilationUtils.d.ts +4 -0
  26. package/lib/api/benchmark/utils/compilationUtils.d.ts.map +1 -0
  27. package/lib/api/benchmark/utils/compilationUtils.js +157 -0
  28. package/lib/api/benchmark/utils/compilationUtils.js.map +1 -0
  29. package/lib/api/benchmark/utils/stats.d.ts +2 -7
  30. package/lib/api/benchmark/utils/stats.d.ts.map +1 -1
  31. package/lib/api/benchmark/utils/stats.js +36 -22
  32. package/lib/api/benchmark/utils/stats.js.map +1 -1
  33. package/lib/api/build/index.d.ts +1 -0
  34. package/lib/api/build/index.d.ts.map +1 -1
  35. package/lib/api/build/index.js.map +1 -1
  36. package/lib/api/index.js +1 -1
  37. package/lib/api/index.js.map +1 -1
  38. package/lib/api/start/index.d.ts +1 -0
  39. package/lib/api/start/index.d.ts.map +1 -1
  40. package/lib/api/start/index.js.map +1 -1
  41. package/lib/builder/webpack/analyzePlugins/rsdoctor.d.ts +5 -5
  42. package/lib/builder/webpack/analyzePlugins/rsdoctor.d.ts.map +1 -1
  43. package/lib/builder/webpack/analyzePlugins/rsdoctor.js +7 -9
  44. package/lib/builder/webpack/analyzePlugins/rsdoctor.js.map +1 -1
  45. package/lib/builder/webpack/index.d.ts.map +1 -1
  46. package/lib/builder/webpack/index.js +14 -12
  47. package/lib/builder/webpack/index.js.map +1 -1
  48. package/lib/builder/webpack/providers/build/client.d.ts.map +1 -1
  49. package/lib/builder/webpack/providers/build/client.js +3 -2
  50. package/lib/builder/webpack/providers/build/client.js.map +1 -1
  51. package/lib/builder/webpack/providers/build/server.d.ts.map +1 -1
  52. package/lib/builder/webpack/providers/build/server.js +3 -2
  53. package/lib/builder/webpack/providers/build/server.js.map +1 -1
  54. package/lib/builder/webpack/providers/shared.d.ts.map +1 -1
  55. package/lib/builder/webpack/providers/shared.js +39 -5
  56. package/lib/builder/webpack/providers/shared.js.map +1 -1
  57. package/lib/builder/webpack/providers/start/shared.d.ts.map +1 -1
  58. package/lib/builder/webpack/providers/start/shared.js +6 -2
  59. package/lib/builder/webpack/providers/start/shared.js.map +1 -1
  60. package/lib/builder/webpack/tokens.d.ts +10 -16
  61. package/lib/builder/webpack/tokens.d.ts.map +1 -1
  62. package/lib/cli/index.d.ts.map +1 -1
  63. package/lib/cli/index.js +12 -12
  64. package/lib/cli/index.js.map +1 -1
  65. package/lib/commands/analyze/command.d.ts +1 -1
  66. package/lib/commands/analyze/command.d.ts.map +1 -1
  67. package/lib/commands/benchmark/benchmark.d.ts +3 -1
  68. package/lib/commands/benchmark/benchmark.d.ts.map +1 -1
  69. package/lib/commands/benchmark/benchmark.js +130 -31
  70. package/lib/commands/benchmark/benchmark.js.map +1 -1
  71. package/lib/commands/benchmark/command.d.ts +9 -0
  72. package/lib/commands/benchmark/command.d.ts.map +1 -1
  73. package/lib/commands/benchmark/command.js +12 -0
  74. package/lib/commands/benchmark/command.js.map +1 -1
  75. package/lib/commands/build/command.d.ts.map +1 -1
  76. package/lib/commands/build/command.js +5 -0
  77. package/lib/commands/build/command.js.map +1 -1
  78. package/lib/commands/start/command.d.ts.map +1 -1
  79. package/lib/commands/start/command.js +5 -0
  80. package/lib/commands/start/command.js.map +1 -1
  81. package/lib/commands/update/checkVersionValidator.d.ts +1 -1
  82. package/lib/commands/update/checkVersionValidator.d.ts.map +1 -1
  83. package/lib/commands/update/checkVersionValidator.js +3 -2
  84. package/lib/commands/update/checkVersionValidator.js.map +1 -1
  85. package/lib/commands/update/command.d.ts +1 -1
  86. package/lib/commands/update/dependantLibs.d.ts +1 -1
  87. package/lib/commands/update/dependantLibs.d.ts.map +1 -1
  88. package/lib/commands/update/dependantLibs.js +3 -2
  89. package/lib/commands/update/dependantLibs.js.map +1 -1
  90. package/lib/commands/update/update.d.ts.map +1 -1
  91. package/lib/commands/update/update.js +6 -3
  92. package/lib/commands/update/update.js.map +1 -1
  93. package/lib/commands/update/updatePackageJson.d.ts +1 -1
  94. package/lib/commands/update/updatePackageJson.d.ts.map +1 -1
  95. package/lib/commands/update/updatePackageJson.js +7 -7
  96. package/lib/commands/update/updatePackageJson.js.map +1 -1
  97. package/lib/config/configManager.d.ts +2 -0
  98. package/lib/config/configManager.d.ts.map +1 -1
  99. package/lib/config/configManager.js +2 -0
  100. package/lib/config/configManager.js.map +1 -1
  101. package/lib/di/tokens/config.d.ts +5 -8
  102. package/lib/di/tokens/config.d.ts.map +1 -1
  103. package/lib/library/webpack/blocks/css.d.ts.map +1 -1
  104. package/lib/library/webpack/blocks/css.js +42 -15
  105. package/lib/library/webpack/blocks/css.js.map +1 -1
  106. package/lib/library/webpack/blocks/js.d.ts.map +1 -1
  107. package/lib/library/webpack/blocks/js.js +57 -11
  108. package/lib/library/webpack/blocks/js.js.map +1 -1
  109. package/lib/library/webpack/common/main.d.ts.map +1 -1
  110. package/lib/library/webpack/common/main.js +7 -0
  111. package/lib/library/webpack/common/main.js.map +1 -1
  112. package/lib/library/webpack/utils/browserslist.d.ts +4 -0
  113. package/lib/library/webpack/utils/browserslist.d.ts.map +1 -0
  114. package/lib/library/webpack/utils/browserslist.js +27 -0
  115. package/lib/library/webpack/utils/browserslist.js.map +1 -0
  116. package/lib/library/webpack/utils/rsdoctor.d.ts +2 -0
  117. package/lib/library/webpack/utils/rsdoctor.d.ts.map +1 -0
  118. package/lib/library/webpack/utils/rsdoctor.js +27 -0
  119. package/lib/library/webpack/utils/rsdoctor.js.map +1 -0
  120. package/lib/library/webpack/utils/threadLoader.d.ts.map +1 -1
  121. package/lib/library/webpack/utils/threadLoader.js +3 -3
  122. package/lib/library/webpack/utils/threadLoader.js.map +1 -1
  123. package/lib/library/webpack/utils/transpiler.d.ts.map +1 -1
  124. package/lib/library/webpack/utils/transpiler.js +3 -16
  125. package/lib/library/webpack/utils/transpiler.js.map +1 -1
  126. package/lib/schema/autogeneratedSchema.json +240 -120
  127. package/lib/typings/build/Builder.d.ts +6 -2
  128. package/lib/typings/build/Builder.d.ts.map +1 -1
  129. package/lib/typings/configEntry/cli.d.ts +9 -0
  130. package/lib/typings/configEntry/cli.d.ts.map +1 -1
  131. package/lib/utils/commands/dependencies/getLatestPackageVersion.d.ts +1 -1
  132. package/lib/utils/commands/dependencies/getLatestPackageVersion.d.ts.map +1 -1
  133. package/lib/utils/commands/dependencies/getLatestPackageVersion.js +4 -2
  134. package/lib/utils/commands/dependencies/getLatestPackageVersion.js.map +1 -1
  135. package/lib/utils/commands/dependencies/packageHasVersion.d.ts +1 -1
  136. package/lib/utils/commands/dependencies/packageHasVersion.d.ts.map +1 -1
  137. package/lib/utils/commands/dependencies/packageHasVersion.js +3 -2
  138. package/lib/utils/commands/dependencies/packageHasVersion.js.map +1 -1
  139. package/package.json +19 -18
  140. package/schema.json +240 -120
  141. package/src/api/analyze/index.ts +3 -16
  142. package/src/api/benchmark/__integration__/start.test.ts +10 -12
  143. package/src/api/benchmark/build.ts +75 -30
  144. package/src/api/benchmark/const.ts +1 -0
  145. package/src/api/benchmark/index.ts +4 -6
  146. package/src/api/benchmark/start.ts +69 -65
  147. package/src/api/benchmark/types.ts +82 -14
  148. package/src/api/benchmark/utils/compilationUtils.ts +213 -0
  149. package/src/api/benchmark/utils/stats.ts +45 -28
  150. package/src/api/build/index.ts +1 -0
  151. package/src/api/index.ts +1 -1
  152. package/src/api/start/index.ts +1 -0
  153. package/src/builder/webpack/analyzePlugins/rsdoctor.ts +11 -14
  154. package/src/builder/webpack/index.ts +16 -21
  155. package/src/builder/webpack/providers/build/client.ts +7 -2
  156. package/src/builder/webpack/providers/build/server.ts +7 -2
  157. package/src/builder/webpack/providers/shared.ts +53 -5
  158. package/src/builder/webpack/providers/start/shared.ts +7 -2
  159. package/src/cli/index.ts +3 -2
  160. package/src/commands/analyze/command.ts +1 -1
  161. package/src/commands/benchmark/benchmark.ts +168 -33
  162. package/src/commands/benchmark/command.ts +12 -0
  163. package/src/commands/build/command.ts +6 -0
  164. package/src/commands/new/templates/shared/package.json.hbs +1 -1
  165. package/src/commands/start/command.ts +6 -0
  166. package/src/commands/update/checkVersionValidator.ts +4 -2
  167. package/src/commands/update/dependantLibs.ts +3 -1
  168. package/src/commands/update/update.ts +6 -3
  169. package/src/commands/update/updatePackageJson.spec.ts +19 -3
  170. package/src/commands/update/updatePackageJson.ts +7 -2
  171. package/src/config/configManager.ts +4 -0
  172. package/src/library/webpack/blocks/css.ts +52 -16
  173. package/src/library/webpack/blocks/js.ts +61 -12
  174. package/src/library/webpack/common/main.ts +8 -0
  175. package/src/library/webpack/utils/browserslist.ts +29 -0
  176. package/src/library/webpack/utils/rsdoctor.ts +26 -0
  177. package/src/library/webpack/utils/threadLoader.ts +1 -0
  178. package/src/library/webpack/utils/transpiler.ts +3 -18
  179. package/src/models/config.spec.ts +4 -0
  180. package/src/schema/autogeneratedSchema.json +240 -120
  181. package/src/schema/tramvai.spec.ts +2 -0
  182. package/src/typings/build/Builder.ts +7 -2
  183. package/src/typings/configEntry/cli.ts +11 -0
  184. package/src/utils/commands/dependencies/getLatestPackageVersion.ts +4 -1
  185. package/src/utils/commands/dependencies/packageHasVersion.ts +7 -2
  186. package/lib/api/analyze/providers/shared.d.ts +0 -3
  187. package/lib/api/analyze/providers/shared.d.ts.map +0 -1
  188. package/lib/api/analyze/providers/shared.js +0 -23
  189. package/lib/api/analyze/providers/shared.js.map +0 -1
  190. package/lib/builder/webpack/providers/analyze/shared.d.ts +0 -3
  191. package/lib/builder/webpack/providers/analyze/shared.d.ts.map +0 -1
  192. package/lib/builder/webpack/providers/analyze/shared.js +0 -141
  193. package/lib/builder/webpack/providers/analyze/shared.js.map +0 -1
  194. package/src/api/analyze/providers/shared.ts +0 -26
  195. package/src/api/benchmark/utils/stats.spec.ts +0 -36
  196. package/src/builder/webpack/providers/analyze/shared.ts +0 -160
@@ -3,6 +3,7 @@ import type Config from 'webpack-chain';
3
3
  import path from 'path';
4
4
  import { existsSync } from 'fs-extra';
5
5
  import findCacheDir from 'find-cache-dir';
6
+ import { RsdoctorWebpackMultiplePlugin } from '@rsdoctor/webpack-plugin';
6
7
  import { ignoreWarnings } from '../utils/warningsFilter';
7
8
  import resolve from '../blocks/resolve';
8
9
  import ignoreLocales from '../blocks/ignoreLocales';
@@ -10,6 +11,7 @@ import type { ConfigManager } from '../../../config/configManager';
10
11
  import { safeRequireResolve } from '../../../utils/safeRequire';
11
12
  import type { CliConfigEntry } from '../../../typings/configEntry/cli';
12
13
  import { getPostcssConfigPath } from '../blocks/css';
14
+ import { getRsdoctorOptions } from '../utils/rsdoctor';
13
15
 
14
16
  const filterNonExisted = (filePaths: string[]) => {
15
17
  return filePaths.filter((filePath) => {
@@ -126,6 +128,12 @@ export default (configManager: ConfigManager<CliConfigEntry>) => (config: Config
126
128
  },
127
129
  ]);
128
130
 
131
+ if (configManager.benchmark) {
132
+ config
133
+ .plugin('rsdoctor-benchmark')
134
+ .use(RsdoctorWebpackMultiplePlugin, [getRsdoctorOptions(configManager.buildType)]);
135
+ }
136
+
129
137
  // TODO: remove after dropping support for node@14
130
138
  if (configManager.buildType === 'server') {
131
139
  config.plugin('node-performance').use(webpack.ProvidePlugin, [
@@ -0,0 +1,29 @@
1
+ import envTargets from '@tinkoff/browserslist-config';
2
+ import browserslist from 'browserslist';
3
+
4
+ import type { Target } from '../../../typings/target';
5
+
6
+ export function getBrowserslistTargets(rootDir: string, actualTarget: Target) {
7
+ const browserslistConfigRaw = browserslist.findConfig(rootDir);
8
+
9
+ // Set defaults if the explicit config for browserslist was not found or the config does not contain the necessary targets
10
+ const browserslistQuery =
11
+ browserslistConfigRaw?.[actualTarget] ?? envTargets[actualTarget] ?? envTargets.defaults;
12
+
13
+ return browserslist(browserslistQuery, {
14
+ mobileToDesktop: true,
15
+ env: actualTarget,
16
+ });
17
+ }
18
+
19
+ export function getActualTarget(target, isServer) {
20
+ let actualTarget = target;
21
+
22
+ if (!target) {
23
+ if (isServer) {
24
+ actualTarget = 'node';
25
+ }
26
+ }
27
+
28
+ return actualTarget;
29
+ }
@@ -0,0 +1,26 @@
1
+ import { RsdoctorWebpackPlugin } from '@rsdoctor/webpack-plugin';
2
+
3
+ type options = ConstructorParameters<typeof RsdoctorWebpackPlugin<[]>>[0];
4
+
5
+ export const getRsdoctorOptions = (buildType: 'client' | 'server'): options => ({
6
+ disableClientServer: true,
7
+ features: ['plugins', 'loader'],
8
+ linter: {
9
+ level: 'Ignore',
10
+ },
11
+ output: {
12
+ reportDir: './.rsdoctor',
13
+ mode: 'brief',
14
+ options: {
15
+ type: ['json'],
16
+ jsonOptions: {
17
+ fileName: `${buildType}-rsdoctor-data.json`,
18
+ sections: {
19
+ moduleGraph: false,
20
+ chunkGraph: false,
21
+ rules: false,
22
+ },
23
+ },
24
+ },
25
+ },
26
+ });
@@ -23,6 +23,7 @@ const createWorkerPoolConfig = (configManager: ConfigManager<CliConfigEntry>) =>
23
23
 
24
24
  const isApplicable = (configManager: ConfigManager<CliConfigEntry>) => {
25
25
  return (
26
+ !configManager.benchmark &&
26
27
  // thread-loader uses child_process.fork under the hood, and sometimes (50/50) work in these processes does not get into inspector.Session profile
27
28
  !process.env.TRAMVAI_CPU_PROFILE &&
28
29
  !process.env.TRAMVAI_DEBUG_BUILD &&
@@ -8,6 +8,7 @@ import { babelConfigFactory } from '../../babel';
8
8
  import type { Env } from '../../../typings/Env';
9
9
  import type { Target } from '../../../typings/target';
10
10
  import type { CliConfigEntry, ReactCompilerOptions } from '../../../typings/configEntry/cli';
11
+ import { getActualTarget, getBrowserslistTargets } from './browserslist';
11
12
 
12
13
  export type TranspilerConfig = {
13
14
  env: Env;
@@ -84,24 +85,8 @@ export const getTranspilerConfig = (
84
85
  Just check or add configuration to your tsconfig file and remove alias from tramvai.json`);
85
86
  }
86
87
 
87
- let actualTarget = target;
88
-
89
- if (!target) {
90
- if (isServer) {
91
- actualTarget = 'node';
92
- }
93
- }
94
-
95
- const browserslistConfigRaw = browserslist.findConfig(rootDir);
96
-
97
- // Set defaults if the explicit config for browserslist was not found or the config does not contain the necessary targets
98
- const browserslistQuery =
99
- browserslistConfigRaw?.[actualTarget] ?? envTargets[actualTarget] ?? envTargets.defaults;
100
-
101
- const browsersListTargets = browserslist(browserslistQuery, {
102
- mobileToDesktop: true,
103
- env: actualTarget,
104
- });
88
+ const actualTarget = getActualTarget(target, isServer);
89
+ const browsersListTargets = getBrowserslistTargets(rootDir, actualTarget);
105
90
 
106
91
  return {
107
92
  isServer,
@@ -76,6 +76,7 @@ it('should populate defaults for config', () => {
76
76
  "runtimeChunk": false,
77
77
  "serverRunner": "thread",
78
78
  "transpilation": {
79
+ "include": "only-modern",
79
80
  "loader": "babel",
80
81
  },
81
82
  "viewTransitions": false,
@@ -152,6 +153,7 @@ it('should populate defaults for config', () => {
152
153
  "minifier": "terser",
153
154
  "reactCompiler": false,
154
155
  "transpilation": {
156
+ "include": "only-modern",
155
157
  "loader": "babel",
156
158
  },
157
159
  "webpack": {
@@ -325,6 +327,7 @@ it('should populate defaults for overridable options', () => {
325
327
  "runtimeChunk": false,
326
328
  "serverRunner": "thread",
327
329
  "transpilation": {
330
+ "include": "only-modern",
328
331
  "loader": {
329
332
  "development": "swc",
330
333
  "production": "babel",
@@ -419,6 +422,7 @@ it('should populate defaults for overridable options', () => {
419
422
  "minifier": "terser",
420
423
  "reactCompiler": false,
421
424
  "transpilation": {
425
+ "include": "only-modern",
422
426
  "loader": {
423
427
  "development": "babel",
424
428
  "production": "babel",
@@ -799,49 +799,22 @@
799
799
  "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
800
800
  "default": {},
801
801
  "type": "object",
802
+ "additionalProperties": false,
803
+ "patternProperties": {
804
+ "^[0-9]+$": {}
805
+ },
802
806
  "properties": {
803
- "asyncWebAssembly": {
804
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
805
- "type": "boolean"
806
- },
807
- "backCompat": {
808
- "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
809
- "title": "Enable backward compatibility with webpack previous major versions",
810
- "default": false,
811
- "type": "boolean"
812
- },
813
807
  "cacheUnaffected": {
814
- "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
815
808
  "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
816
809
  "default": true,
817
810
  "type": "boolean"
818
811
  },
819
- "futureDefaults": {
820
- "description": "Apply defaults of next major version.",
821
- "type": "boolean"
822
- },
823
- "layers": {
824
- "description": "Enable module layers.",
825
- "type": "boolean"
826
- },
827
- "outputModule": {
828
- "description": "Allow output javascript files as module source type.",
829
- "type": "boolean"
830
- },
831
- "syncWebAssembly": {
832
- "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
833
- "type": "boolean"
834
- },
835
- "topLevelAwait": {
836
- "description": "Allow using top-level-await in EcmaScript Modules.",
837
- "type": "boolean"
838
- },
839
- "deferImport": {
840
- "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-defer-import-eval. This allows to defer execution of a module until it's first use.",
812
+ "backCompat": {
813
+ "title": "Enable backward compatibility with webpack previous major versions",
814
+ "default": false,
841
815
  "type": "boolean"
842
816
  }
843
- },
844
- "additionalProperties": false
817
+ }
845
818
  },
846
819
  "minicss": {
847
820
  "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
@@ -873,6 +846,10 @@
873
846
  },
874
847
  "additionalProperties": false
875
848
  },
849
+ "lightningcss": {
850
+ "title": "experimental css building by [lightningcss](https://lightningcss.dev/)",
851
+ "type": "boolean"
852
+ },
876
853
  "transpilation": {
877
854
  "title": "experimental settings for code transpilation",
878
855
  "default": {},
@@ -911,6 +888,69 @@
911
888
  "type": "string"
912
889
  }
913
890
  ]
891
+ },
892
+ "include": {
893
+ "cli_overridable": "",
894
+ "title": "customize transpiling of node_modules in prod/dev environments",
895
+ "default": "only-modern",
896
+ "anyOf": [
897
+ {
898
+ "type": "array",
899
+ "items": {
900
+ "type": "string"
901
+ }
902
+ },
903
+ {
904
+ "type": "object",
905
+ "properties": {
906
+ "development": {
907
+ "anyOf": [
908
+ {
909
+ "type": "array",
910
+ "items": {
911
+ "type": "string"
912
+ }
913
+ },
914
+ {
915
+ "enum": [
916
+ "all",
917
+ "none",
918
+ "only-modern"
919
+ ],
920
+ "type": "string"
921
+ }
922
+ ]
923
+ },
924
+ "production": {
925
+ "anyOf": [
926
+ {
927
+ "type": "array",
928
+ "items": {
929
+ "type": "string"
930
+ }
931
+ },
932
+ {
933
+ "enum": [
934
+ "all",
935
+ "none",
936
+ "only-modern"
937
+ ],
938
+ "type": "string"
939
+ }
940
+ ]
941
+ }
942
+ },
943
+ "additionalProperties": false
944
+ },
945
+ {
946
+ "enum": [
947
+ "all",
948
+ "none",
949
+ "only-modern"
950
+ ],
951
+ "type": "string"
952
+ }
953
+ ]
914
954
  }
915
955
  },
916
956
  "additionalProperties": false
@@ -1289,23 +1329,23 @@
1289
1329
  "dotAll": {
1290
1330
  "type": "boolean"
1291
1331
  },
1292
- "__@match@8074": {
1332
+ "__@match@8181": {
1293
1333
  "type": "object",
1294
1334
  "additionalProperties": false
1295
1335
  },
1296
- "__@replace@8076": {
1336
+ "__@replace@8183": {
1297
1337
  "type": "object",
1298
1338
  "additionalProperties": false
1299
1339
  },
1300
- "__@search@8079": {
1340
+ "__@search@8186": {
1301
1341
  "type": "object",
1302
1342
  "additionalProperties": false
1303
1343
  },
1304
- "__@split@8081": {
1344
+ "__@split@8188": {
1305
1345
  "type": "object",
1306
1346
  "additionalProperties": false
1307
1347
  },
1308
- "__@matchAll@8083": {
1348
+ "__@matchAll@8190": {
1309
1349
  "type": "object",
1310
1350
  "additionalProperties": false
1311
1351
  }
@@ -1701,49 +1741,22 @@
1701
1741
  "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
1702
1742
  "default": {},
1703
1743
  "type": "object",
1744
+ "additionalProperties": false,
1745
+ "patternProperties": {
1746
+ "^[0-9]+$": {}
1747
+ },
1704
1748
  "properties": {
1705
- "asyncWebAssembly": {
1706
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
1707
- "type": "boolean"
1708
- },
1709
- "backCompat": {
1710
- "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
1711
- "title": "Enable backward compatibility with webpack previous major versions",
1712
- "default": false,
1713
- "type": "boolean"
1714
- },
1715
1749
  "cacheUnaffected": {
1716
- "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
1717
1750
  "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
1718
1751
  "default": true,
1719
1752
  "type": "boolean"
1720
1753
  },
1721
- "futureDefaults": {
1722
- "description": "Apply defaults of next major version.",
1723
- "type": "boolean"
1724
- },
1725
- "layers": {
1726
- "description": "Enable module layers.",
1727
- "type": "boolean"
1728
- },
1729
- "outputModule": {
1730
- "description": "Allow output javascript files as module source type.",
1731
- "type": "boolean"
1732
- },
1733
- "syncWebAssembly": {
1734
- "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
1735
- "type": "boolean"
1736
- },
1737
- "topLevelAwait": {
1738
- "description": "Allow using top-level-await in EcmaScript Modules.",
1739
- "type": "boolean"
1740
- },
1741
- "deferImport": {
1742
- "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-defer-import-eval. This allows to defer execution of a module until it's first use.",
1754
+ "backCompat": {
1755
+ "title": "Enable backward compatibility with webpack previous major versions",
1756
+ "default": false,
1743
1757
  "type": "boolean"
1744
1758
  }
1745
- },
1746
- "additionalProperties": false
1759
+ }
1747
1760
  },
1748
1761
  "minicss": {
1749
1762
  "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
@@ -1775,6 +1788,10 @@
1775
1788
  },
1776
1789
  "additionalProperties": false
1777
1790
  },
1791
+ "lightningcss": {
1792
+ "title": "experimental css building by [lightningcss](https://lightningcss.dev/)",
1793
+ "type": "boolean"
1794
+ },
1778
1795
  "transpilation": {
1779
1796
  "title": "experimental settings for code transpilation",
1780
1797
  "default": {},
@@ -1813,6 +1830,69 @@
1813
1830
  "type": "string"
1814
1831
  }
1815
1832
  ]
1833
+ },
1834
+ "include": {
1835
+ "cli_overridable": "",
1836
+ "title": "customize transpiling of node_modules in prod/dev environments",
1837
+ "default": "only-modern",
1838
+ "anyOf": [
1839
+ {
1840
+ "type": "array",
1841
+ "items": {
1842
+ "type": "string"
1843
+ }
1844
+ },
1845
+ {
1846
+ "type": "object",
1847
+ "properties": {
1848
+ "development": {
1849
+ "anyOf": [
1850
+ {
1851
+ "type": "array",
1852
+ "items": {
1853
+ "type": "string"
1854
+ }
1855
+ },
1856
+ {
1857
+ "enum": [
1858
+ "all",
1859
+ "none",
1860
+ "only-modern"
1861
+ ],
1862
+ "type": "string"
1863
+ }
1864
+ ]
1865
+ },
1866
+ "production": {
1867
+ "anyOf": [
1868
+ {
1869
+ "type": "array",
1870
+ "items": {
1871
+ "type": "string"
1872
+ }
1873
+ },
1874
+ {
1875
+ "enum": [
1876
+ "all",
1877
+ "none",
1878
+ "only-modern"
1879
+ ],
1880
+ "type": "string"
1881
+ }
1882
+ ]
1883
+ }
1884
+ },
1885
+ "additionalProperties": false
1886
+ },
1887
+ {
1888
+ "enum": [
1889
+ "all",
1890
+ "none",
1891
+ "only-modern"
1892
+ ],
1893
+ "type": "string"
1894
+ }
1895
+ ]
1816
1896
  }
1817
1897
  },
1818
1898
  "additionalProperties": false
@@ -2084,23 +2164,23 @@
2084
2164
  "dotAll": {
2085
2165
  "type": "boolean"
2086
2166
  },
2087
- "__@match@8074": {
2167
+ "__@match@8181": {
2088
2168
  "type": "object",
2089
2169
  "additionalProperties": false
2090
2170
  },
2091
- "__@replace@8076": {
2171
+ "__@replace@8183": {
2092
2172
  "type": "object",
2093
2173
  "additionalProperties": false
2094
2174
  },
2095
- "__@search@8079": {
2175
+ "__@search@8186": {
2096
2176
  "type": "object",
2097
2177
  "additionalProperties": false
2098
2178
  },
2099
- "__@split@8081": {
2179
+ "__@split@8188": {
2100
2180
  "type": "object",
2101
2181
  "additionalProperties": false
2102
2182
  },
2103
- "__@matchAll@8083": {
2183
+ "__@matchAll@8190": {
2104
2184
  "type": "object",
2105
2185
  "additionalProperties": false
2106
2186
  }
@@ -2496,49 +2576,22 @@
2496
2576
  "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
2497
2577
  "default": {},
2498
2578
  "type": "object",
2579
+ "additionalProperties": false,
2580
+ "patternProperties": {
2581
+ "^[0-9]+$": {}
2582
+ },
2499
2583
  "properties": {
2500
- "asyncWebAssembly": {
2501
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
2502
- "type": "boolean"
2503
- },
2504
- "backCompat": {
2505
- "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
2506
- "title": "Enable backward compatibility with webpack previous major versions",
2507
- "default": false,
2508
- "type": "boolean"
2509
- },
2510
2584
  "cacheUnaffected": {
2511
- "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
2512
2585
  "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
2513
2586
  "default": true,
2514
2587
  "type": "boolean"
2515
2588
  },
2516
- "futureDefaults": {
2517
- "description": "Apply defaults of next major version.",
2518
- "type": "boolean"
2519
- },
2520
- "layers": {
2521
- "description": "Enable module layers.",
2522
- "type": "boolean"
2523
- },
2524
- "outputModule": {
2525
- "description": "Allow output javascript files as module source type.",
2526
- "type": "boolean"
2527
- },
2528
- "syncWebAssembly": {
2529
- "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
2530
- "type": "boolean"
2531
- },
2532
- "topLevelAwait": {
2533
- "description": "Allow using top-level-await in EcmaScript Modules.",
2534
- "type": "boolean"
2535
- },
2536
- "deferImport": {
2537
- "description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-defer-import-eval. This allows to defer execution of a module until it's first use.",
2589
+ "backCompat": {
2590
+ "title": "Enable backward compatibility with webpack previous major versions",
2591
+ "default": false,
2538
2592
  "type": "boolean"
2539
2593
  }
2540
- },
2541
- "additionalProperties": false
2594
+ }
2542
2595
  },
2543
2596
  "minicss": {
2544
2597
  "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
@@ -2570,6 +2623,10 @@
2570
2623
  },
2571
2624
  "additionalProperties": false
2572
2625
  },
2626
+ "lightningcss": {
2627
+ "title": "experimental css building by [lightningcss](https://lightningcss.dev/)",
2628
+ "type": "boolean"
2629
+ },
2573
2630
  "transpilation": {
2574
2631
  "title": "experimental settings for code transpilation",
2575
2632
  "default": {},
@@ -2608,6 +2665,69 @@
2608
2665
  "type": "string"
2609
2666
  }
2610
2667
  ]
2668
+ },
2669
+ "include": {
2670
+ "cli_overridable": "",
2671
+ "title": "customize transpiling of node_modules in prod/dev environments",
2672
+ "default": "only-modern",
2673
+ "anyOf": [
2674
+ {
2675
+ "type": "array",
2676
+ "items": {
2677
+ "type": "string"
2678
+ }
2679
+ },
2680
+ {
2681
+ "type": "object",
2682
+ "properties": {
2683
+ "development": {
2684
+ "anyOf": [
2685
+ {
2686
+ "type": "array",
2687
+ "items": {
2688
+ "type": "string"
2689
+ }
2690
+ },
2691
+ {
2692
+ "enum": [
2693
+ "all",
2694
+ "none",
2695
+ "only-modern"
2696
+ ],
2697
+ "type": "string"
2698
+ }
2699
+ ]
2700
+ },
2701
+ "production": {
2702
+ "anyOf": [
2703
+ {
2704
+ "type": "array",
2705
+ "items": {
2706
+ "type": "string"
2707
+ }
2708
+ },
2709
+ {
2710
+ "enum": [
2711
+ "all",
2712
+ "none",
2713
+ "only-modern"
2714
+ ],
2715
+ "type": "string"
2716
+ }
2717
+ ]
2718
+ }
2719
+ },
2720
+ "additionalProperties": false
2721
+ },
2722
+ {
2723
+ "enum": [
2724
+ "all",
2725
+ "none",
2726
+ "only-modern"
2727
+ ],
2728
+ "type": "string"
2729
+ }
2730
+ ]
2611
2731
  }
2612
2732
  },
2613
2733
  "additionalProperties": false
@@ -2879,23 +2999,23 @@
2879
2999
  "dotAll": {
2880
3000
  "type": "boolean"
2881
3001
  },
2882
- "__@match@8074": {
3002
+ "__@match@8181": {
2883
3003
  "type": "object",
2884
3004
  "additionalProperties": false
2885
3005
  },
2886
- "__@replace@8076": {
3006
+ "__@replace@8183": {
2887
3007
  "type": "object",
2888
3008
  "additionalProperties": false
2889
3009
  },
2890
- "__@search@8079": {
3010
+ "__@search@8186": {
2891
3011
  "type": "object",
2892
3012
  "additionalProperties": false
2893
3013
  },
2894
- "__@split@8081": {
3014
+ "__@split@8188": {
2895
3015
  "type": "object",
2896
3016
  "additionalProperties": false
2897
3017
  },
2898
- "__@matchAll@8083": {
3018
+ "__@matchAll@8190": {
2899
3019
  "type": "object",
2900
3020
  "additionalProperties": false
2901
3021
  }