@servicetitan/startup 35.2.0-far-1776.1 → 35.2.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 (373) hide show
  1. package/dist/cli/commands/build.d.ts +2 -70
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +0 -49
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/bundle-package.d.ts +2 -54
  6. package/dist/cli/commands/bundle-package.d.ts.map +1 -1
  7. package/dist/cli/commands/bundle-package.js +0 -40
  8. package/dist/cli/commands/bundle-package.js.map +1 -1
  9. package/dist/cli/commands/clean.d.ts +2 -3
  10. package/dist/cli/commands/clean.d.ts.map +1 -1
  11. package/dist/cli/commands/clean.js +0 -15
  12. package/dist/cli/commands/clean.js.map +1 -1
  13. package/dist/cli/commands/convert-eslint-config.d.ts +2 -3
  14. package/dist/cli/commands/convert-eslint-config.d.ts.map +1 -1
  15. package/dist/cli/commands/convert-eslint-config.js +0 -2
  16. package/dist/cli/commands/convert-eslint-config.js.map +1 -1
  17. package/dist/cli/commands/eslint.d.ts +2 -34
  18. package/dist/cli/commands/eslint.d.ts.map +1 -1
  19. package/dist/cli/commands/eslint.js +0 -30
  20. package/dist/cli/commands/eslint.js.map +1 -1
  21. package/dist/cli/commands/init.d.ts +2 -16
  22. package/dist/cli/commands/init.d.ts.map +1 -1
  23. package/dist/cli/commands/init.js +0 -22
  24. package/dist/cli/commands/init.js.map +1 -1
  25. package/dist/cli/commands/install.d.ts +2 -36
  26. package/dist/cli/commands/install.d.ts.map +1 -1
  27. package/dist/cli/commands/install.js +0 -32
  28. package/dist/cli/commands/install.js.map +1 -1
  29. package/dist/cli/commands/kendo-ui-license.d.ts +2 -3
  30. package/dist/cli/commands/kendo-ui-license.d.ts.map +1 -1
  31. package/dist/cli/commands/kendo-ui-license.js +0 -15
  32. package/dist/cli/commands/kendo-ui-license.js.map +1 -1
  33. package/dist/cli/commands/lint.d.ts +2 -70
  34. package/dist/cli/commands/lint.d.ts.map +1 -1
  35. package/dist/cli/commands/lint.js +0 -49
  36. package/dist/cli/commands/lint.js.map +1 -1
  37. package/dist/cli/commands/mfe-check.d.ts +2 -44
  38. package/dist/cli/commands/mfe-check.d.ts.map +1 -1
  39. package/dist/cli/commands/mfe-check.js +0 -36
  40. package/dist/cli/commands/mfe-check.js.map +1 -1
  41. package/dist/cli/commands/mfe-generate-metadata.d.ts +2 -16
  42. package/dist/cli/commands/mfe-generate-metadata.d.ts.map +1 -1
  43. package/dist/cli/commands/mfe-generate-metadata.js +1 -28
  44. package/dist/cli/commands/mfe-generate-metadata.js.map +1 -1
  45. package/dist/cli/commands/mfe-list.d.ts +2 -70
  46. package/dist/cli/commands/mfe-list.d.ts.map +1 -1
  47. package/dist/cli/commands/mfe-list.js +0 -49
  48. package/dist/cli/commands/mfe-list.js.map +1 -1
  49. package/dist/cli/commands/mfe-package-clean.d.ts +2 -53
  50. package/dist/cli/commands/mfe-package-clean.d.ts.map +1 -1
  51. package/dist/cli/commands/mfe-package-clean.js +3 -51
  52. package/dist/cli/commands/mfe-package-clean.js.map +1 -1
  53. package/dist/cli/commands/mfe-package-publish.d.ts +2 -91
  54. package/dist/cli/commands/mfe-package-publish.d.ts.map +1 -1
  55. package/dist/cli/commands/mfe-package-publish.js +3 -70
  56. package/dist/cli/commands/mfe-package-publish.js.map +1 -1
  57. package/dist/cli/commands/mfe-package-rollback.d.ts +2 -43
  58. package/dist/cli/commands/mfe-package-rollback.d.ts.map +1 -1
  59. package/dist/cli/commands/mfe-package-rollback.js +3 -46
  60. package/dist/cli/commands/mfe-package-rollback.js.map +1 -1
  61. package/dist/cli/commands/mfe-publish.d.ts +9 -47
  62. package/dist/cli/commands/mfe-publish.d.ts.map +1 -1
  63. package/dist/cli/commands/mfe-publish.js +0 -69
  64. package/dist/cli/commands/mfe-publish.js.map +1 -1
  65. package/dist/cli/commands/mfe-purge-cache.d.ts +2 -46
  66. package/dist/cli/commands/mfe-purge-cache.d.ts.map +1 -1
  67. package/dist/cli/commands/mfe-purge-cache.js +0 -36
  68. package/dist/cli/commands/mfe-purge-cache.js.map +1 -1
  69. package/dist/cli/commands/prepare-package.d.ts +2 -14
  70. package/dist/cli/commands/prepare-package.d.ts.map +1 -1
  71. package/dist/cli/commands/prepare-package.js +0 -20
  72. package/dist/cli/commands/prepare-package.js.map +1 -1
  73. package/dist/cli/commands/registry/build.d.ts +38 -0
  74. package/dist/cli/commands/registry/build.d.ts.map +1 -0
  75. package/dist/cli/commands/registry/build.js +50 -0
  76. package/dist/cli/commands/registry/build.js.map +1 -0
  77. package/dist/cli/commands/registry/bundle-package.d.ts +29 -0
  78. package/dist/cli/commands/registry/bundle-package.d.ts.map +1 -0
  79. package/dist/cli/commands/registry/bundle-package.js +41 -0
  80. package/dist/cli/commands/registry/bundle-package.js.map +1 -0
  81. package/dist/cli/commands/registry/clean.d.ts +5 -0
  82. package/dist/cli/commands/registry/clean.d.ts.map +1 -0
  83. package/dist/cli/commands/registry/clean.js +17 -0
  84. package/dist/cli/commands/registry/clean.js.map +1 -0
  85. package/dist/cli/commands/registry/command-registry.d.ts +509 -0
  86. package/dist/cli/commands/registry/command-registry.d.ts.map +1 -0
  87. package/dist/cli/commands/registry/command-registry.js +138 -0
  88. package/dist/cli/commands/registry/command-registry.js.map +1 -0
  89. package/dist/cli/commands/registry/convert-eslint-config.d.ts +5 -0
  90. package/dist/cli/commands/registry/convert-eslint-config.d.ts.map +1 -0
  91. package/dist/cli/commands/registry/convert-eslint-config.js +17 -0
  92. package/dist/cli/commands/registry/convert-eslint-config.js.map +1 -0
  93. package/dist/cli/commands/registry/define-entry.d.ts +7 -0
  94. package/dist/cli/commands/registry/define-entry.d.ts.map +1 -0
  95. package/dist/cli/commands/registry/define-entry.js +15 -0
  96. package/dist/cli/commands/registry/define-entry.js.map +1 -0
  97. package/dist/cli/commands/registry/eslint.d.ts +19 -0
  98. package/dist/cli/commands/registry/eslint.d.ts.map +1 -0
  99. package/dist/cli/commands/registry/eslint.js +31 -0
  100. package/dist/cli/commands/registry/eslint.js.map +1 -0
  101. package/dist/cli/commands/registry/index.d.ts +3 -0
  102. package/dist/cli/commands/registry/index.d.ts.map +1 -0
  103. package/dist/cli/commands/registry/index.js +13 -0
  104. package/dist/cli/commands/registry/index.js.map +1 -0
  105. package/dist/cli/commands/registry/init.d.ts +11 -0
  106. package/dist/cli/commands/registry/init.d.ts.map +1 -0
  107. package/dist/cli/commands/registry/init.js +23 -0
  108. package/dist/cli/commands/registry/init.js.map +1 -0
  109. package/dist/cli/commands/registry/install.d.ts +21 -0
  110. package/dist/cli/commands/registry/install.d.ts.map +1 -0
  111. package/dist/cli/commands/registry/install.js +33 -0
  112. package/dist/cli/commands/registry/install.js.map +1 -0
  113. package/dist/cli/commands/registry/kendo-ui-license.d.ts +5 -0
  114. package/dist/cli/commands/registry/kendo-ui-license.d.ts.map +1 -0
  115. package/dist/cli/commands/registry/kendo-ui-license.js +17 -0
  116. package/dist/cli/commands/registry/kendo-ui-license.js.map +1 -0
  117. package/dist/cli/commands/registry/lint.d.ts +38 -0
  118. package/dist/cli/commands/registry/lint.d.ts.map +1 -0
  119. package/dist/cli/commands/registry/lint.js +50 -0
  120. package/dist/cli/commands/registry/lint.js.map +1 -0
  121. package/dist/cli/commands/registry/mfe-check.d.ts +25 -0
  122. package/dist/cli/commands/registry/mfe-check.d.ts.map +1 -0
  123. package/dist/cli/commands/registry/mfe-check.js +37 -0
  124. package/dist/cli/commands/registry/mfe-check.js.map +1 -0
  125. package/dist/cli/commands/registry/mfe-generate-metadata.d.ts +11 -0
  126. package/dist/cli/commands/registry/mfe-generate-metadata.d.ts.map +1 -0
  127. package/dist/cli/commands/registry/mfe-generate-metadata.js +23 -0
  128. package/dist/cli/commands/registry/mfe-generate-metadata.js.map +1 -0
  129. package/dist/cli/commands/registry/mfe-list.d.ts +38 -0
  130. package/dist/cli/commands/registry/mfe-list.d.ts.map +1 -0
  131. package/dist/cli/commands/registry/mfe-list.js +50 -0
  132. package/dist/cli/commands/registry/mfe-list.js.map +1 -0
  133. package/dist/cli/commands/registry/mfe-package-clean.d.ts +29 -0
  134. package/dist/cli/commands/registry/mfe-package-clean.d.ts.map +1 -0
  135. package/dist/cli/commands/registry/mfe-package-clean.js +41 -0
  136. package/dist/cli/commands/registry/mfe-package-clean.js.map +1 -0
  137. package/dist/cli/commands/registry/mfe-package-publish.d.ts +48 -0
  138. package/dist/cli/commands/registry/mfe-package-publish.d.ts.map +1 -0
  139. package/dist/cli/commands/registry/mfe-package-publish.js +60 -0
  140. package/dist/cli/commands/registry/mfe-package-publish.js.map +1 -0
  141. package/dist/cli/commands/registry/mfe-package-rollback.d.ts +24 -0
  142. package/dist/cli/commands/registry/mfe-package-rollback.d.ts.map +1 -0
  143. package/dist/cli/commands/registry/mfe-package-rollback.js +36 -0
  144. package/dist/cli/commands/registry/mfe-package-rollback.js.map +1 -0
  145. package/dist/cli/commands/registry/mfe-publish.d.ts +24 -0
  146. package/dist/cli/commands/registry/mfe-publish.d.ts.map +1 -0
  147. package/dist/cli/commands/registry/mfe-publish.js +72 -0
  148. package/dist/cli/commands/registry/mfe-publish.js.map +1 -0
  149. package/dist/cli/commands/registry/mfe-purge-cache.d.ts +25 -0
  150. package/dist/cli/commands/registry/mfe-purge-cache.d.ts.map +1 -0
  151. package/dist/cli/commands/registry/mfe-purge-cache.js +37 -0
  152. package/dist/cli/commands/registry/mfe-purge-cache.js.map +1 -0
  153. package/dist/cli/commands/registry/prepare-package.d.ts +9 -0
  154. package/dist/cli/commands/registry/prepare-package.d.ts.map +1 -0
  155. package/dist/cli/commands/registry/prepare-package.js +21 -0
  156. package/dist/cli/commands/registry/prepare-package.js.map +1 -0
  157. package/dist/cli/commands/registry/review.d.ts +16 -0
  158. package/dist/cli/commands/registry/review.d.ts.map +1 -0
  159. package/dist/cli/commands/registry/review.js +28 -0
  160. package/dist/cli/commands/registry/review.js.map +1 -0
  161. package/dist/cli/commands/registry/start.d.ts +30 -0
  162. package/dist/cli/commands/registry/start.d.ts.map +1 -0
  163. package/dist/cli/commands/registry/start.js +42 -0
  164. package/dist/cli/commands/registry/start.js.map +1 -0
  165. package/dist/cli/commands/registry/stylelint.d.ts +19 -0
  166. package/dist/cli/commands/registry/stylelint.d.ts.map +1 -0
  167. package/dist/cli/commands/registry/stylelint.js +31 -0
  168. package/dist/cli/commands/registry/stylelint.js.map +1 -0
  169. package/dist/cli/commands/registry/styles-check.d.ts +2 -0
  170. package/dist/cli/commands/registry/styles-check.d.ts.map +1 -0
  171. package/dist/cli/commands/registry/styles-check.js +14 -0
  172. package/dist/cli/commands/registry/styles-check.js.map +1 -0
  173. package/dist/cli/commands/registry/task.d.ts +19 -0
  174. package/dist/cli/commands/registry/task.d.ts.map +1 -0
  175. package/dist/cli/commands/registry/task.js +31 -0
  176. package/dist/cli/commands/registry/task.js.map +1 -0
  177. package/dist/cli/commands/registry/test-command.d.ts +22 -0
  178. package/dist/cli/commands/registry/test-command.d.ts.map +1 -0
  179. package/dist/cli/commands/registry/test-command.js +38 -0
  180. package/dist/cli/commands/registry/test-command.js.map +1 -0
  181. package/dist/cli/commands/registry/upload-sourcemaps.d.ts +15 -0
  182. package/dist/cli/commands/registry/upload-sourcemaps.d.ts.map +1 -0
  183. package/dist/cli/commands/registry/upload-sourcemaps.js +27 -0
  184. package/dist/cli/commands/registry/upload-sourcemaps.js.map +1 -0
  185. package/dist/cli/commands/review/review.d.ts +2 -26
  186. package/dist/cli/commands/review/review.d.ts.map +1 -1
  187. package/dist/cli/commands/review/review.js +0 -14
  188. package/dist/cli/commands/review/review.js.map +1 -1
  189. package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.d.ts.map +1 -1
  190. package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.js +6 -6
  191. package/dist/cli/commands/review/rules/require-compatible-launch-darkly-sdk.js.map +1 -1
  192. package/dist/cli/commands/review/types.d.ts +5 -2
  193. package/dist/cli/commands/review/types.d.ts.map +1 -1
  194. package/dist/cli/commands/review/types.js.map +1 -1
  195. package/dist/cli/commands/run-task.d.ts +2 -34
  196. package/dist/cli/commands/run-task.d.ts.map +1 -1
  197. package/dist/cli/commands/run-task.js +0 -30
  198. package/dist/cli/commands/run-task.js.map +1 -1
  199. package/dist/cli/commands/start.d.ts +2 -54
  200. package/dist/cli/commands/start.d.ts.map +1 -1
  201. package/dist/cli/commands/start.js +0 -41
  202. package/dist/cli/commands/start.js.map +1 -1
  203. package/dist/cli/commands/stylelint.d.ts +2 -34
  204. package/dist/cli/commands/stylelint.d.ts.map +1 -1
  205. package/dist/cli/commands/stylelint.js +0 -30
  206. package/dist/cli/commands/stylelint.js.map +1 -1
  207. package/dist/cli/commands/styles-check.d.ts +2 -1
  208. package/dist/cli/commands/styles-check.d.ts.map +1 -1
  209. package/dist/cli/commands/styles-check.js.map +1 -1
  210. package/dist/cli/commands/test/tests.d.ts +2 -38
  211. package/dist/cli/commands/test/tests.d.ts.map +1 -1
  212. package/dist/cli/commands/test/tests.js +0 -36
  213. package/dist/cli/commands/test/tests.js.map +1 -1
  214. package/dist/cli/commands/types.d.ts +9 -7
  215. package/dist/cli/commands/types.d.ts.map +1 -1
  216. package/dist/cli/commands/types.js +0 -4
  217. package/dist/cli/commands/types.js.map +1 -1
  218. package/dist/cli/commands/upload-sourcemaps.d.ts +2 -26
  219. package/dist/cli/commands/upload-sourcemaps.d.ts.map +1 -1
  220. package/dist/cli/commands/upload-sourcemaps.js +0 -26
  221. package/dist/cli/commands/upload-sourcemaps.js.map +1 -1
  222. package/dist/cli/index.js +17 -16
  223. package/dist/cli/index.js.map +1 -1
  224. package/dist/cli/tasks/swc-compile-package/swc-compile-package.d.ts.map +1 -1
  225. package/dist/cli/tasks/swc-compile-package/swc-compile-package.js +1 -7
  226. package/dist/cli/tasks/swc-compile-package/swc-compile-package.js.map +1 -1
  227. package/dist/cli/utils/bundle.js +1 -1
  228. package/dist/cli/utils/bundle.js.map +1 -1
  229. package/dist/cli/utils/check-startup-location.d.ts +2 -2
  230. package/dist/cli/utils/check-startup-location.d.ts.map +1 -1
  231. package/dist/cli/utils/check-startup-location.js +1 -2
  232. package/dist/cli/utils/check-startup-location.js.map +1 -1
  233. package/dist/cli/utils/set-node-options.d.ts +3 -3
  234. package/dist/cli/utils/set-node-options.d.ts.map +1 -1
  235. package/dist/cli/utils/set-node-options.js +1 -2
  236. package/dist/cli/utils/set-node-options.js.map +1 -1
  237. package/dist/utils/find-up.js +4 -4
  238. package/dist/utils/find-up.js.map +1 -1
  239. package/dist/utils/get-package-data.d.ts.map +1 -1
  240. package/dist/utils/get-package-data.js +1 -28
  241. package/dist/utils/get-package-data.js.map +1 -1
  242. package/dist/utils/index.d.ts +0 -3
  243. package/dist/utils/index.d.ts.map +1 -1
  244. package/dist/utils/index.js +0 -3
  245. package/dist/utils/index.js.map +1 -1
  246. package/dist/webpack/configs/cache-config.d.ts.map +1 -1
  247. package/dist/webpack/configs/cache-config.js +14 -1
  248. package/dist/webpack/configs/cache-config.js.map +1 -1
  249. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.d.ts.map +1 -1
  250. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js +11 -1
  251. package/dist/webpack/configs/utils/get-launchdarkly-sdk-version.js.map +1 -1
  252. package/dist/webpack/configs/utils/get-web-components-version.d.ts.map +1 -1
  253. package/dist/webpack/configs/utils/get-web-components-version.js +7 -5
  254. package/dist/webpack/configs/utils/get-web-components-version.js.map +1 -1
  255. package/package.json +12 -17
  256. package/src/cli/commands/__tests__/build.test.ts +2 -1
  257. package/src/cli/commands/__tests__/clean.test.ts +2 -1
  258. package/src/cli/commands/__tests__/convert-eslint-config.test.ts +2 -1
  259. package/src/cli/commands/__tests__/init.test.ts +4 -3
  260. package/src/cli/commands/__tests__/install.test.ts +2 -1
  261. package/src/cli/commands/__tests__/kendo-ui-license.test.ts +3 -2
  262. package/src/cli/commands/__tests__/lint.test.ts +3 -1
  263. package/src/cli/commands/__tests__/mfe-check.test.ts +2 -1
  264. package/src/cli/commands/__tests__/mfe-generate-metadata.test.ts +2 -14
  265. package/src/cli/commands/__tests__/mfe-list.test.ts +2 -1
  266. package/src/cli/commands/__tests__/mfe-publish.test.ts +8 -7
  267. package/src/cli/commands/__tests__/start.test.ts +2 -1
  268. package/src/cli/commands/build.ts +3 -16
  269. package/src/cli/commands/bundle-package.ts +3 -12
  270. package/src/cli/commands/clean.ts +2 -4
  271. package/src/cli/commands/convert-eslint-config.ts +2 -4
  272. package/src/cli/commands/eslint.ts +3 -10
  273. package/src/cli/commands/init.ts +3 -10
  274. package/src/cli/commands/install.ts +3 -12
  275. package/src/cli/commands/kendo-ui-license.ts +2 -4
  276. package/src/cli/commands/lint.ts +3 -15
  277. package/src/cli/commands/mfe-check.ts +3 -28
  278. package/src/cli/commands/mfe-generate-metadata.ts +4 -19
  279. package/src/cli/commands/mfe-list.ts +3 -23
  280. package/src/cli/commands/mfe-package-clean.ts +3 -27
  281. package/src/cli/commands/mfe-package-publish.ts +3 -46
  282. package/src/cli/commands/mfe-package-rollback.ts +3 -26
  283. package/src/cli/commands/mfe-publish.ts +11 -73
  284. package/src/cli/commands/mfe-purge-cache.ts +3 -27
  285. package/src/cli/commands/prepare-package.ts +3 -7
  286. package/src/cli/commands/registry/__tests__/command-registry.test.ts +13 -0
  287. package/src/cli/commands/registry/build.ts +16 -0
  288. package/src/cli/commands/registry/bundle-package.ts +13 -0
  289. package/src/cli/commands/registry/clean.ts +7 -0
  290. package/src/cli/commands/registry/command-registry.ts +98 -0
  291. package/src/cli/commands/registry/convert-eslint-config.ts +7 -0
  292. package/src/cli/commands/registry/define-entry.ts +11 -0
  293. package/src/cli/commands/registry/eslint.ts +12 -0
  294. package/src/cli/commands/registry/index.ts +2 -0
  295. package/src/cli/commands/registry/init.ts +10 -0
  296. package/src/cli/commands/registry/install.ts +12 -0
  297. package/src/cli/commands/registry/kendo-ui-license.ts +7 -0
  298. package/src/cli/commands/registry/lint.ts +17 -0
  299. package/src/cli/commands/registry/mfe-check.ts +28 -0
  300. package/src/cli/commands/registry/mfe-generate-metadata.ts +13 -0
  301. package/src/cli/commands/registry/mfe-list.ts +25 -0
  302. package/src/cli/commands/registry/mfe-package-clean.ts +27 -0
  303. package/src/cli/commands/registry/mfe-package-publish.ts +46 -0
  304. package/src/cli/commands/registry/mfe-package-rollback.ts +26 -0
  305. package/src/cli/commands/registry/mfe-publish.ts +55 -0
  306. package/src/cli/commands/registry/mfe-purge-cache.ts +27 -0
  307. package/src/cli/commands/registry/prepare-package.ts +8 -0
  308. package/src/cli/commands/registry/review.ts +11 -0
  309. package/src/cli/commands/registry/start.ts +14 -0
  310. package/src/cli/commands/registry/stylelint.ts +12 -0
  311. package/src/cli/commands/registry/styles-check.ts +4 -0
  312. package/src/cli/commands/registry/task.ts +12 -0
  313. package/src/cli/commands/registry/test-command.ts +19 -0
  314. package/src/cli/commands/registry/upload-sourcemaps.ts +14 -0
  315. package/src/cli/commands/review/__tests__/review.test.ts +2 -1
  316. package/src/cli/commands/review/review.ts +3 -11
  317. package/src/cli/commands/review/rules/require-compatible-launch-darkly-sdk.ts +7 -2
  318. package/src/cli/commands/review/types.ts +8 -3
  319. package/src/cli/commands/run-task.ts +3 -10
  320. package/src/cli/commands/start.ts +3 -14
  321. package/src/cli/commands/stylelint.ts +3 -10
  322. package/src/cli/commands/styles-check.ts +2 -1
  323. package/src/cli/commands/test/__tests__/tests.test.ts +2 -1
  324. package/src/cli/commands/test/tests.ts +3 -16
  325. package/src/cli/commands/types.ts +8 -6
  326. package/src/cli/commands/upload-sourcemaps.ts +3 -13
  327. package/src/cli/index.ts +21 -20
  328. package/src/cli/tasks/swc-compile-package/__tests__/swc-compile-package.test.ts +1 -8
  329. package/src/cli/tasks/swc-compile-package/swc-compile-package.ts +1 -11
  330. package/src/cli/utils/__tests__/bundle.test.ts +17 -0
  331. package/src/cli/utils/__tests__/check-startup-location.test.ts +5 -17
  332. package/src/cli/utils/__tests__/set-node-options.test.ts +5 -19
  333. package/src/cli/utils/bundle.ts +1 -1
  334. package/src/cli/utils/check-startup-location.ts +5 -3
  335. package/src/cli/utils/set-node-options.ts +3 -4
  336. package/src/utils/__tests__/get-package-data.test.ts +26 -97
  337. package/src/utils/find-up.ts +1 -1
  338. package/src/utils/get-package-data.ts +2 -27
  339. package/src/utils/index.ts +0 -3
  340. package/src/webpack/configs/cache-config.ts +10 -1
  341. package/src/webpack/configs/utils/__tests__/get-launchdarkly-sdk-version.test.ts +8 -20
  342. package/src/webpack/configs/utils/__tests__/get-web-components-version.test.ts +10 -30
  343. package/src/webpack/configs/utils/get-launchdarkly-sdk-version.ts +12 -2
  344. package/src/webpack/configs/utils/get-web-components-version.ts +5 -8
  345. package/dist/cli/commands/get-command.d.ts +0 -4
  346. package/dist/cli/commands/get-command.d.ts.map +0 -1
  347. package/dist/cli/commands/get-command.js +0 -68
  348. package/dist/cli/commands/get-command.js.map +0 -1
  349. package/dist/cli/commands/index.d.ts +0 -15
  350. package/dist/cli/commands/index.d.ts.map +0 -1
  351. package/dist/cli/commands/index.js +0 -32
  352. package/dist/cli/commands/index.js.map +0 -1
  353. package/dist/utils/find-package-lock.d.ts +0 -2
  354. package/dist/utils/find-package-lock.d.ts.map +0 -1
  355. package/dist/utils/find-package-lock.js +0 -26
  356. package/dist/utils/find-package-lock.js.map +0 -1
  357. package/dist/utils/get-package-version.d.ts +0 -2
  358. package/dist/utils/get-package-version.d.ts.map +0 -1
  359. package/dist/utils/get-package-version.js +0 -26
  360. package/dist/utils/get-package-version.js.map +0 -1
  361. package/dist/utils/resolve-package-lock-entry.d.ts +0 -11
  362. package/dist/utils/resolve-package-lock-entry.d.ts.map +0 -1
  363. package/dist/utils/resolve-package-lock-entry.js +0 -21
  364. package/dist/utils/resolve-package-lock-entry.js.map +0 -1
  365. package/src/cli/commands/__tests__/get-command.test.ts +0 -19
  366. package/src/cli/commands/get-command.ts +0 -59
  367. package/src/cli/commands/index.ts +0 -14
  368. package/src/utils/__tests__/find-package-lock.test.ts +0 -35
  369. package/src/utils/__tests__/get-package-version.test.ts +0 -129
  370. package/src/utils/__tests__/resolve-package-lock-entry.test.ts +0 -99
  371. package/src/utils/find-package-lock.ts +0 -10
  372. package/src/utils/get-package-version.ts +0 -21
  373. package/src/utils/resolve-package-lock-entry.ts +0 -25
