@dimina-kit/devtools 0.4.0-dev.20260824071518 → 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.
Files changed (160) hide show
  1. package/dist/main/api.d.ts +1 -1
  2. package/dist/main/app/app.js +59 -2
  3. package/dist/main/index.bundle.js +986 -245
  4. package/dist/main/ipc/index.d.ts +2 -0
  5. package/dist/main/ipc/index.js +2 -0
  6. package/dist/main/ipc/popover.js +1 -1
  7. package/dist/main/ipc/project-create.d.ts +15 -0
  8. package/dist/main/ipc/project-create.js +26 -0
  9. package/dist/main/ipc/projects.d.ts +1 -1
  10. package/dist/main/ipc/projects.js +36 -1
  11. package/dist/main/ipc/settings.js +2 -1
  12. package/dist/main/ipc/simulator-module.d.ts +4 -3
  13. package/dist/main/ipc/simulator-module.js +4 -5
  14. package/dist/main/ipc/tooltip.js +1 -1
  15. package/dist/main/ipc/views.d.ts +15 -1
  16. package/dist/main/ipc/views.js +61 -4
  17. package/dist/main/runtime/miniapp-runtime.d.ts +87 -19
  18. package/dist/main/services/notifications/renderer-notifier.d.ts +30 -1
  19. package/dist/main/services/notifications/renderer-notifier.js +23 -1
  20. package/dist/main/services/projects/create-project-service.js +9 -2
  21. package/dist/main/services/projects/local-provider.js +6 -0
  22. package/dist/main/services/projects/project-repository.d.ts +29 -1
  23. package/dist/main/services/projects/project-repository.js +151 -17
  24. package/dist/main/services/projects/types.d.ts +13 -2
  25. package/dist/main/services/update/update-manager.d.ts +17 -3
  26. package/dist/main/services/update/update-manager.js +25 -6
  27. package/dist/main/services/views/host-dialog-port-channel.d.ts +18 -0
  28. package/dist/main/services/views/host-dialog-port-channel.js +15 -0
  29. package/dist/main/services/views/host-dialog-session-runtime.d.ts +10 -0
  30. package/dist/main/services/views/host-dialog-session-runtime.js +17 -0
  31. package/dist/main/services/views/host-dialog-view.d.ts +95 -0
  32. package/dist/main/services/views/host-dialog-view.js +147 -0
  33. package/dist/main/services/views/host-sidebar-port-channel.d.ts +18 -0
  34. package/dist/main/services/views/host-sidebar-port-channel.js +15 -0
  35. package/dist/main/services/views/host-sidebar-session-runtime.d.ts +10 -0
  36. package/dist/main/services/views/host-sidebar-session-runtime.js +17 -0
  37. package/dist/main/services/views/host-sidebar-view.d.ts +59 -0
  38. package/dist/main/services/views/host-sidebar-view.js +44 -0
  39. package/dist/main/services/views/host-slot-port-channel.d.ts +107 -0
  40. package/dist/main/services/views/host-slot-port-channel.js +261 -0
  41. package/dist/main/services/views/host-slot-session-runtime.d.ts +40 -0
  42. package/dist/main/services/views/host-slot-session-runtime.js +50 -0
  43. package/dist/main/services/views/host-slot-view.d.ts +109 -0
  44. package/dist/main/services/views/host-slot-view.js +147 -0
  45. package/dist/main/services/views/host-toolbar-port-channel.d.ts +6 -91
  46. package/dist/main/services/views/host-toolbar-port-channel.js +10 -243
  47. package/dist/main/services/views/host-toolbar-session-runtime.d.ts +5 -30
  48. package/dist/main/services/views/host-toolbar-session-runtime.js +9 -47
  49. package/dist/main/services/views/host-toolbar-view.d.ts +34 -7
  50. package/dist/main/services/views/host-toolbar-view.js +30 -224
  51. package/dist/main/services/views/managed-web-contents-view.d.ts +48 -0
  52. package/dist/main/services/views/managed-web-contents-view.js +123 -0
  53. package/dist/main/services/views/overlay-panels-view.d.ts +23 -0
  54. package/dist/main/services/views/overlay-panels-view.js +93 -4
  55. package/dist/main/services/views/placement-reconciler.d.ts +14 -2
  56. package/dist/main/services/views/placement-reconciler.js +27 -0
  57. package/dist/main/services/views/placement-test-driver.d.ts +1 -0
  58. package/dist/main/services/views/placement-test-driver.js +3 -0
  59. package/dist/main/services/views/view-manager-devtools-host-test-fixtures.js +3 -1
  60. package/dist/main/services/views/view-manager.d.ts +10 -78
  61. package/dist/main/services/views/view-manager.js +34 -3
  62. package/dist/main/services/workbench-context.d.ts +18 -4
  63. package/dist/main/services/workbench-context.js +1 -0
  64. package/dist/main/services/workspace/workspace-service.d.ts +2 -0
  65. package/dist/main/services/workspace/workspace-service.js +14 -0
  66. package/dist/main/utils/paths.d.ts +4 -0
  67. package/dist/main/utils/paths.js +4 -0
  68. package/dist/main/utils/sender-policy.js +10 -0
  69. package/dist/native-host/common/common.js +65 -62
  70. package/dist/native-host/render/render.js +2230 -2052
  71. package/dist/native-host/service/service.js +2 -2
  72. package/dist/preload/runtime/host-dialog-advertiser.d.ts +22 -0
  73. package/dist/preload/runtime/host-dialog-advertiser.js +37 -0
  74. package/dist/preload/runtime/host-dialog-port.d.ts +44 -0
  75. package/dist/preload/runtime/host-dialog-port.js +53 -0
  76. package/dist/preload/runtime/host-dialog-runtime.d.ts +28 -0
  77. package/dist/preload/runtime/host-dialog-runtime.js +36 -0
  78. package/dist/preload/runtime/host-sidebar-advertiser.d.ts +19 -0
  79. package/dist/preload/runtime/host-sidebar-advertiser.js +35 -0
  80. package/dist/preload/runtime/host-sidebar-port.d.ts +44 -0
  81. package/dist/preload/runtime/host-sidebar-port.js +53 -0
  82. package/dist/preload/runtime/host-sidebar-runtime.d.ts +28 -0
  83. package/dist/preload/runtime/host-sidebar-runtime.js +36 -0
  84. package/dist/preload/runtime/host-slot-port-bridge.d.ts +18 -0
  85. package/dist/preload/runtime/host-slot-port-bridge.js +112 -0
  86. package/dist/preload/runtime/host-toolbar-advertiser.d.ts +5 -13
  87. package/dist/preload/runtime/host-toolbar-advertiser.js +18 -38
  88. package/dist/preload/runtime/host-toolbar-port.d.ts +9 -0
  89. package/dist/preload/runtime/host-toolbar-port.js +11 -95
  90. package/dist/preload/runtime/wait-for-slot-root.d.ts +20 -0
  91. package/dist/preload/runtime/wait-for-slot-root.js +52 -0
  92. package/dist/preload/windows/host-dialog-runtime.cjs +353 -0
  93. package/dist/preload/windows/host-dialog-runtime.cjs.map +7 -0
  94. package/dist/preload/windows/host-dialog-runtime.d.ts +2 -0
  95. package/dist/preload/windows/host-dialog-runtime.js +13 -0
  96. package/dist/preload/windows/host-sidebar-runtime.cjs +354 -0
  97. package/dist/preload/windows/host-sidebar-runtime.cjs.map +7 -0
  98. package/dist/preload/windows/host-sidebar-runtime.d.ts +2 -0
  99. package/dist/preload/windows/host-sidebar-runtime.js +13 -0
  100. package/dist/preload/windows/host-toolbar-runtime.cjs +134 -51
  101. package/dist/preload/windows/host-toolbar-runtime.cjs.map +3 -3
  102. package/dist/preload/windows/simulator.cjs.map +1 -1
  103. package/dist/renderer/assets/button-D5Q2wkXq.js +2 -0
  104. package/dist/renderer/assets/constants-D7DfVqMp.js +2 -0
  105. package/dist/renderer/assets/constants-D8zsejFq.js +2 -0
  106. package/dist/renderer/assets/createLucideIcon-Bqi8hpdi.js +2 -0
  107. package/dist/renderer/assets/dialog-e1TecTOY.js +46 -0
  108. package/dist/renderer/assets/dist-DKWdE1TK.js +2 -0
  109. package/dist/renderer/assets/hostSidebarDefault-B3yLfy8j.js +2 -0
  110. package/dist/renderer/assets/index-CsPD68N_.js +5 -0
  111. package/dist/renderer/assets/input-Ct3alvkq.js +2 -0
  112. package/dist/renderer/assets/ipc-channels-overlays-LsDzGAtV.js +2 -0
  113. package/dist/renderer/assets/jsx-runtime-2vXHouwr.css +1 -0
  114. package/dist/renderer/assets/jsx-runtime-DGLHmmOq.js +9 -0
  115. package/dist/renderer/assets/popover-Dix5cm_b.js +2 -0
  116. package/dist/renderer/assets/project-api-k7Oq9iaq.js +2 -0
  117. package/dist/renderer/assets/projectCreateDialog-Bbjz75bP.js +2 -0
  118. package/dist/renderer/assets/select-acGb0AmJ.js +2 -0
  119. package/dist/renderer/assets/settings-CQrTMr43.js +2 -0
  120. package/dist/renderer/assets/settings-api-CrUQ9rYV.js +2 -0
  121. package/dist/renderer/assets/settings-tab-bar-Cw1kVIf2.js +2 -0
  122. package/dist/renderer/assets/tooltip-B_-_YVbw.js +2 -0
  123. package/dist/renderer/assets/types-CsEKtFyr.js +2 -0
  124. package/dist/renderer/assets/updateDialog-NsF8223A.js +2 -0
  125. package/dist/renderer/assets/utils-kfQov6Pa.js +2 -0
  126. package/dist/renderer/assets/view-api-CLn3rcQE.js +2 -0
  127. package/dist/renderer/assets/{workbenchSettings-oq_EyfKf.js → workbenchSettings-CV4LVA9b.js} +3 -3
  128. package/dist/renderer/entries/host-sidebar-default/index.html +21 -0
  129. package/dist/renderer/entries/main/index.html +17 -8
  130. package/dist/renderer/entries/popover/index.html +10 -7
  131. package/dist/renderer/entries/project-create-dialog/index.html +27 -0
  132. package/dist/renderer/entries/settings/index.html +10 -7
  133. package/dist/renderer/entries/tooltip/index.html +5 -4
  134. package/dist/renderer/entries/update-dialog/index.html +25 -0
  135. package/dist/renderer/entries/workbench-settings/index.html +11 -7
  136. package/dist/service-host/preload.cjs +10 -0
  137. package/dist/shared/constants.d.ts +22 -0
  138. package/dist/shared/constants.js +22 -0
  139. package/dist/shared/ipc-channels-overlays.d.ts +156 -0
  140. package/dist/shared/ipc-channels-overlays.js +186 -0
  141. package/dist/shared/ipc-channels.d.ts +4 -77
  142. package/dist/shared/ipc-channels.js +4 -98
  143. package/dist/shared/ipc-schemas.d.ts +44 -0
  144. package/dist/shared/ipc-schemas.js +55 -0
  145. package/dist/shared/types.d.ts +71 -0
  146. package/dist/shared/view-ids.d.ts +7 -0
  147. package/dist/shared/view-ids.js +10 -0
  148. package/package.json +8 -8
  149. package/dist/renderer/assets/constants-Bdz0LHdy.js +0 -2
  150. package/dist/renderer/assets/index-CtznrmHR.js +0 -49
  151. package/dist/renderer/assets/input-Dmm6nob5.js +0 -2
  152. package/dist/renderer/assets/ipc-transport-BOg0gR9W.js +0 -9
  153. package/dist/renderer/assets/ipc-transport-DgQhZaE9.css +0 -1
  154. package/dist/renderer/assets/popover-Cd1FEGOX.js +0 -2
  155. package/dist/renderer/assets/select-BaYox7If.js +0 -2
  156. package/dist/renderer/assets/settings-BXvwuFaz.js +0 -2
  157. package/dist/renderer/assets/settings-api-Bo9GbYqs.js +0 -2
  158. package/dist/renderer/assets/settings-tab-bar-Beia6lMr.js +0 -2
  159. package/dist/renderer/assets/tooltip-DfQqK3Sk.js +0 -2
  160. package/dist/renderer/assets/view-api-nn69je7A.js +0 -2
