@dimina-kit/devtools 0.4.0-dev.20260828092243 → 0.4.0-dev.20260828161241
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/app/app.js +4 -0
- package/dist/main/index.bundle.js +99 -11
- package/dist/main/ipc/projects.d.ts +1 -1
- package/dist/main/ipc/projects.js +25 -1
- package/dist/main/services/projects/create-project-service.js +9 -2
- package/dist/main/services/projects/local-provider.js +6 -0
- package/dist/main/services/projects/project-repository.d.ts +25 -0
- package/dist/main/services/projects/project-repository.js +88 -12
- package/dist/main/services/projects/types.d.ts +13 -2
- package/dist/main/services/workbench-context.d.ts +18 -4
- package/dist/main/services/workbench-context.js +1 -0
- package/dist/main/services/workspace/workspace-service.d.ts +2 -0
- package/dist/main/services/workspace/workspace-service.js +14 -0
- package/dist/preload/windows/simulator.cjs.map +1 -1
- package/dist/renderer/assets/{button-DsNqZm7o.js → button-D5Q2wkXq.js} +2 -2
- package/dist/renderer/assets/{createLucideIcon-CYJeT1ji.js → createLucideIcon-Bqi8hpdi.js} +2 -2
- package/dist/renderer/assets/{dialog-pT4qWmka.js → dialog-e1TecTOY.js} +3 -3
- package/dist/renderer/assets/{dist-o70xmpc1.js → dist-DKWdE1TK.js} +2 -2
- package/dist/renderer/assets/{hostSidebarDefault-NvGZlE9O.js → hostSidebarDefault-B3yLfy8j.js} +2 -2
- package/dist/renderer/assets/index-CsPD68N_.js +5 -0
- package/dist/renderer/assets/{input-4QxTXMZN.js → input-Ct3alvkq.js} +2 -2
- package/dist/renderer/assets/ipc-channels-overlays-LsDzGAtV.js +2 -0
- package/dist/renderer/assets/jsx-runtime-2vXHouwr.css +1 -0
- package/dist/renderer/assets/{jsx-runtime-CqVdW3eg.js → jsx-runtime-DGLHmmOq.js} +1 -1
- package/dist/renderer/assets/{popover-CJiSWwuE.js → popover-Dix5cm_b.js} +2 -2
- package/dist/renderer/assets/project-api-k7Oq9iaq.js +2 -0
- package/dist/renderer/assets/{projectCreateDialog-DMWNhw_1.js → projectCreateDialog-Bbjz75bP.js} +2 -2
- package/dist/renderer/assets/{select-C86pNcsu.js → select-acGb0AmJ.js} +2 -2
- package/dist/renderer/assets/{settings-BoI8mLT1.js → settings-CQrTMr43.js} +2 -2
- package/dist/renderer/assets/{settings-api-Bs_g4NHs.js → settings-api-CrUQ9rYV.js} +2 -2
- package/dist/renderer/assets/{settings-tab-bar-DHLLygqv.js → settings-tab-bar-Cw1kVIf2.js} +2 -2
- package/dist/renderer/assets/{tooltip-BhAyY0T4.js → tooltip-B_-_YVbw.js} +2 -2
- package/dist/renderer/assets/{types-YYjkvane.js → types-CsEKtFyr.js} +2 -2
- package/dist/renderer/assets/{updateDialog-DPum3wx1.js → updateDialog-NsF8223A.js} +2 -2
- package/dist/renderer/assets/{view-api-DFhb2R8-.js → view-api-CLn3rcQE.js} +2 -2
- package/dist/renderer/assets/{workbenchSettings-DrajRQUk.js → workbenchSettings-CV4LVA9b.js} +2 -2
- package/dist/renderer/entries/host-sidebar-default/index.html +5 -5
- package/dist/renderer/entries/main/index.html +14 -12
- package/dist/renderer/entries/popover/index.html +8 -8
- package/dist/renderer/entries/project-create-dialog/index.html +11 -11
- package/dist/renderer/entries/settings/index.html +9 -9
- package/dist/renderer/entries/tooltip/index.html +5 -5
- package/dist/renderer/entries/update-dialog/index.html +9 -9
- package/dist/renderer/entries/workbench-settings/index.html +9 -9
- package/dist/shared/ipc-channels.d.ts +4 -0
- package/dist/shared/ipc-channels.js +4 -0
- package/dist/shared/ipc-schemas.d.ts +11 -0
- package/dist/shared/ipc-schemas.js +14 -0
- package/dist/shared/types.d.ts +61 -0
- package/package.json +6 -6
- package/dist/renderer/assets/index-zErhG3ta.js +0 -5
- package/dist/renderer/assets/ipc-channels-overlays-Blr5TNoB.js +0 -2
- package/dist/renderer/assets/jsx-runtime-B-3rq1y5.css +0 -1
- package/dist/renderer/assets/project-api-DZ1Zi6EC.js +0 -2
|
@@ -26,21 +26,23 @@
|
|
|
26
26
|
overflow: hidden;
|
|
27
27
|
}
|
|
28
28
|
</style>
|
|
29
|
-
<script type="module" crossorigin src="../../assets/index-
|
|
30
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
29
|
+
<script type="module" crossorigin src="../../assets/index-CsPD68N_.js"></script>
|
|
30
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
|
|
31
31
|
<link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
|
|
32
|
-
<link rel="modulepreload" crossorigin href="../../assets/button-
|
|
33
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
34
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
35
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
36
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
37
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
38
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
39
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
40
|
-
<link rel="modulepreload" crossorigin href="../../assets/
|
|
32
|
+
<link rel="modulepreload" crossorigin href="../../assets/button-D5Q2wkXq.js">
|
|
33
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-DKWdE1TK.js">
|
|
34
|
+
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-Bqi8hpdi.js">
|
|
35
|
+
<link rel="modulepreload" crossorigin href="../../assets/dialog-e1TecTOY.js">
|
|
36
|
+
<link rel="modulepreload" crossorigin href="../../assets/types-CsEKtFyr.js">
|
|
37
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
|
|
38
|
+
<link rel="modulepreload" crossorigin href="../../assets/project-api-k7Oq9iaq.js">
|
|
39
|
+
<link rel="modulepreload" crossorigin href="../../assets/settings-api-CrUQ9rYV.js">
|
|
40
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
|
|
41
|
+
<link rel="modulepreload" crossorigin href="../../assets/input-Ct3alvkq.js">
|
|
42
|
+
<link rel="modulepreload" crossorigin href="../../assets/select-acGb0AmJ.js">
|
|
41
43
|
<link rel="modulepreload" crossorigin href="../../assets/constants-D8zsejFq.js">
|
|
42
44
|
<link rel="modulepreload" crossorigin href="../../assets/constants-D7DfVqMp.js">
|
|
43
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-
|
|
45
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
|
|
44
46
|
</head>
|
|
45
47
|
<body>
|
|
46
48
|
<div id="root"></div>
|
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
<style>
|
|
9
9
|
html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
|
|
10
10
|
</style>
|
|
11
|
-
<script type="module" crossorigin src="../../assets/popover-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
11
|
+
<script type="module" crossorigin src="../../assets/popover-Dix5cm_b.js"></script>
|
|
12
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
|
|
14
|
-
<link rel="modulepreload" crossorigin href="../../assets/button-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="../../assets/view-api-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="../../assets/input-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="../../assets/select-
|
|
14
|
+
<link rel="modulepreload" crossorigin href="../../assets/button-D5Q2wkXq.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="../../assets/input-Ct3alvkq.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="../../assets/select-acGb0AmJ.js">
|
|
19
19
|
<link rel="modulepreload" crossorigin href="../../assets/constants-D7DfVqMp.js">
|
|
20
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-
|
|
20
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
|
|
21
21
|
</head>
|
|
22
22
|
<body>
|
|
23
23
|
<div id="root"></div>
|
|
@@ -8,18 +8,18 @@
|
|
|
8
8
|
<style>
|
|
9
9
|
html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
|
|
10
10
|
</style>
|
|
11
|
-
<script type="module" crossorigin src="../../assets/projectCreateDialog-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
11
|
+
<script type="module" crossorigin src="../../assets/projectCreateDialog-Bbjz75bP.js"></script>
|
|
12
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
|
|
14
|
-
<link rel="modulepreload" crossorigin href="../../assets/button-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/dist-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="../../assets/dialog-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="../../assets/project-api-
|
|
20
|
-
<link rel="modulepreload" crossorigin href="../../assets/view-api-
|
|
21
|
-
<link rel="modulepreload" crossorigin href="../../assets/input-
|
|
22
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-
|
|
14
|
+
<link rel="modulepreload" crossorigin href="../../assets/button-D5Q2wkXq.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-DKWdE1TK.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-Bqi8hpdi.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="../../assets/dialog-e1TecTOY.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="../../assets/project-api-k7Oq9iaq.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="../../assets/input-Ct3alvkq.js">
|
|
22
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
|
|
23
23
|
</head>
|
|
24
24
|
<body>
|
|
25
25
|
<div id="root"></div>
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
closes the overlay — mirrors the popover entry. */
|
|
12
12
|
html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
|
|
13
13
|
</style>
|
|
14
|
-
<script type="module" crossorigin src="../../assets/settings-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="../../assets/dist-
|
|
14
|
+
<script type="module" crossorigin src="../../assets/settings-CQrTMr43.js"></script>
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-DKWdE1TK.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
|
|
18
|
-
<link rel="modulepreload" crossorigin href="../../assets/settings-tab-bar-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-
|
|
20
|
-
<link rel="modulepreload" crossorigin href="../../assets/settings-api-
|
|
21
|
-
<link rel="modulepreload" crossorigin href="../../assets/view-api-
|
|
22
|
-
<link rel="modulepreload" crossorigin href="../../assets/input-
|
|
23
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-
|
|
18
|
+
<link rel="modulepreload" crossorigin href="../../assets/settings-tab-bar-Cw1kVIf2.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="../../assets/settings-api-CrUQ9rYV.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="../../assets/input-Ct3alvkq.js">
|
|
23
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
|
|
24
24
|
</head>
|
|
25
25
|
<body>
|
|
26
26
|
<div id="root"></div>
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
html, body { margin: 0; padding: 0; width: -moz-max-content; width: max-content; height: -moz-max-content; height: max-content; overflow: hidden; background: transparent !important; }
|
|
10
10
|
#root { width: -moz-max-content; width: max-content; height: -moz-max-content; height: max-content; display: block; overflow: visible; }
|
|
11
11
|
</style>
|
|
12
|
-
<script type="module" crossorigin src="../../assets/tooltip-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/view-api-
|
|
16
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-
|
|
12
|
+
<script type="module" crossorigin src="../../assets/tooltip-B_-_YVbw.js"></script>
|
|
13
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
|
|
16
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
|
|
17
17
|
</head>
|
|
18
18
|
<body>
|
|
19
19
|
<div id="root"></div>
|
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
<style>
|
|
9
9
|
html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
|
|
10
10
|
</style>
|
|
11
|
-
<script type="module" crossorigin src="../../assets/updateDialog-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
11
|
+
<script type="module" crossorigin src="../../assets/updateDialog-NsF8223A.js"></script>
|
|
12
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
|
|
14
|
-
<link rel="modulepreload" crossorigin href="../../assets/button-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/dist-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="../../assets/dialog-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="../../assets/view-api-
|
|
20
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-
|
|
14
|
+
<link rel="modulepreload" crossorigin href="../../assets/button-D5Q2wkXq.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-DKWdE1TK.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-Bqi8hpdi.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="../../assets/dialog-e1TecTOY.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
|
|
20
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
|
|
21
21
|
</head>
|
|
22
22
|
<body>
|
|
23
23
|
<div id="root"></div>
|
|
@@ -6,17 +6,17 @@
|
|
|
6
6
|
<!-- See entries/main/index.html for CSP rationale. -->
|
|
7
7
|
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http: https:; font-src 'self' data:; media-src 'self' blob: http: https:; connect-src 'self' http: https: ws: wss:;" />
|
|
8
8
|
<title>开发工具设置</title>
|
|
9
|
-
<script type="module" crossorigin src="../../assets/workbenchSettings-
|
|
10
|
-
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="../../assets/dist-
|
|
9
|
+
<script type="module" crossorigin src="../../assets/workbenchSettings-CV4LVA9b.js"></script>
|
|
10
|
+
<link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="../../assets/dist-DKWdE1TK.js">
|
|
12
12
|
<link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
|
|
13
|
-
<link rel="modulepreload" crossorigin href="../../assets/settings-tab-bar-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="../../assets/button-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="../../assets/settings-api-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="../../assets/input-
|
|
13
|
+
<link rel="modulepreload" crossorigin href="../../assets/settings-tab-bar-Cw1kVIf2.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="../../assets/button-D5Q2wkXq.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="../../assets/settings-api-CrUQ9rYV.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="../../assets/input-Ct3alvkq.js">
|
|
18
18
|
<link rel="modulepreload" crossorigin href="../../assets/constants-D7DfVqMp.js">
|
|
19
|
-
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-
|
|
19
|
+
<link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
|
|
20
20
|
</head>
|
|
21
21
|
<body>
|
|
22
22
|
<div id="root"></div>
|
|
@@ -138,10 +138,14 @@ export declare const ProjectsChannel: {
|
|
|
138
138
|
readonly List: "projects:list";
|
|
139
139
|
readonly Add: "projects:add";
|
|
140
140
|
readonly Remove: "projects:remove";
|
|
141
|
+
/** Edit an existing record's name / icon; its path stays the identity. */
|
|
142
|
+
readonly Update: "projects:update";
|
|
141
143
|
/** Merged + sanitized template catalog for the create-project dialog. */
|
|
142
144
|
readonly ListTemplates: "projects:listTemplates";
|
|
143
145
|
/** Host-supplied create-project dialog hook (returns input or null). */
|
|
144
146
|
readonly OpenCreateDialog: "projects:openCreateDialog";
|
|
147
|
+
/** Host-supplied edit-project dialog hook; `null` means no hook is configured. */
|
|
148
|
+
readonly OpenEditDialog: "projects:openEditDialog";
|
|
145
149
|
/** Server-side scaffold + register (delegates to create-project-service). */
|
|
146
150
|
readonly Create: "projects:create";
|
|
147
151
|
/** Default values used to pre-fill the create-project dialog (baseDir). */
|
|
@@ -193,10 +193,14 @@ export const ProjectsChannel = {
|
|
|
193
193
|
List: 'projects:list',
|
|
194
194
|
Add: 'projects:add',
|
|
195
195
|
Remove: 'projects:remove',
|
|
196
|
+
/** Edit an existing record's name / icon; its path stays the identity. */
|
|
197
|
+
Update: 'projects:update',
|
|
196
198
|
/** Merged + sanitized template catalog for the create-project dialog. */
|
|
197
199
|
ListTemplates: 'projects:listTemplates',
|
|
198
200
|
/** Host-supplied create-project dialog hook (returns input or null). */
|
|
199
201
|
OpenCreateDialog: 'projects:openCreateDialog',
|
|
202
|
+
/** Host-supplied edit-project dialog hook; `null` means no hook is configured. */
|
|
203
|
+
OpenEditDialog: 'projects:openEditDialog',
|
|
200
204
|
/** Server-side scaffold + register (delegates to create-project-service). */
|
|
201
205
|
Create: 'projects:create',
|
|
202
206
|
/** Default values used to pre-fill the create-project dialog (baseDir). */
|
|
@@ -158,8 +158,19 @@ export declare const SimulatorCustomApiInvokeSchema: z.ZodTuple<[z.ZodString, z.
|
|
|
158
158
|
export declare const ProjectGetPagesSchema: z.ZodTuple<[z.ZodString], null>;
|
|
159
159
|
/** project:getCompileConfig — absolute project path. */
|
|
160
160
|
export declare const ProjectGetCompileConfigSchema: z.ZodTuple<[z.ZodString], null>;
|
|
161
|
+
/**
|
|
162
|
+
* projects:update — absolute project directory path + the editable subset of
|
|
163
|
+
* its record. The path is the identity of the record being edited, never a
|
|
164
|
+
* field of the patch.
|
|
165
|
+
*/
|
|
166
|
+
export declare const ProjectsUpdateSchema: z.ZodTuple<[z.ZodString, z.ZodObject<{
|
|
167
|
+
name: z.ZodOptional<z.ZodString>;
|
|
168
|
+
iconUrl: z.ZodOptional<z.ZodString>;
|
|
169
|
+
}, z.core.$strip>], null>;
|
|
161
170
|
/** projects:remove — absolute project directory path. */
|
|
162
171
|
export declare const ProjectsRemoveSchema: z.ZodTuple<[z.ZodString], null>;
|
|
172
|
+
/** projects:openEditDialog — absolute project directory path. */
|
|
173
|
+
export declare const ProjectsOpenEditDialogSchema: z.ZodTuple<[z.ZodString], null>;
|
|
163
174
|
/**
|
|
164
175
|
* workbenchSettings:save — full WorkbenchSettings object.
|
|
165
176
|
*
|
|
@@ -222,8 +222,22 @@ export const SimulatorCustomApiInvokeSchema = z.tuple([
|
|
|
222
222
|
export const ProjectGetPagesSchema = z.tuple([AbsolutePath]);
|
|
223
223
|
/** project:getCompileConfig — absolute project path. */
|
|
224
224
|
export const ProjectGetCompileConfigSchema = z.tuple([AbsolutePath]);
|
|
225
|
+
/**
|
|
226
|
+
* projects:update — absolute project directory path + the editable subset of
|
|
227
|
+
* its record. The path is the identity of the record being edited, never a
|
|
228
|
+
* field of the patch.
|
|
229
|
+
*/
|
|
230
|
+
export const ProjectsUpdateSchema = z.tuple([
|
|
231
|
+
AbsolutePath,
|
|
232
|
+
z.object({
|
|
233
|
+
name: z.string().min(1).max(200).optional(),
|
|
234
|
+
iconUrl: z.string().max(2048).optional(),
|
|
235
|
+
}),
|
|
236
|
+
]);
|
|
225
237
|
/** projects:remove — absolute project directory path. */
|
|
226
238
|
export const ProjectsRemoveSchema = z.tuple([AbsolutePath]);
|
|
239
|
+
/** projects:openEditDialog — absolute project directory path. */
|
|
240
|
+
export const ProjectsOpenEditDialogSchema = z.tuple([AbsolutePath]);
|
|
227
241
|
/**
|
|
228
242
|
* workbenchSettings:save — full WorkbenchSettings object.
|
|
229
243
|
*
|
package/dist/shared/types.d.ts
CHANGED
|
@@ -222,6 +222,7 @@ export interface ProjectsProvider {
|
|
|
222
222
|
validateProjectDir?(dirPath: string): string | null;
|
|
223
223
|
addProject(dirPath: string): unknown;
|
|
224
224
|
removeProject(dirPath: string): void | Promise<void>;
|
|
225
|
+
updateProject?(dirPath: string, patch: unknown): unknown;
|
|
225
226
|
updateLastOpened?(dirPath: string): void | Promise<void>;
|
|
226
227
|
getCompileConfig?(dirPath: string): unknown;
|
|
227
228
|
saveCompileConfig?(dirPath: string, cfg: unknown): void | Promise<void>;
|
|
@@ -355,6 +356,32 @@ export interface WorkbenchAppConfig extends WorkbenchConfig {
|
|
|
355
356
|
parentWindow: import('electron').BrowserWindow;
|
|
356
357
|
templates: ProjectTemplate[];
|
|
357
358
|
}) => Promise<CustomCreateProjectDialogResult>;
|
|
359
|
+
/**
|
|
360
|
+
* Host-supplied "编辑项目" dialog. When provided, the renderer routes the
|
|
361
|
+
* project card's edit action through IPC into this main-process hook
|
|
362
|
+
* instead of showing the built-in dialog. `project` is read from the
|
|
363
|
+
* current project-list record (not whatever the renderer happened to have
|
|
364
|
+
* in state), so the host always sees devtools' own authoritative record.
|
|
365
|
+
*
|
|
366
|
+
* Return either:
|
|
367
|
+
* - `null` — user cancelled; devtools does nothing.
|
|
368
|
+
* - `{ name?, iconUrl? }` — the host collected an edit; devtools applies
|
|
369
|
+
* it via `workspace.updateProject`, the same path the built-in dialog's
|
|
370
|
+
* submit uses.
|
|
371
|
+
* - `{ updated: EditableProject }` — the host has ALREADY persisted the
|
|
372
|
+
* change itself; devtools just refreshes the list.
|
|
373
|
+
*
|
|
374
|
+
* Unlike `customCreateProjectDialog`, "no hook configured" and "user
|
|
375
|
+
* cancelled" are NOT both collapsed to `null` on the wire: the create flow
|
|
376
|
+
* does that and it means a cancelled host dialog falls through into the
|
|
377
|
+
* built-in one right after. The `projects:openEditDialog` IPC instead
|
|
378
|
+
* returns `null` only when no hook is configured, and wraps the hook's
|
|
379
|
+
* result as `{ result }` otherwise — see `OpenEditProjectDialogReply`.
|
|
380
|
+
*/
|
|
381
|
+
customEditProjectDialog?: (ctx: {
|
|
382
|
+
parentWindow: import('electron').BrowserWindow;
|
|
383
|
+
project: EditableProject;
|
|
384
|
+
}) => Promise<CustomEditProjectDialogResult>;
|
|
358
385
|
}
|
|
359
386
|
/**
|
|
360
387
|
* Discriminated return of `customCreateProjectDialog`. `null` = cancelled.
|
|
@@ -372,4 +399,38 @@ export type CustomCreateProjectDialogResult = null | {
|
|
|
372
399
|
lastOpened?: string | null;
|
|
373
400
|
};
|
|
374
401
|
} | CreateProjectInput;
|
|
402
|
+
/**
|
|
403
|
+
* Structural minimum devtools needs to render a project-list card, passed to
|
|
404
|
+
* `customEditProjectDialog` and returned as its `updated` variant. Mirrors
|
|
405
|
+
* `Project` in `./projects-provider`.
|
|
406
|
+
*/
|
|
407
|
+
export interface EditableProject {
|
|
408
|
+
name: string;
|
|
409
|
+
path: string;
|
|
410
|
+
iconUrl?: string;
|
|
411
|
+
lastOpened?: string | null;
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Discriminated return of `customEditProjectDialog`. `null` = cancelled.
|
|
415
|
+
* `{ updated }` = the host already persisted the edit; devtools just
|
|
416
|
+
* refreshes. Otherwise a `{ name?, iconUrl? }` patch devtools applies via
|
|
417
|
+
* `workspace.updateProject`.
|
|
418
|
+
*/
|
|
419
|
+
export type CustomEditProjectDialogResult = null | {
|
|
420
|
+
updated: EditableProject;
|
|
421
|
+
} | {
|
|
422
|
+
name?: string;
|
|
423
|
+
iconUrl?: string;
|
|
424
|
+
};
|
|
425
|
+
/**
|
|
426
|
+
* Wire reply for `projects:openEditDialog`. `null` means the host configured
|
|
427
|
+
* no `customEditProjectDialog` hook at all — the renderer should show the
|
|
428
|
+
* built-in dialog. When a hook IS configured, the IPC always resolves
|
|
429
|
+
* `{ result }` even if `result` is `null` (user cancelled the host dialog),
|
|
430
|
+
* so the renderer can tell "no hook" apart from "hook ran, user cancelled"
|
|
431
|
+
* and skip the built-in fallback in the latter case.
|
|
432
|
+
*/
|
|
433
|
+
export type OpenEditProjectDialogReply = null | {
|
|
434
|
+
result: CustomEditProjectDialogResult;
|
|
435
|
+
};
|
|
375
436
|
//# sourceMappingURL=types.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dimina-kit/devtools",
|
|
3
|
-
"version": "0.4.0-dev.
|
|
3
|
+
"version": "0.4.0-dev.20260828161241",
|
|
4
4
|
"description": "Dimina DevTools - modular developer tools for mini app debugging",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dimina",
|
|
@@ -90,11 +90,11 @@
|
|
|
90
90
|
"chrome-remote-interface": "^0.34.0",
|
|
91
91
|
"ws": "^8.20.0",
|
|
92
92
|
"zod": "^4.3.6",
|
|
93
|
-
"@dimina-kit/
|
|
94
|
-
"@dimina-kit/
|
|
95
|
-
"@dimina-kit/inspect": "0.4.0-dev.
|
|
96
|
-
"@dimina-kit/electron-
|
|
97
|
-
"@dimina-kit/
|
|
93
|
+
"@dimina-kit/devkit": "0.1.2-dev.20260828161241",
|
|
94
|
+
"@dimina-kit/electron-runtime": "0.1.0-dev.20260828161241",
|
|
95
|
+
"@dimina-kit/inspect": "0.4.0-dev.20260828161241",
|
|
96
|
+
"@dimina-kit/electron-deck": "0.1.0-dev.20260828161241",
|
|
97
|
+
"@dimina-kit/view-anchor": "0.1.0-dev.20260828161241"
|
|
98
98
|
},
|
|
99
99
|
"devDependencies": {
|
|
100
100
|
"@playwright/test": "^1.59.1",
|