@tramvai/cli 2.64.0 → 2.65.9

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 (416) hide show
  1. package/README.md +46 -38
  2. package/lib/api/analyze/providers/shared.js +1 -1
  3. package/lib/api/analyze/providers/shared.js.map +1 -1
  4. package/lib/api/benchmark/index.d.ts +1 -1
  5. package/lib/api/build/child-app.js +3 -2
  6. package/lib/api/build/child-app.js.map +1 -1
  7. package/lib/api/build/module.js +1 -2
  8. package/lib/api/build/module.js.map +1 -1
  9. package/lib/api/build/providers/shared.js +1 -1
  10. package/lib/api/build/providers/shared.js.map +1 -1
  11. package/lib/api/index.d.ts +6 -2
  12. package/lib/api/index.js +3 -3
  13. package/lib/api/index.js.map +1 -1
  14. package/lib/api/shared/types/withConfig.d.ts +3 -2
  15. package/lib/api/start/providers/application/shared.js +1 -1
  16. package/lib/api/start/providers/application/shared.js.map +1 -1
  17. package/lib/api/start/providers/child-app/shared.js +8 -7
  18. package/lib/api/start/providers/child-app/shared.js.map +1 -1
  19. package/lib/api/start/providers/module/shared.js +14 -13
  20. package/lib/api/start/providers/module/shared.js.map +1 -1
  21. package/lib/api/start/utils/banner.js +3 -2
  22. package/lib/api/start/utils/banner.js.map +1 -1
  23. package/lib/api/start/utils/tips/tips.js +10 -8
  24. package/lib/api/start/utils/tips/tips.js.map +1 -1
  25. package/lib/api/start-prod/providers/application.js +5 -5
  26. package/lib/api/start-prod/providers/application.js.map +1 -1
  27. package/lib/api/start-prod/providers/child-app.js +2 -2
  28. package/lib/api/start-prod/providers/child-app.js.map +1 -1
  29. package/lib/api/start-prod/providers/shared.js +3 -3
  30. package/lib/api/start-prod/providers/shared.js.map +1 -1
  31. package/lib/builder/webpack/devServer/client.js +18 -15
  32. package/lib/builder/webpack/devServer/client.js.map +1 -1
  33. package/lib/builder/webpack/devServer/notifier.d.ts +2 -2
  34. package/lib/builder/webpack/devServer/notifier.js +3 -3
  35. package/lib/builder/webpack/devServer/notifier.js.map +1 -1
  36. package/lib/builder/webpack/devServer/pool/process/pool.js +3 -2
  37. package/lib/builder/webpack/devServer/pool/process/pool.js.map +1 -1
  38. package/lib/builder/webpack/devServer/pool/thread/pool.js +7 -0
  39. package/lib/builder/webpack/devServer/pool/thread/pool.js.map +1 -1
  40. package/lib/builder/webpack/devServer/server.js +7 -2
  41. package/lib/builder/webpack/devServer/server.js.map +1 -1
  42. package/lib/builder/webpack/providers/analyze/shared.js +3 -3
  43. package/lib/builder/webpack/providers/analyze/shared.js.map +1 -1
  44. package/lib/builder/webpack/providers/build/application/server.js.map +1 -1
  45. package/lib/builder/webpack/providers/build/client.js +3 -3
  46. package/lib/builder/webpack/providers/build/client.js.map +1 -1
  47. package/lib/builder/webpack/providers/build/server.js +1 -1
  48. package/lib/builder/webpack/providers/build/server.js.map +1 -1
  49. package/lib/builder/webpack/tokens.d.ts +313 -3
  50. package/lib/builder/webpack/tokens.js.map +1 -1
  51. package/lib/builder/webpack/utils/copyBuildFile.d.ts +2 -1
  52. package/lib/builder/webpack/utils/copyBuildFile.js +2 -3
  53. package/lib/builder/webpack/utils/copyBuildFile.js.map +1 -1
  54. package/lib/builder/webpack/utils/copyStatsJsonFile.d.ts +2 -1
  55. package/lib/builder/webpack/utils/copyStatsJsonFile.js +1 -1
  56. package/lib/builder/webpack/utils/copyStatsJsonFile.js.map +1 -1
  57. package/lib/cli/CLI.d.ts +2 -2
  58. package/lib/cli/CLI.js +2 -2
  59. package/lib/cli/CLI.js.map +1 -1
  60. package/lib/cli/index.js.map +1 -1
  61. package/lib/commands/analyze/command.d.ts +1 -1
  62. package/lib/commands/analyze/command.js.map +1 -1
  63. package/lib/commands/benchmark/command.d.ts +1 -1
  64. package/lib/commands/benchmark/command.js.map +1 -1
  65. package/lib/commands/build/command.d.ts +1 -1
  66. package/lib/commands/build/command.js.map +1 -1
  67. package/lib/commands/new/new.js +0 -1
  68. package/lib/commands/new/new.js.map +1 -1
  69. package/lib/commands/new/questions/packageManager.d.ts +1 -1
  70. package/lib/commands/new/questions/packageManager.js.map +1 -1
  71. package/lib/commands/new/questions/template.d.ts +1 -1
  72. package/lib/commands/new/questions/template.js.map +1 -1
  73. package/lib/commands/new/questions/testingFramework.d.ts +1 -1
  74. package/lib/commands/new/questions/testingFramework.js.map +1 -1
  75. package/lib/commands/new/questions/type.d.ts +1 -1
  76. package/lib/commands/new/questions/type.js.map +1 -1
  77. package/lib/commands/new/steps/initializationGit.d.ts +1 -1
  78. package/lib/commands/new/steps/initializationGit.js.map +1 -1
  79. package/lib/commands/start/command.d.ts +1 -1
  80. package/lib/commands/start/command.js.map +1 -1
  81. package/lib/commands/start-prod/command.d.ts +1 -1
  82. package/lib/commands/start-prod/command.js.map +1 -1
  83. package/lib/commands/static/application.js +4 -4
  84. package/lib/commands/static/application.js.map +1 -1
  85. package/lib/commands/static/command.d.ts +1 -1
  86. package/lib/commands/static/command.js.map +1 -1
  87. package/lib/commands/static/generate.js +2 -2
  88. package/lib/commands/static/generate.js.map +1 -1
  89. package/lib/commands/static/server.d.ts +2 -1
  90. package/lib/commands/static/server.js +1 -1
  91. package/lib/commands/static/server.js.map +1 -1
  92. package/lib/commands/static/staticServer.d.ts +2 -1
  93. package/lib/commands/static/staticServer.js +1 -1
  94. package/lib/commands/static/staticServer.js.map +1 -1
  95. package/lib/commands/update/updatePackageJson.js +3 -0
  96. package/lib/commands/update/updatePackageJson.js.map +1 -1
  97. package/lib/config/configManager.d.ts +12 -73
  98. package/lib/config/configManager.js +61 -92
  99. package/lib/config/configManager.js.map +1 -1
  100. package/lib/config/showConfig.d.ts +1 -1
  101. package/lib/config/showConfig.js +1 -1
  102. package/lib/config/showConfig.js.map +1 -1
  103. package/lib/config/validate.d.ts +5 -4
  104. package/lib/config/validate.js +2 -9
  105. package/lib/config/validate.js.map +1 -1
  106. package/lib/di/tokens/config.d.ts +106 -1
  107. package/lib/di/tokens/config.js.map +1 -1
  108. package/lib/external/config.d.ts +2 -2
  109. package/lib/library/babel/index.js +1 -0
  110. package/lib/library/babel/index.js.map +1 -1
  111. package/lib/library/swc/index.js +1 -1
  112. package/lib/library/swc/index.js.map +1 -1
  113. package/lib/library/webpack/application/client/common.js +6 -4
  114. package/lib/library/webpack/application/client/common.js.map +1 -1
  115. package/lib/library/webpack/application/client/dev.js +9 -8
  116. package/lib/library/webpack/application/client/dev.js.map +1 -1
  117. package/lib/library/webpack/application/client/prod/optimization/splitChunks.js +40 -39
  118. package/lib/library/webpack/application/client/prod/optimization/splitChunks.js.map +1 -1
  119. package/lib/library/webpack/application/client/prod.js +3 -4
  120. package/lib/library/webpack/application/client/prod.js.map +1 -1
  121. package/lib/library/webpack/application/server/common.js +5 -5
  122. package/lib/library/webpack/application/server/common.js.map +1 -1
  123. package/lib/library/webpack/application/server/dev.js +3 -6
  124. package/lib/library/webpack/application/server/dev.js.map +1 -1
  125. package/lib/library/webpack/application/server/prod.js +3 -4
  126. package/lib/library/webpack/application/server/prod.js.map +1 -1
  127. package/lib/library/webpack/blocks/apiResolve.js +1 -1
  128. package/lib/library/webpack/blocks/apiResolve.js.map +1 -1
  129. package/lib/library/webpack/blocks/configResolve.js +2 -2
  130. package/lib/library/webpack/blocks/configResolve.js.map +1 -1
  131. package/lib/library/webpack/blocks/configToEnv.js +5 -2
  132. package/lib/library/webpack/blocks/configToEnv.js.map +1 -1
  133. package/lib/library/webpack/blocks/css.d.ts +3 -1
  134. package/lib/library/webpack/blocks/css.js +17 -6
  135. package/lib/library/webpack/blocks/css.js.map +1 -1
  136. package/lib/library/webpack/blocks/extractCssPlugin.d.ts +4 -3
  137. package/lib/library/webpack/blocks/extractCssPlugin.js +4 -6
  138. package/lib/library/webpack/blocks/extractCssPlugin.js.map +1 -1
  139. package/lib/library/webpack/blocks/filesClient.d.ts +3 -2
  140. package/lib/library/webpack/blocks/filesClient.js +7 -7
  141. package/lib/library/webpack/blocks/filesClient.js.map +1 -1
  142. package/lib/library/webpack/blocks/filesServer.d.ts +2 -1
  143. package/lib/library/webpack/blocks/filesServer.js +3 -3
  144. package/lib/library/webpack/blocks/filesServer.js.map +1 -1
  145. package/lib/library/webpack/blocks/js.d.ts +2 -1
  146. package/lib/library/webpack/blocks/js.js +1 -1
  147. package/lib/library/webpack/blocks/js.js.map +1 -1
  148. package/lib/library/webpack/blocks/nodeClient.d.ts +2 -1
  149. package/lib/library/webpack/blocks/nodeClient.js +2 -2
  150. package/lib/library/webpack/blocks/nodeClient.js.map +1 -1
  151. package/lib/library/webpack/blocks/optimize.d.ts +2 -1
  152. package/lib/library/webpack/blocks/optimize.js +3 -3
  153. package/lib/library/webpack/blocks/optimize.js.map +1 -1
  154. package/lib/library/webpack/blocks/pagesResolve.js +1 -1
  155. package/lib/library/webpack/blocks/pagesResolve.js.map +1 -1
  156. package/lib/library/webpack/blocks/postcssAssets.d.ts +2 -1
  157. package/lib/library/webpack/blocks/postcssAssets.js +2 -2
  158. package/lib/library/webpack/blocks/postcssAssets.js.map +1 -1
  159. package/lib/library/webpack/blocks/serverInline.d.ts +2 -1
  160. package/lib/library/webpack/blocks/serverInline.js.map +1 -1
  161. package/lib/library/webpack/blocks/ts.d.ts +2 -1
  162. package/lib/library/webpack/blocks/ts.js.map +1 -1
  163. package/lib/library/webpack/child-app/client/common.d.ts +2 -2
  164. package/lib/library/webpack/child-app/client/common.js +1 -1
  165. package/lib/library/webpack/child-app/client/common.js.map +1 -1
  166. package/lib/library/webpack/child-app/client/dev.d.ts +2 -2
  167. package/lib/library/webpack/child-app/client/dev.js +6 -5
  168. package/lib/library/webpack/child-app/client/dev.js.map +1 -1
  169. package/lib/library/webpack/child-app/client/prod.d.ts +2 -2
  170. package/lib/library/webpack/child-app/client/prod.js.map +1 -1
  171. package/lib/library/webpack/child-app/common.d.ts +2 -2
  172. package/lib/library/webpack/child-app/common.js.map +1 -1
  173. package/lib/library/webpack/child-app/server/common.d.ts +2 -2
  174. package/lib/library/webpack/child-app/server/common.js +1 -1
  175. package/lib/library/webpack/child-app/server/common.js.map +1 -1
  176. package/lib/library/webpack/child-app/server/dev.d.ts +2 -2
  177. package/lib/library/webpack/child-app/server/dev.js.map +1 -1
  178. package/lib/library/webpack/child-app/server/prod.d.ts +2 -2
  179. package/lib/library/webpack/child-app/server/prod.js.map +1 -1
  180. package/lib/library/webpack/common/client/prod.d.ts +2 -1
  181. package/lib/library/webpack/common/client/prod.js +4 -5
  182. package/lib/library/webpack/common/client/prod.js.map +1 -1
  183. package/lib/library/webpack/common/main.d.ts +2 -1
  184. package/lib/library/webpack/common/main.js +3 -3
  185. package/lib/library/webpack/common/main.js.map +1 -1
  186. package/lib/library/webpack/common/server/prod.d.ts +2 -1
  187. package/lib/library/webpack/common/server/prod.js +4 -5
  188. package/lib/library/webpack/common/server/prod.js.map +1 -1
  189. package/lib/library/webpack/index.js +1 -2
  190. package/lib/library/webpack/index.js.map +1 -1
  191. package/lib/library/webpack/loaders/image-loader/index.d.ts +2 -1
  192. package/lib/library/webpack/loaders/image-loader/index.js.map +1 -1
  193. package/lib/library/webpack/loaders/pagesResolve.d.ts +10 -1
  194. package/lib/library/webpack/loaders/pagesResolve.js +4 -3
  195. package/lib/library/webpack/loaders/pagesResolve.js.map +1 -1
  196. package/lib/library/webpack/loaders/replaceContent.d.ts +6 -1
  197. package/lib/library/webpack/loaders/replaceContent.js +4 -3
  198. package/lib/library/webpack/loaders/replaceContent.js.map +1 -1
  199. package/lib/library/webpack/module/client/common.js +1 -1
  200. package/lib/library/webpack/module/client/common.js.map +1 -1
  201. package/lib/library/webpack/module/externals.d.ts +1 -1
  202. package/lib/library/webpack/module/externals.js.map +1 -1
  203. package/lib/library/webpack/module/resolveExternal.d.ts +1 -1
  204. package/lib/library/webpack/module/resolveExternal.js.map +1 -1
  205. package/lib/library/webpack/module/server/common.js +1 -1
  206. package/lib/library/webpack/module/server/common.js.map +1 -1
  207. package/lib/library/webpack/plugins/LazyModuleInitialization.d.ts +2 -2
  208. package/lib/library/webpack/plugins/LazyModuleInitialization.js +1 -0
  209. package/lib/library/webpack/plugins/LazyModuleInitialization.js.map +1 -1
  210. package/lib/library/webpack/plugins/WebpackBar/utils/index.d.ts +7 -7
  211. package/lib/library/webpack/plugins/WebpackBar/utils/index.js.map +1 -1
  212. package/lib/library/webpack/plugins/WebpackBar/utils/webpack.d.ts +2 -2
  213. package/lib/library/webpack/plugins/WebpackBar/utils/webpack.js.map +1 -1
  214. package/lib/library/webpack/types/webpack.d.ts +2 -2
  215. package/lib/library/webpack/utils/files.d.ts +4 -3
  216. package/lib/library/webpack/utils/files.js +2 -2
  217. package/lib/library/webpack/utils/files.js.map +1 -1
  218. package/lib/library/webpack/utils/transpiler.d.ts +3 -2
  219. package/lib/library/webpack/utils/transpiler.js +2 -2
  220. package/lib/library/webpack/utils/transpiler.js.map +1 -1
  221. package/lib/library/webpack/utils/workersPool.d.ts +3 -6
  222. package/lib/library/webpack/utils/workersPool.js +1 -1
  223. package/lib/library/webpack/utils/workersPool.js.map +1 -1
  224. package/lib/models/config.d.ts +2 -3
  225. package/lib/models/config.js +32 -3
  226. package/lib/models/config.js.map +1 -1
  227. package/lib/schema/ConfigSchema.d.ts +13 -4
  228. package/lib/schema/autogeneratedSchema.json +1808 -2074
  229. package/lib/typings/configEntry/application.d.ts +81 -86
  230. package/lib/typings/configEntry/child-app.d.ts +10 -29
  231. package/lib/typings/configEntry/cli.d.ts +254 -0
  232. package/lib/typings/configEntry/{CheckAsyncTsConfig.js → cli.js} +1 -1
  233. package/lib/typings/configEntry/cli.js.map +1 -0
  234. package/lib/typings/configEntry/common.d.ts +16 -276
  235. package/lib/typings/configEntry/common.js +15 -0
  236. package/lib/typings/configEntry/common.js.map +1 -1
  237. package/lib/typings/configEntry/module.d.ts +10 -29
  238. package/lib/typings/configEntry/package.d.ts +2 -1
  239. package/lib/ui/commander.js +1 -1
  240. package/lib/ui/commander.js.map +1 -1
  241. package/lib/utils/applyTemplate.js.map +1 -1
  242. package/lib/utils/safeRequire.js +5 -1
  243. package/lib/utils/safeRequire.js.map +1 -1
  244. package/lib/utils/webpackBuild.d.ts +2 -1
  245. package/lib/utils/webpackBuild.js +3 -3
  246. package/lib/utils/webpackBuild.js.map +1 -1
  247. package/package.json +13 -9
  248. package/schema.json +1802 -2068
  249. package/src/api/analyze/providers/shared.ts +3 -2
  250. package/src/api/benchmark/__integration__/__fixtures__/tramvai.json +1 -8
  251. package/src/api/benchmark/index.ts +1 -1
  252. package/src/api/build/__integration__/__fixtures__/app/App.tsx +0 -1
  253. package/src/api/build/__integration__/__fixtures__/app/index.tsx +14 -8
  254. package/src/api/build/__integration__/__fixtures__/app/server.tsx +0 -1
  255. package/src/api/build/__integration__/__fixtures__/tramvai.json +1 -10
  256. package/src/api/build/__integration__/build.test.ts +4 -13
  257. package/src/api/build/child-app.ts +4 -4
  258. package/src/api/build/module.ts +2 -4
  259. package/src/api/build/providers/shared.ts +2 -2
  260. package/src/api/index.ts +6 -2
  261. package/src/api/shared/types/withConfig.ts +5 -6
  262. package/src/api/start/__integration__/__fixtures__/app/index.tsx +11 -7
  263. package/src/api/start/__integration__/__fixtures__/tramvai.json +6 -17
  264. package/src/api/start/__integration__/start.test.ts +1 -12
  265. package/src/api/start/providers/application/shared.ts +2 -2
  266. package/src/api/start/providers/child-app/shared.ts +9 -14
  267. package/src/api/start/providers/module/shared.ts +19 -30
  268. package/src/api/start/utils/banner.ts +3 -2
  269. package/src/api/start/utils/tips/tips.ts +11 -8
  270. package/src/api/start-prod/providers/application.ts +10 -14
  271. package/src/api/start-prod/providers/child-app.ts +4 -5
  272. package/src/api/start-prod/providers/shared.ts +4 -8
  273. package/src/builder/webpack/devServer/client.ts +22 -15
  274. package/src/builder/webpack/devServer/notifier.ts +6 -6
  275. package/src/builder/webpack/devServer/pool/process/pool.ts +3 -3
  276. package/src/builder/webpack/devServer/pool/thread/pool.ts +7 -0
  277. package/src/builder/webpack/devServer/server.ts +13 -6
  278. package/src/builder/webpack/providers/analyze/shared.ts +3 -2
  279. package/src/builder/webpack/providers/build/application/server.ts +5 -1
  280. package/src/builder/webpack/providers/build/client.ts +3 -2
  281. package/src/builder/webpack/providers/build/server.ts +1 -1
  282. package/src/builder/webpack/tokens.ts +4 -3
  283. package/src/builder/webpack/utils/copyBuildFile.ts +4 -5
  284. package/src/builder/webpack/utils/copyStatsJsonFile.ts +5 -2
  285. package/src/cli/CLI.ts +6 -6
  286. package/src/cli/index.ts +1 -1
  287. package/src/commands/analyze/command.ts +1 -1
  288. package/src/commands/benchmark/command.ts +1 -1
  289. package/src/commands/build/command.ts +2 -2
  290. package/src/commands/new/new.ts +0 -1
  291. package/src/commands/new/questions/packageManager.ts +1 -1
  292. package/src/commands/new/questions/template.ts +1 -1
  293. package/src/commands/new/questions/testingFramework.ts +1 -1
  294. package/src/commands/new/questions/type.ts +1 -1
  295. package/src/commands/new/steps/initializationGit.ts +1 -1
  296. package/src/commands/new/templates/app/monorepo/tramvai.json.hbs +6 -32
  297. package/src/commands/new/templates/app/multirepo/tramvai.json.hbs +6 -23
  298. package/src/commands/new/templates/child-app/monorepo/tramvai.json.hbs +3 -18
  299. package/src/commands/new/templates/child-app/multirepo/tramvai.json.hbs +3 -9
  300. package/src/commands/start/command.ts +2 -2
  301. package/src/commands/start-prod/command.ts +2 -2
  302. package/src/commands/static/application.ts +5 -14
  303. package/src/commands/static/command.ts +1 -1
  304. package/src/commands/static/generate.ts +2 -2
  305. package/src/commands/static/server.ts +5 -2
  306. package/src/commands/static/staticServer.ts +6 -3
  307. package/src/commands/update/updatePackageJson.ts +6 -2
  308. package/src/config/configManager.spec.ts +49 -0
  309. package/src/config/configManager.ts +123 -197
  310. package/src/config/showConfig.ts +2 -2
  311. package/src/config/validate.ts +14 -25
  312. package/src/di/tokens/config.ts +2 -1
  313. package/src/library/babel/index.ts +1 -0
  314. package/src/library/swc/__integration__/swc.build.test.ts +3 -21
  315. package/src/library/swc/__integration__/swc.start.test.ts +3 -21
  316. package/src/library/swc/index.ts +1 -1
  317. package/src/library/webpack/application/client/common.ts +7 -7
  318. package/src/library/webpack/application/client/dev.ts +9 -9
  319. package/src/library/webpack/application/client/prod/optimization/splitChunks.ts +43 -44
  320. package/src/library/webpack/application/client/prod.ts +3 -5
  321. package/src/library/webpack/application/server/common.ts +5 -8
  322. package/src/library/webpack/application/server/dev.ts +5 -6
  323. package/src/library/webpack/application/server/prod.ts +3 -9
  324. package/src/library/webpack/blocks/apiResolve.ts +1 -1
  325. package/src/library/webpack/blocks/configResolve.ts +2 -2
  326. package/src/library/webpack/blocks/configToEnv.ts +5 -2
  327. package/src/library/webpack/blocks/css.ts +26 -17
  328. package/src/library/webpack/blocks/extractCssPlugin.ts +11 -10
  329. package/src/library/webpack/blocks/filesClient.ts +52 -50
  330. package/src/library/webpack/blocks/filesServer.ts +4 -3
  331. package/src/library/webpack/blocks/js.ts +3 -2
  332. package/src/library/webpack/blocks/nodeClient.ts +4 -3
  333. package/src/library/webpack/blocks/optimize.ts +5 -6
  334. package/src/library/webpack/blocks/pagesResolve.ts +1 -1
  335. package/src/library/webpack/blocks/postcssAssets.ts +6 -7
  336. package/src/library/webpack/blocks/serverInline.ts +2 -1
  337. package/src/library/webpack/blocks/ts.ts +2 -1
  338. package/src/library/webpack/child-app/client/common.ts +3 -3
  339. package/src/library/webpack/child-app/client/dev.ts +8 -8
  340. package/src/library/webpack/child-app/client/prod.ts +2 -2
  341. package/src/library/webpack/child-app/common.ts +2 -2
  342. package/src/library/webpack/child-app/server/common.ts +3 -3
  343. package/src/library/webpack/child-app/server/dev.ts +2 -2
  344. package/src/library/webpack/child-app/server/prod.ts +2 -2
  345. package/src/library/webpack/common/client/prod.ts +10 -6
  346. package/src/library/webpack/common/main.ts +9 -4
  347. package/src/library/webpack/common/server/prod.ts +10 -6
  348. package/src/library/webpack/index.ts +2 -3
  349. package/src/library/webpack/loaders/image-loader/index.ts +2 -1
  350. package/src/library/webpack/loaders/pagesResolve.ts +17 -5
  351. package/src/library/webpack/loaders/replaceContent.ts +11 -2
  352. package/src/library/webpack/module/client/common.ts +1 -1
  353. package/src/library/webpack/module/externals.ts +1 -1
  354. package/src/library/webpack/module/resolveExternal.ts +1 -1
  355. package/src/library/webpack/module/server/common.ts +1 -1
  356. package/src/library/webpack/plugins/LazyModuleInitialization.ts +6 -1
  357. package/src/library/webpack/plugins/WebpackBar/utils/index.ts +8 -8
  358. package/src/library/webpack/plugins/WebpackBar/utils/webpack.ts +1 -1
  359. package/src/library/webpack/types/webpack.ts +2 -2
  360. package/src/library/webpack/utils/files.ts +4 -3
  361. package/src/library/webpack/utils/transpiler.ts +6 -11
  362. package/src/library/webpack/utils/workersPool.ts +6 -9
  363. package/src/models/config.spec.ts +352 -0
  364. package/src/models/config.ts +41 -9
  365. package/src/schema/ConfigSchema.ts +15 -4
  366. package/src/schema/autogeneratedSchema.json +1808 -2074
  367. package/src/schema/tramvai.spec.ts +89 -184
  368. package/src/typings/configEntry/application.ts +85 -87
  369. package/src/typings/configEntry/child-app.ts +10 -30
  370. package/src/typings/configEntry/cli.ts +271 -0
  371. package/src/typings/configEntry/common.ts +26 -278
  372. package/src/typings/configEntry/module.ts +11 -30
  373. package/src/typings/configEntry/package.ts +3 -1
  374. package/src/ui/commander.ts +1 -1
  375. package/src/utils/applyTemplate.ts +2 -2
  376. package/src/utils/safeRequire.ts +6 -1
  377. package/src/utils/webpackBuild.ts +4 -3
  378. package/lib/library/webpack/plugins/DedupePlugin/DedupePlugin.d.ts +0 -37
  379. package/lib/library/webpack/plugins/DedupePlugin/DedupePlugin.js +0 -241
  380. package/lib/library/webpack/plugins/DedupePlugin/DedupePlugin.js.map +0 -1
  381. package/lib/library/webpack/plugins/DedupePlugin/index.d.ts +0 -1
  382. package/lib/library/webpack/plugins/DedupePlugin/index.js +0 -6
  383. package/lib/library/webpack/plugins/DedupePlugin/index.js.map +0 -1
  384. package/lib/typings/configEntry/CheckAsyncTsConfig.d.ts +0 -13
  385. package/lib/typings/configEntry/CheckAsyncTsConfig.js.map +0 -1
  386. package/src/library/webpack/plugins/DedupePlugin/DedupePlugin.spec.ts +0 -95
  387. package/src/library/webpack/plugins/DedupePlugin/DedupePlugin.ts +0 -307
  388. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-1/index.js +0 -3
  389. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-1/node_modules/package-dep/index.js +0 -1
  390. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-1/node_modules/package-dep/package.json +0 -7
  391. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-1/package.json +0 -7
  392. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-2/index.js +0 -3
  393. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-2/node_modules/package-dep/index.js +0 -1
  394. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-2/node_modules/package-dep/package.json +0 -7
  395. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-2/package.json +0 -7
  396. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-3/index.js +0 -3
  397. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-3/node_modules/package-dep/index.js +0 -1
  398. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-3/node_modules/package-dep/package.json +0 -7
  399. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-3/package.json +0 -7
  400. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-dep/index.js +0 -1
  401. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-dep/package.json +0 -7
  402. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-esm-1/index.js +0 -3
  403. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-esm-1/node_modules/package-esm-dep/index.js +0 -1
  404. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-esm-1/node_modules/package-esm-dep/package.json +0 -8
  405. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-esm-1/package.json +0 -8
  406. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-esm-2/index.js +0 -3
  407. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-esm-2/node_modules/package-esm-dep/index.js +0 -1
  408. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-esm-2/node_modules/package-esm-dep/package.json +0 -8
  409. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/node_modules/package-esm-2/package.json +0 -8
  410. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/package-lock.json +0 -0
  411. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/package.json +0 -14
  412. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/src/index.js +0 -9
  413. package/src/library/webpack/plugins/DedupePlugin/__fixtures__/dedupe/tramvai.json +0 -67
  414. package/src/library/webpack/plugins/DedupePlugin/__integration__/DedupePlugin.test.ts +0 -90
  415. package/src/library/webpack/plugins/DedupePlugin/index.ts +0 -1
  416. package/src/typings/configEntry/CheckAsyncTsConfig.ts +0 -15
