@dimina-kit/devtools 0.4.0-dev.20260728110120 → 0.4.0-dev.20260731100034

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 (105) hide show
  1. package/README.md +68 -0
  2. package/dist/main/api.d.ts +1 -0
  3. package/dist/main/app/app.d.ts +3 -0
  4. package/dist/main/app/app.js +15 -0
  5. package/dist/main/app/bootstrap.d.ts +8 -5
  6. package/dist/main/app/bootstrap.js +15 -15
  7. package/dist/main/index.bundle.js +2359 -5132
  8. package/dist/main/ipc/app-lifecycle.d.ts +1 -31
  9. package/dist/main/ipc/app-lifecycle.js +1 -53
  10. package/dist/main/ipc/bridge-router.d.ts +19 -152
  11. package/dist/main/ipc/bridge-router.js +28 -2186
  12. package/dist/main/ipc/page-scroll.d.ts +1 -13
  13. package/dist/main/ipc/page-scroll.js +1 -16
  14. package/dist/main/ipc/session-listener-bag.d.ts +1 -40
  15. package/dist/main/ipc/session-listener-bag.js +1 -39
  16. package/dist/main/services/console-forward/index.d.ts +1 -60
  17. package/dist/main/services/console-forward/index.js +1 -225
  18. package/dist/main/services/console-forward/internal-log.d.ts +1 -10
  19. package/dist/main/services/console-forward/internal-log.js +1 -22
  20. package/dist/main/services/diagnostics/index.d.ts +1 -58
  21. package/dist/main/services/diagnostics/index.js +1 -60
  22. package/dist/main/services/dimina-resource-server.d.ts +1 -6
  23. package/dist/main/services/dimina-resource-server.js +1 -98
  24. package/dist/main/services/network-forward/index.d.ts +15 -3
  25. package/dist/main/services/network-forward/index.js +30 -4
  26. package/dist/main/services/network-forward/websocket.d.ts +36 -0
  27. package/dist/main/services/network-forward/websocket.js +120 -0
  28. package/dist/main/services/service-host-pool/pool.d.ts +1 -196
  29. package/dist/main/services/service-host-pool/pool.js +1 -363
  30. package/dist/main/services/simulator/custom-apis.d.ts +1 -42
  31. package/dist/main/services/simulator/custom-apis.js +1 -46
  32. package/dist/main/services/simulator/referer.d.ts +1 -9
  33. package/dist/main/services/simulator/referer.js +1 -19
  34. package/dist/main/services/simulator/ui-extensions.d.ts +13 -0
  35. package/dist/main/services/simulator/ui-extensions.js +166 -0
  36. package/dist/main/services/simulator-storage/service-storage-ops.d.ts +1 -39
  37. package/dist/main/services/simulator-storage/service-storage-ops.js +1 -66
  38. package/dist/main/services/simulator-temp-files/disk.d.ts +1 -54
  39. package/dist/main/services/simulator-temp-files/disk.js +1 -237
  40. package/dist/main/services/simulator-temp-files/fs-channels.d.ts +1 -68
  41. package/dist/main/services/simulator-temp-files/fs-channels.js +1 -107
  42. package/dist/main/services/simulator-temp-files/index.d.ts +1 -32
  43. package/dist/main/services/simulator-temp-files/index.js +1 -181
  44. package/dist/main/services/simulator-temp-files/request-handler.d.ts +1 -29
  45. package/dist/main/services/simulator-temp-files/request-handler.js +1 -177
  46. package/dist/main/services/simulator-temp-files/resolver.d.ts +1 -21
  47. package/dist/main/services/simulator-temp-files/resolver.js +1 -21
  48. package/dist/main/services/simulator-temp-files/store.d.ts +1 -13
  49. package/dist/main/services/simulator-temp-files/store.js +1 -23
  50. package/dist/main/services/views/miniapp-partition.d.ts +1 -89
  51. package/dist/main/services/views/miniapp-partition.js +1 -158
  52. package/dist/main/services/views/native-simulator-view.js +3 -0
  53. package/dist/main/services/views/simulator-session-policy.d.ts +1 -27
  54. package/dist/main/services/views/simulator-session-policy.js +1 -98
  55. package/dist/main/services/views/view-manager.d.ts +5 -0
  56. package/dist/main/services/workbench-context.d.ts +10 -1
  57. package/dist/main/services/workbench-context.js +20 -0
  58. package/dist/main/utils/ipc-registry.d.ts +21 -3
  59. package/dist/main/utils/ipc-registry.js +26 -23
  60. package/dist/main/utils/paths.d.ts +14 -0
  61. package/dist/main/utils/paths.js +14 -0
  62. package/dist/main/windows/service-host-window/create.d.ts +1 -92
  63. package/dist/main/windows/service-host-window/create.js +1 -154
  64. package/dist/native-host/render/render.js +51 -52
  65. package/dist/native-host/service/service.js +2 -2
  66. package/dist/preload/index.d.ts +2 -0
  67. package/dist/preload/index.js +1 -0
  68. package/dist/preload/runtime/clipboard.d.ts +6 -0
  69. package/dist/preload/runtime/clipboard.js +12 -0
  70. package/dist/preload/runtime/native-host.js +4 -10
  71. package/dist/preload/windows/host-toolbar-runtime.cjs.map +2 -2
  72. package/dist/preload/windows/main.cjs +46 -126
  73. package/dist/preload/windows/main.cjs.map +3 -3
  74. package/dist/preload/windows/simulator.cjs +83 -56
  75. package/dist/preload/windows/simulator.cjs.map +4 -4
  76. package/dist/preload/windows/simulator.js +83 -56
  77. package/dist/renderer/assets/{index-BJlFbXHb.js → index-BBg3YI5b.js} +2 -2
  78. package/dist/renderer/entries/main/index.html +1 -1
  79. package/dist/shared/bridge-channels.d.ts +1 -419
  80. package/dist/shared/bridge-channels.js +1 -89
  81. package/dist/shared/dmb-resource-url.d.ts +2 -0
  82. package/dist/shared/dmb-resource-url.js +2 -0
  83. package/dist/shared/ipc-channels.d.ts +2 -32
  84. package/dist/shared/ipc-channels.js +2 -5
  85. package/dist/shared/request-core.d.ts +1 -83
  86. package/dist/shared/request-core.js +1 -167
  87. package/dist/shared/simulator-ui.d.ts +61 -0
  88. package/dist/shared/simulator-ui.js +12 -0
  89. package/dist/shared/types.d.ts +7 -0
  90. package/dist/simulator/assets/device-shell-B03OuytR.js +2 -0
  91. package/dist/simulator/assets/device-shell-DbC5ccs8.css +1 -0
  92. package/dist/simulator/assets/{jsx-runtime-BDTY6fEq.js → jsx-runtime-hBv-rHqQ.js} +2 -2
  93. package/dist/simulator/assets/{simulator-CRyLSz1N.js → simulator-DpdXUf--.js} +5 -5
  94. package/dist/simulator/simulator.html +2 -2
  95. package/dist/simulator/temp-files.d.ts +29 -0
  96. package/dist/simulator/temp-files.js +79 -0
  97. package/dist/simulator/types.d.ts +43 -0
  98. package/dist/simulator/types.js +2 -0
  99. package/package.json +10 -5
  100. package/dist/shared/simulator-api-metadata.d.ts +0 -26
  101. package/dist/shared/simulator-api-metadata.js +0 -59
  102. package/dist/shared/vpath.d.ts +0 -42
  103. package/dist/shared/vpath.js +0 -105
  104. package/dist/simulator/assets/device-shell-DOy53Y0s.css +0 -1
  105. package/dist/simulator/assets/device-shell-Sbkjw8Nb.js +0 -2