@@ -1 +1 @@
1
- {"version":3,"file":"get-launchdarkly-sdk-version.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/utils/get-launchdarkly-sdk-version.ts"],"names":[],"mappings":"AAEA,wBAAgB,yBAAyB,uBAExC"}
1
+ {"version":3,"file":"get-launchdarkly-sdk-version.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/utils/get-launchdarkly-sdk-version.ts"],"names":[],"mappings":"AAGA,wBAAgB,yBAAyB,uBAWxC"}
@@ -8,9 +8,19 @@ Object.defineProperty(exports, "getLaunchDarklySdkVersion", {
8
8
  return getLaunchDarklySdkVersion;
9
9
  }
10
10
  });
11
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
11
12
  const _utils = require("../../../utils");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
12
18
  function getLaunchDarklySdkVersion() {
13
- return (0, _utils.getPackageVersion)('launchdarkly-js-client-sdk');
19
+ try {
20
+ return (0, _utils.readJson)(_path.default.join(_path.default.dirname(require.resolve('launchdarkly-js-client-sdk')), '../package.json')).version;
21
+ } catch (unused) {
22
+ // ignore
23
+ }
14
24
  }
15
25
 
16
26
  //# sourceMappingURL=get-launchdarkly-sdk-version.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/webpack/configs/utils/get-launchdarkly-sdk-version.ts"],"sourcesContent":["import { getPackageVersion } from '../../../utils';\n\nexport function getLaunchDarklySdkVersion() {\n return getPackageVersion('launchdarkly-js-client-sdk');\n}\n"],"names":["getLaunchDarklySdkVersion","getPackageVersion"],"mappings":";;;;+BAEgBA;;;eAAAA;;;uBAFkB;AAE3B,SAASA;IACZ,OAAOC,IAAAA,wBAAiB,EAAC;AAC7B"}
