@tanishqkancharla/diffmap 0.4.0 → 0.6.1
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 +78 -4
- package/package.json +1 -1
- package/src/annotations.ts +17 -1
- package/src/extractDocument.ts +10 -2
- package/src/host/home.md +89 -103
- package/src/host/home.test.ts +11 -1
- package/src/parseFence.ts +81 -12
- package/src/parseViewer.test.ts +147 -4
- package/src/parseViewer.ts +44 -9
- package/src/serve.test.ts +22 -1
- package/src/services.ts +122 -15
- package/src/viewer/CallStackDiff.tsx +29 -33
- package/src/viewer/ChangesCard.tsx +0 -2
- package/src/viewer/CodeBlock.tsx +79 -7
- package/src/viewer/ComarkView.tsx +34 -0
- package/src/viewer/Fence.tsx +4 -0
- package/src/viewer/HtmlBlock.tsx +2 -1
- package/src/viewer/MermaidBlock.tsx +55 -14
- package/src/viewer/ServiceDiagramBlock.tsx +90 -54
- package/src/viewer/ServiceStage.tsx +206 -60
- package/src/viewer/SourceDiffPanel.tsx +138 -42
- package/src/viewer/TableOfContents.tsx +44 -18
- package/src/viewer/TocButton.tsx +28 -0
- package/src/viewer/ViewerApp.tsx +10 -0
- package/src/viewer/diagramDiff.ts +69 -0
- package/src/viewer/diagramLinks.ts +54 -6
- package/src/viewer/notes.tsx +0 -1
- package/src/viewer/pierre.ts +20 -2
- package/src/viewer/serviceLayout.ts +16 -5
- package/vite.config.ts +4 -0
|
@@ -6,6 +6,8 @@ import {
|
|
|
6
6
|
flattenServices,
|
|
7
7
|
type Service,
|
|
8
8
|
type ServiceDiagram,
|
|
9
|
+
type ServiceEvent,
|
|
10
|
+
type Sign,
|
|
9
11
|
} from "../services.js";
|
|
10
12
|
|
|
11
13
|
export type Point = { x: number; y: number };
|
|
@@ -27,8 +29,18 @@ export type ServiceLink = {
|
|
|
27
29
|
backward: boolean;
|
|
28
30
|
/** The longest label on the link. */
|
|
29
31
|
label: string | undefined;
|
|
32
|
+
/** In a diff, `+` or `-` when every event on the link has that sign. */
|
|
33
|
+
sign: Sign;
|
|
30
34
|
};
|
|
31
35
|
|
|
36
|
+
/** An event's label as its pill shows it, or "" when it has none. */
|
|
37
|
+
export function pillText(event: ServiceEvent) {
|
|
38
|
+
if (event.label === "") return "";
|
|
39
|
+
const sign = { "+": "+ ", "-": "− ", " ": "" }[event.sign];
|
|
40
|
+
const link = event.annotation === undefined ? "" : " ↗";
|
|
41
|
+
return `${sign}${event.label}${link}`;
|
|
42
|
+
}
|
|
43
|
+
|
|
32
44
|
export type ServiceLayout = {
|
|
33
45
|
width: number;
|
|
34
46
|
height: number;
|
|
@@ -58,14 +70,13 @@ export function serviceLinks(diagram: ServiceDiagram): ServiceLink[] {
|
|
|
58
70
|
forward: false,
|
|
59
71
|
backward: false,
|
|
60
72
|
label: undefined,
|
|
73
|
+
sign: event.sign,
|
|
61
74
|
};
|
|
62
75
|
if (forward) link.forward = true;
|
|
63
76
|
else link.backward = true;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
? `${event.label} ↗`
|
|
68
|
-
: event.label;
|
|
77
|
+
if (link.sign !== event.sign) link.sign = " ";
|
|
78
|
+
// Measure the pill as drawn.
|
|
79
|
+
const shown = pillText(event);
|
|
69
80
|
if (shown.length > (link.label?.length ?? 0)) link.label = shown;
|
|
70
81
|
links.set(id, link);
|
|
71
82
|
}
|
package/vite.config.ts
CHANGED
|
@@ -38,6 +38,10 @@ export default defineConfig(({ command }) => {
|
|
|
38
38
|
server: {
|
|
39
39
|
port: 0,
|
|
40
40
|
strictPort: false,
|
|
41
|
+
// Vite turns this on when it detects a coding agent, and its plugin
|
|
42
|
+
// changes the prebundle hash. Pin it so agent and terminal runs share
|
|
43
|
+
// one prebundle instead of rebuilding each other's.
|
|
44
|
+
forwardConsole: false,
|
|
41
45
|
},
|
|
42
46
|
};
|
|
43
47
|
});
|