@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,21 @@
1
+ {
2
+ "name": "dev-launchpad",
3
+ "version": "1.0.5",
4
+ "homepage": "./",
5
+ "private": true,
6
+ "scripts": {
7
+ "start": "vite",
8
+ "build": "vite build"
9
+ },
10
+ "dependencies": {
11
+ "@interopio/components-react": "^0.7.3",
12
+ "@interopio/home-ui-react": "^2.0.4",
13
+ "@interopio/react-hooks": "^4.0.3",
14
+ "@interopio/workspaces-ui-react": "^4.0.4"
15
+ },
16
+ "devDependencies": {
17
+ "@vitejs/plugin-react": "^5.0.2",
18
+ "vite": "^7.1.5",
19
+ "vite-plugin-environment": "^1.1.3"
20
+ }
21
+ }
@@ -0,0 +1,39 @@
1
+ import { Launchpad, PlatformPrefsProvider } from "@interopio/home-ui-react";
2
+ import { IOConnectProvider } from "@interopio/react-hooks";
3
+ import { ioConfig } from "./constants";
4
+ import { ThemeProvider, IONotifications } from "@interopio/components-react";
5
+ import Logo from "../components/logo";
6
+ import NotificationsButton from "../components/notifications-button";
7
+ import MainContextMenu from "../components/main-context-menu";
8
+ import "@interopio/workspaces-ui-react/dist/styles/workspaces.css";
9
+ import "@interopio/home-ui-react/index.css";
10
+
11
+ export function App() {
12
+ const { NotificationsProvider } = IONotifications;
13
+
14
+ return (
15
+ <IOConnectProvider settings={ioConfig}>
16
+ <PlatformPrefsProvider>
17
+ <ThemeProvider>
18
+ <NotificationsProvider>
19
+ <Launchpad
20
+ components={{
21
+ header: {
22
+ BeforeSearch: () => <Logo />,
23
+ AfterSearch: () => (
24
+ <>
25
+ <NotificationsButton />
26
+ <MainContextMenu />
27
+ </>
28
+ )
29
+ }
30
+ }}
31
+ />
32
+ </NotificationsProvider>
33
+ </ThemeProvider>
34
+ </PlatformPrefsProvider>
35
+ </IOConnectProvider>
36
+ );
37
+ }
38
+
39
+ export default App;
@@ -0,0 +1,27 @@
1
+ import IODesktop from "@interopio/desktop";
2
+ import IOSearch from "@interopio/search-api";
3
+ import IOWorkspaces from "@interopio/workspaces-api";
4
+ import { IOConnectInitSettings } from "@interopio/react-hooks";
5
+
6
+ export const ioConfig = {
7
+ desktop: {
8
+ factory: IODesktop,
9
+ config: {
10
+ gateway: {
11
+ logging: {
12
+ level: "warn"
13
+ }
14
+ },
15
+ libraries: [IOWorkspaces, IOSearch],
16
+ appManager: "full",
17
+ layouts: "full",
18
+ activities: "trackAll",
19
+ channels: false,
20
+ metrics: false,
21
+ contexts: true,
22
+ systemLogger: {
23
+ level: "warn"
24
+ }
25
+ }
26
+ }
27
+ } as IOConnectInitSettings;
@@ -0,0 +1,11 @@
1
+ import { ButtonIcon } from "@interopio/components-react";
2
+
3
+ function Logo() {
4
+ return (
5
+ <div className="logo draggable">
6
+ <ButtonIcon variant="circle" icon="logo" size='32' />
7
+ </div>
8
+ );
9
+ }
10
+
11
+ export default Logo;
@@ -0,0 +1,162 @@
1
+ import { useCallback, useContext, useMemo } from "react";
2
+ import { IOConnectDesktop } from "@interopio/desktop";
3
+ import { IOConnectContext } from "@interopio/react-hooks";
4
+ import { Dropdown, Icon, IconProps, Separator } from "@interopio/components-react";
5
+
6
+ const PLATFORM_UTILITY_PAGES = {
7
+ ABOUT: "about",
8
+ HOTKEYS: "hotkeys",
9
+ FEEDBACK: "feedback",
10
+ } as const;
11
+
12
+ const PLATFORM_APPS = {
13
+ DOWNLOAD_MANAGER: "io-connect-download-manager",
14
+ } as const;
15
+
16
+ type PageKey = keyof typeof PLATFORM_UTILITY_PAGES;
17
+ type PageName = typeof PLATFORM_UTILITY_PAGES[PageKey];
18
+ type AppKey = keyof typeof PLATFORM_APPS;
19
+ type AppName = typeof PLATFORM_APPS[AppKey];
20
+
21
+ function MainContextMenu() {
22
+ const io = useContext(IOConnectContext) as IOConnectDesktop.API;
23
+
24
+ const startPage = useCallback(async (pageName: PageName) => {
25
+ if (!io) {
26
+ console.warn("IOConnectContext not available");
27
+ return;
28
+ }
29
+
30
+ try {
31
+ await io.interop.invoke("T42.GD.Execute", {
32
+ command: "open-utility-page",
33
+ args: { name: pageName },
34
+ });
35
+ } catch (error) {
36
+ console.warn("Failed to open utility page", pageName, error);
37
+ }
38
+ }, [io]);
39
+
40
+ const startApp = useCallback(async (appName: AppName) => {
41
+ if (!io) {
42
+ console.warn("IOConnectContext not available");
43
+ return;
44
+ }
45
+
46
+ try {
47
+ const app = io.appManager.application(appName);
48
+ if (!app) {
49
+ throw new Error(`Cannot find app with name "${appName}"`);
50
+ }
51
+ await app.start();
52
+ } catch (error) {
53
+ console.warn("Failed to start app", appName, error);
54
+ }
55
+ }, [io]);
56
+
57
+ const openDownloads = useCallback(() => {
58
+ startApp(PLATFORM_APPS.DOWNLOAD_MANAGER);
59
+ }, [startApp]);
60
+
61
+ const openFeedback = useCallback(() => {
62
+ startPage(PLATFORM_UTILITY_PAGES.FEEDBACK);
63
+ }, [startPage]);
64
+
65
+ const openHotkeys = useCallback(() => {
66
+ startPage(PLATFORM_UTILITY_PAGES.HOTKEYS);
67
+ }, [startPage]);
68
+
69
+ const handleMinimize = useCallback(async () => {
70
+ if (!io) {
71
+ console.warn("IOConnectContext not available");
72
+ return;
73
+ }
74
+
75
+ const myWindow = io.windows.my();
76
+
77
+ if (!myWindow) {
78
+ return;
79
+ }
80
+
81
+ try {
82
+ await myWindow.minimize();
83
+ } catch (error) {
84
+ console.error("Failed to minimize window", error);
85
+ }
86
+ }, [io]);
87
+
88
+ const handleRestart = useCallback(async () => {
89
+ if (!io) {
90
+ console.warn("IOConnectContext not available");
91
+ return;
92
+ }
93
+
94
+ try {
95
+ await io.appManager.restart({
96
+ autoSave: true,
97
+ showDialog: true,
98
+ });
99
+ } catch (error) {
100
+ console.error("Failed to restart io.Connect Desktop", error);
101
+ }
102
+ }, [io]);
103
+
104
+ const handleShutdown = useCallback(async () => {
105
+ if (!io) {
106
+ console.warn("IOConnectContext not available");
107
+ return;
108
+ }
109
+
110
+ try {
111
+ await io.appManager.exit({
112
+ autoSave: true,
113
+ showDialog: true,
114
+ });
115
+ } catch (error) {
116
+ console.error("Failed to shutdown io.Connect Desktop", error);
117
+ }
118
+ }, [io]);
119
+
120
+ const menuItems = useMemo(() => [
121
+ { label: "Pin Launchpad", icon: "pin", onClick: () => null, disabled: true },
122
+ { label: "Dock Launchpad", onClick: () => null, disabled: true },
123
+ { separator: true },
124
+ { label: "Platform Preferences", icon: "cog", onClick: () => null, disabled: true },
125
+ { label: "Notification Settings", icon: "bell", onClick: () => null, disabled: true },
126
+ { label: "Intent Resolver Settings", icon: "list-ul", onClick: () => null, disabled: true },
127
+ { separator: true },
128
+ { label: "Profile", icon: "user", onClick: () => null, disabled: true },
129
+ { separator: true },
130
+ { label: "Downloads", onClick: openDownloads },
131
+ { separator: true },
132
+ { label: "Feedback", icon: "feedback", onClick: openFeedback },
133
+ { label: "Keyboard Shortcuts", icon: "keyboard", onClick: openHotkeys },
134
+ { separator: true },
135
+ { label: "Minimize", icon: "minimize-down", onClick: handleMinimize },
136
+ { label: "Restart", icon: "rotate-right", onClick: handleRestart },
137
+ { label: "Shut Down", icon: "power-off", onClick: handleShutdown },
138
+ ], [openDownloads, openFeedback, openHotkeys, handleMinimize, handleRestart, handleShutdown]);
139
+
140
+ return (
141
+ <div className="launchpad-header-actions">
142
+ <Dropdown>
143
+ <Dropdown.ButtonIcon variant='circle' icon="ellipsis-vertical" title='More' />
144
+ <Dropdown.Content>
145
+ <Dropdown.List>
146
+ { menuItems.map((item, idx) =>
147
+ item.separator ? (
148
+ <Separator key={`sep-${idx}`} />
149
+ ) : (
150
+ <Dropdown.Item key={item.label} prepend={<Icon variant={item.icon as IconProps["variant"]} />} onClick={item.onClick} disabled={item.disabled}>
151
+ {item.label}
152
+ </Dropdown.Item>
153
+ )
154
+ )}
155
+ </Dropdown.List>
156
+ </Dropdown.Content>
157
+ </Dropdown>
158
+ </div>
159
+ );
160
+ }
161
+
162
+ export default MainContextMenu;
@@ -0,0 +1,44 @@
1
+ import { useEffect, useContext, useCallback, useState } from "react";
2
+ import { IOConnectDesktop } from "@interopio/desktop";
3
+ import { IOConnectContext } from "@interopio/react-hooks";
4
+ import { Badge, ButtonIcon } from "@interopio/components-react";
5
+
6
+ function NotificationsButton() {
7
+ const io = useContext(IOConnectContext) as IOConnectDesktop.API;
8
+ const [notificationsCount, setNotificationsCount] = useState(0);
9
+
10
+ const openNotificationPanel = useCallback(async () => {
11
+ const isPanelVisible = await io.notifications.panel.isVisible();
12
+
13
+ if (isPanelVisible) {
14
+ return;
15
+ }
16
+
17
+ try {
18
+ await io.notifications.panel.show();
19
+ } catch (error) {
20
+ console.error("Failed to open notifications panel.", error);
21
+ }
22
+ }, []);
23
+
24
+ useEffect(() => {
25
+ const unCounterChanged = io.notifications.onCounterChanged(info => setNotificationsCount(info.count));
26
+
27
+ return () => {
28
+ unCounterChanged();
29
+ };
30
+ }, [io]);
31
+
32
+ return (
33
+ <div className="launchpad-header-notifications-button">
34
+ {notificationsCount > 0 && (
35
+ <Badge variant="primary">
36
+ {notificationsCount > 99 ? "99+" : notificationsCount}
37
+ </Badge>
38
+ )}
39
+ <ButtonIcon variant="circle" icon="bell" size='32' onClick={openNotificationPanel} />
40
+ </div>
41
+ );
42
+ }
43
+
44
+ export default NotificationsButton;
@@ -0,0 +1,6 @@
1
+ import * as ReactDOM from "react-dom/client";
2
+ import App from "./app/app";
3
+
4
+ const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement);
5
+
6
+ root.render(<App />);
@@ -0,0 +1,17 @@
1
+ /* You can add global styles to this file, and also import other style files */
2
+ .launchpad-header-notifications-button {
3
+ position: relative;
4
+ }
5
+
6
+ .launchpad-header-notifications-button .io-badge {
7
+ position: absolute;
8
+ top: 7px;
9
+ right: -2px;
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: center;
13
+ min-width: var(--spacing-16);
14
+ height: var(--spacing-16);
15
+ margin: calc(var(--spacing-10) * -1) auto 0 calc(var(--spacing-4) * -1);
16
+ font-size: var(--spacing-10);
17
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "compilerOptions": {
3
+ "jsx": "react-jsx",
4
+ "esModuleInterop": true,
5
+ "resolveJsonModule": true,
6
+ "allowJs": false,
7
+ "allowSyntheticDefaultImports": true,
8
+ "strict": true
9
+ }
10
+ }
@@ -0,0 +1,13 @@
1
+ import { defineConfig } from "vite";
2
+ import react from "@vitejs/plugin-react";
3
+ import EnvironmentPlugin from "vite-plugin-environment";
4
+
5
+ export default defineConfig({
6
+ server: {
7
+ port: 5178,
8
+ host: "localhost"
9
+ },
10
+ base: "./",
11
+ plugins: [react(), EnvironmentPlugin("all")]
12
+ });
13
+
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "launchpad",
3
+ "displayName": "Launchpad",
4
+ "description": "Adds custom application launchpad interface to io.Connect Desktop",
5
+ "version": "1.0.0",
6
+ "type": "application",
7
+ "setupUI": {
8
+ "text": "Add a custom launchpad",
9
+ "separate": false,
10
+ "selected": false
11
+ }
12
+ }
@@ -0,0 +1,119 @@
1
+ # io.Connect Desktop Splash Screen
2
+
3
+ A modern TypeScript-based splash screen application built with Vite for io.Connect Desktop.
4
+
5
+ ## Overview
6
+
7
+ This splash screen application is built using Vite with TypeScript and replicates the functionality of the original JavaScript-based splash screen. It provides a loading interface during application startup with status updates and gateway connectivity testing.
8
+
9
+ ## Features
10
+
11
+ - **TypeScript Support**: Full type safety with proper interfaces
12
+ - **Modern Build System**: Vite for fast development and optimized builds
13
+ - **Status Updates**: Displays loading messages and progress
14
+ - **Gateway Testing**: Tests WebSocket connectivity to the gateway
15
+ - **URL Parameter Support**: Configurable via query parameters
16
+ - **Responsive Design**: Maintains the original visual design
17
+
18
+ ## Development
19
+
20
+ ### Prerequisites
21
+
22
+ - Node.js (v16 or higher)
23
+ - npm
24
+
25
+ ### Getting Started
26
+
27
+ 1. Install dependencies:
28
+ ```bash
29
+ npm install
30
+ ```
31
+
32
+ 2. Start development server:
33
+ ```bash
34
+ npm run dev
35
+ ```
36
+
37
+ 3. Build for production:
38
+ ```bash
39
+ npm run build
40
+ ```
41
+
42
+ 4. Preview production build:
43
+ ```bash
44
+ npm run preview
45
+ ```
46
+
47
+ ### Type Checking
48
+
49
+ Run TypeScript type checking:
50
+ ```bash
51
+ npm run type-check
52
+ ```
53
+
54
+ ## URL Parameters
55
+
56
+ The splash screen accepts the following URL parameters:
57
+
58
+ - `message`: Initial status message to display
59
+ - `version`: Application version number
60
+ - `env`: Environment name (e.g., "DEMO", "PROD")
61
+ - `region`: Region identifier (e.g., "INTEROP.IO")
62
+
63
+ Example:
64
+ ```
65
+ splash.html?message=Starting&env=DEMO&region=INTEROP.IO&version=9.0.0.25
66
+ ```
67
+
68
+ ## API Integration
69
+
70
+ The splash screen integrates with the main application via the `glue42splash` global object:
71
+
72
+ ### Events
73
+
74
+ - **updateStatus**: Updates the status message
75
+ ```typescript
76
+ glue42splash.on("updateStatus", (arg: { text: string }) => {
77
+ // Updates status display
78
+ });
79
+ ```
80
+
81
+ - **pingGW**: Tests gateway connectivity
82
+ ```typescript
83
+ glue42splash.on("pingGW", (arg: { gwURL: string }) => {
84
+ // Tests WebSocket connection to gateway
85
+ });
86
+ ```
87
+
88
+ ## File Structure
89
+
90
+ ```
91
+ src/
92
+ ├── main.ts # Main application logic
93
+ ├── types.ts # TypeScript type definitions
94
+ public/
95
+ ├── assets/ # Copied from original splash screen
96
+ │ ├── images/ # Logo and background images
97
+ │ ├── styles/ # CSS styles
98
+ │ └── fonts/ # Custom fonts
99
+ └── index.html # Main HTML template
100
+ ```
101
+
102
+ ## Build Output
103
+
104
+ The build process generates optimized files in the `dist/` directory:
105
+ - `index.html` - Main HTML file
106
+ - `assets/` - Bundled and optimized JavaScript/CSS files
107
+ - `assets/` - Static assets (images, fonts, styles)
108
+
109
+ ## Migration from Original
110
+
111
+ This Vite-based implementation maintains 100% functional compatibility with the original JavaScript-based splash screen while adding:
112
+
113
+ - TypeScript type safety
114
+ - Modern ES6+ syntax and features
115
+ - Optimized build process
116
+ - Better development experience
117
+ - Modular code organization
118
+
119
+ The visual appearance and all functionality remain identical to ensure seamless integration with existing io.Connect Desktop applications.
@@ -0,0 +1,9 @@
1
+ {
2
+ "splash": {
3
+ "disabled": false,
4
+ "url": "http://localhost:5177/",
5
+ "width": 350,
6
+ "height": 233,
7
+ "blockStartup": true
8
+ }
9
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "splash": {
3
+ "disabled": false,
4
+ "width": 350,
5
+ "height": 233,
6
+ "blockStartup": true
7
+ }
8
+ }
@@ -0,0 +1,55 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" http-equiv="CACHE-CONTROL" content="NO-CACHE" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, initial-scale=1,
8
+ shrink-to-fit=no"
9
+ />
10
+ <meta name="description" content="io.Connect Desktop" />
11
+ <meta name="author" content="interop.io" />
12
+ <link rel="stylesheet" href="/assets/styles/style.css" />
13
+ <title>io.Connect Desktop</title>
14
+ </head>
15
+
16
+ <body style="-webkit-app-region: drag">
17
+ <div class="splash-wrapper">
18
+ <div class="logo-wrapper">
19
+ <img
20
+ src="/assets/images/logo-light.svg"
21
+ width="160"
22
+ class="logo"
23
+ />
24
+ </div>
25
+ <div class="version" id="version"><span> </span></div>
26
+ <div class="status" id="status">...</div>
27
+ <div class="loader">
28
+ <div></div>
29
+ <div></div>
30
+ <div></div>
31
+ <div></div>
32
+ <div></div>
33
+ <div></div>
34
+ <div></div>
35
+ <div></div>
36
+ <div></div>
37
+ <div></div>
38
+ <div></div>
39
+ <div></div>
40
+ <div></div>
41
+ <div></div>
42
+ <div></div>
43
+ <div></div>
44
+ <div></div>
45
+ <div></div>
46
+ <div></div>
47
+ <div></div>
48
+ </div>
49
+ <div class="copyright" id="copyright">
50
+ Interop Inc All rights reserved.
51
+ </div>
52
+ </div>
53
+ <script type="module" src="/src/main.ts"></script>
54
+ </body>
55
+ </html>
@@ -0,0 +1,20 @@
1
+ {
2
+ "dev": {
3
+ "script": "start",
4
+ "modifications": [
5
+ {
6
+ "source": "/config/system-dev.json",
7
+ "destination": "/modifications/iocd/config/system.json.merge-splash"
8
+ }
9
+ ]
10
+ },
11
+ "prod": {
12
+ "script": "build",
13
+ "modifications": [
14
+ {
15
+ "source": "/config/system-prod.json",
16
+ "destination": "/modifications/iocd/config/system.json.merge-splash"
17
+ }
18
+ ]
19
+ }
20
+ }