1
+ {"version":3,"sources":["../../../../src/webpack/configs/utils/get-launchdarkly-sdk-version.ts"],"sourcesContent":["import path from 'path';\nimport { readJson } from '../../../utils';\n\nexport function getLaunchDarklySdkVersion() {\n try {\n return readJson<{ version: string }>(\n path.join(\n path.dirname(require.resolve('launchdarkly-js-client-sdk')),\n '../package.json'\n )\n ).version;\n } catch {\n // ignore\n }\n}\n"],"names":["getLaunchDarklySdkVersion","readJson","path","join","dirname","require","resolve","version"],"mappings":";;;;+BAGgBA;;;eAAAA;;;6DAHC;uBACQ;;;;;;AAElB,SAASA;IACZ,IAAI;QACA,OAAOC,IAAAA,eAAQ,EACXC,aAAI,CAACC,IAAI,CACLD,aAAI,CAACE,OAAO,CAACC,QAAQC,OAAO,CAAC,gCAC7B,oBAENC,OAAO;IACb,EAAE,eAAM;IACJ,SAAS;IACb;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-web-components-version.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/utils/get-web-components-version.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,WAQtC"}
1
+ {"version":3,"file":"get-web-components-version.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/utils/get-web-components-version.ts"],"names":[],"mappings":"AAGA,wBAAgB,uBAAuB,WAItC"}
@@ -8,13 +8,15 @@ Object.defineProperty(exports, "getWebComponentsVersion", {
8
8
  return getWebComponentsVersion;
9
9
  }
10
10
  });
