@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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/commands/registry/stylelint.ts"],"sourcesContent":["import type { CommandEntry } from '../types';\nimport { defineEntry } from './define-entry';\n\nexport const entry = defineEntry({\n options: {\n /* eslint-disable @typescript-eslint/naming-convention */\n _: { description: '[paths...]', array: true, string: true },\n /* eslint-enable @typescript-eslint/naming-convention */\n fix: { boolean: true, hidden: true },\n paths: { array: true, string: true, hidden: true },\n },\n} satisfies CommandEntry);\n"],"names":["entry","defineEntry","options","_","description","array","string","fix","boolean","hidden","paths"],"mappings":";;;;+BAGaA;;;eAAAA;;;6BAFe;AAErB,MAAMA,QAAQC,IAAAA,wBAAW,EAAC;IAC7BC,SAAS;QACL,uDAAuD,GACvDC,GAAG;YAAEC,aAAa;YAAcC,OAAO;YAAMC,QAAQ;QAAK;QAC1D,sDAAsD,GACtDC,KAAK;YAAEC,SAAS;YAAMC,QAAQ;QAAK;QACnCC,OAAO;YAAEL,OAAO;YAAMC,QAAQ;YAAMG,QAAQ;QAAK;IACrD;AACJ"}
@@ -0,0 +1,2 @@
1
+ export declare const entry: {};
2
+ //# sourceMappingURL=styles-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles-check.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/styles-check.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,IAAyC,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "entry", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return entry;
9
+ }
10
+ });
11
+ const _defineentry = require("./define-entry");
12
+ const entry = (0, _defineentry.defineEntry)({});
13
+
14
+ //# sourceMappingURL=styles-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/commands/registry/styles-check.ts"],"sourcesContent":["import type { CommandEntry } from '../types';\nimport { defineEntry } from './define-entry';\n\nexport const entry = defineEntry({} satisfies CommandEntry);\n"],"names":["entry","defineEntry"],"mappings":";;;;+BAGaA;;;eAAAA;;;6BAFe;AAErB,MAAMA,QAAQC,IAAAA,wBAAW,EAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare const entry: {
2
+ options: {
3
+ _: {
4
+ description: string;
5
+ array: true;
6
+ string: true;
7
+ };
8
+ taskName: {
9
+ string: true;
10
+ hidden: true;
11
+ };
12
+ taskArgs: {
13
+ array: true;
14
+ string: true;
15
+ hidden: true;
16
+ };
17
+ };
18
+ };
19
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/task.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;CAQO,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "entry", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return entry;
9
+ }
10
+ });
11
+ const _defineentry = require("./define-entry");
12
+ const entry = (0, _defineentry.defineEntry)({
13
+ options: {
14
+ /* eslint-disable @typescript-eslint/naming-convention */ _: {
15
+ description: '<taskName> [taskArgs...]',
16
+ array: true,
17
+ string: true
18
+ },
19
+ /* eslint-enable @typescript-eslint/naming-convention */ taskName: {
20
+ string: true,
21
+ hidden: true
22
+ },
23
+ taskArgs: {
24
+ array: true,
25
+ string: true,
26
+ hidden: true
27
+ }
28
+ }
29
+ });
30
+
31
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/commands/registry/task.ts"],"sourcesContent":["import type { CommandEntry } from '../types';\nimport { defineEntry } from './define-entry';\n\nexport const entry = defineEntry({\n options: {\n /* eslint-disable @typescript-eslint/naming-convention */\n _: { description: '<taskName> [taskArgs...]', array: true, string: true },\n /* eslint-enable @typescript-eslint/naming-convention */\n taskName: { string: true, hidden: true },\n taskArgs: { array: true, string: true, hidden: true },\n },\n} satisfies CommandEntry);\n"],"names":["entry","defineEntry","options","_","description","array","string","taskName","hidden","taskArgs"],"mappings":";;;;+BAGaA;;;eAAAA;;;6BAFe;AAErB,MAAMA,QAAQC,IAAAA,wBAAW,EAAC;IAC7BC,SAAS;QACL,uDAAuD,GACvDC,GAAG;YAAEC,aAAa;YAA4BC,OAAO;YAAMC,QAAQ;QAAK;QACxE,sDAAsD,GACtDC,UAAU;YAAED,QAAQ;YAAME,QAAQ;QAAK;QACvCC,UAAU;YAAEJ,OAAO;YAAMC,QAAQ;YAAME,QAAQ;QAAK;IACxD;AACJ"}
@@ -0,0 +1,22 @@
1
+ export declare const entry: {
2
+ description: string;
3
+ greedy: true;
4
+ options: {
5
+ _: {
6
+ description: string;
7
+ array: true;
8
+ string: true;
9
+ };
10
+ runner: {
11
+ choices: readonly ["jest", "vitest"];
12
+ description: string;
13
+ defaultDescription: string;
14
+ };
15
+ runnerArgs: {
16
+ array: true;
17
+ string: true;
18
+ hidden: true;
19
+ };
20
+ };
21
+ };
22
+ //# sourceMappingURL=test-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/test-command.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;CAcO,CAAC"}
@@ -0,0 +1,38 @@
1
+ // NOTE: Not named test.ts to avoid being picked up by Jest as a test suite.
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "entry", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return entry;
10
+ }
11
+ });
12
+ const _defineentry = require("./define-entry");
13
+ const entry = (0, _defineentry.defineEntry)({
14
+ description: 'Run tests',
15
+ greedy: true,
16
+ options: {
17
+ /* eslint-disable @typescript-eslint/naming-convention */ _: {
18
+ description: '[runnerArgs...]',
19
+ array: true,
20
+ string: true
21
+ },
22
+ /* eslint-enable @typescript-eslint/naming-convention */ runner: {
23
+ choices: [
24
+ 'jest',
25
+ 'vitest'
26
+ ],
27
+ description: 'Test runner',
28
+ defaultDescription: 'jest'
29
+ },
30
+ runnerArgs: {
31
+ array: true,
32
+ string: true,
33
+ hidden: true
34
+ }
35
+ }
36
+ });
37
+
38
+ //# sourceMappingURL=test-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/commands/registry/test-command.ts"],"sourcesContent":["// NOTE: Not named test.ts to avoid being picked up by Jest as a test suite.\nimport type { CommandEntry } from '../types';\nimport { defineEntry } from './define-entry';\n\nexport const entry = defineEntry({\n description: 'Run tests',\n greedy: true,\n options: {\n /* eslint-disable @typescript-eslint/naming-convention */\n _: { description: '[runnerArgs...]', array: true, string: true },\n /* eslint-enable @typescript-eslint/naming-convention */\n runner: {\n choices: ['jest', 'vitest'] as const,\n description: 'Test runner',\n defaultDescription: 'jest',\n },\n runnerArgs: { array: true, string: true, hidden: true },\n },\n} satisfies CommandEntry);\n"],"names":["entry","defineEntry","description","greedy","options","_","array","string","runner","choices","defaultDescription","runnerArgs","hidden"],"mappings":"AAAA,4EAA4E;;;;;+BAI/DA;;;eAAAA;;;6BAFe;AAErB,MAAMA,QAAQC,IAAAA,wBAAW,EAAC;IAC7BC,aAAa;IACbC,QAAQ;IACRC,SAAS;QACL,uDAAuD,GACvDC,GAAG;YAAEH,aAAa;YAAmBI,OAAO;YAAMC,QAAQ;QAAK;QAC/D,sDAAsD,GACtDC,QAAQ;YACJC,SAAS;gBAAC;gBAAQ;aAAS;YAC3BP,aAAa;YACbQ,oBAAoB;QACxB;QACAC,YAAY;YAAEL,OAAO;YAAMC,QAAQ;YAAMK,QAAQ;QAAK;IAC1D;AACJ"}
@@ -0,0 +1,15 @@
1
+ export declare const entry: {
2
+ options: {
3
+ dry: {
4
+ boolean: true;
5
+ description: string;
6
+ };
7
+ releaseVersion: {
8
+ string: true;
9
+ demandOption: true;
10
+ requiresArg: true;
11
+ description: string;
12
+ };
13
+ };
14
+ };
15
+ //# sourceMappingURL=upload-sourcemaps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-sourcemaps.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/registry/upload-sourcemaps.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK;;;;;;;;;;;;;CAUO,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "entry", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return entry;
9
+ }
10
+ });
11
+ const _defineentry = require("./define-entry");
12
+ const entry = (0, _defineentry.defineEntry)({
13
+ options: {
14
+ dry: {
15
+ boolean: true,
16
+ description: 'Dry run mode'
17
+ },
18
+ releaseVersion: {
19
+ string: true,
20
+ demandOption: true,
21
+ requiresArg: true,
22
+ description: 'Release version'
23
+ }
24
+ }
25
+ });
26
+
27
+ //# sourceMappingURL=upload-sourcemaps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/commands/registry/upload-sourcemaps.ts"],"sourcesContent":["import type { CommandEntry } from '../types';\nimport { defineEntry } from './define-entry';\n\nexport const entry = defineEntry({\n options: {\n dry: { boolean: true, description: 'Dry run mode' },\n releaseVersion: {\n string: true,\n demandOption: true,\n requiresArg: true,\n description: 'Release version',\n },\n },\n} satisfies CommandEntry);\n"],"names":["entry","defineEntry","options","dry","boolean","description","releaseVersion","string","demandOption","requiresArg"],"mappings":";;;;+BAGaA;;;eAAAA;;;6BAFe;AAErB,MAAMA,QAAQC,IAAAA,wBAAW,EAAC;IAC7BC,SAAS;QACLC,KAAK;YAAEC,SAAS;YAAMC,aAAa;QAAe;QAClDC,gBAAgB;YACZC,QAAQ;YACRC,cAAc;YACdC,aAAa;YACbJ,aAAa;QACjB;IACJ;AACJ"}
@@ -1,29 +1,6 @@
1
+ import type { entry } from '../registry/review';
1
2
  import { Command } from '../types';