package/schema.json CHANGED
@@ -24,360 +24,321 @@
24
24
  }
25
25
  },
26
26
  "then": {
27
+ "additionalProperties": false,
27
28
  "type": "object",
28
29
  "properties": {
30
+ "name": {
31
+ "title": "name of the project",
32
+ "type": "string"
33
+ },
34
+ "root": {
35
+ "title": "path to the root directory relative to the tramvai.json",
36
+ "type": "string"
37
+ },
29
38
  "type": {
30
39
  "type": "string",
31
40
  "enum": [
32
41
  "application"
33
42
  ]
34
43
  },
35
- "commands": {
44
+ "polyfill": {
45
+ "title": "Path to polyfill file. By default, looks for the `src/polyfill`",
46
+ "type": "string"
47
+ },
48
+ "serverApiDir": {
49
+ "title": "Path to folder with papi handlers",
50
+ "default": "src/api",
51
+ "type": "string"
52
+ },
53
+ "output": {
54
+ "title": "Controls the cli output locations",
36
55
  "default": {},
37
56
  "type": "object",
38
57
  "properties": {
39
- "build": {
40
- "default": {},
58
+ "server": {
59
+ "title": "Path to build assets for server",
60
+ "default": "dist/server",
61
+ "type": "string"
62
+ },
63
+ "client": {
64
+ "title": "Path to build assets for client",
65
+ "default": "dist/client",
66
+ "type": "string"
67
+ },
68
+ "static": {
69
+ "title": "Path to build static assets",
70
+ "default": "dist/static",
71
+ "type": "string"
72
+ }
73
+ },
74
+ "additionalProperties": false
75
+ },
76
+ "modern": {
77
+ "title": "Enable build for modern browsers",
78
+ "default": true,
79
+ "type": "boolean"
80
+ },
81
+ "fileSystemPages": {
82
+ "title": "File-System Routing feature",
83
+ "default": {},
84
+ "type": "object",
85
+ "properties": {
86
+ "enabled": {
87
+ "title": "Read pages from file system",
88
+ "default": false,
89
+ "type": "boolean"
90
+ },
91
+ "routesDir": {
92
+ "title": "Folder with pages from which static routers are generated",
93
+ "default": "routes",
94
+ "anyOf": [
95
+ {
96
+ "enum": [
97
+ false
98
+ ],
99
+ "type": "boolean"
100
+ },
101
+ {
102
+ "type": "string"
103
+ }
104
+ ]
105
+ },
106
+ "pagesDir": {
107
+ "title": "Folder with components which can be manually added to static routers",
108
+ "default": "pages",
109
+ "anyOf": [
110
+ {
111
+ "enum": [
112
+ false
113
+ ],
114
+ "type": "boolean"
115
+ },
116
+ {
117
+ "type": "string"
118
+ }
119
+ ]
120
+ }
121
+ },
122
+ "additionalProperties": false
123
+ },
124
+ "splitChunks": {
125
+ "title": "Configure the options on webpack splitChunks",
126
+ "default": {},
127
+ "type": "object",
128
+ "properties": {
129
+ "mode": {
130
+ "default": "granularChunks",
131
+ "enum": [
132
+ "commonChunk",
133
+ false,
134
+ "granularChunks"
135
+ ]
136
+ },
137
+ "granularChunksSplitNumber": {
138
+ "title": "Move module to shared chunk if used at least as many times in other chunks",
139
+ "default": 2,
140
+ "type": "number"
141
+ },
142
+ "granularChunksMinSize": {
143
+ "title": "Minimum shared chunk size in bytes",
144
+ "default": 20000,
145
+ "type": "number"
146
+ },
147
+ "commonChunkSplitNumber": {
148
+ "title": "`@deprecated will be removed in next major release` Move module to common chunk if used at least as many times in other chunks",
149
+ "default": 3,
150
+ "type": "number"
151
+ }
152
+ },
153
+ "additionalProperties": false
154
+ },
155
+ "checkAsyncTs": {
156
+ "title": "Configuration for fork-ts-checker-webpack-plugin",
157
+ "default": false,
158
+ "anyOf": [
159
+ {
41
160
  "type": "object",
42
161
  "properties": {
43
- "options": {
44
- "default": {},
45
- "type": "object",
46
- "properties": {
47
- "vendor": {
48
- "title": "`@deprecated` Vendor is not used anymore",
49
- "type": "string"
50
- },
51
- "polyfill": {
52
- "title": "Path to polyfill file",
53
- "default": "",
54
- "type": "string"
55
- },
56
- "server": {
57
- "title": "Path to server entry point",
58
- "default": "src/server",
59
- "type": "string"
60
- },
61
- "serverApiDir": {
62
- "title": "Path to folder with papi handlers",
63
- "default": "src/api",
64
- "type": "string"
65
- },
66
- "outputServer": {
67
- "title": "Path to build assets for server",
68
- "default": "dist/server",
69
- "type": "string"
70
- },
71
- "outputClient": {
72
- "title": "Path to build assets for client",
73
- "default": "dist/client",
74
- "type": "string"
75
- },
76
- "outputStatic": {
77
- "title": "Path to build static assets",
78
- "default": "dist/static",
79
- "type": "string"
80
- }
81
- },
82
- "additionalProperties": false
162
+ "failOnBuild": {
163
+ "description": "при включении этого флага в build-сборку добавляется проверка типов\nпри невалидных типах сборка падает",
164
+ "type": "boolean"
83
165
  },
84
- "configurations": {
85
- "default": {},
86
- "additionalProperties": false,
166
+ "pluginOptions": {
167
+ "description": "дополнительные опции",
87
168
  "type": "object",
88
169
  "properties": {
89
- "modern": {
90
- "title": "Enable production build for modern browsers",
91
- "default": true,
92
- "type": "boolean"
93
- },
94
- "dedupe": {
95
- "title": "Enable DedupePlugin",
96
- "default": "equality",
97
- "enum": [
98
- "equality",
99
- false,
100
- "semver"
101
- ]
102
- },
103
- "dedupeIgnore": {
104
- "title": "Sets ignore to DedupePlugin",
105
- "type": "array",
106
- "items": {
107
- "type": "string"
108
- }
109
- },
110
- "removeTypeofWindow": {
111
- "title": "Enable replacing `typeof window` expression",
112
- "default": true,
113
- "type": "boolean"
114
- },
115
- "sourceMap": {
116
- "title": "Enable source maps in production build",
117
- "default": false,
118
- "type": "boolean"
119
- },
120
- "sourceMapServer": {
121
- "title": "Enable source maps for server assets in production build",
122
- "default": false,
123
- "type": "boolean"
124
- },
125
- "terserParallel": {
126
- "title": "Configuration for enabling parallel compression for terser plugin",
127
- "default": true,
128
- "type": "boolean"
129
- },
130
- "excludesPresetEnv": {
131
- "title": "List of modules to exclude from",
132
- "type": "array",
133
- "items": {
134
- "type": "string"
135
- }
136
- },
137
- "threadLoader": {
138
- "title": "thread-loader config",
139
- "additionalProperties": true,
140
- "type": "object"
141
- },
142
- "definePlugin": {
143
- "title": "Define plugin config",
144
- "default": {
145
- "prod": {},
146
- "dev": {}
147
- },
148
- "additionalProperties": true,
149
- "type": "object"
150
- },
151
- "generateDataQaTag": {
152
- "default": false,
153
- "type": "boolean"
154
- },
155
- "enableFillActionNamePlugin": {
156
- "default": false,
157
- "type": "boolean"
158
- },
159
- "cssMinimize": {
160
- "title": "Set minimizer for css",
161
- "type": "string",
162
- "enum": [
163
- "csso"
164
- ]
165
- },
166
- "postcss": {
167
- "default": {
168
- "config": "postcss.config"
169
- },
170
- "type": "object",
171
- "properties": {
172
- "config": {
173
- "title": "Path to postcss config file",
174
- "type": "string"
175
- },
176
- "cssLocalIdentName": {
177
- "title": "CSS identifiers build algorythm",
178
- "type": "string"
179
- },
180
- "cssLocalIdentNameDev": {
181
- "title": "CSS identifiers build algorythm for development buld",
182
- "type": "string"
183
- },
184
- "cssLocalIdentNameProd": {
185
- "title": "CSS identifiers build algorythm for production build",
186
- "type": "string"
187
- },
188
- "assetsConfig": {
189
- "title": "Path to postcss config file for assets",
190
- "type": "string"
191
- }
192
- },
193
- "additionalProperties": false
194
- },
195
- "alias": {
196
- "title": "`@@deprecated @tramvai/cli now supports baseUrl and paths from the app's tsconfig.json file.\nJust check or add configuration to your tsconfig file and remove alias from tramvai.json`",
197
- "additionalProperties": true,
198
- "type": "object"
199
- },
200
- "svgo": {
201
- "title": "svgo-loader options",
202
- "type": "object",
203
- "properties": {
204
- "plugins": {
205
- "title": "svgo plugins",
206
- "type": "array",
207
- "items": {
208
- "type": "object",
209
- "additionalProperties": false
210
- }
211
- }
212
- },
213
- "additionalProperties": false
214
- },
215
- "imageOptimization": {
216
- "title": "Settings for image-webpack-loader",
217
- "type": "object",
218
- "properties": {
219
- "enabled": {
220
- "title": "Enable image-webpack-loader",
221
- "type": "boolean"
222
- },
223
- "options": {
224
- "title": "Pass options to image-webpack-loader",
225
- "additionalProperties": true,
226
- "type": "object"
227
- }
228
- },
229
- "additionalProperties": false
230
- },
231
- "transpileOnlyModernLibs": {
232
- "title": "transpile libs based only on @tinkoff/is-modern-lib",
233
- "default": true,
170
+ "async": {
234
171
  "type": "boolean"
235
172
  },
236
- "webpackResolveAlias": {
237
- "title": "Browser package resolve aliases. E.g. { \"stream\": \"stream-browserify\" }",
238
- "additionalProperties": true,
239
- "type": "object"
240
- },
241
- "webpackProvide": {
242
- "title": "Browser packages to provide with ProvidePlugin. E.g. { \"Buffer\": [\"buffer\", \"Buffer\"] }",
243
- "additionalProperties": true,
244
- "type": "object"
245
- },
246
- "fileSystemPages": {
247
- "title": "experimental settings for File-System Routing feature",
248
- "default": {},
249
- "type": "object",
250
- "properties": {
251
- "enable": {
252
- "title": "Read pages from file system",
253
- "default": false,
254
- "type": "boolean"
255
- },
256
- "routesDir": {
257
- "title": "Folder with pages from which static routers are generated",
258
- "default": "routes",
259
- "anyOf": [
260
- {
261
- "enum": [
262
- false
263
- ],
264
- "type": "boolean"
265
- },
266
- {
267
- "type": "string"
268
- }
269
- ]
270
- },
271
- "pagesDir": {
272
- "title": "Folder with components which can be manually added to static routers",
273
- "default": "pages",
274
- "anyOf": [
275
- {
276
- "enum": [
277
- false
278
- ],
279
- "type": "boolean"
280
- },
281
- {
282
- "type": "string"
283
- }
284
- ]
285
- }
286
- },
287
- "additionalProperties": false
288
- },
289
- "experiments": {
290
- "title": "Experimental settings",
291
- "default": {},
292
- "type": "object",
293
- "properties": {
294
- "webpack": {
295
- "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
296
- "default": {},
297
- "additionalProperties": false,
173
+ "typescript": {
174
+ "anyOf": [
175
+ {
298
176
  "type": "object",
299
177
  "properties": {
300
- "asyncWebAssembly": {
301
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
178
+ "enabled": {
302
179
  "type": "boolean"
303
180
  },
304
- "backCompat": {
305
- "title": "Enable backward compatibility with webpack previous major versions",
306
- "default": false,
307
- "type": "boolean"
181
+ "memoryLimit": {
182
+ "type": "number"
308
183
  },
309
- "cacheUnaffected": {
310
- "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
311
- "default": true,
312
- "type": "boolean"
184
+ "configFile": {
185
+ "type": "string"
313
186
  },
314
- "futureDefaults": {
315
- "description": "Apply defaults of next major version.",
316
- "type": "boolean"
187
+ "configOverwrite": {
188
+ "type": "object",
189
+ "properties": {
190
+ "extends": {
191
+ "type": "string"
192
+ },
193
+ "compilerOptions": {
194
+ "type": "object",
195
+ "properties": {},
196
+ "additionalProperties": true
197
+ },
198
+ "include": {
199
+ "type": "array",
200
+ "items": {
201
+ "type": "string"
202
+ }
203
+ },
204
+ "exclude": {
205
+ "type": "array",
206
+ "items": {
207
+ "type": "string"
208
+ }
209
+ },
210
+ "files": {
211
+ "type": "array",
212
+ "items": {
213
+ "type": "string"
214
+ }
215
+ },
216
+ "references": {
217
+ "type": "array",
218
+ "items": {
219
+ "type": "object",
220
+ "properties": {
221
+ "path": {
222
+ "type": "string"
223
+ },
224
+ "prepend": {
225
+ "type": "boolean"
226
+ }
227
+ },
228
+ "additionalProperties": false
229
+ }
230
+ }
231
+ },
232
+ "additionalProperties": false
317
233
  },
318
- "layers": {
319
- "description": "Enable module layers.",
320
- "type": "boolean"
234
+ "context": {
235
+ "type": "string"
321
236
  },
322
- "outputModule": {
323
- "description": "Allow output javascript files as module source type.",
237
+ "build": {
324
238
  "type": "boolean"
325
239
  },
326
- "syncWebAssembly": {
327
- "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
328
- "type": "boolean"
240
+ "mode": {
241
+ "enum": [
242
+ "readonly",
243
+ "write-dts",
244
+ "write-references",
245
+ "write-tsbuildinfo"
246
+ ],
247
+ "type": "string"
329
248
  },
330
- "topLevelAwait": {
331
- "description": "Allow using top-level-await in EcmaScript Modules.",
332
- "type": "boolean"
249
+ "diagnosticOptions": {
250
+ "type": "object",
251
+ "properties": {
252
+ "syntactic": {
253
+ "type": "boolean"
254
+ },
255
+ "semantic": {
256
+ "type": "boolean"
257
+ },
258
+ "declaration": {
259
+ "type": "boolean"
260
+ },
261
+ "global": {
262
+ "type": "boolean"
263
+ }
264
+ },
265
+ "additionalProperties": false
333
266
  },
334
- "css": {
335
- "description": "Enable css support.",
336
- "anyOf": [
337
- {
338
- "description": "Options for css handling.",
339
- "type": "object",
340
- "properties": {
341
- "exportsOnly": {
342
- "description": "Avoid generating and loading a stylesheet and only embed exports from css into output javascript files.",
267
+ "extensions": {
268
+ "type": "object",
269
+ "properties": {
270
+ "vue": {
271
+ "anyOf": [
272
+ {
273
+ "type": "object",
274
+ "properties": {
275
+ "enabled": {
276
+ "type": "boolean"
277
+ },
278
+ "compiler": {
279
+ "type": "string"
280
+ }
281
+ },
282
+ "additionalProperties": false
283
+ },
284
+ {
343
285
  "type": "boolean"
344
286
  }
345
- },
346
- "additionalProperties": false
347
- },
348
- {
349
- "type": "boolean"
287
+ ]
350
288
  }
351
- ]
352
- }
353
- }
354
- },
355
- "minicss": {
356
- "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
357
- "default": {},
358
- "type": "object",
359
- "properties": {
360
- "useImportModule": {
361
- "title": "Use a new webpack API to execute modules instead of child compilers. This improves performance and memory usage a lot.",
362
- "default": true,
363
- "type": "boolean"
289
+ },
290
+ "additionalProperties": false
291
+ },
292
+ "profile": {
293
+ "type": "boolean"
294
+ },
295
+ "typescriptPath": {
296
+ "type": "string"
364
297
  }
365
298
  },
366
299
  "additionalProperties": false
367
300
  },
368
- "transpilation": {
369
- "title": "experimental settings for code transpilation",
370
- "default": {},
301
+ {
302
+ "type": "boolean"
303
+ }
304
+ ]
305
+ },
306
+ "eslint": {
307
+ "type": "object",
308
+ "properties": {
309
+ "files": {
310
+ "anyOf": [
311
+ {
312
+ "type": "array",
313
+ "items": {
314
+ "type": "string"
315
+ }
316
+ },
317
+ {
318
+ "type": "string"
319
+ }
320
+ ]
321
+ },
322
+ "enabled": {
323
+ "type": "boolean"
324
+ },
325
+ "memoryLimit": {
326
+ "type": "number"
327
+ },
328
+ "options": {
371
329
  "type": "object",
372
330
  "properties": {
373
- "loader": {
374
- "title": "specify loader to transpile js-ts code",
375
- "default": "babel",
376
- "enum": [
377
- "babel",
378
- "swc"
379
- ],
331
+ "cwd": {
380
332
  "type": "string"
333
+ },
334
+ "extensions": {
335
+ "type": "array",
336
+ "items": {
337
+ "type": "string"
338
+ }
339
+ },
340
+ "fix": {
341
+ "type": "boolean"
381
342
  }
382
343
  },
383
344
  "additionalProperties": false
@@ -385,506 +346,52 @@
385
346
  },
386
347
  "additionalProperties": false
387
348
  },
388
- "granularChunks": {
389
- "title": "Separate one common chunk to many small dynamic chunks",
390
- "default": true,
391
- "type": "boolean"
392
- },
393
- "granularChunksSplitNumber": {
394
- "title": "Move module to shared chunk if used at least as many times in other chunks",
395
- "default": 2,
396
- "type": "number"
397
- },
398
- "granularChunksMinSize": {
399
- "title": "Minimum shared chunk size in bytes",
400
- "default": 20000,
401
- "type": "number"
402
- },
403
- "commonChunk": {
404
- "title": "Enable auto chunk splitting (`granularChunks` option alternative)",
405
- "default": false,
406
- "type": "boolean"
407
- },
408
- "commonChunkSplitNumber": {
409
- "title": "Move module to common chunk if used at least as many times in other chunks",
410
- "default": 3,
411
- "type": "number"
412
- },
413
- "checkAsyncTs": {
414
- "title": "Configuration for fork-ts-checker-webpack-plugin",
415
- "default": false,
349
+ "formatter": {
416
350
  "anyOf": [
351
+ {
352
+ "type": "object",
353
+ "additionalProperties": false
354
+ },
417
355
  {
418
356
  "type": "object",
419
357
  "properties": {
420
- "failOnBuild": {
421
- "description": "при включении этого флага в build-сборку добавляется проверка типов\nпри невалидных типах сборка падает",
422
- "type": "boolean"
358
+ "type": {
359
+ "anyOf": [
360
+ {
361
+ "type": "object",
362
+ "additionalProperties": false
363
+ },
364
+ {
365
+ "enum": [
366
+ "basic",
367
+ "codeframe"
368
+ ],
369
+ "type": "string"
370
+ }
371
+ ]
423
372
  },
424
- "pluginOptions": {
425
- "description": "дополнительные опции",
373
+ "options": {
426
374
  "type": "object",
427
375
  "properties": {
428
- "async": {
376
+ "highlightCode": {
377
+ "description": "Syntax highlight the code as JavaScript for terminals. default: false",
429
378
  "type": "boolean"
430
379
  },
431
- "typescript": {
432
- "anyOf": [
433
- {
434
- "type": "object",
435
- "properties": {
436
- "enabled": {
437
- "type": "boolean"
438
- },
439
- "memoryLimit": {
440
- "type": "number"
441
- },
442
- "configFile": {
443
- "type": "string"
444
- },
445
- "configOverwrite": {
446
- "type": "object",
447
- "properties": {
448
- "extends": {
449
- "type": "string"
450
- },
451
- "compilerOptions": {
452
- "type": "object",
453
- "properties": {},
454
- "additionalProperties": true
455
- },
456
- "include": {
457
- "type": "array",
458
- "items": {
459
- "type": "string"
460
- }
461
- },
462
- "exclude": {
463
- "type": "array",
464
- "items": {
465
- "type": "string"
466
- }
467
- },
468
- "files": {
469
- "type": "array",
470
- "items": {
471
- "type": "string"
472
- }
473
- },
474
- "references": {
475
- "type": "array",
476
- "items": {
477
- "type": "object",
478
- "properties": {
479
- "path": {
480
- "type": "string"
481
- },
482
- "prepend": {
483
- "type": "boolean"
484
- }
485
- },
486
- "additionalProperties": false,
487
- "required": [
488
- "path"
489
- ]
490
- }
491
- }
492
- },
493
- "additionalProperties": false
494
- },
495
- "context": {
496
- "type": "string"
497
- },
498
- "build": {
499
- "type": "boolean"
500
- },
501
- "mode": {
502
- "enum": [
503
- "readonly",
504
- "write-dts",
505
- "write-references",
506
- "write-tsbuildinfo"
507
- ],
508
- "type": "string"
509
- },
510
- "diagnosticOptions": {
511
- "type": "object",
512
- "properties": {
513
- "syntactic": {
514
- "type": "boolean"
515
- },
516
- "semantic": {
517
- "type": "boolean"
518
- },
519
- "declaration": {
520
- "type": "boolean"
521
- },
522
- "global": {
523
- "type": "boolean"
524
- }
525
- },
526
- "additionalProperties": false
527
- },
528
- "extensions": {
529
- "type": "object",
530
- "properties": {
531
- "vue": {
532
- "anyOf": [
533
- {
534
- "type": "object",
535
- "properties": {
536
- "enabled": {
537
- "type": "boolean"
538
- },
539
- "compiler": {
540
- "type": "string"
541
- }
542
- },
543
- "additionalProperties": false
544
- },
545
- {
546
- "type": "boolean"
547
- }
548
- ]
549
- }
550
- },
551
- "additionalProperties": false
552
- },
553
- "profile": {
554
- "type": "boolean"
555
- },
556
- "typescriptPath": {
557
- "type": "string"
558
- }
559
- },
560
- "additionalProperties": false
561
- },
562
- {
563
- "type": "boolean"
564
- }
565
- ]
566
- },
567
- "eslint": {
568
- "type": "object",
569
- "properties": {
570
- "files": {
571
- "anyOf": [
572
- {
573
- "type": "array",
574
- "items": {
575
- "type": "string"
576
- }
577
- },
578
- {
579
- "type": "string"
580
- }
581
- ]
582
- },
583
- "enabled": {
584
- "type": "boolean"
585
- },
586
- "memoryLimit": {
587
- "type": "number"
588
- },
589
- "options": {
590
- "type": "object",
591
- "additionalProperties": {},
592
- "properties": {
593
- "cwd": {
594
- "type": "string"
595
- },
596
- "extensions": {
597
- "type": "array",
598
- "items": {
599
- "type": "string"
600
- }
601
- },
602
- "fix": {
603
- "type": "boolean"
604
- }
605
- }
606
- }
607
- },
608
- "additionalProperties": false,
609
- "required": [
610
- "files"
611
- ]
380
+ "linesAbove": {
381
+ "description": "The number of lines to show above the error. default: 2",
382
+ "type": "number"
612
383
  },
613
- "formatter": {
614
- "anyOf": [
615
- {
616
- "type": "object",
617
- "additionalProperties": false
618
- },
619
- {
620
- "type": "object",
621
- "properties": {
622
- "type": {
623
- "anyOf": [
624
- {
625
- "type": "object",
626
- "additionalProperties": false
627
- },
628
- {
629
- "enum": [
630
- "basic",
631
- "codeframe"
632
- ],
633
- "type": "string"
634
- }
635
- ]
636
- },
637
- "options": {
638
- "type": "object",
639
- "properties": {
640
- "highlightCode": {
641
- "description": "Syntax highlight the code as JavaScript for terminals. default: false",
642
- "type": "boolean"
643
- },
644
- "linesAbove": {
645
- "description": "The number of lines to show above the error. default: 2",
646
- "type": "number"
647
- },
648
- "linesBelow": {
649
- "description": "The number of lines to show below the error. default: 3",
650
- "type": "number"
651
- },
652
- "forceColor": {
653
- "description": "Forcibly syntax highlight the code as JavaScript (for non-terminals);\noverrides highlightCode.\ndefault: false",
654
- "type": "boolean"
655
- },
656
- "message": {
657
- "description": "Pass in a string to be displayed inline (if possible) next to the\nhighlighted location in the code. If it can't be positioned inline,\nit will be placed above the code frame.\ndefault: nothing",
658
- "type": "string"
659
- }
660
- },
661
- "additionalProperties": false
662
- }
663
- },
664
- "additionalProperties": false,
665
- "required": [
666
- "type"
667
- ]
668
- },
669
- {
670
- "enum": [
671
- "basic",
672
- "codeframe"
673
- ],
674
- "type": "string"
675
- }
676
- ]
384
+ "linesBelow": {
385
+ "description": "The number of lines to show below the error. default: 3",
386
+ "type": "number"
677
387
  },
678
- "issue": {
679
- "type": "object",
680
- "properties": {
681
- "include": {
682
- "anyOf": [
683
- {
684
- "type": "object",
685
- "additionalProperties": false
686
- },
687
- {
688
- "type": "object",
689
- "properties": {
690
- "code": {
691
- "type": "string"
692
- },
693
- "file": {
694
- "type": "string"
695
- },
696
- "origin": {
697
- "type": "string"
698
- },
699
- "severity": {
700
- "enum": [
701
- "error",
702
- "warning"
703
- ],
704
- "type": "string"
705
- }
706
- },
707
- "additionalProperties": false
708
- },
709
- {
710
- "type": "array",
711
- "items": {
712
- "anyOf": [
713
- {
714
- "type": "object",
715
- "additionalProperties": false
716
- },
717
- {
718
- "type": "object",
719
- "properties": {
720
- "code": {
721
- "type": "string"
722
- },
723
- "file": {
724
- "type": "string"
725
- },
726
- "origin": {
727
- "type": "string"
728
- },
729
- "severity": {
730
- "enum": [
731
- "error",
732
- "warning"
733
- ],
734
- "type": "string"
735
- }
736
- },
737
- "additionalProperties": false
738
- }
739
- ]
740
- }
741
- }
742
- ]
743
- },
744
- "exclude": {
745
- "anyOf": [
746
- {
747
- "type": "object",
748
- "additionalProperties": false
749
- },
750
- {
751
- "type": "object",
752
- "properties": {
753
- "code": {
754
- "type": "string"
755
- },
756
- "file": {
757
- "type": "string"
758
- },
759
- "origin": {
760
- "type": "string"
761
- },
762
- "severity": {
763
- "enum": [
764
- "error",
765
- "warning"
766
- ],
767
- "type": "string"
768
- }
769
- },
770
- "additionalProperties": false
771
- },
772
- {
773
- "type": "array",
774
- "items": {
775
- "anyOf": [
776
- {
777
- "type": "object",
778
- "additionalProperties": false
779
- },
780
- {
781
- "type": "object",
782
- "properties": {
783
- "code": {
784
- "type": "string"
785
- },
786
- "file": {
787
- "type": "string"
788
- },
789
- "origin": {
790
- "type": "string"
791
- },
792
- "severity": {
793
- "enum": [
794
- "error",
795
- "warning"
796
- ],
797
- "type": "string"
798
- }
799
- },
800
- "additionalProperties": false
801
- }
802
- ]
803
- }
804
- }
805
- ]
806
- }
807
- },
808
- "additionalProperties": false
388
+ "forceColor": {
389
+ "description": "Forcibly syntax highlight the code as JavaScript (for non-terminals);\noverrides highlightCode.\ndefault: false",
390
+ "type": "boolean"
809
391
  },
810
- "logger": {
811
- "type": "object",
812
- "properties": {
813
- "infrastructure": {
814
- "anyOf": [
815
- {
816
- "type": "object",
817
- "properties": {
818
- "info": {
819
- "type": "object",
820
- "additionalProperties": false
821
- },
822
- "log": {
823
- "type": "object",
824
- "additionalProperties": false
825
- },
826
- "error": {
827
- "type": "object",
828
- "additionalProperties": false
829
- }
830
- },
831
- "additionalProperties": false,
832
- "required": [
833
- "error",
834
- "info",
835
- "log"
836
- ]
837
- },
838
- {
839
- "enum": [
840
- "console",
841
- "silent",
842
- "webpack-infrastructure"
843
- ],
844
- "type": "string"
845
- }
846
- ]
847
- },
848
- "issues": {
849
- "anyOf": [
850
- {
851
- "type": "object",
852
- "properties": {
853
- "info": {
854
- "type": "object",
855
- "additionalProperties": false
856
- },
857
- "log": {
858
- "type": "object",
859
- "additionalProperties": false
860
- },
861
- "error": {
862
- "type": "object",
863
- "additionalProperties": false
864
- }
865
- },
866
- "additionalProperties": false,
867
- "required": [
868
- "error",
869
- "info",
870
- "log"
871
- ]
872
- },
873
- {
874
- "enum": [
875
- "console",
876
- "silent",
877
- "webpack-infrastructure"
878
- ],
879
- "type": "string"
880
- }
881
- ]
882
- },
883
- "devServer": {
884
- "type": "boolean"
885
- }
886
- },
887
- "additionalProperties": false
392
+ "message": {
393
+ "description": "Pass in a string to be displayed inline (if possible) next to the\nhighlighted location in the code. If it can't be positioned inline,\nit will be placed above the code frame.\ndefault: nothing",
394
+ "type": "string"
888
395
  }
889
396
  },
890
397
  "additionalProperties": false
@@ -893,275 +400,708 @@
893
400
  "additionalProperties": false
894
401
  },
895
402
  {
896
- "type": "boolean"
897
- }
898
- ]
899
- },
900
- "externals": {
901
- "title": "Pass list to Webpack config externals field",
902
- "default": [],
903
- "type": "array",
904
- "items": {
905
- "type": "string"
906
- }
907
- }
908
- }
909
- }
910
- },
911
- "additionalProperties": false
912
- },
913
- "serve": {
914
- "default": {},
915
- "additionalProperties": false,
916
- "type": "object",
917
- "properties": {
918
- "notifications": {
919
- "default": {},
920
- "additionalProperties": false,
921
- "type": "object",
922
- "properties": {
923
- "suppressSuccess": {
924
- "title": "Defines when success notifications are shown",
925
- "enum": [
926
- "always",
927
- false,
928
- "initial",
929
- true
930
- ]
931
- },
932
- "suppressWarning": {
933
- "title": "True to suppress the warning notifications, otherwise false",
934
- "type": "boolean"
935
- },
936
- "activateTerminalOnError": {
937
- "title": "True to activate (focus) the terminal window when a compilation error occurs",
938
- "type": "boolean"
939
- },
940
- "client": {
941
- "type": "object",
942
- "properties": {
943
- "suppressSuccess": {
944
- "title": "Defines when success notifications are shown",
945
- "enum": [
946
- "always",
947
- false,
948
- "initial",
949
- true
950
- ]
951
- },
952
- "suppressWarning": {
953
- "title": "True to suppress the warning notifications, otherwise false",
954
- "type": "boolean"
955
- },
956
- "activateTerminalOnError": {
957
- "title": "True to activate (focus) the terminal window when a compilation error occurs",
958
- "type": "boolean"
959
- }
960
- },
961
- "additionalProperties": false
962
- },
963
- "server": {
964
- "type": "object",
965
- "properties": {
966
- "suppressSuccess": {
967
- "title": "Defines when success notifications are shown",
968
403
  "enum": [
969
- "always",
970
- false,
971
- "initial",
972
- true
973
- ]
974
- },
975
- "suppressWarning": {
976
- "title": "True to suppress the warning notifications, otherwise false",
977
- "type": "boolean"
978
- },
979
- "activateTerminalOnError": {
980
- "title": "True to activate (focus) the terminal window when a compilation error occurs",
981
- "type": "boolean"
404
+ "basic",
405
+ "codeframe"
406
+ ],
407
+ "type": "string"
982
408
  }
983
- },
984
- "additionalProperties": false
985
- }
986
- }
987
- },
988
- "configurations": {
989
- "default": {},
990
- "additionalProperties": false,
991
- "type": "object",
992
- "properties": {
993
- "sourceMap": {
994
- "title": "Enable source maps in development build (for client and server build)",
995
- "default": false,
996
- "type": "boolean"
997
- },
998
- "modern": {
999
- "title": "Enable development build for modern browsers",
1000
- "default": true,
1001
- "type": "boolean"
1002
- },
1003
- "hotRefresh": {
1004
- "title": "Enable react hot-refresh",
1005
- "default": true,
1006
- "type": "boolean"
409
+ ]
1007
410
  },
1008
- "hotRefreshOptions": {
1009
- "title": "Configure react hot-refresh https://github.com/pmmmwh/react-refresh-webpack-plugin#options",
411
+ "issue": {
1010
412
  "type": "object",
1011
- "additionalProperties": {},
1012
413
  "properties": {
1013
- "overlay": {
414
+ "include": {
1014
415
  "anyOf": [
1015
416
  {
1016
417
  "type": "object",
1017
418
  "additionalProperties": false
1018
419
  },
1019
420
  {
1020
- "type": "boolean"
1021
- }
1022
- ]
1023
- }
1024
- }
1025
- },
1026
- "experiments": {
1027
- "default": {},
1028
- "additionalProperties": false,
1029
- "type": "object",
1030
- "properties": {
1031
- "webpack": {
1032
- "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
1033
- "default": {},
1034
- "additionalProperties": false,
1035
- "type": "object",
1036
- "properties": {
1037
- "asyncWebAssembly": {
1038
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
1039
- "type": "boolean"
421
+ "type": "object",
422
+ "properties": {
423
+ "code": {
424
+ "type": "string"
425
+ },
426
+ "file": {
427
+ "type": "string"
428
+ },
429
+ "origin": {
430
+ "type": "string"
431
+ },
432
+ "severity": {
433
+ "enum": [
434
+ "error",
435
+ "warning"
436
+ ],
437
+ "type": "string"
438
+ }
439
+ },
440
+ "additionalProperties": false
1040
441
  },
1041
- "backCompat": {
1042
- "title": "Enable backward compatibility with webpack previous major versions",
1043
- "default": false,
1044
- "type": "boolean"
1045
- },
1046
- "cacheUnaffected": {
1047
- "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
1048
- "default": true,
1049
- "type": "boolean"
1050
- },
1051
- "futureDefaults": {
1052
- "description": "Apply defaults of next major version.",
1053
- "type": "boolean"
1054
- },
1055
- "layers": {
1056
- "description": "Enable module layers.",
1057
- "type": "boolean"
1058
- },
1059
- "outputModule": {
1060
- "description": "Allow output javascript files as module source type.",
1061
- "type": "boolean"
1062
- },
1063
- "syncWebAssembly": {
1064
- "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
1065
- "type": "boolean"
442
+ {
443
+ "type": "array",
444
+ "items": {
445
+ "anyOf": [
446
+ {
447
+ "type": "object",
448
+ "additionalProperties": false
449
+ },
450
+ {
451
+ "type": "object",
452
+ "properties": {
453
+ "code": {
454
+ "type": "string"
455
+ },
456
+ "file": {
457
+ "type": "string"
458
+ },
459
+ "origin": {
460
+ "type": "string"
461
+ },
462
+ "severity": {
463
+ "enum": [
464
+ "error",
465
+ "warning"
466
+ ],
467
+ "type": "string"
468
+ }
469
+ },
470
+ "additionalProperties": false
471
+ }
472
+ ]
473
+ }
474
+ }
475
+ ]
476
+ },
477
+ "exclude": {
478
+ "anyOf": [
479
+ {
480
+ "type": "object",
481
+ "additionalProperties": false
1066
482
  },
1067
- "topLevelAwait": {
1068
- "description": "Allow using top-level-await in EcmaScript Modules.",
1069
- "type": "boolean"
483
+ {
484
+ "type": "object",
485
+ "properties": {
486
+ "code": {
487
+ "type": "string"
488
+ },
489
+ "file": {
490
+ "type": "string"
491
+ },
492
+ "origin": {
493
+ "type": "string"
494
+ },
495
+ "severity": {
496
+ "enum": [
497
+ "error",
498
+ "warning"
499
+ ],
500
+ "type": "string"
501
+ }
502
+ },
503
+ "additionalProperties": false
1070
504
  },
1071
- "css": {
1072
- "description": "Enable css support.",
1073
- "anyOf": [
1074
- {
1075
- "description": "Options for css handling.",
1076
- "type": "object",
1077
- "properties": {
1078
- "exportsOnly": {
1079
- "description": "Avoid generating and loading a stylesheet and only embed exports from css into output javascript files.",
1080
- "type": "boolean"
1081
- }
505
+ {
506
+ "type": "array",
507
+ "items": {
508
+ "anyOf": [
509
+ {
510
+ "type": "object",
511
+ "additionalProperties": false
1082
512
  },
513
+ {
514
+ "type": "object",
515
+ "properties": {
516
+ "code": {
517
+ "type": "string"
518
+ },
519
+ "file": {
520
+ "type": "string"
521
+ },
522
+ "origin": {
523
+ "type": "string"
524
+ },
525
+ "severity": {
526
+ "enum": [
527
+ "error",
528
+ "warning"
529
+ ],
530
+ "type": "string"
531
+ }
532
+ },
533
+ "additionalProperties": false
534
+ }
535
+ ]
536
+ }
537
+ }
538
+ ]
539
+ }
540
+ },
541
+ "additionalProperties": false
542
+ },
543
+ "logger": {
544
+ "type": "object",
545
+ "properties": {
546
+ "infrastructure": {
547
+ "anyOf": [
548
+ {
549
+ "type": "object",
550
+ "properties": {
551
+ "info": {
552
+ "type": "object",
1083
553
  "additionalProperties": false
1084
554
  },
1085
- {
1086
- "type": "boolean"
555
+ "log": {
556
+ "type": "object",
557
+ "additionalProperties": false
558
+ },
559
+ "error": {
560
+ "type": "object",
561
+ "additionalProperties": false
1087
562
  }
1088
- ]
1089
- }
1090
- }
1091
- },
1092
- "minicss": {
1093
- "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
1094
- "default": {},
1095
- "type": "object",
1096
- "properties": {
1097
- "useImportModule": {
1098
- "title": "Use a new webpack API to execute modules instead of child compilers. This improves performance and memory usage a lot.",
1099
- "default": true,
1100
- "type": "boolean"
563
+ },
564
+ "additionalProperties": false
565
+ },
566
+ {
567
+ "enum": [
568
+ "console",
569
+ "silent",
570
+ "webpack-infrastructure"
571
+ ],
572
+ "type": "string"
1101
573
  }
1102
- },
1103
- "additionalProperties": false
574
+ ]
1104
575
  },
1105
- "transpilation": {
1106
- "title": "experimental settings for code transpilation",
1107
- "default": {},
1108
- "type": "object",
1109
- "properties": {
1110
- "loader": {
1111
- "title": "specify loader to transpile js-ts code",
1112
- "default": "babel",
576
+ "issues": {
577
+ "anyOf": [
578
+ {
579
+ "type": "object",
580
+ "properties": {
581
+ "info": {
582
+ "type": "object",
583
+ "additionalProperties": false
584
+ },
585
+ "log": {
586
+ "type": "object",
587
+ "additionalProperties": false
588
+ },
589
+ "error": {
590
+ "type": "object",
591
+ "additionalProperties": false
592
+ }
593
+ },
594
+ "additionalProperties": false
595
+ },
596
+ {
1113
597
  "enum": [
1114
- "babel",
1115
- "swc"
598
+ "console",
599
+ "silent",
600
+ "webpack-infrastructure"
1116
601
  ],
1117
602
  "type": "string"
1118
603
  }
1119
- },
1120
- "additionalProperties": false
604
+ ]
1121
605
  },
1122
- "serverRunner": {
1123
- "title": "How to run server build",
1124
- "default": "process",
606
+ "devServer": {
607
+ "type": "boolean"
608
+ }
609
+ },
610
+ "additionalProperties": false
611
+ }
612
+ },
613
+ "additionalProperties": false
614
+ }
615
+ },
616
+ "additionalProperties": false
617
+ },
618
+ {
619
+ "type": "boolean"
620
+ }
621
+ ]
622
+ },
623
+ "externals": {
624
+ "cli_overridable": "",
625
+ "title": "Pass list to Webpack config externals field",
626
+ "default": [],
627
+ "anyOf": [
628
+ {
629
+ "type": "array",
630
+ "items": {
631
+ "type": "string"
632
+ }
633
+ },
634
+ {
635
+ "type": "object",
636
+ "properties": {
637
+ "development": {
638
+ "type": "array",
639
+ "items": {
640
+ "type": "string"
641
+ }
642
+ },
643
+ "production": {
644
+ "type": "array",
645
+ "items": {
646
+ "type": "string"
647
+ }
648
+ }
649
+ },
650
+ "additionalProperties": false
651
+ }
652
+ ]
653
+ },
654
+ "experiments": {
655
+ "title": "Experimental settings",
656
+ "default": {},
657
+ "type": "object",
658
+ "properties": {
659
+ "serverRunner": {
660
+ "title": "How to run server build",
661
+ "default": "process",
662
+ "enum": [
663
+ "process",
664
+ "thread"
665
+ ],
666
+ "type": "string"
667
+ },
668
+ "webpack": {
669
+ "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
670
+ "default": {},
671
+ "type": "object",
672
+ "properties": {
673
+ "asyncWebAssembly": {
674
+ "description": "Support WebAssembly as asynchronous EcmaScript Module.",
675
+ "type": "boolean"
676
+ },
677
+ "backCompat": {
678
+ "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
679
+ "title": "Enable backward compatibility with webpack previous major versions",
680
+ "default": false,
681
+ "type": "boolean"
682
+ },
683
+ "cacheUnaffected": {
684
+ "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
685
+ "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
686
+ "default": true,
687
+ "type": "boolean"
688
+ },
689
+ "futureDefaults": {
690
+ "description": "Apply defaults of next major version.",
691
+ "type": "boolean"
692
+ },
693
+ "layers": {
694
+ "description": "Enable module layers.",
695
+ "type": "boolean"
696
+ },
697
+ "outputModule": {
698
+ "description": "Allow output javascript files as module source type.",
699
+ "type": "boolean"
700
+ },
701
+ "syncWebAssembly": {
702
+ "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
703
+ "type": "boolean"
704
+ },
705
+ "topLevelAwait": {
706
+ "description": "Allow using top-level-await in EcmaScript Modules.",
707
+ "type": "boolean"
708
+ }
709
+ },
710
+ "additionalProperties": false
711
+ },
712
+ "minicss": {
713
+ "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
714
+ "default": {},
715
+ "type": "object",
716
+ "properties": {
717
+ "useImportModule": {
718
+ "cli_overridable": "",
719
+ "title": "Use a new webpack API to execute modules instead of child compilers. This improves performance and memory usage a lot.",
720
+ "default": true,
721
+ "anyOf": [
722
+ {
723
+ "type": "object",
724
+ "properties": {
725
+ "development": {
726
+ "type": "boolean"
727
+ },
728
+ "production": {
729
+ "type": "boolean"
730
+ }
731
+ },
732
+ "additionalProperties": false
733
+ },
734
+ {
735
+ "type": "boolean"
736
+ }
737
+ ]
738
+ }
739
+ },
740
+ "additionalProperties": false
741
+ },
742
+ "transpilation": {
743
+ "title": "experimental settings for code transpilation",
744
+ "default": {},
745
+ "type": "object",
746
+ "properties": {
747
+ "loader": {
748
+ "cli_overridable": "",
749
+ "title": "specify loader to transpile js-ts code",
750
+ "default": "babel",
751
+ "anyOf": [
752
+ {
753
+ "type": "object",
754
+ "properties": {
755
+ "development": {
756
+ "enum": [
757
+ "babel",
758
+ "swc"
759
+ ],
760
+ "type": "string"
761
+ },
762
+ "production": {
1125
763
  "enum": [
1126
- "process",
1127
- "thread"
764
+ "babel",
765
+ "swc"
1128
766
  ],
1129
767
  "type": "string"
1130
768
  }
1131
- }
769
+ },
770
+ "additionalProperties": false
1132
771
  },
1133
- "externals": {
1134
- "title": "Pass list to Webpack config externals field",
1135
- "default": [
1136
- "react$",
1137
- "react-dom",
1138
- "prop-types",
1139
- "express",
1140
- "core-js"
772
+ {
773
+ "enum": [
774
+ "babel",
775
+ "swc"
1141
776
  ],
1142
- "type": "array",
1143
- "items": {
1144
- "type": "string"
1145
- }
777
+ "type": "string"
1146
778
  }
1147
- }
779
+ ]
1148
780
  }
781
+ },
782
+ "additionalProperties": false
783
+ }
784
+ },
785
+ "additionalProperties": false
786
+ },
787
+ "sourceMap": {
788
+ "cli_overridable": "",
789
+ "title": "Enable source maps",
790
+ "default": false,
791
+ "anyOf": [
792
+ {
793
+ "type": "object",
794
+ "properties": {
795
+ "development": {
796
+ "type": "boolean"
797
+ },
798
+ "production": {
799
+ "type": "boolean"
800
+ }
801
+ },
802
+ "additionalProperties": false
803
+ },
804
+ {
805
+ "type": "boolean"
806
+ }
807
+ ]
808
+ },
809
+ "excludesPresetEnv": {
810
+ "title": "List of modules to exclude from `@babel/preset-env`",
811
+ "description": "Option doesn't affect build with swc loader",
812
+ "type": "array",
813
+ "items": {
814
+ "type": "string"
815
+ }
816
+ },
817
+ "threadLoader": {
818
+ "title": "Webpack's thread-loader config",
819
+ "additionalProperties": true,
820
+ "type": "object"
821
+ },
822
+ "define": {
823
+ "title": "Define static variables that should be replaced by name with provided value",
824
+ "default": {},
825
+ "type": "object",
826
+ "properties": {
827
+ "shared": {
828
+ "default": {},
829
+ "additionalProperties": true,
830
+ "type": "object"
831
+ },
832
+ "development": {
833
+ "default": {},
834
+ "additionalProperties": true,
835
+ "type": "object"
836
+ },
837
+ "production": {
838
+ "default": {},
839
+ "additionalProperties": true,
840
+ "type": "object"
841
+ }
842
+ },
843
+ "additionalProperties": false
844
+ },
845
+ "generateDataQaTag": {
846
+ "title": "`@deprecated` will be removed in next major release.",
847
+ "default": false,
848
+ "type": "boolean"
849
+ },
850
+ "enableFillActionNamePlugin": {
851
+ "title": "`@deprecated` will be removed in next major release. Включает использование плагина fill-action-name",
852
+ "default": false,
853
+ "type": "boolean"
854
+ },
855
+ "postcss": {
856
+ "default": {},
857
+ "type": "object",
858
+ "properties": {
859
+ "config": {
860
+ "title": "Path to postcss config file. By default, `postcss.config.js` file is used",
861
+ "type": "string"
862
+ },
863
+ "cssLocalIdentName": {
864
+ "cli_overridable": "",
865
+ "title": "CSS identifiers build algorithm",
866
+ "anyOf": [
867
+ {
868
+ "type": "object",
869
+ "properties": {
870
+ "development": {
871
+ "type": "string"
872
+ },
873
+ "production": {
874
+ "type": "string"
875
+ }
876
+ },
877
+ "additionalProperties": false
878
+ },
879
+ {
880
+ "type": "string"
881
+ }
882
+ ]
883
+ },
884
+ "assetsConfig": {
885
+ "title": "Path to postcss config file for assets",
886
+ "type": "string"
887
+ },
888
+ "cssModulePattern": {
889
+ "title": "Enable CSS modules for all files matching /RegExp/i.test(filename) regexp.",
890
+ "type": "string"
891
+ }
892
+ },
893
+ "additionalProperties": false
894
+ },
895
+ "alias": {
896
+ "title": "`@deprecated` as cli now supports baseUrl and paths from the app's tsconfig.json file.\nJust check or add configuration to your tsconfig file and remove alias from tramvai.json",
897
+ "additionalProperties": true,
898
+ "type": "object"
899
+ },
900
+ "svgo": {
901
+ "title": "svgo-loader options",
902
+ "type": "object",
903
+ "properties": {
904
+ "plugins": {
905
+ "title": "svgo plugins",
906
+ "type": "array",
907
+ "items": {}
908
+ }
909
+ },
910
+ "additionalProperties": false
911
+ },
912
+ "imageOptimization": {
913
+ "title": "Settings for image-webpack-loader",
914
+ "type": "object",
915
+ "properties": {
916
+ "enabled": {
917
+ "title": "Enable image-webpack-loader",
918
+ "type": "boolean"
919
+ },
920
+ "options": {
921
+ "title": "Pass options to image-webpack-loader",
922
+ "additionalProperties": true,
923
+ "type": "object"
924
+ }
925
+ },
926
+ "additionalProperties": false
927
+ },
928
+ "transpileOnlyModernLibs": {
929
+ "title": "transpile libs based only on @tinkoff/is-modern-lib",
930
+ "default": true,
931
+ "type": "boolean"
932
+ },
933
+ "webpack": {
934
+ "title": "Webpack specific settings",
935
+ "default": {},
936
+ "type": "object",
937
+ "properties": {
938
+ "resolveAlias": {
939
+ "title": "Browser package resolve aliases. E.g. { \"stream\": \"stream-browserify\" }",
940
+ "additionalProperties": true,
941
+ "type": "object"
942
+ },
943
+ "provide": {
944
+ "title": "Browser packages to provide with ProvidePlugin. E.g. { \"Buffer\": [\"buffer\", \"Buffer\"] }",
945
+ "additionalProperties": true,
946
+ "type": "object"
947
+ }
948
+ },
949
+ "additionalProperties": false
950
+ },
951
+ "dedupe": {
952
+ "title": "Enable DedupePlugin",
953
+ "default": {},
954
+ "type": "object",
955
+ "properties": {
956
+ "enabled": {
957
+ "title": "Strategy for DedupePlugin",
958
+ "default": true,
959
+ "type": "boolean"
960
+ },
961
+ "strategy": {
962
+ "title": "Strategy for DedupePlugin",
963
+ "default": "equality",
964
+ "enum": [
965
+ "equality",
966
+ "semver"
967
+ ],
968
+ "type": "string"
969
+ },
970
+ "ignore": {
971
+ "title": "Sets ignore to DedupePlugin",
972
+ "type": "array",
973
+ "items": {
974
+ "type": "string"
1149
975
  }
1150
976
  }
1151
977
  },
1152
978
  "additionalProperties": false
1153
979
  },
1154
- "name": {
1155
- "type": "string"
980
+ "terser": {
981
+ "title": "terser settings",
982
+ "default": {},
983
+ "type": "object",
984
+ "properties": {
985
+ "parallel": {
986
+ "title": "Configuration for enabling parallel compression for terser plugin",
987
+ "default": true,
988
+ "type": "boolean"
989
+ }
990
+ },
991
+ "additionalProperties": false
1156
992
  },
1157
- "root": {
993
+ "cssMinimize": {
994
+ "title": "Set minimizer for css",
995
+ "default": "css-minimizer",
996
+ "enum": [
997
+ "css-minimizer",
998
+ "csso"
999
+ ],
1158
1000
  "type": "string"
1159
1001
  },
1160
- "version": {
1161
- "type": "string"
1002
+ "hotRefresh": {
1003
+ "title": "React hot-refresh",
1004
+ "default": {},
1005
+ "type": "object",
1006
+ "properties": {
1007
+ "enabled": {
1008
+ "title": "Enable react hot-refresh",
1009
+ "default": true,
1010
+ "type": "boolean"
1011
+ },
1012
+ "options": {
1013
+ "title": "Configure react hot-refresh https://github.com/pmmmwh/react-refresh-webpack-plugin#options",
1014
+ "type": "object",
1015
+ "properties": {
1016
+ "overlay": {
1017
+ "anyOf": [
1018
+ {
1019
+ "type": "object",
1020
+ "additionalProperties": false
1021
+ },
1022
+ {
1023
+ "type": "boolean"
1024
+ }
1025
+ ]
1026
+ }
1027
+ },
1028
+ "additionalProperties": false
1029
+ }
1030
+ },
1031
+ "additionalProperties": false
1032
+ },
1033
+ "notifications": {
1034
+ "title": "Controls build notifications settings during development",
1035
+ "default": {},
1036
+ "type": "object",
1037
+ "properties": {
1038
+ "suppressSuccess": {
1039
+ "title": "Defines when success notifications are shown",
1040
+ "enum": [
1041
+ "always",
1042
+ false,
1043
+ "initial",
1044
+ true
1045
+ ]
1046
+ },
1047
+ "suppressWarning": {
1048
+ "title": "True to suppress the warning notifications, otherwise false",
1049
+ "type": "boolean"
1050
+ },
1051
+ "activateTerminalOnError": {
1052
+ "title": "True to activate (focus) the terminal window when a compilation error occurs",
1053
+ "type": "boolean"
1054
+ },
1055
+ "client": {
1056
+ "type": "object",
1057
+ "properties": {
1058
+ "suppressSuccess": {
1059
+ "title": "Defines when success notifications are shown",
1060
+ "enum": [
1061
+ "always",
1062
+ false,
1063
+ "initial",
1064
+ true
1065
+ ]
1066
+ },
1067
+ "suppressWarning": {
1068
+ "title": "True to suppress the warning notifications, otherwise false",
1069
+ "type": "boolean"
1070
+ },
1071
+ "activateTerminalOnError": {
1072
+ "title": "True to activate (focus) the terminal window when a compilation error occurs",
1073
+ "type": "boolean"
1074
+ }
1075
+ },
1076
+ "additionalProperties": false
1077
+ },
1078
+ "server": {
1079
+ "type": "object",
1080
+ "properties": {
1081
+ "suppressSuccess": {
1082
+ "title": "Defines when success notifications are shown",
1083
+ "enum": [
1084
+ "always",
1085
+ false,
1086
+ "initial",
1087
+ true
1088
+ ]
1089
+ },
1090
+ "suppressWarning": {
1091
+ "title": "True to suppress the warning notifications, otherwise false",
1092
+ "type": "boolean"
1093
+ },
1094
+ "activateTerminalOnError": {
1095
+ "title": "True to activate (focus) the terminal window when a compilation error occurs",
1096
+ "type": "boolean"
1097
+ }
1098
+ },
1099
+ "additionalProperties": false
1100
+ }
1101
+ },
1102
+ "additionalProperties": false
1162
1103
  }
1163
1104
  },
1164
- "additionalProperties": false,
1165
1105
  "required": [
1166
1106
  "name",
1167
1107
  "root",
@@ -1177,574 +1117,471 @@
1177
1117
  }
1178
1118
  },
1179
1119
  "then": {
1120
+ "additionalProperties": false,
1180
1121
  "type": "object",
1181
1122
  "properties": {
1123
+ "name": {
1124
+ "title": "name of the project",
1125
+ "type": "string"
1126
+ },
1127
+ "root": {
1128
+ "title": "path to the root directory relative to the tramvai.json",
1129
+ "type": "string"
1130
+ },
1182
1131
  "type": {
1183
1132
  "type": "string",
1184
1133
  "enum": [
1185
1134
  "module"
1186
1135
  ]
1187
1136
  },
1188
- "commands": {
1137
+ "output": {
1138
+ "title": "Path to build module assets",
1139
+ "default": "dist/modules",
1140
+ "type": "string"
1141
+ },
1142
+ "postcss": {
1189
1143
  "default": {},
1190
1144
  "type": "object",
1191
1145
  "properties": {
1192
- "build": {
1193
- "default": {},
1194
- "type": "object",
1195
- "properties": {
1196
- "options": {
1197
- "default": {},
1198
- "type": "object",
1199
- "properties": {
1200
- "output": {
1201
- "title": "Path to build module assets",
1202
- "default": "dist/modules",
1203
- "type": "string"
1204
- }
1205
- },
1206
- "additionalProperties": false
1207
- },
1208
- "configurations": {
1209
- "default": {},
1210
- "additionalProperties": false,
1211
- "type": "object",
1212
- "properties": {
1213
- "modern": {
1214
- "title": "Enable production build for modern browsers",
1215
- "default": true,
1216
- "type": "boolean"
1217
- },
1218
- "dedupe": {
1219
- "title": "Enable DedupePlugin",
1220
- "default": "equality",
1221
- "enum": [
1222
- "equality",
1223
- false,
1224
- "semver"
1225
- ]
1226
- },
1227
- "dedupeIgnore": {
1228
- "title": "Sets ignore to DedupePlugin",
1229
- "type": "array",
1230
- "items": {
1231
- "type": "string"
1232
- }
1233
- },
1234
- "removeTypeofWindow": {
1235
- "title": "Enable replacing `typeof window` expression",
1236
- "default": true,
1237
- "type": "boolean"
1238
- },
1239
- "sourceMap": {
1240
- "title": "Enable source maps in production build",
1241
- "default": false,
1242
- "type": "boolean"
1243
- },
1244
- "sourceMapServer": {
1245
- "title": "Enable source maps for server assets in production build",
1246
- "default": false,
1247
- "type": "boolean"
1248
- },
1249
- "terserParallel": {
1250
- "title": "Configuration for enabling parallel compression for terser plugin",
1251
- "default": true,
1252
- "type": "boolean"
1253
- },
1254
- "excludesPresetEnv": {
1255
- "title": "List of modules to exclude from",
1256
- "type": "array",
1257
- "items": {
1258
- "type": "string"
1259
- }
1260
- },
1261
- "threadLoader": {
1262
- "title": "thread-loader config",
1263
- "additionalProperties": true,
1264
- "type": "object"
1265
- },
1266
- "definePlugin": {
1267
- "title": "Define plugin config",
1268
- "default": {
1269
- "prod": {},
1270
- "dev": {}
1271
- },
1272
- "additionalProperties": true,
1273
- "type": "object"
1274
- },
1275
- "generateDataQaTag": {
1276
- "default": false,
1277
- "type": "boolean"
1278
- },
1279
- "enableFillActionNamePlugin": {
1280
- "default": false,
1281
- "type": "boolean"
1282
- },
1283
- "cssMinimize": {
1284
- "title": "Set minimizer for css",
1285
- "type": "string",
1286
- "enum": [
1287
- "csso"
1288
- ]
1289
- },
1290
- "postcss": {
1291
- "default": {
1292
- "config": "postcss.config",
1293
- "cssLocalIdentName": "[hash:base64:5]"
1294
- },
1295
- "type": "object",
1296
- "properties": {
1297
- "config": {
1298
- "title": "Path to postcss config file",
1299
- "type": "string"
1300
- },
1301
- "cssLocalIdentName": {
1302
- "title": "CSS identifiers build algorythm",
1303
- "type": "string"
1304
- },
1305
- "cssLocalIdentNameDev": {
1306
- "title": "CSS identifiers build algorythm for development buld",
1307
- "type": "string"
1308
- },
1309
- "cssLocalIdentNameProd": {
1310
- "title": "CSS identifiers build algorythm for production build",
1311
- "type": "string"
1312
- },
1313
- "assetsConfig": {
1314
- "title": "Path to postcss config file for assets",
1315
- "type": "string"
1316
- }
1317
- },
1318
- "additionalProperties": false
1319
- },
1320
- "alias": {
1321
- "title": "`@@deprecated @tramvai/cli now supports baseUrl and paths from the app's tsconfig.json file.\nJust check or add configuration to your tsconfig file and remove alias from tramvai.json`",
1322
- "additionalProperties": true,
1323
- "type": "object"
1324
- },
1325
- "svgo": {
1326
- "title": "svgo-loader options",
1327
- "type": "object",
1328
- "properties": {
1329
- "plugins": {
1330
- "title": "svgo plugins",
1331
- "type": "array",
1332
- "items": {
1333
- "type": "object",
1334
- "additionalProperties": false
1335
- }
1336
- }
1337
- },
1338
- "additionalProperties": false
1339
- },
1340
- "imageOptimization": {
1341
- "title": "Settings for image-webpack-loader",
1342
- "type": "object",
1343
- "properties": {
1344
- "enabled": {
1345
- "title": "Enable image-webpack-loader",
1346
- "type": "boolean"
1347
- },
1348
- "options": {
1349
- "title": "Pass options to image-webpack-loader",
1350
- "additionalProperties": true,
1351
- "type": "object"
1352
- }
1353
- },
1354
- "additionalProperties": false
1355
- },
1356
- "transpileOnlyModernLibs": {
1357
- "title": "transpile libs based only on @tinkoff/is-modern-lib",
1358
- "default": true,
1359
- "type": "boolean"
1360
- },
1361
- "webpackResolveAlias": {
1362
- "title": "Browser package resolve aliases. E.g. { \"stream\": \"stream-browserify\" }",
1363
- "additionalProperties": true,
1364
- "type": "object"
1365
- },
1366
- "webpackProvide": {
1367
- "title": "Browser packages to provide with ProvidePlugin. E.g. { \"Buffer\": [\"buffer\", \"Buffer\"] }",
1368
- "additionalProperties": true,
1369
- "type": "object"
1146
+ "config": {
1147
+ "title": "Path to postcss config file. By default, `postcss.config.js` file is used",
1148
+ "type": "string"
1149
+ },
1150
+ "cssLocalIdentName": {
1151
+ "cli_overridable": "",
1152
+ "title": "CSS identifiers build algorithm",
1153
+ "default": "[hash:base64:5]",
1154
+ "anyOf": [
1155
+ {
1156
+ "type": "object",
1157
+ "properties": {
1158
+ "development": {
1159
+ "type": "string"
1370
1160
  },
1371
- "fileSystemPages": {
1372
- "title": "experimental settings for File-System Routing feature",
1373
- "default": {},
1161
+ "production": {
1162
+ "type": "string"
1163
+ }
1164
+ },
1165
+ "additionalProperties": false
1166
+ },
1167
+ {
1168
+ "type": "string"
1169
+ }
1170
+ ]
1171
+ },
1172
+ "assetsConfig": {
1173
+ "title": "Path to postcss config file for assets",
1174
+ "type": "string"
1175
+ },
1176
+ "cssModulePattern": {
1177
+ "title": "Enable CSS modules for all files matching /RegExp/i.test(filename) regexp.",
1178
+ "type": "string"
1179
+ }
1180
+ },
1181
+ "additionalProperties": false
1182
+ },
1183
+ "sourceMap": {
1184
+ "cli_overridable": "",
1185
+ "title": "Enable source maps",
1186
+ "default": false,
1187
+ "anyOf": [
1188
+ {
1189
+ "type": "object",
1190
+ "properties": {
1191
+ "development": {
1192
+ "type": "boolean"
1193
+ },
1194
+ "production": {
1195
+ "type": "boolean"
1196
+ }
1197
+ },
1198
+ "additionalProperties": false
1199
+ },
1200
+ {
1201
+ "type": "boolean"
1202
+ }
1203
+ ]
1204
+ },
1205
+ "experiments": {
1206
+ "title": "Change different experimental cli settings",
1207
+ "default": {},
1208
+ "type": "object",
1209
+ "properties": {
1210
+ "webpack": {
1211
+ "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
1212
+ "default": {},
1213
+ "type": "object",
1214
+ "properties": {
1215
+ "asyncWebAssembly": {
1216
+ "description": "Support WebAssembly as asynchronous EcmaScript Module.",
1217
+ "type": "boolean"
1218
+ },
1219
+ "backCompat": {
1220
+ "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
1221
+ "title": "Enable backward compatibility with webpack previous major versions",
1222
+ "default": false,
1223
+ "type": "boolean"
1224
+ },
1225
+ "cacheUnaffected": {
1226
+ "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
1227
+ "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
1228
+ "default": true,
1229
+ "type": "boolean"
1230
+ },
1231
+ "futureDefaults": {
1232
+ "description": "Apply defaults of next major version.",
1233
+ "type": "boolean"
1234
+ },
1235
+ "layers": {
1236
+ "description": "Enable module layers.",
1237
+ "type": "boolean"
1238
+ },
1239
+ "outputModule": {
1240
+ "description": "Allow output javascript files as module source type.",
1241
+ "type": "boolean"
1242
+ },
1243
+ "syncWebAssembly": {
1244
+ "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
1245
+ "type": "boolean"
1246
+ },
1247
+ "topLevelAwait": {
1248
+ "description": "Allow using top-level-await in EcmaScript Modules.",
1249
+ "type": "boolean"
1250
+ }
1251
+ },
1252
+ "additionalProperties": false
1253
+ },
1254
+ "minicss": {
1255
+ "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
1256
+ "default": {},
1257
+ "type": "object",
1258
+ "properties": {
1259
+ "useImportModule": {
1260
+ "cli_overridable": "",
1261
+ "title": "Use a new webpack API to execute modules instead of child compilers. This improves performance and memory usage a lot.",
1262
+ "default": true,
1263
+ "anyOf": [
1264
+ {
1374
1265
  "type": "object",
1375
1266
  "properties": {
1376
- "enable": {
1377
- "title": "Read pages from file system",
1378
- "default": false,
1267
+ "development": {
1379
1268
  "type": "boolean"
1380
1269
  },
1381
- "routesDir": {
1382
- "title": "Folder with pages from which static routers are generated",
1383
- "default": "routes",
1384
- "anyOf": [
1385
- {
1386
- "enum": [
1387
- false
1388
- ],
1389
- "type": "boolean"
1390
- },
1391
- {
1392
- "type": "string"
1393
- }
1394
- ]
1395
- },
1396
- "pagesDir": {
1397
- "title": "Folder with components which can be manually added to static routers",
1398
- "default": "pages",
1399
- "anyOf": [
1400
- {
1401
- "enum": [
1402
- false
1403
- ],
1404
- "type": "boolean"
1405
- },
1406
- {
1407
- "type": "string"
1408
- }
1409
- ]
1270
+ "production": {
1271
+ "type": "boolean"
1410
1272
  }
1411
1273
  },
1412
1274
  "additionalProperties": false
1413
1275
  },
1414
- "experiments": {
1415
- "title": "Experimental settings",
1416
- "default": {},
1417
- "type": "object",
1418
- "properties": {
1419
- "webpack": {
1420
- "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
1421
- "default": {},
1422
- "additionalProperties": false,
1423
- "type": "object",
1424
- "properties": {
1425
- "asyncWebAssembly": {
1426
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
1427
- "type": "boolean"
1428
- },
1429
- "backCompat": {
1430
- "title": "Enable backward compatibility with webpack previous major versions",
1431
- "default": false,
1432
- "type": "boolean"
1433
- },
1434
- "cacheUnaffected": {
1435
- "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
1436
- "default": true,
1437
- "type": "boolean"
1438
- },
1439
- "futureDefaults": {
1440
- "description": "Apply defaults of next major version.",
1441
- "type": "boolean"
1442
- },
1443
- "layers": {
1444
- "description": "Enable module layers.",
1445
- "type": "boolean"
1446
- },
1447
- "outputModule": {
1448
- "description": "Allow output javascript files as module source type.",
1449
- "type": "boolean"
1450
- },
1451
- "syncWebAssembly": {
1452
- "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
1453
- "type": "boolean"
1454
- },
1455
- "topLevelAwait": {
1456
- "description": "Allow using top-level-await in EcmaScript Modules.",
1457
- "type": "boolean"
1458
- },
1459
- "css": {
1460
- "description": "Enable css support.",
1461
- "anyOf": [
1462
- {
1463
- "description": "Options for css handling.",
1464
- "type": "object",
1465
- "properties": {
1466
- "exportsOnly": {
1467
- "description": "Avoid generating and loading a stylesheet and only embed exports from css into output javascript files.",
1468
- "type": "boolean"
1469
- }
1470
- },
1471
- "additionalProperties": false
1472
- },
1473
- {
1474
- "type": "boolean"
1475
- }
1476
- ]
1477
- }
1478
- }
1479
- },
1480
- "minicss": {
1481
- "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
1482
- "default": {},
1483
- "type": "object",
1484
- "properties": {
1485
- "useImportModule": {
1486
- "title": "Use a new webpack API to execute modules instead of child compilers. This improves performance and memory usage a lot.",
1487
- "default": true,
1488
- "type": "boolean"
1489
- }
1490
- },
1491
- "additionalProperties": false
1492
- },
1493
- "transpilation": {
1494
- "title": "experimental settings for code transpilation",
1495
- "default": {},
1496
- "type": "object",
1497
- "properties": {
1498
- "loader": {
1499
- "title": "specify loader to transpile js-ts code",
1500
- "default": "babel",
1501
- "enum": [
1502
- "babel",
1503
- "swc"
1504
- ],
1505
- "type": "string"
1506
- }
1507
- },
1508
- "additionalProperties": false
1509
- }
1510
- },
1511
- "additionalProperties": false
1276
+ {
1277
+ "type": "boolean"
1512
1278
  }
1513
- }
1279
+ ]
1514
1280
  }
1515
1281
  },
1516
1282
  "additionalProperties": false
1517
1283
  },
1518
- "serve": {
1284
+ "transpilation": {
1285
+ "title": "experimental settings for code transpilation",
1519
1286
  "default": {},
1520
1287
  "type": "object",
1521
1288
  "properties": {
1522
- "notifications": {
1523
- "default": {},
1524
- "additionalProperties": false,
1525
- "type": "object",
1526
- "properties": {
1527
- "suppressSuccess": {
1528
- "title": "Defines when success notifications are shown",
1529
- "enum": [
1530
- "always",
1531
- false,
1532
- "initial",
1533
- true
1534
- ]
1535
- },
1536
- "suppressWarning": {
1537
- "title": "True to suppress the warning notifications, otherwise false",
1538
- "type": "boolean"
1539
- },
1540
- "activateTerminalOnError": {
1541
- "title": "True to activate (focus) the terminal window when a compilation error occurs",
1542
- "type": "boolean"
1543
- },
1544
- "client": {
1289
+ "loader": {
1290
+ "cli_overridable": "",
1291
+ "title": "specify loader to transpile js-ts code",
1292
+ "default": "babel",
1293
+ "anyOf": [
1294
+ {
1545
1295
  "type": "object",
1546
1296
  "properties": {
1547
- "suppressSuccess": {
1548
- "title": "Defines when success notifications are shown",
1297
+ "development": {
1549
1298
  "enum": [
1550
- "always",
1551
- false,
1552
- "initial",
1553
- true
1554
- ]
1555
- },
1556
- "suppressWarning": {
1557
- "title": "True to suppress the warning notifications, otherwise false",
1558
- "type": "boolean"
1299
+ "babel",
1300
+ "swc"
1301
+ ],
1302
+ "type": "string"
1559
1303
  },
1560
- "activateTerminalOnError": {
1561
- "title": "True to activate (focus) the terminal window when a compilation error occurs",
1562
- "type": "boolean"
1304
+ "production": {
1305
+ "enum": [
1306
+ "babel",
1307
+ "swc"
1308
+ ],
1309
+ "type": "string"
1563
1310
  }
1564
1311
  },
1565
1312
  "additionalProperties": false
1566
1313
  },
1567
- "server": {
1314
+ {
1315
+ "enum": [
1316
+ "babel",
1317
+ "swc"
1318
+ ],
1319
+ "type": "string"
1320
+ }
1321
+ ]
1322
+ }
1323
+ },
1324
+ "additionalProperties": false
1325
+ }
1326
+ },
1327
+ "additionalProperties": false
1328
+ },
1329
+ "excludesPresetEnv": {
1330
+ "title": "List of modules to exclude from `@babel/preset-env`",
1331
+ "description": "Option doesn't affect build with swc loader",
1332
+ "type": "array",
1333
+ "items": {
1334
+ "type": "string"
1335
+ }
1336
+ },
1337
+ "threadLoader": {
1338
+ "title": "Webpack's thread-loader config",
1339
+ "additionalProperties": true,
1340
+ "type": "object"
1341
+ },
1342
+ "define": {
1343
+ "title": "Define static variables that should be replaced by name with provided value",
1344
+ "default": {},
1345
+ "type": "object",
1346
+ "properties": {
1347
+ "shared": {
1348
+ "default": {},
1349
+ "additionalProperties": true,
1350
+ "type": "object"
1351
+ },
1352
+ "development": {
1353
+ "default": {},
1354
+ "additionalProperties": true,
1355
+ "type": "object"
1356
+ },
1357
+ "production": {
1358
+ "default": {},
1359
+ "additionalProperties": true,
1360
+ "type": "object"
1361
+ }
1362
+ },
1363
+ "additionalProperties": false
1364
+ },
1365
+ "generateDataQaTag": {
1366
+ "title": "`@deprecated` will be removed in next major release.",
1367
+ "default": false,
1368
+ "type": "boolean"
1369
+ },
1370
+ "enableFillActionNamePlugin": {
1371
+ "title": "`@deprecated` will be removed in next major release. Включает использование плагина fill-action-name",
1372
+ "default": false,
1373
+ "type": "boolean"
1374
+ },
1375
+ "alias": {
1376
+ "title": "`@deprecated` as cli now supports baseUrl and paths from the app's tsconfig.json file.\nJust check or add configuration to your tsconfig file and remove alias from tramvai.json",
1377
+ "additionalProperties": true,
1378
+ "type": "object"
1379
+ },
1380
+ "svgo": {
1381
+ "title": "svgo-loader options",
1382
+ "type": "object",
1383
+ "properties": {
1384
+ "plugins": {
1385
+ "title": "svgo plugins",
1386
+ "type": "array",
1387
+ "items": {}
1388
+ }
1389
+ },
1390
+ "additionalProperties": false
1391
+ },
1392
+ "imageOptimization": {
1393
+ "title": "Settings for image-webpack-loader",
1394
+ "type": "object",
1395
+ "properties": {
1396
+ "enabled": {
1397
+ "title": "Enable image-webpack-loader",
1398
+ "type": "boolean"
1399
+ },
1400
+ "options": {
1401
+ "title": "Pass options to image-webpack-loader",
1402
+ "additionalProperties": true,
1403
+ "type": "object"
1404
+ }
1405
+ },
1406
+ "additionalProperties": false
1407
+ },
1408
+ "transpileOnlyModernLibs": {
1409
+ "title": "transpile libs based only on @tinkoff/is-modern-lib",
1410
+ "default": true,
1411
+ "type": "boolean"
1412
+ },
1413
+ "webpack": {
1414
+ "title": "Webpack specific settings",
1415
+ "default": {},
1416
+ "type": "object",
1417
+ "properties": {
1418
+ "resolveAlias": {
1419
+ "title": "Browser package resolve aliases. E.g. { \"stream\": \"stream-browserify\" }",
1420
+ "additionalProperties": true,
1421
+ "type": "object"
1422
+ },
1423
+ "provide": {
1424
+ "title": "Browser packages to provide with ProvidePlugin. E.g. { \"Buffer\": [\"buffer\", \"Buffer\"] }",
1425
+ "additionalProperties": true,
1426
+ "type": "object"
1427
+ }
1428
+ },
1429
+ "additionalProperties": false
1430
+ },
1431
+ "dedupe": {
1432
+ "title": "Enable DedupePlugin",
1433
+ "default": {},
1434
+ "type": "object",
1435
+ "properties": {
1436
+ "enabled": {
1437
+ "title": "Strategy for DedupePlugin",
1438
+ "default": true,
1439
+ "type": "boolean"
1440
+ },
1441
+ "strategy": {
1442
+ "title": "Strategy for DedupePlugin",
1443
+ "default": "equality",
1444
+ "enum": [
1445
+ "equality",
1446
+ "semver"
1447
+ ],
1448
+ "type": "string"
1449
+ },
1450
+ "ignore": {
1451
+ "title": "Sets ignore to DedupePlugin",
1452
+ "type": "array",
1453
+ "items": {
1454
+ "type": "string"
1455
+ }
1456
+ }
1457
+ },
1458
+ "additionalProperties": false
1459
+ },
1460
+ "terser": {
1461
+ "title": "terser settings",
1462
+ "default": {},
1463
+ "type": "object",
1464
+ "properties": {
1465
+ "parallel": {
1466
+ "title": "Configuration for enabling parallel compression for terser plugin",
1467
+ "default": true,
1468
+ "type": "boolean"
1469
+ }
1470
+ },
1471
+ "additionalProperties": false
1472
+ },
1473
+ "cssMinimize": {
1474
+ "title": "Set minimizer for css",
1475
+ "default": "css-minimizer",
1476
+ "enum": [
1477
+ "css-minimizer",
1478
+ "csso"
1479
+ ],
1480
+ "type": "string"
1481
+ },
1482
+ "hotRefresh": {
1483
+ "title": "React hot-refresh",
1484
+ "default": {},
1485
+ "type": "object",
1486
+ "properties": {
1487
+ "enabled": {
1488
+ "title": "Enable react hot-refresh",
1489
+ "default": true,
1490
+ "type": "boolean"
1491
+ },
1492
+ "options": {
1493
+ "title": "Configure react hot-refresh https://github.com/pmmmwh/react-refresh-webpack-plugin#options",
1494
+ "type": "object",
1495
+ "properties": {
1496
+ "overlay": {
1497
+ "anyOf": [
1498
+ {
1568
1499
  "type": "object",
1569
- "properties": {
1570
- "suppressSuccess": {
1571
- "title": "Defines when success notifications are shown",
1572
- "enum": [
1573
- "always",
1574
- false,
1575
- "initial",
1576
- true
1577
- ]
1578
- },
1579
- "suppressWarning": {
1580
- "title": "True to suppress the warning notifications, otherwise false",
1581
- "type": "boolean"
1582
- },
1583
- "activateTerminalOnError": {
1584
- "title": "True to activate (focus) the terminal window when a compilation error occurs",
1585
- "type": "boolean"
1586
- }
1587
- },
1588
1500
  "additionalProperties": false
1589
- }
1590
- }
1591
- },
1592
- "configurations": {
1593
- "default": {},
1594
- "type": "object",
1595
- "properties": {
1596
- "sourceMap": {
1597
- "title": "Enable source maps in development build (for client and server build)",
1598
- "default": false,
1599
- "type": "boolean"
1600
- },
1601
- "modern": {
1602
- "title": "Enable development build for modern browsers",
1603
- "default": true,
1604
- "type": "boolean"
1605
1501
  },
1606
- "hotRefresh": {
1607
- "title": "Enable react hot-refresh",
1608
- "default": true,
1502
+ {
1609
1503
  "type": "boolean"
1610
- },
1611
- "hotRefreshOptions": {
1612
- "title": "Configure react hot-refresh https://github.com/pmmmwh/react-refresh-webpack-plugin#options",
1613
- "type": "object",
1614
- "additionalProperties": {},
1615
- "properties": {
1616
- "overlay": {
1617
- "anyOf": [
1618
- {
1619
- "type": "object",
1620
- "additionalProperties": false
1621
- },
1622
- {
1623
- "type": "boolean"
1624
- }
1625
- ]
1626
- }
1627
- }
1628
- },
1629
- "experiments": {
1630
- "title": "Experimental settings",
1631
- "default": {},
1632
- "type": "object",
1633
- "properties": {
1634
- "webpack": {
1635
- "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
1636
- "default": {},
1637
- "additionalProperties": false,
1638
- "type": "object",
1639
- "properties": {
1640
- "asyncWebAssembly": {
1641
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
1642
- "type": "boolean"
1643
- },
1644
- "backCompat": {
1645
- "title": "Enable backward compatibility with webpack previous major versions",
1646
- "default": false,
1647
- "type": "boolean"
1648
- },
1649
- "cacheUnaffected": {
1650
- "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
1651
- "default": true,
1652
- "type": "boolean"
1653
- },
1654
- "futureDefaults": {
1655
- "description": "Apply defaults of next major version.",
1656
- "type": "boolean"
1657
- },
1658
- "layers": {
1659
- "description": "Enable module layers.",
1660
- "type": "boolean"
1661
- },
1662
- "outputModule": {
1663
- "description": "Allow output javascript files as module source type.",
1664
- "type": "boolean"
1665
- },
1666
- "syncWebAssembly": {
1667
- "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
1668
- "type": "boolean"
1669
- },
1670
- "topLevelAwait": {
1671
- "description": "Allow using top-level-await in EcmaScript Modules.",
1672
- "type": "boolean"
1673
- },
1674
- "css": {
1675
- "description": "Enable css support.",
1676
- "anyOf": [
1677
- {
1678
- "description": "Options for css handling.",
1679
- "type": "object",
1680
- "properties": {
1681
- "exportsOnly": {
1682
- "description": "Avoid generating and loading a stylesheet and only embed exports from css into output javascript files.",
1683
- "type": "boolean"
1684
- }
1685
- },
1686
- "additionalProperties": false
1687
- },
1688
- {
1689
- "type": "boolean"
1690
- }
1691
- ]
1692
- }
1693
- }
1694
- },
1695
- "minicss": {
1696
- "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
1697
- "default": {},
1698
- "type": "object",
1699
- "properties": {
1700
- "useImportModule": {
1701
- "title": "Use a new webpack API to execute modules instead of child compilers. This improves performance and memory usage a lot.",
1702
- "default": true,
1703
- "type": "boolean"
1704
- }
1705
- },
1706
- "additionalProperties": false
1707
- },
1708
- "transpilation": {
1709
- "title": "experimental settings for code transpilation",
1710
- "default": {},
1711
- "type": "object",
1712
- "properties": {
1713
- "loader": {
1714
- "title": "specify loader to transpile js-ts code",
1715
- "default": "babel",
1716
- "enum": [
1717
- "babel",
1718
- "swc"
1719
- ],
1720
- "type": "string"
1721
- }
1722
- },
1723
- "additionalProperties": false
1724
- }
1725
- },
1726
- "additionalProperties": false
1727
1504
  }
1728
- },
1729
- "additionalProperties": false
1505
+ ]
1506
+ }
1507
+ },
1508
+ "additionalProperties": false
1509
+ }
1510
+ },
1511
+ "additionalProperties": false
1512
+ },
1513
+ "notifications": {
1514
+ "title": "Controls build notifications settings during development",
1515
+ "default": {},
1516
+ "type": "object",
1517
+ "properties": {
1518
+ "suppressSuccess": {
1519
+ "title": "Defines when success notifications are shown",
1520
+ "enum": [
1521
+ "always",
1522
+ false,
1523
+ "initial",
1524
+ true
1525
+ ]
1526
+ },
1527
+ "suppressWarning": {
1528
+ "title": "True to suppress the warning notifications, otherwise false",
1529
+ "type": "boolean"
1530
+ },
1531
+ "activateTerminalOnError": {
1532
+ "title": "True to activate (focus) the terminal window when a compilation error occurs",
1533
+ "type": "boolean"
1534
+ },
1535
+ "client": {
1536
+ "type": "object",
1537
+ "properties": {
1538
+ "suppressSuccess": {
1539
+ "title": "Defines when success notifications are shown",
1540
+ "enum": [
1541
+ "always",
1542
+ false,
1543
+ "initial",
1544
+ true
1545
+ ]
1546
+ },
1547
+ "suppressWarning": {
1548
+ "title": "True to suppress the warning notifications, otherwise false",
1549
+ "type": "boolean"
1550
+ },
1551
+ "activateTerminalOnError": {
1552
+ "title": "True to activate (focus) the terminal window when a compilation error occurs",
1553
+ "type": "boolean"
1554
+ }
1555
+ },
1556
+ "additionalProperties": false
1557
+ },
1558
+ "server": {
1559
+ "type": "object",
1560
+ "properties": {
1561
+ "suppressSuccess": {
1562
+ "title": "Defines when success notifications are shown",
1563
+ "enum": [
1564
+ "always",
1565
+ false,
1566
+ "initial",
1567
+ true
1568
+ ]
1569
+ },
1570
+ "suppressWarning": {
1571
+ "title": "True to suppress the warning notifications, otherwise false",
1572
+ "type": "boolean"
1573
+ },
1574
+ "activateTerminalOnError": {
1575
+ "title": "True to activate (focus) the terminal window when a compilation error occurs",
1576
+ "type": "boolean"
1730
1577
  }
1731
1578
  },
1732
1579
  "additionalProperties": false
1733
1580
  }
1734
1581
  },
1735
1582
  "additionalProperties": false
1736
- },
1737
- "name": {
1738
- "type": "string"
1739
- },
1740
- "root": {
1741
- "type": "string"
1742
- },
1743
- "version": {
1744
- "type": "string"
1745
1583
  }
1746
1584
  },
1747
- "additionalProperties": false,
1748
1585
  "required": [
1749
1586
  "name",
1750
1587
  "root",
@@ -1760,556 +1597,208 @@
1760
1597
  }
1761
1598
  },
1762
1599
  "then": {
1600
+ "additionalProperties": false,
1763
1601
  "type": "object",
1764
1602
  "properties": {
1603
+ "name": {
1604
+ "title": "name of the project",
1605
+ "type": "string"
1606
+ },
1607
+ "root": {
1608
+ "title": "path to the root directory relative to the tramvai.json",
1609
+ "type": "string"
1610
+ },
1765
1611
  "type": {
1766
1612
  "type": "string",
1767
1613
  "enum": [
1768
1614
  "child-app"
1769
1615
  ]
1770
1616
  },
1771
- "commands": {
1617
+ "output": {
1618
+ "title": "Path to build module assets",
1619
+ "default": "dist/child-app",
1620
+ "type": "string"
1621
+ },
1622
+ "postcss": {
1772
1623
  "default": {},
1773
1624
  "type": "object",
1774
1625
  "properties": {
1775
- "build": {
1776
- "default": {},
1777
- "type": "object",
1778
- "properties": {
1779
- "options": {
1780
- "default": {},
1626
+ "config": {
1627
+ "title": "Path to postcss config file. By default, `postcss.config.js` file is used",
1628
+ "type": "string"
1629
+ },
1630
+ "cssLocalIdentName": {
1631
+ "cli_overridable": "",
1632
+ "title": "CSS identifiers build algorithm",
1633
+ "default": "[hash:base64:5]",
1634
+ "anyOf": [
1635
+ {
1781
1636
  "type": "object",
1782
1637
  "properties": {
1783
- "output": {
1784
- "title": "Path to build module assets",
1785
- "default": "dist/child-app",
1638
+ "development": {
1639
+ "type": "string"
1640
+ },
1641
+ "production": {
1786
1642
  "type": "string"
1787
1643
  }
1788
1644
  },
1789
1645
  "additionalProperties": false
1790
1646
  },
1791
- "configurations": {
1792
- "default": {},
1793
- "additionalProperties": false,
1794
- "type": "object",
1795
- "properties": {
1796
- "modern": {
1797
- "title": "Enable production build for modern browsers",
1798
- "default": true,
1799
- "type": "boolean"
1800
- },
1801
- "dedupe": {
1802
- "title": "Enable DedupePlugin",
1803
- "default": "equality",
1804
- "enum": [
1805
- "equality",
1806
- false,
1807
- "semver"
1808
- ]
1809
- },
1810
- "dedupeIgnore": {
1811
- "title": "Sets ignore to DedupePlugin",
1812
- "type": "array",
1813
- "items": {
1814
- "type": "string"
1815
- }
1816
- },
1817
- "removeTypeofWindow": {
1818
- "title": "Enable replacing `typeof window` expression",
1819
- "default": true,
1820
- "type": "boolean"
1821
- },
1822
- "sourceMap": {
1823
- "title": "Enable source maps in production build",
1824
- "default": false,
1825
- "type": "boolean"
1826
- },
1827
- "sourceMapServer": {
1828
- "title": "Enable source maps for server assets in production build",
1829
- "default": false,
1830
- "type": "boolean"
1831
- },
1832
- "terserParallel": {
1833
- "title": "Configuration for enabling parallel compression for terser plugin",
1834
- "default": true,
1835
- "type": "boolean"
1836
- },
1837
- "excludesPresetEnv": {
1838
- "title": "List of modules to exclude from",
1839
- "type": "array",
1840
- "items": {
1841
- "type": "string"
1842
- }
1843
- },
1844
- "threadLoader": {
1845
- "title": "thread-loader config",
1846
- "additionalProperties": true,
1847
- "type": "object"
1848
- },
1849
- "definePlugin": {
1850
- "title": "Define plugin config",
1851
- "default": {
1852
- "prod": {},
1853
- "dev": {}
1854
- },
1855
- "additionalProperties": true,
1856
- "type": "object"
1857
- },
1858
- "generateDataQaTag": {
1859
- "default": false,
1860
- "type": "boolean"
1861
- },
1862
- "enableFillActionNamePlugin": {
1863
- "default": false,
1864
- "type": "boolean"
1865
- },
1866
- "cssMinimize": {
1867
- "title": "Set minimizer for css",
1868
- "type": "string",
1869
- "enum": [
1870
- "csso"
1871
- ]
1872
- },
1873
- "postcss": {
1874
- "default": {
1875
- "config": "postcss.config",
1876
- "cssLocalIdentName": "[hash:base64:5]"
1877
- },
1878
- "type": "object",
1879
- "properties": {
1880
- "config": {
1881
- "title": "Path to postcss config file",
1882
- "type": "string"
1883
- },
1884
- "cssLocalIdentName": {
1885
- "title": "CSS identifiers build algorythm",
1886
- "type": "string"
1887
- },
1888
- "cssLocalIdentNameDev": {
1889
- "title": "CSS identifiers build algorythm for development buld",
1890
- "type": "string"
1891
- },
1892
- "cssLocalIdentNameProd": {
1893
- "title": "CSS identifiers build algorythm for production build",
1894
- "type": "string"
1895
- },
1896
- "assetsConfig": {
1897
- "title": "Path to postcss config file for assets",
1898
- "type": "string"
1899
- }
1900
- },
1901
- "additionalProperties": false
1902
- },
1903
- "alias": {
1904
- "title": "`@@deprecated @tramvai/cli now supports baseUrl and paths from the app's tsconfig.json file.\nJust check or add configuration to your tsconfig file and remove alias from tramvai.json`",
1905
- "additionalProperties": true,
1906
- "type": "object"
1907
- },
1908
- "svgo": {
1909
- "title": "svgo-loader options",
1910
- "type": "object",
1911
- "properties": {
1912
- "plugins": {
1913
- "title": "svgo plugins",
1914
- "type": "array",
1915
- "items": {
1916
- "type": "object",
1917
- "additionalProperties": false
1918
- }
1919
- }
1920
- },
1921
- "additionalProperties": false
1922
- },
1923
- "imageOptimization": {
1924
- "title": "Settings for image-webpack-loader",
1925
- "type": "object",
1926
- "properties": {
1927
- "enabled": {
1928
- "title": "Enable image-webpack-loader",
1929
- "type": "boolean"
1930
- },
1931
- "options": {
1932
- "title": "Pass options to image-webpack-loader",
1933
- "additionalProperties": true,
1934
- "type": "object"
1935
- }
1936
- },
1937
- "additionalProperties": false
1938
- },
1939
- "transpileOnlyModernLibs": {
1940
- "title": "transpile libs based only on @tinkoff/is-modern-lib",
1941
- "default": true,
1942
- "type": "boolean"
1943
- },
1944
- "webpackResolveAlias": {
1945
- "title": "Browser package resolve aliases. E.g. { \"stream\": \"stream-browserify\" }",
1946
- "additionalProperties": true,
1947
- "type": "object"
1948
- },
1949
- "webpackProvide": {
1950
- "title": "Browser packages to provide with ProvidePlugin. E.g. { \"Buffer\": [\"buffer\", \"Buffer\"] }",
1951
- "additionalProperties": true,
1952
- "type": "object"
1953
- },
1954
- "fileSystemPages": {
1955
- "title": "experimental settings for File-System Routing feature",
1956
- "default": {},
1957
- "type": "object",
1958
- "properties": {
1959
- "enable": {
1960
- "title": "Read pages from file system",
1961
- "default": false,
1962
- "type": "boolean"
1963
- },
1964
- "routesDir": {
1965
- "title": "Folder with pages from which static routers are generated",
1966
- "default": "routes",
1967
- "anyOf": [
1968
- {
1969
- "enum": [
1970
- false
1971
- ],
1972
- "type": "boolean"
1973
- },
1974
- {
1975
- "type": "string"
1976
- }
1977
- ]
1978
- },
1979
- "pagesDir": {
1980
- "title": "Folder with components which can be manually added to static routers",
1981
- "default": "pages",
1982
- "anyOf": [
1983
- {
1984
- "enum": [
1985
- false
1986
- ],
1987
- "type": "boolean"
1988
- },
1989
- {
1990
- "type": "string"
1991
- }
1992
- ]
1993
- }
1994
- },
1995
- "additionalProperties": false
1996
- },
1997
- "experiments": {
1998
- "title": "Experimental settings",
1999
- "default": {},
2000
- "type": "object",
2001
- "properties": {
2002
- "webpack": {
2003
- "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
2004
- "default": {},
2005
- "additionalProperties": false,
2006
- "type": "object",
2007
- "properties": {
2008
- "asyncWebAssembly": {
2009
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
2010
- "type": "boolean"
2011
- },
2012
- "backCompat": {
2013
- "title": "Enable backward compatibility with webpack previous major versions",
2014
- "default": false,
2015
- "type": "boolean"
2016
- },
2017
- "cacheUnaffected": {
2018
- "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
2019
- "default": true,
2020
- "type": "boolean"
2021
- },
2022
- "futureDefaults": {
2023
- "description": "Apply defaults of next major version.",
2024
- "type": "boolean"
2025
- },
2026
- "layers": {
2027
- "description": "Enable module layers.",
2028
- "type": "boolean"
2029
- },
2030
- "outputModule": {
2031
- "description": "Allow output javascript files as module source type.",
2032
- "type": "boolean"
2033
- },
2034
- "syncWebAssembly": {
2035
- "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
2036
- "type": "boolean"
2037
- },
2038
- "topLevelAwait": {
2039
- "description": "Allow using top-level-await in EcmaScript Modules.",
2040
- "type": "boolean"
2041
- },
2042
- "css": {
2043
- "description": "Enable css support.",
2044
- "anyOf": [
2045
- {
2046
- "description": "Options for css handling.",
2047
- "type": "object",
2048
- "properties": {
2049
- "exportsOnly": {
2050
- "description": "Avoid generating and loading a stylesheet and only embed exports from css into output javascript files.",
2051
- "type": "boolean"
2052
- }
2053
- },
2054
- "additionalProperties": false
2055
- },
2056
- {
2057
- "type": "boolean"
2058
- }
2059
- ]
2060
- }
2061
- }
2062
- },
2063
- "minicss": {
2064
- "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
2065
- "default": {},
2066
- "type": "object",
2067
- "properties": {
2068
- "useImportModule": {
2069
- "title": "Use a new webpack API to execute modules instead of child compilers. This improves performance and memory usage a lot.",
2070
- "default": true,
2071
- "type": "boolean"
2072
- }
2073
- },
2074
- "additionalProperties": false
2075
- },
2076
- "transpilation": {
2077
- "title": "experimental settings for code transpilation",
2078
- "default": {},
2079
- "type": "object",
2080
- "properties": {
2081
- "loader": {
2082
- "title": "specify loader to transpile js-ts code",
2083
- "default": "babel",
2084
- "enum": [
2085
- "babel",
2086
- "swc"
2087
- ],
2088
- "type": "string"
2089
- }
2090
- },
2091
- "additionalProperties": false
2092
- }
2093
- },
2094
- "additionalProperties": false
2095
- }
2096
- }
1647
+ {
1648
+ "type": "string"
1649
+ }
1650
+ ]
1651
+ },
1652
+ "assetsConfig": {
1653
+ "title": "Path to postcss config file for assets",
1654
+ "type": "string"
1655
+ },
1656
+ "cssModulePattern": {
1657
+ "title": "Enable CSS modules for all files matching /RegExp/i.test(filename) regexp.",
1658
+ "type": "string"
1659
+ }
1660
+ },
1661
+ "additionalProperties": false
1662
+ },
1663
+ "sourceMap": {
1664
+ "cli_overridable": "",
1665
+ "title": "Enable source maps",
1666
+ "default": false,
1667
+ "anyOf": [
1668
+ {
1669
+ "type": "object",
1670
+ "properties": {
1671
+ "development": {
1672
+ "type": "boolean"
1673
+ },
1674
+ "production": {
1675
+ "type": "boolean"
2097
1676
  }
2098
1677
  },
2099
1678
  "additionalProperties": false
2100
1679
  },
2101
- "serve": {
1680
+ {
1681
+ "type": "boolean"
1682
+ }
1683
+ ]
1684
+ },
1685
+ "experiments": {
1686
+ "title": "Change different experimental cli settings",
1687
+ "default": {},
1688
+ "type": "object",
1689
+ "properties": {
1690
+ "webpack": {
1691
+ "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
2102
1692
  "default": {},
2103
1693
  "type": "object",
2104
1694
  "properties": {
2105
- "notifications": {
2106
- "default": {},
2107
- "additionalProperties": false,
2108
- "type": "object",
2109
- "properties": {
2110
- "suppressSuccess": {
2111
- "title": "Defines when success notifications are shown",
2112
- "enum": [
2113
- "always",
2114
- false,
2115
- "initial",
2116
- true
2117
- ]
2118
- },
2119
- "suppressWarning": {
2120
- "title": "True to suppress the warning notifications, otherwise false",
2121
- "type": "boolean"
2122
- },
2123
- "activateTerminalOnError": {
2124
- "title": "True to activate (focus) the terminal window when a compilation error occurs",
2125
- "type": "boolean"
2126
- },
2127
- "client": {
2128
- "type": "object",
2129
- "properties": {
2130
- "suppressSuccess": {
2131
- "title": "Defines when success notifications are shown",
2132
- "enum": [
2133
- "always",
2134
- false,
2135
- "initial",
2136
- true
2137
- ]
2138
- },
2139
- "suppressWarning": {
2140
- "title": "True to suppress the warning notifications, otherwise false",
2141
- "type": "boolean"
2142
- },
2143
- "activateTerminalOnError": {
2144
- "title": "True to activate (focus) the terminal window when a compilation error occurs",
2145
- "type": "boolean"
2146
- }
2147
- },
2148
- "additionalProperties": false
2149
- },
2150
- "server": {
1695
+ "asyncWebAssembly": {
1696
+ "description": "Support WebAssembly as asynchronous EcmaScript Module.",
1697
+ "type": "boolean"
1698
+ },
1699
+ "backCompat": {
1700
+ "description": "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs.",
1701
+ "title": "Enable backward compatibility with webpack previous major versions",
1702
+ "default": false,
1703
+ "type": "boolean"
1704
+ },
1705
+ "cacheUnaffected": {
1706
+ "description": "Enable additional in memory caching of modules that are unchanged and reference only unchanged modules.",
1707
+ "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
1708
+ "default": true,
1709
+ "type": "boolean"
1710
+ },
1711
+ "futureDefaults": {
1712
+ "description": "Apply defaults of next major version.",
1713
+ "type": "boolean"
1714
+ },
1715
+ "layers": {
1716
+ "description": "Enable module layers.",
1717
+ "type": "boolean"
1718
+ },
1719
+ "outputModule": {
1720
+ "description": "Allow output javascript files as module source type.",
1721
+ "type": "boolean"
1722
+ },
1723
+ "syncWebAssembly": {
1724
+ "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
1725
+ "type": "boolean"
1726
+ },
1727
+ "topLevelAwait": {
1728
+ "description": "Allow using top-level-await in EcmaScript Modules.",
1729
+ "type": "boolean"
1730
+ }
1731
+ },
1732
+ "additionalProperties": false
1733
+ },
1734
+ "minicss": {
1735
+ "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
1736
+ "default": {},
1737
+ "type": "object",
1738
+ "properties": {
1739
+ "useImportModule": {
1740
+ "cli_overridable": "",
1741
+ "title": "Use a new webpack API to execute modules instead of child compilers. This improves performance and memory usage a lot.",
1742
+ "default": true,
1743
+ "anyOf": [
1744
+ {
2151
1745
  "type": "object",
2152
1746
  "properties": {
2153
- "suppressSuccess": {
2154
- "title": "Defines when success notifications are shown",
2155
- "enum": [
2156
- "always",
2157
- false,
2158
- "initial",
2159
- true
2160
- ]
2161
- },
2162
- "suppressWarning": {
2163
- "title": "True to suppress the warning notifications, otherwise false",
1747
+ "development": {
2164
1748
  "type": "boolean"
2165
1749
  },
2166
- "activateTerminalOnError": {
2167
- "title": "True to activate (focus) the terminal window when a compilation error occurs",
1750
+ "production": {
2168
1751
  "type": "boolean"
2169
1752
  }
2170
1753
  },
2171
1754
  "additionalProperties": false
2172
- }
2173
- }
2174
- },
2175
- "configurations": {
2176
- "default": {},
2177
- "type": "object",
2178
- "properties": {
2179
- "sourceMap": {
2180
- "title": "Enable source maps in development build (for client and server build)",
2181
- "default": false,
2182
- "type": "boolean"
2183
- },
2184
- "modern": {
2185
- "title": "Enable development build for modern browsers",
2186
- "default": true,
2187
- "type": "boolean"
2188
1755
  },
2189
- "hotRefresh": {
2190
- "title": "Enable react hot-refresh",
2191
- "default": true,
1756
+ {
2192
1757
  "type": "boolean"
2193
- },
2194
- "hotRefreshOptions": {
2195
- "title": "Configure react hot-refresh https://github.com/pmmmwh/react-refresh-webpack-plugin#options",
2196
- "type": "object",
2197
- "additionalProperties": {},
2198
- "properties": {
2199
- "overlay": {
2200
- "anyOf": [
2201
- {
2202
- "type": "object",
2203
- "additionalProperties": false
2204
- },
2205
- {
2206
- "type": "boolean"
2207
- }
2208
- ]
2209
- }
2210
- }
2211
- },
2212
- "experiments": {
2213
- "title": "Experimental settings",
2214
- "default": {},
1758
+ }
1759
+ ]
1760
+ }
1761
+ },
1762
+ "additionalProperties": false
1763
+ },
1764
+ "transpilation": {
1765
+ "title": "experimental settings for code transpilation",
1766
+ "default": {},
1767
+ "type": "object",
1768
+ "properties": {
1769
+ "loader": {
1770
+ "cli_overridable": "",
1771
+ "title": "specify loader to transpile js-ts code",
1772
+ "default": "babel",
1773
+ "anyOf": [
1774
+ {
2215
1775
  "type": "object",
2216
1776
  "properties": {
2217
- "webpack": {
2218
- "title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
2219
- "default": {},
2220
- "additionalProperties": false,
2221
- "type": "object",
2222
- "properties": {
2223
- "asyncWebAssembly": {
2224
- "description": "Support WebAssembly as asynchronous EcmaScript Module.",
2225
- "type": "boolean"
2226
- },
2227
- "backCompat": {
2228
- "title": "Enable backward compatibility with webpack previous major versions",
2229
- "default": false,
2230
- "type": "boolean"
2231
- },
2232
- "cacheUnaffected": {
2233
- "title": "Enable additional in-memory caching of modules which are unchanged and reference only unchanged modules.",
2234
- "default": true,
2235
- "type": "boolean"
2236
- },
2237
- "futureDefaults": {
2238
- "description": "Apply defaults of next major version.",
2239
- "type": "boolean"
2240
- },
2241
- "layers": {
2242
- "description": "Enable module layers.",
2243
- "type": "boolean"
2244
- },
2245
- "outputModule": {
2246
- "description": "Allow output javascript files as module source type.",
2247
- "type": "boolean"
2248
- },
2249
- "syncWebAssembly": {
2250
- "description": "Support WebAssembly as synchronous EcmaScript Module (outdated).",
2251
- "type": "boolean"
2252
- },
2253
- "topLevelAwait": {
2254
- "description": "Allow using top-level-await in EcmaScript Modules.",
2255
- "type": "boolean"
2256
- },
2257
- "css": {
2258
- "description": "Enable css support.",
2259
- "anyOf": [
2260
- {
2261
- "description": "Options for css handling.",
2262
- "type": "object",
2263
- "properties": {
2264
- "exportsOnly": {
2265
- "description": "Avoid generating and loading a stylesheet and only embed exports from css into output javascript files.",
2266
- "type": "boolean"
2267
- }
2268
- },
2269
- "additionalProperties": false
2270
- },
2271
- {
2272
- "type": "boolean"
2273
- }
2274
- ]
2275
- }
2276
- }
2277
- },
2278
- "minicss": {
2279
- "title": "experimental settings for [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin)",
2280
- "default": {},
2281
- "type": "object",
2282
- "properties": {
2283
- "useImportModule": {
2284
- "title": "Use a new webpack API to execute modules instead of child compilers. This improves performance and memory usage a lot.",
2285
- "default": true,
2286
- "type": "boolean"
2287
- }
2288
- },
2289
- "additionalProperties": false
1777
+ "development": {
1778
+ "enum": [
1779
+ "babel",
1780
+ "swc"
1781
+ ],
1782
+ "type": "string"
2290
1783
  },
2291
- "transpilation": {
2292
- "title": "experimental settings for code transpilation",
2293
- "default": {},
2294
- "type": "object",
2295
- "properties": {
2296
- "loader": {
2297
- "title": "specify loader to transpile js-ts code",
2298
- "default": "babel",
2299
- "enum": [
2300
- "babel",
2301
- "swc"
2302
- ],
2303
- "type": "string"
2304
- }
2305
- },
2306
- "additionalProperties": false
1784
+ "production": {
1785
+ "enum": [
1786
+ "babel",
1787
+ "swc"
1788
+ ],
1789
+ "type": "string"
2307
1790
  }
2308
1791
  },
2309
1792
  "additionalProperties": false
1793
+ },
1794
+ {
1795
+ "enum": [
1796
+ "babel",
1797
+ "swc"
1798
+ ],
1799
+ "type": "string"
2310
1800
  }
2311
- },
2312
- "additionalProperties": false
1801
+ ]
2313
1802
  }
2314
1803
  },
2315
1804
  "additionalProperties": false
@@ -2317,17 +1806,262 @@
2317
1806
  },
2318
1807
  "additionalProperties": false
2319
1808
  },
2320
- "name": {
2321
- "type": "string"
1809
+ "excludesPresetEnv": {
1810
+ "title": "List of modules to exclude from `@babel/preset-env`",
1811
+ "description": "Option doesn't affect build with swc loader",
1812
+ "type": "array",
1813
+ "items": {
1814
+ "type": "string"
1815
+ }
2322
1816
  },
2323
- "root": {
2324
- "type": "string"
1817
+ "threadLoader": {
1818
+ "title": "Webpack's thread-loader config",
1819
+ "additionalProperties": true,
1820
+ "type": "object"
1821
+ },
1822
+ "define": {
1823
+ "title": "Define static variables that should be replaced by name with provided value",
1824
+ "default": {},
1825
+ "type": "object",
1826
+ "properties": {
1827
+ "shared": {
1828
+ "default": {},
1829
+ "additionalProperties": true,
1830
+ "type": "object"
1831
+ },
1832
+ "development": {
1833
+ "default": {},
1834
+ "additionalProperties": true,
1835
+ "type": "object"
1836
+ },
1837
+ "production": {
1838
+ "default": {},
1839
+ "additionalProperties": true,
1840
+ "type": "object"
1841
+ }
1842
+ },
1843
+ "additionalProperties": false
1844
+ },
1845
+ "generateDataQaTag": {
1846
+ "title": "`@deprecated` will be removed in next major release.",
1847
+ "default": false,
1848
+ "type": "boolean"
1849
+ },
1850
+ "enableFillActionNamePlugin": {
1851
+ "title": "`@deprecated` will be removed in next major release. Включает использование плагина fill-action-name",
1852
+ "default": false,
1853
+ "type": "boolean"
1854
+ },
1855
+ "alias": {
1856
+ "title": "`@deprecated` as cli now supports baseUrl and paths from the app's tsconfig.json file.\nJust check or add configuration to your tsconfig file and remove alias from tramvai.json",
1857
+ "additionalProperties": true,
1858
+ "type": "object"
1859
+ },
1860
+ "svgo": {
1861
+ "title": "svgo-loader options",
1862
+ "type": "object",
1863
+ "properties": {
1864
+ "plugins": {
1865
+ "title": "svgo plugins",
1866
+ "type": "array",
1867
+ "items": {}
1868
+ }
1869
+ },
1870
+ "additionalProperties": false
1871
+ },
1872
+ "imageOptimization": {
1873
+ "title": "Settings for image-webpack-loader",
1874
+ "type": "object",
1875
+ "properties": {
1876
+ "enabled": {
1877
+ "title": "Enable image-webpack-loader",
1878
+ "type": "boolean"
1879
+ },
1880
+ "options": {
1881
+ "title": "Pass options to image-webpack-loader",
1882
+ "additionalProperties": true,
1883
+ "type": "object"
1884
+ }
1885
+ },
1886
+ "additionalProperties": false
1887
+ },
1888
+ "transpileOnlyModernLibs": {
1889
+ "title": "transpile libs based only on @tinkoff/is-modern-lib",
1890
+ "default": true,
1891
+ "type": "boolean"
1892
+ },
1893
+ "webpack": {
1894
+ "title": "Webpack specific settings",
1895
+ "default": {},
1896
+ "type": "object",
1897
+ "properties": {
1898
+ "resolveAlias": {
1899
+ "title": "Browser package resolve aliases. E.g. { \"stream\": \"stream-browserify\" }",
1900
+ "additionalProperties": true,
1901
+ "type": "object"
1902
+ },
1903
+ "provide": {
1904
+ "title": "Browser packages to provide with ProvidePlugin. E.g. { \"Buffer\": [\"buffer\", \"Buffer\"] }",
1905
+ "additionalProperties": true,
1906
+ "type": "object"
1907
+ }
1908
+ },
1909
+ "additionalProperties": false
1910
+ },
1911
+ "dedupe": {
1912
+ "title": "Enable DedupePlugin",
1913
+ "default": {},
1914
+ "type": "object",
1915
+ "properties": {
1916
+ "enabled": {
1917
+ "title": "Strategy for DedupePlugin",
1918
+ "default": true,
1919
+ "type": "boolean"
1920
+ },
1921
+ "strategy": {
1922
+ "title": "Strategy for DedupePlugin",
1923
+ "default": "equality",
1924
+ "enum": [
1925
+ "equality",
1926
+ "semver"
1927
+ ],
1928
+ "type": "string"
1929
+ },
1930
+ "ignore": {
1931
+ "title": "Sets ignore to DedupePlugin",
1932
+ "type": "array",
1933
+ "items": {
1934
+ "type": "string"
1935
+ }
1936
+ }
1937
+ },
1938
+ "additionalProperties": false
1939
+ },
1940
+ "terser": {
1941
+ "title": "terser settings",
1942
+ "default": {},
1943
+ "type": "object",
1944
+ "properties": {
1945
+ "parallel": {
1946
+ "title": "Configuration for enabling parallel compression for terser plugin",
1947
+ "default": true,
1948
+ "type": "boolean"
1949
+ }
1950
+ },
1951
+ "additionalProperties": false
2325
1952
  },
2326
- "version": {
1953
+ "cssMinimize": {
1954
+ "title": "Set minimizer for css",
1955
+ "default": "css-minimizer",
1956
+ "enum": [
1957
+ "css-minimizer",
1958
+ "csso"
1959
+ ],
2327
1960
  "type": "string"
1961
+ },
1962
+ "hotRefresh": {
1963
+ "title": "React hot-refresh",
1964
+ "default": {},
1965
+ "type": "object",
1966
+ "properties": {
1967
+ "enabled": {
1968
+ "title": "Enable react hot-refresh",
1969
+ "default": true,
1970
+ "type": "boolean"
1971
+ },
1972
+ "options": {
1973
+ "title": "Configure react hot-refresh https://github.com/pmmmwh/react-refresh-webpack-plugin#options",
1974
+ "type": "object",
1975
+ "properties": {
1976
+ "overlay": {
1977
+ "anyOf": [
1978
+ {
1979
+ "type": "object",
1980
+ "additionalProperties": false
1981
+ },
1982
+ {
1983
+ "type": "boolean"
1984
+ }
1985
+ ]
1986
+ }
1987
+ },
1988
+ "additionalProperties": false
1989
+ }
1990
+ },
1991
+ "additionalProperties": false
1992
+ },
1993
+ "notifications": {
1994
+ "title": "Controls build notifications settings during development",
1995
+ "default": {},
1996
+ "type": "object",
1997
+ "properties": {
1998
+ "suppressSuccess": {
1999
+ "title": "Defines when success notifications are shown",
2000
+ "enum": [
2001
+ "always",
2002
+ false,
2003
+ "initial",
2004
+ true
2005
+ ]
2006
+ },
2007
+ "suppressWarning": {
2008
+ "title": "True to suppress the warning notifications, otherwise false",
2009
+ "type": "boolean"
2010
+ },
2011
+ "activateTerminalOnError": {
2012
+ "title": "True to activate (focus) the terminal window when a compilation error occurs",
2013
+ "type": "boolean"
2014
+ },
2015
+ "client": {
2016
+ "type": "object",
2017
+ "properties": {
2018
+ "suppressSuccess": {
2019
+ "title": "Defines when success notifications are shown",
2020
+ "enum": [
2021
+ "always",
2022
+ false,
2023
+ "initial",
2024
+ true
2025
+ ]
2026
+ },
2027
+ "suppressWarning": {
2028
+ "title": "True to suppress the warning notifications, otherwise false",
2029
+ "type": "boolean"
2030
+ },
2031
+ "activateTerminalOnError": {
2032
+ "title": "True to activate (focus) the terminal window when a compilation error occurs",
2033
+ "type": "boolean"
2034
+ }
2035
+ },
2036
+ "additionalProperties": false
2037
+ },
2038
+ "server": {
2039
+ "type": "object",
2040
+ "properties": {
2041
+ "suppressSuccess": {
2042
+ "title": "Defines when success notifications are shown",
2043
+ "enum": [
2044
+ "always",
2045
+ false,
2046
+ "initial",
2047
+ true
2048
+ ]
2049
+ },
2050
+ "suppressWarning": {
2051
+ "title": "True to suppress the warning notifications, otherwise false",
2052
+ "type": "boolean"
2053
+ },
2054
+ "activateTerminalOnError": {
2055
+ "title": "True to activate (focus) the terminal window when a compilation error occurs",
2056
+ "type": "boolean"
2057
+ }
2058
+ },
2059
+ "additionalProperties": false
2060
+ }
2061
+ },
2062
+ "additionalProperties": false
2328
2063
  }
2329
2064
  },
2330
- "additionalProperties": false,
2331
2065
  "required": [
2332
2066
  "name",
2333
2067
  "root",
@@ -2335,14 +2069,9 @@
2335
2069
  ]
2336
2070
  },
2337
2071
  "else": {
2072
+ "additionalProperties": false,
2338
2073
  "type": "object",
2339
2074
  "properties": {
2340
- "type": {
2341
- "type": "string",
2342
- "enum": [
2343
- "package"
2344
- ]
2345
- },
2346
2075
  "name": {
2347
2076
  "title": "Package name",
2348
2077
  "type": "string"
@@ -2350,9 +2079,14 @@
2350
2079
  "root": {
2351
2080
  "title": "Package root folder (need to contain `package.json`, `tsconfig.json` and `src` folder with source code)",
2352
2081
  "type": "string"
2082
+ },
2083
+ "type": {
2084
+ "type": "string",
2085
+ "enum": [
2086
+ "package"
2087
+ ]
2353
2088
  }
2354
2089
  },
2355
- "additionalProperties": false,
2356
2090
  "required": [
2357
2091
  "name",
2358
2092
  "root",