11
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
11
12
  const _utils = require("../../../utils");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
12
18
  function getWebComponentsVersion() {
13
- const version = (0, _utils.getPackageVersion)('@servicetitan/web-components');
14
- if (!version) {
15
- throw new Error('Unable to resolve @servicetitan/web-components version from package-lock.json');
16
- }
17
- return version;
19
+ return (0, _utils.readJson)(_path.default.join(_path.default.dirname(require.resolve('@servicetitan/web-components')), '../package.json')).version;
18
20
  }
19
21
 
20
22
  //# sourceMappingURL=get-web-components-version.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/webpack/configs/utils/get-web-components-version.ts"],"sourcesContent":["import { getPackageVersion } from '../../../utils';\n\nexport function getWebComponentsVersion() {\n const version = getPackageVersion('@servicetitan/web-components');\n if (!version) {\n throw new Error(\n 'Unable to resolve @servicetitan/web-components version from package-lock.json'\n );\n }\n return version;\n}\n"],"names":["getWebComponentsVersion","version","getPackageVersion","Error"],"mappings":";;;;+BAEgBA;;;eAAAA;;;uBAFkB;AAE3B,SAASA;IACZ,MAAMC,UAAUC,IAAAA,wBAAiB,EAAC;IAClC,IAAI,CAACD,SAAS;QACV,MAAM,IAAIE,MACN;IAER;IACA,OAAOF;AACX"}