@@ -2,7 +2,7 @@ export { launch, buildDefaultMenu, openSettingsWindow } from './app/launch.js';
2
2
  export type { WorkbenchAppInstance } from './app/app.js';
3
3
  export { suppressEpipe, setupCdpPort } from './app/bootstrap.js';
4
4
  export { asMiniappRuntime } from './runtime/miniapp-runtime.js';
5
- export type { MiniappRuntime, MiniappSessionAppInfo, DiminaHostToolbarPageBridge, } from './runtime/miniapp-runtime.js';
5
+ export type { MiniappRuntime, MiniappSessionAppInfo, DiminaHostToolbarPageBridge, DiminaHostSidebarPageBridge, DiminaHostDialogPageBridge, } from './runtime/miniapp-runtime.js';
6
6
  export { createWorkbenchContext } from './services/workbench-context.js';
7
7
  export type { WorkbenchContext, CreateContextOptions } from './services/workbench-context.js';
8
8
  export { createMainWindow } from './windows/main-window/index.js';
@@ -4,6 +4,7 @@ import { registerProjectFsIpc } from '../ipc/project-fs.js';
4
4
  import { app, BrowserWindow, nativeImage, session } from 'electron';
5
5
  import fs from 'fs';
6
6
  import path from 'path';
7
+ import { HOST_SIDEBAR_DEFAULT_WIDTH } from '../../shared/constants.js';
7
8
  import { rendererDir as defaultRendererDir, defaultPreloadPath, devtoolsPackageRoot } from '../utils/paths.js';
