@dimina-kit/devtools 0.3.2-dev.20260525152421 → 0.3.2-dev.20260601115343
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 +20 -7
- package/dist/main/api.d.ts +1 -1
- package/dist/main/app/app.js +17 -0
- package/dist/main/index.bundle.js +1006 -584
- package/dist/main/ipc/project-fs.d.ts +57 -0
- package/dist/main/ipc/project-fs.js +448 -0
- package/dist/main/ipc/simulator-module.js +2 -0
- package/dist/main/ipc/views.d.ts +19 -0
- package/dist/main/ipc/views.js +27 -0
- package/dist/main/services/layout/index.d.ts +1 -1
- package/dist/main/services/layout/index.js +3 -3
- package/dist/main/services/simulator-temp-files/fs-channels.js +1 -1
- package/dist/main/services/simulator-temp-files/request-handler.js +1 -1
- package/dist/main/services/toolbar/toolbar-store.d.ts +3 -3
- package/dist/main/services/toolbar/toolbar-store.js +18 -1
- package/dist/main/services/update/update-manager.d.ts +10 -0
- package/dist/main/services/update/update-manager.js +16 -3
- package/dist/main/services/views/view-manager.d.ts +17 -4
- package/dist/main/services/views/view-manager.js +71 -14
- package/dist/main/services/workbench-context.d.ts +6 -1
- package/dist/main/services/workspace/workspace-service.d.ts +8 -0
- package/dist/main/services/workspace/workspace-service.js +22 -4
- package/dist/main/utils/ipc-registry.d.ts +10 -1
- package/dist/main/utils/ipc-registry.js +43 -0
- package/dist/preload/shared/expose.js +2 -2
- package/dist/preload/windows/main.cjs +4 -0
- package/dist/preload/windows/main.cjs.map +2 -2
- package/dist/preload/windows/simulator.js +2 -2
- package/dist/renderer/assets/abap-DiwvWnMr.js +2 -0
- package/dist/renderer/assets/apex-CmtZjKlf.js +2 -0
- package/dist/renderer/assets/azcli-DL2My_i-.js +2 -0
- package/dist/renderer/assets/bat-B-nC98wG.js +2 -0
- package/dist/renderer/assets/bicep-Ju5MwOgh.js +3 -0
- package/dist/renderer/assets/cameligo-8Eu1TyBr.js +2 -0
- package/dist/renderer/assets/chunk-DPI0Y_ll.js +1 -0
- package/dist/renderer/assets/clojure-u-RpMkH3.js +2 -0
- package/dist/renderer/assets/codicon-ngg6Pgfi.ttf +0 -0
- package/dist/renderer/assets/coffee-CdA7bbTe.js +2 -0
- package/dist/renderer/assets/constants-CLAQX6VZ.js +2 -0
- package/dist/renderer/assets/cpp-CzNFP8ks.js +2 -0
- package/dist/renderer/assets/csharp-j1LThmcE.js +2 -0
- package/dist/renderer/assets/csp-CLRC61y6.js +2 -0
- package/dist/renderer/assets/css-r6rC_7P2.js +4 -0
- package/dist/renderer/assets/css.worker-DyDu5ynT.js +90 -0
- package/dist/renderer/assets/cssMode-BCBgxrnA.js +2 -0
- package/dist/renderer/assets/cypher-CW08XVUh.js +2 -0
- package/dist/renderer/assets/dart-Cs9aL5T_.js +2 -0
- package/dist/renderer/assets/dockerfile-BWM0M184.js +2 -0
- package/dist/renderer/assets/ecl-MJJuer5P.js +2 -0
- package/dist/renderer/assets/editor-CWI9TnMM.css +1 -0
- package/dist/renderer/assets/editor.api2-BTaYmRq7.js +873 -0
- package/dist/renderer/assets/editor.worker-Dpt_xPrs.js +27 -0
- package/dist/renderer/assets/elixir-D2AIuXqn.js +2 -0
- package/dist/renderer/assets/flow9-B2H24giC.js +2 -0
- package/dist/renderer/assets/freemarker2-DGDGzimW.js +4 -0
- package/dist/renderer/assets/fsharp-CMk2OIJN.js +2 -0
- package/dist/renderer/assets/go-BrMkuJg0.js +2 -0
- package/dist/renderer/assets/graphql-PSR1UKGv.js +2 -0
- package/dist/renderer/assets/handlebars-bOHhw3EG.js +2 -0
- package/dist/renderer/assets/hcl-DAQrbDOW.js +2 -0
- package/dist/renderer/assets/html-BMyuX0_c.js +2 -0
- package/dist/renderer/assets/html.worker-IWNXhnIC.js +503 -0
- package/dist/renderer/assets/htmlMode-DR4kXJ7l.js +2 -0
- package/dist/renderer/assets/index-BDMxXUfn.js +50 -0
- package/dist/renderer/assets/ini-0TG5BxW0.js +2 -0
- package/dist/renderer/assets/input-CCYS8Ave.js +2 -0
- package/dist/renderer/assets/{ipc-transport-BzPzxPwf.js → ipc-transport-Bn4KXvhu.js} +5 -5
- package/dist/renderer/assets/ipc-transport-Cu7tubyg.css +1 -0
- package/dist/renderer/assets/java-rgorz17v.js +2 -0
- package/dist/renderer/assets/javascript-Bu-tl1P7.js +2 -0
- package/dist/renderer/assets/json.worker-c4h5s80L.js +59 -0
- package/dist/renderer/assets/jsonMode-MQV_ffLR.js +8 -0
- package/dist/renderer/assets/julia-C8VMdHm8.js +2 -0
- package/dist/renderer/assets/kotlin-AhhC4Qhm.js +2 -0
- package/dist/renderer/assets/less-Cgca25AP.js +3 -0
- package/dist/renderer/assets/lexon-D0GHdBaw.js +2 -0
- package/dist/renderer/assets/liquid-ClkfOvhB.js +2 -0
- package/dist/renderer/assets/lspLanguageFeatures-Bke_4Ie9.js +5 -0
- package/dist/renderer/assets/lua-DmRsNG-P.js +2 -0
- package/dist/renderer/assets/m3-BgL5dNKT.js +2 -0
- package/dist/renderer/assets/markdown-BuJfycGS.js +2 -0
- package/dist/renderer/assets/mdx-RZdUskPu.js +2 -0
- package/dist/renderer/assets/mips-C9m_93PR.js +2 -0
- package/dist/renderer/assets/monaco.contribution-B7rUMaEv.js +3 -0
- package/dist/renderer/assets/msdax-CpFHC9OI.js +2 -0
- package/dist/renderer/assets/mysql-qFvltsqN.js +2 -0
- package/dist/renderer/assets/objective-c-Bnmr858J.js +2 -0
- package/dist/renderer/assets/pascal-WP0_D5AO.js +2 -0
- package/dist/renderer/assets/pascaligo-Blom4Rij.js +2 -0
- package/dist/renderer/assets/perl-B-vk8g64.js +2 -0
- package/dist/renderer/assets/pgsql-Cgvz6v67.js +2 -0
- package/dist/renderer/assets/php-8a3Lrw9m.js +2 -0
- package/dist/renderer/assets/pla-DuFqEZ8V.js +2 -0
- package/dist/renderer/assets/popover-CH4rwpdt.js +2 -0
- package/dist/renderer/assets/postiats-DkLtSgkp.js +2 -0
- package/dist/renderer/assets/powerquery-BJ1aNepW.js +2 -0
- package/dist/renderer/assets/powershell-rE98k687.js +2 -0
- package/dist/renderer/assets/protobuf-CUheFacr.js +3 -0
- package/dist/renderer/assets/pug-LDcAMD8w.js +2 -0
- package/dist/renderer/assets/python-Cobrm_-8.js +2 -0
- package/dist/renderer/assets/qsharp-DUKSQoR1.js +2 -0
- package/dist/renderer/assets/r-D-QApv87.js +2 -0
- package/dist/renderer/assets/razor-BEUIQFNJ.js +2 -0
- package/dist/renderer/assets/redis-SXdDyWR9.js +2 -0
- package/dist/renderer/assets/redshift-Y6lsCryn.js +2 -0
- package/dist/renderer/assets/restructuredtext-edObr9a8.js +2 -0
- package/dist/renderer/assets/ruby-CNnUfF-8.js +2 -0
- package/dist/renderer/assets/rust-IHUZWzBr.js +2 -0
- package/dist/renderer/assets/sb-DrUvY44N.js +2 -0
- package/dist/renderer/assets/scala-B4hbXGLM.js +2 -0
- package/dist/renderer/assets/scheme-BGrd12j3.js +2 -0
- package/dist/renderer/assets/scss-x5G1ES4U.js +4 -0
- package/dist/renderer/assets/select-Ct4-sijm.js +2 -0
- package/dist/renderer/assets/settings-CMTB-t0x.js +2 -0
- package/dist/renderer/assets/{settings-api-BXCw9vOZ.js → settings-api-Csdngf9Z.js} +2 -2
- package/dist/renderer/assets/shell-DOehe2Y8.js +2 -0
- package/dist/renderer/assets/solidity-BeRvcwWV.js +2 -0
- package/dist/renderer/assets/sophia-DZbkUNjy.js +2 -0
- package/dist/renderer/assets/sparql-B7_oi5-h.js +2 -0
- package/dist/renderer/assets/sql-CTlsFWVE.js +2 -0
- package/dist/renderer/assets/st-DJVEJdPE.js +2 -0
- package/dist/renderer/assets/swift-CwhT3fYa.js +2 -0
- package/dist/renderer/assets/systemverilog-BQN63pkN.js +2 -0
- package/dist/renderer/assets/tcl-DqwfpskA.js +2 -0
- package/dist/renderer/assets/ts.worker-BwM5Ha3L.js +67720 -0
- package/dist/renderer/assets/tsMode-BHa7dl9v.js +12 -0
- package/dist/renderer/assets/twig-BiyenUgc.js +2 -0
- package/dist/renderer/assets/typescript-15aT0Yj8.js +2 -0
- package/dist/renderer/assets/typespec-CWOJribt.js +2 -0
- package/dist/renderer/assets/vb-Cq5F87m3.js +2 -0
- package/dist/renderer/assets/wgsl-BAvW2lVr.js +299 -0
- package/dist/renderer/assets/workbenchSettings-CODFCzOg.js +8 -0
- package/dist/renderer/assets/workers-CRBS0W-v.js +2 -0
- package/dist/renderer/assets/xml-bR2Zh-HV.js +2 -0
- package/dist/renderer/assets/yaml-Bdk54Qrb.js +2 -0
- package/dist/renderer/entries/main/index.html +29 -6
- package/dist/renderer/entries/popover/index.html +7 -6
- package/dist/renderer/entries/settings/index.html +6 -5
- package/dist/renderer/entries/workbench-settings/index.html +6 -5
- package/dist/shared/constants.d.ts +0 -4
- package/dist/shared/constants.js +0 -4
- package/dist/shared/ipc-channels.d.ts +24 -0
- package/dist/shared/ipc-channels.js +37 -0
- package/dist/shared/ipc-schemas.d.ts +6 -0
- package/dist/shared/ipc-schemas.js +15 -0
- package/dist/shared/types.d.ts +37 -0
- package/dist/shared/vpath.d.ts +42 -0
- package/dist/shared/vpath.js +105 -0
- package/dist/simulator/assets/simulator-B4e3c6_O.js +9 -0
- package/dist/simulator/simulator.html +1 -1
- package/package.json +3 -2
- package/dist/renderer/assets/constants-DI382mTP.js +0 -2
- package/dist/renderer/assets/index-4lkyF644.js +0 -46
- package/dist/renderer/assets/input-D4byFOLS.js +0 -2
- package/dist/renderer/assets/ipc-transport-DqbRdZNO.css +0 -1
- package/dist/renderer/assets/popover-cxKrg_os.js +0 -2
- package/dist/renderer/assets/select-BgSkkdHW.js +0 -2
- package/dist/renderer/assets/settings-oD2K1jdT.js +0 -2
- package/dist/renderer/assets/workbenchSettings-CTNBpTft.js +0 -8
- package/dist/simulator/assets/simulator-CVOFTpSj.js +0 -9
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
基于 Electron 的小程序开发者工具。提供模拟器、Chrome DevTools 面板、WXML/AppData/Storage 面板、编译配置等功能。
|
|
4
4
|
|
|
5
|
-
下游 host 通过 `
|
|
5
|
+
下游 host 通过 [`@dimina-kit/workbench`](../workbench) 的 `workbench(config)` fluent API 集成并定制 devtools。扩展模型设计见 [`docs/workbench-model.md`](docs/workbench-model.md)。
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -53,10 +53,14 @@ createWorkbenchApp({
|
|
|
53
53
|
instance.registerSimulatorApi('login', (params) => myLogin(params))
|
|
54
54
|
|
|
55
55
|
// 工具栏:整表替换,随 host 状态(如登录态)重算时再 set 一次
|
|
56
|
-
const refreshToolbar = () =>
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
const refreshToolbar = () => {
|
|
57
|
+
const currentUser = getCurrentUser()
|
|
58
|
+
instance.toolbar.set([
|
|
59
|
+
{ id: 'account', label: '当前用户', kind: 'avatar', placement: 'leading', displayInitial: currentUser?.name, avatarUrl: currentUser?.avatar, handler: () => showAccount() },
|
|
60
|
+
{ id: 'preview', label: '预览', placement: 'primary', handler: () => preview() },
|
|
61
|
+
{ id: 'deploy', label: '发布', placement: 'trailing', handler: () => deploy() },
|
|
62
|
+
])
|
|
63
|
+
}
|
|
60
64
|
refreshToolbar()
|
|
61
65
|
|
|
62
66
|
// 自定义 IPC:经 gated 的 IpcRegistry,不再裸 ipcMain.handle
|
|
@@ -66,6 +70,12 @@ createWorkbenchApp({
|
|
|
66
70
|
// const win = createDialogWindow(/* ... */)
|
|
67
71
|
// instance.registerTrustedWindow(win)
|
|
68
72
|
},
|
|
73
|
+
onBeforeOpenProject: async ({ projectPath, instance }) => {
|
|
74
|
+
const ok = await canOpenProject(projectPath)
|
|
75
|
+
return ok
|
|
76
|
+
? { allow: true }
|
|
77
|
+
: { allow: false, reason: '当前账号没有项目权限' }
|
|
78
|
+
},
|
|
69
79
|
onBeforeClose: ({ context }) => {
|
|
70
80
|
// 窗口关闭前的自定义清理;session 关闭和 view 销毁由框架自动处理
|
|
71
81
|
},
|
|
@@ -203,8 +213,9 @@ src/
|
|
|
203
213
|
| `rendererDir` | `string` | 内置 | 自定义 renderer HTML 目录 |
|
|
204
214
|
| `icon` | `string` | — | 窗口/任务栏图标路径(macOS 使用 app bundle 图标) |
|
|
205
215
|
| `menuBuilder` | `(mainWindow, menuContext: MenuContext) => void` | 内置菜单 | 自定义菜单构建器;`menuContext` 为收窄后的 `MenuContext`,不含 `registry`/`senderPolicy` 等内部管线 |
|
|
206
|
-
| `onSetup` | `(instance) => void
|
|
207
|
-
| `
|
|
216
|
+
| `onSetup` | `(instance) => void \| Promise<void>` | — | 窗口和 context 创建后的回调,用于注册 Contribution(见下文)|
|
|
217
|
+
| `onBeforeOpenProject` | `({ projectPath, instance }) => BeforeOpenProjectResult \| Promise<BeforeOpenProjectResult>` | — | 项目目录校验通过后、关闭当前 session 和编译新项目之前的宿主准入钩子 |
|
|
218
|
+
| `onBeforeClose` | `(instance) => void \| Promise<void>` | — | 窗口关闭前的回调,session 关闭由框架自动处理 |
|
|
208
219
|
| `window` | `WorkbenchWindowConfig` | — | 窗口尺寸覆盖 |
|
|
209
220
|
| `updateChecker` | `UpdateChecker` | — | 自定义更新检查器;提供后启用"检查更新"功能 |
|
|
210
221
|
| `updateOptions` | `{ checkInterval?, initialDelay?, getCurrentVersion? }` | — | 仅当 `updateChecker` 提供时生效,默认 1h / 5s |
|
|
@@ -220,6 +231,8 @@ src/
|
|
|
220
231
|
| `instance.ipc` | `IpcRegistry` 实例,`instance.ipc.handle(channel, fn)` 注册自定义 IPC;已绑定 `senderPolicy` 网关 |
|
|
221
232
|
| `instance.registerTrustedWindow(win)` | 把 host 自有弹窗 `BrowserWindow` 加入受信 sender 集,否则其发起的 `instance.ipc` 调用会被网关拒绝。窗口关闭即移除 |
|
|
222
233
|
|
|
234
|
+
`onSetup` 可以返回 Promise;`createWorkbenchApp().start()` 会等待 `onSetup` 解析完成后才继续后续启动流程,因此宿主在 `onSetup` 内注册的 simulator API 会早于 simulator `<webview>` 首次枚举自定义 API。
|
|
235
|
+
|
|
223
236
|
### 内置面板 ID
|
|
224
237
|
|
|
225
238
|
`'wxml'` \| `'console'` \| `'appdata'` \| `'storage'`
|
package/dist/main/api.d.ts
CHANGED
|
@@ -15,5 +15,5 @@ export { IpcRegistry } from './utils/ipc-registry.js';
|
|
|
15
15
|
export type { SenderPolicy } from './utils/ipc-registry.js';
|
|
16
16
|
export { UpdateManager, createGitHubReleaseChecker } from './services/update/index.js';
|
|
17
17
|
export type { UpdateManagerOptions, GitHubReleaseCheckerOptions, PickAssetContext, VersionScheme, } from './services/update/index.js';
|
|
18
|
-
export type { WorkbenchConfig, WorkbenchAppConfig, CompilationAdapter, ProjectSession, ToolbarAction, BuiltinPanelId, BuiltinModuleId, UpdateChecker, UpdateInfo, } from '../shared/types.js';
|
|
18
|
+
export type { BeforeOpenProjectHook, BeforeOpenProjectResult, WorkbenchConfig, WorkbenchAppConfig, CompilationAdapter, ProjectSession, ToolbarAction, ToolbarActionInput, ToolbarActionKind, ToolbarActionPlacement, BuiltinPanelId, BuiltinModuleId, UpdateChecker, UpdateInfo, } from '../shared/types.js';
|
|
19
19
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/main/app/app.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { setupCdpPort, registerDifileScheme } from './bootstrap.js';
|
|
2
|
+
import { registerProjectFsIpc } from '../ipc/project-fs.js';
|
|
2
3
|
import { app, BrowserWindow, nativeImage, session } from 'electron';
|
|
3
4
|
import fs from 'fs';
|
|
4
5
|
import path from 'path';
|
|
@@ -259,6 +260,17 @@ function enableDevRendererAutoReload(rendererDir) {
|
|
|
259
260
|
export function createWorkbenchApp(config = {}) {
|
|
260
261
|
let setupPromise = null;
|
|
261
262
|
let appEventsRegistered = false;
|
|
263
|
+
// Lock the visible app name BEFORE app.whenReady so the dock label,
|
|
264
|
+
// ⌘-Tab card and macOS app-menu first item all read "Dimina DevTools"
|
|
265
|
+
// in both dev (unpackaged Electron) and packaged builds. `app.setName`
|
|
266
|
+
// overrides the unpackaged process name ("Electron") and is harmless
|
|
267
|
+
// when the packaged Info.plist already says the same thing.
|
|
268
|
+
// Host integrators that brand the app differently can still override
|
|
269
|
+
// `config.appName`; we keep our default consistent with `electron-builder.yml#productName`.
|
|
270
|
+
try {
|
|
271
|
+
app.setName(config.appName ?? 'Dimina DevTools');
|
|
272
|
+
}
|
|
273
|
+
catch { /* electron stub in tests */ }
|
|
262
274
|
setupCdpPort();
|
|
263
275
|
// Privileged scheme registration must run before `app.whenReady` —
|
|
264
276
|
// registering it later throws.
|
|
@@ -272,6 +284,8 @@ export function createWorkbenchApp(config = {}) {
|
|
|
272
284
|
const mainWindow = createConfiguredMainWindow(config, rendererDir);
|
|
273
285
|
const context = createContext(config, mainWindow, rendererDir);
|
|
274
286
|
context.registry.add(registerAppIpc(context));
|
|
287
|
+
// Sandboxed project file-system IPC for the in-renderer Monaco editor.
|
|
288
|
+
context.registry.add(registerProjectFsIpc(context));
|
|
275
289
|
// One process-wide listener that re-syncs every window's native
|
|
276
290
|
// backgroundColor on theme change — windows otherwise keep the stale
|
|
277
291
|
// creation-time color (see installThemeBackgroundSync).
|
|
@@ -311,6 +325,9 @@ export function createWorkbenchApp(config = {}) {
|
|
|
311
325
|
},
|
|
312
326
|
dispose: () => disposeContext(context),
|
|
313
327
|
};
|
|
328
|
+
if (config.onBeforeOpenProject) {
|
|
329
|
+
context.beforeOpenProject = (projectPath) => config.onBeforeOpenProject({ projectPath, instance });
|
|
330
|
+
}
|
|
314
331
|
if (config.onSetup) {
|
|
315
332
|
await config.onSetup(instance);
|
|
316
333
|
}
|