1
+ {"version":3,"sources":["../../../../src/webpack/configs/utils/get-web-components-version.ts"],"sourcesContent":["import path from 'path';\nimport { readJson } from '../../../utils';\n\nexport function getWebComponentsVersion() {\n return readJson<{ version: string }>(\n path.join(path.dirname(require.resolve('@servicetitan/web-components')), '../package.json')\n ).version;\n}\n"],"names":["getWebComponentsVersion","readJson","path","join","dirname","require","resolve","version"],"mappings":";;;;+BAGgBA;;;eAAAA;;;6DAHC;uBACQ;;;;;;AAElB,SAASA;IACZ,OAAOC,IAAAA,eAAQ,EACXC,aAAI,CAACC,IAAI,CAACD,aAAI,CAACE,OAAO,CAACC,QAAQC,OAAO,CAAC,kCAAkC,oBAC3EC,OAAO;AACb"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/startup",
3
- "version": "35.2.0-far-1776.1",
3
+ "version": "35.2.0",
4
4
  "description": "CLI to create multi-package Lerna projects with TypeScript and React",
5
5
  "homepage": "https://docs.st.dev/docs/frontend/uikit/startup",
6
6
  "repository": {
@@ -53,16 +53,16 @@
53
53
  "@types/yargs": "~17.0.35"
54
54
  },
55
55
  "dependencies": {
56
- "@babel/preset-env": "~7.29.0",
56
+ "@babel/preset-env": "~7.29.2",
57
57
  "@jest/core": "~30.3.0",
58
58
  "@jest/types": "~30.3.0",
59
59
  "@jsdevtools/coverage-istanbul-loader": "^3.0.5",
60
- "@servicetitan/eslint-config": "35.1.0",
61
- "@servicetitan/install": "35.1.0",
62
- "@servicetitan/startup-utils": "35.1.0",
63
- "@servicetitan/stylelint-config": "35.1.0",
60
+ "@servicetitan/eslint-config": "35.2.0",
61
+ "@servicetitan/install": "35.2.0",
62
+ "@servicetitan/startup-utils": "35.2.0",
63
+ "@servicetitan/stylelint-config": "35.2.0",
64
64
  "@svgr/webpack": "^8.1.0",
65
- "@swc/cli": "^0.5.0",
65
+ "@swc/cli": "^0.8.0",
66
66
  "@swc/core": "1.15.18",
67
67
  "@types/debug": "^4.1.12",
68
68
  "@types/jest": "~30.0.0",
@@ -72,7 +72,6 @@
72
72
  "cpx2": "8.0.0",
73
73
  "css-loader": "~7.1.4",
74
74
  "css-minimizer-webpack-plugin": "^8.0.0",
75
- "debounce": "^2.2.0",
76
75
  "debug": "^4.4.3",
77
76
  "deepmerge": "~4.3.1",
78
77
  "eslint": "~9.39.2",
@@ -86,8 +85,8 @@
86
85
  "jest-environment-jsdom": "^30.3.0",
87
86
  "jest-fetch-mock": "~3.0.3",
88
87
  "json5": "^2.2.3",
89
- "lerna": "~9.0.5",
90
- "less": "~4.5.1",
88
+ "lerna": "~9.0.7",
89
+ "less": "~4.6.4",
91
90
  "less-loader": "~12.3.2",
92
91
  "less-plugin-npm-import": "~2.1.0",
93
92
  "lodash.kebabcase": "^4.1.1",
@@ -134,16 +133,12 @@
134
133
  "optional": true
135
134
  }
136
135
  },
137
- "DEVELOPER_NOTES": {
138
- "@swc/cli": [
139
- "Update when https://github.com/swc-project/swc/issues/10535 is resolved",
140
- "See also SwcCompilePackage.execute in file://./src/cli/tasks/swc-compile-package.ts"
141
- ]
142
- },
136
+ "DEVELOPER_NOTES": {},
143
137
  "publishConfig": {
144
138
  "access": "public"
145
139
  },
146
140
  "cli": {
147
141
  "webpack": false
148
- }
142
+ },
143
+ "gitHead": "3dee12f1c7b7d2cf01180a187bd2b919a56c1fed"
149
144
  }
@@ -6,6 +6,7 @@ import { Package, PackageType, getPackages, log } from '../../../utils';
6
6
  import { compile, lernaExec, typeCheck } from '../../utils';
7
7
  import { Build } from '../build';
8
8
  import { kendoUILicense } from '../kendo-ui-license';
9
+ import { entry } from '../registry/build';
9
10
 