@@ -341,6 +341,49 @@ function installSimulatorBridge() {
341
341
  // src/preload/runtime/custom-apis.ts
342
342
  var import_electron2 = require("electron");
343
343
 
344
+ // ../dimina-electron-runtime/dist/shared/bridge-channels.js
345
+ var BRIDGE_CHANNELS = {
346
+ SPAWN: "dmb:spawn",
347
+ DISPOSE: "dmb:dispose",
348
+ PAGE_OPEN: "dmb:page:open",
349
+ PAGE_CLOSE: "dmb:page:close",
350
+ PAGE_LIFECYCLE: "dmb:page:lifecycle",
351
+ NAV_CALLBACK: "dmb:nav:callback",
352
+ SERVICE_INVOKE: "dmb:service:invoke",
353
+ SERVICE_PUBLISH: "dmb:service:publish",
354
+ RENDER_INVOKE: "dmb:render:invoke",
355
+ RENDER_PUBLISH: "dmb:render:publish",
356
+ TO_SERVICE: "dmb:to-service",
357
+ TO_RENDER: "dmb:to-render",
358
+ SIMULATOR_API: "dmb:simulator-api",
359
+ /** simulator → main: ack of an API_CALL request (carries success/fail args). */
360
+ API_RESPONSE: "dmb:api:response",
361
+ /**
362
+ * simulator webview preload → main (sendSync): "is native-host mode on?".
363
+ * The guest preload can't read the launch `process.env`, so it asks main
364
+ * (which can) at install time. Reply is `e.returnValue = boolean`.
365
+ */
366
+ NATIVE_HOST_ENABLED: "dmb:native-host-enabled",
367
+ /**
368
+ * simulator (DeviceShell) → main: the visible top-of-stack page bridgeId.
369
+ * Main has no z-order concept — the active page lives only in DeviceShell's
370
+ * ShellState — so devtools panels / automation that must target "the current
371
+ * page's render webContents" resolve it through this signal. Fire-and-forget.
372
+ */
373
+ ACTIVE_PAGE: "dmb:active-page",
374
+ /**
375
+ * simulator (DeviceShell) → main: the FULL ordered page stack (bottom→top)
376
+ * whenever it changes. Main has no stack of its own (it only learns the
377
+ * active bridgeId via ACTIVE_PAGE), so automation's `App.getPageStack` needs
378
+ * this to report multi-page stacks. Fire-and-forget.
379
+ */
380
+ PAGE_STACK: "dmb:page-stack"
381
+ };
382
+ var SimulatorCustomApiBridgeChannel = {
383
+ Request: "simulator:custom-apis:bridge-request",
384
+ Response: "simulator:custom-apis:bridge-response"
385
+ };
386
+
344
387
  // src/shared/ipc-channels.ts
345
388
  var SimulatorChannel = {
346
389
  // Ask main to create the simulator as a top-level WebContentsView (so nested
@@ -365,10 +408,6 @@ var SimulatorChannel = {
365
408
  // string (same bare format as `getCurrentPagePath`), or '' when unknown.
366
409
  CurrentPage: "simulator:current-page"
367
410
  };
368
- var SimulatorCustomApiBridgeChannel = {
369
- Request: "simulator:custom-apis:bridge-request",
370
- Response: "simulator:custom-apis:bridge-response"
371
- };
372
411
 
373
412
  // src/preload/runtime/custom-apis.ts
374
413
  var LIST_RETRY_INTERVAL_MS = 150;
@@ -654,7 +693,7 @@ function createAppDataSource() {
654
693
  };
655
694
  }
656
695
 
657
- // src/shared/request-core.ts
696
+ // ../dimina-electron-runtime/dist/shared/request-core.js
658
697
  var DEFAULT_REQUEST_TIMEOUT_MS = 6e4;
659
698
  var MAX_TIMEOUT_MS = 2147483647;
660
699
  function resolveTimeoutBudgetMs(timeout) {
@@ -664,9 +703,11 @@ function resolveTimeoutBudgetMs(timeout) {
664
703
  function buildHeaders(header) {
665
704
  const headers = new Headers();
666
705
  for (const [key, value] of Object.entries(header ?? {})) {
667
- if (value != null) headers.set(key, String(value));
706
+ if (value != null)
707
+ headers.set(key, String(value));
668
708
  }
669
- if (!headers.has("content-type")) headers.set("content-type", "application/json");
709
+ if (!headers.has("content-type"))
710
+ headers.set("content-type", "application/json");
670
711
  return headers;
671
712
  }
672
713
  function appendQueryParams(url, data) {
@@ -678,7 +719,8 @@ function appendQueryParams(url, data) {
678
719
  return resolved.toString();
679
720
  }
680
721
  function encodeBody(data, contentType) {
681
- if (typeof data === "string") return data;
722
+ if (typeof data === "string")
723
+ return data;
682
724
  if (contentType.includes("application/x-www-form-urlencoded")) {
683
725
  const form = new URLSearchParams();
684
726
  for (const [key, value] of Object.entries(data)) {
@@ -693,7 +735,8 @@ async function decodeResponseData(response, dataType, responseType) {
693
735
  return response.arrayBuffer();
694
736
  }
695
737
  const text = await response.text();
696
- if (dataType !== "json") return text;
738
+ if (dataType !== "json")
739
+ return text;
697
740
  try {
698
741
  return JSON.parse(text);
699
742
  } catch {
@@ -717,14 +760,16 @@ function performRequest(opts, callbacks) {
717
760
  init.signal = controller.signal;
718
761
  let settled = false;
719
762
  function settleSuccess(res) {
720
- if (settled) return;
763
+ if (settled)
764
+ return;
721
765
  settled = true;
722
766
  clearTimeout(timer);
723
767
  callbacks.success?.(res);
724
768
  callbacks.complete?.(res);
725
769
  }
726
770
  function settleFail(err) {
727
- if (settled) return;
771
+ if (settled)
772
+ return;
728
773
  settled = true;
729
774
  clearTimeout(timer);
730
775
  callbacks.fail?.(err);
@@ -909,44 +954,19 @@ function setupApiCompatHook() {
909
954
  // src/preload/runtime/native-host.ts
910
955
  var import_electron5 = require("electron");
911
956
 
912
- // src/shared/bridge-channels.ts
913
- var BRIDGE_CHANNELS = {
914
- SPAWN: "dmb:spawn",
915
- DISPOSE: "dmb:dispose",
916
- PAGE_OPEN: "dmb:page:open",
917
- PAGE_CLOSE: "dmb:page:close",
918
- PAGE_LIFECYCLE: "dmb:page:lifecycle",
919
- NAV_CALLBACK: "dmb:nav:callback",
920
- SERVICE_INVOKE: "dmb:service:invoke",
921
- SERVICE_PUBLISH: "dmb:service:publish",
922
- RENDER_INVOKE: "dmb:render:invoke",
923
- RENDER_PUBLISH: "dmb:render:publish",
924
- TO_SERVICE: "dmb:to-service",
925
- TO_RENDER: "dmb:to-render",
926
- SIMULATOR_API: "dmb:simulator-api",
927
- /** simulator → main: ack of an API_CALL request (carries success/fail args). */
928
- API_RESPONSE: "dmb:api:response",
929
- /**
930
- * simulator webview preload → main (sendSync): "is native-host mode on?".
931
- * The guest preload can't read the launch `process.env`, so it asks main
932
- * (which can) at install time. Reply is `e.returnValue = boolean`.
933
- */
934
- NATIVE_HOST_ENABLED: "dmb:native-host-enabled",
935
- /**
936
- * simulator (DeviceShell) → main: the visible top-of-stack page bridgeId.
937
- * Main has no z-order concept — the active page lives only in DeviceShell's
938
- * ShellState — so devtools panels / automation that must target "the current
939
- * page's render webContents" resolve it through this signal. Fire-and-forget.
940
- */
941
- ACTIVE_PAGE: "dmb:active-page",
942
- /**
943
- * simulator (DeviceShell) → main: the FULL ordered page stack (bottom→top)
944
- * whenever it changes. Main has no stack of its own (it only learns the
945
- * active bridgeId via ACTIVE_PAGE), so automation's `App.getPageStack` needs
946
- * this to report multi-page stacks. Fire-and-forget.
947
- */
948
- PAGE_STACK: "dmb:page-stack"
949
- };
957
+ // ../dimina-electron-runtime/dist/shared/dmb-resource-url.js
958
+ var DMB_SDK_PREFIX = "/__sdk__/";
959
+ function buildRenderHostDocumentUrl(opts) {
960
+ const url = new URL(`dmb-resource://${opts.bridgeId}${DMB_SDK_PREFIX}render-host/pageFrame.html`);
961
+ url.searchParams.set("bridgeId", opts.bridgeId);
962
+ url.searchParams.set("appId", opts.appId);
963
+ url.searchParams.set("pagePath", opts.pagePath);
964
+ if (opts.isTab)
965
+ url.searchParams.set("isTab", "1");
966
+ if (opts.backgroundColor)
967
+ url.searchParams.set("bgColor", opts.backgroundColor);
968
+ return url.toString();
969
+ }
950
970
 
951
971
  // src/preload/runtime/native-host.ts
952
972
  function queryNativeHostConfig() {
@@ -990,13 +1010,7 @@ function buildBridge2(cfg) {
990
1010
  import_electron5.ipcRenderer.send(BRIDGE_CHANNELS.PAGE_STACK, payload);
991
1011
  },
992
1012
  createRenderHostUrl(opts) {
993
- const url = new URL(cfg.renderHostHtmlUrl);
994
- url.searchParams.set("bridgeId", opts.bridgeId);
995
- url.searchParams.set("appId", opts.appId);
996
- url.searchParams.set("pagePath", opts.pagePath);
997
- if (opts.isTab) url.searchParams.set("isTab", "1");
998
- if (opts.backgroundColor) url.searchParams.set("bgColor", opts.backgroundColor);
999
- return url.toString();
1013
+ return buildRenderHostDocumentUrl(opts);
1000
1014
  },
1001
1015
  renderPreloadUrl: cfg.renderPreloadUrl,
1002
1016
  device: cfg.device,
@@ -1017,12 +1031,25 @@ function installNativeHostBridge() {
1017
1031
  return exposeOnMainWorld("__diminaNativeHost", buildBridge2(cfg));
1018
1032
  }
1019
1033
 
1034
+ // src/preload/runtime/clipboard.ts
1035
+ var import_electron6 = require("electron");
1036
+ function buildBridge3() {
1037
+ return {
1038
+ readText: () => import_electron6.clipboard.readText(),
1039
+ writeText: (text) => import_electron6.clipboard.writeText(text)
1040
+ };
1041
+ }
1042
+ function installClipboardBridge() {
1043
+ return exposeOnMainWorld("__diminaClipboard", buildBridge3());
1044
+ }
1045
+
1020
1046
  // src/preload/windows/simulator.ts
1021
1047
  setupApiCompatHook();
1022
1048
  installSimulatorBridge();
1023
1049
  installCustomApisBridge();
1024
1050
  installTempFileBridge();
1025
1051
  installConsoleInstrumentation();
1052
+ installClipboardBridge();
1026
1053
  installNativeHostBridge();
1027
1054
  createAppDataSource().start(() => {
1028
1055
  });