2
- declare const options: {
3
- fix: {
4
- boolean: true;
5
- description: string;
6
- };
7
- rule: {
8
- array: true;
9
- string: true;
10
- description: string;
11
- };
12
- };
13
- export declare class Review extends Command<typeof options> {
14
- static readonly allowRunFromGlobal = true;
15
- static readonly description = "Check project for configuration errors";
16
- static readonly options: {
17
- fix: {
18
- boolean: true;
19
- description: string;
20
- };
21
- rule: {
22
- array: true;
23
- string: true;
24
- description: string;
25
- };
26
- };
3
+ export declare class Review extends Command<typeof entry> {
27
4
  private readonly severityToLabel;
28
5
  private readonly levelToSeverity;
29
6
  execute(): Promise<void>;
@@ -41,5 +18,4 @@ export declare class Review extends Command<typeof options> {
41
18
  private getLink;
42
19
  private getSelectedRules;
43
20
  }
44
- export {};
45
21
  //# sourceMappingURL=review.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/review/review.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAkB,MAAM,UAAU,CAAC;AAuBnD,QAAA,MAAM,OAAO;;;;;;;;;;CAGa,CAAC;AAE3B,qBAAa,MAAO,SAAQ,OAAO,CAAC,OAAO,OAAO,CAAC;IAC/C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,QAAQ;IAC1C,MAAM,CAAC,QAAQ,CAAC,WAAW,4CAA4C;IACvE,MAAM,CAAC,QAAQ,CAAC,OAAO;;;;;;;;;;MAAW;IAElC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG9B;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG9B;IAGI,OAAO;IAMb,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,SAAS;IAyCjB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,gBAAgB;CAI3B"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/review/review.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAuBnC,qBAAa,MAAO,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG9B;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG9B;IAGI,OAAO;IAMb,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,SAAS;IAyCjB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,gBAAgB;CAI3B"}
@@ -44,17 +44,6 @@ function _ts_metadata(k, v) {
44
44
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
45
45
  }
46
46
  const collator = new Intl.Collator();
47
- const options = {
48
- fix: {
49
- boolean: true,
50
- description: 'Fix detected problems'
51
- },
52
- rule: {
53
- array: true,
54
- string: true,
55
- description: 'Limit checks to specified rule(s)'
56
- }
57
- };
58
47
  class Review extends _types.Command {
59
48
  async execute() {
60
49
  const errors = this.args.fix ? this.fixErrors() : this.findErrors();
@@ -219,9 +208,6 @@ class Review extends _types.Command {
219
208
  });
220
209
  }
221
210
  }
222
- _define_property(Review, "allowRunFromGlobal", true);
223
- _define_property(Review, "description", 'Check project for configuration errors');
224
- _define_property(Review, "options", options);
225
211
  _ts_decorate([
226
212
  _utils.logErrors,
227
213
  _ts_metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/commands/review/review.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { execSync } from 'child_process';\nimport terminalLink from 'terminal-link';\nimport {\n findPackages,\n getReviewConfiguration,\n log,\n logErrors,\n readJsonSafe,\n toArray,\n} from '../../../utils';\nimport { Command, CommandOptions } from '../types';\nimport { rules } from './rules';\nimport {\n ErrorSeverity,\n FixCategory,\n Level,\n Package,\n PackageError,\n PackageRule,\n Project,\n RuleConfiguration,\n} from './types';\nimport {\n collateDependencies,\n ErrorSummary,\n formatLocation,\n indent,\n pluralize,\n summarize,\n} from './utils';\n\nconst collator = new Intl.Collator();\n\nconst options = {\n fix: { boolean: true, description: 'Fix detected problems' },\n rule: { array: true, string: true, description: 'Limit checks to specified rule(s)' },\n} satisfies CommandOptions;\n\nexport class Review extends Command<typeof options> {\n static readonly allowRunFromGlobal = true;\n static readonly description = 'Check project for configuration errors';\n static readonly options = options;\n\n private readonly severityToLabel: Record<ErrorSeverity, string> = {\n [ErrorSeverity.warning]: chalk.yellow('warning'),\n [ErrorSeverity.error]: chalk.red('error'),\n };\n\n private readonly levelToSeverity: Partial<Record<Level, ErrorSeverity>> = {\n warn: ErrorSeverity.warning,\n error: ErrorSeverity.error,\n };\n\n @logErrors\n async execute() {\n const errors = this.args.fix ? this.fixErrors() : this.findErrors();\n const summary = this.reportErrors(errors);\n return summary.error > 0 ? Promise.reject() : Promise.resolve();\n }\n\n private createProject(): Project {\n const root = readJsonSafe('package.json');\n if (!root?.workspaces) {\n throw new Error('this command must be run from the workspace root directory');\n }\n\n const packageLock = readJsonSafe<Project['packageLock']>('package-lock.json');\n if (!packageLock?.packages) {\n throw new Error('this command must be run with valid package-lock.json');\n }\n\n root.location = '.'; // identifies the root package.json for rules that care\n packageLock.location = './package-lock.json';\n\n const config = getReviewConfiguration();\n const packages: Package[] = [root, ...findPackages()];\n const dependencies = sortByKey(collateDependencies(packages));\n this.debug('review:packages', packages);\n this.debug('review:dependencies', dependencies);\n\n return { config, dependencies, packageLock, packages };\n }\n\n private debug(namespace: string, data: any) {\n /* istanbul ignore next: debug only */\n log.debug(namespace, () => data && JSON.stringify(data, null, 2));\n }\n\n private findErrors(project?: Project) {\n const errors = this.runRules(project ?? this.createProject());\n this.debug('review:errors', errors);\n return errors;\n }\n\n private fixErrors() {\n const rulesById = rules.reduce<Record<string, PackageRule>>((result, rule) => {\n result[rule.id] = rule;\n return result;\n }, {});\n\n let project = this.createProject();\n let errors = this.findErrors(project);\n let totalFixed = 0;\n\n for (const category of [FixCategory.isolated, FixCategory.normal, FixCategory.lockFile]) {\n const fixable = errors.filter(({ fixable }) => fixable === category);\n if (fixable.length === 0) {\n continue;\n }\n\n fixable.forEach(error => {\n const rule = rulesById[error.id];\n if (rule.fix) {\n log.text(`Fixing ${this.formatError({ ...error, details: '', location: '' })}`);\n rule.fix(error, project);\n totalFixed += 1;\n }\n });\n\n execSync('npx @servicetitan/install --fix --quiet', { stdio: 'inherit' });\n project = this.createProject();\n errors = this.findErrors(project);\n }\n\n if (totalFixed > 0) {\n let summary = `Fixed ${pluralize(totalFixed, 'problem')}`;\n if (errors.length) {\n summary = `${summary}, ${pluralize(errors.length, 'problem remains', 'problems remain')}:\\n`;\n }\n log.info(summary);\n }\n\n return errors;\n }\n\n private formatError(error: PackageError) {\n const { location, message, severity = ErrorSeverity.error } = error;\n\n const label = indent(this.severityToLabel[severity], location ? 1 : 0);\n const details = error.details ? `\\n${indent(error.details, location ? 2 : 1)}` : '';\n const link = this.getLink(error);\n\n return `${label} ${message} ${link}${details}`;\n }\n\n private reportErrors(errors: PackageError[]) {\n let prevLocation: string | undefined;\n\n errors.forEach((error, index) => {\n const { location } = error;\n if (index > 0 && (!location || location !== prevLocation)) {\n log.text('');\n }\n if (location && location !== prevLocation) {\n log.text(chalk.underline(formatLocation(location)));\n prevLocation = location;\n }\n log.text(this.formatError(error));\n });\n\n const summary = summarize(errors);\n this.reportSummary(summary);\n return summary;\n }\n\n private reportSummary({ error, warning, fixable }: ErrorSummary) {\n if (error + warning === 0) {\n return log.success('0 problems');\n }\n\n log.text('');\n\n const severity = error ? 'error' : 'warning';\n log[severity](\n `${pluralize(error + warning, 'problem')} (${pluralize(error, 'error')}, ${pluralize(warning, 'warning')})`\n );\n\n if (fixable.error + fixable.warning > 0) {\n log[severity](\n `${pluralize(fixable.error, 'error')} and ${pluralize(fixable.warning, 'warning')} potentially fixable with --fix option`\n );\n }\n }\n\n private runRules(project: Project): PackageError[] {\n const selected = this.getSelectedRules();\n return rules\n .filter(({ id }) => !selected || selected.has(id))\n .flatMap(rule => this.runRule(rule, project))\n .filter(error => !!error)\n .sort(compareError);\n }\n\n private runRule(rule: PackageRule, project: Project) {\n const level = this.getLevel(project.config.rules?.[rule.id]);\n if (level === 'off') {\n return;\n }\n\n return this.transform(rule.run(project), level);\n }\n\n private transform(errors?: PackageError | PackageError[], level?: 'error' | 'warn') {\n const severity = level && this.levelToSeverity[level];\n return errors && severity ? toArray(errors).map(error => ({ ...error, severity })) : errors;\n }\n\n private getLevel(config?: RuleConfiguration) {\n if (typeof config === 'string') {\n return config;\n }\n if (Array.isArray(config) && typeof config[0] === 'string') {\n return config[0];\n }\n }\n\n private getLink({ id }: PackageError) {\n const url = `https://docs.st.dev/docs/frontend/uikit/startup/review#${id}`;\n return chalk.dim(terminalLink(id, url));\n }\n\n private getSelectedRules() {\n const rule = this.args.rule;\n return rule ? new Set(rule.filter(id => !!id)) : undefined;\n }\n}\n\nfunction compareError(\n { location: locationA = '', severity: severityA = ErrorSeverity.error }: PackageError,\n { location: locationB = '', severity: severityB = ErrorSeverity.error }: PackageError\n) {\n return locationA === locationB ? severityA - severityB : collator.compare(locationA, locationB);\n}\n\nfunction sortByKey<T>(obj: Record<string, T>): Record<string, T> {\n return Object.fromEntries(Object.entries(obj).sort(([a], [b]) => collator.compare(a, b)));\n}\n"],"names":["Review","collator","Intl","Collator","options","fix","boolean","description","rule","array","string","Command","execute","errors","args","fixErrors","findErrors","summary","reportErrors","error","Promise","reject","resolve","createProject","root","readJsonSafe","workspaces","Error","packageLock","packages","location","config","getReviewConfiguration","findPackages","dependencies","sortByKey","collateDependencies","debug","namespace","data","log","JSON","stringify","project","runRules","rulesById","rules","reduce","result","id","totalFixed","category","FixCategory","isolated","normal","lockFile","fixable","filter","length","forEach","text","formatError","details","execSync","stdio","pluralize","info","message","severity","ErrorSeverity","label","indent","severityToLabel","link","getLink","prevLocation","index","chalk","underline","formatLocation","summarize","reportSummary","warning","success","selected","getSelectedRules","has","flatMap","runRule","sort","compareError","level","getLevel","transform","run","levelToSeverity","toArray","map","Array","isArray","url","dim","terminalLink","Set","undefined","yellow","red","warn","allowRunFromGlobal","locationA","severityA","locationB","severityB","compare","obj","Object","fromEntries","entries","a","b"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/cli/commands/review/review.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { execSync } from 'child_process';\nimport terminalLink from 'terminal-link';\nimport {\n findPackages,\n getReviewConfiguration,\n log,\n logErrors,\n readJsonSafe,\n toArray,\n} from '../../../utils';\nimport type { entry } from '../registry/review';\nimport { Command } from '../types';\nimport { rules } from './rules';\nimport {\n ErrorSeverity,\n FixCategory,\n Level,\n Package,\n PackageError,\n PackageRule,\n Project,\n RuleConfiguration,\n} from './types';\nimport {\n collateDependencies,\n ErrorSummary,\n formatLocation,\n indent,\n pluralize,\n summarize,\n} from './utils';\n\nconst collator = new Intl.Collator();\n\nexport class Review extends Command<typeof entry> {\n private readonly severityToLabel: Record<ErrorSeverity, string> = {\n [ErrorSeverity.warning]: chalk.yellow('warning'),\n [ErrorSeverity.error]: chalk.red('error'),\n };\n\n private readonly levelToSeverity: Partial<Record<Level, ErrorSeverity>> = {\n warn: ErrorSeverity.warning,\n error: ErrorSeverity.error,\n };\n\n @logErrors\n async execute() {\n const errors = this.args.fix ? this.fixErrors() : this.findErrors();\n const summary = this.reportErrors(errors);\n return summary.error > 0 ? Promise.reject() : Promise.resolve();\n }\n\n private createProject(): Project {\n const root = readJsonSafe('package.json');\n if (!root?.workspaces) {\n throw new Error('this command must be run from the workspace root directory');\n }\n\n const packageLock = readJsonSafe<Project['packageLock']>('package-lock.json');\n if (!packageLock?.packages) {\n throw new Error('this command must be run with valid package-lock.json');\n }\n\n root.location = '.'; // identifies the root package.json for rules that care\n packageLock.location = './package-lock.json';\n\n const config = getReviewConfiguration();\n const packages: Package[] = [root, ...findPackages()];\n const dependencies = sortByKey(collateDependencies(packages));\n this.debug('review:packages', packages);\n this.debug('review:dependencies', dependencies);\n\n return { config, dependencies, packageLock, packages };\n }\n\n private debug(namespace: string, data: any) {\n /* istanbul ignore next: debug only */\n log.debug(namespace, () => data && JSON.stringify(data, null, 2));\n }\n\n private findErrors(project?: Project) {\n const errors = this.runRules(project ?? this.createProject());\n this.debug('review:errors', errors);\n return errors;\n }\n\n private fixErrors() {\n const rulesById = rules.reduce<Record<string, PackageRule>>((result, rule) => {\n result[rule.id] = rule;\n return result;\n }, {});\n\n let project = this.createProject();\n let errors = this.findErrors(project);\n let totalFixed = 0;\n\n for (const category of [FixCategory.isolated, FixCategory.normal, FixCategory.lockFile]) {\n const fixable = errors.filter(({ fixable }) => fixable === category);\n if (fixable.length === 0) {\n continue;\n }\n\n fixable.forEach(error => {\n const rule = rulesById[error.id];\n if (rule.fix) {\n log.text(`Fixing ${this.formatError({ ...error, details: '', location: '' })}`);\n rule.fix(error, project);\n totalFixed += 1;\n }\n });\n\n execSync('npx @servicetitan/install --fix --quiet', { stdio: 'inherit' });\n project = this.createProject();\n errors = this.findErrors(project);\n }\n\n if (totalFixed > 0) {\n let summary = `Fixed ${pluralize(totalFixed, 'problem')}`;\n if (errors.length) {\n summary = `${summary}, ${pluralize(errors.length, 'problem remains', 'problems remain')}:\\n`;\n }\n log.info(summary);\n }\n\n return errors;\n }\n\n private formatError(error: PackageError) {\n const { location, message, severity = ErrorSeverity.error } = error;\n\n const label = indent(this.severityToLabel[severity], location ? 1 : 0);\n const details = error.details ? `\\n${indent(error.details, location ? 2 : 1)}` : '';\n const link = this.getLink(error);\n\n return `${label} ${message} ${link}${details}`;\n }\n\n private reportErrors(errors: PackageError[]) {\n let prevLocation: string | undefined;\n\n errors.forEach((error, index) => {\n const { location } = error;\n if (index > 0 && (!location || location !== prevLocation)) {\n log.text('');\n }\n if (location && location !== prevLocation) {\n log.text(chalk.underline(formatLocation(location)));\n prevLocation = location;\n }\n log.text(this.formatError(error));\n });\n\n const summary = summarize(errors);\n this.reportSummary(summary);\n return summary;\n }\n\n private reportSummary({ error, warning, fixable }: ErrorSummary) {\n if (error + warning === 0) {\n return log.success('0 problems');\n }\n\n log.text('');\n\n const severity = error ? 'error' : 'warning';\n log[severity](\n `${pluralize(error + warning, 'problem')} (${pluralize(error, 'error')}, ${pluralize(warning, 'warning')})`\n );\n\n if (fixable.error + fixable.warning > 0) {\n log[severity](\n `${pluralize(fixable.error, 'error')} and ${pluralize(fixable.warning, 'warning')} potentially fixable with --fix option`\n );\n }\n }\n\n private runRules(project: Project): PackageError[] {\n const selected = this.getSelectedRules();\n return rules\n .filter(({ id }) => !selected || selected.has(id))\n .flatMap(rule => this.runRule(rule, project))\n .filter(error => !!error)\n .sort(compareError);\n }\n\n private runRule(rule: PackageRule, project: Project) {\n const level = this.getLevel(project.config.rules?.[rule.id]);\n if (level === 'off') {\n return;\n }\n\n return this.transform(rule.run(project), level);\n }\n\n private transform(errors?: PackageError | PackageError[], level?: 'error' | 'warn') {\n const severity = level && this.levelToSeverity[level];\n return errors && severity ? toArray(errors).map(error => ({ ...error, severity })) : errors;\n }\n\n private getLevel(config?: RuleConfiguration) {\n if (typeof config === 'string') {\n return config;\n }\n if (Array.isArray(config) && typeof config[0] === 'string') {\n return config[0];\n }\n }\n\n private getLink({ id }: PackageError) {\n const url = `https://docs.st.dev/docs/frontend/uikit/startup/review#${id}`;\n return chalk.dim(terminalLink(id, url));\n }\n\n private getSelectedRules() {\n const rule = this.args.rule;\n return rule ? new Set(rule.filter(id => !!id)) : undefined;\n }\n}\n\nfunction compareError(\n { location: locationA = '', severity: severityA = ErrorSeverity.error }: PackageError,\n { location: locationB = '', severity: severityB = ErrorSeverity.error }: PackageError\n) {\n return locationA === locationB ? severityA - severityB : collator.compare(locationA, locationB);\n}\n\nfunction sortByKey<T>(obj: Record<string, T>): Record<string, T> {\n return Object.fromEntries(Object.entries(obj).sort(([a], [b]) => collator.compare(a, b)));\n}\n"],"names":["Review","collator","Intl","Collator","Command","execute","errors","args","fix","fixErrors","findErrors","summary","reportErrors","error","Promise","reject","resolve","createProject","root","readJsonSafe","workspaces","Error","packageLock","packages","location","config","getReviewConfiguration","findPackages","dependencies","sortByKey","collateDependencies","debug","namespace","data","log","JSON","stringify","project","runRules","rulesById","rules","reduce","result","rule","id","totalFixed","category","FixCategory","isolated","normal","lockFile","fixable","filter","length","forEach","text","formatError","details","execSync","stdio","pluralize","info","message","severity","ErrorSeverity","label","indent","severityToLabel","link","getLink","prevLocation","index","chalk","underline","formatLocation","summarize","reportSummary","warning","success","selected","getSelectedRules","has","flatMap","runRule","sort","compareError","level","getLevel","transform","run","levelToSeverity","toArray","map","Array","isArray","url","dim","terminalLink","Set","undefined","yellow","red","warn","locationA","severityA","locationB","severityB","compare","obj","Object","fromEntries","entries","a","b"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"require-compatible-launch-darkly-sdk.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/review/rules/require-compatible-launch-darkly-sdk.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwB,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAMpF,UAAU,SAAS;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAEzC,qBAAa,gCAAiC,YAAW,WAAW;;IAGhE,IAAI,EAAE,WAEL;IAED,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,SAAS;IAiB1D,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO;IAsBzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAkB3B;IAEF,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,2BAA2B;CAQtC"}
1
+ {"version":3,"file":"require-compatible-launch-darkly-sdk.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/review/rules/require-compatible-launch-darkly-sdk.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAMpF,UAAU,SAAS;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAEzC,qBAAa,gCAAiC,YAAW,WAAW;;IAGhE,IAAI,EAAE,WAEL;IAED,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,SAAS;IAiB1D,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO;IAsBzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAkB3B;IAEF,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,2BAA2B;CAQtC"}
@@ -11,9 +11,8 @@ Object.defineProperty(exports, "RequireCompatibleLaunchDarklySdk", {
11
11
  const _chalk = /*#__PURE__*/ _interop_require_default(require("chalk"));
12
12
  const _child_process = require("child_process");
13
13
  const _semver = require("semver");
14
- const _utils = require("../../../../utils");
15
14
  const _types = require("../types");
16
- const _utils1 = require("../utils");
15
+ const _utils = require("../utils");
17
16
  function _check_private_redeclaration(obj, privateCollection) {
18
17
  if (privateCollection.has(obj)) {
19
18
  throw new TypeError("Cannot initialize the same private elements twice on an object");
@@ -86,11 +85,11 @@ class RequireCompatibleLaunchDarklySdk {
86
85
  * Pass an empty filter object to checkPackages to disable its filtering.
87
86
  * The project-level check is only useful when there are no package-level
88
87
  * errors so we need an accurate count.
89
- */ const errors = (0, _utils1.checkPackages)({}, project, this.checkPackage);
88
+ */ const errors = (0, _utils.checkPackages)({}, project, this.checkPackage);
90
89
  if (!errors.length) {
91
90
  return this.checkProject();
92
91
  }
93
- return (0, _utils1.applyFilter)((_project_config_rules = project.config.rules) === null || _project_config_rules === void 0 ? void 0 : _project_config_rules[this.id], errors, ({ data })=>data.name);
92
+ return (0, _utils.applyFilter)((_project_config_rules = project.config.rules) === null || _project_config_rules === void 0 ? void 0 : _project_config_rules[this.id], errors, ({ data })=>data.name);
94
93
  }
95
94
  fix({ data }, project) {
96
95
  const { name, targetVersion } = data !== null && data !== void 0 ? data : {};
@@ -98,7 +97,7 @@ class RequireCompatibleLaunchDarklySdk {
98
97
  return;
99
98
  }
100
99
  if (name) {
101
- (0, _utils1.setVersion)({
100
+ (0, _utils.setVersion)({
102
101
  project,
103
102
  packageName: name,
104
103
  dependency: JS_CLIENT_SDK,
@@ -149,8 +148,9 @@ class RequireCompatibleLaunchDarklySdk {
149
148
  }).version;
150
149
  }
151
150
  getResolvedDependency({ packageName, dependency }) {
151
+ var _ref, _ref1;
152
152
  const { packages } = _class_private_field_get(this, _project).packageLock;
153
- return (0, _utils.resolvePackageLockEntry)(packages, dependency, packageName);
153
+ return (_ref = (_ref1 = packageName ? packages[`node_modules/${packageName}/node_modules/${dependency}`] : undefined) !== null && _ref1 !== void 0 ? _ref1 : packages[`node_modules/${dependency}`]) !== null && _ref !== void 0 ? _ref : {};
154
154
  }
155
155
  getTargetJsClientSdkVersion(packageName) {
156
156
  var _dependencies_JS_CLIENT_SDK;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-compatible-launch-darkly-sdk.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { execSync } from 'child_process';\nimport { satisfies } from 'semver';\nimport { resolvePackageLockEntry } from '../../../../utils';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter, checkPackages, setVersion } from '../utils';\n\nconst JS_CLIENT_SDK = 'launchdarkly-js-client-sdk';\nconst LD_SERVICE = '@servicetitan/launchdarkly-service';\n\ninterface ErrorData {\n name?: string;\n actualVersion: string;\n targetVersion: string;\n}\n\ntype RuleError = PackageError<ErrorData>;\n\nexport class RequireCompatibleLaunchDarklySdk implements PackageRule {\n #project!: Project;\n\n get id() {\n return 'require-compatible-launch-darkly-sdk';\n }\n\n run(project: Project): RuleError | RuleError[] | undefined {\n this.#project = project;\n\n /*\n * Pass an empty filter object to checkPackages to disable its filtering.\n * The project-level check is only useful when there are no package-level\n * errors so we need an accurate count.\n */\n const errors = checkPackages({}, project, this.checkPackage);\n\n if (!errors.length) {\n return this.checkProject();\n }\n\n return applyFilter(project.config.rules?.[this.id], errors, ({ data }) => data!.name!);\n }\n\n fix({ data }: RuleError, project: Project) {\n const { name, targetVersion } = data ?? {};\n if (!targetVersion) {\n return;\n }\n if (name) {\n setVersion({\n project,\n packageName: name,\n dependency: JS_CLIENT_SDK,\n version: targetVersion,\n });\n return;\n }\n\n [\n `npm pkg set dependencies[\"${JS_CLIENT_SDK}\"]=${targetVersion}`,\n 'npx @servicetitan/install --fix --quiet',\n `npm pkg delete dependencies[\"${JS_CLIENT_SDK}\"]`,\n ].forEach(command => execSync(command, { stdio: 'inherit' }));\n }\n\n private readonly checkPackage = ({\n dependencies = {},\n location,\n name,\n }: Package): RuleError | undefined => {\n if (!dependencies[JS_CLIENT_SDK]) {\n return;\n }\n\n const actualVersion = this.getActualJsClientSdkVersion(name);\n const targetVersion = this.getTargetJsClientSdkVersion(name);\n if (actualVersion && targetVersion && !satisfies(actualVersion, targetVersion)) {\n return this.createError({\n message: `package \"${name}\" depends on an incompatible version of ${JS_CLIENT_SDK}`,\n location,\n data: { name, actualVersion, targetVersion },\n });\n }\n };\n\n private checkProject() {\n const actualVersion = this.getActualJsClientSdkVersion();\n const targetVersion = this.getTargetJsClientSdkVersion();\n if (actualVersion && targetVersion && !satisfies(actualVersion, targetVersion)) {\n return this.createError({\n message: `project depends on an incompatible version of ${JS_CLIENT_SDK}`,\n location: this.#project.packageLock.location,\n data: { actualVersion, targetVersion },\n });\n }\n }\n\n private createError(params: { message: string; location: string; data: ErrorData }): RuleError {\n const { message, data, location } = params;\n return {\n id: this.id,\n message,\n details: this.formatDetails(data),\n location,\n fixable: data.name ? FixCategory.isolated : FixCategory.lockFile,\n data,\n };\n }\n\n private formatDetails({ actualVersion, targetVersion }: ErrorData) {\n return `${chalk.yellow(actualVersion)} does not match ${targetVersion}`;\n }\n\n private getActualJsClientSdkVersion(packageName?: string) {\n return this.getResolvedDependency({ packageName, dependency: JS_CLIENT_SDK }).version;\n }\n\n private getResolvedDependency({\n packageName,\n dependency,\n }: {\n packageName?: string;\n dependency: string;\n }) {\n const { packages } = this.#project.packageLock;\n return resolvePackageLockEntry(packages, dependency, packageName);\n }\n\n private getTargetJsClientSdkVersion(packageName?: string) {\n const { dependencies = {}, peerDependencies = {} } = this.getResolvedDependency({\n packageName,\n dependency: LD_SERVICE,\n });\n\n return dependencies[JS_CLIENT_SDK] ?? peerDependencies[JS_CLIENT_SDK];\n }\n}\n"],"names":["RequireCompatibleLaunchDarklySdk","JS_CLIENT_SDK","LD_SERVICE","id","run","project","errors","checkPackages","checkPackage","length","checkProject","applyFilter","config","rules","data","name","fix","targetVersion","setVersion","packageName","dependency","version","forEach","command","execSync","stdio","actualVersion","getActualJsClientSdkVersion","getTargetJsClientSdkVersion","satisfies","createError","message","location","packageLock","params","details","formatDetails","fixable","FixCategory","isolated","lockFile","chalk","yellow","getResolvedDependency","packages","resolvePackageLockEntry","dependencies","peerDependencies"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/cli/commands/review/rules/require-compatible-launch-darkly-sdk.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { execSync } from 'child_process';\nimport { satisfies } from 'semver';\nimport { FixCategory, Package, PackageError, PackageRule, Project } from '../types';\nimport { applyFilter, checkPackages, setVersion } from '../utils';\n\nconst JS_CLIENT_SDK = 'launchdarkly-js-client-sdk';\nconst LD_SERVICE = '@servicetitan/launchdarkly-service';\n\ninterface ErrorData {\n name?: string;\n actualVersion: string;\n targetVersion: string;\n}\n\ntype RuleError = PackageError<ErrorData>;\n\nexport class RequireCompatibleLaunchDarklySdk implements PackageRule {\n #project!: Project;\n\n get id() {\n return 'require-compatible-launch-darkly-sdk';\n }\n\n run(project: Project): RuleError | RuleError[] | undefined {\n this.#project = project;\n\n /*\n * Pass an empty filter object to checkPackages to disable its filtering.\n * The project-level check is only useful when there are no package-level\n * errors so we need an accurate count.\n */\n const errors = checkPackages({}, project, this.checkPackage);\n\n if (!errors.length) {\n return this.checkProject();\n }\n\n return applyFilter(project.config.rules?.[this.id], errors, ({ data }) => data!.name!);\n }\n\n fix({ data }: RuleError, project: Project) {\n const { name, targetVersion } = data ?? {};\n if (!targetVersion) {\n return;\n }\n if (name) {\n setVersion({\n project,\n packageName: name,\n dependency: JS_CLIENT_SDK,\n version: targetVersion,\n });\n return;\n }\n\n [\n `npm pkg set dependencies[\"${JS_CLIENT_SDK}\"]=${targetVersion}`,\n 'npx @servicetitan/install --fix --quiet',\n `npm pkg delete dependencies[\"${JS_CLIENT_SDK}\"]`,\n ].forEach(command => execSync(command, { stdio: 'inherit' }));\n }\n\n private readonly checkPackage = ({\n dependencies = {},\n location,\n name,\n }: Package): RuleError | undefined => {\n if (!dependencies[JS_CLIENT_SDK]) {\n return;\n }\n\n const actualVersion = this.getActualJsClientSdkVersion(name);\n const targetVersion = this.getTargetJsClientSdkVersion(name);\n if (actualVersion && targetVersion && !satisfies(actualVersion, targetVersion)) {\n return this.createError({\n message: `package \"${name}\" depends on an incompatible version of ${JS_CLIENT_SDK}`,\n location,\n data: { name, actualVersion, targetVersion },\n });\n }\n };\n\n private checkProject() {\n const actualVersion = this.getActualJsClientSdkVersion();\n const targetVersion = this.getTargetJsClientSdkVersion();\n if (actualVersion && targetVersion && !satisfies(actualVersion, targetVersion)) {\n return this.createError({\n message: `project depends on an incompatible version of ${JS_CLIENT_SDK}`,\n location: this.#project.packageLock.location,\n data: { actualVersion, targetVersion },\n });\n }\n }\n\n private createError(params: { message: string; location: string; data: ErrorData }): RuleError {\n const { message, data, location } = params;\n return {\n id: this.id,\n message,\n details: this.formatDetails(data),\n location,\n fixable: data.name ? FixCategory.isolated : FixCategory.lockFile,\n data,\n };\n }\n\n private formatDetails({ actualVersion, targetVersion }: ErrorData) {\n return `${chalk.yellow(actualVersion)} does not match ${targetVersion}`;\n }\n\n private getActualJsClientSdkVersion(packageName?: string) {\n return this.getResolvedDependency({ packageName, dependency: JS_CLIENT_SDK }).version;\n }\n\n private getResolvedDependency({\n packageName,\n dependency,\n }: {\n packageName?: string;\n dependency: string;\n }) {\n const { packages } = this.#project.packageLock;\n return (\n (packageName\n ? packages[`node_modules/${packageName}/node_modules/${dependency}`]\n : undefined) ??\n packages[`node_modules/${dependency}`] ??\n {}\n );\n }\n\n private getTargetJsClientSdkVersion(packageName?: string) {\n const { dependencies = {}, peerDependencies = {} } = this.getResolvedDependency({\n packageName,\n dependency: LD_SERVICE,\n });\n\n return dependencies[JS_CLIENT_SDK] ?? peerDependencies[JS_CLIENT_SDK];\n }\n}\n"],"names":["RequireCompatibleLaunchDarklySdk","JS_CLIENT_SDK","LD_SERVICE","id","run","project","errors","checkPackages","checkPackage","length","checkProject","applyFilter","config","rules","data","name","fix","targetVersion","setVersion","packageName","dependency","version","forEach","command","execSync","stdio","actualVersion","getActualJsClientSdkVersion","getTargetJsClientSdkVersion","satisfies","createError","message","location","packageLock","params","details","formatDetails","fixable","FixCategory","isolated","lockFile","chalk","yellow","getResolvedDependency","packages","undefined","dependencies","peerDependencies"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { PackageLockPackages } from '../../../utils';
2
1
  export declare abstract class PackageRule {
3
2
  abstract get id(): string;
4
3
  abstract run(project: Project): PackageError | PackageError[] | undefined;
@@ -8,7 +7,11 @@ export interface Project {
8
7
  config: ReviewConfiguration;
9
8
  dependencies: Dependencies;
10
9
  packageLock: {
11
- packages: PackageLockPackages;
10
+ packages: Record<string, {
11
+ version: string;
12
+ dependencies?: Record<string, string>;
13
+ peerDependencies?: Record<string, string>;
14
+ }>;
12
15
  location: string;
13
16
  };
14
17
  packages: Package[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/review/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/review/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/commands/review/types.ts"],"sourcesContent":["import { PackageLockPackages } from '../../../utils';\n\nexport abstract class PackageRule {\n abstract get id(): string;\n abstract run(project: Project): PackageError | PackageError[] | undefined;\n abstract fix?(error: PackageError, project: Project): void;\n}\n\nexport interface Project {\n config: ReviewConfiguration;\n dependencies: Dependencies;\n // Only using this subset of package-lock.json\n packageLock: {\n packages: PackageLockPackages;\n location: string;\n };\n packages: Package[];\n}\n\n/**\n * Maps package name to versions and dependents of those versions.\n */\nexport interface Dependencies {\n [packageName: string]: {\n [version: string]: string[];\n };\n}\n\n/**\n * Subset of package.json used by rules\n */\nexport interface Package {\n cli?: CliOptions;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n exports?: string | Record<string, string | Record<string, string>> | null;\n location: string;\n main?: string;\n module?: string;\n name: string;\n peerDependencies?: Record<string, string>;\n private?: boolean;\n scripts?: Record<string, string>;\n sideEffects?: any;\n workspaces?: string[];\n}\n\ninterface CliOptions {\n webpack?: false | Record<string, any>;\n}\n\nexport interface PackageError<T = any> {\n data?: T;\n details?: string | string[];\n fixable?: FixCategory;\n id: string;\n location?: string;\n message: string;\n severity?: ErrorSeverity;\n}\n\nexport enum ErrorSeverity {\n error = 1,\n warning = 2,\n}\n\nexport enum FixCategory {\n isolated = 'isolated', // fix examines and changes at most one dependency or package.json, if any\n normal = 'normal', // fix potentially examines and changes multiple dependencies\n lockFile = 'lockFile', // fix examines and changes package-lock.json\n}\n\nexport interface ReviewConfiguration {\n rules?: { [id: string]: RuleConfiguration };\n}\n\nexport type RuleConfiguration =\n | Level\n | [Level]\n | [Level, { exclude?: string[] | Record<string, string[]> }];\n\nexport type Level = 'warn' | 'error' | 'off';\n"],"names":["ErrorSeverity","FixCategory","PackageRule"],"mappings":";;;;;;;;;;;QA6DYA;eAAAA;;QAKAC;eAAAA;;QAhEUC;eAAAA;;;AAAf,MAAeA;AAItB;AAuDO,IAAA,AAAKF,uCAAAA;;;WAAAA;;AAKL,IAAA,AAAKC,qCAAAA;;;;WAAAA"}
1
+ {"version":3,"sources":["../../../../src/cli/commands/review/types.ts"],"sourcesContent":["export abstract class PackageRule {\n abstract get id(): string;\n abstract run(project: Project): PackageError | PackageError[] | undefined;\n abstract fix?(error: PackageError, project: Project): void;\n}\n\nexport interface Project {\n config: ReviewConfiguration;\n dependencies: Dependencies;\n // Only using this subset of package-lock.json\n packageLock: {\n packages: Record<\n string,\n {\n version: string;\n dependencies?: Record<string, string>;\n peerDependencies?: Record<string, string>;\n }\n >;\n location: string;\n };\n packages: Package[];\n}\n\n/**\n * Maps package name to versions and dependents of those versions.\n */\nexport interface Dependencies {\n [packageName: string]: {\n [version: string]: string[];\n };\n}\n\n/**\n * Subset of package.json used by rules\n */\nexport interface Package {\n cli?: CliOptions;\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n exports?: string | Record<string, string | Record<string, string>> | null;\n location: string;\n main?: string;\n module?: string;\n name: string;\n peerDependencies?: Record<string, string>;\n private?: boolean;\n scripts?: Record<string, string>;\n sideEffects?: any;\n workspaces?: string[];\n}\n\ninterface CliOptions {\n webpack?: false | Record<string, any>;\n}\n\nexport interface PackageError<T = any> {\n data?: T;\n details?: string | string[];\n fixable?: FixCategory;\n id: string;\n location?: string;\n message: string;\n severity?: ErrorSeverity;\n}\n\nexport enum ErrorSeverity {\n error = 1,\n warning = 2,\n}\n\nexport enum FixCategory {\n isolated = 'isolated', // fix examines and changes at most one dependency or package.json, if any\n normal = 'normal', // fix potentially examines and changes multiple dependencies\n lockFile = 'lockFile', // fix examines and changes package-lock.json\n}\n\nexport interface ReviewConfiguration {\n rules?: { [id: string]: RuleConfiguration };\n}\n\nexport type RuleConfiguration =\n | Level\n | [Level]\n | [Level, { exclude?: string[] | Record<string, string[]> }];\n\nexport type Level = 'warn' | 'error' | 'off';\n"],"names":["ErrorSeverity","FixCategory","PackageRule"],"mappings":";;;;;;;;;;;QAkEYA;eAAAA;;QAKAC;eAAAA;;QAvEUC;eAAAA;;;AAAf,MAAeA;AAItB;AA8DO,IAAA,AAAKF,uCAAAA;;;WAAAA;;AAKL,IAAA,AAAKC,qCAAAA;;;;WAAAA"}
@@ -1,38 +1,6 @@
1
+ import type { entry } from './registry/task';
1
2
  import { Command } from './types';
2
- declare const options: {
3
- _: {
4
- description: string;
5
- array: true;
6
- string: true;
7
- };
8
- taskName: {
9
- string: true;
10
- hidden: true;
11
- };
12
- taskArgs: {
13
- array: true;
14
- string: true;
15
- hidden: true;
16
- };
17
- };
18
- export declare class RunTask extends Command<typeof options> {
19
- static readonly options: {
20
- _: {
21
- description: string;
22
- array: true;
23
- string: true;
24
- };
25
- taskName: {
26
- string: true;
27
- hidden: true;
28
- };
29
- taskArgs: {
30
- array: true;
31
- string: true;
32
- hidden: true;
33
- };
34
- };
3
+ export declare class RunTask extends Command<typeof entry> {
35
4
  execute(): Promise<void>;
36
5
  }
37
- export {};
38
6
  //# sourceMappingURL=run-task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-task.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run-task.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAkB,MAAM,SAAS,CAAC;AAElD,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;CAIa,CAAC;AAQ3B,qBAAa,OAAQ,SAAQ,OAAO,CAAC,OAAO,OAAO,CAAC;IAChD,MAAM,CAAC,QAAQ,CAAC,OAAO;;;;;;;;;;;;;;;MAAW;IAG5B,OAAO;CAchB"}
1
+ {"version":3,"file":"run-task.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run-task.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAQlC,qBAAa,OAAQ,SAAQ,OAAO,CAAC,OAAO,KAAK,CAAC;IAExC,OAAO;CAchB"}
@@ -11,19 +11,6 @@ Object.defineProperty(exports, "RunTask", {
11
11
  const _utils = require("../../utils");
12
12
  const _tasks = require("../tasks");
13
13
  const _types = require("./types");
14
- function _define_property(obj, key, value) {
15
- if (key in obj) {
16
- Object.defineProperty(obj, key, {
17
- value: value,
18
- enumerable: true,
19
- configurable: true,
20
- writable: true
21
- });
22
- } else {
23
- obj[key] = value;
24
- }
25
- return obj;
26
- }
27
14
  function _ts_decorate(decorators, target, key, desc) {
28
15
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29
16
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -33,22 +20,6 @@ function _ts_decorate(decorators, target, key, desc) {
33
20
  function _ts_metadata(k, v) {
34
21
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
35
22
  }
36
- const options = {
37
- _: {
38
- description: '<taskName> [taskArgs...]',
39
- array: true,
40
- string: true
41
- },
42
- taskName: {
43
- string: true,
44
- hidden: true
45
- },
46
- taskArgs: {
47
- array: true,
48
- string: true,
49
- hidden: true
50
- }
51
- };
52
23
  const tasks = {
53
24
  'tsc-compile-package': _tasks.TscCompilePackage,
54
25
  'swc-compile-package': _tasks.SwcCompilePackage,
@@ -72,7 +43,6 @@ class RunTask extends _types.Command {
72
43
  _utils.log.text(`\nSupported tasks: "${Object.keys(tasks).join('", "')}"`);
73
44
  }
74
45
  }
75
- _define_property(RunTask, "options", options);
76
46
  _ts_decorate([
77
47
  _utils.logErrors,
78
48
  _ts_metadata("design:type", Function),