@deploid/studio 2.0.5 → 2.0.7

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # Deploid Studio
2
2
 
3
- Desktop app for running Deploid workflows in a project folder with a guided UI.
3
+ Desktop app for running Deploid workflows in a project folder with a state-driven release dashboard.
4
4
 
5
5
  ## Install
6
6
 
@@ -17,9 +17,11 @@ deploid-studio
17
17
  ## What You Get
18
18
 
19
19
  - Project folder picker with recent-folder shortcuts.
20
- - Guided task selection cards (setup, build, deploy, debug, platform, integrations).
20
+ - Readiness-first workflow board driven by `deploid doctor`.
21
+ - Blockers, warnings, artifacts, and connected device visibility without digging through logs.
22
+ - Recommended quick actions based on current project state.
21
23
  - Live activity panel with output filters and copy/clear controls.
22
- - Run state indicators and quick session metrics.
24
+ - Run state indicators and session metrics.
23
25
 
24
26
  ## Notes
25
27
  - Deploid Studio executes `@deploid/cli` commands from the selected working directory.
@@ -13,7 +13,11 @@ if (!existsSync(appMain)) {
13
13
 
14
14
  const child = spawn(electronPath, [appMain, ...process.argv.slice(2)], {
15
15
  stdio: 'inherit',
16
- env: process.env
16
+ cwd: process.cwd(),
17
+ env: {
18
+ ...process.env,
19
+ DEPLOID_STUDIO_LAUNCH_CWD: process.cwd()
20
+ }
17
21
  });
18
22
 
19
23
  child.on('exit', (code) => process.exit(code ?? 0));
package/dist/main.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { app, BrowserWindow, dialog, ipcMain } from 'electron';
2
- import { spawn } from 'node:child_process';
2
+ import { spawn, spawnSync } from 'node:child_process';
3
+ import fs from 'node:fs';
3
4
  import { createRequire } from 'node:module';
4
- import { dirname, join } from 'node:path';
5
+ import { basename, dirname, join } from 'node:path';
5
6
  import { fileURLToPath } from 'node:url';
6
7
  const require = createRequire(import.meta.url);
7
8
  const __filename = fileURLToPath(import.meta.url);
@@ -10,6 +11,7 @@ let mainWindow = null;
10
11
  let activeProcess = null;
11
12
  const ALLOWED_COMMANDS = new Set([
12
13
  'init',
14
+ 'doctor',
13
15
  'assets',
14
16
  'package',
15
17
  'build',
@@ -46,17 +48,47 @@ function resolveCliEntrypoint() {
46
48
  function parseCommand(input) {
47
49
  return input.trim().split(/\s+/).filter(Boolean);
48
50
  }
49
- ipcMain.handle('studio:choose-project', async () => {
50
- const result = await dialog.showOpenDialog({
51
+ ipcMain.handle('studio:choose-project', async (_event, payload = {}) => {
52
+ const dialogOptions = {
53
+ defaultPath: payload.cwd && fs.existsSync(payload.cwd) ? payload.cwd : getLaunchCwd(),
51
54
  properties: ['openDirectory']
52
- });
55
+ };
56
+ const result = mainWindow
57
+ ? await dialog.showOpenDialog(mainWindow, dialogOptions)
58
+ : await dialog.showOpenDialog(dialogOptions);
53
59
  if (result.canceled || result.filePaths.length === 0) {
54
60
  return null;
55
61
  }
56
62
  return result.filePaths[0];
57
63
  });
58
64
  ipcMain.handle('studio:get-default-cwd', async () => {
59
- return process.cwd();
65
+ return getLaunchCwd();
66
+ });
67
+ ipcMain.handle('studio:get-doctor-report', async (_event, payload) => {
68
+ if (!payload.cwd) {
69
+ throw new Error('Project folder is required');
70
+ }
71
+ const cliEntrypoint = resolveCliEntrypoint();
72
+ const result = spawnSync(process.execPath, [cliEntrypoint, 'doctor', '--json', '--summary'], {
73
+ cwd: payload.cwd,
74
+ env: process.env,
75
+ encoding: 'utf8'
76
+ });
77
+ if (!result.stdout?.trim()) {
78
+ return null;
79
+ }
80
+ try {
81
+ return JSON.parse(result.stdout);
82
+ }
83
+ catch {
84
+ return null;
85
+ }
86
+ });
87
+ ipcMain.handle('studio:get-project-overview', async (_event, payload) => {
88
+ if (!payload.cwd) {
89
+ throw new Error('Project folder is required');
90
+ }
91
+ return loadProjectOverview(payload.cwd);
60
92
  });
61
93
  ipcMain.handle('studio:run-command', async (_event, payload) => {
62
94
  if (activeProcess) {
@@ -110,4 +142,101 @@ app.on('activate', () => {
110
142
  if (BrowserWindow.getAllWindows().length === 0)
111
143
  createWindow();
112
144
  });
145
+ function loadProjectOverview(cwd) {
146
+ const doctor = getDoctorReport(cwd);
147
+ const packageJsonPath = join(cwd, 'package.json');
148
+ const packageJson = readJson(packageJsonPath);
149
+ const projectName = packageJson?.productName ||
150
+ packageJson?.name ||
151
+ basename(cwd);
152
+ return {
153
+ projectName,
154
+ cwd,
155
+ doctor,
156
+ artifacts: findArtifacts(cwd),
157
+ devices: getConnectedDevices(),
158
+ presence: {
159
+ config: hasAnyFile(cwd, ['deploid.config.ts', 'deploid.config.js', 'deploid.config.mjs', 'deploid.config.cjs']),
160
+ capacitor: fs.existsSync(join(cwd, 'capacitor.config.json')),
161
+ android: fs.existsSync(join(cwd, 'android')),
162
+ electron: fs.existsSync(join(cwd, 'electron'))
163
+ }
164
+ };
165
+ }
166
+ function getLaunchCwd() {
167
+ const candidate = process.env.DEPLOID_STUDIO_LAUNCH_CWD || process.cwd();
168
+ if (candidate && fs.existsSync(candidate)) {
169
+ return candidate;
170
+ }
171
+ return process.cwd();
172
+ }
173
+ function getDoctorReport(cwd) {
174
+ const cliEntrypoint = resolveCliEntrypoint();
175
+ const result = spawnSync(process.execPath, [cliEntrypoint, 'doctor', '--json', '--summary'], {
176
+ cwd,
177
+ env: process.env,
178
+ encoding: 'utf8'
179
+ });
180
+ if (!result.stdout?.trim()) {
181
+ return null;
182
+ }
183
+ try {
184
+ return JSON.parse(result.stdout);
185
+ }
186
+ catch {
187
+ return null;
188
+ }
189
+ }
190
+ function findArtifacts(cwd) {
191
+ const candidates = [
192
+ { label: 'Debug APK', type: 'android', path: join(cwd, 'android/app/build/outputs/apk/debug/app-debug.apk') },
193
+ { label: 'Release APK', type: 'android', path: join(cwd, 'android/app/build/outputs/apk/release/app-release.apk') },
194
+ { label: 'Release AAB', type: 'android', path: join(cwd, 'android/app/build/outputs/bundle/release/app-release.aab') },
195
+ { label: 'Desktop output', type: 'desktop', path: join(cwd, 'dist-electron') }
196
+ ];
197
+ return candidates
198
+ .filter((candidate) => fs.existsSync(candidate.path))
199
+ .map((candidate) => ({
200
+ ...candidate,
201
+ size: formatSize(fs.statSync(candidate.path).size),
202
+ path: candidate.path
203
+ }));
204
+ }
205
+ function getConnectedDevices() {
206
+ const version = spawnSync('adb', ['version'], { encoding: 'utf8' });
207
+ if (version.status !== 0) {
208
+ return { available: false, count: 0, entries: [] };
209
+ }
210
+ const devices = spawnSync('adb', ['devices'], { encoding: 'utf8' });
211
+ const entries = `${devices.stdout || ''}`
212
+ .split('\n')
213
+ .filter((line) => /\t/.test(line))
214
+ .map((line) => {
215
+ const [id, status] = line.split('\t');
216
+ return { id, status: status || 'unknown' };
217
+ });
218
+ return {
219
+ available: true,
220
+ count: entries.length,
221
+ entries
222
+ };
223
+ }
224
+ function readJson(filePath) {
225
+ try {
226
+ return JSON.parse(fs.readFileSync(filePath, 'utf8'));
227
+ }
228
+ catch {
229
+ return null;
230
+ }
231
+ }
232
+ function hasAnyFile(cwd, filenames) {
233
+ return filenames.some((filename) => fs.existsSync(join(cwd, filename)));
234
+ }
235
+ function formatSize(bytes) {
236
+ if (bytes < 1024)
237
+ return `${bytes} B`;
238
+ if (bytes < 1024 * 1024)
239
+ return `${(bytes / 1024).toFixed(1)} KB`;
240
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
241
+ }
113
242
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/dist/preload.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { contextBridge, ipcRenderer } from 'electron';
2
2
  contextBridge.exposeInMainWorld('deploidStudio', {
3
3
  getDefaultCwd: () => ipcRenderer.invoke('studio:get-default-cwd'),
4
- chooseProject: () => ipcRenderer.invoke('studio:choose-project'),
4
+ getDoctorReport: (cwd) => ipcRenderer.invoke('studio:get-doctor-report', { cwd }),
5
+ getProjectOverview: (cwd) => ipcRenderer.invoke('studio:get-project-overview', { cwd }),
6
+ chooseProject: (cwd) => ipcRenderer.invoke('studio:choose-project', { cwd }),
5
7
  runCommand: (cwd, command) => ipcRenderer.invoke('studio:run-command', { cwd, command }),
6
8
  stopCommand: () => ipcRenderer.invoke('studio:stop-command'),
7
9
  onLog: (cb) => ipcRenderer.on('studio:log', (_event, payload) => cb(payload)),
@@ -1 +1 @@
1
- {"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEtD,aAAa,CAAC,iBAAiB,CAAC,eAAe,EAAE;IAC/C,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,wBAAwB,CAAoB;IACpF,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,uBAAuB,CAA2B;IAC1F,UAAU,EAAE,CAAC,GAAW,EAAE,OAAe,EAAE,EAAE,CAC3C,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAqC;IAChG,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,qBAAqB,CAAkC;IAC7F,KAAK,EAAE,CAAC,EAA8E,EAAE,EAAE,CACxF,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAChE,OAAO,EAAE,CAAC,EAAyC,EAAE,EAAE,CACrD,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;CACnE,CAAC,CAAC"}
1
+ {"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEtD,aAAa,CAAC,iBAAiB,CAAC,eAAe,EAAE;IAC/C,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,wBAAwB,CAAoB;IACpF,eAAe,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,0BAA0B,EAAE,EAAE,GAAG,EAAE,CAAiB;IACzG,kBAAkB,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,6BAA6B,EAAE,EAAE,GAAG,EAAE,CAAiB;IAC/G,aAAa,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAA2B;IAC/G,UAAU,EAAE,CAAC,GAAW,EAAE,OAAe,EAAE,EAAE,CAC3C,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAqC;IAChG,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,qBAAqB,CAAkC;IAC7F,KAAK,EAAE,CAAC,EAA8E,EAAE,EAAE,CACxF,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAChE,OAAO,EAAE,CAAC,EAAyC,EAAE,EAAE,CACrD,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;CACnE,CAAC,CAAC"}