@interopio/iocd-cli 0.0.1

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 (297) hide show
  1. package/README.md +40 -0
  2. package/dist/cli.d.ts +3 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +96 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/apps.command.d.ts +3 -0
  7. package/dist/commands/apps.command.d.ts.map +1 -0
  8. package/dist/commands/apps.command.js +110 -0
  9. package/dist/commands/apps.command.js.map +1 -0
  10. package/dist/commands/components.command.d.ts +3 -0
  11. package/dist/commands/components.command.d.ts.map +1 -0
  12. package/dist/commands/components.command.js +116 -0
  13. package/dist/commands/components.command.js.map +1 -0
  14. package/dist/commands/create.command.d.ts +3 -0
  15. package/dist/commands/create.command.d.ts.map +1 -0
  16. package/dist/commands/create.command.js +19 -0
  17. package/dist/commands/create.command.js.map +1 -0
  18. package/dist/commands/dev.command.d.ts +4 -0
  19. package/dist/commands/dev.command.d.ts.map +1 -0
  20. package/dist/commands/dev.command.js +25 -0
  21. package/dist/commands/dev.command.js.map +1 -0
  22. package/dist/commands/installer.command.d.ts +3 -0
  23. package/dist/commands/installer.command.d.ts.map +1 -0
  24. package/dist/commands/installer.command.js +19 -0
  25. package/dist/commands/installer.command.js.map +1 -0
  26. package/dist/commands/license.command.d.ts +3 -0
  27. package/dist/commands/license.command.d.ts.map +1 -0
  28. package/dist/commands/license.command.js +23 -0
  29. package/dist/commands/license.command.js.map +1 -0
  30. package/dist/commands/modifications.command.d.ts +3 -0
  31. package/dist/commands/modifications.command.d.ts.map +1 -0
  32. package/dist/commands/modifications.command.js +28 -0
  33. package/dist/commands/modifications.command.js.map +1 -0
  34. package/dist/commands/setup.command.d.ts +4 -0
  35. package/dist/commands/setup.command.d.ts.map +1 -0
  36. package/dist/commands/setup.command.js +34 -0
  37. package/dist/commands/setup.command.js.map +1 -0
  38. package/dist/services/app-builder.service.d.ts +2 -0
  39. package/dist/services/app-builder.service.d.ts.map +1 -0
  40. package/dist/services/app-builder.service.js +3 -0
  41. package/dist/services/app-builder.service.js.map +1 -0
  42. package/dist/services/app.service.d.ts +74 -0
  43. package/dist/services/app.service.d.ts.map +1 -0
  44. package/dist/services/app.service.js +328 -0
  45. package/dist/services/app.service.js.map +1 -0
  46. package/dist/services/components/component.config.d.ts +11 -0
  47. package/dist/services/components/component.config.d.ts.map +1 -0
  48. package/dist/services/components/component.config.js +101 -0
  49. package/dist/services/components/component.config.js.map +1 -0
  50. package/dist/services/components/component.d.ts +12 -0
  51. package/dist/services/components/component.d.ts.map +1 -0
  52. package/dist/services/components/component.js +3 -0
  53. package/dist/services/components/component.js.map +1 -0
  54. package/dist/services/components/components.registry.d.ts +40 -0
  55. package/dist/services/components/components.registry.d.ts.map +1 -0
  56. package/dist/services/components/components.registry.js +72 -0
  57. package/dist/services/components/components.registry.js.map +1 -0
  58. package/dist/services/components/components.service.d.ts +20 -0
  59. package/dist/services/components/components.service.d.ts.map +1 -0
  60. package/dist/services/components/components.service.js +171 -0
  61. package/dist/services/components/components.service.js.map +1 -0
  62. package/dist/services/components/file.helper.d.ts +12 -0
  63. package/dist/services/components/file.helper.d.ts.map +1 -0
  64. package/dist/services/components/file.helper.js +124 -0
  65. package/dist/services/components/file.helper.js.map +1 -0
  66. package/dist/services/components/platform.utils.d.ts +72 -0
  67. package/dist/services/components/platform.utils.d.ts.map +1 -0
  68. package/dist/services/components/platform.utils.js +156 -0
  69. package/dist/services/components/platform.utils.js.map +1 -0
  70. package/dist/services/components/stores/github.store.d.ts +35 -0
  71. package/dist/services/components/stores/github.store.d.ts.map +1 -0
  72. package/dist/services/components/stores/github.store.js +157 -0
  73. package/dist/services/components/stores/github.store.js.map +1 -0
  74. package/dist/services/components/stores/local.store.d.ts +69 -0
  75. package/dist/services/components/stores/local.store.d.ts.map +1 -0
  76. package/dist/services/components/stores/local.store.js +300 -0
  77. package/dist/services/components/stores/local.store.js.map +1 -0
  78. package/dist/services/components/stores/s3.store.d.ts +98 -0
  79. package/dist/services/components/stores/s3.store.d.ts.map +1 -0
  80. package/dist/services/components/stores/s3.store.js +368 -0
  81. package/dist/services/components/stores/s3.store.js.map +1 -0
  82. package/dist/services/components/stores/store.d.ts +11 -0
  83. package/dist/services/components/stores/store.d.ts.map +1 -0
  84. package/dist/services/components/stores/store.js +3 -0
  85. package/dist/services/components/stores/store.js.map +1 -0
  86. package/dist/services/config/cli.config.d.ts +57 -0
  87. package/dist/services/config/cli.config.d.ts.map +1 -0
  88. package/dist/services/config/cli.config.js +3 -0
  89. package/dist/services/config/cli.config.js.map +1 -0
  90. package/dist/services/config/config.service.d.ts +14 -0
  91. package/dist/services/config/config.service.d.ts.map +1 -0
  92. package/dist/services/config/config.service.js +170 -0
  93. package/dist/services/config/config.service.js.map +1 -0
  94. package/dist/services/create.service.d.ts +58 -0
  95. package/dist/services/create.service.d.ts.map +1 -0
  96. package/dist/services/create.service.js +318 -0
  97. package/dist/services/create.service.js.map +1 -0
  98. package/dist/services/dev.service.d.ts +2 -0
  99. package/dist/services/dev.service.d.ts.map +1 -0
  100. package/dist/services/dev.service.js +78 -0
  101. package/dist/services/dev.service.js.map +1 -0
  102. package/dist/services/installer/electronBuilder.d.ts +2 -0
  103. package/dist/services/installer/electronBuilder.d.ts.map +1 -0
  104. package/dist/services/installer/electronBuilder.js +3 -0
  105. package/dist/services/installer/electronBuilder.js.map +1 -0
  106. package/dist/services/installer/electronForge.d.ts +2 -0
  107. package/dist/services/installer/electronForge.d.ts.map +1 -0
  108. package/dist/services/installer/electronForge.js +248 -0
  109. package/dist/services/installer/electronForge.js.map +1 -0
  110. package/dist/services/installer/installer.service.d.ts +5 -0
  111. package/dist/services/installer/installer.service.d.ts.map +1 -0
  112. package/dist/services/installer/installer.service.js +101 -0
  113. package/dist/services/installer/installer.service.js.map +1 -0
  114. package/dist/services/installer/macOS.helper.d.ts +3 -0
  115. package/dist/services/installer/macOS.helper.d.ts.map +1 -0
  116. package/dist/services/installer/macOS.helper.js +244 -0
  117. package/dist/services/installer/macOS.helper.js.map +1 -0
  118. package/dist/services/installer/prerequisites.d.ts +2 -0
  119. package/dist/services/installer/prerequisites.d.ts.map +1 -0
  120. package/dist/services/installer/prerequisites.js +73 -0
  121. package/dist/services/installer/prerequisites.js.map +1 -0
  122. package/dist/services/installer/windows.helper.d.ts +10 -0
  123. package/dist/services/installer/windows.helper.d.ts.map +1 -0
  124. package/dist/services/installer/windows.helper.js +394 -0
  125. package/dist/services/installer/windows.helper.js.map +1 -0
  126. package/dist/services/license.service.d.ts +7 -0
  127. package/dist/services/license.service.d.ts.map +1 -0
  128. package/dist/services/license.service.js +14 -0
  129. package/dist/services/license.service.js.map +1 -0
  130. package/dist/services/modifications/macOS.helper.d.ts +13 -0
  131. package/dist/services/modifications/macOS.helper.d.ts.map +1 -0
  132. package/dist/services/modifications/macOS.helper.js +274 -0
  133. package/dist/services/modifications/macOS.helper.js.map +1 -0
  134. package/dist/services/modifications/modifications.service.d.ts +2 -0
  135. package/dist/services/modifications/modifications.service.d.ts.map +1 -0
  136. package/dist/services/modifications/modifications.service.js +376 -0
  137. package/dist/services/modifications/modifications.service.js.map +1 -0
  138. package/dist/services/modifications/windows.helper.d.ts +2 -0
  139. package/dist/services/modifications/windows.helper.d.ts.map +1 -0
  140. package/dist/services/modifications/windows.helper.js +83 -0
  141. package/dist/services/modifications/windows.helper.js.map +1 -0
  142. package/dist/services/template.service.d.ts +116 -0
  143. package/dist/services/template.service.d.ts.map +1 -0
  144. package/dist/services/template.service.js +354 -0
  145. package/dist/services/template.service.js.map +1 -0
  146. package/dist/templates/auto-tests/README.md +31 -0
  147. package/dist/templates/auto-tests/playwright.config.js +19 -0
  148. package/dist/templates/auto-tests/template.json +12 -0
  149. package/dist/templates/auto-tests/tests/basic.test.js +15 -0
  150. package/dist/templates/ioconnect-desktop/.env.example +29 -0
  151. package/dist/templates/ioconnect-desktop/.github/workflows/build-installers.yml +170 -0
  152. package/dist/templates/ioconnect-desktop/LICENSE +0 -0
  153. package/dist/templates/ioconnect-desktop/README.md +0 -0
  154. package/dist/templates/ioconnect-desktop/config/mac-build/entitlements.mac.plist +44 -0
  155. package/dist/templates/ioconnect-desktop/config/win-build/template.nuspectemplate +33 -0
  156. package/dist/templates/ioconnect-desktop/forge.config.js +47 -0
  157. package/dist/templates/ioconnect-desktop/iocd.cli.config.json +45 -0
  158. package/dist/templates/ioconnect-desktop/modifications/iocd/assets/images/logo.icns +0 -0
  159. package/dist/templates/ioconnect-desktop/modifications/iocd/assets/images/logo.ico +0 -0
  160. package/dist/templates/ioconnect-desktop/modifications/iocd/assets/images/logo.png +0 -0
  161. package/dist/templates/ioconnect-desktop/modifications/iocd/config/system.json.merge +3 -0
  162. package/dist/templates/ioconnect-desktop/package.json +43 -0
  163. package/dist/templates/ioconnect-desktop/template.json +7 -0
  164. package/dist/templates/launchpad/apps/launchpad/.eslintrc.json +3 -0
  165. package/dist/templates/launchpad/apps/launchpad/config/iocd.app.def.dev.json +57 -0
  166. package/dist/templates/launchpad/apps/launchpad/config/iocd.app.def.prod.json +2 -0
  167. package/dist/templates/launchpad/apps/launchpad/config/iocd.system.dev.json +3 -0
  168. package/dist/templates/launchpad/apps/launchpad/config/iocd.system.prod.json +3 -0
  169. package/dist/templates/launchpad/apps/launchpad/index.html +16 -0
  170. package/dist/templates/launchpad/apps/launchpad/iocd.app.json +32 -0
  171. package/dist/templates/launchpad/apps/launchpad/package-lock.json +2778 -0
  172. package/dist/templates/launchpad/apps/launchpad/package.json +21 -0
  173. package/dist/templates/launchpad/apps/launchpad/public/favicon.ico +0 -0
  174. package/dist/templates/launchpad/apps/launchpad/src/app/app.tsx +39 -0
  175. package/dist/templates/launchpad/apps/launchpad/src/app/constants.ts +27 -0
  176. package/dist/templates/launchpad/apps/launchpad/src/components/logo.tsx +11 -0
  177. package/dist/templates/launchpad/apps/launchpad/src/components/main-context-menu.tsx +162 -0
  178. package/dist/templates/launchpad/apps/launchpad/src/components/notifications-button.tsx +44 -0
  179. package/dist/templates/launchpad/apps/launchpad/src/main.tsx +6 -0
  180. package/dist/templates/launchpad/apps/launchpad/src/styles.css +17 -0
  181. package/dist/templates/launchpad/apps/launchpad/tsconfig.json +10 -0
  182. package/dist/templates/launchpad/apps/launchpad/vite.config.ts +13 -0
  183. package/dist/templates/launchpad/template.json +12 -0
  184. package/dist/templates/splash-screen/apps/splash-screen/README.md +119 -0
  185. package/dist/templates/splash-screen/apps/splash-screen/config/system-dev.json +9 -0
  186. package/dist/templates/splash-screen/apps/splash-screen/config/system-prod.json +8 -0
  187. package/dist/templates/splash-screen/apps/splash-screen/index.html +55 -0
  188. package/dist/templates/splash-screen/apps/splash-screen/iocd.app.json +20 -0
  189. package/dist/templates/splash-screen/apps/splash-screen/package-lock.json +1059 -0
  190. package/dist/templates/splash-screen/apps/splash-screen/package.json +17 -0
  191. package/dist/templates/splash-screen/apps/splash-screen/public/assets/fonts/PTSans-Regular.ttf +0 -0
  192. package/dist/templates/splash-screen/apps/splash-screen/public/assets/images/logo-light.svg +85 -0
  193. package/dist/templates/splash-screen/apps/splash-screen/public/assets/images/splash-bg.png +0 -0
  194. package/dist/templates/splash-screen/apps/splash-screen/public/assets/styles/style.css +149 -0
  195. package/dist/templates/splash-screen/apps/splash-screen/public/assets/styles/style.css.map +1 -0
  196. package/dist/templates/splash-screen/apps/splash-screen/public/assets/styles/style.scss +90 -0
  197. package/dist/templates/splash-screen/apps/splash-screen/src/main.ts +93 -0
  198. package/dist/templates/splash-screen/apps/splash-screen/src/types.ts +28 -0
  199. package/dist/templates/splash-screen/apps/splash-screen/tsconfig.json +25 -0
  200. package/dist/templates/splash-screen/apps/splash-screen/vite.config.ts +27 -0
  201. package/dist/templates/splash-screen/template.json +12 -0
  202. package/dist/templates/web-groups/apps/web-groups/README.md +15 -0
  203. package/dist/templates/web-groups/apps/web-groups/config/web-group-dev.json +13 -0
  204. package/dist/templates/web-groups/apps/web-groups/config/web-group-prod.json +12 -0
  205. package/dist/templates/web-groups/apps/web-groups/index.html +18 -0
  206. package/dist/templates/web-groups/apps/web-groups/iocd.app.json +24 -0
  207. package/dist/templates/web-groups/apps/web-groups/package.json +28 -0
  208. package/dist/templates/web-groups/apps/web-groups/public/favicon.ico +0 -0
  209. package/dist/templates/web-groups/apps/web-groups/public/logo192.png +0 -0
  210. package/dist/templates/web-groups/apps/web-groups/public/logo512.png +0 -0
  211. package/dist/templates/web-groups/apps/web-groups/public/manifest.json +25 -0
  212. package/dist/templates/web-groups/apps/web-groups/public/robots.txt +3 -0
  213. package/dist/templates/web-groups/apps/web-groups/src/App.css +38 -0
  214. package/dist/templates/web-groups/apps/web-groups/src/App.tsx +11 -0
  215. package/dist/templates/web-groups/apps/web-groups/src/index.css +13 -0
  216. package/dist/templates/web-groups/apps/web-groups/src/index.tsx +25 -0
  217. package/dist/templates/web-groups/apps/web-groups/src/logo.svg +1 -0
  218. package/dist/templates/web-groups/apps/web-groups/src/reportWebVitals.ts +15 -0
  219. package/dist/templates/web-groups/apps/web-groups/tsconfig.json +26 -0
  220. package/dist/templates/web-groups/apps/web-groups/vite.config.ts +8 -0
  221. package/dist/templates/web-groups/template.json +12 -0
  222. package/dist/templates/workspaces/apps/workspaces/README.md +15 -0
  223. package/dist/templates/workspaces/apps/workspaces/config/workspaces-dev.json +21 -0
  224. package/dist/templates/workspaces/apps/workspaces/config/workspaces-prod.json +20 -0
  225. package/dist/templates/workspaces/apps/workspaces/index.html +17 -0
  226. package/dist/templates/workspaces/apps/workspaces/iocd.app.json +24 -0
  227. package/dist/templates/workspaces/apps/workspaces/package.json +29 -0
  228. package/dist/templates/workspaces/apps/workspaces/public/favicon.ico +0 -0
  229. package/dist/templates/workspaces/apps/workspaces/public/logo192.png +0 -0
  230. package/dist/templates/workspaces/apps/workspaces/public/logo512.png +0 -0
  231. package/dist/templates/workspaces/apps/workspaces/public/manifest.json +25 -0
  232. package/dist/templates/workspaces/apps/workspaces/public/robots.txt +3 -0
  233. package/dist/templates/workspaces/apps/workspaces/src/AddWindowButton.tsx +33 -0
  234. package/dist/templates/workspaces/apps/workspaces/src/AfterTabs.tsx +27 -0
  235. package/dist/templates/workspaces/apps/workspaces/src/App.css +38 -0
  236. package/dist/templates/workspaces/apps/workspaces/src/App.tsx +103 -0
  237. package/dist/templates/workspaces/apps/workspaces/src/GroupHeaderButtons.tsx +9 -0
  238. package/dist/templates/workspaces/apps/workspaces/src/index.css +4 -0
  239. package/dist/templates/workspaces/apps/workspaces/src/index.tsx +28 -0
  240. package/dist/templates/workspaces/apps/workspaces/src/logo.svg +7 -0
  241. package/dist/templates/workspaces/apps/workspaces/src/reportWebVitals.ts +15 -0
  242. package/dist/templates/workspaces/apps/workspaces/src/setupTests.ts +5 -0
  243. package/dist/templates/workspaces/apps/workspaces/src/useAddWindowButtonVisible.tsx +30 -0
  244. package/dist/templates/workspaces/apps/workspaces/tsconfig.json +26 -0
  245. package/dist/templates/workspaces/apps/workspaces/vite.config.ts +8 -0
  246. package/dist/templates/workspaces/template.json +12 -0
  247. package/dist/tools/rcedit-x64.exe +0 -0
  248. package/dist/utils/colors.d.ts +57 -0
  249. package/dist/utils/colors.d.ts.map +1 -0
  250. package/dist/utils/colors.js +151 -0
  251. package/dist/utils/colors.js.map +1 -0
  252. package/dist/utils/deep.merge.d.ts +5 -0
  253. package/dist/utils/deep.merge.d.ts.map +1 -0
  254. package/dist/utils/deep.merge.js +27 -0
  255. package/dist/utils/deep.merge.js.map +1 -0
  256. package/dist/utils/electron.builder.config.helper.d.ts +6 -0
  257. package/dist/utils/electron.builder.config.helper.d.ts.map +1 -0
  258. package/dist/utils/electron.builder.config.helper.js +25 -0
  259. package/dist/utils/electron.builder.config.helper.js.map +1 -0
  260. package/dist/utils/ensure.iocd.exists.d.ts +2 -0
  261. package/dist/utils/ensure.iocd.exists.d.ts.map +1 -0
  262. package/dist/utils/ensure.iocd.exists.js +27 -0
  263. package/dist/utils/ensure.iocd.exists.js.map +1 -0
  264. package/dist/utils/error.handler.d.ts +30 -0
  265. package/dist/utils/error.handler.d.ts.map +1 -0
  266. package/dist/utils/error.handler.js +104 -0
  267. package/dist/utils/error.handler.js.map +1 -0
  268. package/dist/utils/file.d.ts +10 -0
  269. package/dist/utils/file.d.ts.map +1 -0
  270. package/dist/utils/file.js +40 -0
  271. package/dist/utils/file.js.map +1 -0
  272. package/dist/utils/find.package.dir.d.ts +2 -0
  273. package/dist/utils/find.package.dir.d.ts.map +1 -0
  274. package/dist/utils/find.package.dir.js +23 -0
  275. package/dist/utils/find.package.dir.js.map +1 -0
  276. package/dist/utils/logger.d.ts +19 -0
  277. package/dist/utils/logger.d.ts.map +1 -0
  278. package/dist/utils/logger.js +184 -0
  279. package/dist/utils/logger.js.map +1 -0
  280. package/dist/utils/nextSteps.d.ts +2 -0
  281. package/dist/utils/nextSteps.d.ts.map +1 -0
  282. package/dist/utils/nextSteps.js +44 -0
  283. package/dist/utils/nextSteps.js.map +1 -0
  284. package/dist/utils/pacakge.json.helper.d.ts +9 -0
  285. package/dist/utils/pacakge.json.helper.d.ts.map +1 -0
  286. package/dist/utils/pacakge.json.helper.js +71 -0
  287. package/dist/utils/pacakge.json.helper.js.map +1 -0
  288. package/dist/utils/path.d.ts +19 -0
  289. package/dist/utils/path.d.ts.map +1 -0
  290. package/dist/utils/path.js +81 -0
  291. package/dist/utils/path.js.map +1 -0
  292. package/dist/utils/version.d.ts +2 -0
  293. package/dist/utils/version.d.ts.map +1 -0
  294. package/dist/utils/version.js +16 -0
  295. package/dist/utils/version.js.map +1 -0
  296. package/package.json +69 -0
  297. package/tools/rcedit-x64.exe +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.command.js","sourceRoot":"","sources":["../../src/commands/setup.command.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,4CAAyC;AACzC,0DAAsD;AACtD,kFAA8E;AAC9E,yDAAqD;AACrD,kDAAoD;AAGpD,MAAM,MAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC;AAEvB,QAAA,WAAW,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AAEQ,QAAA,YAAY,GAAG,IAAI,mBAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,oGAAoG,CAAC;KACjH,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACrD,MAAM,IAAI,sCAAiB,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,IAAI,wBAAU,EAAE,CAAC,cAAc,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3C,IAAA,0BAAc,EACZ;YACE,0DAA0D;YAC1D,+DAA+D;SAChE,CACF,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4BAAY,CAAC,MAAM,CAAC,KAAc,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=app-builder.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-builder.service.d.ts","sourceRoot":"","sources":["../../src/services/app-builder.service.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=app-builder.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-builder.service.js","sourceRoot":"","sources":["../../src/services/app-builder.service.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ interface AppConfig {
2
+ name: string;
3
+ path: string;
4
+ config: {
5
+ dev?: {
6
+ script: string;
7
+ modifications: Array<{
8
+ source: string;
9
+ destination: string;
10
+ }>;
11
+ };
12
+ prod?: {
13
+ script: string;
14
+ modifications: Array<{
15
+ source: string;
16
+ destination: string;
17
+ }>;
18
+ };
19
+ };
20
+ }
21
+ /**
22
+ * Service for managing template applications.
23
+ *
24
+ * This service:
25
+ * 1. Discovers all apps in the apps/ folder of generated projects
26
+ * 2. Installs dependencies for all apps (npm install)
27
+ * 3. Builds apps and copies them to modifications folder (npm run build)
28
+ * 4. Provides progress feedback during operations
29
+ */
30
+ export declare class AppService {
31
+ private logger;
32
+ /**
33
+ * Install dependencies for all applications found in the apps/ directory
34
+ */
35
+ installAllApps(): Promise<void>;
36
+ /**
37
+ * Build all applications found in the apps/ directory
38
+ */
39
+ buildAllApps(): Promise<void>;
40
+ startAllAppsInDevMode(): Promise<void>;
41
+ /**
42
+ * Build a specific application
43
+ */
44
+ buildApp(appConfig: AppConfig): Promise<void>;
45
+ /**
46
+ * Start a specific application in development mode
47
+ */
48
+ startAppInDevMode(appName: string): Promise<void>;
49
+ getAllApps(): Promise<AppConfig[]>;
50
+ /**
51
+ * Discover all app directories in the apps/ folder and return detailed app information
52
+ */
53
+ private discoverApps;
54
+ /**
55
+ * Install dependencies for a specific application
56
+ */
57
+ private installApp;
58
+ private startAppsInParallel;
59
+ private copyModifications;
60
+ /**
61
+ * Copy a single file, creating destination directory if needed
62
+ */
63
+ private copyFile;
64
+ /**
65
+ * Copy a directory recursively, wiping out target first if it exists
66
+ */
67
+ private copyDirectory;
68
+ /**
69
+ * Recursively copy directory contents
70
+ */
71
+ private copyDirectoryContents;
72
+ }
73
+ export {};
74
+ //# sourceMappingURL=app.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.service.d.ts","sourceRoot":"","sources":["../../src/services/app.service.ts"],"names":[],"mappings":"AAOA,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,GAAG,CAAC,EAAE;YACJ,MAAM,EAAE,MAAM,CAAC;YACf,aAAa,EAAE,KAAK,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC;gBACf,WAAW,EAAE,MAAM,CAAC;aACrB,CAAC,CAAC;SACJ,CAAC;QACF,IAAI,CAAC,EAAE;YACL,MAAM,EAAE,MAAM,CAAC;YACf,aAAa,EAAE,KAAK,CAAC;gBACnB,MAAM,EAAE,MAAM,CAAC;gBACf,WAAW,EAAE,MAAM,CAAC;aACrB,CAAC,CAAC;SACJ,CAAC;KACH,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgC;IAE9C;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB5C;;OAEG;IACU,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB7B,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBnD;;KAEC;IACY,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC1D;;OAEG;IACU,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCjD,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAkB/C;;OAEG;IACH,OAAO,CAAC,YAAY;IAmDpB;;OAEG;YACW,UAAU;YAiCV,mBAAmB;IAsBjC,OAAO,CAAC,iBAAiB;IAkDzB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAahB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAiB9B"}
@@ -0,0 +1,328 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AppService = void 0;
7
+ const child_process_1 = require("child_process");
8
+ const fs_1 = require("fs");
9
+ const path_1 = require("path");
10
+ const logger_1 = require("../utils/logger");
11
+ const error_handler_1 = require("../utils/error.handler");
12
+ const concurrently_1 = __importDefault(require("concurrently"));
13
+ /**
14
+ * Service for managing template applications.
15
+ *
16
+ * This service:
17
+ * 1. Discovers all apps in the apps/ folder of generated projects
18
+ * 2. Installs dependencies for all apps (npm install)
19
+ * 3. Builds apps and copies them to modifications folder (npm run build)
20
+ * 4. Provides progress feedback during operations
21
+ */
22
+ class AppService {
23
+ logger = logger_1.Logger.getInstance();
24
+ /**
25
+ * Install dependencies for all applications found in the apps/ directory
26
+ */
27
+ async installAllApps() {
28
+ const appsDir = (0, path_1.join)(process.cwd(), 'apps');
29
+ if (!(0, fs_1.existsSync)(appsDir)) {
30
+ this.logger.debug('No apps/ directory found - skipping app installs');
31
+ return;
32
+ }
33
+ const apps = this.discoverApps(appsDir);
34
+ if (apps.length === 0) {
35
+ this.logger.info('No applications found in apps/ directory');
36
+ return;
37
+ }
38
+ this.logger.info(`Found ${apps.length} applications to install dependencies for:`);
39
+ apps.forEach(app => this.logger.info(` - ${app.name}`));
40
+ for (const app of apps) {
41
+ await this.installApp(app);
42
+ }
43
+ }
44
+ /**
45
+ * Build all applications found in the apps/ directory
46
+ */
47
+ async buildAllApps() {
48
+ const appsDir = (0, path_1.join)(process.cwd(), 'apps');
49
+ if (!(0, fs_1.existsSync)(appsDir)) {
50
+ this.logger.debug('No apps/ directory found - skipping app builds');
51
+ return;
52
+ }
53
+ const apps = this.discoverApps(appsDir);
54
+ if (apps.length === 0) {
55
+ this.logger.debug('No applications found in apps/ directory');
56
+ return;
57
+ }
58
+ this.logger.info(`Found ${apps.length} template applications to build: ${apps.map(a => a.name).join(", ")}`);
59
+ for (const app of apps) {
60
+ await this.buildApp(app);
61
+ await this.copyModifications(app, "prod");
62
+ }
63
+ this.logger.info('All template applications built and moved successfully!');
64
+ }
65
+ async startAllAppsInDevMode() {
66
+ const appsDir = (0, path_1.join)(process.cwd(), 'apps');
67
+ if (!(0, fs_1.existsSync)(appsDir)) {
68
+ this.logger.info('No apps/ directory found - skipping app starts');
69
+ return;
70
+ }
71
+ const apps = this.discoverApps(appsDir);
72
+ if (apps.length === 0) {
73
+ this.logger.info('No applications found in apps/ directory');
74
+ return;
75
+ }
76
+ this.logger.info(`Found ${apps.length} template applications to start in dev mode: ${apps.map(a => a.name).join(", ")}`);
77
+ // read the iocd.app.json and copy modifications
78
+ apps.forEach(app => this.copyModifications(app, "dev"));
79
+ this.startAppsInParallel(apps);
80
+ this.logger.info('All template applications started in dev mode successfully!');
81
+ }
82
+ /**
83
+ * Build a specific application
84
+ */
85
+ async buildApp(appConfig) {
86
+ const appPath = (0, path_1.join)(process.cwd(), 'apps', appConfig.name);
87
+ this.logger.info(`Building application ${appConfig.name}...`);
88
+ try {
89
+ // Check if build script exists
90
+ const packageJsonPath = (0, path_1.join)(appPath, 'package.json');
91
+ const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
92
+ if (!packageJson.scripts?.build) {
93
+ this.logger.warn(`No build script found for ${appConfig.name} - skipping`);
94
+ return;
95
+ }
96
+ // Execute npm run build in the app directory
97
+ this.logger.debug(`Executing: npm run build in ${appPath}`);
98
+ (0, child_process_1.execSync)('npm run build', {
99
+ cwd: appPath,
100
+ stdio: 'pipe',
101
+ encoding: 'utf-8'
102
+ });
103
+ this.logger.info(`Application ${appConfig.name} built successfully!`);
104
+ }
105
+ catch (error) {
106
+ this.logger.error(`Failed to build application ${appConfig.name}: ${error}`);
107
+ throw new error_handler_1.CLIError(`Failed to build application: ${appConfig.name}. ${error}`, { code: error_handler_1.ErrorCode.BUILD_ERROR });
108
+ }
109
+ }
110
+ /**
111
+ * Start a specific application in development mode
112
+ */
113
+ async startAppInDevMode(appName) {
114
+ const appPath = (0, path_1.join)(process.cwd(), 'apps', appName);
115
+ this.logger.info(`Starting ${appName} in dev mode...`);
116
+ try {
117
+ // Check if build script exists
118
+ const packageJsonPath = (0, path_1.join)(appPath, 'package.json');
119
+ const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
120
+ if (!packageJson.scripts?.build) {
121
+ this.logger.warn(`No build script found for ${appName} - skipping`);
122
+ return;
123
+ }
124
+ // Execute npm run dev in the app directory
125
+ this.logger.debug(`Executing: npm run dev in ${appPath}`);
126
+ (0, child_process_1.exec)('npm run dev', {
127
+ cwd: appPath,
128
+ encoding: 'utf-8'
129
+ });
130
+ this.logger.info(`${appName} started successfully!`);
131
+ }
132
+ catch (error) {
133
+ this.logger.error(`Failed to start ${appName}: ${error}`);
134
+ throw new error_handler_1.CLIError(`Failed to start application: ${appName}. ${error}`, { code: error_handler_1.ErrorCode.BUILD_ERROR });
135
+ }
136
+ }
137
+ async getAllApps() {
138
+ const appsDir = (0, path_1.join)(process.cwd(), 'apps');
139
+ if (!(0, fs_1.existsSync)(appsDir)) {
140
+ this.logger.debug('No apps/ directory found - skipping app listing');
141
+ return [];
142
+ }
143
+ const apps = this.discoverApps(appsDir);
144
+ if (apps.length === 0) {
145
+ this.logger.debug('No applications found in apps/ directory');
146
+ return [];
147
+ }
148
+ return apps;
149
+ }
150
+ /**
151
+ * Discover all app directories in the apps/ folder and return detailed app information
152
+ */
153
+ discoverApps(appsDir) {
154
+ try {
155
+ return (0, fs_1.readdirSync)(appsDir)
156
+ .map(item => {
157
+ const appPath = (0, path_1.join)(appsDir, item);
158
+ const isDirectory = (0, fs_1.statSync)(appPath).isDirectory();
159
+ if (!isDirectory) {
160
+ return null;
161
+ }
162
+ const hasPackageJson = (0, fs_1.existsSync)((0, path_1.join)(appPath, 'package.json'));
163
+ const iocdAppJsonPath = (0, path_1.join)(appPath, 'iocd.app.json');
164
+ const hasAppJson = (0, fs_1.existsSync)(iocdAppJsonPath);
165
+ if (!hasPackageJson) {
166
+ this.logger.debug(`Skipping ${item}: no package.json found`);
167
+ return null;
168
+ }
169
+ if (!hasAppJson) {
170
+ this.logger.debug(`Skipping ${item}: no iocd.app.json found`);
171
+ return null;
172
+ }
173
+ try {
174
+ // Parse the iocd.app.json configuration
175
+ const configContent = (0, fs_1.readFileSync)(iocdAppJsonPath, 'utf-8');
176
+ const config = JSON.parse(configContent);
177
+ this.logger.debug(`Discovered app: ${item} with config: ${JSON.stringify(config)}`);
178
+ return {
179
+ name: item,
180
+ path: appPath,
181
+ config: config
182
+ };
183
+ }
184
+ catch (error) {
185
+ this.logger.error(`Failed to parse iocd.app.json for ${item}: ${error}`);
186
+ return null;
187
+ }
188
+ })
189
+ .filter((app) => app !== null);
190
+ }
191
+ catch (error) {
192
+ this.logger.error(`Error discovering apps: ${error}`);
193
+ return [];
194
+ }
195
+ }
196
+ /**
197
+ * Install dependencies for a specific application
198
+ */
199
+ async installApp(appConfig) {
200
+ const appPath = appConfig.path;
201
+ this.logger.info(`Installing dependencies for ${appConfig.name}...`);
202
+ try {
203
+ // Check if package.json exists
204
+ const packageJsonPath = (0, path_1.join)(appPath, 'package.json');
205
+ if (!(0, fs_1.existsSync)(packageJsonPath)) {
206
+ this.logger.warn(` No package.json found for ${appConfig.name} - skipping`);
207
+ return;
208
+ }
209
+ // Execute npm install in the app directory
210
+ this.logger.debug(`Executing: npm install in ${appPath}`);
211
+ (0, child_process_1.execSync)('npm install', {
212
+ cwd: appPath,
213
+ stdio: 'pipe',
214
+ encoding: 'utf-8'
215
+ });
216
+ this.logger.info(`Dependencies for ${appConfig.name} installed successfully!`);
217
+ }
218
+ catch (error) {
219
+ this.logger.error(`Failed to install dependencies for ${appConfig.name}: ${error}`);
220
+ throw new error_handler_1.CLIError(`Failed to install dependencies for application: ${appConfig.name}. ${error}`, { code: error_handler_1.ErrorCode.BUILD_ERROR });
221
+ }
222
+ }
223
+ async startAppsInParallel(apps) {
224
+ const tasks = apps.map(app => ({
225
+ command: 'npm run start',
226
+ name: app.name,
227
+ cwd: app.path
228
+ }));
229
+ this.logger.debug(JSON.stringify(tasks));
230
+ // Start all apps
231
+ (0, concurrently_1.default)(tasks, {
232
+ prefix: 'name', // add app name before each log line
233
+ killOthersOn: ['failure', 'success'], // stop all if one fails
234
+ restartTries: 0,
235
+ }).result.then(() => console.log('All processes exited successfully!'), () => console.error('One of the processes failed'));
236
+ }
237
+ copyModifications(appConfig, mode) {
238
+ const modificationsConfigs = appConfig.config[mode]?.modifications;
239
+ if (!modificationsConfigs) {
240
+ this.logger.warn(`No modifications found for ${appConfig.name} in ${mode} mode - skipping`);
241
+ return;
242
+ }
243
+ this.logger.info(`Copying ${modificationsConfigs.length} modification(s) for ${appConfig.name} in ${mode} mode`);
244
+ // Copy each modification
245
+ for (const config of modificationsConfigs) {
246
+ const srcPath = (0, path_1.join)(appConfig.path, config.source);
247
+ const destPath = (0, path_1.join)(process.cwd(), config.destination);
248
+ this.logger.debug(`Copying modification from ${srcPath} to ${destPath}`);
249
+ try {
250
+ // Check if source exists
251
+ if (!(0, fs_1.existsSync)(srcPath)) {
252
+ this.logger.warn(`Source path does not exist: ${srcPath} - skipping`);
253
+ continue;
254
+ }
255
+ // Get source stats to determine if it's a file or directory
256
+ const srcStats = (0, fs_1.statSync)(srcPath);
257
+ if (srcStats.isFile()) {
258
+ // Handle file copying
259
+ this.copyFile(srcPath, destPath);
260
+ }
261
+ else if (srcStats.isDirectory()) {
262
+ // Handle directory copying
263
+ this.copyDirectory(srcPath, destPath);
264
+ }
265
+ else {
266
+ this.logger.warn(`Source is neither file nor directory: ${srcPath} - skipping`);
267
+ continue;
268
+ }
269
+ this.logger.debug(`Successfully copied ${config.source} to ${config.destination}`);
270
+ }
271
+ catch (error) {
272
+ this.logger.error(`Failed to copy ${config.source} to ${config.destination}: ${error}`);
273
+ throw new error_handler_1.CLIError(`Failed to copy modification for ${appConfig.name}: ${error}`, { code: error_handler_1.ErrorCode.FILE_SYSTEM_ERROR });
274
+ }
275
+ }
276
+ this.logger.info(`Modifications copied successfully!`);
277
+ }
278
+ /**
279
+ * Copy a single file, creating destination directory if needed
280
+ */
281
+ copyFile(srcPath, destPath) {
282
+ // Ensure destination directory exists
283
+ const destDir = (0, path_1.dirname)(destPath);
284
+ if (!(0, fs_1.existsSync)(destDir)) {
285
+ (0, fs_1.mkdirSync)(destDir, { recursive: true });
286
+ this.logger.debug(`Created destination directory: ${destDir}`);
287
+ }
288
+ // Copy the file
289
+ (0, fs_1.copyFileSync)(srcPath, destPath);
290
+ this.logger.debug(`Copied file: ${srcPath} → ${destPath}`);
291
+ }
292
+ /**
293
+ * Copy a directory recursively, wiping out target first if it exists
294
+ */
295
+ copyDirectory(srcPath, destPath) {
296
+ // If destination exists, remove it completely
297
+ if ((0, fs_1.existsSync)(destPath)) {
298
+ this.logger.debug(`Removing existing destination directory: ${destPath}`);
299
+ (0, fs_1.rmSync)(destPath, { recursive: true, force: true });
300
+ }
301
+ // Create destination directory
302
+ (0, fs_1.mkdirSync)(destPath, { recursive: true });
303
+ this.logger.debug(`Created destination directory: ${destPath}`);
304
+ // Copy all contents recursively
305
+ this.copyDirectoryContents(srcPath, destPath);
306
+ }
307
+ /**
308
+ * Recursively copy directory contents
309
+ */
310
+ copyDirectoryContents(srcDir, destDir) {
311
+ const items = (0, fs_1.readdirSync)(srcDir);
312
+ for (const item of items) {
313
+ const srcItemPath = (0, path_1.join)(srcDir, item);
314
+ const destItemPath = (0, path_1.join)(destDir, item);
315
+ const itemStats = (0, fs_1.statSync)(srcItemPath);
316
+ if (itemStats.isFile()) {
317
+ (0, fs_1.copyFileSync)(srcItemPath, destItemPath);
318
+ this.logger.debug(`Copied file: ${srcItemPath} → ${destItemPath}`);
319
+ }
320
+ else if (itemStats.isDirectory()) {
321
+ (0, fs_1.mkdirSync)(destItemPath, { recursive: true });
322
+ this.copyDirectoryContents(srcItemPath, destItemPath);
323
+ }
324
+ }
325
+ }
326
+ }
327
+ exports.AppService = AppService;
328
+ //# sourceMappingURL=app.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.service.js","sourceRoot":"","sources":["../../src/services/app.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface ComponentsConfig {
2
+ postInstall: {
3
+ modifications: Modification[];
4
+ };
5
+ }
6
+ export interface Modification {
7
+ source: string;
8
+ destination: string;
9
+ }
10
+ export declare function copyModifications(baseDir: string, componentJsonPath: string): Promise<void>;
11
+ //# sourceMappingURL=component.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.config.d.ts","sourceRoot":"","sources":["../../../src/services/components/component.config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC7B,WAAW,EAAE;QACT,aAAa,EAAE,YAAY,EAAE,CAAC;KACjC,CAAA;CACJ;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDjG"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.copyModifications = copyModifications;
4
+ const path_1 = require("path");
5
+ const logger_1 = require("../../utils/logger");
6
+ const fs_1 = require("fs");
7
+ const error_handler_1 = require("../../utils/error.handler");
8
+ const logger = logger_1.Logger.getInstance();
9
+ async function copyModifications(baseDir, componentJsonPath) {
10
+ const configJSON = JSON.parse((0, fs_1.readFileSync)(componentJsonPath, 'utf-8'));
11
+ logger.debug(`Component configuration is ${JSON.stringify(configJSON, null, 2)}`);
12
+ const modifications = configJSON.postInstall?.modifications ?? [];
13
+ if (!modifications || modifications.length === 0) {
14
+ logger.debug(`No modifications provided - skipping`);
15
+ return;
16
+ }
17
+ const dirName = (0, path_1.dirname)(baseDir);
18
+ logger.debug(`Copying ${modifications.length} modification(s) for component ${dirName} ...`);
19
+ // Copy each modification
20
+ for (const config of modifications) {
21
+ const srcPath = (0, path_1.join)(baseDir, config.source);
22
+ const destPath = (0, path_1.join)(process.cwd(), config.destination);
23
+ logger.debug(`Copying modification from ${srcPath} to ${destPath}`);
24
+ try {
25
+ // Check if source exists
26
+ if (!(0, fs_1.existsSync)(srcPath)) {
27
+ logger.warn(`Source path does not exist: ${srcPath} - skipping`);
28
+ continue;
29
+ }
30
+ // Get source stats to determine if it's a file or directory
31
+ const srcStats = (0, fs_1.statSync)(srcPath);
32
+ if (srcStats.isFile()) {
33
+ // Handle file copying
34
+ copyFile(srcPath, destPath);
35
+ }
36
+ else if (srcStats.isDirectory()) {
37
+ // Handle directory copying
38
+ copyDirectory(srcPath, destPath);
39
+ }
40
+ else {
41
+ logger.warn(`Source is neither file nor directory: ${srcPath} - skipping`);
42
+ continue;
43
+ }
44
+ logger.debug(`Successfully copied ${config.source} to ${config.destination}`);
45
+ }
46
+ catch (error) {
47
+ logger.error(`Failed to copy ${config.source} to ${config.destination}: ${error}`);
48
+ throw new error_handler_1.CLIError(`Failed to copy modification for ${dirName}: ${error}`, { code: error_handler_1.ErrorCode.FILE_SYSTEM_ERROR });
49
+ }
50
+ }
51
+ logger.debug(`Copied ${modifications.length} post install modifications for component ${baseDir} successfully!`);
52
+ }
53
+ /**
54
+ * Copy a single file, creating destination directory if needed
55
+ */
56
+ function copyFile(srcPath, destPath) {
57
+ // Ensure destination directory exists
58
+ const destDir = (0, path_1.dirname)(destPath);
59
+ if (!(0, fs_1.existsSync)(destDir)) {
60
+ (0, fs_1.mkdirSync)(destDir, { recursive: true });
61
+ logger.debug(`Created destination directory: ${destDir}`);
62
+ }
63
+ // Copy the file
64
+ (0, fs_1.copyFileSync)(srcPath, destPath);
65
+ logger.debug(`Copied file: ${srcPath} → ${destPath}`);
66
+ }
67
+ /**
68
+ * Copy a directory recursively, wiping out target first if it exists
69
+ */
70
+ function copyDirectory(srcPath, destPath) {
71
+ // If destination exists, remove it completely
72
+ if ((0, fs_1.existsSync)(destPath)) {
73
+ logger.debug(`Removing existing destination directory: ${destPath}`);
74
+ (0, fs_1.rmSync)(destPath, { recursive: true, force: true });
75
+ }
76
+ // Create destination directory
77
+ (0, fs_1.mkdirSync)(destPath, { recursive: true });
78
+ logger.debug(`Created destination directory: ${destPath}`);
79
+ // Copy all contents recursively
80
+ copyDirectoryContents(srcPath, destPath);
81
+ }
82
+ /**
83
+ * Recursively copy directory contents
84
+ */
85
+ function copyDirectoryContents(srcDir, destDir) {
86
+ const items = (0, fs_1.readdirSync)(srcDir);
87
+ for (const item of items) {
88
+ const srcItemPath = (0, path_1.join)(srcDir, item);
89
+ const destItemPath = (0, path_1.join)(destDir, item);
90
+ const itemStats = (0, fs_1.statSync)(srcItemPath);
91
+ if (itemStats.isFile()) {
92
+ (0, fs_1.copyFileSync)(srcItemPath, destItemPath);
93
+ logger.debug(`Copied file: ${srcItemPath} → ${destItemPath}`);
94
+ }
95
+ else if (itemStats.isDirectory()) {
96
+ (0, fs_1.mkdirSync)(destItemPath, { recursive: true });
97
+ copyDirectoryContents(srcItemPath, destItemPath);
98
+ }
99
+ }
100
+ }
101
+ //# sourceMappingURL=component.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.config.js","sourceRoot":"","sources":["../../../src/services/components/component.config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface ComponentReference {
2
+ name: string;
3
+ version: string;
4
+ }
5
+ export interface Component {
6
+ name: string;
7
+ version: string;
8
+ platform: SupportedPlatforms;
9
+ downloadUrl: string;
10
+ }
11
+ export type SupportedPlatforms = 'win32' | 'darwin' | 'darwin-arm64';
12
+ //# sourceMappingURL=component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/services/components/component.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/services/components/component.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import { SupportedPlatforms } from "./component";
2
+ export interface ComponentDefinition {
3
+ /** Display name for the component */
4
+ displayName: string;
5
+ /** Base filename for downloads (without extension) */
6
+ name: string;
7
+ /** Whether license validation is required */
8
+ licenseRequired: boolean;
9
+ /** Supported platforms */
10
+ platforms: Array<SupportedPlatforms>;
11
+ /** Description of the component */
12
+ description: string;
13
+ /** Is the component required for the application to run */
14
+ required?: boolean;
15
+ }
16
+ /**
17
+ * Central registry of all known components with their static metadata
18
+ * It is best if this goes to cli configuration
19
+ */
20
+ export declare class ComponentsRegistry {
21
+ private static COMPONENT_REGISTRY;
22
+ static getComponents(): ComponentDefinition[];
23
+ /**
24
+ * Get component definition by name
25
+ */
26
+ static getComponentDefinition(componentName: string): ComponentDefinition | undefined;
27
+ /**
28
+ * Get all known component names
29
+ */
30
+ static getAllComponentNames(): string[];
31
+ /**
32
+ * Get components that support a specific platform
33
+ */
34
+ static getComponentsForPlatform(platform: SupportedPlatforms): string[];
35
+ /**
36
+ * Check if a component exists and supports a platform
37
+ */
38
+ static isComponentSupported(componentName: string, platform: SupportedPlatforms): boolean;
39
+ }
40
+ //# sourceMappingURL=components.registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.registry.d.ts","sourceRoot":"","sources":["../../../src/services/components/components.registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAChC,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,eAAe,EAAE,OAAO,CAAC;IACzB,0BAA0B;IAC1B,SAAS,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACrC,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAG3B,OAAO,CAAC,MAAM,CAAC,kBAAkB,CA8B/B;WAEY,aAAa,IAAI,mBAAmB,EAAE;IAIpD;;OAEG;WACW,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAI5F;;OAEG;WACW,oBAAoB,IAAI,MAAM,EAAE;IAI9C;;OAEG;WACW,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,EAAE;IAM9E;;OAEG;WACW,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,GAAG,OAAO;CAInG"}