@interopio/iocd-cli 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -2
- package/changelog.md +9 -0
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/apps.command.js +83 -0
- package/dist/commands/apps.command.js.map +1 -1
- package/dist/commands/index.js +3 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/skills.command.js +56 -0
- package/dist/commands/skills.command.js.map +1 -0
- package/dist/services/skills.service.js +178 -0
- package/dist/services/skills.service.js.map +1 -0
- package/dist/services/template.service.js +141 -9
- package/dist/services/template.service.js.map +1 -1
- package/dist/services/test-infrastructure.service.js +7 -17
- package/dist/services/test-infrastructure.service.js.map +1 -1
- package/dist/templates/ioconnect-desktop/README.md +28 -2
- package/dist/templates/launchpad/apps/launchpad/.gitignore.template +23 -1
- package/dist/templates/launchpad/apps/launchpad/.prettierignore +3 -0
- package/dist/templates/launchpad/apps/launchpad/.prettierrc +6 -0
- package/dist/templates/launchpad/apps/launchpad/README.md +220 -0
- package/dist/templates/launchpad/apps/launchpad/config/iocd.app.def.dev.json +1 -1
- package/dist/templates/launchpad/apps/launchpad/index.html +13 -14
- package/dist/templates/launchpad/apps/launchpad/package.json +17 -9
- package/dist/templates/launchpad/apps/launchpad/src/app/app.tsx +31 -37
- package/dist/templates/launchpad/apps/launchpad/src/components/launchpad.tsx +37 -0
- package/dist/templates/launchpad/apps/launchpad/src/{app → constants}/constants.ts +2 -1
- package/dist/templates/launchpad/apps/launchpad/src/main.tsx +1 -3
- package/dist/templates/launchpad/apps/launchpad/src/styles.css +2 -17
- package/dist/templates/launchpad/apps/launchpad/tsconfig.json +10 -8
- package/dist/templates/launchpad/apps/launchpad/vite-env.d.ts +1 -0
- package/dist/templates/launchpad/apps/launchpad/vite.config.ts +8 -3
- package/dist/templates/tests/tests/package.json +1 -1
- package/dist/utils/template-update.js +6 -0
- package/dist/utils/template-update.js.map +1 -0
- package/package.json +3 -1
- package/dist/templates/launchpad/apps/launchpad/package-lock.json +0 -2778
- package/dist/templates/launchpad/apps/launchpad/src/components/logo.tsx +0 -11
- package/dist/templates/launchpad/apps/launchpad/src/components/main-context-menu.tsx +0 -212
- package/dist/templates/launchpad/apps/launchpad/src/components/notifications-button.tsx +0 -51
- package/dist/templates/tests/tests/package-lock.json +0 -8441
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
<!
|
|
1
|
+
<!doctype html>
|
|
2
2
|
<html lang="en" class="dark">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
</body>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Launchpad</title>
|
|
6
|
+
<base href="./" />
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
8
|
+
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
|
9
|
+
<link rel="stylesheet" href="/src/styles.css" />
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<div id="root"></div>
|
|
13
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
14
|
+
</body>
|
|
16
15
|
</html>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
3
|
-
"version": "
|
|
2
|
+
"name": "io-connect-desktop-launchpad",
|
|
3
|
+
"version": "4.6.0",
|
|
4
4
|
"homepage": "./",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
@@ -8,14 +8,22 @@
|
|
|
8
8
|
"build": "vite build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@interopio/components-react": "
|
|
12
|
-
"@interopio/
|
|
13
|
-
"@interopio/react-hooks": "
|
|
14
|
-
"@interopio/workspaces-ui-react": "
|
|
11
|
+
"@interopio/components-react": "~4.6.0",
|
|
12
|
+
"@interopio/desktop": "~6.16.0",
|
|
13
|
+
"@interopio/react-hooks": "~4.6.0",
|
|
14
|
+
"@interopio/workspaces-ui-react": "~4.6.0",
|
|
15
|
+
"@interopio/modals-api": "~4.6.0",
|
|
16
|
+
"@interopio/search-api": "^3.3.0",
|
|
17
|
+
"@interopio/theme": "~4.6.0",
|
|
18
|
+
"react": "~18.2.0",
|
|
19
|
+
"react-dom": "~18.2.0"
|
|
15
20
|
},
|
|
16
21
|
"devDependencies": {
|
|
17
|
-
"@
|
|
18
|
-
"
|
|
19
|
-
"
|
|
22
|
+
"@types/node": "~20.12.7",
|
|
23
|
+
"@types/react": "~18.2.79",
|
|
24
|
+
"@types/react-dom": "~18.2.25",
|
|
25
|
+
"@vitejs/plugin-react": "~3.0.0",
|
|
26
|
+
"typescript": "~5.8.2",
|
|
27
|
+
"vite": "~4.0.1"
|
|
20
28
|
}
|
|
21
29
|
}
|
|
@@ -1,45 +1,39 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
LaunchpadHeader,
|
|
5
|
-
LaunchpadContentsContainer,
|
|
6
|
-
PlatformPrefsProvider,
|
|
7
|
-
} from "@interopio/home-ui-react";
|
|
8
|
-
import { ioConfig } from "./constants";
|
|
9
|
-
import { ThemeProvider, IONotifications } from "@interopio/components-react";
|
|
10
|
-
import Logo from "../components/logo";
|
|
11
|
-
import NotificationsButton from "../components/notifications-button";
|
|
12
|
-
import MainContextMenu from "../components/main-context-menu";
|
|
1
|
+
import { lazy, Suspense, useContext, useEffect } from "react";
|
|
2
|
+
import { IOConnectContext, IOConnectProvider } from "@interopio/react-hooks";
|
|
3
|
+
import { ioConfig } from "../constants/constants";
|
|
13
4
|
import "@interopio/workspaces-ui-react/dist/styles/workspaces.css";
|
|
14
|
-
import "@interopio/
|
|
5
|
+
import "@interopio/components-react/dist/styles/components/ui/dropdown-menu.css";
|
|
6
|
+
import "@interopio/components-react/dist/styles/components/ui/overlay-scrollbars-container.css";
|
|
7
|
+
import "@interopio/components-react/dist/styles/features/active-panel-renderer/styles.css";
|
|
8
|
+
import "@interopio/components-react/dist/styles/features/notifications/styles.css";
|
|
9
|
+
import "@interopio/components-react/dist/styles/features/preferences/styles.css";
|
|
10
|
+
import "@interopio/components-react/dist/styles/features/profile/styles.css";
|
|
11
|
+
import "@interopio/components-react/dist/styles/features/launchpad/styles.css";
|
|
12
|
+
import "@interopio/components-react/dist/styles/features/launchpad-desktop/styles.css";
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
const Launchpad = lazy(() => import("../components/launchpad"));
|
|
15
|
+
|
|
16
|
+
// IOConnectProvider owns the only io.Connect initialization - read the resulting instance from context instead of initializing again.
|
|
17
|
+
function GlobalIOBinder() {
|
|
18
|
+
const io = useContext(IOConnectContext);
|
|
19
|
+
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (io) {
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
(globalThis as any).io = io;
|
|
24
|
+
}
|
|
25
|
+
}, [io]);
|
|
18
26
|
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function App() {
|
|
19
31
|
return (
|
|
20
32
|
<IOConnectProvider settings={ioConfig}>
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
components={{
|
|
26
|
-
header: {
|
|
27
|
-
BeforeSearch: () => <Logo />,
|
|
28
|
-
AfterSearch: () => (
|
|
29
|
-
<>
|
|
30
|
-
<NotificationsButton />
|
|
31
|
-
<MainContextMenu />
|
|
32
|
-
</>
|
|
33
|
-
),
|
|
34
|
-
},
|
|
35
|
-
}}
|
|
36
|
-
>
|
|
37
|
-
<LaunchpadHeader />
|
|
38
|
-
<LaunchpadBody />
|
|
39
|
-
</LaunchpadContentsContainer>
|
|
40
|
-
</NotificationsProvider>
|
|
41
|
-
</ThemeProvider>
|
|
42
|
-
</PlatformPrefsProvider>
|
|
33
|
+
<GlobalIOBinder />
|
|
34
|
+
<Suspense fallback={null}>
|
|
35
|
+
<Launchpad />
|
|
36
|
+
</Suspense>
|
|
43
37
|
</IOConnectProvider>
|
|
44
38
|
);
|
|
45
39
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ThemeProvider,
|
|
3
|
+
PlatformPrefsProvider,
|
|
4
|
+
IOActivePanelRenderer,
|
|
5
|
+
IODownloadManager,
|
|
6
|
+
IOLaunchpadDesktop,
|
|
7
|
+
IONotifications,
|
|
8
|
+
} from "@interopio/components-react";
|
|
9
|
+
|
|
10
|
+
const { PanelManagerProvider } = IOActivePanelRenderer;
|
|
11
|
+
const { DownloadManagerProvider } = IODownloadManager;
|
|
12
|
+
const { LaunchpadProvider, LaunchpadBodyPopupProvider, PanelPopupProvider, Launchpad } = IOLaunchpadDesktop;
|
|
13
|
+
const { NotificationsProvider } = IONotifications;
|
|
14
|
+
|
|
15
|
+
function LaunchpadWrapper() {
|
|
16
|
+
return (
|
|
17
|
+
<ThemeProvider>
|
|
18
|
+
<PlatformPrefsProvider>
|
|
19
|
+
<NotificationsProvider>
|
|
20
|
+
<DownloadManagerProvider>
|
|
21
|
+
<PanelManagerProvider>
|
|
22
|
+
<LaunchpadProvider>
|
|
23
|
+
<LaunchpadBodyPopupProvider>
|
|
24
|
+
<PanelPopupProvider>
|
|
25
|
+
<Launchpad />
|
|
26
|
+
</PanelPopupProvider>
|
|
27
|
+
</LaunchpadBodyPopupProvider>
|
|
28
|
+
</LaunchpadProvider>
|
|
29
|
+
</PanelManagerProvider>
|
|
30
|
+
</DownloadManagerProvider>
|
|
31
|
+
</NotificationsProvider>
|
|
32
|
+
</PlatformPrefsProvider>
|
|
33
|
+
</ThemeProvider>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export default LaunchpadWrapper;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import IODesktop from "@interopio/desktop";
|
|
2
2
|
import IOSearch from "@interopio/search-api";
|
|
3
3
|
import IOWorkspaces from "@interopio/workspaces-api";
|
|
4
|
+
import IOModalsAPI from "@interopio/modals-api";
|
|
4
5
|
import { IOConnectInitSettings } from "@interopio/react-hooks";
|
|
5
6
|
|
|
6
7
|
export const ioConfig = {
|
|
@@ -12,7 +13,7 @@ export const ioConfig = {
|
|
|
12
13
|
level: "warn",
|
|
13
14
|
},
|
|
14
15
|
},
|
|
15
|
-
libraries: [IOWorkspaces, IOSearch],
|
|
16
|
+
libraries: [IOWorkspaces, IOSearch, IOModalsAPI],
|
|
16
17
|
appManager: "full",
|
|
17
18
|
layouts: "full",
|
|
18
19
|
activities: "trackAll",
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import * as ReactDOM from "react-dom/client";
|
|
2
2
|
import App from "./app/app";
|
|
3
3
|
|
|
4
|
-
const root = ReactDOM.createRoot(
|
|
5
|
-
document.getElementById("root") as HTMLElement
|
|
6
|
-
);
|
|
4
|
+
const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement);
|
|
7
5
|
|
|
8
6
|
root.render(<App />);
|
|
@@ -1,17 +1,2 @@
|
|
|
1
|
-
/*
|
|
2
|
-
|
|
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
|
-
}
|
|
1
|
+
/* App-specific overrides go here. Launchpad desktop styling now ships with
|
|
2
|
+
@interopio/components-react/dist/styles/features/launchpad-desktop/styles.css */
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"module": "esnext",
|
|
4
|
+
"moduleResolution": "bundler",
|
|
5
|
+
"jsx": "react-jsx",
|
|
6
|
+
"esModuleInterop": true,
|
|
7
|
+
"resolveJsonModule": true,
|
|
8
|
+
"allowJs": false,
|
|
9
|
+
"allowSyntheticDefaultImports": true,
|
|
10
|
+
"strict": true
|
|
11
|
+
}
|
|
10
12
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|
|
@@ -2,10 +2,15 @@ import { defineConfig } from "vite";
|
|
|
2
2
|
import react from "@vitejs/plugin-react";
|
|
3
3
|
|
|
4
4
|
export default defineConfig({
|
|
5
|
+
plugins: [react()],
|
|
6
|
+
base: "./",
|
|
5
7
|
server: {
|
|
6
|
-
port:
|
|
8
|
+
port: 4242,
|
|
7
9
|
host: "localhost",
|
|
8
10
|
},
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
build: {
|
|
12
|
+
commonjsOptions: {
|
|
13
|
+
include: [/@interopio\/components-react/, /node_modules/],
|
|
14
|
+
},
|
|
15
|
+
},
|
|
11
16
|
});
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@interopio/desktop": "^6.21.0",
|
|
13
|
-
"@interopio/wdio-iocd-service": "
|
|
13
|
+
"@interopio/wdio-iocd-service": "next",
|
|
14
14
|
"@interopio/workspaces-api": "^4.5.0",
|
|
15
15
|
"@types/chai": "^5.2.3",
|
|
16
16
|
"@types/mocha": "^10.0.10",
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTemplateUpdateWarning = void 0;
|
|
4
|
+
const getTemplateUpdateWarning = (appNames) => `Updating ${appNames.join(", ")} will permanently delete the existing template application files and replace them with the current CLI templates. Any customizations in those app directories will be lost. Commit or copy your work before continuing.`;
|
|
5
|
+
exports.getTemplateUpdateWarning = getTemplateUpdateWarning;
|
|
6
|
+
//# sourceMappingURL=template-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-update.js","sourceRoot":"","sources":["../../src/utils/template-update.ts"],"names":[],"mappings":";;;AAAO,MAAM,wBAAwB,GAAG,CAAC,QAAkB,EAAU,EAAE,CACrE,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,yNAAyN,CAAC;AAD9O,QAAA,wBAAwB,4BACsN"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interopio/iocd-cli",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "CLI tool for setting up, building and packaging io.Connect Desktop platforms",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=22.0.0",
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
"jsonwebtoken": "^9.0.2",
|
|
61
61
|
"log4js": "^6.9.1",
|
|
62
62
|
"plist": "^3.1.0",
|
|
63
|
+
"proper-lockfile": "^4.1.2",
|
|
63
64
|
"undici": "^7.16.0"
|
|
64
65
|
},
|
|
65
66
|
"devDependencies": {
|
|
@@ -73,6 +74,7 @@
|
|
|
73
74
|
"@types/jsonwebtoken": "^9.0.10",
|
|
74
75
|
"@types/log4js": "^0.0.33",
|
|
75
76
|
"@types/node": "^22.19.17",
|
|
77
|
+
"@types/proper-lockfile": "^4.1.4",
|
|
76
78
|
"@typescript-eslint/eslint-plugin": "^8.47.0",
|
|
77
79
|
"@typescript-eslint/parser": "^8.47.0",
|
|
78
80
|
"cross-env": "^10.1.0",
|