8
9
  import { installThemeBackgroundSync } from '../utils/theme.js';
9
10
  import { createMainWindow, wireMainWindowEvents } from '../windows/main-window/index.js';
@@ -17,7 +18,7 @@ import { createWorkbenchContext } from '../services/workbench-context.js';
17
18
  import { setupCompileWorkerStandby } from '../services/compile-standby.js';
18
19
  import { loadWorkbenchSettings, applyTheme } from '../services/settings/index.js';
19
20
  import { installAppMenu } from '../menu/index.js';
20
- import { registerAppIpc, registerInternalDevtoolsIpc, registerTooltipIpc, popoverModule, projectsModule, sessionModule, settingsModule, simulatorModule, } from '../ipc/index.js';
21
+ import { registerAppIpc, registerInternalDevtoolsIpc, registerTooltipIpc, registerProjectCreateIpc, registerViewsIpc, popoverModule, projectsModule, sessionModule, settingsModule, simulatorModule, } from '../ipc/index.js';
21
22
  import { startAutomationServer } from '../services/automation/index.js';
22
23
  import { startMcpServer, setNativeHost, setActiveBridgeId, setNativeOverviewProvider, } from '../services/mcp/index.js';
23
24
  import { setupSimulatorStorage } from '../services/simulator-storage/index.js';
