@dimina-kit/devtools 0.1.0 → 0.2.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/dist/main/api.d.ts +3 -1
- package/dist/main/api.d.ts.map +1 -1
- package/dist/main/api.js +2 -0
- package/dist/main/api.js.map +1 -1
- package/dist/main/app/app.d.ts +2 -0
- package/dist/main/app/app.d.ts.map +1 -1
- package/dist/main/app/app.js +29 -7
- package/dist/main/app/app.js.map +1 -1
- package/dist/main/services/automation/index.d.ts +2 -1
- package/dist/main/services/automation/index.d.ts.map +1 -1
- package/dist/main/services/automation/index.js +28 -4
- package/dist/main/services/automation/index.js.map +1 -1
- package/dist/main/services/simulator-storage/index.d.ts +20 -0
- package/dist/main/services/simulator-storage/index.d.ts.map +1 -0
- package/dist/main/services/simulator-storage/index.js +136 -0
- package/dist/main/services/simulator-storage/index.js.map +1 -0
- package/dist/main/services/update/github-release-checker.d.ts +49 -0
- package/dist/main/services/update/github-release-checker.d.ts.map +1 -0
- package/dist/main/services/update/github-release-checker.js +248 -0
- package/dist/main/services/update/github-release-checker.js.map +1 -0
- package/dist/main/services/update/index.d.ts +5 -0
- package/dist/main/services/update/index.d.ts.map +1 -0
- package/dist/main/services/update/index.js +3 -0
- package/dist/main/services/update/index.js.map +1 -0
- package/dist/main/services/update/update-manager.d.ts +37 -0
- package/dist/main/services/update/update-manager.d.ts.map +1 -0
- package/dist/main/services/update/update-manager.js +90 -0
- package/dist/main/services/update/update-manager.js.map +1 -0
- package/dist/preload/instrumentation/index.d.ts +0 -1
- package/dist/preload/instrumentation/index.d.ts.map +1 -1
- package/dist/preload/instrumentation/index.js +0 -1
- package/dist/preload/instrumentation/index.js.map +1 -1
- package/dist/preload/windows/main.d.ts +0 -1
- package/dist/preload/windows/main.d.ts.map +1 -1
- package/dist/preload/windows/main.js +0 -1
- package/dist/preload/windows/main.js.map +1 -1
- package/dist/preload/windows/simulator.js +1 -109
- package/dist/preload/windows/simulator.js.map +4 -4
- package/dist/renderer/assets/index-D_HFRqZA.js +46 -0
- package/dist/renderer/assets/index-D_HFRqZA.js.map +1 -0
- package/dist/renderer/assets/{input-B7sz4y1r.js → input-VLotwer2.js} +2 -2
- package/dist/renderer/assets/{input-B7sz4y1r.js.map → input-VLotwer2.js.map} +1 -1
- package/dist/renderer/assets/ipc-transport-6Gy3FXIL.css +1 -0
- package/dist/renderer/assets/{ipc-transport-L_WD9x12.js → ipc-transport-COKIC6Ny.js} +6 -6
- package/dist/renderer/assets/ipc-transport-COKIC6Ny.js.map +1 -0
- package/dist/renderer/assets/{popover-CzMIs2j4.js → popover-Dn0RwMLI.js} +2 -2
- package/dist/renderer/assets/{popover-CzMIs2j4.js.map → popover-Dn0RwMLI.js.map} +1 -1
- package/dist/renderer/assets/{select-BBXJVe8R.js → select-DzIsLaKX.js} +2 -2
- package/dist/renderer/assets/{select-BBXJVe8R.js.map → select-DzIsLaKX.js.map} +1 -1
- package/dist/renderer/assets/{settings-Db1pvrBJ.js → settings-CD-dacWB.js} +2 -2
- package/dist/renderer/assets/{settings-Db1pvrBJ.js.map → settings-CD-dacWB.js.map} +1 -1
- package/dist/renderer/assets/settings-api-BV9MPckG.js +2 -0
- package/dist/renderer/assets/{settings-api-DJ1M-CNt.js.map → settings-api-BV9MPckG.js.map} +1 -1
- package/dist/renderer/assets/{workbenchSettings-BnQsvWkQ.js → workbenchSettings-ClwgsvJL.js} +2 -2
- package/dist/renderer/assets/{workbenchSettings-BnQsvWkQ.js.map → workbenchSettings-ClwgsvJL.js.map} +1 -1
- package/dist/renderer/entries/main/index.html +5 -5
- package/dist/renderer/entries/popover/index.html +5 -5
- package/dist/renderer/entries/settings/index.html +5 -5
- package/dist/renderer/entries/workbench-settings/index.html +4 -4
- package/dist/shared/ipc-channels.d.ts +26 -3
- package/dist/shared/ipc-channels.d.ts.map +1 -1
- package/dist/shared/ipc-channels.js +10 -3
- package/dist/shared/ipc-channels.js.map +1 -1
- package/dist/shared/types.d.ts +27 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/preload/instrumentation/storage.d.ts +0 -2
- package/dist/preload/instrumentation/storage.d.ts.map +0 -1
- package/dist/preload/instrumentation/storage.js +0 -106
- package/dist/preload/instrumentation/storage.js.map +0 -1
- package/dist/renderer/assets/index-kcmIQPCg.js +0 -2
- package/dist/renderer/assets/index-kcmIQPCg.js.map +0 -1
- package/dist/renderer/assets/ipc-transport-C9-PPTGn.css +0 -1
- package/dist/renderer/assets/ipc-transport-L_WD9x12.js.map +0 -1
- package/dist/renderer/assets/settings-api-DJ1M-CNt.js +0 -2
package/dist/main/api.d.ts
CHANGED
|
@@ -17,5 +17,7 @@ export { registerSessionIpc } from './ipc/session.js';
|
|
|
17
17
|
export { registerToolbarIpc } from './ipc/toolbar.js';
|
|
18
18
|
export { rendererDir, defaultPreloadPath, getRendererDir, getPreloadDir, getRendererHtml } from './utils/paths.js';
|
|
19
19
|
export { simulatorDir } from './services/simulator/dir.js';
|
|
20
|
-
export
|
|
20
|
+
export { UpdateManager, createGitHubReleaseChecker } from './services/update/index.js';
|
|
21
|
+
export type { UpdateManagerOptions, GitHubReleaseCheckerOptions, PickAssetContext, VersionScheme, } from './services/update/index.js';
|
|
22
|
+
export type { WorkbenchConfig, WorkbenchAppConfig, CompilationAdapter, ProjectSession, ToolbarAction, BuiltinPanelId, BuiltinModuleId, UpdateChecker, UpdateInfo, } from '../shared/types.js';
|
|
21
23
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/main/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/main/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGxD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGhE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACxG,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGrD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG1D,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/main/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGxD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGhE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACxG,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,YAAY,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGrD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG1D,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AACtF,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,gBAAgB,EAChB,aAAa,GACd,MAAM,4BAA4B,CAAA;AAGnC,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,GACX,MAAM,oBAAoB,CAAA"}
|
package/dist/main/api.js
CHANGED
|
@@ -19,4 +19,6 @@ export { registerToolbarIpc } from './ipc/toolbar.js';
|
|
|
19
19
|
// ── Paths ────────────────────────────────────────────────────────────────
|
|
20
20
|
export { rendererDir, defaultPreloadPath, getRendererDir, getPreloadDir, getRendererHtml } from './utils/paths.js';
|
|
21
21
|
export { simulatorDir } from './services/simulator/dir.js';
|
|
22
|
+
// ── Update checker ───────────────────────────────────────────────────────
|
|
23
|
+
export { UpdateManager, createGitHubReleaseChecker } from './services/update/index.js';
|
|
22
24
|
//# sourceMappingURL=api.js.map
|
package/dist/main/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/main/api.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGjD,4EAA4E;AAC5E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEhE,4EAA4E;AAC5E,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAExG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAGpE,4EAA4E;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,4EAA4E;AAC5E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/main/api.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGjD,4EAA4E;AAC5E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEhE,4EAA4E;AAC5E,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAExG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAGpE,4EAA4E;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,4EAA4E;AAC5E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,4EAA4E;AAC5E,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA"}
|
package/dist/main/app/app.d.ts
CHANGED
|
@@ -2,10 +2,12 @@ import { BrowserWindow } from 'electron';
|
|
|
2
2
|
import type { WorkbenchAppConfig } from '../../shared/types.js';
|
|
3
3
|
import { type WorkbenchContext } from '../services/workbench-context.js';
|
|
4
4
|
import { type AutomationServer } from '../services/automation/index.js';
|
|
5
|
+
import { UpdateManager } from '../services/update/index.js';
|
|
5
6
|
export interface WorkbenchAppInstance {
|
|
6
7
|
mainWindow: BrowserWindow;
|
|
7
8
|
context: WorkbenchContext;
|
|
8
9
|
automationServer?: AutomationServer;
|
|
10
|
+
updateManager?: UpdateManager;
|
|
9
11
|
dispose: () => Promise<void>;
|
|
10
12
|
}
|
|
11
13
|
export declare function createWorkbenchApp(config?: WorkbenchAppConfig): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/main/app/app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,aAAa,EAAe,MAAM,UAAU,CAAA;AAG1D,OAAO,KAAK,EAAmB,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAIhF,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAahG,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/main/app/app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,aAAa,EAAe,MAAM,UAAU,CAAA;AAG1D,OAAO,KAAK,EAAmB,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAIhF,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAahG,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAG9F,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAwB3D,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,aAAa,CAAA;IACzB,OAAO,EAAE,gBAAgB,CAAA;IACzB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AA0ID,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,kBAAuB;iBAMxC,OAAO,CAAC,oBAAoB,CAAC;iBA6CnC,IAAI;EAYvB"}
|
package/dist/main/app/app.js
CHANGED
|
@@ -11,6 +11,8 @@ import { installAppMenu } from '../menu/index.js';
|
|
|
11
11
|
import { registerAppIpc, registerSimulatorIpc, registerPanelsIpc, registerPopoverIpc, registerProjectsIpc, registerSessionIpc, registerSettingsIpc, registerToolbarIpc, } from '../ipc/index.js';
|
|
12
12
|
import { startAutomationServer } from '../services/automation/index.js';
|
|
13
13
|
import { startMcpServer } from '../services/mcp/index.js';
|
|
14
|
+
import { setupSimulatorStorage } from '../services/simulator-storage/index.js';
|
|
15
|
+
import { UpdateManager } from '../services/update/index.js';
|
|
14
16
|
const DEFAULT_MODULES = {
|
|
15
17
|
projects: true,
|
|
16
18
|
session: true,
|
|
@@ -39,7 +41,10 @@ function parseAutoArgs() {
|
|
|
39
41
|
if (argv[i] === 'auto' || argv[i] === '--auto')
|
|
40
42
|
auto = true;
|
|
41
43
|
if ((argv[i] === '--auto-port' || argv[i] === '--auto_port') && argv[i + 1]) {
|
|
42
|
-
|
|
44
|
+
const parsed = parseInt(argv[i + 1], 10);
|
|
45
|
+
// 0 → OS-assigned free port (used by parallel e2e workers)
|
|
46
|
+
if (Number.isFinite(parsed) && parsed >= 0)
|
|
47
|
+
autoPort = parsed;
|
|
43
48
|
}
|
|
44
49
|
if (argv[i] === '--project' && argv[i + 1]) {
|
|
45
50
|
projectPath = argv[i + 1];
|
|
@@ -53,7 +58,8 @@ function resolveModules(config) {
|
|
|
53
58
|
...config.modules,
|
|
54
59
|
};
|
|
55
60
|
}
|
|
56
|
-
async function disposeContext(ctx) {
|
|
61
|
+
async function disposeContext(ctx, updateManager) {
|
|
62
|
+
updateManager?.dispose();
|
|
57
63
|
await ctx.workspace.closeProject();
|
|
58
64
|
}
|
|
59
65
|
function createConfiguredMainWindow(config, rendererDir) {
|
|
@@ -102,12 +108,14 @@ function installMenu(config, mainWindow, context) {
|
|
|
102
108
|
installAppMenu(context);
|
|
103
109
|
}
|
|
104
110
|
}
|
|
105
|
-
function setupAutomation(instance) {
|
|
111
|
+
async function setupAutomation(instance) {
|
|
106
112
|
// Start automation server if --auto flag is present
|
|
107
113
|
const autoArgs = parseAutoArgs();
|
|
108
114
|
if (autoArgs.auto) {
|
|
109
|
-
|
|
110
|
-
|
|
115
|
+
const server = await startAutomationServer(instance.context, autoArgs.autoPort);
|
|
116
|
+
instance.automationServer = server;
|
|
117
|
+
// Stable, parseable line for e2e harnesses that scrape stdout.
|
|
118
|
+
console.log(`[automation] listening on ws://127.0.0.1:${server.port}`);
|
|
111
119
|
}
|
|
112
120
|
}
|
|
113
121
|
function setupMcp() {
|
|
@@ -165,12 +173,26 @@ export function createWorkbenchApp(config = {}) {
|
|
|
165
173
|
registerAppIpc(context);
|
|
166
174
|
registerBuiltinModules(config, context);
|
|
167
175
|
installMenu(config, mainWindow, context);
|
|
168
|
-
const instance = {
|
|
176
|
+
const instance = {
|
|
177
|
+
mainWindow,
|
|
178
|
+
context,
|
|
179
|
+
dispose: () => disposeContext(context, instance.updateManager),
|
|
180
|
+
};
|
|
169
181
|
if (config.onSetup) {
|
|
170
182
|
await config.onSetup(instance);
|
|
171
183
|
}
|
|
172
|
-
|
|
184
|
+
if (config.updateChecker) {
|
|
185
|
+
instance.updateManager = new UpdateManager({
|
|
186
|
+
checker: config.updateChecker,
|
|
187
|
+
mainWindow,
|
|
188
|
+
checkInterval: config.updateOptions?.checkInterval,
|
|
189
|
+
initialDelay: config.updateOptions?.initialDelay,
|
|
190
|
+
getCurrentVersion: config.updateOptions?.getCurrentVersion,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
await setupAutomation(instance);
|
|
173
194
|
setupMcp();
|
|
195
|
+
setupSimulatorStorage(mainWindow.webContents);
|
|
174
196
|
wireAppWindowEvents(config, instance);
|
|
175
197
|
enableDevRendererAutoReload(rendererDir);
|
|
176
198
|
return instance;
|
package/dist/main/app/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/main/app/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACxF,OAAO,EAAE,sBAAsB,EAAyB,MAAM,kCAAkC,CAAA;AAChG,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,qBAAqB,EAAyB,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/main/app/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,5 +14,6 @@ export interface AutomationServer {
|
|
|
14
14
|
close: () => void;
|
|
15
15
|
port: number;
|
|
16
16
|
}
|
|
17
|
-
export declare function
|
|
17
|
+
export declare function getAutomationPort(): number | null;
|
|
18
|
+
export declare function startAutomationServer(ctx: WorkbenchContext, port?: number): Promise<AutomationServer>;
|
|
18
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/main/services/automation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/main/services/automation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAmB/D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb;AAKD,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,gBAAgB,EACrB,IAAI,GAAE,MAAU,GACf,OAAO,CAAC,gBAAgB,CAAC,CA4F3B"}
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* This server handles these messages by delegating to the workbench context
|
|
10
10
|
* (simulator webContents, IPC handlers, etc.) without modifying dimina upstream.
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
import { ipcMain } from 'electron';
|
|
13
13
|
import { WebSocketServer } from 'ws';
|
|
14
|
-
import { SimulatorChannel } from '../../../shared/ipc-channels.js';
|
|
14
|
+
import { AutomationChannel, SimulatorChannel } from '../../../shared/ipc-channels.js';
|
|
15
15
|
import { getSimulator } from './exec.js';
|
|
16
16
|
import { toolHandlers } from './handlers/tool.js';
|
|
17
17
|
import { appHandlers } from './handlers/app.js';
|
|
@@ -24,9 +24,26 @@ const handlers = {
|
|
|
24
24
|
...pageHandlers,
|
|
25
25
|
...elementHandlers,
|
|
26
26
|
};
|
|
27
|
-
|
|
27
|
+
let currentPort = null;
|
|
28
|
+
let portIpcRegistered = false;
|
|
29
|
+
export function getAutomationPort() {
|
|
30
|
+
return currentPort;
|
|
31
|
+
}
|
|
32
|
+
export async function startAutomationServer(ctx, port = 0) {
|
|
28
33
|
const wss = new WebSocketServer({ port });
|
|
29
34
|
const clients = new Set();
|
|
35
|
+
await new Promise((resolve, reject) => {
|
|
36
|
+
wss.once('listening', () => resolve());
|
|
37
|
+
wss.once('error', (err) => reject(err));
|
|
38
|
+
});
|
|
39
|
+
const addr = wss.address();
|
|
40
|
+
// ws always binds via an http.Server, so address() is AddressInfo here.
|
|
41
|
+
const resolvedPort = typeof addr === 'object' && addr ? addr.port : port;
|
|
42
|
+
currentPort = resolvedPort;
|
|
43
|
+
if (!portIpcRegistered) {
|
|
44
|
+
portIpcRegistered = true;
|
|
45
|
+
ipcMain.handle(AutomationChannel.GetPort, () => currentPort);
|
|
46
|
+
}
|
|
30
47
|
function broadcast(event) {
|
|
31
48
|
const msg = JSON.stringify(event);
|
|
32
49
|
for (const ws of clients) {
|
|
@@ -90,6 +107,13 @@ export function startAutomationServer(ctx, port) {
|
|
|
90
107
|
});
|
|
91
108
|
ws.on('close', () => clients.delete(ws));
|
|
92
109
|
});
|
|
93
|
-
return {
|
|
110
|
+
return {
|
|
111
|
+
close: () => {
|
|
112
|
+
if (currentPort === resolvedPort)
|
|
113
|
+
currentPort = null;
|
|
114
|
+
wss.close();
|
|
115
|
+
},
|
|
116
|
+
port: resolvedPort,
|
|
117
|
+
};
|
|
94
118
|
}
|
|
95
119
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/main/services/automation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/main/services/automation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SimulatorStorageWatcher
|
|
3
|
+
*
|
|
4
|
+
* Attaches the Chrome DevTools Protocol debugger to the simulator <webview>
|
|
5
|
+
* and forwards `DOMStorage.*` events to the renderer host. Replaces the
|
|
6
|
+
* preload-side localStorage.setItem hook that used to push storage changes
|
|
7
|
+
* via SimulatorChannel.Storage / StorageAll.
|
|
8
|
+
*
|
|
9
|
+
* Trade-offs vs the preload approach:
|
|
10
|
+
* + Uses standard browser protocol; no preload injection
|
|
11
|
+
* + Captures every change including ones bypassing wx (api-compat fallback,
|
|
12
|
+
* direct localStorage.setItem from devtools, etc.)
|
|
13
|
+
* + Decouples panel UI from dimina runtime's wx implementation
|
|
14
|
+
* - debugger.attach is mutually exclusive with Chrome DevTools (F12).
|
|
15
|
+
* If a user opens DevTools on the simulator the debugger detaches and
|
|
16
|
+
* events stop flowing until they close it.
|
|
17
|
+
*/
|
|
18
|
+
import { type WebContents } from 'electron';
|
|
19
|
+
export declare function setupSimulatorStorage(host: WebContents): void;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/main/services/simulator-storage/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAyC,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AA2FlF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CA2B7D"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SimulatorStorageWatcher
|
|
3
|
+
*
|
|
4
|
+
* Attaches the Chrome DevTools Protocol debugger to the simulator <webview>
|
|
5
|
+
* and forwards `DOMStorage.*` events to the renderer host. Replaces the
|
|
6
|
+
* preload-side localStorage.setItem hook that used to push storage changes
|
|
7
|
+
* via SimulatorChannel.Storage / StorageAll.
|
|
8
|
+
*
|
|
9
|
+
* Trade-offs vs the preload approach:
|
|
10
|
+
* + Uses standard browser protocol; no preload injection
|
|
11
|
+
* + Captures every change including ones bypassing wx (api-compat fallback,
|
|
12
|
+
* direct localStorage.setItem from devtools, etc.)
|
|
13
|
+
* + Decouples panel UI from dimina runtime's wx implementation
|
|
14
|
+
* - debugger.attach is mutually exclusive with Chrome DevTools (F12).
|
|
15
|
+
* If a user opens DevTools on the simulator the debugger detaches and
|
|
16
|
+
* events stop flowing until they close it.
|
|
17
|
+
*/
|
|
18
|
+
import { app, ipcMain, webContents as wcStatic } from 'electron';
|
|
19
|
+
import { SimulatorStorageChannel, } from '../../../shared/ipc-channels.js';
|
|
20
|
+
let attachedWc = null;
|
|
21
|
+
let hostWc = null;
|
|
22
|
+
function isSimulatorWebview(wc) {
|
|
23
|
+
if (wc.isDestroyed())
|
|
24
|
+
return false;
|
|
25
|
+
if (wc.getType() !== 'webview')
|
|
26
|
+
return false;
|
|
27
|
+
return wc.getURL().includes('simulator.html');
|
|
28
|
+
}
|
|
29
|
+
function detach() {
|
|
30
|
+
if (!attachedWc)
|
|
31
|
+
return;
|
|
32
|
+
const wc = attachedWc;
|
|
33
|
+
attachedWc = null;
|
|
34
|
+
try {
|
|
35
|
+
if (!wc.isDestroyed() && wc.debugger.isAttached()) {
|
|
36
|
+
wc.debugger.detach();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// best-effort
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async function attachToSim(wc) {
|
|
44
|
+
if (attachedWc === wc)
|
|
45
|
+
return;
|
|
46
|
+
if (wc.isDestroyed())
|
|
47
|
+
return;
|
|
48
|
+
detach();
|
|
49
|
+
try {
|
|
50
|
+
if (!wc.debugger.isAttached()) {
|
|
51
|
+
wc.debugger.attach('1.3');
|
|
52
|
+
}
|
|
53
|
+
await wc.debugger.sendCommand('DOMStorage.enable');
|
|
54
|
+
wc.debugger.on('message', onCdpMessage);
|
|
55
|
+
wc.debugger.on('detach', () => {
|
|
56
|
+
if (attachedWc === wc)
|
|
57
|
+
attachedWc = null;
|
|
58
|
+
});
|
|
59
|
+
wc.once('destroyed', () => {
|
|
60
|
+
if (attachedWc === wc)
|
|
61
|
+
attachedWc = null;
|
|
62
|
+
});
|
|
63
|
+
attachedWc = wc;
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
console.warn('[storage-watcher] attach failed:', e.message);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function onCdpMessage(_event, method, params) {
|
|
70
|
+
if (!hostWc || hostWc.isDestroyed())
|
|
71
|
+
return;
|
|
72
|
+
const p = params;
|
|
73
|
+
let evt;
|
|
74
|
+
switch (method) {
|
|
75
|
+
case 'DOMStorage.domStorageItemAdded':
|
|
76
|
+
evt = { type: 'added', key: String(p.key), newValue: String(p.newValue ?? '') };
|
|
77
|
+
break;
|
|
78
|
+
case 'DOMStorage.domStorageItemUpdated':
|
|
79
|
+
evt = {
|
|
80
|
+
type: 'updated',
|
|
81
|
+
key: String(p.key),
|
|
82
|
+
oldValue: String(p.oldValue ?? ''),
|
|
83
|
+
newValue: String(p.newValue ?? ''),
|
|
84
|
+
};
|
|
85
|
+
break;
|
|
86
|
+
case 'DOMStorage.domStorageItemRemoved':
|
|
87
|
+
evt = { type: 'removed', key: String(p.key) };
|
|
88
|
+
break;
|
|
89
|
+
case 'DOMStorage.domStorageItemsCleared':
|
|
90
|
+
evt = { type: 'cleared' };
|
|
91
|
+
break;
|
|
92
|
+
default:
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
hostWc.send(SimulatorStorageChannel.Event, evt);
|
|
96
|
+
}
|
|
97
|
+
async function getSnapshot() {
|
|
98
|
+
if (!attachedWc || attachedWc.isDestroyed())
|
|
99
|
+
return [];
|
|
100
|
+
try {
|
|
101
|
+
const origin = await attachedWc.executeJavaScript('location.origin');
|
|
102
|
+
const result = (await attachedWc.debugger.sendCommand('DOMStorage.getDOMStorageItems', {
|
|
103
|
+
storageId: { securityOrigin: origin, isLocalStorage: true },
|
|
104
|
+
}));
|
|
105
|
+
return result.entries.map(([key, value]) => ({ key, value }));
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
export function setupSimulatorStorage(host) {
|
|
112
|
+
hostWc = host;
|
|
113
|
+
// Attach to any simulator webview that already exists (project may have
|
|
114
|
+
// been opened before this function runs).
|
|
115
|
+
for (const wc of wcStatic.getAllWebContents()) {
|
|
116
|
+
if (isSimulatorWebview(wc)) {
|
|
117
|
+
void attachToSim(wc);
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Catch new simulator webviews on creation. did-finish-load is the right
|
|
122
|
+
// moment because getURL() may still be 'about:blank' at creation.
|
|
123
|
+
app.on('web-contents-created', (_event, wc) => {
|
|
124
|
+
wc.on('did-finish-load', () => {
|
|
125
|
+
if (isSimulatorWebview(wc)) {
|
|
126
|
+
void attachToSim(wc);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
wc.on('did-navigate-in-page', () => {
|
|
130
|
+
// Project switched but same webview — attach already correct, debugger
|
|
131
|
+
// session survives in-page navigations. No-op.
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
ipcMain.handle(SimulatorStorageChannel.GetSnapshot, getSnapshot);
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/main/services/simulator-storage/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { UpdateChecker } from '../../../shared/types.js';
|
|
2
|
+
interface GitHubReleaseAsset {
|
|
3
|
+
name: string;
|
|
4
|
+
browser_download_url: string;
|
|
5
|
+
size: number;
|
|
6
|
+
}
|
|
7
|
+
interface GitHubRelease {
|
|
8
|
+
tag_name: string;
|
|
9
|
+
name?: string;
|
|
10
|
+
body?: string;
|
|
11
|
+
prerelease: boolean;
|
|
12
|
+
draft: boolean;
|
|
13
|
+
assets: GitHubReleaseAsset[];
|
|
14
|
+
}
|
|
15
|
+
export type VersionScheme = 'semver' | 'trailing-number';
|
|
16
|
+
export interface GitHubReleaseCheckerOptions {
|
|
17
|
+
owner: string;
|
|
18
|
+
repo: string;
|
|
19
|
+
/** Optional GitHub token (required for private repos; recommended to avoid rate limits). */
|
|
20
|
+
token?: string;
|
|
21
|
+
/** Include prereleases when resolving the latest version. Default: false. */
|
|
22
|
+
includePrereleases?: boolean;
|
|
23
|
+
/** Mark every delivered update as mandatory. Default: false. */
|
|
24
|
+
mandatory?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Built-in version scheme. Ignored when `parseVersion` is supplied.
|
|
27
|
+
* - `'semver'` (default): extract `x.y.z` from `tag_name` → release name → first asset name.
|
|
28
|
+
* - `'trailing-number'`: treat the trailing `-<N>` in `tag_name` as the version
|
|
29
|
+
* (e.g. `release-20260422-1` → `'1'`). Compared as an integer.
|
|
30
|
+
*/
|
|
31
|
+
versionScheme?: VersionScheme;
|
|
32
|
+
/**
|
|
33
|
+
* Custom asset picker. Receives the release assets plus the current
|
|
34
|
+
* process platform/arch. If omitted, a built-in picker is used that
|
|
35
|
+
* matches by file extension and arch suffix.
|
|
36
|
+
*/
|
|
37
|
+
pickAsset?: (assets: GitHubReleaseAsset[], ctx: PickAssetContext) => GitHubReleaseAsset | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Extract the version string from a release. Overrides `versionScheme`.
|
|
40
|
+
*/
|
|
41
|
+
parseVersion?: (release: GitHubRelease) => string | null;
|
|
42
|
+
}
|
|
43
|
+
export interface PickAssetContext {
|
|
44
|
+
platform: NodeJS.Platform;
|
|
45
|
+
arch: string;
|
|
46
|
+
}
|
|
47
|
+
export declare function createGitHubReleaseChecker(opts: GitHubReleaseCheckerOptions): UpdateChecker;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=github-release-checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-release-checker.d.ts","sourceRoot":"","sources":["../../../../src/main/services/update/github-release-checker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,0BAA0B,CAAA;AAEzE,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,oBAAoB,EAAE,MAAM,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,UAAU,aAAa;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,kBAAkB,EAAE,CAAA;CAC7B;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,iBAAiB,CAAA;AAExD,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,gBAAgB,KAAK,kBAAkB,GAAG,SAAS,CAAA;IACnG;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,GAAG,IAAI,CAAA;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,2BAA2B,GAAG,aAAa,CAyC3F"}
|