@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":"dev.service.js","sourceRoot":"","sources":["../../src/services/dev.service.ts"],"names":[],"mappings":";;AAUA,oCAYC;AAtBD,iFAA2E;AAC3E,iDAAyC;AACzC,4CAAyC;AACzC,iDAA0C;AAC1C,wCAA0C;AAC1C,2BAAgC;AAChC,oEAAwE;AAExE,MAAM,MAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC;AAE7B,KAAK,UAAU,YAAY;IAC9B,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAEhD,IAAA,8CAAyB,GAAE,CAAC;IAE5B,qCAAqC;IACrC,MAAM,IAAA,0CAAkB,EAAC,KAAK,CAAC,CAAC;IAEhC,kCAAkC;IAClC,MAAM,kBAAkB,EAAE,CAAC;IAE3B,MAAM,mBAAmB,EAAE,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC7B,uCAAuC;IACvC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACrD,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAE7D,MAAM,aAAa,GAAG,gBAAS,CAAC,oBAAoB,EAAE,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QAEhD,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;QAEpC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAE3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QAC9C,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,mBAAmB;IAC9B,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAE/C,IAAI,CAAC;QACD,IAAI,cAAc,GAAG,gBAAS,CAAC,cAAc,EAAE,CAAC;QAChD,IAAI,CAAC,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,cAAc,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,uBAAuB,cAAc,EAAE,CAAC,CAAC;QAEtD,IAAA,yBAAS,EAAC,cAAc,EAAE;YACtB,KAAK,EAAE,SAAS;SACnB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACnE,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAE9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;QACtE,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC;AAGD;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,OAAe;IACzC,IAAI,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,WAAW,OAAO,KAAK,CAAC,CAAC;QAEtC,uEAAuE;QACvE,uCAAuC;QACvC,0CAA0C;QAC1C,gDAAgD;QAChD,MAAM,OAAO,GAAG,qCAAqC,OAAO,GAAG,CAAC;QAEhE,MAAM,CAAC,KAAK,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;QACtC,IAAA,wBAAQ,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAErC,MAAM,CAAC,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;IAEnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,kBAAkB,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=electronBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electronBuilder.d.ts","sourceRoot":"","sources":["../../../src/services/installer/electronBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=electronBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electronBuilder.js","sourceRoot":"","sources":["../../../src/services/installer/electronBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare function createPackageWithElectronForge(): Promise<void>;
2
+ //# sourceMappingURL=electronForge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electronForge.d.ts","sourceRoot":"","sources":["../../../src/services/installer/electronForge.ts"],"names":[],"mappings":"AAmBA,wBAAsB,8BAA8B,kBAenD"}
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPackageWithElectronForge = createPackageWithElectronForge;
4
+ const logger_1 = require("../../utils/logger");
5
+ const core_1 = require("@electron-forge/core");
6
+ const path_1 = require("../../utils/path");
7
+ const fs_extra_1 = require("fs-extra");
8
+ const path_2 = require("path");
9
+ const config_service_1 = require("../config/config.service");
10
+ const file_1 = require("../../utils/file");
11
+ const fs_1 = require("fs");
12
+ const promises_1 = require("fs/promises");
13
+ const os_1 = require("os");
14
+ const child_process_1 = require("child_process");
15
+ const error_handler_1 = require("../../utils/error.handler");
16
+ const logger = logger_1.Logger.getInstance();
17
+ async function createPackageWithElectronForge() {
18
+ logger.info('Creating installer...');
19
+ // copy PathUtils.getIOCDDir() to PathUtils.getDistDir() in a folder called <name>-<platform>-<arch>/
20
+ const appPackageTempDir = await copyAppToDist();
21
+ // TODO review if need this at all, now that we are using electron forge
22
+ await ensureElectronVersionIsSet();
23
+ // If your app is already prepackaged & signed internally, tell Forge to skip packaging
24
+ const makeResults = await callForgeMake(appPackageTempDir);
25
+ await signArtifacts(makeResults);
26
+ await callForgePublish(appPackageTempDir);
27
+ }
28
+ async function callForgeMake(appPackageTempDir) {
29
+ let makeTargets = getTargetsFromConfig();
30
+ if (makeTargets.length === 0) {
31
+ throw new error_handler_1.CLIError('No makers configured in forge.config.js. Please configure at least one maker (e.g. Squirrel for Windows, DMG for macOS).', {
32
+ suggestions: [
33
+ 'Add at least one maker to the makers array in forge.config.js',
34
+ 'Refer to https://www.electronforge.io/config/makers for available makers and configuration examples'
35
+ ]
36
+ });
37
+ }
38
+ const makeOptions = {
39
+ dir: appPackageTempDir,
40
+ skipPackage: true, // <— consume prepackaged app in out/<name>-<platform>-<arch>/
41
+ outDir: path_1.PathUtils.getDistDir(),
42
+ overrideTargets: makeTargets
43
+ };
44
+ const options = {
45
+ dir: appPackageTempDir,
46
+ makeOptions,
47
+ dryRun: true
48
+ };
49
+ // we call make by actually calling publish with dryRun :((
50
+ logger.debug('Calling publish (dry run) with make options:', JSON.stringify(options, null, 2));
51
+ await core_1.api.publish(options);
52
+ logger.debug("publish (dry run) done");
53
+ // read results from dist/makeResults.json
54
+ const makeResultsJSON = (0, path_2.join)(path_1.PathUtils.getDistDir(), 'makeResults.json');
55
+ if ((0, fs_extra_1.existsSync)(makeResultsJSON)) {
56
+ const makeResults = await (0, fs_extra_1.readJson)(makeResultsJSON);
57
+ logger.debug('Read artifacts from dist/makeResults.json successfully!');
58
+ return makeResults;
59
+ }
60
+ else {
61
+ throw new error_handler_1.CLIError('No makeResults found after make process. Please ensure at least one maker is configured correctly in forge.config.js.', {
62
+ suggestions: [
63
+ 'Check the output above for any errors during the make process',
64
+ 'Ensure that the makers in forge.config.js are configured correctly for your platform'
65
+ ]
66
+ });
67
+ }
68
+ }
69
+ async function callForgePublish(appPackageTempDir) {
70
+ const publishers = getPublishersFromConfig();
71
+ if (publishers.length === 0) {
72
+ logger.info('No publishers configured in forge.config.js, skipping publish step');
73
+ return;
74
+ }
75
+ const config = {
76
+ dir: appPackageTempDir,
77
+ dryRunResume: true,
78
+ };
79
+ logger.debug(`Calling publish with config `, JSON.stringify(config, null, 2));
80
+ await core_1.api.publish(config);
81
+ logger.debug("Publish step completed.");
82
+ }
83
+ /**
84
+ * This function copies the prepackaged app to the dist directory in a platform-specific way
85
+ * This is needed because we skip forge's prepackaging step and we need to ensure that
86
+ * the app is in the correct location for the make process to find it.
87
+ */
88
+ async function copyAppToDist() {
89
+ const projectDir = path_1.PathUtils.getIOCDDir();
90
+ const productNameToUseInTempDir = (0, os_1.platform)() === "win32" ? config_service_1.ConfigManager.config.productSlug : config_service_1.ConfigManager.config.productSlug;
91
+ let appPackageTempDir = (0, path_2.join)(path_1.PathUtils.getDistDir(), `${productNameToUseInTempDir}-${process.platform}-${process.arch}`);
92
+ if ((0, fs_extra_1.existsSync)(appPackageTempDir)) {
93
+ (0, fs_1.rmSync)(appPackageTempDir, { recursive: true, force: true });
94
+ }
95
+ if ((0, os_1.platform)() === "win32") {
96
+ // on windows copy the whole directory
97
+ logger.debug(`Copying prepackaged app exe from ${projectDir} to ${appPackageTempDir}`);
98
+ await (0, promises_1.cp)(projectDir, appPackageTempDir, { recursive: true });
99
+ logger.debug(`Copied prepackaged app to ${appPackageTempDir} successfully!`);
100
+ // copy license from root dir to outDir
101
+ const licenseSrc = (0, path_2.join)(path_1.PathUtils.getRootDir(), 'LICENSE');
102
+ const licenseDest = (0, path_2.join)(appPackageTempDir, 'LICENSE');
103
+ if (await file_1.FileUtils.exists(licenseSrc)) {
104
+ (0, fs_1.cpSync)(licenseSrc, licenseDest);
105
+ logger.debug('Copied LICENSE to packaged app');
106
+ }
107
+ }
108
+ else if ((0, os_1.platform)() === "darwin") {
109
+ await (0, fs_extra_1.ensureDir)(appPackageTempDir);
110
+ // on macOS copy the app bundle only
111
+ const source = path_1.PathUtils.getIOCDAppBundlePath();
112
+ const destination = (0, path_2.join)(appPackageTempDir, config_service_1.ConfigManager.config.productSlug + ".app");
113
+ logger.debug(`Copying prepackaged app bundle from ${source} to ${destination}`);
114
+ (0, child_process_1.execSync)(`ditto "${source}" "${destination}"`, { stdio: 'pipe' });
115
+ logger.debug(`Copied prepackaged app to ${appPackageTempDir} successfully!`);
116
+ }
117
+ return appPackageTempDir;
118
+ }
119
+ /**
120
+ * This function signs the installer artifacts produced by the make process.
121
+ * @param makeResults The results of the make process, containing the artifacts to sign.
122
+ */
123
+ async function signArtifacts(makeResults) {
124
+ if ((0, os_1.platform)() === "win32") {
125
+ logger.debug("Signing installer files");
126
+ const signBinary = require("./windows.helper").signBinary;
127
+ // Sign all produced installer artifacts BEFORE publishing
128
+ for (const result of makeResults) {
129
+ for (const artifact of result.artifacts) {
130
+ // artifact is a full path to e.g. Setup.exe / .msi / .dmg / .zip
131
+ await signBinary(artifact);
132
+ }
133
+ }
134
+ logger.debug("Signed installer files successfully!");
135
+ }
136
+ else if ((0, os_1.platform)() === "darwin") {
137
+ logger.debug("Signing installer files");
138
+ // const signBinary = require("./macOS.helper").signBinary;
139
+ // for (const result of makeResults) {
140
+ // for (const artifact of result.artifacts) {
141
+ // // artifact is a full path to e.g. Setup.exe / .msi / .dmg / .zip
142
+ // // await signBinary(artifact);
143
+ // }
144
+ // }
145
+ logger.debug("Signed installer files successfully!");
146
+ }
147
+ }
148
+ /** Reads the target configurations from the forge.config.js file and enhances it with additional information */
149
+ function getTargetsFromConfig() {
150
+ const forgeConfigPath = (0, path_2.join)(path_1.PathUtils.getRootDir(), 'forge.config.js');
151
+ let overrideTargets = [];
152
+ if (!(0, fs_extra_1.existsSync)(forgeConfigPath)) {
153
+ return overrideTargets;
154
+ }
155
+ const forgeConfig = require(forgeConfigPath);
156
+ if (!forgeConfig.makers || forgeConfig.makers.length === 0) {
157
+ return overrideTargets;
158
+ }
159
+ overrideTargets = forgeConfig.makers.map((t) => {
160
+ const config = config_service_1.ConfigManager.config;
161
+ if (t.name === '@electron-forge/maker-squirrel') {
162
+ const ioAssetsDir = path_1.PathUtils.getIOCDAssetsDir();
163
+ let icon = (0, path_2.join)(ioAssetsDir, 'images', 'logo.ico');
164
+ return {
165
+ name: '@electron-forge/maker-squirrel',
166
+ config: {
167
+ // iconUrl: icon, // needs to be HTTPs; displayed in Control Panel ➡ Programs and Features.
168
+ exe: config.win.exe.exeName, // * The name of your app's main `.exe` file.
169
+ // keep this concise
170
+ setupIcon: icon,
171
+ setupExe: `${(0, path_2.basename)(config.win.exe.exeName).replace(".exe", "")}-Setup.exe`,
172
+ version: config.version,
173
+ // Optional: ensure Squirrel uses your short product name
174
+ name: config.productSlug, // used for package IDs
175
+ authors: config.company, // The `authors` value for the NuGet package metadata.
176
+ owners: config.company, // The `owners` value for the NuGet package metadata.
177
+ copyRight: config.copyright, // The `copyright` value for the NuGet package metadata.
178
+ title: config.productName, // used as install window title
179
+ description: config.productDescription, // used in Control Panel ➡ Programs and Features.
180
+ noMSI: true,
181
+ ...t.config ?? {},
182
+ // Keep the nuspect template
183
+ nuspecTemplate: "config/win-build/template.nuspectemplate",
184
+ usePackageJson: false,
185
+ }
186
+ };
187
+ }
188
+ if (t.name === '@electron-forge/maker-dmg') {
189
+ let icon = (0, path_2.join)(path_1.PathUtils.getRootDir(), "modifications", "iocd", "assets", "images", "logo.icns");
190
+ return {
191
+ name: '@electron-forge/maker-dmg',
192
+ config: {
193
+ name: config.productName,
194
+ icon: icon,
195
+ overwrite: true,
196
+ title: `${config.productName}`,
197
+ ...t.config ?? {},
198
+ }
199
+ };
200
+ }
201
+ return t;
202
+ });
203
+ return overrideTargets;
204
+ }
205
+ function getPublishersFromConfig() {
206
+ const forgeConfigPath = (0, path_2.join)(path_1.PathUtils.getRootDir(), 'forge.config.js');
207
+ let overrideTargets = [];
208
+ if (!(0, fs_extra_1.existsSync)(forgeConfigPath)) {
209
+ return overrideTargets;
210
+ }
211
+ const forgeConfig = require(forgeConfigPath);
212
+ if (!forgeConfig.publishers || forgeConfig.publishers.length === 0) {
213
+ return overrideTargets;
214
+ }
215
+ overrideTargets = forgeConfig.publishers.map((t) => {
216
+ return t;
217
+ });
218
+ return overrideTargets;
219
+ }
220
+ async function ensureElectronVersionIsSet() {
221
+ const electronVersion = await getElectronVersionFromComponent();
222
+ if (!electronVersion) {
223
+ throw new Error('Electron version not found in iocd component metadata');
224
+ }
225
+ logger.debug(`Using Electron version: ${electronVersion}`);
226
+ }
227
+ /** Reads the electron version from the iocd component metadata */
228
+ async function getElectronVersionFromComponent() {
229
+ try {
230
+ const resourcesDir = path_1.PathUtils.getIOCDResourcesDir();
231
+ const metadataPath = (0, path_2.join)(resourcesDir, 'metadata.json');
232
+ if (!(await file_1.FileUtils.exists(metadataPath))) {
233
+ logger.debug('No iocd component metadata found, skipping electron version detection');
234
+ return null;
235
+ }
236
+ const metadata = await (0, fs_extra_1.readJson)(metadataPath);
237
+ if (metadata && metadata.electronVersion) {
238
+ return metadata.electronVersion;
239
+ }
240
+ logger.debug('No electron version found in iocd component metadata');
241
+ return null;
242
+ }
243
+ catch (error) {
244
+ logger.debug(`Failed to read electron version from component: ${error instanceof Error ? error.message : String(error)}`);
245
+ return null;
246
+ }
247
+ }
248
+ //# sourceMappingURL=electronForge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electronForge.js","sourceRoot":"","sources":["../../../src/services/installer/electronForge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function makeInstaller(_options: {
2
+ output?: string;
3
+ dir?: boolean;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=installer.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installer.service.d.ts","sourceRoot":"","sources":["../../../src/services/installer/installer.service.ts"],"names":[],"mappings":"AAkCA,wBAAsB,aAAa,CAAC,QAAQ,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB/F"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeInstaller = makeInstaller;
4
+ const logger_1 = require("../../utils/logger");
5
+ const modifications_service_1 = require("../modifications/modifications.service");
6
+ const os_1 = require("os");
7
+ const prerequisites_1 = require("./prerequisites");
8
+ const app_service_1 = require("../app.service");
9
+ const electronForge_1 = require("./electronForge");
10
+ const colors_1 = require("../../utils/colors");
11
+ const path_1 = require("../../utils/path");
12
+ const path_2 = require("path");
13
+ const promises_1 = require("fs/promises");
14
+ const fs_extra_1 = require("fs-extra");
15
+ // Conditionally import macOS helper only on macOS
16
+ let macOSInstallerHelper = null;
17
+ if (process.platform === 'darwin') {
18
+ try {
19
+ macOSInstallerHelper = require('./macOS.helper');
20
+ }
21
+ catch (error) {
22
+ // Will be handled later when needed
23
+ }
24
+ }
25
+ // Conditionally import windows helper only on Windows
26
+ let windowsHelper = null;
27
+ if (process.platform === 'win32') {
28
+ try {
29
+ windowsHelper = require('./windows.helper');
30
+ }
31
+ catch (error) {
32
+ // Will be handled later when needed
33
+ }
34
+ }
35
+ const logger = logger_1.Logger.getInstance();
36
+ async function makeInstaller(_options) {
37
+ logger.info('Creating installer...');
38
+ // Check prerequisites
39
+ await (0, prerequisites_1.validatePrerequisites)(['@electron-forge/core']);
40
+ // Build all apps to ensure latest code; this must be done before applying modifications
41
+ await (new app_service_1.AppService()).buildAllApps();
42
+ // apply modifications before singning and packaging
43
+ await (0, modifications_service_1.applyModifications)("prod");
44
+ await moveComponentsToIOCDFolder();
45
+ // sign executables
46
+ await sign();
47
+ // Create package using electron-builder
48
+ await (0, electronForge_1.createPackageWithElectronForge)();
49
+ logger.info((0, colors_1.green)('✨ Installer created successfully!'));
50
+ }
51
+ async function sign() {
52
+ if ((0, os_1.platform)() === 'darwin') {
53
+ if (!macOSInstallerHelper) {
54
+ logger.error('macOS installer helper module is required but not available');
55
+ throw new Error('macOS installer helper module is required but not available');
56
+ }
57
+ // Sign and notarize if macOS
58
+ await macOSInstallerHelper.signAndNotarizeMacOS();
59
+ }
60
+ else if ((0, os_1.platform)() === 'win32') {
61
+ if (!windowsHelper) {
62
+ logger.error('Windows installer helper module is required but not available');
63
+ throw new Error('Windows installer helper module is required but not available');
64
+ }
65
+ await windowsHelper.signIOCDBinaries();
66
+ }
67
+ }
68
+ async function moveComponentsToIOCDFolder() {
69
+ // move all components (except iocd) to iocd/components folder
70
+ // components are located in components folder
71
+ const componentsDir = path_1.PathUtils.getComponentsDir();
72
+ const iocdDir = path_1.PathUtils.getIOCDDir();
73
+ const iocdComponentsDir = (0, path_2.join)(iocdDir, 'components');
74
+ logger.debug(`Copying components from ${componentsDir} to ${iocdComponentsDir}`);
75
+ try {
76
+ // remove existing components folder if exists
77
+ if (await (0, fs_extra_1.pathExists)(iocdComponentsDir)) {
78
+ logger.debug('Removing existing iocd/components folder...');
79
+ await (0, fs_extra_1.remove)(iocdComponentsDir);
80
+ logger.debug('Existing iocd/components folder removed.');
81
+ }
82
+ await (0, fs_extra_1.ensureDir)(iocdComponentsDir);
83
+ const items = await (0, promises_1.readdir)(componentsDir);
84
+ for (const item of items) {
85
+ if (item === 'iocd') {
86
+ continue; // skip iocd itself
87
+ }
88
+ const srcPath = (0, path_2.join)(componentsDir, item);
89
+ const destPath = (0, path_2.join)(iocdComponentsDir, item);
90
+ logger.debug(`Copying ${srcPath} to ${destPath}....`);
91
+ await (0, promises_1.cp)(srcPath, destPath, { recursive: true, force: true });
92
+ logger.debug(`Copied ${item} successfully.`);
93
+ }
94
+ logger.debug('All components copied successfully.');
95
+ }
96
+ catch (error) {
97
+ logger.error(`Failed to copy components: ${error}`);
98
+ throw error;
99
+ }
100
+ }
101
+ //# sourceMappingURL=installer.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installer.service.js","sourceRoot":"","sources":["../../../src/services/installer/installer.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function signAndNotarizeMacOS(): Promise<void>;
2
+ export declare function signBinary(pathToSign: string): Promise<void>;
3
+ //# sourceMappingURL=macOS.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macOS.helper.d.ts","sourceRoot":"","sources":["../../../src/services/installer/macOS.helper.ts"],"names":[],"mappings":"AAcA,wBAAsB,oBAAoB,kBAKzC;AAGD,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBlE"}