@@ -168,6 +169,10 @@ function createContext(config, mainWindow, rendererDir) {
168
169
  projectTemplates: config.projectTemplates,
169
170
  builtinTemplates: config.builtinTemplates,
170
171
  customCreateProjectDialog: config.customCreateProjectDialog,
172
+ // No cast needed here: the hook receives the project record, so the
173
+ // main-process `Project` the context hands it satisfies the structural
174
+ // `EditableProject` the config declares.
175
+ customEditProjectDialog: config.customEditProjectDialog,
171
176
  onBeforeOpenProject: config.onBeforeOpenProject,
172
177
  });
173
178
  }
@@ -411,6 +416,19 @@ onInstanceCreated) {
411
416
  // overlay is core UI chrome (every toolbar in this app relies on it), not a
412
417
  // host-configurable feature.
413
418
  context.registry.add(registerTooltipIpc(context));
419
+ // Unconditional: the project-create dialog is core UI chrome (the built-in
420
+ // "新建项目" flow every host falls back to), not a host-configurable feature.
421
+ context.registry.add(registerProjectCreateIpc(context));
422
+ // Unconditional (not a toggleable BUILTIN_MODULES entry): placement/host-
423
+ // slot IPC has no real dependency on the simulator module — `ctx.views`
424
+ // (ViewManager) is constructed unconditionally regardless of
425
+ // `modules.simulator`, and host-sidebar in particular lives on the
426
+ // project-list page, unrelated to the simulator webview. Every renderer
427
+ // entry point also blocks its first render on `AllocatePlacementGeneration`
428
+ // (see renderer-placement-generation.ts) — gating any of this behind the
429
+ // simulator toggle would strand a host that disables it on the fatal
430
+ // boot-failure page, or leave placement silently non-functional.
431
+ context.registry.add(registerViewsIpc(context));
414
432
  // Referer/CORS webRequest policy for the simulator runtime's sessions (shared
415
433
  // fallback + every per-project partition). Registered into the context
416
434
  // registry so its configurator + per-session listeners are torn down with the
@@ -497,13 +515,52 @@ onInstanceCreated) {
497
515
  instance.registerSimulatorApi('login', async () => {
498
516
  return 'hello';
499
517
  });
518
+ // devtools' own default content for the host-sidebar slot: a narrow icon
519
+ // rail (logo + 小程序/小游戏 toggle) filtering the project-list grid by
520
+ // `Project.type`. Loaded BEFORE `config.onSetup` runs below, so any
521
+ // downstream `loadURL`/`loadFile` call inside onSetup necessarily happens
522
+ // later and naturally supersedes this default via plain chronological
523
+ // ordering — no override flag needed.
524
+ context.registry.add(context.views.hostSidebar.onMessage('project-category-selected', (payload) => {
525
+ const category = payload?.category;
526
+ if (category !== 'miniprogram' && category !== 'minigame')
527
+ return;
528
+ context.notify.hostSidebarCategorySelected(category);
529
+ }));
530
+ context.views.hostSidebar
531
+ .loadFile(path.join(rendererDir, 'entries/host-sidebar-default/index.html'))
532
+ .catch((err) => {
533
+ console.warn('[workbench] failed to load host-sidebar default content:', err);
534
+ });
535
+ // Seed the notified width with the rail's own known intrinsic width
536
+ // (`HOST_SIDEBAR_DEFAULT_WIDTH`) instead of leaving it at 0 until the
537
+ // rail's in-page advertiser reports back. That report can never arrive on
538
+ // its own: the placeholder above only becomes "desired visible" once a
539
+ // nonzero width is known (project-list-screen.tsx), attach only happens
540
+ // for a "desired visible" view (placement-reconciler.ts), and the rail's
541
+ // advertiser (view-anchor's measure-loop.ts) only ever fires via
542
+ // `requestAnimationFrame`, which Chromium never schedules for a
543
+ // WebContentsView that was never attached — a structural deadlock, not a
544
+ // slow-to-resolve race. `setWidthMode({fixed})` pushes the seed
545
+ // synchronously (no attach/rAF dependency) and, critically, retains it in
546
+ // `getHostSidebarWidth()` too, so a renderer that mounts and pulls before
547
+ // any push replays the real seed instead of a stale 0. Flipping back to
548
+ // 'auto' immediately after, before anything has attached or advertised, is
549
+ // a same-tick no-op past the seed (`setExtentMode`'s reapply branch only
550
+ // fires once something has actually been advertised) — it leaves the slot
551
+ // in 'auto' for whichever content ends up loaded (this rail's own later
552
+ // report, or a downstream replacement's), not pinned.
553
+ context.views.hostSidebar.setWidthMode({ fixed: HOST_SIDEBAR_DEFAULT_WIDTH });
554
+ context.views.hostSidebar.setWidthMode('auto');
500
555
  if (config.onSetup) {
501
556
  await config.onSetup(instance);
502
557
  }
503
558
  if (config.updateChecker) {
504
559
  instance.updateManager = new UpdateManager({
505
560
  checker: config.updateChecker,
506
- mainWindow,
561
+ showUpdatePanel: (info) => context.views.showUpdateDialog(info),
562
+ notifyDownloadProgress: (percent) => context.views.notifyUpdateDownloadProgress(percent),
563
+ hideUpdatePanel: () => context.views.hideUpdateDialog(),
507
564
  senderPolicy: context.senderPolicy,
508
565
  checkInterval: config.updateOptions?.checkInterval,
509
566
  initialDelay: config.updateOptions?.initialDelay,