termdock 1.4.107 → 1.4.108
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/.desktop-dist/main.js +58 -0
- package/dist/client/assets/{ModelPreview-CoR41z2e.js → ModelPreview-By3cPzJ9.js} +1 -1
- package/dist/client/assets/{abnfDiagram-VRR7QNED-CXFrMEcU.js → abnfDiagram-VRR7QNED-Dm9g0Pi3.js} +1 -1
- package/dist/client/assets/{arc-DXT1yvki.js → arc-XntYYR9t.js} +1 -1
- package/dist/client/assets/{architectureDiagram-ZJ3FMSHR-B4Tl5gm4.js → architectureDiagram-ZJ3FMSHR-CW0kZlVv.js} +1 -1
- package/dist/client/assets/{blockDiagram-677ZJIJ3-D8OY0bG2.js → blockDiagram-677ZJIJ3-DgMdh19W.js} +1 -1
- package/dist/client/assets/{c4Diagram-LMCZKHZV-BHIhcBy3.js → c4Diagram-LMCZKHZV-DJC4m2Y6.js} +1 -1
- package/dist/client/assets/channel-D1KecDCp.js +1 -0
- package/dist/client/assets/{chunk-2Q5K7J3B-NFF-sZCT.js → chunk-2Q5K7J3B-CgE5oTjY.js} +1 -1
- package/dist/client/assets/{chunk-32BRIVSS-Cysd2WNQ.js → chunk-32BRIVSS-B50lSI4-.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-BRHAAr29.js → chunk-5VM5RSS4-C984gGSO.js} +1 -1
- package/dist/client/assets/{chunk-EX3LRPZG-BovDZYVQ.js → chunk-EX3LRPZG-C1jPbFiq.js} +1 -1
- package/dist/client/assets/{chunk-JWPE2WC7-ByWUvKGO.js → chunk-JWPE2WC7-D4U9D5Kv.js} +1 -1
- package/dist/client/assets/{chunk-MOJQB5TN-GWk63RII.js → chunk-MOJQB5TN-C4rLPnf_.js} +1 -1
- package/dist/client/assets/{chunk-RYQCIY6F-GvzHMCqG.js → chunk-RYQCIY6F-CnSX68rt.js} +1 -1
- package/dist/client/assets/{chunk-V7JOEXUC-BoiSCBad.js → chunk-V7JOEXUC-LTTPDSzs.js} +1 -1
- package/dist/client/assets/{chunk-VR4S4FIN-ByS_rjkq.js → chunk-VR4S4FIN-dCZ9yGOH.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-D9fRuB0M.js → chunk-XXDRQBXY-DiUZr3na.js} +1 -1
- package/dist/client/assets/classDiagram-OUVF2IWQ-BYJ3p4nE.js +1 -0
- package/dist/client/assets/classDiagram-v2-EOCWNBFH-BYJ3p4nE.js +1 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-BVOwkeRc.js → cose-bilkent-JH36ORCC-Dw73llr7.js} +1 -1
- package/dist/client/assets/{cynefin-VYW2F7L2-8rNTW_mJ.js → cynefin-VYW2F7L2-CsB9ZT7a.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-TSTJHNR4-DHASHiYD.js → cynefinDiagram-TSTJHNR4-NinMHYPB.js} +1 -1
- package/dist/client/assets/{dagre-VKFMJZFB-wWqVXFNE.js → dagre-VKFMJZFB-CmFL5D4c.js} +1 -1
- package/dist/client/assets/{diagram-FQU43EPY-Bp2E7omd.js → diagram-FQU43EPY-D_C52SB6.js} +1 -1
- package/dist/client/assets/{diagram-G47NLZAW-DajrBIg7.js → diagram-G47NLZAW-BLlpvNO5.js} +1 -1
- package/dist/client/assets/{diagram-NH7WQ7WH-ByGTRgNg.js → diagram-NH7WQ7WH-BNT2NQnR.js} +1 -1
- package/dist/client/assets/{diagram-OA4YK3LP-bsRCtWPe.js → diagram-OA4YK3LP-DlJ-T7tl.js} +1 -1
- package/dist/client/assets/{diagram-WEI45ONY-9f1_0Bjd.js → diagram-WEI45ONY-D7s_sZnL.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-CCIWWBDH-DyvJDQQ5.js → ebnfDiagram-CCIWWBDH-PGksmUKG.js} +1 -1
- package/dist/client/assets/{erDiagram-Q63AITRT-DwLHRiMz.js → erDiagram-Q63AITRT-CbfrT-bt.js} +1 -1
- package/dist/client/assets/{flowDiagram-23GEKE2U--9lOgA3z.js → flowDiagram-23GEKE2U-CqUGdXdQ.js} +1 -1
- package/dist/client/assets/{ganttDiagram-NO4QXBWP-j9C0N_DS.js → ganttDiagram-NO4QXBWP-DpH0ybM6.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-IHSO6WYX-lHdVffsh.js → gitGraphDiagram-IHSO6WYX-Cmc3LsBg.js} +1 -1
- package/dist/client/assets/index-BwMQSNQq.js +456 -0
- package/dist/client/assets/index-RGd2Qu1X.css +1 -0
- package/dist/client/assets/{infoDiagram-FWYZ7A6U-D8kAsmdn.js → infoDiagram-FWYZ7A6U-CHzl_SDV.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-FXEZZL3T-CTY9BLyE.js → ishikawaDiagram-FXEZZL3T-BUVwtCaN.js} +1 -1
- package/dist/client/assets/{journeyDiagram-5HDEW3XC-B3QO8wF2.js → journeyDiagram-5HDEW3XC-DrmO4THP.js} +1 -1
- package/dist/client/assets/{kanban-definition-HUTT4EX6-CesXysl2.js → kanban-definition-HUTT4EX6-DTZoUd1n.js} +1 -1
- package/dist/client/assets/{linear-wxKR9xNu.js → linear-DgCNjduP.js} +1 -1
- package/dist/client/assets/{mermaid.core-DqsMKQ0n.js → mermaid.core-DLidsBlx.js} +4 -4
- package/dist/client/assets/{mindmap-definition-LN4V7U3C-CCfpEZEP.js → mindmap-definition-LN4V7U3C-srFG-Dae.js} +1 -1
- package/dist/client/assets/{pegDiagram-2B236MQR-DEje4xdU.js → pegDiagram-2B236MQR-Qary-lxo.js} +1 -1
- package/dist/client/assets/{pieDiagram-ENE6RG2P-B5guqQ7K.js → pieDiagram-ENE6RG2P-D924FFIQ.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-ABIIQ3AL-D58kwRrP.js → quadrantDiagram-ABIIQ3AL-YFBMJKUv.js} +1 -1
- package/dist/client/assets/{railroadDiagram-RFXS5EU6-D9VFfFu0.js → railroadDiagram-RFXS5EU6-C__7fBPw.js} +1 -1
- package/dist/client/assets/{requirementDiagram-TGXJPOKE-B0q4l0cr.js → requirementDiagram-TGXJPOKE-BtAq5f69.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-HTMAVEWB-DTsXXi0M.js → sankeyDiagram-HTMAVEWB-BGULYk91.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-DBY2YBRQ-3Xpi1nmi.js → sequenceDiagram-DBY2YBRQ-BBjCjIFm.js} +1 -1
- package/dist/client/assets/{sizeCapture-X5ZJPWSS-C0jHd0eC.js → sizeCapture-X5ZJPWSS-DjP0UZy6.js} +1 -1
- package/dist/client/assets/{stateDiagram-2N3HPSRC-DlDm_dYg.js → stateDiagram-2N3HPSRC-BTqu5zVt.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-6OUMAXLB-D5FsphfH.js +1 -0
- package/dist/client/assets/{swimlanes-5IMT3BWC-C128cuo6.js → swimlanes-5IMT3BWC-ClySuTz2.js} +2 -2
- package/dist/client/assets/swimlanesDiagram-G3AALYLV-C1_CRJSE.js +8 -0
- package/dist/client/assets/{timeline-definition-FHXFAJF6-BHsLELm-.js → timeline-definition-FHXFAJF6-DHURyh7H.js} +1 -1
- package/dist/client/assets/{vennDiagram-L72KCM5P-DkdQFPIy.js → vennDiagram-L72KCM5P-BFdn5KML.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-EHGQE667-DWaahbD5.js → wardleyDiagram-EHGQE667-DKEHwCwO.js} +1 -1
- package/dist/client/assets/{xychartDiagram-FW5EYKEG-CSwOYmgm.js → xychartDiagram-FW5EYKEG-CI5HzOMq.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/sw.js +1 -1
- package/dist/server/routes/filesystem.js +31 -6
- package/dist/server/utils/heicPreview.js +50 -0
- package/dist/server/workers/heicPreviewWorker.js +14 -0
- package/package.json +3 -1
- package/runtime-manifest.json +3 -3
- package/dist/client/assets/channel-CXw70OW3.js +0 -1
- package/dist/client/assets/classDiagram-OUVF2IWQ-CNF7sVVd.js +0 -1
- package/dist/client/assets/classDiagram-v2-EOCWNBFH-CNF7sVVd.js +0 -1
- package/dist/client/assets/index-B1FKcn-W.js +0 -451
- package/dist/client/assets/index-BloZ2WQg.css +0 -1
- package/dist/client/assets/stateDiagram-v2-6OUMAXLB-BVOBevpU.js +0 -1
- package/dist/client/assets/swimlanesDiagram-G3AALYLV-Bf87D8dr.js +0 -8
package/.desktop-dist/main.js
CHANGED
|
@@ -52,6 +52,7 @@ function triggerLocalNetworkPermission() {
|
|
|
52
52
|
let mainWindow = null;
|
|
53
53
|
const serviceWindows = new Map();
|
|
54
54
|
const windowServiceOrigins = new WeakMap();
|
|
55
|
+
const serviceActivity = new Map();
|
|
55
56
|
let lastFocusedServiceWindow = null;
|
|
56
57
|
let isQuitting = false;
|
|
57
58
|
function focusedWorkspaceWindow() {
|
|
@@ -71,6 +72,28 @@ function showAndFocusWindow(window) {
|
|
|
71
72
|
window.show();
|
|
72
73
|
window.focus();
|
|
73
74
|
}
|
|
75
|
+
function serviceActivitySnapshot(targetWindow) {
|
|
76
|
+
const currentOrigin = windowServiceOrigins.get(targetWindow);
|
|
77
|
+
return [...serviceWindows.entries()].flatMap(([origin, window]) => {
|
|
78
|
+
if (window.isDestroyed())
|
|
79
|
+
return [];
|
|
80
|
+
const activity = serviceActivity.get(origin) ?? { runningCount: 0, reviewCount: 0 };
|
|
81
|
+
return [{
|
|
82
|
+
origin,
|
|
83
|
+
label: serviceLabel(origin),
|
|
84
|
+
current: origin === currentOrigin,
|
|
85
|
+
focused: window.isFocused(),
|
|
86
|
+
...activity,
|
|
87
|
+
}];
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function broadcastServiceActivity() {
|
|
91
|
+
for (const window of serviceWindows.values()) {
|
|
92
|
+
if (window.isDestroyed())
|
|
93
|
+
continue;
|
|
94
|
+
window.webContents.send('desktop:service-activity-changed', serviceActivitySnapshot(window));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
74
97
|
function serviceLabel(url) {
|
|
75
98
|
const normalized = normalizeServiceUrl(url);
|
|
76
99
|
const saved = readDesktopConfig().connections.find((entry) => entry.url === normalized);
|
|
@@ -1007,11 +1030,14 @@ function createDesktopWindow(options) {
|
|
|
1007
1030
|
const serviceOrigin = windowServiceOrigins.get(window);
|
|
1008
1031
|
if (serviceOrigin && serviceWindows.get(serviceOrigin) === window) {
|
|
1009
1032
|
serviceWindows.delete(serviceOrigin);
|
|
1033
|
+
serviceActivity.delete(serviceOrigin);
|
|
1034
|
+
broadcastServiceActivity();
|
|
1010
1035
|
}
|
|
1011
1036
|
});
|
|
1012
1037
|
window.on('focus', () => {
|
|
1013
1038
|
if (windowServiceOrigins.has(window))
|
|
1014
1039
|
lastFocusedServiceWindow = window;
|
|
1040
|
+
broadcastServiceActivity();
|
|
1015
1041
|
// User is looking at the app — the Dock badge has served its purpose.
|
|
1016
1042
|
clearUnreadNotifications();
|
|
1017
1043
|
});
|
|
@@ -1052,6 +1078,38 @@ function installIpcHandlers() {
|
|
|
1052
1078
|
return snapshot();
|
|
1053
1079
|
});
|
|
1054
1080
|
ipcMain.handle('desktop:connect', (_event, url) => connectWindow(url));
|
|
1081
|
+
ipcMain.on('desktop:report-service-activity', (event, activity) => {
|
|
1082
|
+
const sourceWindow = BrowserWindow.fromWebContents(event.sender);
|
|
1083
|
+
if (!sourceWindow)
|
|
1084
|
+
return;
|
|
1085
|
+
const origin = windowServiceOrigins.get(sourceWindow);
|
|
1086
|
+
if (!origin)
|
|
1087
|
+
return;
|
|
1088
|
+
const normalizeCount = (value) => Math.min(999, Math.max(0, typeof value === 'number' && Number.isFinite(value) ? Math.floor(value) : 0));
|
|
1089
|
+
const next = {
|
|
1090
|
+
runningCount: normalizeCount(activity?.runningCount),
|
|
1091
|
+
reviewCount: normalizeCount(activity?.reviewCount),
|
|
1092
|
+
};
|
|
1093
|
+
const current = serviceActivity.get(origin);
|
|
1094
|
+
if (current?.runningCount === next.runningCount && current.reviewCount === next.reviewCount) {
|
|
1095
|
+
// The sender may have just reloaded and still needs the complete roster.
|
|
1096
|
+
sourceWindow.webContents.send('desktop:service-activity-changed', serviceActivitySnapshot(sourceWindow));
|
|
1097
|
+
return;
|
|
1098
|
+
}
|
|
1099
|
+
serviceActivity.set(origin, next);
|
|
1100
|
+
broadcastServiceActivity();
|
|
1101
|
+
});
|
|
1102
|
+
ipcMain.handle('desktop:focus-service', (event, origin) => {
|
|
1103
|
+
const sourceWindow = BrowserWindow.fromWebContents(event.sender);
|
|
1104
|
+
if (!sourceWindow || !windowServiceOrigins.has(sourceWindow))
|
|
1105
|
+
return false;
|
|
1106
|
+
const targetWindow = serviceWindows.get(origin);
|
|
1107
|
+
if (!targetWindow || targetWindow.isDestroyed())
|
|
1108
|
+
return false;
|
|
1109
|
+
showAndFocusWindow(targetWindow);
|
|
1110
|
+
broadcastServiceActivity();
|
|
1111
|
+
return true;
|
|
1112
|
+
});
|
|
1055
1113
|
ipcMain.handle('desktop:start-local', () => startLocalService());
|
|
1056
1114
|
ipcMain.handle('desktop:install-cli', () => installCli());
|
|
1057
1115
|
ipcMain.handle('desktop:update-state', () => getDesktopUpdateState());
|