10
11
  jest.mock('../../../utils', () => ({
11
12
  ...jest.requireActual('../../../utils'),
@@ -79,7 +80,7 @@ describe(`[startup] ${Build.name}`, () => {
79
80
  }
80
81
 
81
82
  test('command is greedy', () => {
82
- expect(Build.greedy).toBe(true);
83
+ expect(entry.greedy).toBe(true);
83
84
  });
84
85
 
85
86
  test('selects TSC and Webpack packages', async () => {
@@ -2,6 +2,7 @@ import { fs, vol } from 'memfs';
2
2
  import { exec, ExecException, execSync } from 'node:child_process';
3
3
  import { log } from '../../../utils';
4
4
  import { Clean } from '../clean';
5
+ import { entry } from '../registry/clean';
5
6
 
6
7
  jest.mock('node:fs', () => fs);
7
8
  jest.mock('node:child_process', () => ({
@@ -41,7 +42,7 @@ describe(`[startup] ${Clean.name}`, () => {
41
42
  const subject = async () => new Clean({}).execute();
42
43
 
43
44
  test('allows running from global location', () => {
44
- expect(Clean.allowRunFromGlobal).toBe(true);
45
+ expect(entry.allowRunFromGlobal).toBe(true);
45
46
  });
46
47
 
47
48
  function itLogsError(expectedMessage: string) {
@@ -1,6 +1,7 @@
1
1
  import { fs, vol } from 'memfs';
2
2
  import { prettify } from '../../../utils';
3
3
  import { ConvertEslintConfig } from '../convert-eslint-config';
4
+ import { entry } from '../registry/convert-eslint-config';
4
5
 
5
6
  jest.mock('fs', () => fs);
6
7
  jest.mock('../../../utils', () => ({
@@ -41,7 +42,7 @@ describe(`[startup] ${ConvertEslintConfig.name}`, () => {
41
42
  }
42
43
 
43
44
  test('allows running from global location', () => {
44
- expect(ConvertEslintConfig.allowRunFromGlobal).toBe(true);
45
+ expect(entry.allowRunFromGlobal).toBe(true);
45
46
  });
46
47
 
47
48
  describe(`when ${eslintrcFile} does not exist`, () => {
@@ -2,13 +2,15 @@ import { gitCloneRepo, gitIsReachable } from '@servicetitan/install';
2
2
  import fs from 'fs';
3
3
  import { vol } from 'memfs';
4
4
  import path from 'path';
5
- import { log } from '../../../utils';
6
5
  import { Init } from '../init';
6
+ import { entry } from '../registry/init';
7
7
 
8
8
  jest.mock('@servicetitan/install');
9
9
  jest.mock('fs', () => require('memfs').fs);
10
10
  jest.mock('../../../utils', () => ({
11
+ ...jest.requireActual('../../../utils'),
11
12
  log: { debug: jest.fn(), error: jest.fn(), info: jest.fn() },
13
+ logErrors: () => {},
12
14
  }));
13
15
 
14
16
  describe(`[startup] ${Init.name}`, () => {
@@ -20,13 +22,12 @@ describe(`[startup] ${Init.name}`, () => {
20
22
  jest.mocked(gitCloneRepo).mockReturnValue(true);
21
23
  jest.spyOn(fs, 'mkdirSync').mockImplementation(jest.fn());
22
24
  jest.spyOn(fs, 'rmSync').mockImplementation(jest.fn());
23
- jest.spyOn(log, 'error').mockImplementation(jest.fn()); // suppress error output
24
25
  });
25
26
 
26
27
  const subject = async () => new Init(args).execute();
27
28
 
28
29
  test('allows running from global location', () => {
29
- expect(Init.allowRunFromGlobal).toBe(true);
30
+ expect(entry.allowRunFromGlobal).toBe(true);
30
31
  });
31
32
 
32
33
  test('clones "frontend-example" to current directory', async () => {
@@ -1,6 +1,7 @@
1
1
  import { execSync } from 'child_process';
2
2
  import { getStartupVersion, log } from '../../../utils';
3
3
  import { Install } from '../install';
4
+ import { entry } from '../registry/install';
4
5
 
5
6
  jest.mock('child_process', () => ({ execSync: jest.fn() }));
6
7
  jest.mock('../../../utils', () => ({
@@ -22,7 +23,7 @@ describe(`${Install.name}`, () => {
22
23
  const subject = async () => new Install(args).execute();
23
24
 
24
25
  test('allows running from global location', () => {
25
- expect(Install.allowRunFromGlobal).toBe(true);
26
+ expect(entry.allowRunFromGlobal).toBe(true);
26
27
  });
27
28
 
28
29
  test('runs install', async () => {
@@ -1,7 +1,8 @@
1
1
  import execa from 'execa';
2
2
  import { log } from '../../../utils';
3
3
  import { isModuleInstalled } from '../../utils';
4
- import { KendoUILicense, kendoUILicense } from '../kendo-ui-license';
4
+ import { kendoUILicense } from '../kendo-ui-license';
5
+ import { entry } from '../registry/kendo-ui-license';
5
6
 
6
7
  jest.mock('execa', () => jest.fn());
7
8
 
@@ -24,7 +25,7 @@ describe(`${kendoUILicense.name}`, () => {
24
25
  const subject = async () => kendoUILicense();
25
26
 
26
27
  test('allows running from global location', () => {
27
- expect(KendoUILicense.allowRunFromGlobal).toBe(true);
28
+ expect(entry.allowRunFromGlobal).toBe(true);
28
29
  });
29
30
 
30
31
  test('activates license', async () => {
@@ -2,12 +2,14 @@ import { getPackages } from '../../../utils';
2
2
  import { eslint, lernaExec } from '../../utils';
3
3
  import { stylelint } from '../../utils/stylelint';
4
4
  import { Lint } from '../lint';
5
+ import { entry } from '../registry/lint';
5
6
 
6
7
  jest.mock('stylelint', () => ({ lint: jest.fn() }));
7
8
 
8
9
  jest.mock('../../utils');
9
10
  jest.mock('../../utils/stylelint');
10
11
  jest.mock('../../../utils', () => ({
12
+ ...jest.requireActual('../../../utils'),
11
13
  log: { debug: jest.fn(), info: jest.fn() },
12
14
  getConfiguration: jest.fn(() => ({})),
13
15
  getDestinationFolders: jest.fn(() => []),
@@ -69,7 +71,7 @@ describe(`[startup] ${Lint.name}`, () => {
69
71
  });
70
72
 
71
73
  test('command is greedy', () => {
72
- expect(Lint.greedy).toBe(true);
74
+ expect(entry.greedy).toBe(true);
73
75
  });
74
76
 
75
77
  test('runs eslint directly', async () => {
@@ -2,6 +2,7 @@ import { fs, vol } from 'memfs';
2
2
  import path from 'node:path';
3
3
  import * as utils from '../../../utils';
4
4
  import { MfeCheck } from '../mfe-check';
5
+ import { entry } from '../registry/mfe-check';
5
6
 
6
7
  jest.mock('fs', () => fs);
7
8
  jest.mock('../../../utils', () => ({
@@ -77,7 +78,7 @@ describe(`[startup] ${MfeCheck.name}`, () => {
77
78
  }
78
79
 
79
80
  test('allows running from global location', () => {
80
- expect(MfeCheck.allowRunFromGlobal).toBe(true);
81
+ expect(entry.allowRunFromGlobal).toBe(true);
81
82
  });
82
83
 
83
84
  describe('when compatible', () => {
@@ -4,6 +4,7 @@ import { getPackageData, getStartupVersion, loadSharedDependencies, log } from '
4
4
  import { getLaunchDarklySdkVersion } from '../../../webpack/configs/utils/get-launchdarkly-sdk-version';
5
5
  import { getWebComponentsVersion } from '../../../webpack/configs/utils/get-web-components-version';
6
6
  import { MfeGenerateMetadata } from '../mfe-generate-metadata';
7
+ import { entry } from '../registry/mfe-generate-metadata';
7
8
 
8
9
  jest.mock('fs', () => fs);
9
10
  jest.mock('../../../utils', () => ({
@@ -35,7 +36,6 @@ describe(`[startup] ${MfeGenerateMetadata.name}`, () => {
35
36
 
36
37
  const mockParentPackageJson = {
37
38
  name: 'parent-package',
38
- workspaces: ['packages/*'],
39
39
  dependencies: { 'some-dep': '^1.0.0' },
40
40
  };
41
41
 
@@ -77,7 +77,7 @@ describe(`[startup] ${MfeGenerateMetadata.name}`, () => {
77
77
  const subject = () => new MfeGenerateMetadata({ ...mfeGenerateMetadataArgs }).execute();
78
78
 
79
79
  test('allows running from global location', () => {
80
- expect(MfeGenerateMetadata.allowRunFromGlobal).toBe(true);
80
+ expect(entry.allowRunFromGlobal).toBe(true);
81
81
  });
82
82
 
83
83
  test('outputs valid JSON metadata', async () => {
@@ -117,18 +117,6 @@ describe(`[startup] ${MfeGenerateMetadata.name}`, () => {
117
117
  });
118
118
  });
119
119
 
120
- describe('when tsconfig.json does not exist', () => {
121
- beforeEach(() => {
122
- fs.rmSync('tsconfig.json');
123
- });
124
-
125
- test('outputs metadata with empty entrypoints', async () => {
126
- await subject();
127
-
128
- expect(getMetadataFromStdout().entrypoints).toEqual({});
129
- });
130
- });
131
-
132
120
  describe('with --output option', () => {
133
121
  const outputDir = '/tmp/existing-dir';
134
122
  const outputPath = `${outputDir}/metadata.json`;
@@ -6,6 +6,7 @@ import { createInterface } from 'readline/promises';
6
6
  import { formatRelativeDate, toArray } from '../../../utils';
7
7
  import { isTTY, npmView, runCommand } from '../../utils';
8
8
  import { MFEList } from '../mfe-list';
9
+ import { entry } from '../registry/mfe-list';
9
10
 
10
11
  jest.mock('@servicetitan/install');
11
12
  jest.mock('cli-table3');
@@ -152,7 +153,7 @@ describe(`[startup] ${MFEList.name}`, () => {
152
153
  }
153
154
 
154
155
  test('allows running from global location', () => {
155
- expect(MFEList.allowRunFromGlobal).toBe(true);
156
+ expect(entry.allowRunFromGlobal).toBe(true);
156
157
  });
157
158
 
158
159
  test(`outputs table with last ${DEFAULT_LIMIT} published versions`, async () => {
@@ -2,10 +2,11 @@ import { fs, vol } from 'memfs';
2
2
  import { createPackage } from '../../../__mocks__';
3
3
  import { Package, PackageType, getPackages } from '../../../utils';
4
4
  import { lernaExec } from '../../utils';
5
- import { MFEPackageClean } from '../mfe-package-clean';
6
- import { MFEPackagePublish } from '../mfe-package-publish';
7
- import { MFEPackageRollback } from '../mfe-package-rollback';
8
5
  import { MFEPublish } from '../mfe-publish';
6
+ import { entry as mfePackageClean } from '../registry/mfe-package-clean';
7
+ import { entry as mfePackagePublish } from '../registry/mfe-package-publish';
8
+ import { entry as mfePackageRollback } from '../registry/mfe-package-rollback';
9
+ import { entry as mfePublish } from '../registry/mfe-publish';
9
10
 
10
11
  jest.mock('fs', () => fs);
11
12
 
@@ -260,25 +261,25 @@ describe(`[startup] ${MFEPublish.name}`, () => {
260
261
  });
261
262
 
262
263
  describe('options', () => {
263
- const subject = () => MFEPublish.options;
264
+ const subject = () => mfePublish.options;
264
265
 
265
266
  test('groups publish, clean, and rollback options', () => {
266
267
  expect(subject()).toEqual(
267
268
  expect.objectContaining({
268
269
  ...Object.fromEntries(
269
- Object.entries(MFEPackagePublish.options).map(([key, value]) => [
270
+ Object.entries(mfePackagePublish.options).map(([key, value]) => [
270
271
  key,
271
272
  { group: 'Publish Options:', ...value },
272
273
  ])
273
274
  ),
274
275
  ...Object.fromEntries(
275
- Object.entries(MFEPackageClean.options).map(([key, value]) => [
276
+ Object.entries(mfePackageClean.options).map(([key, value]) => [
276
277
  `${key}\u00A0`,
277
278
  { group: 'Clean Options:', ...value },
278
279
  ])
279
280
  ),
280
281
  ...Object.fromEntries(
281
- Object.entries(MFEPackageRollback.options)
282
+ Object.entries(mfePackageRollback.options)
282
283
  .filter(([key]) => key !== 'scope')
283
284
  .map(([key, value]) => {
284
285
  const optionProps = Object.fromEntries(
@@ -1,6 +1,7 @@
1
1
  import { createPackage } from '../../../__mocks__';
2
2
  import { Package, PackageType, getPackages, log } from '../../../utils';
3
3
  import { compile, lernaExec, typeCheck, watchStdout } from '../../utils';
4
+ import { entry } from '../registry/start';
4
5
  import { Start } from '../start';
5
6
 
6
7
  jest.mock('../../../utils', () => ({
@@ -101,7 +102,7 @@ describe(`[startup] ${Start.name}`, () => {
101
102
  }
102
103
 
103
104
  test('command is greedy', () => {
104
- expect(Start.greedy).toBe(true);
105
+ expect(entry.greedy).toBe(true);
105
106
  });
106
107
 
107
108
  describe('with TSC package', () => {
@@ -1,17 +1,8 @@
1
1
  import { getPackages, logErrors, PackageType } from '../../utils';
2
2
  import { checkArgs, compile, lernaExec, ProcessTree, typeCheck } from '../utils';
3
3
  import { kendoUILicense } from './kendo-ui-license';
4
- import { Command, CommandOptions } from './types';
5
-
6
- const options = {
7
- cdnPath: { string: true, description: 'Base url for application assets' },
8
- codeCoverage: { boolean: true, description: 'Instrument code for coverage analysis?' },
9
- config: { string: true, hidden: true, description: 'Use specified configuration' },
10
- ignore: { array: true, string: true, description: 'Packages to skip' },
11
- scope: { array: true, string: true, description: 'Packages to build' },
12
- stat: { boolean: true, description: 'Generate bundle report?' },
13
- useTsc: { boolean: true, description: 'Use tsc to compile packages?' },
14
- } satisfies CommandOptions;
4
+ import type { entry } from './registry/build';
5
+ import { Command } from './types';
15
6
 
16
7
  enum BuildProcesses {
17
8
  Precompile,
@@ -23,11 +14,7 @@ enum BuildProcesses {
23
14
  BundlePackage,
24
15
  }
25
16
 
26
- export class Build extends Command<typeof options> {
27
- static readonly description = 'Build project for production';
28
- static readonly greedy = true;
29
- static readonly options = options;
30
-
17
+ export class Build extends Command<typeof entry> {
31
18
  @logErrors
32
19
  async execute() {
33
20
  checkArgs(this.args, { obsolete: ['--esbuild', '--experimental-bundlers'] });
@@ -1,18 +1,9 @@
1
1
  import { getTsConfig, log, logErrors } from '../../utils';
2
2
  import { bundle, getModuleType } from '../utils';
3
- import { Command, CommandOptions } from './types';
3
+ import type { entry } from './registry/bundle-package';
4
+ import { Command } from './types';
4
5
 
5
- const options = {
6
- codeCoverage: { boolean: true, hidden: true },
7
- config: { string: true, hidden: true },
8
- exposedDependencies: { boolean: true, hidden: true },
9
- stat: { boolean: true, hidden: true },
10
- useWatchConfig: { boolean: true, hidden: true },
11
- watch: { boolean: true, hidden: true },
12
- } satisfies CommandOptions;
13
-
14
- export class BundlePackage extends Command<typeof options> {
15
- static readonly options = options;
6
+ export class BundlePackage extends Command<typeof entry> {
16
7
  @logErrors
17
8
  async execute() {
18
9
  const {
@@ -4,6 +4,7 @@ import path from 'node:path';
4
4
  import { promisify } from 'node:util';
5
5
  import { log, logErrors } from '../../utils';
6
6
  import { ProcessTree } from '../utils/process-tree';
7
+ import type { entry } from './registry/clean';
7
8
  import { Command } from './types';
8
9
 
9
10
  const exec = promisify(execAsync);
@@ -16,10 +17,7 @@ enum CleanProcesses {
16
17
  CleanGitWorkingTree,
17
18
  }
18
19
 
19
- export class Clean extends Command {
20
- static readonly allowRunFromGlobal = true;
21
- static readonly description = 'Reset project to fresh state';
22
-
20
+ export class Clean extends Command<typeof entry> {
23
21
  @logErrors
24
22
  async execute() {
25
23
  const processTree = new ProcessTree<typeof CleanProcesses>();
@@ -2,6 +2,7 @@ import fs from 'fs';
2
2
  import { globSync } from 'glob';
3
3
  import JSON5 from 'json5';
4
4
  import { log, logErrors, prettify, toArray } from '../../utils';
5
+ import type { entry } from './registry/convert-eslint-config';
5
6
  import { Command } from './types';
6
7
 
7
8
  const oldConfigFile = '.eslintrc.json';
@@ -38,10 +39,7 @@ interface Recipe {
38
39
  import: { as: string; from?: string };
39
40
  }
40
41
 
41
- export class ConvertEslintConfig extends Command {
42
- static readonly allowRunFromGlobal = true;
43
- static readonly description = 'Convert v8.x eslintrc.json to v9.x flat config';
44
-
42
+ export class ConvertEslintConfig extends Command<typeof entry> {
45
43
  private static readonly recipes: Record<string, Recipe | null> = {
46
44
  '@servicetitan/eslint-config/mono': {
47
45
  import: { as: 'mono' },
@@ -1,17 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/naming-convention */
2
2
  import { logErrors } from '../../utils';
3
3
  import { eslint } from '../utils';
4
- import { Command, CommandOptions } from './types';
5
-
6
- const options = {
7
- _: { description: '[paths...]', array: true, string: true },
8
- fix: { boolean: true, hidden: true },
9
- paths: { array: true, string: true, hidden: true },
10
- } satisfies CommandOptions;
11
-
12
- export class ESLintCommand extends Command<typeof options> {
13
- static readonly options = options;
4
+ import type { entry } from './registry/eslint';
5
+ import { Command } from './types';
14
6
 
7
+ export class ESLintCommand extends Command<typeof entry> {
15
8
  @logErrors
16
9
  async execute() {
17
10
  await eslint({ fix: this.args.fix, paths: this.paths });
@@ -2,19 +2,12 @@ import { gitCloneRepo, gitIsReachable } from '@servicetitan/install';
2
2
  import fs from 'fs';
3
3
  import path from 'path';
4
4
  import { log, logErrors } from '../../utils';
5
- import { Command, CommandOptions } from './types';
6
-
7
- const options = {
8
- output: { string: true, description: 'Output path' },
9
- } satisfies CommandOptions;
5
+ import type { entry } from './registry/init';
6
+ import { Command } from './types';
10
7
 
11
8
  const REPO_NAME = 'frontend-example';
12
9
 
13
- export class Init extends Command<typeof options> {
14
- static readonly allowRunFromGlobal = true;
15
- static readonly description = 'Create example project';
16
- static readonly options = options;
17
-
10
+ export class Init extends Command<typeof entry> {
18
11
  @logErrors
19
12
  async execute() {
20
13
  const destination = path.resolve(this.args.output ?? '.');
@@ -1,18 +1,9 @@
1
1
  import { execSync } from 'child_process';
2
2
  import { getStartupVersion, log, logErrors } from '../../utils';
3
- import { Command, CommandOptions } from './types';
4
-
5
- const options = {
6
- fix: { boolean: true, description: 'Update and dedupe package-lock.json', hidden: true },
7
- quiet: { boolean: true, description: 'Suppress output', hidden: true },
8
- token: { boolean: true, description: 'Configure npm token' },
9
- } satisfies CommandOptions;
10
-
11
- export class Install extends Command<typeof options> {
12
- static readonly allowRunFromGlobal = true;
13
- static readonly description = 'Install project dependencies';
14
- static readonly options = options;
3
+ import type { entry } from './registry/install';
4
+ import { Command } from './types';
15
5
 
6
+ export class Install extends Command<typeof entry> {
16
7
  @logErrors
17
8
  async execute() {
18
9
  if (!this.args.quiet) {
@@ -1,6 +1,7 @@
1
1
  import execa from 'execa';
2
2
  import { log, logErrors } from '../../utils';
3
3
  import { isModuleInstalled } from '../utils';
4
+ import type { entry } from './registry/kendo-ui-license';
4
5
  import { Command } from './types';
5
6
 
6
7
  const ENCODED_LICENSE = `
@@ -28,10 +29,7 @@ const ENVIRONMENT_VARIABLE = 'KENDO_UI_LICENSE';
28
29
  const LICENSE = Buffer.from(ENCODED_LICENSE, 'base64').toString('ascii');
29
30
  const LICENSING_PACKAGE = '@progress/kendo-licensing';
30
31
 
31
- export class KendoUILicense extends Command {
32
- static readonly allowRunFromGlobal = true;
33
- static readonly description = 'Install KendoReact license key';
34
-
32
+ export class KendoUILicense extends Command<typeof entry> {
35
33
  async execute() {
36
34
  if (!isModuleInstalled(LICENSING_PACKAGE)) {
37
35
  return;
@@ -2,22 +2,10 @@
2
2
  import { getPackages, log, logErrors } from '../../utils';
3
3
  import { eslint, lernaExec } from '../utils';
4
4
  import { stylelint } from '../utils/stylelint';
5
- import { Command, CommandOptions } from './types';
6
-
7
- const options = {
8
- _: { description: '[paths...]', array: true, string: true },
9
- fix: { boolean: true, description: 'Apply fixes for issues?' },
10
- scope: { array: true, string: true, hidden: true, description: 'Packages to lint' },
11
- ignore: { array: true, string: true, hidden: true, description: 'Packages to skip' },
12
- parallel: { boolean: true, hidden: true, description: 'Lint each package separately' },
13
- paths: { array: true, string: true, hidden: true },
14
- } satisfies CommandOptions;
15
-
16
- export class Lint extends Command<typeof options> {
17
- static readonly description = 'Run eslint and stylelint';
18
- static readonly greedy = true;
19
- static readonly options = options;
5
+ import type { entry } from './registry/lint';
6
+ import { Command } from './types';
20
7
 
8
+ export class Lint extends Command<typeof entry> {
21
9
  async execute() {
22
10
  await this.checkStyles();
23
11
  await this.eslint();