@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
package/src/cli/index.ts CHANGED
@@ -5,7 +5,8 @@ import path from 'path';
5
5
  import yargs from 'yargs';
6
6
  import { hideBin } from 'yargs/helpers';
7
7
  import { CommandName, getStartupVersion, log } from '../utils';
8
- import { Command, getCommand } from './commands';
8
+ import { commandRegistry } from './commands/registry';
9
+ import type { CommandOptions } from './commands/types';
9
10
  import { checkStartupLocation, setNodeOptions } from './utils';
10
11
 
11
12
  const yargsInstance = yargs(hideBin(process.argv));
@@ -32,17 +33,15 @@ Object.values(CommandName)
32
33
  .parse();
33
34
 
34
35
  function addCommand(name: CommandName, y: typeof yargs) {
35
- const klass = getCommand(name)! as typeof Command;
36
+ const entry = commandRegistry[name];
37
+
36
38
  // eslint-disable-next-line @typescript-eslint/naming-convention
37
- const { description, options: { _, ...options } = {} } = klass;
39
+ const { description, options: { _, ...options } = {} } = entry;
38
40
  const nameWithArgs = name + (_?.description ? ` ${_.description}` : '');
39
- const groupedOptions = Object.entries(options).reduce(
40
- (result, [key, value]) => {
41
- result[kebabCase(key)] = { group: 'Command Options:', ...value };
42
- return result;
43
- },
44
- {} as NonNullable<typeof klass.options>
45
- );
41
+ const groupedOptions = Object.entries(options).reduce((result, [key, value]) => {
42
+ result[kebabCase(key)] = { group: 'Command Options:', ...value };
43
+ return result;
44
+ }, {} as CommandOptions);
46
45
  const handler = (argv: any) => handleCommand(name, argv);
47
46
  if (description) {
48
47
  y.command(nameWithArgs, description, groupedOptions, handler);
@@ -52,24 +51,26 @@ function addCommand(name: CommandName, y: typeof yargs) {
52
51
  return y;
53
52
  }
54
53
 
55
- function handleCommand(name: CommandName, argv: any) {
56
- const Command = getCommand(name)!;
57
- // eslint-disable-next-line @typescript-eslint/naming-convention
58
- const command = new Command({ ...argv, _: argv._.slice(1) });
54
+ async function handleCommand(name: CommandName, argv: any) {
55
+ const entry = commandRegistry[name];
59
56
 
60
57
  checkNodeVersion();
61
- checkStartupLocation(name, command);
58
+ checkStartupLocation(name, entry);
62
59
 
63
- if (setNodeOptions(name, command)) {
60
+ if (setNodeOptions(name, entry)) {
64
61
  log.debug('run', `Running ${name} in child process with amended NODE_OPTIONS`);
65
62
  execa(process.argv[0], process.argv.slice(1), { stdio: 'inherit' }).catch(reason => {
66
63
  process.exit(reason.exitCode);
67
64
  });
68
- } else {
69
- command.execute().catch(() => {
70
- process.exit(1);
71
- });
65
+ return;
72
66
  }
67
+
68
+ const CommandClass = await entry.load();
69
+ // eslint-disable-next-line @typescript-eslint/naming-convention
70
+ const command = new CommandClass({ ...argv, _: argv._.slice(1) });
71
+ command.execute().catch(() => {
72
+ process.exit(1);
73
+ });
73
74
  }
74
75
 
75
76
  function checkNodeVersion() {
@@ -1,5 +1,4 @@
1
1
  import { swcDir } from '@swc/cli';
2
- import debounce from 'debounce';
3
2
  import deepmerge from 'deepmerge';
4
3
  import { fs, vol } from 'memfs';
5
4
  import { getSwcCompilePackageConfiguration, log } from '../../../../utils';
@@ -7,7 +6,6 @@ import { TSConfig } from '../../../utils';
7
6
  import { getSwcOptions } from '../get-swc-options';
8
7
  import { SwcCompilePackage } from '../swc-compile-package';
9
8
 
10
- jest.mock('debounce', () => jest.fn());
11
9
  jest.mock('fs', () => fs);
12
10
  jest.mock('@swc/cli', () => ({
13
11
  swcDir: jest.fn(),
@@ -194,12 +192,7 @@ describe(`[startup] ${SwcCompilePackage.name} task`, () => {
194
192
  });
195
193
 
196
194
  describe('in watch mode', () => {
197
- beforeEach(() => {
198
- watch = true;
199
- jest.mocked(debounce).mockImplementation((fn: Function) => {
200
- return ((...args: any[]) => fn(...args)) as any;
201
- });
202
- });
195
+ beforeEach(() => (watch = true));
203
196
 
204
197
  test('calls swcDir with watch=true', () => {
205
198
  subject();
@@ -1,6 +1,5 @@
1
1
  import type { Options } from '@swc/cli';
2
2
  import { swcDir } from '@swc/cli';
3
- import debounce from 'debounce';
4
3
  import deepmerge from 'deepmerge';
5
4
  import { getFolders, getSwcCompilePackageConfiguration, getTsConfig, log } from '../../../utils';
6
5
  import { TSConfig } from '../../utils';
@@ -26,21 +25,12 @@ export class SwcCompilePackage extends Task {
26
25
  /* istanbul ignore next: debug only */
27
26
  log.debug('swc-compile-package:config', () => JSON.stringify(config, null, 2));
28
27
 
29
- /*
30
- * @swc/cli@0.5.0 doesn't implement "ignore" in watch mode so debounce
31
- * noisy output. See https://servicetitan.atlassian.net/browse/FAR-1592
32
- * and DEVELOPER_NOTES in file://./../../../package.json
33
- */
34
- const logSuccessResults = this.watch
35
- ? debounce(this.logCompletionResults.bind(this), 200)
36
- : this.logCompletionResults.bind(this);
37
-
38
28
  return new Promise((resolve, reject) => {
39
29
  swcDir({
40
30
  ...config,
41
31
  callbacks: {
42
32
  onSuccess: (e: { duration: number }) => {
43
- logSuccessResults(this.taskTimer.add(e.duration));
33
+ this.logCompletionResults(this.taskTimer.add(e.duration));
44
34
  if (!this.watch) {
45
35
  resolve();
46
36
  }
@@ -437,6 +437,23 @@ describe('[startup] Cli Utils', () => {
437
437
  );
438
438
  });
439
439
 
440
+ describe('with PORT environment variable', () => {
441
+ const port = '3456';
442
+
443
+ beforeEach(() => (process.env.PORT = port));
444
+
445
+ afterEach(() => delete process.env.PORT);
446
+
447
+ test('uses environment variable', async () => {
448
+ await subject();
449
+
450
+ expect(WebpackDevServer).toHaveBeenCalledWith(
451
+ expect.objectContaining({ port: Number(port) }),
452
+ expect.anything()
453
+ );
454
+ });
455
+ });
456
+
440
457
  describe('with "emitExposedDependencies"', () => {
441
458
  beforeEach(() => (options = { emitExposedDependencies: true }));
442
459
 
@@ -1,5 +1,5 @@
1
1
  import { log } from '../../../utils';
2
- import { Command } from '../../commands/types';
2
+ import { CommandEntry } from '../../commands/types';
3
3
  import { checkStartupLocation } from '../check-startup-location';
4
4
  import { npmGetProjectRoot } from '../cli-npm';
5
5
 
@@ -9,24 +9,18 @@ jest.mock('../../../utils', () => ({
9
9
  }));
10
10
  jest.mock('../cli-npm');
11
11
 
12
- class TestCommand extends Command {
13
- async execute() {
14
- // no-op
15
- }
16
- }
17
-
18
12
  describe('[startup] Cli Utils', () => {
19
13
  describe(checkStartupLocation.name, () => {
20
14
  const originalSkipLocationCheck = process.env.SKIP_STARTUP_LOCATION_CHECK;
21
15
  const commandName: any = 'test';
22
- let mockCommand: Command;
16
+ let entry: CommandEntry | undefined;
23
17
 
24
18
  beforeEach(() => {
25
19
  jest.clearAllMocks();
26
20
  jest.mocked(npmGetProjectRoot).mockReturnValue(process.cwd());
27
21
  jest.spyOn(process, 'exit').mockImplementation(jest.fn() as any);
28
22
  delete process.env.SKIP_STARTUP_LOCATION_CHECK;
29
- mockCommand = new TestCommand({});
23
+ entry = undefined;
30
24
  });
31
25
 
32
26
  afterAll(() => {
@@ -35,7 +29,7 @@ describe('[startup] Cli Utils', () => {
35
29
  }
36
30
  });
37
31
 
38
- const subject = () => checkStartupLocation(commandName, mockCommand);
32
+ const subject = () => checkStartupLocation(commandName, entry);
39
33
 
40
34
  function itDoesNothing() {
41
35
  test('does nothing', () => {
@@ -67,13 +61,7 @@ describe('[startup] Cli Utils', () => {
67
61
  });
68
62
 
69
63
  describe('when command allows running from global location', () => {
70
- beforeEach(() => {
71
- (mockCommand.constructor as any).allowRunFromGlobal = true;
72
- });
73
-
74
- afterEach(() => {
75
- delete (mockCommand.constructor as any).allowRunFromGlobal;
76
- });
64
+ beforeEach(() => (entry = { allowRunFromGlobal: true }));
77
65
 
78
66
  itDoesNothing();
79
67
  });
@@ -1,6 +1,6 @@
1
1
  import os from 'os';
2
2
  import { getConfigurationSafe } from '../../../utils';
3
- import { Command } from '../../commands/types';
3
+ import { CommandEntry } from '../../commands/types';
4
4
  import { setNodeOptions } from '../set-node-options';
5
5
 
6
6
  jest.mock('os', () => ({
@@ -12,37 +12,23 @@ jest.mock('../../../utils', () => ({
12
12
  getConfigurationSafe: jest.fn(() => ({})),
13
13
  }));
14
14
 
15
- class MockCommand extends Command {
16
- static get greedy() {
17
- return true;
18
- }
19
-
20
- async execute() {
21
- return Promise.resolve();
22
- }
23
- }
24
-
25
15
  describe(`[startup] utils:${setNodeOptions.name}`, () => {
26
16
  const MB = 1024 * 1024;
27
17
  const DEFAULT_SIZE = 8192;
28
18
  const originalNodeOptions = process.env.NODE_OPTIONS;
29
19
  const maxOldSpaceSize = `--max_old_space_size=${DEFAULT_SIZE}`;
30
20
  const commandName: any = 'mock';
31
- const command = new MockCommand({});
32
- let greedy: boolean;
21
+ let entry: CommandEntry | undefined;
33
22
 
34
23
  beforeEach(() => {
35
- greedy = true;
36
24
  delete process.env.NODE_OPTIONS;
37
25
  (os.totalmem as jest.Mock).mockReturnValue(16384 * MB);
38
- jest.spyOn(command.constructor as typeof Command, 'greedy', 'get').mockImplementation(
39
- () => greedy
40
- );
26
+ entry = { greedy: true };
41
27
  });
42
28
 
43
29
  afterAll(() => (process.env.NODE_OPTIONS = originalNodeOptions));
44
30
 
45
- const subject = () => setNodeOptions(commandName, command);
31
+ const subject = () => setNodeOptions(commandName, entry);
46
32
 
47
33
  test(`returns true and adds ${maxOldSpaceSize} to process.env.NODE_OPTIONS`, () => {
48
34
  expect(subject()).toBe(true);
@@ -51,7 +37,7 @@ describe(`[startup] utils:${setNodeOptions.name}`, () => {
51
37
  });
52
38
 
53
39
  describe('when the command is not greedy', () => {
54
- beforeEach(() => (greedy = false));
40
+ beforeEach(() => (entry = undefined));
55
41
 
56
42
  test('returns false and does not set NODE_OPTIONS', () => {
57
43
  expect(subject()).toBe(false);
@@ -157,7 +157,7 @@ async function runServe({ devServer = {}, ...config }: Configuration) {
157
157
  const compiler = createWebpackCompiler(config);
158
158
  const host = devServer.host ?? 'localhost';
159
159
  const port = await getPortPromise({
160
- port: Number(devServer.port) || 8080,
160
+ port: Number(process.env.PORT) || Number(devServer.port) || 8080,
161
161
  host,
162
162
  });
163
163
 
@@ -1,9 +1,11 @@
1
1
  import { CommandName, log } from '../../utils';
2
- import { Command } from '../commands';
2
+ import { CommandEntry } from '../commands/types';
3
3
  import { npmGetProjectRoot } from './cli-npm';
4
4
 
5
- export function checkStartupLocation(commandName: CommandName, command: Command) {
6
- const allowRunFromGlobal = (command.constructor as typeof Command).allowRunFromGlobal;
5
+ export function checkStartupLocation(
6
+ commandName: CommandName,
7
+ { allowRunFromGlobal }: CommandEntry = {}
8
+ ) {
7
9
  if (allowRunFromGlobal || process.env.SKIP_STARTUP_LOCATION_CHECK) {
8
10
  return;
9
11
  }
@@ -1,6 +1,6 @@
1
1
  import os from 'os';
2
2
  import { CommandName, getConfigurationSafe } from '../../utils';
3
- import { Command } from '../commands';
3
+ import { CommandEntry } from '../commands/types';
4
4
 
5
5
  const MAX_OLD_SPACE_SIZE_OPTION = 'max_old_space_size';
6
6
  const DEFAULT_MAX_OLD_SPACE_SIZE_MB = 8192;
@@ -8,10 +8,10 @@ const MIN_REMAINING_MEMORY_MB = 512;
8
8
 
9
9
  /**
10
10
  * Apply global defaults and custom CLI configuration to process.env.NODE_OPTIONS
11
- * @param command - the command being executed
11
+ * @param entry - the command's registry entry
12
12
  * @returns whether process's NODE_OPTIONS were changed
13
13
  */
14
- export function setNodeOptions(commandName: CommandName, command: Command) {
14
+ export function setNodeOptions(commandName: CommandName, { greedy }: CommandEntry = {}) {
15
15
  const cliConfig = getConfigurationSafe();
16
16
  const cmdConfig = cliConfig[commandName];
17
17
 
@@ -25,7 +25,6 @@ export function setNodeOptions(commandName: CommandName, command: Command) {
25
25
  }, oldNodeOptions)
26
26
  .trim();
27
27
 
28
- const greedy = (command.constructor as typeof Command).greedy;
29
28
  const newNodeOptions = ensureMaxOldSpaceSize(mergedOptions, greedy);
30
29
  if (newNodeOptions !== oldNodeOptions) {
31
30
  process.env.NODE_OPTIONS = newNodeOptions;
@@ -1,118 +1,47 @@
1
- import { fs, vol } from 'memfs';
2
1
  import { getPackageData, getPackageDependencyVersion } from '../get-package-data';
2
+ import { readJson } from '../read-json';
3
3
 
4
- jest.mock('fs', () => fs);
4
+ jest.mock('../read-json', () => ({ readJson: jest.fn() }));
5
5
 
6
6
  describe(`[startup] Utils`, () => {
7
7
  describe(`${getPackageData.name}`, () => {
8
- afterEach(() => vol.reset());
9
-
10
- const subject = () => getPackageData();
11
-
12
- describe('when root package.json with workspaces exists', () => {
13
- beforeEach(() => {
14
- vol.fromJSON({
15
- './package.json': JSON.stringify({
16
- name: 'packageName',
17
- dependencies: { foo: '1.1.0', baz: '3.0.0' },
18
- }),
19
- '../package.json': JSON.stringify({
20
- workspaces: ['packages/*'],
21
- dependencies: { foo: '1.0.0', bar: '2.0.0' },
22
- }),
23
- });
24
- });
25
-
26
- test('returns merged dependencies (local overrides root)', () => {
27
- expect(subject()).toEqual({
28
- name: 'packageName',
29
- dependencies: { foo: '1.1.0', bar: '2.0.0', baz: '3.0.0' },
30
- });
31
- });
32
- });
33
-
34
- describe('when no root package.json found', () => {
35
- beforeEach(() => {
36
- vol.fromJSON({
37
- './package.json': JSON.stringify({
38
- name: 'rootPackage',
39
- workspaces: ['packages/*'],
40
- dependencies: { foo: '1.0.0' },
41
- }),
42
- });
43
- });
44
-
45
- test('returns only local dependencies', () => {
46
- expect(subject()).toEqual({
47
- name: 'rootPackage',
48
- dependencies: { foo: '1.0.0' },
49
- });
50
- });
51
- });
52
-
53
- describe('when root has lerna.json with packages instead of workspaces', () => {
54
- beforeEach(() => {
55
- vol.fromJSON({
56
- './package.json': JSON.stringify({
57
- name: 'packageName',
58
- version: '2.0.0',
59
- dependencies: { foo: '1.0.0' },
60
- }),
61
- '../package.json': JSON.stringify({
62
- dependencies: { bar: '2.0.0' },
63
- }),
64
- '../lerna.json': JSON.stringify({
65
- packages: ['packages/*'],
66
- }),
67
- });
68
- });
69
-
70
- test('returns dependencies from root discovered via lerna.json', () => {
71
- expect(subject()).toEqual({
8
+ const packageJson = './package.json';
9
+ const ancestorPackageJson = '../../package.json';
10
+ let packages: Record<string, Record<string, any>>;
11
+
12
+ beforeEach(() => {
13
+ packages = {
14
+ [ancestorPackageJson]: { dependencies: { foo: '1.0.0', bar: '2.0.0' } },
15
+ [packageJson]: {
72
16
  name: 'packageName',
73
- version: '2.0.0',
74
- dependencies: { bar: '2.0.0', foo: '1.0.0' },
75
- });
76
- });
17
+ dependencies: { foo: '1.1.0', baz: '3.0.0' },
18
+ },
19
+ };
20
+ jest.mocked(readJson).mockImplementation(path => packages[path] ?? {});
77
21
  });
78
22
 
79
- describe('when root has lerna.json but no package.json at root level', () => {
80
- beforeEach(() => {
81
- vol.fromJSON({
82
- './package.json': JSON.stringify({
83
- name: 'packageName',
84
- version: '3.0.0',
85
- dependencies: { foo: '1.0.0' },
86
- }),
87
- '../lerna.json': JSON.stringify({
88
- packages: ['packages/*'],
89
- }),
90
- });
91
- });
23
+ const subject = () => getPackageData();
92
24
 
93
- test('returns only local dependencies', () => {
94
- expect(subject()).toEqual({
95
- name: 'packageName',
96
- version: '3.0.0',
97
- dependencies: { foo: '1.0.0' },
98
- });
25
+ test(`returns merged dependencies from ${packageJson} and ${ancestorPackageJson}`, () => {
26
+ expect(subject()).toEqual({
27
+ name: packages[packageJson].name,
28
+ dependencies: {
29
+ ...packages[ancestorPackageJson].dependencies,
30
+ ...packages[packageJson].dependencies,
31
+ },
99
32
  });
100
33
  });
101
34
 
102
- describe('when package.json contains sharedDependencies', () => {
35
+ describe(`when ${packageJson} contains sharedDependencies`, () => {
103
36
  const sharedDependencies = { react: 'SharedDependencies.React' };
104
37
 
105
38
  beforeEach(() => {
106
- vol.fromJSON({
107
- './package.json': JSON.stringify({
108
- name: 'packageName',
109
- dependencies: { foo: '1.0.0' },
110
- cli: { webpack: { 'shared-dependencies': sharedDependencies } },
111
- }),
39
+ Object.assign(packages[packageJson], {
40
+ cli: { webpack: { 'shared-dependencies': sharedDependencies } },
112
41
  });
113
42
  });
114
43
 
115
- test('result contains sharedDependencies', () => {
44
+ test('returns sharedDependencies', () => {
116
45
  expect(subject()).toEqual(expect.objectContaining({ sharedDependencies }));
117
46
  });
118
47
  });
@@ -1,4 +1,4 @@
1
- import path from 'node:path';
1
+ import path from 'path';
2
2
 
3
3
  export function findUp<T>(callback: (directory: string) => T | undefined) {
4
4
  let directory = path.resolve('./');
@@ -1,6 +1,4 @@
1
- import path from 'node:path';
2
- import { findUp } from './find-up';
3
- import { readJson, readJsonSafe } from './read-json';
1
+ import { readJson } from './read-json';
4
2
 
5
3
  interface PackageData {
6
4
  name: string;
@@ -16,36 +14,13 @@ export function getPackageData(): PackageData {
16
14
  name: packageJson.name,
17
15
  version: packageJson.version,
18
16
  dependencies: {
19
- ...findRootDependencies(),
17
+ ...readJson('../../package.json').dependencies,
20
18
  ...packageJson.dependencies,
21
19
  },
22
20
  sharedDependencies: packageJson.cli?.webpack?.['shared-dependencies'],
23
21
  };
24
22
  }
25
23
 
26
- function findRootDependencies() {
27
- const cwd = path.resolve('./');
28
- const root = findUp(directory => {
29
- if (directory === cwd) {
30
- return undefined;
31
- }
32
- const pkgPath = path.join(directory, 'package.json');
33
- const pkg = readJsonSafe<{ workspaces?: string[]; dependencies?: Record<string, string> }>(
34
- pkgPath
35
- );
36
- if (pkg?.workspaces) {
37
- return pkg;
38
- }
39
-
40
- const lernaPath = path.join(directory, 'lerna.json');
41
- if (readJsonSafe<{ packages?: string[] }>(lernaPath)?.packages) {
42
- return pkg ?? {};
43
- }
44
- });
45
-
46
- return root?.dependencies ?? {};
47
- }
48
-
49
24
  export function getPackageDependencyVersion(dependency: string, defaultVersion?: string) {
50
25
  try {
51
26
  const { version } = require(`${dependency}/package.json`);
@@ -1,4 +1,3 @@
1
- export * from './find-package-lock';
2
1
  export * from './find-packages';
3
2
  export * from './find-up';
4
3
  export * from './format-duration';
@@ -11,7 +10,6 @@ export * from './get-folders';
11
10
  export * from './get-jest-config';
12
11
  export * from './get-package-data';
13
12
  export * from './get-package-name';
14
- export * from './get-package-version';
15
13
  export * from './get-packages';
16
14
  export * from './get-startup-version';
17
15
  export * from './get-tsconfig';
@@ -23,5 +21,4 @@ export * from './omit';
23
21
  export * from './pick';
24
22
  export * from './prettify';
25
23
  export * from './read-json';
26
- export * from './resolve-package-lock-entry';
27
24
  export * from './to-array';
@@ -1,5 +1,7 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
1
3
  import { Configuration } from 'webpack';
2
- import { findPackageLock } from '../../utils';
4
+ import { findUp } from '../../utils';
3
5
  import { Context, Overrides } from './types';
4
6
 
5
7
  type Config = Configuration['cache'];
@@ -26,3 +28,10 @@ export function cacheConfig(context: Context, _overrides: Overrides): Result {
26
28
  infrastructureLogging: { level: 'error' },
27
29
  };
28
30
  }
31
+
32
+ function findPackageLock() {
33
+ return findUp(directory => {
34
+ const lockFile = path.resolve(path.join(directory), 'package-lock.json');
35
+ return fs.existsSync(lockFile) ? lockFile : undefined;
36
+ });
37
+ }
@@ -6,36 +6,24 @@ jest.mock('fs', () => fs);
6
6
  describe(`[startup] ${getLaunchDarklySdkVersion.name}`, () => {
7
7
  const launchDarklySdkVersion = '1.2.3';
8
8
 
9
- afterEach(() => vol.reset());
10
-
11
9
  const subject = () => getLaunchDarklySdkVersion();
12
10
 
13
- describe('when package is not in package-lock.json', () => {
14
- beforeEach(() => {
15
- vol.fromJSON({
16
- './package-lock.json': JSON.stringify({ packages: {} }),
17
- });
18
- });
19
-
20
- test('returns undefined', () => {
21
- expect(subject()).toBeUndefined();
22
- });
11
+ test('returns undefined', () => {
12
+ expect(subject()).toBeUndefined();
23
13
  });
24
14
 
25
- describe('when package is in package-lock.json', () => {
15
+ describe('when package is present', () => {
26
16
  beforeEach(() => {
27
17
  vol.fromJSON({
28
- './package-lock.json': JSON.stringify({
29
- packages: {
30
- 'node_modules/launchdarkly-js-client-sdk': {
31
- version: launchDarklySdkVersion,
32
- },
33
- },
18
+ 'node_modules/launchdarkly-js-client-sdk/package.json': JSON.stringify({
19
+ version: launchDarklySdkVersion,
34
20
  }),
35
21
  });
36
22
  });
37
23
 
38
- test('returns version from package-lock.json', () => {
24
+ afterEach(() => vol.reset());
25
+
26
+ test('returns version from launchdarkly-js-client-sdk package', () => {
39
27
  expect(subject()).toEqual(launchDarklySdkVersion);
40
28
  });
41
29
  });
@@ -6,39 +6,19 @@ jest.mock('fs', () => fs);
6
6
  describe(`[startup] ${getWebComponentsVersion.name}`, () => {
7
7
  const webComponentsVersion = '1.2.3';
8
8
 
9
- afterEach(() => vol.reset());
10
-
11
- const subject = () => getWebComponentsVersion();
12
-
13
- describe('when package is in package-lock.json', () => {
14
- beforeEach(() => {
15
- vol.fromJSON({
16
- './package-lock.json': JSON.stringify({
17
- packages: {
18
- 'node_modules/@servicetitan/web-components': {
19
- version: webComponentsVersion,
20
- },
21
- },
22
- }),
23
- });
24
- });
25
-
26
- test('returns version from package-lock.json', () => {
27
- expect(subject()).toEqual(webComponentsVersion);
9
+ beforeEach(() => {
10
+ vol.fromJSON({
11
+ 'packages/web-components/package.json': JSON.stringify({
12
+ version: webComponentsVersion,
13
+ }),
28
14
  });
29
15
  });
30
16
 
31
- describe('when package is not in package-lock.json', () => {
32
- beforeEach(() => {
33
- vol.fromJSON({
34
- './package-lock.json': JSON.stringify({ packages: {} }),
35
- });
36
- });
17
+ afterEach(() => vol.reset());
37
18
 
38
- test('throws', () => {
39
- expect(subject).toThrow(
40
- 'Unable to resolve @servicetitan/web-components version from package-lock.json'
41
- );
42
- });
19
+ const subject = () => getWebComponentsVersion();
20
+
21
+ test('returns version from @servicetitan/web-components package', () => {
22
+ expect(subject()).toEqual(webComponentsVersion);
43
23
  });
44
24
  });