@servicetitan/startup 30.3.1 → 31.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (725) hide show
  1. package/bin/index.js +5 -6
  2. package/dist/cli/commands/build.d.ts +10 -3
  3. package/dist/cli/commands/build.d.ts.map +1 -1
  4. package/dist/cli/commands/build.js +124 -48
  5. package/dist/cli/commands/build.js.map +1 -1
  6. package/dist/cli/commands/bundle-package.d.ts +0 -2
  7. package/dist/cli/commands/bundle-package.d.ts.map +1 -1
  8. package/dist/cli/commands/bundle-package.js +54 -36
  9. package/dist/cli/commands/bundle-package.js.map +1 -1
  10. package/dist/cli/commands/clean.d.ts +6 -0
  11. package/dist/cli/commands/clean.d.ts.map +1 -0
  12. package/dist/cli/commands/clean.js +55 -0
  13. package/dist/cli/commands/clean.js.map +1 -0
  14. package/dist/cli/commands/convert-eslint-config.js +163 -107
  15. package/dist/cli/commands/convert-eslint-config.js.map +1 -1
  16. package/dist/cli/commands/eslint.d.ts.map +1 -1
  17. package/dist/cli/commands/eslint.js +43 -24
  18. package/dist/cli/commands/eslint.js.map +1 -1
  19. package/dist/cli/commands/get-command.d.ts.map +1 -1
  20. package/dist/cli/commands/get-command.js +50 -53
  21. package/dist/cli/commands/get-command.js.map +1 -1
  22. package/dist/cli/commands/get-user-commands.js +21 -11
  23. package/dist/cli/commands/get-user-commands.js.map +1 -1
  24. package/dist/cli/commands/index.d.ts +1 -1
  25. package/dist/cli/commands/index.d.ts.map +1 -1
  26. package/dist/cli/commands/index.js +31 -30
  27. package/dist/cli/commands/index.js.map +1 -1
  28. package/dist/cli/commands/init.js +74 -48
  29. package/dist/cli/commands/init.js.map +1 -1
  30. package/dist/cli/commands/install.d.ts +8 -1
  31. package/dist/cli/commands/install.d.ts.map +1 -1
  32. package/dist/cli/commands/install.js +61 -23
  33. package/dist/cli/commands/install.js.map +1 -1
  34. package/dist/cli/commands/kendo-ui-license.js +48 -31
  35. package/dist/cli/commands/kendo-ui-license.js.map +1 -1
  36. package/dist/cli/commands/lint.d.ts +3 -1
  37. package/dist/cli/commands/lint.d.ts.map +1 -1
  38. package/dist/cli/commands/lint.js +112 -73
  39. package/dist/cli/commands/lint.js.map +1 -1
  40. package/dist/cli/commands/mfe-package-clean.js +80 -57
  41. package/dist/cli/commands/mfe-package-clean.js.map +1 -1
  42. package/dist/cli/commands/mfe-package-publish.d.ts +1 -0
  43. package/dist/cli/commands/mfe-package-publish.d.ts.map +1 -1
  44. package/dist/cli/commands/mfe-package-publish.js +124 -70
  45. package/dist/cli/commands/mfe-package-publish.js.map +1 -1
  46. package/dist/cli/commands/mfe-publish.d.ts.map +1 -1
  47. package/dist/cli/commands/mfe-publish.js +83 -48
  48. package/dist/cli/commands/mfe-publish.js.map +1 -1
  49. package/dist/cli/commands/prepare-package.d.ts +3 -2
  50. package/dist/cli/commands/prepare-package.d.ts.map +1 -1
  51. package/dist/cli/commands/prepare-package.js +44 -32
  52. package/dist/cli/commands/prepare-package.js.map +1 -1
  53. package/dist/cli/commands/review/__mocks__/expect-calls.d.ts +23 -0
  54. package/dist/cli/commands/review/__mocks__/expect-calls.d.ts.map +1 -0
  55. package/dist/cli/commands/review/__mocks__/index.d.ts +2 -0
  56. package/dist/cli/commands/review/__mocks__/index.d.ts.map +1 -0
  57. package/dist/cli/commands/review/index.d.ts +3 -0
  58. package/dist/cli/commands/review/index.d.ts.map +1 -0
  59. package/dist/cli/commands/review/index.js +20 -0
  60. package/dist/cli/commands/review/index.js.map +1 -0
  61. package/dist/cli/commands/review/review.d.ts +28 -0
  62. package/dist/cli/commands/review/review.d.ts.map +1 -0
  63. package/dist/cli/commands/review/review.js +239 -0
  64. package/dist/cli/commands/review/review.js.map +1 -0
  65. package/dist/cli/commands/review/rules/__mocks__/index.d.ts +4 -0
  66. package/dist/cli/commands/review/rules/__mocks__/index.d.ts.map +1 -0
  67. package/dist/cli/commands/review/rules/__mocks__/mock-config.d.ts +7 -0
  68. package/dist/cli/commands/review/rules/__mocks__/mock-config.d.ts.map +1 -0
  69. package/dist/cli/commands/review/rules/__mocks__/mock-packages.d.ts +21 -0
  70. package/dist/cli/commands/review/rules/__mocks__/mock-packages.d.ts.map +1 -0
  71. package/dist/cli/commands/review/rules/__mocks__/mock-project.d.ts +3 -0
  72. package/dist/cli/commands/review/rules/__mocks__/mock-project.d.ts.map +1 -0
  73. package/dist/cli/commands/review/rules/index.d.ts +3 -0
  74. package/dist/cli/commands/review/rules/index.d.ts.map +1 -0
  75. package/dist/cli/commands/review/rules/index.js +30 -0
  76. package/dist/cli/commands/review/rules/index.js.map +1 -0
  77. package/dist/cli/commands/review/rules/no-typescript-entry-point.d.ts +14 -0
  78. package/dist/cli/commands/review/rules/no-typescript-entry-point.d.ts.map +1 -0
  79. package/dist/cli/commands/review/rules/no-typescript-entry-point.js +89 -0
  80. package/dist/cli/commands/review/rules/no-typescript-entry-point.js.map +1 -0
  81. package/dist/cli/commands/review/rules/require-explicit-side-effects.d.ts +7 -0
  82. package/dist/cli/commands/review/rules/require-explicit-side-effects.d.ts.map +1 -0
  83. package/dist/cli/commands/review/rules/require-explicit-side-effects.js +37 -0
  84. package/dist/cli/commands/review/rules/require-explicit-side-effects.js.map +1 -0
  85. package/dist/cli/commands/review/rules/require-npmrc.d.ts +7 -0
  86. package/dist/cli/commands/review/rules/require-npmrc.d.ts.map +1 -0
  87. package/dist/cli/commands/review/rules/require-npmrc.js +38 -0
  88. package/dist/cli/commands/review/rules/require-npmrc.js.map +1 -0
  89. package/dist/cli/commands/review/rules/require-one-anvil-uikit-contrib-version.d.ts +5 -0
  90. package/dist/cli/commands/review/rules/require-one-anvil-uikit-contrib-version.d.ts.map +1 -0
  91. package/dist/cli/commands/review/rules/require-one-anvil-uikit-contrib-version.js +33 -0
  92. package/dist/cli/commands/review/rules/require-one-anvil-uikit-contrib-version.js.map +1 -0
  93. package/dist/cli/commands/review/rules/require-one-collection-version.d.ts +45 -0
  94. package/dist/cli/commands/review/rules/require-one-collection-version.d.ts.map +1 -0
  95. package/dist/cli/commands/review/rules/require-one-collection-version.js +140 -0
  96. package/dist/cli/commands/review/rules/require-one-collection-version.js.map +1 -0
  97. package/dist/cli/commands/review/rules/require-one-package-version.d.ts +20 -0
  98. package/dist/cli/commands/review/rules/require-one-package-version.d.ts.map +1 -0
  99. package/dist/cli/commands/review/rules/require-one-package-version.js +70 -0
  100. package/dist/cli/commands/review/rules/require-one-package-version.js.map +1 -0
  101. package/dist/cli/commands/review/rules/require-one-uikit-version.d.ts +5 -0
  102. package/dist/cli/commands/review/rules/require-one-uikit-version.d.ts.map +1 -0
  103. package/dist/cli/commands/review/rules/require-one-uikit-version.js +40 -0
  104. package/dist/cli/commands/review/rules/require-one-uikit-version.js.map +1 -0
  105. package/dist/cli/commands/review/rules/require-project-version-in-root-node-modules.d.ts +19 -0
  106. package/dist/cli/commands/review/rules/require-project-version-in-root-node-modules.d.ts.map +1 -0
  107. package/dist/cli/commands/review/rules/require-project-version-in-root-node-modules.js +103 -0
  108. package/dist/cli/commands/review/rules/require-project-version-in-root-node-modules.js.map +1 -0
  109. package/dist/cli/commands/review/rules/require-servicetitan-scope.d.ts +7 -0
  110. package/dist/cli/commands/review/rules/require-servicetitan-scope.d.ts.map +1 -0
  111. package/dist/cli/commands/review/rules/require-servicetitan-scope.js +37 -0
  112. package/dist/cli/commands/review/rules/require-servicetitan-scope.js.map +1 -0
  113. package/dist/cli/commands/review/types.d.ts +72 -0
  114. package/dist/cli/commands/review/types.d.ts.map +1 -0
  115. package/dist/cli/commands/review/types.js +36 -0
  116. package/dist/cli/commands/review/types.js.map +1 -0
  117. package/dist/cli/commands/review/utils/apply-filter.d.ts +3 -0
  118. package/dist/cli/commands/review/utils/apply-filter.d.ts.map +1 -0
  119. package/dist/cli/commands/review/utils/apply-filter.js +20 -0
  120. package/dist/cli/commands/review/utils/apply-filter.js.map +1 -0
  121. package/dist/cli/commands/review/utils/collate-dependencies.d.ts +29 -0
  122. package/dist/cli/commands/review/utils/collate-dependencies.d.ts.map +1 -0
  123. package/dist/cli/commands/review/utils/collate-dependencies.js +31 -0
  124. package/dist/cli/commands/review/utils/collate-dependencies.js.map +1 -0
  125. package/dist/cli/commands/review/utils/compare-version.d.ts +9 -0
  126. package/dist/cli/commands/review/utils/compare-version.d.ts.map +1 -0
  127. package/dist/cli/commands/review/utils/compare-version.js +137 -0
  128. package/dist/cli/commands/review/utils/compare-version.js.map +1 -0
  129. package/dist/cli/commands/review/utils/format-depends-on.d.ts +2 -0
  130. package/dist/cli/commands/review/utils/format-depends-on.d.ts.map +1 -0
  131. package/dist/cli/commands/review/utils/format-depends-on.js +21 -0
  132. package/dist/cli/commands/review/utils/format-depends-on.js.map +1 -0
  133. package/dist/cli/commands/review/utils/format-location.d.ts +2 -0
  134. package/dist/cli/commands/review/utils/format-location.d.ts.map +1 -0
  135. package/dist/cli/commands/review/utils/format-location.js +25 -0
  136. package/dist/cli/commands/review/utils/format-location.js.map +1 -0
  137. package/dist/cli/commands/review/utils/get-key.d.ts +3 -0
  138. package/dist/cli/commands/review/utils/get-key.d.ts.map +1 -0
  139. package/dist/cli/commands/review/utils/get-key.js +20 -0
  140. package/dist/cli/commands/review/utils/get-key.js.map +1 -0
  141. package/dist/cli/commands/review/utils/get-max-version.d.ts +2 -0
  142. package/dist/cli/commands/review/utils/get-max-version.d.ts.map +1 -0
  143. package/dist/cli/commands/review/utils/get-max-version.js +16 -0
  144. package/dist/cli/commands/review/utils/get-max-version.js.map +1 -0
  145. package/dist/cli/commands/review/utils/indent.d.ts +2 -0
  146. package/dist/cli/commands/review/utils/indent.d.ts.map +1 -0
  147. package/dist/cli/commands/review/utils/indent.js +17 -0
  148. package/dist/cli/commands/review/utils/indent.js.map +1 -0
  149. package/dist/cli/commands/review/utils/index.d.ts +14 -0
  150. package/dist/cli/commands/review/utils/index.d.ts.map +1 -0
  151. package/dist/cli/commands/review/utils/index.js +32 -0
  152. package/dist/cli/commands/review/utils/index.js.map +1 -0
  153. package/dist/cli/commands/review/utils/is-library.d.ts +3 -0
  154. package/dist/cli/commands/review/utils/is-library.d.ts.map +1 -0
  155. package/dist/cli/commands/review/utils/is-library.js +15 -0
  156. package/dist/cli/commands/review/utils/is-library.js.map +1 -0
  157. package/dist/cli/commands/review/utils/name-to-location.d.ts +3 -0
  158. package/dist/cli/commands/review/utils/name-to-location.d.ts.map +1 -0
  159. package/dist/cli/commands/review/utils/name-to-location.js +18 -0
  160. package/dist/cli/commands/review/utils/name-to-location.js.map +1 -0
  161. package/dist/cli/commands/review/utils/pluralize.d.ts +2 -0
  162. package/dist/cli/commands/review/utils/pluralize.d.ts.map +1 -0
  163. package/dist/cli/commands/review/utils/pluralize.js +15 -0
  164. package/dist/cli/commands/review/utils/pluralize.js.map +1 -0
  165. package/dist/cli/commands/review/utils/set-version.d.ts +10 -0
  166. package/dist/cli/commands/review/utils/set-version.d.ts.map +1 -0
  167. package/dist/cli/commands/review/utils/set-version.js +33 -0
  168. package/dist/cli/commands/review/utils/set-version.js.map +1 -0
  169. package/dist/cli/commands/review/utils/summarize.d.ts +11 -0
  170. package/dist/cli/commands/review/utils/summarize.d.ts.map +1 -0
  171. package/dist/cli/commands/review/utils/summarize.js +30 -0
  172. package/dist/cli/commands/review/utils/summarize.js.map +1 -0
  173. package/dist/cli/commands/run-task.js +50 -31
  174. package/dist/cli/commands/run-task.js.map +1 -1
  175. package/dist/cli/commands/run-task.test.d.ts +2 -0
  176. package/dist/cli/commands/run-task.test.d.ts.map +1 -0
  177. package/dist/cli/commands/start.d.ts +11 -3
  178. package/dist/cli/commands/start.d.ts.map +1 -1
  179. package/dist/cli/commands/start.js +166 -69
  180. package/dist/cli/commands/start.js.map +1 -1
  181. package/dist/cli/commands/styles-check.js +73 -59
  182. package/dist/cli/commands/styles-check.js.map +1 -1
  183. package/dist/cli/commands/tests.d.ts +1 -0
  184. package/dist/cli/commands/tests.d.ts.map +1 -1
  185. package/dist/cli/commands/tests.js +45 -28
  186. package/dist/cli/commands/tests.js.map +1 -1
  187. package/dist/cli/commands/types.d.ts +1 -0
  188. package/dist/cli/commands/types.d.ts.map +1 -1
  189. package/dist/cli/commands/types.js +4 -1
  190. package/dist/cli/commands/types.js.map +1 -1
  191. package/dist/cli/index.js +43 -34
  192. package/dist/cli/index.js.map +1 -1
  193. package/dist/cli/tasks/cli-task.d.ts +0 -1
  194. package/dist/cli/tasks/cli-task.d.ts.map +1 -1
  195. package/dist/cli/tasks/cli-task.js +52 -41
  196. package/dist/cli/tasks/cli-task.js.map +1 -1
  197. package/dist/cli/tasks/swc-compile-package.d.ts +0 -1
  198. package/dist/cli/tasks/swc-compile-package.d.ts.map +1 -1
  199. package/dist/cli/tasks/swc-compile-package.js +75 -34
  200. package/dist/cli/tasks/swc-compile-package.js.map +1 -1
  201. package/dist/cli/tasks/task.d.ts +0 -2
  202. package/dist/cli/tasks/task.d.ts.map +1 -1
  203. package/dist/cli/tasks/task.js +60 -65
  204. package/dist/cli/tasks/task.js.map +1 -1
  205. package/dist/cli/tasks/tsc-compile-package.d.ts +0 -1
  206. package/dist/cli/tasks/tsc-compile-package.d.ts.map +1 -1
  207. package/dist/cli/tasks/tsc-compile-package.js +26 -22
  208. package/dist/cli/tasks/tsc-compile-package.js.map +1 -1
  209. package/dist/cli/tasks/tsc-compile.d.ts +0 -2
  210. package/dist/cli/tasks/tsc-compile.d.ts.map +1 -1
  211. package/dist/cli/tasks/tsc-compile.js +51 -31
  212. package/dist/cli/tasks/tsc-compile.js.map +1 -1
  213. package/dist/cli/utils/bundle.d.ts +0 -2
  214. package/dist/cli/utils/bundle.d.ts.map +1 -1
  215. package/dist/cli/utils/bundle.js +118 -70
  216. package/dist/cli/utils/bundle.js.map +1 -1
  217. package/dist/cli/utils/check-args.d.ts +6 -0
  218. package/dist/cli/utils/check-args.d.ts.map +1 -0
  219. package/dist/cli/utils/check-args.js +20 -0
  220. package/dist/cli/utils/check-args.js.map +1 -0
  221. package/dist/cli/utils/cli-git.js +23 -9
  222. package/dist/cli/utils/cli-git.js.map +1 -1
  223. package/dist/cli/utils/cli-npm.js +62 -23
  224. package/dist/cli/utils/cli-npm.js.map +1 -1
  225. package/dist/cli/utils/cli-os.js +34 -33
  226. package/dist/cli/utils/cli-os.js.map +1 -1
  227. package/dist/cli/utils/compile-less.d.ts.map +1 -1
  228. package/dist/cli/utils/compile-less.js +27 -11
  229. package/dist/cli/utils/compile-less.js.map +1 -1
  230. package/dist/cli/utils/compile-sass.d.ts.map +1 -1
  231. package/dist/cli/utils/compile-sass.js +25 -9
  232. package/dist/cli/utils/compile-sass.js.map +1 -1
  233. package/dist/cli/utils/compile.d.ts +6 -0
  234. package/dist/cli/utils/compile.d.ts.map +1 -0
  235. package/dist/cli/utils/compile.js +33 -0
  236. package/dist/cli/utils/compile.js.map +1 -0
  237. package/dist/cli/utils/copy-files.d.ts +8 -0
  238. package/dist/cli/utils/copy-files.d.ts.map +1 -0
  239. package/dist/cli/utils/copy-files.js +112 -0
  240. package/dist/cli/utils/copy-files.js.map +1 -0
  241. package/dist/cli/utils/eslint.d.ts.map +1 -1
  242. package/dist/cli/utils/eslint.js +22 -12
  243. package/dist/cli/utils/eslint.js.map +1 -1
  244. package/dist/cli/utils/get-module-type.d.ts.map +1 -1
  245. package/dist/cli/utils/get-module-type.js +21 -13
  246. package/dist/cli/utils/get-module-type.js.map +1 -1
  247. package/dist/cli/utils/index.d.ts +7 -5
  248. package/dist/cli/utils/index.d.ts.map +1 -1
  249. package/dist/cli/utils/index.js +33 -30
  250. package/dist/cli/utils/index.js.map +1 -1
  251. package/dist/cli/utils/is-module-installed.js +11 -4
  252. package/dist/cli/utils/is-module-installed.js.map +1 -1
  253. package/dist/cli/utils/lerna-exec.d.ts +4 -3
  254. package/dist/cli/utils/lerna-exec.d.ts.map +1 -1
  255. package/dist/cli/utils/lerna-exec.js +40 -19
  256. package/dist/cli/utils/lerna-exec.js.map +1 -1
  257. package/dist/cli/utils/maybe-create-git-folder.js +20 -18
  258. package/dist/cli/utils/maybe-create-git-folder.js.map +1 -1
  259. package/dist/cli/utils/pipe-stdout.d.ts +3 -0
  260. package/dist/cli/utils/pipe-stdout.d.ts.map +1 -0
  261. package/dist/cli/utils/pipe-stdout.js +19 -0
  262. package/dist/cli/utils/pipe-stdout.js.map +1 -0
  263. package/dist/cli/utils/process-tree.d.ts +14 -0
  264. package/dist/cli/utils/process-tree.d.ts.map +1 -0
  265. package/dist/cli/utils/process-tree.js +78 -0
  266. package/dist/cli/utils/process-tree.js.map +1 -0
  267. package/dist/cli/utils/publish.js +12 -6
  268. package/dist/cli/utils/publish.js.map +1 -1
  269. package/dist/cli/utils/set-node-options.d.ts +2 -1
  270. package/dist/cli/utils/set-node-options.d.ts.map +1 -1
  271. package/dist/cli/utils/set-node-options.js +39 -30
  272. package/dist/cli/utils/set-node-options.js.map +1 -1
  273. package/dist/cli/utils/style-extensions.d.ts +2 -0
  274. package/dist/cli/utils/style-extensions.d.ts.map +1 -0
  275. package/dist/cli/utils/style-extensions.js +17 -0
  276. package/dist/cli/utils/style-extensions.js.map +1 -0
  277. package/dist/cli/utils/tcm.d.ts +5 -2
  278. package/dist/cli/utils/tcm.d.ts.map +1 -1
  279. package/dist/cli/utils/tcm.js +51 -46
  280. package/dist/cli/utils/tcm.js.map +1 -1
  281. package/dist/cli/utils/type-check.d.ts +7 -0
  282. package/dist/cli/utils/type-check.d.ts.map +1 -0
  283. package/dist/cli/utils/type-check.js +33 -0
  284. package/dist/cli/utils/type-check.js.map +1 -0
  285. package/dist/cli/utils/watch-stdout.d.ts +3 -0
  286. package/dist/cli/utils/watch-stdout.d.ts.map +1 -0
  287. package/dist/cli/utils/watch-stdout.js +26 -0
  288. package/dist/cli/utils/watch-stdout.js.map +1 -0
  289. package/dist/index.js +20 -18
  290. package/dist/index.js.map +1 -1
  291. package/dist/jest/index.js +12 -4
  292. package/dist/jest/index.js.map +1 -1
  293. package/dist/utils/debug.js +23 -11
  294. package/dist/utils/debug.js.map +1 -1
  295. package/dist/utils/find-packages.d.ts.map +1 -1
  296. package/dist/utils/find-packages.js +46 -34
  297. package/dist/utils/find-packages.js.map +1 -1
  298. package/dist/utils/format-duration.d.ts +2 -0
  299. package/dist/utils/format-duration.d.ts.map +1 -0
  300. package/dist/utils/format-duration.js +24 -0
  301. package/dist/utils/format-duration.js.map +1 -0
  302. package/dist/utils/get-branch-configs.js +24 -8
  303. package/dist/utils/get-branch-configs.js.map +1 -1
  304. package/dist/utils/get-configuration.d.ts +10 -2
  305. package/dist/utils/get-configuration.d.ts.map +1 -1
  306. package/dist/utils/get-configuration.js +120 -52
  307. package/dist/utils/get-configuration.js.map +1 -1
  308. package/dist/utils/get-destination-folders.js +25 -18
  309. package/dist/utils/get-destination-folders.js.map +1 -1
  310. package/dist/utils/get-folders.d.ts +2 -2
  311. package/dist/utils/get-folders.d.ts.map +1 -1
  312. package/dist/utils/get-folders.js +20 -13
  313. package/dist/utils/get-folders.js.map +1 -1
  314. package/dist/utils/get-jest-config.js +65 -38
  315. package/dist/utils/get-jest-config.js.map +1 -1
  316. package/dist/utils/get-package-data.js +26 -12
  317. package/dist/utils/get-package-data.js.map +1 -1
  318. package/dist/utils/get-package-name.js +18 -8
  319. package/dist/utils/get-package-name.js.map +1 -1
  320. package/dist/utils/get-packages.d.ts +1 -1
  321. package/dist/utils/get-packages.d.ts.map +1 -1
  322. package/dist/utils/get-packages.js +72 -57
  323. package/dist/utils/get-packages.js.map +1 -1
  324. package/dist/utils/get-startup-version.js +18 -8
  325. package/dist/utils/get-startup-version.js.map +1 -1
  326. package/dist/utils/get-tsconfig.js +19 -12
  327. package/dist/utils/get-tsconfig.js.map +1 -1
  328. package/dist/utils/index.d.ts +3 -0
  329. package/dist/utils/index.d.ts.map +1 -1
  330. package/dist/utils/index.js +34 -29
  331. package/dist/utils/index.js.map +1 -1
  332. package/dist/utils/load-shared-dependencies.js +23 -17
  333. package/dist/utils/load-shared-dependencies.js.map +1 -1
  334. package/dist/utils/log-errors.d.ts +2 -0
  335. package/dist/utils/log-errors.d.ts.map +1 -0
  336. package/dist/utils/log-errors.js +36 -0
  337. package/dist/utils/log-errors.js.map +1 -0
  338. package/dist/utils/log.d.ts +0 -1
  339. package/dist/utils/log.d.ts.map +1 -1
  340. package/dist/utils/log.js +38 -43
  341. package/dist/utils/log.js.map +1 -1
  342. package/dist/utils/pick.js +11 -3
  343. package/dist/utils/pick.js.map +1 -1
  344. package/dist/utils/read-json.js +27 -11
  345. package/dist/utils/read-json.js.map +1 -1
  346. package/dist/utils/to-array.js +13 -3
  347. package/dist/utils/to-array.js.map +1 -1
  348. package/dist/webpack/__mocks__/file-rules.d.ts.map +1 -1
  349. package/dist/webpack/configs/amd-config.js +13 -3
  350. package/dist/webpack/configs/amd-config.js.map +1 -1
  351. package/dist/webpack/configs/cache-config.js +20 -9
  352. package/dist/webpack/configs/cache-config.js.map +1 -1
  353. package/dist/webpack/configs/dev-server-config.d.ts +1 -1
  354. package/dist/webpack/configs/dev-server-config.d.ts.map +1 -1
  355. package/dist/webpack/configs/dev-server-config.js +47 -45
  356. package/dist/webpack/configs/dev-server-config.js.map +1 -1
  357. package/dist/webpack/configs/devtool-config.js +16 -7
  358. package/dist/webpack/configs/devtool-config.js.map +1 -1
  359. package/dist/webpack/configs/entry.config.d.ts.map +1 -1
  360. package/dist/webpack/configs/entry.config.js +28 -7
  361. package/dist/webpack/configs/entry.config.js.map +1 -1
  362. package/dist/webpack/configs/externals-config.js +17 -7
  363. package/dist/webpack/configs/externals-config.js.map +1 -1
  364. package/dist/webpack/configs/index.d.ts +2 -1
  365. package/dist/webpack/configs/index.d.ts.map +1 -1
  366. package/dist/webpack/configs/index.js +30 -28
  367. package/dist/webpack/configs/index.js.map +1 -1
  368. package/dist/webpack/configs/loaders/css-loader.js +22 -14
  369. package/dist/webpack/configs/loaders/css-loader.js.map +1 -1
  370. package/dist/webpack/configs/loaders/index.d.ts +1 -1
  371. package/dist/webpack/configs/loaders/index.d.ts.map +1 -1
  372. package/dist/webpack/configs/loaders/index.js +20 -19
  373. package/dist/webpack/configs/loaders/index.js.map +1 -1
  374. package/dist/webpack/configs/loaders/less-loader.js +18 -3
  375. package/dist/webpack/configs/loaders/less-loader.js.map +1 -1
  376. package/dist/webpack/configs/loaders/style-loader.js +23 -8
  377. package/dist/webpack/configs/loaders/style-loader.js.map +1 -1
  378. package/dist/webpack/configs/loaders/types.js +4 -1
  379. package/dist/webpack/configs/loaders/types.js.map +1 -1
  380. package/dist/webpack/configs/module-config.js +17 -5
  381. package/dist/webpack/configs/module-config.js.map +1 -1
  382. package/dist/webpack/configs/optimization-config.js +54 -28
  383. package/dist/webpack/configs/optimization-config.js.map +1 -1
  384. package/dist/webpack/configs/output-config.js +26 -12
  385. package/dist/webpack/configs/output-config.js.map +1 -1
  386. package/dist/webpack/configs/plugins/assets-manifest-plugin.js +23 -14
  387. package/dist/webpack/configs/plugins/assets-manifest-plugin.js.map +1 -1
  388. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js +19 -9
  389. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js.map +1 -1
  390. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js +19 -11
  391. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js.map +1 -1
  392. package/dist/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.js +17 -7
  393. package/dist/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.js.map +1 -1
  394. package/dist/webpack/configs/plugins/define-web-component-name-plugin.js +13 -5
  395. package/dist/webpack/configs/plugins/define-web-component-name-plugin.js.map +1 -1
  396. package/dist/webpack/configs/plugins/filter-warnings-plugin.js +11 -3
  397. package/dist/webpack/configs/plugins/filter-warnings-plugin.js.map +1 -1
  398. package/dist/webpack/configs/plugins/html-plugin.js +28 -20
  399. package/dist/webpack/configs/plugins/html-plugin.js.map +1 -1
  400. package/dist/webpack/configs/plugins/ignore-plugin/check-resource.js +24 -13
  401. package/dist/webpack/configs/plugins/ignore-plugin/check-resource.js.map +1 -1
  402. package/dist/webpack/configs/plugins/ignore-plugin/get-package-json.js +26 -16
  403. package/dist/webpack/configs/plugins/ignore-plugin/get-package-json.js.map +1 -1
  404. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js +15 -6
  405. package/dist/webpack/configs/plugins/ignore-plugin/ignore-plugin.js.map +1 -1
  406. package/dist/webpack/configs/plugins/ignore-plugin/index.js +18 -16
  407. package/dist/webpack/configs/plugins/ignore-plugin/index.js.map +1 -1
  408. package/dist/webpack/configs/plugins/ignore-plugin/is-optional-peer-dependency.js +22 -12
  409. package/dist/webpack/configs/plugins/ignore-plugin/is-optional-peer-dependency.js.map +1 -1
  410. package/dist/webpack/configs/plugins/ignore-plugin/is-optional-react-dom-peer-dependency.js +11 -4
  411. package/dist/webpack/configs/plugins/ignore-plugin/is-optional-react-dom-peer-dependency.js.map +1 -1
  412. package/dist/webpack/configs/plugins/index.d.ts +0 -2
  413. package/dist/webpack/configs/plugins/index.d.ts.map +1 -1
  414. package/dist/webpack/configs/plugins/index.js +29 -29
  415. package/dist/webpack/configs/plugins/index.js.map +1 -1
  416. package/dist/webpack/configs/plugins/mini-css-extract-plugin.js +23 -12
  417. package/dist/webpack/configs/plugins/mini-css-extract-plugin.js.map +1 -1
  418. package/dist/webpack/configs/plugins/moment-locales-plugin.js +18 -8
  419. package/dist/webpack/configs/plugins/moment-locales-plugin.js.map +1 -1
  420. package/dist/webpack/configs/plugins/virtual-modules-plugin.js +32 -22
  421. package/dist/webpack/configs/plugins/virtual-modules-plugin.js.map +1 -1
  422. package/dist/webpack/configs/plugins/watch-run-plugin.js +23 -15
  423. package/dist/webpack/configs/plugins/watch-run-plugin.js.map +1 -1
  424. package/dist/webpack/configs/plugins-config.d.ts.map +1 -1
  425. package/dist/webpack/configs/plugins-config.js +27 -21
  426. package/dist/webpack/configs/plugins-config.js.map +1 -1
  427. package/dist/webpack/configs/resolve-config.js +16 -4
  428. package/dist/webpack/configs/resolve-config.js.map +1 -1
  429. package/dist/webpack/configs/rules/css-rules.js +43 -18
  430. package/dist/webpack/configs/rules/css-rules.js.map +1 -1
  431. package/dist/webpack/configs/rules/font-rules.js +13 -5
  432. package/dist/webpack/configs/rules/font-rules.js.map +1 -1
  433. package/dist/webpack/configs/rules/image-rules.js +13 -5
  434. package/dist/webpack/configs/rules/image-rules.js.map +1 -1
  435. package/dist/webpack/configs/rules/index.d.ts +0 -1
  436. package/dist/webpack/configs/rules/index.d.ts.map +1 -1
  437. package/dist/webpack/configs/rules/index.js +24 -23
  438. package/dist/webpack/configs/rules/index.js.map +1 -1
  439. package/dist/webpack/configs/rules/js-rules.d.ts +1 -1
  440. package/dist/webpack/configs/rules/js-rules.d.ts.map +1 -1
  441. package/dist/webpack/configs/rules/js-rules.js +47 -7
  442. package/dist/webpack/configs/rules/js-rules.js.map +1 -1
  443. package/dist/webpack/configs/rules/less-rules.js +25 -9
  444. package/dist/webpack/configs/rules/less-rules.js.map +1 -1
  445. package/dist/webpack/configs/rules/scss-rules.js +25 -9
  446. package/dist/webpack/configs/rules/scss-rules.js.map +1 -1
  447. package/dist/webpack/configs/rules/svg-rules.js +40 -20
  448. package/dist/webpack/configs/rules/svg-rules.js.map +1 -1
  449. package/dist/webpack/configs/rules-config.d.ts.map +1 -1
  450. package/dist/webpack/configs/rules-config.js +34 -19
  451. package/dist/webpack/configs/rules-config.js.map +1 -1
  452. package/dist/webpack/configs/stats-config.js +14 -4
  453. package/dist/webpack/configs/stats-config.js.map +1 -1
  454. package/dist/webpack/configs/types.d.ts +1 -3
  455. package/dist/webpack/configs/types.d.ts.map +1 -1
  456. package/dist/webpack/configs/types.js +4 -1
  457. package/dist/webpack/configs/types.js.map +1 -1
  458. package/dist/webpack/configs/utils/generate-metadata.js +40 -22
  459. package/dist/webpack/configs/utils/generate-metadata.js.map +1 -1
  460. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js +20 -11
  461. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js.map +1 -1
  462. package/dist/webpack/configs/utils/get-web-components-version.js +18 -8
  463. package/dist/webpack/configs/utils/get-web-components-version.js.map +1 -1
  464. package/dist/webpack/configs/utils/index.js +18 -16
  465. package/dist/webpack/configs/utils/index.js.map +1 -1
  466. package/dist/webpack/configs/watch-options-config.d.ts +6 -0
  467. package/dist/webpack/configs/watch-options-config.d.ts.map +1 -0
  468. package/dist/webpack/configs/watch-options-config.js +24 -0
  469. package/dist/webpack/configs/watch-options-config.js.map +1 -0
  470. package/dist/webpack/create-webpack-config.d.ts.map +1 -1
  471. package/dist/webpack/create-webpack-config.js +62 -50
  472. package/dist/webpack/create-webpack-config.js.map +1 -1
  473. package/dist/webpack/index.d.ts +1 -1
  474. package/dist/webpack/index.d.ts.map +1 -1
  475. package/dist/webpack/index.js +18 -17
  476. package/dist/webpack/index.js.map +1 -1
  477. package/dist/webpack/loaders/expose-loader/index.js +15 -15
  478. package/dist/webpack/loaders/expose-loader/index.js.map +1 -1
  479. package/dist/webpack/loaders/expose-loader/runtime/get-global-this.js +5 -6
  480. package/dist/webpack/loaders/expose-loader/runtime/get-global-this.js.map +1 -1
  481. package/dist/webpack/loaders/expose-loader/utils/contextify-request.js +20 -13
  482. package/dist/webpack/loaders/expose-loader/utils/contextify-request.js.map +1 -1
  483. package/dist/webpack/loaders/expose-loader/utils/get-new-user-request.js +22 -11
  484. package/dist/webpack/loaders/expose-loader/utils/get-new-user-request.js.map +1 -1
  485. package/dist/webpack/loaders/expose-loader/utils/index.js +20 -18
  486. package/dist/webpack/loaders/expose-loader/utils/index.js.map +1 -1
  487. package/dist/webpack/loaders/expose-loader/utils/stringify-request.js +20 -12
  488. package/dist/webpack/loaders/expose-loader/utils/stringify-request.js.map +1 -1
  489. package/dist/webpack/types.d.ts +0 -4
  490. package/dist/webpack/types.d.ts.map +1 -1
  491. package/dist/webpack/types.js +4 -1
  492. package/dist/webpack/types.js.map +1 -1
  493. package/dist/webpack/utils/feature-cohort.js +17 -12
  494. package/dist/webpack/utils/feature-cohort.js.map +1 -1
  495. package/dist/webpack/utils/get-caller-filename.js +14 -7
  496. package/dist/webpack/utils/get-caller-filename.js.map +1 -1
  497. package/dist/webpack/utils/{bundle.d.ts → get-module-entry-path.d.ts} +1 -1
  498. package/dist/webpack/utils/get-module-entry-path.d.ts.map +1 -0
  499. package/dist/webpack/utils/get-module-entry-path.js +21 -0
  500. package/dist/webpack/utils/get-module-entry-path.js.map +1 -0
  501. package/dist/webpack/utils/hash-mod.js +16 -11
  502. package/dist/webpack/utils/hash-mod.js.map +1 -1
  503. package/dist/webpack/utils/index.d.ts +1 -1
  504. package/dist/webpack/utils/index.d.ts.map +1 -1
  505. package/dist/webpack/utils/index.js +21 -19
  506. package/dist/webpack/utils/index.js.map +1 -1
  507. package/dist/webpack/utils/split-by-entry.js +17 -7
  508. package/dist/webpack/utils/split-by-entry.js.map +1 -1
  509. package/dist/webpack/utils/testing/compile.js +12 -4
  510. package/dist/webpack/utils/testing/compile.js.map +1 -1
  511. package/dist/webpack/utils/testing/execute.js +26 -13
  512. package/dist/webpack/utils/testing/execute.js.map +1 -1
  513. package/dist/webpack/utils/testing/get-compiler.js +34 -24
  514. package/dist/webpack/utils/testing/get-compiler.js.map +1 -1
  515. package/dist/webpack/utils/testing/get-errors.js +12 -4
  516. package/dist/webpack/utils/testing/get-errors.js.map +1 -1
  517. package/dist/webpack/utils/testing/get-module-source.js +18 -5
  518. package/dist/webpack/utils/testing/get-module-source.js.map +1 -1
  519. package/dist/webpack/utils/testing/get-warnings.js +12 -4
  520. package/dist/webpack/utils/testing/get-warnings.js.map +1 -1
  521. package/dist/webpack/utils/testing/index.js +28 -20
  522. package/dist/webpack/utils/testing/index.js.map +1 -1
  523. package/dist/webpack/utils/testing/normalize-errors.js +11 -3
  524. package/dist/webpack/utils/testing/normalize-errors.js.map +1 -1
  525. package/dist/webpack/utils/testing/read-asset.js +20 -11
  526. package/dist/webpack/utils/testing/read-asset.js.map +1 -1
  527. package/dist/webpack/utils/testing/read-assets.js +13 -5
  528. package/dist/webpack/utils/testing/read-assets.js.map +1 -1
  529. package/package.json +20 -20
  530. package/src/cli/commands/__tests__/build.test.ts +69 -44
  531. package/src/cli/commands/__tests__/clean.test.ts +32 -0
  532. package/src/cli/commands/__tests__/install.test.ts +50 -8
  533. package/src/cli/commands/__tests__/kendo-ui-license.test.ts +5 -5
  534. package/src/cli/commands/__tests__/lint.test.ts +4 -0
  535. package/src/cli/commands/__tests__/mfe-package-publish.test.ts +21 -2
  536. package/src/cli/commands/__tests__/mfe-publish.test.ts +19 -23
  537. package/src/cli/commands/__tests__/prepare-package.test.ts +17 -36
  538. package/src/cli/commands/__tests__/start.test.ts +81 -44
  539. package/src/cli/commands/__tests__/tests.test.ts +4 -0
  540. package/src/cli/commands/build.ts +73 -35
  541. package/src/cli/commands/bundle-package.ts +0 -4
  542. package/src/cli/commands/clean.ts +24 -0
  543. package/src/cli/commands/eslint.ts +1 -1
  544. package/src/cli/commands/get-command.ts +25 -35
  545. package/src/cli/commands/index.ts +1 -1
  546. package/src/cli/commands/install.ts +29 -8
  547. package/src/cli/commands/lint.ts +22 -17
  548. package/src/cli/commands/mfe-package-publish.ts +22 -5
  549. package/src/cli/commands/mfe-publish.ts +5 -18
  550. package/src/cli/commands/prepare-package.ts +8 -12
  551. package/src/cli/commands/review/__mocks__/expect-calls.ts +48 -0
  552. package/src/cli/commands/review/__mocks__/index.ts +1 -0
  553. package/src/cli/commands/review/__tests__/review.test.ts +483 -0
  554. package/src/cli/commands/review/index.ts +3 -0
  555. package/src/cli/commands/review/review.ts +247 -0
  556. package/src/cli/commands/review/rules/__mocks__/index.ts +3 -0
  557. package/src/cli/commands/review/rules/__mocks__/mock-config.ts +14 -0
  558. package/src/cli/commands/review/rules/__mocks__/mock-packages.ts +41 -0
  559. package/src/cli/commands/review/rules/__mocks__/mock-project.ts +11 -0
  560. package/src/cli/commands/review/rules/__tests__/no-typescript-entry-point.test.ts +166 -0
  561. package/src/cli/commands/review/rules/__tests__/require-explicit-side-effects.test.ts +113 -0
  562. package/src/cli/commands/review/rules/__tests__/require-npmrc.test.ts +71 -0
  563. package/src/cli/commands/review/rules/__tests__/require-one-anvil-uikit-contrib-version.test.ts +33 -0
  564. package/src/cli/commands/review/rules/__tests__/require-one-collection-version.test.ts +155 -0
  565. package/src/cli/commands/review/rules/__tests__/require-one-package-version.test.ts +135 -0
  566. package/src/cli/commands/review/rules/__tests__/require-one-uikit-version.ts +40 -0
  567. package/src/cli/commands/review/rules/__tests__/require-project-version-in-root-node-modules.test.ts +186 -0
  568. package/src/cli/commands/review/rules/__tests__/require-servicetitan-scope.test.ts +83 -0
  569. package/src/cli/commands/review/rules/index.ts +20 -0
  570. package/src/cli/commands/review/rules/no-typescript-entry-point.ts +78 -0
  571. package/src/cli/commands/review/rules/require-explicit-side-effects.ts +31 -0
  572. package/src/cli/commands/review/rules/require-npmrc.ts +27 -0
  573. package/src/cli/commands/review/rules/require-one-anvil-uikit-contrib-version.ts +20 -0
  574. package/src/cli/commands/review/rules/require-one-collection-version.ts +169 -0
  575. package/src/cli/commands/review/rules/require-one-package-version.ts +76 -0
  576. package/src/cli/commands/review/rules/require-one-uikit-version.ts +27 -0
  577. package/src/cli/commands/review/rules/require-project-version-in-root-node-modules.ts +104 -0
  578. package/src/cli/commands/review/rules/require-servicetitan-scope.ts +27 -0
  579. package/src/cli/commands/review/types.ts +72 -0
  580. package/src/cli/commands/review/utils/__tests__/compare-version.test.ts +73 -0
  581. package/src/cli/commands/review/utils/__tests__/get-max-version.test.ts +17 -0
  582. package/src/cli/commands/review/utils/__tests__/indent.test.ts +41 -0
  583. package/src/cli/commands/review/utils/__tests__/name-to-location.test.ts +39 -0
  584. package/src/cli/commands/review/utils/__tests__/set-version.test.ts +84 -0
  585. package/src/cli/commands/review/utils/apply-filter.ts +14 -0
  586. package/src/cli/commands/review/utils/collate-dependencies.ts +46 -0
  587. package/src/cli/commands/review/utils/compare-version.ts +82 -0
  588. package/src/cli/commands/review/utils/format-depends-on.ts +11 -0
  589. package/src/cli/commands/review/utils/format-location.ts +8 -0
  590. package/src/cli/commands/review/utils/get-key.ts +10 -0
  591. package/src/cli/commands/review/utils/get-max-version.ts +5 -0
  592. package/src/cli/commands/review/utils/indent.ts +8 -0
  593. package/src/cli/commands/review/utils/index.ts +13 -0
  594. package/src/cli/commands/review/utils/is-library.ts +5 -0
  595. package/src/cli/commands/review/utils/name-to-location.ts +7 -0
  596. package/src/cli/commands/review/utils/pluralize.ts +3 -0
  597. package/src/cli/commands/review/utils/set-version.ts +26 -0
  598. package/src/cli/commands/review/utils/summarize.ts +21 -0
  599. package/src/cli/commands/run-task.test.ts +60 -0
  600. package/src/cli/commands/start.ts +130 -55
  601. package/src/cli/commands/tests.ts +2 -0
  602. package/src/cli/commands/types.ts +1 -0
  603. package/src/cli/index.ts +4 -4
  604. package/src/cli/tasks/__tests__/cli-task.test.ts +16 -4
  605. package/src/cli/tasks/__tests__/{swc-compile.test.ts → swc-compile-package.test.ts} +75 -36
  606. package/src/cli/tasks/__tests__/tsc-compile-package.test.ts +1 -0
  607. package/src/cli/tasks/__tests__/tsc-compile.test.ts +12 -23
  608. package/src/cli/tasks/cli-task.ts +12 -18
  609. package/src/cli/tasks/swc-cli.d.ts +12 -1
  610. package/src/cli/tasks/swc-compile-package.ts +71 -45
  611. package/src/cli/tasks/task.ts +2 -11
  612. package/src/cli/tasks/tsc-compile-package.ts +0 -4
  613. package/src/cli/tasks/tsc-compile.ts +14 -17
  614. package/src/cli/types/cpx2.d.ts +8 -1
  615. package/src/cli/utils/__tests__/bundle.test.ts +1 -1
  616. package/src/cli/utils/__tests__/check-args.test.ts +34 -0
  617. package/src/cli/utils/__tests__/compile.test.ts +59 -0
  618. package/src/cli/utils/__tests__/copy-files.test.ts +157 -0
  619. package/src/cli/utils/__tests__/get-module-type.test.ts +19 -0
  620. package/src/cli/utils/__tests__/lerna-exec.test.ts +58 -11
  621. package/src/cli/utils/__tests__/pipe-stdout.test.ts +39 -0
  622. package/src/cli/utils/__tests__/process-tree.test.ts +175 -0
  623. package/src/cli/utils/__tests__/set-node-options.test.ts +51 -6
  624. package/src/cli/utils/__tests__/tcm.test.ts +90 -86
  625. package/src/cli/utils/__tests__/type-check.test.ts +47 -0
  626. package/src/cli/utils/__tests__/watch-stdout.test.ts +68 -0
  627. package/src/cli/utils/bundle.ts +5 -18
  628. package/src/cli/utils/check-args.ts +13 -0
  629. package/src/cli/utils/compile-less.ts +0 -1
  630. package/src/cli/utils/compile-sass.ts +0 -1
  631. package/src/cli/utils/compile.ts +22 -0
  632. package/src/cli/utils/copy-files.ts +76 -0
  633. package/src/cli/utils/eslint.ts +1 -0
  634. package/src/cli/utils/get-module-type.ts +4 -6
  635. package/src/cli/utils/index.ts +7 -6
  636. package/src/cli/utils/lerna-exec.ts +17 -10
  637. package/src/cli/utils/pipe-stdout.ts +10 -0
  638. package/src/cli/utils/process-tree.ts +57 -0
  639. package/src/cli/utils/set-node-options.ts +15 -12
  640. package/src/cli/utils/style-extensions.ts +1 -0
  641. package/src/cli/utils/tcm.ts +22 -32
  642. package/src/cli/utils/type-check.ts +19 -0
  643. package/src/cli/utils/watch-stdout.ts +24 -0
  644. package/src/utils/__tests__/format-duration.test.ts +22 -0
  645. package/src/utils/__tests__/get-configuration.test.ts +44 -2
  646. package/src/utils/__tests__/get-packages.test.ts +58 -49
  647. package/src/utils/__tests__/log-errors.test.ts +102 -0
  648. package/src/utils/__tests__/log.test.ts +1 -86
  649. package/src/utils/find-packages.ts +12 -6
  650. package/src/utils/format-duration.ts +13 -0
  651. package/src/utils/get-configuration.ts +19 -5
  652. package/src/utils/get-folders.ts +3 -1
  653. package/src/utils/get-packages.ts +9 -16
  654. package/src/utils/index.ts +3 -0
  655. package/src/utils/log-errors.ts +29 -0
  656. package/src/utils/log.ts +0 -26
  657. package/src/webpack/__mocks__/file-rules.ts +0 -5
  658. package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +4 -5
  659. package/src/webpack/__tests__/create-webpack-config.test.ts +33 -112
  660. package/src/webpack/configs/dev-server-config.ts +4 -27
  661. package/src/webpack/configs/devtool-config.ts +2 -2
  662. package/src/webpack/configs/entry.config.ts +7 -2
  663. package/src/webpack/configs/index.ts +2 -1
  664. package/src/webpack/configs/loaders/index.ts +1 -1
  665. package/src/webpack/configs/optimization-config.ts +2 -2
  666. package/src/webpack/configs/plugins/index.ts +0 -2
  667. package/src/webpack/configs/plugins/virtual-modules-plugin.ts +3 -3
  668. package/src/webpack/configs/plugins-config.ts +0 -4
  669. package/src/webpack/configs/resolve-config.ts +1 -1
  670. package/src/webpack/configs/rules/index.ts +0 -1
  671. package/src/webpack/configs/rules/js-rules.ts +27 -2
  672. package/src/webpack/configs/rules-config.ts +1 -11
  673. package/src/webpack/configs/types.ts +1 -3
  674. package/src/webpack/configs/watch-options-config.ts +17 -0
  675. package/src/webpack/create-webpack-config.ts +3 -4
  676. package/src/webpack/index.ts +1 -1
  677. package/src/webpack/types.ts +0 -4
  678. package/src/webpack/utils/index.ts +1 -1
  679. package/dist/__mocks__/create-package.js +0 -17
  680. package/dist/__mocks__/create-package.js.map +0 -1
  681. package/dist/__mocks__/index.js +0 -18
  682. package/dist/__mocks__/index.js.map +0 -1
  683. package/dist/cli/utils/assets-copy.d.ts +0 -3
  684. package/dist/cli/utils/assets-copy.d.ts.map +0 -1
  685. package/dist/cli/utils/assets-copy.js +0 -25
  686. package/dist/cli/utils/assets-copy.js.map +0 -1
  687. package/dist/cli/utils/styles-copy.d.ts +0 -3
  688. package/dist/cli/utils/styles-copy.d.ts.map +0 -1
  689. package/dist/cli/utils/styles-copy.js +0 -25
  690. package/dist/cli/utils/styles-copy.js.map +0 -1
  691. package/dist/cli/utils/tsc.d.ts +0 -5
  692. package/dist/cli/utils/tsc.d.ts.map +0 -1
  693. package/dist/cli/utils/tsc.js +0 -37
  694. package/dist/cli/utils/tsc.js.map +0 -1
  695. package/dist/webpack/__mocks__/file-rules.js +0 -79
  696. package/dist/webpack/__mocks__/file-rules.js.map +0 -1
  697. package/dist/webpack/__mocks__/index.js +0 -19
  698. package/dist/webpack/__mocks__/index.js.map +0 -1
  699. package/dist/webpack/__mocks__/style-rules.js +0 -124
  700. package/dist/webpack/__mocks__/style-rules.js.map +0 -1
  701. package/dist/webpack/configs/plugins/provide-react-plugin.d.ts +0 -4
  702. package/dist/webpack/configs/plugins/provide-react-plugin.d.ts.map +0 -1
  703. package/dist/webpack/configs/plugins/provide-react-plugin.js +0 -13
  704. package/dist/webpack/configs/plugins/provide-react-plugin.js.map +0 -1
  705. package/dist/webpack/configs/plugins/ts-checker-plugin.d.ts +0 -4
  706. package/dist/webpack/configs/plugins/ts-checker-plugin.d.ts.map +0 -1
  707. package/dist/webpack/configs/plugins/ts-checker-plugin.js +0 -30
  708. package/dist/webpack/configs/plugins/ts-checker-plugin.js.map +0 -1
  709. package/dist/webpack/configs/rules/tsx-rules.d.ts +0 -4
  710. package/dist/webpack/configs/rules/tsx-rules.d.ts.map +0 -1
  711. package/dist/webpack/configs/rules/tsx-rules.js +0 -44
  712. package/dist/webpack/configs/rules/tsx-rules.js.map +0 -1
  713. package/dist/webpack/utils/bundle.d.ts.map +0 -1
  714. package/dist/webpack/utils/bundle.js +0 -19
  715. package/dist/webpack/utils/bundle.js.map +0 -1
  716. package/src/cli/utils/__tests__/assets-copy.test.ts +0 -52
  717. package/src/cli/utils/__tests__/styles-copy.test.ts +0 -52
  718. package/src/cli/utils/__tests__/tsc.test.ts +0 -63
  719. package/src/cli/utils/assets-copy.ts +0 -23
  720. package/src/cli/utils/styles-copy.ts +0 -23
  721. package/src/cli/utils/tsc.ts +0 -38
  722. package/src/webpack/configs/plugins/provide-react-plugin.ts +0 -12
  723. package/src/webpack/configs/plugins/ts-checker-plugin.ts +0 -33
  724. package/src/webpack/configs/rules/tsx-rules.ts +0 -48
  725. /package/src/webpack/utils/{bundle.ts → get-module-entry-path.ts} +0 -0
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "NoTypescriptEntryPoint", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return NoTypescriptEntryPoint;
9
+ }
10
+ });
11
+ const _child_process = require("child_process");
12
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
+ const _utils = require("../../../../utils");
14
+ const _types = require("../types");
15
+ const _utils1 = require("../utils");
16
+ function _interop_require_default(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
+ }
21
+ class NoTypescriptEntryPoint {
22
+ get id() {
23
+ return 'no-typescript-entry-point';
24
+ }
25
+ run({ config, packages }) {
26
+ var _config_rules;
27
+ const ruleConfig = (_config_rules = config.rules) === null || _config_rules === void 0 ? void 0 : _config_rules[this.id];
28
+ return (0, _utils1.applyFilter)(ruleConfig, packages, ({ name })=>name).flatMap((pkg)=>this.checkEntryPoints(pkg));
29
+ }
30
+ fix({ data, location }) {
31
+ const { key, value } = data !== null && data !== void 0 ? data : {};
32
+ if (!(key && value && location)) {
33
+ return;
34
+ }
35
+ const workspace = _path.default.relative('.', location);
36
+ const { source, destination } = (0, _utils.getFolders)(location);
37
+ const newValue = value.replace(source, destination).replace(/\.ts$/, '.js');
38
+ const command = `npm pkg set "${key}"="${newValue}" -w ${workspace}`;
39
+ _utils.log.debug(`review:${this.id}`, `Running ${command}`);
40
+ (0, _child_process.execSync)(command);
41
+ }
42
+ checkEntryPoints(pkg) {
43
+ const errors = [];
44
+ const addError = (message, data)=>errors.push({
45
+ id: this.id,
46
+ message,
47
+ location: pkg.location,
48
+ fixable: _types.FixCategory.normal,
49
+ data
50
+ });
51
+ [
52
+ 'main',
53
+ 'module',
54
+ 'exports'
55
+ ].forEach((key)=>{
56
+ const value = pkg[key];
57
+ if (typeof value === 'string' && this.isTypescriptEntryPoint(value)) {
58
+ addError(`"${key}" is Typescript: ${value}`, {
59
+ key,
60
+ value
61
+ });
62
+ }
63
+ });
64
+ if (pkg.exports && typeof pkg.exports !== 'string') {
65
+ const checkExports = (exports1, prefix)=>{
66
+ Object.entries(exports1).forEach(([key, value])=>{
67
+ const path = `${prefix}[${key}]`;
68
+ if (typeof value === 'string') {
69
+ if (this.isTypescriptEntryPoint(value)) {
70
+ addError(`"${path}" is Typescript: ${value}`, {
71
+ key: path,
72
+ value
73
+ });
74
+ }
75
+ } else if (exports1) {
76
+ checkExports(value, path);
77
+ }
78
+ });
79
+ };
80
+ checkExports(pkg.exports, 'exports');
81
+ }
82
+ return errors;
83
+ }
84
+ isTypescriptEntryPoint(str) {
85
+ return str.endsWith('.ts') && !str.endsWith('.d.ts');
86
+ }
87
+ }
88
+
89
+ //# sourceMappingURL=no-typescript-entry-point.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/no-typescript-entry-point.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport path from 'path';\nimport { getFolders, log } from '../../../../utils';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter } from '../utils';\n\ninterface ErrorData {\n key: string;\n value: string;\n}\n\nexport class NoTypescriptEntryPoint implements PackageRule {\n get id() {\n return 'no-typescript-entry-point';\n }\n\n run({ config, packages }: Project): PackageError<ErrorData>[] {\n const ruleConfig = config.rules?.[this.id];\n return applyFilter(ruleConfig, packages, ({ name }) => name).flatMap(pkg =>\n this.checkEntryPoints(pkg)\n );\n }\n\n fix({ data, location }: PackageError<ErrorData>) {\n const { key, value } = data ?? {};\n if (!(key && value && location)) {\n return;\n }\n\n const workspace = path.relative('.', location);\n const { source, destination } = getFolders(location);\n const newValue = value.replace(source, destination).replace(/\\.ts$/, '.js');\n const command = `npm pkg set \"${key}\"=\"${newValue}\" -w ${workspace}`;\n log.debug(`review:${this.id}`, `Running ${command}`);\n execSync(command);\n }\n\n private checkEntryPoints(pkg: Package) {\n const errors: PackageError<ErrorData>[] = [];\n const addError = (message: string, data: ErrorData) =>\n errors.push({\n id: this.id,\n message,\n location: pkg.location,\n fixable: FixCategory.normal,\n data,\n });\n\n (['main', 'module', 'exports'] as (keyof Package)[]).forEach(key => {\n const value = pkg[key];\n if (typeof value === 'string' && this.isTypescriptEntryPoint(value)) {\n addError(`\"${key}\" is Typescript: ${value}`, { key, value });\n }\n });\n\n if (pkg.exports && typeof pkg.exports !== 'string') {\n const checkExports = (exports: NonNullable<Package['exports']>, prefix: string) => {\n Object.entries(exports).forEach(([key, value]) => {\n const path = `${prefix}[${key}]`;\n if (typeof value === 'string') {\n if (this.isTypescriptEntryPoint(value)) {\n addError(`\"${path}\" is Typescript: ${value}`, { key: path, value });\n }\n } else if (exports) {\n checkExports(value, path);\n }\n });\n };\n checkExports(pkg.exports, 'exports');\n }\n\n return errors;\n }\n\n private isTypescriptEntryPoint(str: string) {\n return str.endsWith('.ts') && !str.endsWith('.d.ts');\n }\n}\n"],"names":["NoTypescriptEntryPoint","id","run","config","packages","ruleConfig","rules","applyFilter","name","flatMap","pkg","checkEntryPoints","fix","data","location","key","value","workspace","path","relative","source","destination","getFolders","newValue","replace","command","log","debug","execSync","errors","addError","message","push","fixable","FixCategory","normal","forEach","isTypescriptEntryPoint","exports","checkExports","prefix","Object","entries","str","endsWith"],"mappings":";;;;+BAWaA;;;eAAAA;;;+BAXY;6DACR;uBACe;uBACyC;wBAC7C;;;;;;AAOrB,MAAMA;IACT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,EAAW,EAA6B;YACvCD;QAAnB,MAAME,cAAaF,gBAAAA,OAAOG,KAAK,cAAZH,oCAAAA,aAAc,CAAC,IAAI,CAACF,EAAE,CAAC;QAC1C,OAAOM,IAAAA,mBAAW,EAACF,YAAYD,UAAU,CAAC,EAAEI,IAAI,EAAE,GAAKA,MAAMC,OAAO,CAACC,CAAAA,MACjE,IAAI,CAACC,gBAAgB,CAACD;IAE9B;IAEAE,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAA2B,EAAE;QAC7C,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAAGH,iBAAAA,kBAAAA,OAAQ,CAAC;QAChC,IAAI,CAAEE,CAAAA,OAAOC,SAASF,QAAO,GAAI;YAC7B;QACJ;QAEA,MAAMG,YAAYC,aAAI,CAACC,QAAQ,CAAC,KAAKL;QACrC,MAAM,EAAEM,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,iBAAU,EAACR;QAC3C,MAAMS,WAAWP,MAAMQ,OAAO,CAACJ,QAAQC,aAAaG,OAAO,CAAC,SAAS;QACrE,MAAMC,UAAU,CAAC,aAAa,EAAEV,IAAI,GAAG,EAAEQ,SAAS,KAAK,EAAEN,WAAW;QACpES,UAAG,CAACC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC1B,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAEwB,SAAS;QACnDG,IAAAA,uBAAQ,EAACH;IACb;IAEQd,iBAAiBD,GAAY,EAAE;QACnC,MAAMmB,SAAoC,EAAE;QAC5C,MAAMC,WAAW,CAACC,SAAiBlB,OAC/BgB,OAAOG,IAAI,CAAC;gBACR/B,IAAI,IAAI,CAACA,EAAE;gBACX8B;gBACAjB,UAAUJ,IAAII,QAAQ;gBACtBmB,SAASC,kBAAW,CAACC,MAAM;gBAC3BtB;YACJ;QAEH;YAAC;YAAQ;YAAU;SAAU,CAAuBuB,OAAO,CAACrB,CAAAA;YACzD,MAAMC,QAAQN,GAAG,CAACK,IAAI;YACtB,IAAI,OAAOC,UAAU,YAAY,IAAI,CAACqB,sBAAsB,CAACrB,QAAQ;gBACjEc,SAAS,CAAC,CAAC,EAAEf,IAAI,iBAAiB,EAAEC,OAAO,EAAE;oBAAED;oBAAKC;gBAAM;YAC9D;QACJ;QAEA,IAAIN,IAAI4B,OAAO,IAAI,OAAO5B,IAAI4B,OAAO,KAAK,UAAU;YAChD,MAAMC,eAAe,CAACD,UAA0CE;gBAC5DC,OAAOC,OAAO,CAACJ,UAASF,OAAO,CAAC,CAAC,CAACrB,KAAKC,MAAM;oBACzC,MAAME,OAAO,GAAGsB,OAAO,CAAC,EAAEzB,IAAI,CAAC,CAAC;oBAChC,IAAI,OAAOC,UAAU,UAAU;wBAC3B,IAAI,IAAI,CAACqB,sBAAsB,CAACrB,QAAQ;4BACpCc,SAAS,CAAC,CAAC,EAAEZ,KAAK,iBAAiB,EAAEF,OAAO,EAAE;gCAAED,KAAKG;gCAAMF;4BAAM;wBACrE;oBACJ,OAAO,IAAIsB,UAAS;wBAChBC,aAAavB,OAAOE;oBACxB;gBACJ;YACJ;YACAqB,aAAa7B,IAAI4B,OAAO,EAAE;QAC9B;QAEA,OAAOT;IACX;IAEQQ,uBAAuBM,GAAW,EAAE;QACxC,OAAOA,IAAIC,QAAQ,CAAC,UAAU,CAACD,IAAIC,QAAQ,CAAC;IAChD;AACJ"}
@@ -0,0 +1,7 @@
1
+ import { PackageError, PackageRule, Project } from '../types';
2
+ export declare class RequireExplicitSideEffects implements PackageRule {
3
+ get id(): string;
4
+ run({ config, packages }: Project): PackageError[];
5
+ private needsSideEffects;
6
+ }
7
+ //# sourceMappingURL=require-explicit-side-effects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-explicit-side-effects.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/review/rules/require-explicit-side-effects.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGtF,qBAAa,0BAA2B,YAAW,WAAW;IAC1D,IAAI,EAAE,WAEL;IAED,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO,GAAG,YAAY,EAAE;IAelD,OAAO,CAAC,gBAAgB;CAO3B"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "RequireExplicitSideEffects", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return RequireExplicitSideEffects;
9
+ }
10
+ });
11
+ const _types = require("../types");
12
+ const _utils = require("../utils");
13
+ class RequireExplicitSideEffects {
14
+ get id() {
15
+ return 'require-explicit-side-effects';
16
+ }
17
+ run({ config, packages }) {
18
+ var _config_rules;
19
+ const ruleConfig = (_config_rules = config.rules) === null || _config_rules === void 0 ? void 0 : _config_rules[this.id];
20
+ return (0, _utils.applyFilter)(ruleConfig, packages, ({ name })=>name).reduce((result, pkg)=>{
21
+ if (this.needsSideEffects(pkg)) {
22
+ result.push({
23
+ id: this.id,
24
+ message: `package "${pkg.name}" omits sideEffects property`,
25
+ severity: _types.ErrorSeverity.warning,
26
+ location: pkg.location
27
+ });
28
+ }
29
+ return result;
30
+ }, []);
31
+ }
32
+ needsSideEffects(pkg) {
33
+ return (0, _utils.isLibrary)(pkg) && (pkg.main !== undefined || pkg.exports !== undefined) && pkg.sideEffects === undefined;
34
+ }
35
+ }
36
+
37
+ //# sourceMappingURL=require-explicit-side-effects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-explicit-side-effects.ts"],"sourcesContent":["import { ErrorSeverity, Package, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter, isLibrary } from '../utils';\n\nexport class RequireExplicitSideEffects implements PackageRule {\n get id() {\n return 'require-explicit-side-effects';\n }\n\n run({ config, packages }: Project): PackageError[] {\n const ruleConfig = config.rules?.[this.id];\n return applyFilter(ruleConfig, packages, ({ name }) => name).reduce((result, pkg) => {\n if (this.needsSideEffects(pkg)) {\n result.push({\n id: this.id,\n message: `package \"${pkg.name}\" omits sideEffects property`,\n severity: ErrorSeverity.warning,\n location: pkg.location,\n });\n }\n return result;\n }, [] as PackageError[]);\n }\n\n private needsSideEffects(pkg: Package) {\n return (\n isLibrary(pkg) &&\n (pkg.main !== undefined || pkg.exports !== undefined) &&\n pkg.sideEffects === undefined\n );\n }\n}\n"],"names":["RequireExplicitSideEffects","id","run","config","packages","ruleConfig","rules","applyFilter","name","reduce","result","pkg","needsSideEffects","push","message","severity","ErrorSeverity","warning","location","isLibrary","main","undefined","exports","sideEffects"],"mappings":";;;;+BAGaA;;;eAAAA;;;uBAH8D;uBACpC;AAEhC,MAAMA;IACT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,EAAW,EAAkB;YAC5BD;QAAnB,MAAME,cAAaF,gBAAAA,OAAOG,KAAK,cAAZH,oCAAAA,aAAc,CAAC,IAAI,CAACF,EAAE,CAAC;QAC1C,OAAOM,IAAAA,kBAAW,EAACF,YAAYD,UAAU,CAAC,EAAEI,IAAI,EAAE,GAAKA,MAAMC,MAAM,CAAC,CAACC,QAAQC;YACzE,IAAI,IAAI,CAACC,gBAAgB,CAACD,MAAM;gBAC5BD,OAAOG,IAAI,CAAC;oBACRZ,IAAI,IAAI,CAACA,EAAE;oBACXa,SAAS,CAAC,SAAS,EAAEH,IAAIH,IAAI,CAAC,4BAA4B,CAAC;oBAC3DO,UAAUC,oBAAa,CAACC,OAAO;oBAC/BC,UAAUP,IAAIO,QAAQ;gBAC1B;YACJ;YACA,OAAOR;QACX,GAAG,EAAE;IACT;IAEQE,iBAAiBD,GAAY,EAAE;QACnC,OACIQ,IAAAA,gBAAS,EAACR,QACTA,CAAAA,IAAIS,IAAI,KAAKC,aAAaV,IAAIW,OAAO,KAAKD,SAAQ,KACnDV,IAAIY,WAAW,KAAKF;IAE5B;AACJ"}
@@ -0,0 +1,7 @@
1
+ import { PackageError, PackageRule } from '../types';
2
+ export declare class RequireNpmrc implements PackageRule {
3
+ get id(): string;
4
+ run(): PackageError | undefined;
5
+ fix(): void;
6
+ }
7
+ //# sourceMappingURL=require-npmrc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-npmrc.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/review/rules/require-npmrc.ts"],"names":[],"mappings":"AAEA,OAAO,EAA8B,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEjF,qBAAa,YAAa,YAAW,WAAW;IAC5C,IAAI,EAAE,WAEL;IAED,GAAG,IAAI,YAAY,GAAG,SAAS;IAY/B,GAAG;CAKN"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "RequireNpmrc", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return RequireNpmrc;
9
+ }
10
+ });
11
+ const _child_process = require("child_process");
12
+ const _utils = require("../../../../utils");
13
+ const _types = require("../types");
14
+ class RequireNpmrc {
15
+ get id() {
16
+ return 'require-npmrc';
17
+ }
18
+ run() {
19
+ const stdout = (0, _child_process.execSync)('npm config list --json', {
20
+ encoding: 'utf8'
21
+ });
22
+ if (JSON.parse(stdout)['legacy-peer-deps'] !== true) {
23
+ return {
24
+ id: this.id,
25
+ message: 'project does not contain .npmrc with legacy-peer-deps=true',
26
+ severity: _types.ErrorSeverity.warning,
27
+ fixable: _types.FixCategory.isolated
28
+ };
29
+ }
30
+ }
31
+ fix() {
32
+ const command = 'npm config set --location=project legacy-peer-deps=true';
33
+ _utils.log.debug(`review:${this.id}`, `Running ${command}`);
34
+ (0, _child_process.execSync)(command);
35
+ }
36
+ }
37
+
38
+ //# sourceMappingURL=require-npmrc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-npmrc.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport { log } from '../../../../utils';\nimport { ErrorSeverity, FixCategory, PackageError, PackageRule } from '../types';\n\nexport class RequireNpmrc implements PackageRule {\n get id() {\n return 'require-npmrc';\n }\n\n run(): PackageError | undefined {\n const stdout = execSync('npm config list --json', { encoding: 'utf8' });\n if (JSON.parse(stdout)['legacy-peer-deps'] !== true) {\n return {\n id: this.id,\n message: 'project does not contain .npmrc with legacy-peer-deps=true',\n severity: ErrorSeverity.warning,\n fixable: FixCategory.isolated,\n };\n }\n }\n\n fix() {\n const command = 'npm config set --location=project legacy-peer-deps=true';\n log.debug(`review:${this.id}`, `Running ${command}`);\n execSync(command);\n }\n}\n"],"names":["RequireNpmrc","id","run","stdout","execSync","encoding","JSON","parse","message","severity","ErrorSeverity","warning","fixable","FixCategory","isolated","fix","command","log","debug"],"mappings":";;;;+BAIaA;;;eAAAA;;;+BAJY;uBACL;uBACkD;AAE/D,MAAMA;IACT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,MAAgC;QAC5B,MAAMC,SAASC,IAAAA,uBAAQ,EAAC,0BAA0B;YAAEC,UAAU;QAAO;QACrE,IAAIC,KAAKC,KAAK,CAACJ,OAAO,CAAC,mBAAmB,KAAK,MAAM;YACjD,OAAO;gBACHF,IAAI,IAAI,CAACA,EAAE;gBACXO,SAAS;gBACTC,UAAUC,oBAAa,CAACC,OAAO;gBAC/BC,SAASC,kBAAW,CAACC,QAAQ;YACjC;QACJ;IACJ;IAEAC,MAAM;QACF,MAAMC,UAAU;QAChBC,UAAG,CAACC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,CAACjB,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAEe,SAAS;QACnDZ,IAAAA,uBAAQ,EAACY;IACb;AACJ"}
@@ -0,0 +1,5 @@
1
+ import { RequireOneCollectionVersion } from './require-one-collection-version';
2
+ export declare class RequireOneAnvilUikitContribVersion extends RequireOneCollectionVersion {
3
+ constructor();
4
+ }
5
+ //# sourceMappingURL=require-one-anvil-uikit-contrib-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-one-anvil-uikit-contrib-version.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/review/rules/require-one-anvil-uikit-contrib-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAe/E,qBAAa,kCAAmC,SAAQ,2BAA2B;;CAIlF"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "RequireOneAnvilUikitContribVersion", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return RequireOneAnvilUikitContribVersion;
9
+ }
10
+ });
11
+ const _requireonecollectionversion = require("./require-one-collection-version");
12
+ const ANVIL_UIKIT_PACKAGES = [
13
+ '@servicetitan/confirm-navigation',
14
+ '@servicetitan/confirm',
15
+ '@servicetitan/culture',
16
+ '@servicetitan/data-query',
17
+ '@servicetitan/datetime-utils',
18
+ '@servicetitan/form-state',
19
+ '@servicetitan/form',
20
+ '@servicetitan/link-item',
21
+ '@servicetitan/notifications',
22
+ '@servicetitan/table'
23
+ ];
24
+ class RequireOneAnvilUikitContribVersion extends _requireonecollectionversion.RequireOneCollectionVersion {
25
+ constructor(){
26
+ super({
27
+ name: 'anvil-uikit-contrib',
28
+ packages: ANVIL_UIKIT_PACKAGES
29
+ });
30
+ }
31
+ }
32
+
33
+ //# sourceMappingURL=require-one-anvil-uikit-contrib-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-one-anvil-uikit-contrib-version.ts"],"sourcesContent":["import { RequireOneCollectionVersion } from './require-one-collection-version';\n\nconst ANVIL_UIKIT_PACKAGES = [\n '@servicetitan/confirm-navigation',\n '@servicetitan/confirm',\n '@servicetitan/culture',\n '@servicetitan/data-query',\n '@servicetitan/datetime-utils',\n '@servicetitan/form-state',\n '@servicetitan/form',\n '@servicetitan/link-item',\n '@servicetitan/notifications',\n '@servicetitan/table',\n];\n\nexport class RequireOneAnvilUikitContribVersion extends RequireOneCollectionVersion {\n constructor() {\n super({ name: 'anvil-uikit-contrib', packages: ANVIL_UIKIT_PACKAGES });\n }\n}\n"],"names":["RequireOneAnvilUikitContribVersion","ANVIL_UIKIT_PACKAGES","RequireOneCollectionVersion","constructor","name","packages"],"mappings":";;;;+BAeaA;;;eAAAA;;;6CAf+B;AAE5C,MAAMC,uBAAuB;IACzB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACH;AAEM,MAAMD,2CAA2CE,wDAA2B;IAC/EC,aAAc;QACV,KAAK,CAAC;YAAEC,MAAM;YAAuBC,UAAUJ;QAAqB;IACxE;AACJ"}
@@ -0,0 +1,45 @@
1
+ import { PackageError, PackageRule, Project } from '../types';
2
+ export interface Collection {
3
+ name: string;
4
+ packages: string[];
5
+ }
6
+ /**
7
+ * Maps version number to packages with that version and their dependents.
8
+ */
9
+ interface Versions {
10
+ [version: string]: {
11
+ [packageName: string]: string[];
12
+ };
13
+ }
14
+ interface ErrorData {
15
+ targetVersion: string;
16
+ otherVersions: Versions;
17
+ }
18
+ export declare class RequireOneCollectionVersion implements PackageRule {
19
+ private readonly collection;
20
+ constructor(collection: Collection);
21
+ get id(): string;
22
+ run(project: Project): PackageError<ErrorData> | undefined;
23
+ fix({ data }: PackageError<ErrorData>, project: Project): void;
24
+ private collateVersions;
25
+ private composeDetails;
26
+ private formatDetail;
27
+ private getDependencies;
28
+ private getDetails;
29
+ /**
30
+ * Assumes first version is the most common and the other ones are extra (see sortVersions)
31
+ */
32
+ private getExtra;
33
+ /**
34
+ * Orders details so that extraneous packages are at the top
35
+ */
36
+ private sortDetails;
37
+ /**
38
+ * Orders versions in descending order by the number of packages using the version
39
+ * and then by version number. I.e., It puts most common version at the top and if
40
+ * multiple versions tie for the top position, it puts the highest version first.
41
+ */
42
+ private sortVersions;
43
+ }
44
+ export {};
45
+ //# sourceMappingURL=require-one-collection-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-one-collection-version.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/review/rules/require-one-collection-version.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGpF,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,UAAU,QAAQ;IACd,CAAC,OAAO,EAAE,MAAM,GAAG;QACf,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;KACnC,CAAC;CACL;AAED,UAAU,SAAS;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,QAAQ,CAAC;CAC3B;AAQD,qBAAa,2BAA4B,YAAW,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEnD,IAAI,EAAE,WAEL;IAED,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,SAAS;IA0B1D,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO;IAoBvD,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,UAAU;IAalB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAUhB;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAWvB"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "RequireOneCollectionVersion", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return RequireOneCollectionVersion;
9
+ }
10
+ });
11
+ const _chalk = /*#__PURE__*/ _interop_require_default(require("chalk"));
12
+ const _utils = require("../../../../utils");
13
+ const _types = require("../types");
14
+ const _utils1 = require("../utils");
15
+ function _define_property(obj, key, value) {
16
+ if (key in obj) {
17
+ Object.defineProperty(obj, key, {
18
+ value: value,
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true
22
+ });
23
+ } else {
24
+ obj[key] = value;
25
+ }
26
+ return obj;
27
+ }
28
+ function _interop_require_default(obj) {
29
+ return obj && obj.__esModule ? obj : {
30
+ default: obj
31
+ };
32
+ }
33
+ class RequireOneCollectionVersion {
34
+ get id() {
35
+ return `require-one-${this.collection.name}-version`;
36
+ }
37
+ run(project) {
38
+ const versions = this.collateVersions(project);
39
+ /* istanbul ignore next: debug only */ _utils.log.debug(`review:${this.collection.name}-versions`, ()=>JSON.stringify(versions, null, 2));
40
+ const keys = Object.keys(versions);
41
+ if (keys.length <= 1) {
42
+ return;
43
+ }
44
+ const message = `project depends on multiple versions of ${this.collection.name} packages`;
45
+ const details = this.composeDetails(project, versions);
46
+ const targetVersion = keys[0];
47
+ const otherVersions = Object.fromEntries(Object.entries(versions).slice(1));
48
+ return {
49
+ id: this.id,
50
+ message,
51
+ details,
52
+ fixable: _types.FixCategory.normal,
53
+ data: {
54
+ targetVersion,
55
+ otherVersions
56
+ }
57
+ };
58
+ }
59
+ fix({ data }, project) {
60
+ const { targetVersion, otherVersions } = data !== null && data !== void 0 ? data : {};
61
+ if (!(targetVersion && otherVersions)) {
62
+ return;
63
+ }
64
+ Object.values(otherVersions).forEach((packages)=>{
65
+ Object.entries(packages).forEach(([name, dependents])=>{
66
+ dependents.forEach((dependent)=>(0, _utils1.setVersion)({
67
+ project,
68
+ packageName: dependent,
69
+ dependency: name,
70
+ version: targetVersion
71
+ }));
72
+ });
73
+ });
74
+ }
75
+ collateVersions(project) {
76
+ const dependencies = this.getDependencies(project);
77
+ return this.sortVersions(this.collection.packages.reduce((result, name)=>{
78
+ var _dependencies_name;
79
+ Object.entries((_dependencies_name = dependencies[name]) !== null && _dependencies_name !== void 0 ? _dependencies_name : {}).forEach(([version, dependents])=>{
80
+ var _result, _version;
81
+ var _;
82
+ (_ = (_result = result)[_version = version]) !== null && _ !== void 0 ? _ : _result[_version] = {};
83
+ result[version][name] = dependents;
84
+ });
85
+ return result;
86
+ }, {}));
87
+ }
88
+ composeDetails({ packages }, versions) {
89
+ const extra = this.getExtra(versions);
90
+ return this.sortDetails(this.getDetails(packages, versions, extra)).map((detail)=>this.formatDetail(detail));
91
+ }
92
+ formatDetail({ dependents, packageName, extra }) {
93
+ return (0, _utils1.formatDependsOn)(dependents, _chalk.default[extra ? 'red' : 'yellow'](packageName));
94
+ }
95
+ getDependencies({ config, dependencies }) {
96
+ var _config_rules;
97
+ const ruleConfig = (_config_rules = config.rules) === null || _config_rules === void 0 ? void 0 : _config_rules[this.id];
98
+ return Object.fromEntries((0, _utils1.applyFilter)(ruleConfig, Object.entries(dependencies), ([name])=>name));
99
+ }
100
+ getDetails(packages, versions, extra) {
101
+ return Object.entries(versions).reduce((result, [version, dependencies])=>{
102
+ Object.entries(dependencies).forEach(([pkg, dependents])=>{
103
+ result.push({
104
+ packageName: `${pkg}@${version}`,
105
+ dependents: dependents.map((name)=>(0, _utils1.nameToLocation)(name, packages)),
106
+ extra: extra.has(pkg)
107
+ });
108
+ });
109
+ return result;
110
+ }, []);
111
+ }
112
+ /**
113
+ * Assumes first version is the most common and the other ones are extra (see sortVersions)
114
+ */ getExtra(versions) {
115
+ return new Set(Object.entries(versions).slice(1).flatMap(([_version, dependencies])=>Object.entries(dependencies).map(([pkg])=>pkg)));
116
+ }
117
+ /**
118
+ * Orders details so that extraneous packages are at the top
119
+ */ sortDetails(details) {
120
+ return details.sort((a, b)=>{
121
+ if (a.extra === b.extra) {
122
+ return 0;
123
+ }
124
+ return a.extra === true ? -1 : 1;
125
+ });
126
+ }
127
+ /**
128
+ * Orders versions in descending order by the number of packages using the version
129
+ * and then by version number. I.e., It puts most common version at the top and if
130
+ * multiple versions tie for the top position, it puts the highest version first.
131
+ */ sortVersions(versions) {
132
+ return Object.fromEntries(Object.entries(versions).sort(([v1, depsV1], [v2, depsV2])=>Object.keys(depsV1).length - Object.keys(depsV2).length || (0, _utils1.compareVersion)(v1, v2)).reverse());
133
+ }
134
+ constructor(collection){
135
+ _define_property(this, "collection", void 0);
136
+ this.collection = collection;
137
+ }
138
+ }
139
+
140
+ //# sourceMappingURL=require-one-collection-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-one-collection-version.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { log } from '../../../../utils';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter, compareVersion, formatDependsOn, nameToLocation, setVersion } from '../utils';\n\nexport interface Collection {\n name: string;\n packages: string[];\n}\n\n/**\n * Maps version number to packages with that version and their dependents.\n */\ninterface Versions {\n [version: string]: {\n [packageName: string]: string[];\n };\n}\n\ninterface ErrorData {\n targetVersion: string;\n otherVersions: Versions;\n}\n\ninterface ErrorDetail {\n dependents: string[];\n extra: boolean;\n packageName: string;\n}\n\nexport class RequireOneCollectionVersion implements PackageRule {\n constructor(private readonly collection: Collection) {}\n\n get id() {\n return `require-one-${this.collection.name}-version`;\n }\n\n run(project: Project): PackageError<ErrorData> | undefined {\n const versions = this.collateVersions(project);\n\n /* istanbul ignore next: debug only */\n log.debug(`review:${this.collection.name}-versions`, () =>\n JSON.stringify(versions, null, 2)\n );\n\n const keys = Object.keys(versions);\n if (keys.length <= 1) {\n return;\n }\n\n const message = `project depends on multiple versions of ${this.collection.name} packages`;\n const details = this.composeDetails(project, versions);\n const targetVersion = keys[0];\n const otherVersions = Object.fromEntries(Object.entries(versions).slice(1));\n return {\n id: this.id,\n message,\n details,\n fixable: FixCategory.normal,\n data: { targetVersion, otherVersions },\n };\n }\n\n fix({ data }: PackageError<ErrorData>, project: Project) {\n const { targetVersion, otherVersions } = data ?? {};\n if (!(targetVersion && otherVersions)) {\n return;\n }\n\n Object.values(otherVersions).forEach(packages => {\n Object.entries(packages).forEach(([name, dependents]) => {\n dependents.forEach(dependent =>\n setVersion({\n project,\n packageName: dependent,\n dependency: name,\n version: targetVersion,\n })\n );\n });\n });\n }\n\n private collateVersions(project: Project) {\n const dependencies = this.getDependencies(project);\n return this.sortVersions(\n this.collection.packages.reduce<Versions>((result, name) => {\n Object.entries(dependencies[name] ?? {}).forEach(([version, dependents]) => {\n result[version] ??= {};\n result[version][name] = dependents;\n });\n return result;\n }, {})\n );\n }\n\n private composeDetails({ packages }: Project, versions: Versions) {\n const extra = this.getExtra(versions);\n return this.sortDetails(this.getDetails(packages, versions, extra)).map(detail =>\n this.formatDetail(detail)\n );\n }\n\n private formatDetail({ dependents, packageName, extra }: ErrorDetail) {\n return formatDependsOn(dependents, chalk[extra ? 'red' : 'yellow'](packageName));\n }\n\n private getDependencies({ config, dependencies }: Project) {\n const ruleConfig = config.rules?.[this.id];\n return Object.fromEntries(\n applyFilter(ruleConfig, Object.entries(dependencies), ([name]) => name)\n ) as Project['dependencies'];\n }\n\n private getDetails(packages: Package[], versions: Versions, extra: Set<string>) {\n return Object.entries(versions).reduce((result, [version, dependencies]) => {\n Object.entries(dependencies).forEach(([pkg, dependents]) => {\n result.push({\n packageName: `${pkg}@${version}`,\n dependents: dependents.map(name => nameToLocation(name, packages)),\n extra: extra.has(pkg),\n });\n });\n return result;\n }, [] as ErrorDetail[]);\n }\n\n /**\n * Assumes first version is the most common and the other ones are extra (see sortVersions)\n */\n private getExtra(versions: Versions): Set<string> {\n return new Set(\n Object.entries(versions)\n .slice(1)\n .flatMap(([_version, dependencies]) =>\n Object.entries(dependencies).map(([pkg]) => pkg)\n )\n );\n }\n\n /**\n * Orders details so that extraneous packages are at the top\n */\n private sortDetails(details: ErrorDetail[]) {\n return details.sort((a, b) => {\n if (a.extra === b.extra) {\n return 0;\n }\n return a.extra === true ? -1 : 1;\n });\n }\n\n /**\n * Orders versions in descending order by the number of packages using the version\n * and then by version number. I.e., It puts most common version at the top and if\n * multiple versions tie for the top position, it puts the highest version first.\n */\n private sortVersions(versions: Versions): Versions {\n return Object.fromEntries(\n Object.entries(versions)\n .sort(\n ([v1, depsV1], [v2, depsV2]) =>\n Object.keys(depsV1).length - Object.keys(depsV2).length ||\n compareVersion(v1, v2)\n )\n .reverse()\n );\n }\n}\n"],"names":["RequireOneCollectionVersion","id","collection","name","run","project","versions","collateVersions","log","debug","JSON","stringify","keys","Object","length","message","details","composeDetails","targetVersion","otherVersions","fromEntries","entries","slice","fixable","FixCategory","normal","data","fix","values","forEach","packages","dependents","dependent","setVersion","packageName","dependency","version","dependencies","getDependencies","sortVersions","reduce","result","extra","getExtra","sortDetails","getDetails","map","detail","formatDetail","formatDependsOn","chalk","config","ruleConfig","rules","applyFilter","pkg","push","nameToLocation","has","Set","flatMap","_version","sort","a","b","v1","depsV1","v2","depsV2","compareVersion","reverse","constructor"],"mappings":";;;;+BA8BaA;;;eAAAA;;;8DA9BK;uBACE;uBACqD;wBACgB;;;;;;;;;;;;;;;;;;;AA2BlF,MAAMA;IAGT,IAAIC,KAAK;QACL,OAAO,CAAC,YAAY,EAAE,IAAI,CAACC,UAAU,CAACC,IAAI,CAAC,QAAQ,CAAC;IACxD;IAEAC,IAAIC,OAAgB,EAAuC;QACvD,MAAMC,WAAW,IAAI,CAACC,eAAe,CAACF;QAEtC,oCAAoC,GACpCG,UAAG,CAACC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,CAACP,UAAU,CAACC,IAAI,CAAC,SAAS,CAAC,EAAE,IACjDO,KAAKC,SAAS,CAACL,UAAU,MAAM;QAGnC,MAAMM,OAAOC,OAAOD,IAAI,CAACN;QACzB,IAAIM,KAAKE,MAAM,IAAI,GAAG;YAClB;QACJ;QAEA,MAAMC,UAAU,CAAC,wCAAwC,EAAE,IAAI,CAACb,UAAU,CAACC,IAAI,CAAC,SAAS,CAAC;QAC1F,MAAMa,UAAU,IAAI,CAACC,cAAc,CAACZ,SAASC;QAC7C,MAAMY,gBAAgBN,IAAI,CAAC,EAAE;QAC7B,MAAMO,gBAAgBN,OAAOO,WAAW,CAACP,OAAOQ,OAAO,CAACf,UAAUgB,KAAK,CAAC;QACxE,OAAO;YACHrB,IAAI,IAAI,CAACA,EAAE;YACXc;YACAC;YACAO,SAASC,kBAAW,CAACC,MAAM;YAC3BC,MAAM;gBAAER;gBAAeC;YAAc;QACzC;IACJ;IAEAQ,IAAI,EAAED,IAAI,EAA2B,EAAErB,OAAgB,EAAE;QACrD,MAAM,EAAEa,aAAa,EAAEC,aAAa,EAAE,GAAGO,iBAAAA,kBAAAA,OAAQ,CAAC;QAClD,IAAI,CAAER,CAAAA,iBAAiBC,aAAY,GAAI;YACnC;QACJ;QAEAN,OAAOe,MAAM,CAACT,eAAeU,OAAO,CAACC,CAAAA;YACjCjB,OAAOQ,OAAO,CAACS,UAAUD,OAAO,CAAC,CAAC,CAAC1B,MAAM4B,WAAW;gBAChDA,WAAWF,OAAO,CAACG,CAAAA,YACfC,IAAAA,kBAAU,EAAC;wBACP5B;wBACA6B,aAAaF;wBACbG,YAAYhC;wBACZiC,SAASlB;oBACb;YAER;QACJ;IACJ;IAEQX,gBAAgBF,OAAgB,EAAE;QACtC,MAAMgC,eAAe,IAAI,CAACC,eAAe,CAACjC;QAC1C,OAAO,IAAI,CAACkC,YAAY,CACpB,IAAI,CAACrC,UAAU,CAAC4B,QAAQ,CAACU,MAAM,CAAW,CAACC,QAAQtC;gBAChCkC;YAAfxB,OAAOQ,OAAO,CAACgB,CAAAA,qBAAAA,YAAY,CAAClC,KAAK,cAAlBkC,gCAAAA,qBAAsB,CAAC,GAAGR,OAAO,CAAC,CAAC,CAACO,SAASL,WAAW;oBACnEU,SAAOL;;gBAAPK,MAAAA,UAAAA,OAAM,CAACL,WAAAA,QAAQ,iCAAfK,OAAM,CAACL,SAAQ,GAAK,CAAC;gBACrBK,MAAM,CAACL,QAAQ,CAACjC,KAAK,GAAG4B;YAC5B;YACA,OAAOU;QACX,GAAG,CAAC;IAEZ;IAEQxB,eAAe,EAAEa,QAAQ,EAAW,EAAExB,QAAkB,EAAE;QAC9D,MAAMoC,QAAQ,IAAI,CAACC,QAAQ,CAACrC;QAC5B,OAAO,IAAI,CAACsC,WAAW,CAAC,IAAI,CAACC,UAAU,CAACf,UAAUxB,UAAUoC,QAAQI,GAAG,CAACC,CAAAA,SACpE,IAAI,CAACC,YAAY,CAACD;IAE1B;IAEQC,aAAa,EAAEjB,UAAU,EAAEG,WAAW,EAAEQ,KAAK,EAAe,EAAE;QAClE,OAAOO,IAAAA,uBAAe,EAAClB,YAAYmB,cAAK,CAACR,QAAQ,QAAQ,SAAS,CAACR;IACvE;IAEQI,gBAAgB,EAAEa,MAAM,EAAEd,YAAY,EAAW,EAAE;YACpCc;QAAnB,MAAMC,cAAaD,gBAAAA,OAAOE,KAAK,cAAZF,oCAAAA,aAAc,CAAC,IAAI,CAAClD,EAAE,CAAC;QAC1C,OAAOY,OAAOO,WAAW,CACrBkC,IAAAA,mBAAW,EAACF,YAAYvC,OAAOQ,OAAO,CAACgB,eAAe,CAAC,CAAClC,KAAK,GAAKA;IAE1E;IAEQ0C,WAAWf,QAAmB,EAAExB,QAAkB,EAAEoC,KAAkB,EAAE;QAC5E,OAAO7B,OAAOQ,OAAO,CAACf,UAAUkC,MAAM,CAAC,CAACC,QAAQ,CAACL,SAASC,aAAa;YACnExB,OAAOQ,OAAO,CAACgB,cAAcR,OAAO,CAAC,CAAC,CAAC0B,KAAKxB,WAAW;gBACnDU,OAAOe,IAAI,CAAC;oBACRtB,aAAa,GAAGqB,IAAI,CAAC,EAAEnB,SAAS;oBAChCL,YAAYA,WAAWe,GAAG,CAAC3C,CAAAA,OAAQsD,IAAAA,sBAAc,EAACtD,MAAM2B;oBACxDY,OAAOA,MAAMgB,GAAG,CAACH;gBACrB;YACJ;YACA,OAAOd;QACX,GAAG,EAAE;IACT;IAEA;;KAEC,GACD,AAAQE,SAASrC,QAAkB,EAAe;QAC9C,OAAO,IAAIqD,IACP9C,OAAOQ,OAAO,CAACf,UACVgB,KAAK,CAAC,GACNsC,OAAO,CAAC,CAAC,CAACC,UAAUxB,aAAa,GAC9BxB,OAAOQ,OAAO,CAACgB,cAAcS,GAAG,CAAC,CAAC,CAACS,IAAI,GAAKA;IAG5D;IAEA;;KAEC,GACD,AAAQX,YAAY5B,OAAsB,EAAE;QACxC,OAAOA,QAAQ8C,IAAI,CAAC,CAACC,GAAGC;YACpB,IAAID,EAAErB,KAAK,KAAKsB,EAAEtB,KAAK,EAAE;gBACrB,OAAO;YACX;YACA,OAAOqB,EAAErB,KAAK,KAAK,OAAO,CAAC,IAAI;QACnC;IACJ;IAEA;;;;KAIC,GACD,AAAQH,aAAajC,QAAkB,EAAY;QAC/C,OAAOO,OAAOO,WAAW,CACrBP,OAAOQ,OAAO,CAACf,UACVwD,IAAI,CACD,CAAC,CAACG,IAAIC,OAAO,EAAE,CAACC,IAAIC,OAAO,GACvBvD,OAAOD,IAAI,CAACsD,QAAQpD,MAAM,GAAGD,OAAOD,IAAI,CAACwD,QAAQtD,MAAM,IACvDuD,IAAAA,sBAAc,EAACJ,IAAIE,KAE1BG,OAAO;IAEpB;IAxIAC,YAAY,AAAiBrE,UAAsB,CAAE;;aAAxBA,aAAAA;IAAyB;AAyI1D"}
@@ -0,0 +1,20 @@
1
+ import { PackageError, PackageRule, Project } from '../types';
2
+ interface ErrorData {
3
+ name: string;
4
+ versions: Versions;
5
+ }
6
+ /**
7
+ * Maps versions to their dependents
8
+ */
9
+ interface Versions {
10
+ [key: string]: string[];
11
+ }
12
+ export declare class RequireOnePackageVersion implements PackageRule {
13
+ get id(): string;
14
+ run(project: Project): PackageError<ErrorData>[];
15
+ fix({ data }: PackageError<ErrorData>, project: Project): void;
16
+ private formatDetails;
17
+ private getDependencies;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=require-one-package-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-one-package-version.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/review/rules/require-one-package-version.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAG3E,UAAU,SAAS;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;CACtB;AAED;;GAEG;AACH,UAAU,QAAQ;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED,qBAAa,wBAAyB,YAAW,WAAW;IACxD,IAAI,EAAE,WAEL;IAED,GAAG,CAAC,OAAO,EAAE,OAAO;IAoBpB,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO;IAqBvD,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,eAAe;CAI1B"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "RequireOnePackageVersion", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return RequireOnePackageVersion;
9
+ }
10
+ });
11
+ const _chalk = /*#__PURE__*/ _interop_require_default(require("chalk"));
12
+ const _types = require("../types");
13
+ const _utils = require("../utils");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ class RequireOnePackageVersion {
20
+ get id() {
21
+ return 'require-one-package-version';
22
+ }
23
+ run(project) {
24
+ const errors = [];
25
+ this.getDependencies(project).forEach(([name, versions])=>{
26
+ if (Object.keys(versions).length > 1) {
27
+ const message = `project depends on multiple versions of "${name}"`;
28
+ const details = this.formatDetails(project, versions);
29
+ errors.push({
30
+ id: this.id,
31
+ message,
32
+ details,
33
+ fixable: _types.FixCategory.isolated,
34
+ data: {
35
+ name,
36
+ versions
37
+ }
38
+ });
39
+ }
40
+ });
41
+ return errors;
42
+ }
43
+ fix({ data }, project) {
44
+ const { name, versions } = data !== null && data !== void 0 ? data : {};
45
+ if (!(name && versions)) {
46
+ return;
47
+ }
48
+ const targetVersion = (0, _utils.getMaxVersion)(Object.keys(versions));
49
+ Object.entries(versions).forEach(([version, dependents])=>{
50
+ if (version !== targetVersion) {
51
+ dependents.forEach((dependent)=>(0, _utils.setVersion)({
52
+ project,
53
+ packageName: dependent,
54
+ dependency: name,
55
+ version: targetVersion
56
+ }));
57
+ }
58
+ });
59
+ }
60
+ formatDetails({ packages }, versions) {
61
+ return Object.entries(versions).map(([version, dependents])=>(0, _utils.formatDependsOn)(dependents.map((name)=>(0, _utils.nameToLocation)(name, packages)), _chalk.default.yellow(version)));
62
+ }
63
+ getDependencies({ config, dependencies }) {
64
+ var _config_rules;
65
+ const ruleConfig = (_config_rules = config.rules) === null || _config_rules === void 0 ? void 0 : _config_rules[this.id];
66
+ return (0, _utils.applyFilter)(ruleConfig, Object.entries(dependencies), ([name])=>name);
67
+ }
68
+ }
69
+
70
+ //# sourceMappingURL=require-one-package-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-one-package-version.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { FixCategory, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter, formatDependsOn, getMaxVersion, nameToLocation, setVersion } from '../utils';\n\ninterface ErrorData {\n name: string;\n versions: Versions;\n}\n\n/**\n * Maps versions to their dependents\n */\ninterface Versions {\n [key: string]: string[];\n}\n\nexport class RequireOnePackageVersion implements PackageRule {\n get id() {\n return 'require-one-package-version';\n }\n\n run(project: Project) {\n const errors: PackageError<ErrorData>[] = [];\n\n this.getDependencies(project).forEach(([name, versions]) => {\n if (Object.keys(versions).length > 1) {\n const message = `project depends on multiple versions of \"${name}\"`;\n const details = this.formatDetails(project, versions);\n errors.push({\n id: this.id,\n message,\n details,\n fixable: FixCategory.isolated,\n data: { name, versions },\n });\n }\n });\n\n return errors;\n }\n\n fix({ data }: PackageError<ErrorData>, project: Project) {\n const { name, versions } = data ?? {};\n if (!(name && versions)) {\n return;\n }\n\n const targetVersion = getMaxVersion(Object.keys(versions));\n Object.entries(versions).forEach(([version, dependents]) => {\n if (version !== targetVersion) {\n dependents.forEach(dependent =>\n setVersion({\n project,\n packageName: dependent,\n dependency: name,\n version: targetVersion,\n })\n );\n }\n });\n }\n\n private formatDetails({ packages }: Project, versions: Versions) {\n return Object.entries(versions).map(([version, dependents]) =>\n formatDependsOn(\n dependents.map(name => nameToLocation(name, packages)),\n chalk.yellow(version)\n )\n );\n }\n\n private getDependencies({ config, dependencies }: Project) {\n const ruleConfig = config.rules?.[this.id];\n return applyFilter(ruleConfig, Object.entries(dependencies), ([name]) => name);\n }\n}\n"],"names":["RequireOnePackageVersion","id","run","project","errors","getDependencies","forEach","name","versions","Object","keys","length","message","details","formatDetails","push","fixable","FixCategory","isolated","data","fix","targetVersion","getMaxVersion","entries","version","dependents","dependent","setVersion","packageName","dependency","packages","map","formatDependsOn","nameToLocation","chalk","yellow","config","dependencies","ruleConfig","rules","applyFilter"],"mappings":";;;;+BAgBaA;;;eAAAA;;;8DAhBK;uBAC8C;uBACwB;;;;;;AAcjF,MAAMA;IACT,IAAIC,KAAK;QACL,OAAO;IACX;IAEAC,IAAIC,OAAgB,EAAE;QAClB,MAAMC,SAAoC,EAAE;QAE5C,IAAI,CAACC,eAAe,CAACF,SAASG,OAAO,CAAC,CAAC,CAACC,MAAMC,SAAS;YACnD,IAAIC,OAAOC,IAAI,CAACF,UAAUG,MAAM,GAAG,GAAG;gBAClC,MAAMC,UAAU,CAAC,yCAAyC,EAAEL,KAAK,CAAC,CAAC;gBACnE,MAAMM,UAAU,IAAI,CAACC,aAAa,CAACX,SAASK;gBAC5CJ,OAAOW,IAAI,CAAC;oBACRd,IAAI,IAAI,CAACA,EAAE;oBACXW;oBACAC;oBACAG,SAASC,kBAAW,CAACC,QAAQ;oBAC7BC,MAAM;wBAAEZ;wBAAMC;oBAAS;gBAC3B;YACJ;QACJ;QAEA,OAAOJ;IACX;IAEAgB,IAAI,EAAED,IAAI,EAA2B,EAAEhB,OAAgB,EAAE;QACrD,MAAM,EAAEI,IAAI,EAAEC,QAAQ,EAAE,GAAGW,iBAAAA,kBAAAA,OAAQ,CAAC;QACpC,IAAI,CAAEZ,CAAAA,QAAQC,QAAO,GAAI;YACrB;QACJ;QAEA,MAAMa,gBAAgBC,IAAAA,oBAAa,EAACb,OAAOC,IAAI,CAACF;QAChDC,OAAOc,OAAO,CAACf,UAAUF,OAAO,CAAC,CAAC,CAACkB,SAASC,WAAW;YACnD,IAAID,YAAYH,eAAe;gBAC3BI,WAAWnB,OAAO,CAACoB,CAAAA,YACfC,IAAAA,iBAAU,EAAC;wBACPxB;wBACAyB,aAAaF;wBACbG,YAAYtB;wBACZiB,SAASH;oBACb;YAER;QACJ;IACJ;IAEQP,cAAc,EAAEgB,QAAQ,EAAW,EAAEtB,QAAkB,EAAE;QAC7D,OAAOC,OAAOc,OAAO,CAACf,UAAUuB,GAAG,CAAC,CAAC,CAACP,SAASC,WAAW,GACtDO,IAAAA,sBAAe,EACXP,WAAWM,GAAG,CAACxB,CAAAA,OAAQ0B,IAAAA,qBAAc,EAAC1B,MAAMuB,YAC5CI,cAAK,CAACC,MAAM,CAACX;IAGzB;IAEQnB,gBAAgB,EAAE+B,MAAM,EAAEC,YAAY,EAAW,EAAE;YACpCD;QAAnB,MAAME,cAAaF,gBAAAA,OAAOG,KAAK,cAAZH,oCAAAA,aAAc,CAAC,IAAI,CAACnC,EAAE,CAAC;QAC1C,OAAOuC,IAAAA,kBAAW,EAACF,YAAY7B,OAAOc,OAAO,CAACc,eAAe,CAAC,CAAC9B,KAAK,GAAKA;IAC7E;AACJ"}
@@ -0,0 +1,5 @@
1
+ import { RequireOneCollectionVersion } from './require-one-collection-version';
2
+ export declare class RequireOneUikitVersion extends RequireOneCollectionVersion {
3
+ constructor();
4
+ }
5
+ //# sourceMappingURL=require-one-uikit-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-one-uikit-version.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/review/rules/require-one-uikit-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAsB/E,qBAAa,sBAAuB,SAAQ,2BAA2B;;CAItE"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "RequireOneUikitVersion", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return RequireOneUikitVersion;
9
+ }
10
+ });
11
+ const _requireonecollectionversion = require("./require-one-collection-version");
12
+ const UIKIT_PACKAGES = [
13
+ '@servicetitan/ajax-handlers',
14
+ '@servicetitan/error-boundary',
15
+ '@servicetitan/eslint-config',
16
+ '@servicetitan/eslint-plugin',
17
+ '@servicetitan/eslint-plugin-folder-schema',
18
+ '@servicetitan/folder-lint',
19
+ '@servicetitan/hash-browser-router',
20
+ '@servicetitan/ko-bridge',
21
+ '@servicetitan/launchdarkly-service',
22
+ '@servicetitan/lazy-module',
23
+ '@servicetitan/log-service',
24
+ '@servicetitan/react-ioc',
25
+ '@servicetitan/restrict-imports',
26
+ '@servicetitan/startup',
27
+ '@servicetitan/stylelint-config',
28
+ '@servicetitan/suppress-warnings',
29
+ '@servicetitan/web-components'
30
+ ];
31
+ class RequireOneUikitVersion extends _requireonecollectionversion.RequireOneCollectionVersion {
32
+ constructor(){
33
+ super({
34
+ name: 'uikit',
35
+ packages: UIKIT_PACKAGES
36
+ });
37
+ }
38
+ }
39
+
40
+ //# sourceMappingURL=require-one-uikit-version.js.map