@flanksource/clicky-ui 0.3.45 → 0.3.46
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 +22 -0
- package/dist/data/AccessMark.cjs +23 -0
- package/dist/data/AccessMark.cjs.map +1 -0
- package/dist/data/AccessMark.d.ts +11 -0
- package/dist/data/AccessMark.d.ts.map +1 -0
- package/dist/data/AccessMark.js +23 -0
- package/dist/data/AccessMark.js.map +1 -0
- package/dist/data/CodeDiff.cjs +116 -23
- package/dist/data/CodeDiff.cjs.map +1 -1
- package/dist/data/CodeDiff.d.ts +26 -0
- package/dist/data/CodeDiff.d.ts.map +1 -1
- package/dist/data/CodeDiff.js +116 -23
- package/dist/data/CodeDiff.js.map +1 -1
- package/dist/data/GraphDiagram.cjs +65 -13
- package/dist/data/GraphDiagram.cjs.map +1 -1
- package/dist/data/GraphDiagram.d.ts +9 -2
- package/dist/data/GraphDiagram.d.ts.map +1 -1
- package/dist/data/GraphDiagram.js +66 -14
- package/dist/data/GraphDiagram.js.map +1 -1
- package/dist/data/GraphDiagramGroups.cjs +100 -0
- package/dist/data/GraphDiagramGroups.cjs.map +1 -0
- package/dist/data/GraphDiagramGroups.d.ts +24 -0
- package/dist/data/GraphDiagramGroups.d.ts.map +1 -0
- package/dist/data/GraphDiagramGroups.js +100 -0
- package/dist/data/GraphDiagramGroups.js.map +1 -0
- package/dist/data/GraphDiagramNodes.cjs +17 -31
- package/dist/data/GraphDiagramNodes.cjs.map +1 -1
- package/dist/data/GraphDiagramNodes.d.ts +6 -13
- package/dist/data/GraphDiagramNodes.d.ts.map +1 -1
- package/dist/data/GraphDiagramNodes.js +17 -31
- package/dist/data/GraphDiagramNodes.js.map +1 -1
- package/dist/data/TreeNode.cjs +1 -1
- package/dist/data/TreeNode.cjs.map +1 -1
- package/dist/data/TreeNode.d.ts.map +1 -1
- package/dist/data/TreeNode.js +1 -1
- package/dist/data/TreeNode.js.map +1 -1
- package/dist/data/call-graph/CallGraph.cjs +50 -31
- package/dist/data/call-graph/CallGraph.cjs.map +1 -1
- package/dist/data/call-graph/CallGraph.d.ts +10 -1
- package/dist/data/call-graph/CallGraph.d.ts.map +1 -1
- package/dist/data/call-graph/CallGraph.js +52 -33
- package/dist/data/call-graph/CallGraph.js.map +1 -1
- package/dist/data/call-graph/CallGraphMembers.cjs +5 -4
- package/dist/data/call-graph/CallGraphMembers.cjs.map +1 -1
- package/dist/data/call-graph/CallGraphMembers.d.ts +1 -1
- package/dist/data/call-graph/CallGraphMembers.d.ts.map +1 -1
- package/dist/data/call-graph/CallGraphMembers.js +5 -4
- package/dist/data/call-graph/CallGraphMembers.js.map +1 -1
- package/dist/data/call-graph/CallGraphToolbar.cjs +17 -5
- package/dist/data/call-graph/CallGraphToolbar.cjs.map +1 -1
- package/dist/data/call-graph/CallGraphToolbar.d.ts +10 -0
- package/dist/data/call-graph/CallGraphToolbar.d.ts.map +1 -1
- package/dist/data/call-graph/CallGraphToolbar.js +18 -6
- package/dist/data/call-graph/CallGraphToolbar.js.map +1 -1
- package/dist/data/call-graph/call-graph-model.cjs +169 -18
- package/dist/data/call-graph/call-graph-model.cjs.map +1 -1
- package/dist/data/call-graph/call-graph-model.d.ts +40 -4
- package/dist/data/call-graph/call-graph-model.d.ts.map +1 -1
- package/dist/data/call-graph/call-graph-model.js +170 -19
- package/dist/data/call-graph/call-graph-model.js.map +1 -1
- package/dist/data/call-graph/call-graph-vocabulary.cjs +19 -1
- package/dist/data/call-graph/call-graph-vocabulary.cjs.map +1 -1
- package/dist/data/call-graph/call-graph-vocabulary.d.ts +4 -0
- package/dist/data/call-graph/call-graph-vocabulary.d.ts.map +1 -1
- package/dist/data/call-graph/call-graph-vocabulary.js +19 -1
- package/dist/data/call-graph/call-graph-vocabulary.js.map +1 -1
- package/dist/data/call-graph/call-graph.fixtures.d.ts.map +1 -1
- package/dist/data/call-graph/index.d.ts +2 -2
- package/dist/data/call-graph/index.d.ts.map +1 -1
- package/dist/data/call-graph/types.cjs.map +1 -1
- package/dist/data/call-graph/types.d.ts +7 -2
- package/dist/data/call-graph/types.d.ts.map +1 -1
- package/dist/data/call-graph/types.js.map +1 -1
- package/dist/data/data-access.cjs +8 -0
- package/dist/data/data-access.cjs.map +1 -0
- package/dist/data/data-access.d.ts +5 -0
- package/dist/data/data-access.d.ts.map +1 -0
- package/dist/data/data-access.js +8 -0
- package/dist/data/data-access.js.map +1 -0
- package/dist/data/git/GitChangeList.cjs +6 -2
- package/dist/data/git/GitChangeList.cjs.map +1 -1
- package/dist/data/git/GitChangeList.d.ts +6 -1
- package/dist/data/git/GitChangeList.d.ts.map +1 -1
- package/dist/data/git/GitChangeList.js +6 -2
- package/dist/data/git/GitChangeList.js.map +1 -1
- package/dist/data/graph-columns-layout.cjs +47 -16
- package/dist/data/graph-columns-layout.cjs.map +1 -1
- package/dist/data/graph-columns-layout.d.ts +34 -0
- package/dist/data/graph-columns-layout.d.ts.map +1 -1
- package/dist/data/graph-columns-layout.js +47 -16
- package/dist/data/graph-columns-layout.js.map +1 -1
- package/dist/data/graph-diagram-model.cjs +5 -0
- package/dist/data/graph-diagram-model.cjs.map +1 -1
- package/dist/data/graph-diagram-model.d.ts +19 -0
- package/dist/data/graph-diagram-model.d.ts.map +1 -1
- package/dist/data/graph-diagram-model.js +5 -0
- package/dist/data/graph-diagram-model.js.map +1 -1
- package/dist/data/graph-group-window.cjs +60 -0
- package/dist/data/graph-group-window.cjs.map +1 -0
- package/dist/data/graph-group-window.d.ts +33 -0
- package/dist/data/graph-group-window.d.ts.map +1 -0
- package/dist/data/graph-group-window.js +60 -0
- package/dist/data/graph-group-window.js.map +1 -0
- package/dist/data/use-group-windows.cjs +50 -0
- package/dist/data/use-group-windows.cjs.map +1 -0
- package/dist/data/use-group-windows.d.ts +27 -0
- package/dist/data/use-group-windows.d.ts.map +1 -0
- package/dist/data/use-group-windows.js +50 -0
- package/dist/data/use-group-windows.js.map +1 -0
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +10 -0
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +4 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +13 -3
- package/dist/data.js.map +1 -1
- package/dist/hooks/event-hub.cjs +229 -0
- package/dist/hooks/event-hub.cjs.map +1 -0
- package/dist/hooks/event-hub.d.ts +26 -0
- package/dist/hooks/event-hub.d.ts.map +1 -0
- package/dist/hooks/event-hub.js +229 -0
- package/dist/hooks/event-hub.js.map +1 -0
- package/dist/hooks.cjs +2 -0
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.ts +1 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +2 -0
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +12 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +15 -3
- package/dist/index.js.map +1 -1
- package/dist/overlay/modalStack.cjs +13 -6
- package/dist/overlay/modalStack.cjs.map +1 -1
- package/dist/overlay/modalStack.d.ts.map +1 -1
- package/dist/overlay/modalStack.js +13 -6
- package/dist/overlay/modalStack.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { useState, useRef, useCallback, useEffect, useMemo } from "react";
|
|
2
|
+
import { revealMember, clampWindowStart, windowedPositions, wheelRows } from "./graph-group-window.js";
|
|
3
|
+
const DOM_DELTA_LINE = 1;
|
|
4
|
+
const DOM_DELTA_PAGE = 2;
|
|
5
|
+
function useGroupWindows({ boxes, positions, reveal, stageRef, scale }) {
|
|
6
|
+
const [starts, setStarts] = useState(() => revealMember(boxes, {}, reveal));
|
|
7
|
+
const [revealed, setRevealed] = useState(reveal);
|
|
8
|
+
if (reveal !== revealed) {
|
|
9
|
+
setRevealed(reveal);
|
|
10
|
+
setStarts((current) => revealMember(boxes, current, reveal));
|
|
11
|
+
}
|
|
12
|
+
const live = useRef({ boxes, scale });
|
|
13
|
+
live.current = { boxes, scale };
|
|
14
|
+
const scroll = useCallback((boxId, rows) => {
|
|
15
|
+
var _a;
|
|
16
|
+
const memberWindow = (_a = live.current.boxes.find((box) => box.id === boxId)) == null ? void 0 : _a.window;
|
|
17
|
+
if (!memberWindow) throw new Error(`GraphDiagram: group box "${boxId}" has no member window to scroll`);
|
|
18
|
+
setStarts((current) => {
|
|
19
|
+
const next = clampWindowStart(memberWindow, (current[boxId] ?? 0) + rows);
|
|
20
|
+
return next === clampWindowStart(memberWindow, current[boxId] ?? 0) ? current : { ...current, [boxId]: next };
|
|
21
|
+
});
|
|
22
|
+
}, []);
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
const stage = stageRef.current;
|
|
25
|
+
if (!stage) return;
|
|
26
|
+
let carry = { boxId: "", px: 0 };
|
|
27
|
+
const onWheel = (event) => {
|
|
28
|
+
var _a, _b;
|
|
29
|
+
if (event.ctrlKey || event.metaKey || !(event.target instanceof Element)) return;
|
|
30
|
+
const boxId = (_a = event.target.closest("[data-graph-window]")) == null ? void 0 : _a.getAttribute("data-graph-window");
|
|
31
|
+
const memberWindow = (_b = live.current.boxes.find((box) => box.id === boxId)) == null ? void 0 : _b.window;
|
|
32
|
+
if (!boxId || !memberWindow) return;
|
|
33
|
+
event.preventDefault();
|
|
34
|
+
event.stopPropagation();
|
|
35
|
+
const rowPx = memberWindow.height / memberWindow.rows * live.current.scale;
|
|
36
|
+
const unit = event.deltaMode === DOM_DELTA_LINE ? rowPx : event.deltaMode === DOM_DELTA_PAGE ? rowPx * memberWindow.rows : 1;
|
|
37
|
+
const moved = wheelRows(carry.boxId === boxId ? carry.px : 0, event.deltaY * unit, rowPx);
|
|
38
|
+
carry = { boxId, px: moved.carry };
|
|
39
|
+
if (moved.rows !== 0) scroll(boxId, moved.rows);
|
|
40
|
+
};
|
|
41
|
+
stage.addEventListener("wheel", onWheel, { passive: false });
|
|
42
|
+
return () => stage.removeEventListener("wheel", onWheel);
|
|
43
|
+
}, [stageRef, scroll]);
|
|
44
|
+
const windowed = useMemo(() => windowedPositions(positions, boxes, starts), [positions, boxes, starts]);
|
|
45
|
+
return { ...windowed, starts, scroll };
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
useGroupWindows
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=use-group-windows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-group-windows.js","sources":["../../src/data/use-group-windows.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState, type RefObject } from \"react\";\nimport type { GraphLayoutGroupBox } from \"./graph-columns-layout\";\nimport { clampWindowStart, revealMember, wheelRows, windowedPositions, type WindowedPositions, type WindowStarts } from \"./graph-group-window\";\nimport type { GraphLayoutPosition } from \"./graph-layout\";\n\nconst DOM_DELTA_LINE = 1;\nconst DOM_DELTA_PAGE = 2;\n\nexport interface GroupWindows extends WindowedPositions {\n starts: WindowStarts;\n /** Scrolls a windowed box by `rows`, kept within its members. */\n scroll: (boxId: string, rows: number) => void;\n}\n\ninterface UseGroupWindowsOptions {\n boxes: readonly GraphLayoutGroupBox[];\n positions: Record<string, GraphLayoutPosition>;\n /** The member kept in view: scrolled to whenever it changes. */\n reveal: string | undefined;\n /** The stage the boxes and nodes are drawn on: a wheel over a windowed group there scrolls it. */\n stageRef: RefObject<HTMLElement | null>;\n /** The stage's zoom, so a row of wheel travel is a row on screen. */\n scale: number;\n}\n\n/**\n * Each windowed group's scroll position, and the positions it draws members at. A plain wheel over a\n * windowed group, or over one of its members, scrolls the group and goes no further, so it never zooms\n * the diagram; ctrl/meta + wheel still does.\n */\nexport function useGroupWindows({ boxes, positions, reveal, stageRef, scale }: UseGroupWindowsOptions): GroupWindows {\n const [starts, setStarts] = useState<WindowStarts>(() => revealMember(boxes, {}, reveal));\n const [revealed, setRevealed] = useState(reveal);\n if (reveal !== revealed) {\n setRevealed(reveal);\n setStarts((current) => revealMember(boxes, current, reveal));\n }\n const live = useRef({ boxes, scale });\n live.current = { boxes, scale };\n\n const scroll = useCallback((boxId: string, rows: number) => {\n const memberWindow = live.current.boxes.find((box) => box.id === boxId)?.window;\n if (!memberWindow) throw new Error(`GraphDiagram: group box \"${boxId}\" has no member window to scroll`);\n setStarts((current) => {\n const next = clampWindowStart(memberWindow, (current[boxId] ?? 0) + rows);\n return next === clampWindowStart(memberWindow, current[boxId] ?? 0) ? current : { ...current, [boxId]: next };\n });\n }, []);\n\n useEffect(() => {\n const stage = stageRef.current;\n if (!stage) return;\n let carry = { boxId: \"\", px: 0 };\n const onWheel = (event: WheelEvent) => {\n if (event.ctrlKey || event.metaKey || !(event.target instanceof Element)) return;\n const boxId = event.target.closest(\"[data-graph-window]\")?.getAttribute(\"data-graph-window\");\n const memberWindow = live.current.boxes.find((box) => box.id === boxId)?.window;\n if (!boxId || !memberWindow) return;\n event.preventDefault();\n event.stopPropagation();\n const rowPx = (memberWindow.height / memberWindow.rows) * live.current.scale;\n const unit = event.deltaMode === DOM_DELTA_LINE ? rowPx : event.deltaMode === DOM_DELTA_PAGE ? rowPx * memberWindow.rows : 1;\n const moved = wheelRows(carry.boxId === boxId ? carry.px : 0, event.deltaY * unit, rowPx);\n carry = { boxId, px: moved.carry };\n if (moved.rows !== 0) scroll(boxId, moved.rows);\n };\n // React registers wheel listeners as passive, which cannot keep the wheel from zooming the viewport.\n stage.addEventListener(\"wheel\", onWheel, { passive: false });\n return () => stage.removeEventListener(\"wheel\", onWheel);\n }, [stageRef, scroll]);\n\n const windowed = useMemo(() => windowedPositions(positions, boxes, starts), [positions, boxes, starts]);\n return { ...windowed, starts, scroll };\n}\n"],"names":[],"mappings":";;AAKA,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;AAwBhB,SAAS,gBAAgB,EAAE,OAAO,WAAW,QAAQ,UAAU,SAA+C;AACnH,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAuB,MAAM,aAAa,OAAO,IAAI,MAAM,CAAC;AACxF,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,MAAM;AAC/C,MAAI,WAAW,UAAU;AACvB,gBAAY,MAAM;AAClB,cAAU,CAAC,YAAY,aAAa,OAAO,SAAS,MAAM,CAAC;AAAA,EAC7D;AACA,QAAM,OAAO,OAAO,EAAE,OAAO,OAAO;AACpC,OAAK,UAAU,EAAE,OAAO,MAAA;AAExB,QAAM,SAAS,YAAY,CAAC,OAAe,SAAiB;;AAC1D,UAAM,gBAAe,UAAK,QAAQ,MAAM,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,MAAjD,mBAAoD;AACzE,QAAI,CAAC,aAAc,OAAM,IAAI,MAAM,4BAA4B,KAAK,kCAAkC;AACtG,cAAU,CAAC,YAAY;AACrB,YAAM,OAAO,iBAAiB,eAAe,QAAQ,KAAK,KAAK,KAAK,IAAI;AACxE,aAAO,SAAS,iBAAiB,cAAc,QAAQ,KAAK,KAAK,CAAC,IAAI,UAAU,EAAE,GAAG,SAAS,CAAC,KAAK,GAAG,KAAA;AAAA,IACzG,CAAC;AAAA,EACH,GAAG,CAAA,CAAE;AAEL,YAAU,MAAM;AACd,UAAM,QAAQ,SAAS;AACvB,QAAI,CAAC,MAAO;AACZ,QAAI,QAAQ,EAAE,OAAO,IAAI,IAAI,EAAA;AAC7B,UAAM,UAAU,CAAC,UAAsB;;AACrC,UAAI,MAAM,WAAW,MAAM,WAAW,EAAE,MAAM,kBAAkB,SAAU;AAC1E,YAAM,SAAQ,WAAM,OAAO,QAAQ,qBAAqB,MAA1C,mBAA6C,aAAa;AACxE,YAAM,gBAAe,UAAK,QAAQ,MAAM,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,MAAjD,mBAAoD;AACzE,UAAI,CAAC,SAAS,CAAC,aAAc;AAC7B,YAAM,eAAA;AACN,YAAM,gBAAA;AACN,YAAM,QAAS,aAAa,SAAS,aAAa,OAAQ,KAAK,QAAQ;AACvE,YAAM,OAAO,MAAM,cAAc,iBAAiB,QAAQ,MAAM,cAAc,iBAAiB,QAAQ,aAAa,OAAO;AAC3H,YAAM,QAAQ,UAAU,MAAM,UAAU,QAAQ,MAAM,KAAK,GAAG,MAAM,SAAS,MAAM,KAAK;AACxF,cAAQ,EAAE,OAAO,IAAI,MAAM,MAAA;AAC3B,UAAI,MAAM,SAAS,EAAG,QAAO,OAAO,MAAM,IAAI;AAAA,IAChD;AAEA,UAAM,iBAAiB,SAAS,SAAS,EAAE,SAAS,OAAO;AAC3D,WAAO,MAAM,MAAM,oBAAoB,SAAS,OAAO;AAAA,EACzD,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,QAAM,WAAW,QAAQ,MAAM,kBAAkB,WAAW,OAAO,MAAM,GAAG,CAAC,WAAW,OAAO,MAAM,CAAC;AACtG,SAAO,EAAE,GAAG,UAAU,QAAQ,OAAA;AAChC;"}
|
|
@@ -15,9 +15,9 @@ function detectMode() {
|
|
|
15
15
|
}
|
|
16
16
|
function getVersionInfo() {
|
|
17
17
|
return {
|
|
18
|
-
commit: read(() => "
|
|
19
|
-
tag: read(() => "clicky-ui@0.3.
|
|
20
|
-
date: read(() => "2026-10-
|
|
18
|
+
commit: read(() => "16ab56d2", ""),
|
|
19
|
+
tag: read(() => "clicky-ui@0.3.45", ""),
|
|
20
|
+
date: read(() => "2026-10-08T07:04:04.001Z", ""),
|
|
21
21
|
dirty: read(() => true, false),
|
|
22
22
|
mode: detectMode()
|
|
23
23
|
};
|
|
@@ -13,9 +13,9 @@ function detectMode() {
|
|
|
13
13
|
}
|
|
14
14
|
function getVersionInfo() {
|
|
15
15
|
return {
|
|
16
|
-
commit: read(() => "
|
|
17
|
-
tag: read(() => "clicky-ui@0.3.
|
|
18
|
-
date: read(() => "2026-10-
|
|
16
|
+
commit: read(() => "16ab56d2", ""),
|
|
17
|
+
tag: read(() => "clicky-ui@0.3.45", ""),
|
|
18
|
+
date: read(() => "2026-10-08T07:03:21.350Z", ""),
|
|
19
19
|
dirty: read(() => true, false),
|
|
20
20
|
mode: detectMode()
|
|
21
21
|
};
|
package/dist/data.cjs
CHANGED
|
@@ -76,6 +76,8 @@ const ExecutionTree = require("./data/ExecutionTree.cjs");
|
|
|
76
76
|
const GraphDiagram = require("./data/GraphDiagram.cjs");
|
|
77
77
|
const graphLayout = require("./data/graph-layout.cjs");
|
|
78
78
|
const graphColumnsLayout = require("./data/graph-columns-layout.cjs");
|
|
79
|
+
const AccessMark = require("./data/AccessMark.cjs");
|
|
80
|
+
const dataAccess = require("./data/data-access.cjs");
|
|
79
81
|
const TreeNode = require("./data/TreeNode.cjs");
|
|
80
82
|
const TreeGroupHeader = require("./data/TreeGroupHeader.cjs");
|
|
81
83
|
const Timeline = require("./data/Timeline.cjs");
|
|
@@ -853,7 +855,10 @@ exports.pruneNullNodes = objectGraphNodes.pruneNullNodes;
|
|
|
853
855
|
exports.ExecutionTree = ExecutionTree.ExecutionTree;
|
|
854
856
|
exports.GraphDiagram = GraphDiagram.GraphDiagram;
|
|
855
857
|
exports.ringLayout = graphLayout.ringLayout;
|
|
858
|
+
exports.GROUP_MEMBER_WINDOW = graphColumnsLayout.GROUP_MEMBER_WINDOW;
|
|
856
859
|
exports.columnsLayout = graphColumnsLayout.columnsLayout;
|
|
860
|
+
exports.AccessMark = AccessMark.AccessMark;
|
|
861
|
+
exports.mergeAccess = dataAccess.mergeAccess;
|
|
857
862
|
exports.TreeNode = TreeNode.TreeNode;
|
|
858
863
|
exports.TreeGroupHeader = TreeGroupHeader.TreeGroupHeader;
|
|
859
864
|
exports.Timeline = Timeline.Timeline;
|
|
@@ -937,14 +942,19 @@ exports.HarPanel = HarPanel.HarPanel;
|
|
|
937
942
|
exports.CALL_GRAPH_ACCESS = types.CALL_GRAPH_ACCESS;
|
|
938
943
|
exports.CALL_GRAPH_DATA_GLYPHS = callGraphVocabulary.CALL_GRAPH_DATA_GLYPHS;
|
|
939
944
|
exports.CALL_GRAPH_DATA_KIND_WORDS = callGraphVocabulary.DATA_KIND_WORDS;
|
|
945
|
+
exports.DATA_MEMBER_OWNER = callGraphVocabulary.DATA_MEMBER_OWNER;
|
|
940
946
|
exports.UIR_CALL_GRAPH_VOCABULARY = callGraphVocabulary.UIR_CALL_GRAPH_VOCABULARY;
|
|
941
947
|
exports.callsItself = callGraphVocabulary.callsItself;
|
|
948
|
+
exports.dataMemberAside = callGraphVocabulary.dataMemberAside;
|
|
942
949
|
exports.dataNodeBacking = callGraphVocabulary.dataNodeBacking;
|
|
950
|
+
exports.dataNodeGlyph = callGraphVocabulary.dataNodeGlyph;
|
|
943
951
|
exports.dataNodeStatus = callGraphVocabulary.dataNodeStatus;
|
|
944
952
|
exports.interfaceMethods = callGraphVocabulary.interfaceMethods;
|
|
953
|
+
exports.isDataMember = callGraphVocabulary.isDataMember;
|
|
945
954
|
exports.isDataNode = callGraphVocabulary.isDataNode;
|
|
946
955
|
exports.CALL_GRAPH_DEFAULT_DEPTH = callGraphModel.CALL_GRAPH_DEFAULT_DEPTH;
|
|
947
956
|
exports.CALL_GRAPH_MAX_DEPTH = callGraphModel.CALL_GRAPH_MAX_DEPTH;
|
|
957
|
+
exports.baseCallGraphAccess = callGraphModel.baseAccess;
|
|
948
958
|
exports.mergeCallGraph = callGraphModel.mergeGraph;
|
|
949
959
|
exports.toggleCallGraphAccess = callGraphModel.toggleAccess;
|
|
950
960
|
exports.CALL_GRAPH_EXCLUDE_EXTERNAL = callGraphExclude.EXCLUDE_EXTERNAL;
|
package/dist/data.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/data.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { AvatarBadge, type AvatarBadgeProps } from './data/AvatarBadge.js';
|
|
|
4
4
|
export { badgeVariants } from './data/badge-variants.js';
|
|
5
5
|
export { Badge, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeStatus, type BadgeTone, type BadgeTruncate, type BadgeVariant, } from './data/Badge.js';
|
|
6
6
|
export { CodeBlock, type CodeBlockProps } from './data/CodeBlock.js';
|
|
7
|
-
export { CodeDiff, type CodeDiffProps, type CodeDiffView } from './data/CodeDiff.js';
|
|
7
|
+
export { CodeDiff, type CodeDiffProps, type CodeDiffView, type DiffLineTarget, type DiffLineWidget, type DiffSide, } from './data/CodeDiff.js';
|
|
8
8
|
export { CodeLine, type CodeLineProps } from './data/CodeLine.js';
|
|
9
9
|
export { computeLineDiff, parseUnifiedDiff, type DiffHunk, type DiffLine, type DiffLineType, } from './data/code-diff.js';
|
|
10
10
|
export { inferColumns } from './data/data-table-utils.js';
|
|
@@ -75,7 +75,9 @@ export { countObjectGraphNodes, pruneNullNodes, type ObjectGraphNode, } from './
|
|
|
75
75
|
export { ExecutionTree, type ExecutionNode, type ExecutionTreeProps } from './data/ExecutionTree.js';
|
|
76
76
|
export { GraphDiagram, type GraphDiagramEdge, type GraphDiagramEdgeFocus, type GraphDiagramGroup, type GraphDiagramLayout, type GraphDiagramNode, type GraphDiagramProps, } from './data/GraphDiagram.js';
|
|
77
77
|
export { ringLayout, routeEdges, type EdgeRoute, type GraphLayoutEdge, type GraphLayoutNode, type GraphLayoutPosition, type GraphLayoutResult, type RingLayoutOptions, type RouteEdgesDimensions, type RouteEdgesOptions, } from './data/graph-layout.js';
|
|
78
|
-
export { columnsLayout, type ColumnsLayoutNode, type ColumnsLayoutOptions, type ColumnsLayoutResult, type GraphLayoutGroupBox, } from './data/graph-columns-layout.js';
|
|
78
|
+
export { columnsLayout, GROUP_MEMBER_WINDOW, type ColumnsLayoutNode, type ColumnsLayoutOptions, type ColumnsLayoutResult, type GraphLayoutGroupBox, type GroupMemberWindow, } from './data/graph-columns-layout.js';
|
|
79
|
+
export { AccessMark, type AccessMarkProps } from './data/AccessMark.js';
|
|
80
|
+
export { mergeAccess, type DataAccess } from './data/data-access.js';
|
|
79
81
|
export { TreeNode, type TreeNodeProps, type TreeRowContext } from './data/TreeNode.js';
|
|
80
82
|
export { TreeGroupHeader, type TreeGroupHeaderProps } from './data/TreeGroupHeader.js';
|
|
81
83
|
export { Timeline, type TimelineItem, type TimelineProps } from './data/Timeline.js';
|
package/dist/data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
|
package/dist/data.js
CHANGED
|
@@ -73,7 +73,9 @@ import { countObjectGraphNodes, pruneNullNodes } from "./data/object-graph-nodes
|
|
|
73
73
|
import { ExecutionTree } from "./data/ExecutionTree.js";
|
|
74
74
|
import { GraphDiagram } from "./data/GraphDiagram.js";
|
|
75
75
|
import { ringLayout } from "./data/graph-layout.js";
|
|
76
|
-
import { columnsLayout } from "./data/graph-columns-layout.js";
|
|
76
|
+
import { GROUP_MEMBER_WINDOW, columnsLayout } from "./data/graph-columns-layout.js";
|
|
77
|
+
import { AccessMark } from "./data/AccessMark.js";
|
|
78
|
+
import { mergeAccess } from "./data/data-access.js";
|
|
77
79
|
import { TreeNode } from "./data/TreeNode.js";
|
|
78
80
|
import { TreeGroupHeader } from "./data/TreeGroupHeader.js";
|
|
79
81
|
import { Timeline } from "./data/Timeline.js";
|
|
@@ -110,8 +112,8 @@ import { CopyBadge, ErrorDetails, PrettyStackTrace } from "./data/diagnostics/Er
|
|
|
110
112
|
import { compactStackPath, isApplicationStackFrame, normalizeErrorDiagnostics, parseDiagnosticsStackTrace, parseInlineJsonContextValue } from "./data/diagnostics/error-diagnostics.js";
|
|
111
113
|
import { HarEntryDetails, HarPanel } from "./data/har/HarPanel.js";
|
|
112
114
|
import { CALL_GRAPH_ACCESS } from "./data/call-graph/types.js";
|
|
113
|
-
import { CALL_GRAPH_DATA_GLYPHS, DATA_KIND_WORDS, UIR_CALL_GRAPH_VOCABULARY, callsItself, dataNodeBacking, dataNodeStatus, interfaceMethods, isDataNode } from "./data/call-graph/call-graph-vocabulary.js";
|
|
114
|
-
import { CALL_GRAPH_DEFAULT_DEPTH, CALL_GRAPH_MAX_DEPTH, mergeGraph, toggleAccess } from "./data/call-graph/call-graph-model.js";
|
|
115
|
+
import { CALL_GRAPH_DATA_GLYPHS, DATA_KIND_WORDS, DATA_MEMBER_OWNER, UIR_CALL_GRAPH_VOCABULARY, callsItself, dataMemberAside, dataNodeBacking, dataNodeGlyph, dataNodeStatus, interfaceMethods, isDataMember, isDataNode } from "./data/call-graph/call-graph-vocabulary.js";
|
|
116
|
+
import { CALL_GRAPH_DEFAULT_DEPTH, CALL_GRAPH_MAX_DEPTH, baseAccess, mergeGraph, toggleAccess } from "./data/call-graph/call-graph-model.js";
|
|
115
117
|
import { EXCLUDE_EXTERNAL, callGraphGroupFacts, formatExclude, matchesExclude, parseExclude } from "./data/call-graph/call-graph-exclude.js";
|
|
116
118
|
import { CacheAdapterRegistry, createCacheRegistry, prefixAdapter } from "./data/cache-browser/adapter.js";
|
|
117
119
|
import { CacheBrowser } from "./data/cache-browser/CacheBrowser.js";
|
|
@@ -723,6 +725,7 @@ import { useClickyExport } from "./data/clicky-export/useClickyExport.js";
|
|
|
723
725
|
import { verificationAdapters } from "./data/verification/adapters.js";
|
|
724
726
|
import { verifyReportCounts, verifyReportTests } from "./data/verification/verifyReportTests.js";
|
|
725
727
|
export {
|
|
728
|
+
AccessMark,
|
|
726
729
|
AnsiHtml,
|
|
727
730
|
Avatar,
|
|
728
731
|
AvatarBadge,
|
|
@@ -751,6 +754,7 @@ export {
|
|
|
751
754
|
CodeDiff,
|
|
752
755
|
CodeLine,
|
|
753
756
|
CopyBadge,
|
|
757
|
+
DATA_MEMBER_OWNER,
|
|
754
758
|
DATA_TABLE_FILTER_LOOKUP_LIMIT,
|
|
755
759
|
DEBUG_CAPTURE_HEADER,
|
|
756
760
|
DEBUG_REFRESH_INSPECTION_HEADER,
|
|
@@ -765,6 +769,7 @@ export {
|
|
|
765
769
|
FilterSeparator,
|
|
766
770
|
FixtureEditor,
|
|
767
771
|
FrameSourceWindow,
|
|
772
|
+
GROUP_MEMBER_WINDOW,
|
|
768
773
|
Gauge,
|
|
769
774
|
GaugeHoverCard,
|
|
770
775
|
GitChangedFilesSummary,
|
|
@@ -1919,6 +1924,7 @@ export {
|
|
|
1919
1924
|
assertCalloutValue,
|
|
1920
1925
|
assignAxes,
|
|
1921
1926
|
badgeVariants,
|
|
1927
|
+
baseAccess as baseCallGraphAccess,
|
|
1922
1928
|
bucketTasks,
|
|
1923
1929
|
buildMarkdownPreviewUrl,
|
|
1924
1930
|
buildSchemaTree,
|
|
@@ -1948,7 +1954,9 @@ export {
|
|
|
1948
1954
|
createFenceMarkdown,
|
|
1949
1955
|
createTestRunnerRegistry,
|
|
1950
1956
|
cycleFilterState,
|
|
1957
|
+
dataMemberAside,
|
|
1951
1958
|
dataNodeBacking,
|
|
1959
|
+
dataNodeGlyph,
|
|
1952
1960
|
dataNodeStatus,
|
|
1953
1961
|
debugCaptureHeaders,
|
|
1954
1962
|
debugConsoleAvailable,
|
|
@@ -1992,6 +2000,7 @@ export {
|
|
|
1992
2000
|
inferColumns,
|
|
1993
2001
|
interfaceMethods,
|
|
1994
2002
|
isApplicationStackFrame,
|
|
2003
|
+
isDataMember,
|
|
1995
2004
|
isDataNode,
|
|
1996
2005
|
isFailedOrWarn,
|
|
1997
2006
|
isFlatMetadata,
|
|
@@ -2005,6 +2014,7 @@ export {
|
|
|
2005
2014
|
markdownDocumentStats,
|
|
2006
2015
|
matchesExclude as matchesCallGraphExclude,
|
|
2007
2016
|
matchesFilterState,
|
|
2017
|
+
mergeAccess,
|
|
2008
2018
|
mergeGraph as mergeCallGraph,
|
|
2009
2019
|
mergeSeries,
|
|
2010
2020
|
metadataEntries,
|
package/dist/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
6
|
+
const DEFAULT_URL = "/api/events";
|
|
7
|
+
const TEARDOWN_GRACE_MS = 1e3;
|
|
8
|
+
const RESUBSCRIBE_DELAY_MS = 1e3;
|
|
9
|
+
const READY_STATE_CONNECTING = 0;
|
|
10
|
+
const READY_STATE_OPEN = 1;
|
|
11
|
+
const READY_STATE_CLOSED = 2;
|
|
12
|
+
function invokeListener(listener, event) {
|
|
13
|
+
if (typeof listener === "function") listener(event);
|
|
14
|
+
else listener.handleEvent(event);
|
|
15
|
+
}
|
|
16
|
+
class Sub {
|
|
17
|
+
constructor(id, url, hooks) {
|
|
18
|
+
__publicField(this, "readyState", READY_STATE_CONNECTING);
|
|
19
|
+
__publicField(this, "onopen", null);
|
|
20
|
+
__publicField(this, "onmessage", null);
|
|
21
|
+
__publicField(this, "onerror", null);
|
|
22
|
+
__publicField(this, "listeners", /* @__PURE__ */ new Map());
|
|
23
|
+
// Real-connection listeners this sub has registered, keyed by the prefixed
|
|
24
|
+
// event name (`${id}/${name}`), so close() can remove exactly what it added.
|
|
25
|
+
__publicField(this, "routedHandlers", /* @__PURE__ */ new Map());
|
|
26
|
+
__publicField(this, "resubscribeTimer", null);
|
|
27
|
+
__publicField(this, "disposed", false);
|
|
28
|
+
this.id = id;
|
|
29
|
+
this.url = url;
|
|
30
|
+
this.hooks = hooks;
|
|
31
|
+
}
|
|
32
|
+
addEventListener(type, listener) {
|
|
33
|
+
let set = this.listeners.get(type);
|
|
34
|
+
if (!set) {
|
|
35
|
+
set = /* @__PURE__ */ new Set();
|
|
36
|
+
this.listeners.set(type, set);
|
|
37
|
+
}
|
|
38
|
+
set.add(listener);
|
|
39
|
+
this.hooks.route(this, type);
|
|
40
|
+
}
|
|
41
|
+
removeEventListener(type, listener) {
|
|
42
|
+
var _a;
|
|
43
|
+
(_a = this.listeners.get(type)) == null ? void 0 : _a.delete(listener);
|
|
44
|
+
}
|
|
45
|
+
close() {
|
|
46
|
+
this.hooks.close(this);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function dispatch(sub, name, event) {
|
|
50
|
+
var _a, _b, _c;
|
|
51
|
+
for (const listener of Array.from(sub.listeners.get(name) ?? [])) invokeListener(listener, event);
|
|
52
|
+
if (name === "message") (_a = sub.onmessage) == null ? void 0 : _a.call(sub, event);
|
|
53
|
+
if (name === "error") (_b = sub.onerror) == null ? void 0 : _b.call(sub, event);
|
|
54
|
+
if (name === "open") (_c = sub.onopen) == null ? void 0 : _c.call(sub, event);
|
|
55
|
+
}
|
|
56
|
+
function createEventHub(options = {}) {
|
|
57
|
+
const { url: hubUrl = DEFAULT_URL, buildId = null, onBuildMismatch = () => window.location.reload() } = options;
|
|
58
|
+
let real = null;
|
|
59
|
+
let connId = null;
|
|
60
|
+
let subCounter = 0;
|
|
61
|
+
const subs = /* @__PURE__ */ new Map();
|
|
62
|
+
let teardownTimer = null;
|
|
63
|
+
let reloadedForBuildMismatch = false;
|
|
64
|
+
function maybeReloadForBuildMismatch(helloBuildId) {
|
|
65
|
+
if (reloadedForBuildMismatch) return;
|
|
66
|
+
if (!helloBuildId || !buildId) return;
|
|
67
|
+
if (helloBuildId === buildId) return;
|
|
68
|
+
reloadedForBuildMismatch = true;
|
|
69
|
+
onBuildMismatch();
|
|
70
|
+
}
|
|
71
|
+
function failSub(sub, message, cause) {
|
|
72
|
+
sub.readyState = READY_STATE_CLOSED;
|
|
73
|
+
dispatch(sub, "error", new Event("error"));
|
|
74
|
+
if (cause !== void 0) console.error(`[event-hub] ${message} for ${sub.url}:`, cause);
|
|
75
|
+
else console.error(`[event-hub] ${message} for ${sub.url}`);
|
|
76
|
+
}
|
|
77
|
+
async function postSub(sub) {
|
|
78
|
+
const conn = connId;
|
|
79
|
+
if (!conn || sub.disposed || sub.readyState === READY_STATE_CLOSED) return;
|
|
80
|
+
const stale = () => sub.disposed || conn !== connId || sub.readyState === READY_STATE_CLOSED;
|
|
81
|
+
try {
|
|
82
|
+
const res = await fetch(`${hubUrl}/${conn}/subs`, {
|
|
83
|
+
method: "POST",
|
|
84
|
+
headers: { "Content-Type": "application/json" },
|
|
85
|
+
body: JSON.stringify({ id: sub.id, path: sub.url })
|
|
86
|
+
});
|
|
87
|
+
if (stale()) return;
|
|
88
|
+
if (res.status === 204) {
|
|
89
|
+
sub.readyState = READY_STATE_OPEN;
|
|
90
|
+
dispatch(sub, "open", new Event("open"));
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (res.status === 404) return;
|
|
94
|
+
failSub(sub, `subscribe failed: ${res.status}`);
|
|
95
|
+
} catch (err) {
|
|
96
|
+
if (stale()) return;
|
|
97
|
+
failSub(sub, "subscribe request failed", err);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function onHello(event) {
|
|
101
|
+
const payload = JSON.parse(event.data);
|
|
102
|
+
connId = payload.conn;
|
|
103
|
+
maybeReloadForBuildMismatch(payload.build);
|
|
104
|
+
for (const sub of subs.values()) {
|
|
105
|
+
if (!sub.disposed) void postSub(sub);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function onRealError(es) {
|
|
109
|
+
connId = null;
|
|
110
|
+
for (const sub of subs.values()) {
|
|
111
|
+
if (sub.disposed || sub.readyState === READY_STATE_CLOSED) continue;
|
|
112
|
+
sub.readyState = READY_STATE_CONNECTING;
|
|
113
|
+
dispatch(sub, "error", new Event("error"));
|
|
114
|
+
}
|
|
115
|
+
if (es.readyState !== READY_STATE_CLOSED || real !== es) return;
|
|
116
|
+
for (const sub of subs.values()) {
|
|
117
|
+
for (const [eventName, handler] of sub.routedHandlers) es.removeEventListener(eventName, handler);
|
|
118
|
+
sub.routedHandlers.clear();
|
|
119
|
+
}
|
|
120
|
+
es.onerror = null;
|
|
121
|
+
real = null;
|
|
122
|
+
setTimeout(() => {
|
|
123
|
+
if (!real && subs.size > 0) ensureRealOpen();
|
|
124
|
+
}, RESUBSCRIBE_DELAY_MS);
|
|
125
|
+
}
|
|
126
|
+
function ensureRealOpen() {
|
|
127
|
+
if (real) {
|
|
128
|
+
if (teardownTimer) {
|
|
129
|
+
clearTimeout(teardownTimer);
|
|
130
|
+
teardownTimer = null;
|
|
131
|
+
}
|
|
132
|
+
return real;
|
|
133
|
+
}
|
|
134
|
+
connId = null;
|
|
135
|
+
const es = new EventSource(hubUrl);
|
|
136
|
+
es.addEventListener("__hello", (event) => onHello(event));
|
|
137
|
+
es.onerror = () => onRealError(es);
|
|
138
|
+
real = es;
|
|
139
|
+
routeActiveSubs();
|
|
140
|
+
return es;
|
|
141
|
+
}
|
|
142
|
+
function routeActiveSubs() {
|
|
143
|
+
for (const sub of subs.values()) {
|
|
144
|
+
if (sub.disposed) continue;
|
|
145
|
+
routeName(sub, "message");
|
|
146
|
+
for (const name of sub.listeners.keys()) routeName(sub, name);
|
|
147
|
+
routeClosed(sub);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const eventNameFor = (sub, name) => `${sub.id}/${name}`;
|
|
151
|
+
function routeName(sub, name) {
|
|
152
|
+
const eventName = eventNameFor(sub, name);
|
|
153
|
+
if (!real || name === "open" || sub.disposed || sub.routedHandlers.has(eventName)) return;
|
|
154
|
+
const handler = (event) => {
|
|
155
|
+
const message = event;
|
|
156
|
+
dispatch(sub, name, new MessageEvent(name, { data: message.data, lastEventId: message.lastEventId }));
|
|
157
|
+
};
|
|
158
|
+
real.addEventListener(eventName, handler);
|
|
159
|
+
sub.routedHandlers.set(eventName, handler);
|
|
160
|
+
}
|
|
161
|
+
function onSubClosed(sub, event) {
|
|
162
|
+
if (sub.disposed) return;
|
|
163
|
+
let payload;
|
|
164
|
+
try {
|
|
165
|
+
payload = JSON.parse(event.data);
|
|
166
|
+
} catch (err) {
|
|
167
|
+
failSub(sub, "closed frame was malformed", err);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (payload.status >= 200 && payload.status < 300) {
|
|
171
|
+
sub.readyState = READY_STATE_CONNECTING;
|
|
172
|
+
dispatch(sub, "error", new Event("error"));
|
|
173
|
+
sub.resubscribeTimer = setTimeout(() => {
|
|
174
|
+
sub.resubscribeTimer = null;
|
|
175
|
+
if (!sub.disposed) void postSub(sub);
|
|
176
|
+
}, RESUBSCRIBE_DELAY_MS);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
failSub(sub, `sub closed with status ${payload.status}`, payload.error);
|
|
180
|
+
}
|
|
181
|
+
function routeClosed(sub) {
|
|
182
|
+
const eventName = eventNameFor(sub, "__closed");
|
|
183
|
+
if (!real || sub.routedHandlers.has(eventName)) return;
|
|
184
|
+
const handler = (event) => onSubClosed(sub, event);
|
|
185
|
+
real.addEventListener(eventName, handler);
|
|
186
|
+
sub.routedHandlers.set(eventName, handler);
|
|
187
|
+
}
|
|
188
|
+
function scheduleTeardownIfIdle() {
|
|
189
|
+
if (subs.size > 0 || teardownTimer) return;
|
|
190
|
+
teardownTimer = setTimeout(() => {
|
|
191
|
+
teardownTimer = null;
|
|
192
|
+
if (subs.size > 0) return;
|
|
193
|
+
real == null ? void 0 : real.close();
|
|
194
|
+
real = null;
|
|
195
|
+
connId = null;
|
|
196
|
+
}, TEARDOWN_GRACE_MS);
|
|
197
|
+
}
|
|
198
|
+
function closeSub(sub) {
|
|
199
|
+
if (sub.disposed) return;
|
|
200
|
+
sub.disposed = true;
|
|
201
|
+
sub.readyState = READY_STATE_CLOSED;
|
|
202
|
+
if (sub.resubscribeTimer) {
|
|
203
|
+
clearTimeout(sub.resubscribeTimer);
|
|
204
|
+
sub.resubscribeTimer = null;
|
|
205
|
+
}
|
|
206
|
+
for (const [eventName, handler] of sub.routedHandlers) real == null ? void 0 : real.removeEventListener(eventName, handler);
|
|
207
|
+
sub.routedHandlers.clear();
|
|
208
|
+
subs.delete(sub.id);
|
|
209
|
+
const conn = connId;
|
|
210
|
+
if (conn) {
|
|
211
|
+
fetch(`${hubUrl}/${conn}/subs/${sub.id}`, { method: "DELETE" }).then((res) => {
|
|
212
|
+
if (!res.ok && res.status !== 404) console.error(`[event-hub] unsubscribe failed for ${sub.url}: ${res.status}`);
|
|
213
|
+
}).catch((err) => console.error(`[event-hub] unsubscribe request failed for ${sub.url}:`, err));
|
|
214
|
+
}
|
|
215
|
+
scheduleTeardownIfIdle();
|
|
216
|
+
}
|
|
217
|
+
const hooks = { route: routeName, close: closeSub };
|
|
218
|
+
return (url) => {
|
|
219
|
+
const sub = new Sub(`s${++subCounter}`, url, hooks);
|
|
220
|
+
subs.set(sub.id, sub);
|
|
221
|
+
ensureRealOpen();
|
|
222
|
+
routeName(sub, "message");
|
|
223
|
+
routeClosed(sub);
|
|
224
|
+
if (connId) void postSub(sub);
|
|
225
|
+
return sub;
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
exports.createEventHub = createEventHub;
|
|
229
|
+
//# sourceMappingURL=event-hub.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-hub.cjs","sources":["../../src/hooks/event-hub.ts"],"sourcesContent":["import type { EventSourceFactory, EventSourceLike } from \"./event-source\";\n\n// Browsers allow only six HTTP/1.1 connections per host, shared across every\n// tab. An app that opens one native EventSource per topic (list view, status\n// badge, detail pane, activity feed, ...) lets a second tab or a reload starve\n// ordinary fetches behind a queue that never drains.\n//\n// An event hub multiplexes every topic a tab opens onto a single real\n// connection to the server's events endpoint (`/api/events` by default): one\n// native EventSource, with each logical stream registered as a \"sub\"\n// (POST {url}/{conn}/subs, DELETE {url}/{conn}/subs/{id}) whose frames arrive\n// prefixed `<subId>/<name>`. Callers never see any of this — the factory\n// returned by createEventHub() hands back an EventSourceLike that behaves like\n// `new EventSource(url)` from their point of view, so it plugs straight into\n// `<EventSourceProvider value={...}>`.\n\nexport interface EventHubOptions {\n /** Server endpoint of the multiplexed stream. Defaults to `/api/events`. */\n url?: string;\n /**\n * The build id this page was served with. When the server's hello frame\n * reports a different build, `onBuildMismatch` fires once. `null`/absent\n * (tests, Storybook, a bare dev server with no backend in front of it)\n * means the hub never reloads.\n */\n buildId?: string | null;\n /** Called once on a build mismatch. Defaults to `window.location.reload()`. */\n onBuildMismatch?: () => void;\n}\n\nconst DEFAULT_URL = \"/api/events\";\n\n// How long an idle hub (no subs left) keeps the real connection open before\n// tearing it down — long enough to survive React StrictMode's mount → unmount\n// → mount churn and a component swap that closes one stream and immediately\n// opens its replacement.\nconst TEARDOWN_GRACE_MS = 1000;\n\n// Delay before re-subscribing after a sub's handler ends with a 2xx status\n// (server-side stream completed normally and can be re-opened), mirroring\n// native EventSource's own reconnect delay.\nconst RESUBSCRIBE_DELAY_MS = 1000;\n\nconst READY_STATE_CONNECTING = 0;\nconst READY_STATE_OPEN = 1;\nconst READY_STATE_CLOSED = 2;\n\ntype DomListener = EventListenerOrEventListenerObject;\n\nfunction invokeListener(listener: DomListener, event: Event): void {\n if (typeof listener === \"function\") listener(event);\n else listener.handleEvent(event);\n}\n\n// Sub is both the internal bookkeeping for one logical stream and the public\n// EventSourceLike handed back to the caller — there is no separate wrapper\n// object, so `readyState`/`url` always reflect live state.\nclass Sub implements EventSourceLike {\n readyState = READY_STATE_CONNECTING;\n onopen: ((ev: Event) => unknown) | null = null;\n onmessage: ((ev: MessageEvent) => unknown) | null = null;\n onerror: ((ev: Event) => unknown) | null = null;\n\n readonly listeners = new Map<string, Set<DomListener>>();\n // Real-connection listeners this sub has registered, keyed by the prefixed\n // event name (`${id}/${name}`), so close() can remove exactly what it added.\n readonly routedHandlers = new Map<string, (ev: Event) => void>();\n resubscribeTimer: ReturnType<typeof setTimeout> | null = null;\n disposed = false;\n\n constructor(\n readonly id: string,\n readonly url: string,\n private readonly hooks: { route(sub: Sub, name: string): void; close(sub: Sub): void },\n ) {}\n\n addEventListener(type: string, listener: DomListener): void {\n let set = this.listeners.get(type);\n if (!set) {\n set = new Set();\n this.listeners.set(type, set);\n }\n set.add(listener);\n this.hooks.route(this, type);\n }\n\n removeEventListener(type: string, listener: DomListener): void {\n this.listeners.get(type)?.delete(listener);\n }\n\n close(): void {\n this.hooks.close(this);\n }\n}\n\nfunction dispatch(sub: Sub, name: string, event: Event): void {\n // Snapshot the set so a listener that (un)registers listeners mid-dispatch\n // doesn't change who receives this frame.\n for (const listener of Array.from(sub.listeners.get(name) ?? [])) invokeListener(listener, event);\n // onmessage/onerror/onopen mirror native EventSource: each is just the\n // single-slot form of addEventListener('message'|'error'|'open', ...), so a\n // frame named \"error\" (server-sent) reaches both a registered\n // addEventListener('error', ...) and .onerror, exactly like the browser.\n if (name === \"message\") sub.onmessage?.(event as MessageEvent);\n if (name === \"error\") sub.onerror?.(event);\n if (name === \"open\") sub.onopen?.(event);\n}\n\n/**\n * Creates an `EventSourceFactory` that multiplexes every stream it opens over\n * one real connection to `options.url`. Each returned stream behaves like\n * `new EventSource(url)` to the caller: CONNECTING until the subscription is\n * live, dispatches 'open'/'message'/'error' (and any server-named event), and\n * auto-reconnects the way native EventSource does.\n *\n * All state (real connection, connection id, sub registry, teardown timer,\n * reload guard) is per hub, so two hubs never share a connection.\n */\nexport function createEventHub(options: EventHubOptions = {}): EventSourceFactory {\n const { url: hubUrl = DEFAULT_URL, buildId = null, onBuildMismatch = () => window.location.reload() } = options;\n\n let real: EventSourceLike | null = null;\n let connId: string | null = null;\n let subCounter = 0;\n const subs = new Map<string, Sub>();\n let teardownTimer: ReturnType<typeof setTimeout> | null = null;\n // Guards against a reload loop within one page load: once triggered, further\n // __hello frames (e.g. after the reload's own new connection reconnects\n // mid-flight) never trigger a second one.\n let reloadedForBuildMismatch = false;\n\n // A stale tab still serving an old bundle would otherwise keep working\n // against a server that has moved on — including racing the six-connection\n // cap this hub exists to close, since an old bundle may hold raw\n // EventSources of its own. When the server's hello reports a different build\n // than the one this page was served with, reload once to pick up the\n // current bundle.\n function maybeReloadForBuildMismatch(helloBuildId: string | undefined): void {\n if (reloadedForBuildMismatch) return;\n if (!helloBuildId || !buildId) return;\n if (helloBuildId === buildId) return;\n reloadedForBuildMismatch = true;\n onBuildMismatch();\n }\n\n function failSub(sub: Sub, message: string, cause?: unknown): void {\n sub.readyState = READY_STATE_CLOSED;\n dispatch(sub, \"error\", new Event(\"error\"));\n if (cause !== undefined) console.error(`[event-hub] ${message} for ${sub.url}:`, cause);\n else console.error(`[event-hub] ${message} for ${sub.url}`);\n }\n\n async function postSub(sub: Sub): Promise<void> {\n const conn = connId;\n if (!conn || sub.disposed || sub.readyState === READY_STATE_CLOSED) return;\n // A response for a connection that has since dropped (or a sub that has\n // since failed) is stale: the next __hello re-subscribes on the live one.\n const stale = () => sub.disposed || conn !== connId || sub.readyState === READY_STATE_CLOSED;\n try {\n const res = await fetch(`${hubUrl}/${conn}/subs`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ id: sub.id, path: sub.url }),\n });\n if (stale()) return;\n if (res.status === 204) {\n sub.readyState = READY_STATE_OPEN;\n dispatch(sub, \"open\", new Event(\"open\"));\n return;\n }\n if (res.status === 404) return; // stale conn id; the next __hello retries\n failSub(sub, `subscribe failed: ${res.status}`);\n } catch (err) {\n if (stale()) return;\n failSub(sub, \"subscribe request failed\", err);\n }\n }\n\n function onHello(event: MessageEvent): void {\n const payload = JSON.parse(event.data) as { conn: string; build?: string };\n connId = payload.conn;\n maybeReloadForBuildMismatch(payload.build);\n // A hello means every currently-active sub needs a fresh subscription: the\n // first hello of a brand-new connection, or a reconnect hello after a\n // drop, both start from a server side with no subs registered yet.\n for (const sub of subs.values()) {\n if (!sub.disposed) void postSub(sub);\n }\n }\n\n function onRealError(es: EventSourceLike): void {\n connId = null;\n for (const sub of subs.values()) {\n if (sub.disposed || sub.readyState === READY_STATE_CLOSED) continue;\n sub.readyState = READY_STATE_CONNECTING;\n dispatch(sub, \"error\", new Event(\"error\"));\n }\n // Native EventSource reconnects on its own after a transient error; the\n // next __hello re-subscribes everything and dispatches 'open' again. A\n // CLOSED source (non-200 or wrong Content-Type) never reconnects, so drop\n // it and open a replacement after a delay.\n if (es.readyState !== READY_STATE_CLOSED || real !== es) return;\n for (const sub of subs.values()) {\n for (const [eventName, handler] of sub.routedHandlers) es.removeEventListener(eventName, handler);\n sub.routedHandlers.clear();\n }\n es.onerror = null;\n real = null;\n setTimeout(() => {\n if (!real && subs.size > 0) ensureRealOpen();\n }, RESUBSCRIBE_DELAY_MS);\n }\n\n function ensureRealOpen(): EventSourceLike {\n if (real) {\n if (teardownTimer) {\n clearTimeout(teardownTimer);\n teardownTimer = null;\n }\n return real;\n }\n connId = null;\n const es = new EventSource(hubUrl);\n es.addEventListener(\"__hello\", (event) => onHello(event as MessageEvent));\n es.onerror = () => onRealError(es);\n real = es;\n routeActiveSubs();\n return es;\n }\n\n // routeActiveSubs binds every live sub's routing onto a freshly created real\n // connection (a replacement after a terminal error has none yet).\n function routeActiveSubs(): void {\n for (const sub of subs.values()) {\n if (sub.disposed) continue;\n routeName(sub, \"message\");\n for (const name of sub.listeners.keys()) routeName(sub, name);\n routeClosed(sub);\n }\n }\n\n const eventNameFor = (sub: Sub, name: string) => `${sub.id}/${name}`;\n\n // routeName registers, at most once per sub+name, a real-connection listener\n // that re-dispatches `${sub.id}/${name}` frames to this sub's own listeners.\n // \"open\" is synthetic (dispatched locally on subscribe/reconnect) and never\n // arrives on the wire, so it is never routed. A closed sub has no routing to\n // register: its real connection may already be torn down, and no frame for\n // it can arrive. With no real connection (awaiting a replacement after a\n // terminal error) routing is deferred to routeActiveSubs.\n function routeName(sub: Sub, name: string): void {\n const eventName = eventNameFor(sub, name);\n if (!real || name === \"open\" || sub.disposed || sub.routedHandlers.has(eventName)) return;\n const handler = (event: Event) => {\n const message = event as MessageEvent;\n dispatch(sub, name, new MessageEvent(name, { data: message.data, lastEventId: message.lastEventId }));\n };\n real.addEventListener(eventName, handler);\n sub.routedHandlers.set(eventName, handler);\n }\n\n function onSubClosed(sub: Sub, event: MessageEvent): void {\n if (sub.disposed) return;\n let payload: { status: number; error?: string };\n try {\n payload = JSON.parse(event.data) as { status: number; error?: string };\n } catch (err) {\n failSub(sub, \"closed frame was malformed\", err);\n return;\n }\n if (payload.status >= 200 && payload.status < 300) {\n // The server-side handler ended on its own with a success status — the\n // same shape as a native stream simply reconnecting.\n sub.readyState = READY_STATE_CONNECTING;\n dispatch(sub, \"error\", new Event(\"error\"));\n sub.resubscribeTimer = setTimeout(() => {\n sub.resubscribeTimer = null;\n if (!sub.disposed) void postSub(sub);\n }, RESUBSCRIBE_DELAY_MS);\n return;\n }\n failSub(sub, `sub closed with status ${payload.status}`, payload.error);\n }\n\n // routeClosed wires the sub's terminal frame: unlike every other name, its\n // payload drives re-subscription rather than being handed to consumers.\n function routeClosed(sub: Sub): void {\n const eventName = eventNameFor(sub, \"__closed\");\n if (!real || sub.routedHandlers.has(eventName)) return;\n const handler = (event: Event) => onSubClosed(sub, event as MessageEvent);\n real.addEventListener(eventName, handler);\n sub.routedHandlers.set(eventName, handler);\n }\n\n function scheduleTeardownIfIdle(): void {\n if (subs.size > 0 || teardownTimer) return;\n teardownTimer = setTimeout(() => {\n teardownTimer = null;\n if (subs.size > 0) return; // something re-subscribed during the grace window\n real?.close();\n real = null;\n connId = null;\n }, TEARDOWN_GRACE_MS);\n }\n\n function closeSub(sub: Sub): void {\n if (sub.disposed) return;\n sub.disposed = true;\n sub.readyState = READY_STATE_CLOSED;\n if (sub.resubscribeTimer) {\n clearTimeout(sub.resubscribeTimer);\n sub.resubscribeTimer = null;\n }\n for (const [eventName, handler] of sub.routedHandlers) real?.removeEventListener(eventName, handler);\n sub.routedHandlers.clear();\n subs.delete(sub.id);\n\n const conn = connId;\n if (conn) {\n fetch(`${hubUrl}/${conn}/subs/${sub.id}`, { method: \"DELETE\" })\n .then((res) => {\n if (!res.ok && res.status !== 404) console.error(`[event-hub] unsubscribe failed for ${sub.url}: ${res.status}`);\n })\n .catch((err) => console.error(`[event-hub] unsubscribe request failed for ${sub.url}:`, err));\n }\n scheduleTeardownIfIdle();\n }\n\n const hooks = { route: routeName, close: closeSub };\n\n return (url) => {\n const sub = new Sub(`s${++subCounter}`, url, hooks);\n subs.set(sub.id, sub);\n ensureRealOpen();\n // Routing must be registered before the subscribe POST is sent: frames can\n // start arriving on the real connection as soon as the server accepts the\n // subscription, which can race the POST's own response.\n routeName(sub, \"message\");\n routeClosed(sub);\n if (connId) void postSub(sub);\n return sub;\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { EventSourceFactory } from './event-source.js';
|
|
2
|
+
export interface EventHubOptions {
|
|
3
|
+
/** Server endpoint of the multiplexed stream. Defaults to `/api/events`. */
|
|
4
|
+
url?: string;
|
|
5
|
+
/**
|
|
6
|
+
* The build id this page was served with. When the server's hello frame
|
|
7
|
+
* reports a different build, `onBuildMismatch` fires once. `null`/absent
|
|
8
|
+
* (tests, Storybook, a bare dev server with no backend in front of it)
|
|
9
|
+
* means the hub never reloads.
|
|
10
|
+
*/
|
|
11
|
+
buildId?: string | null;
|
|
12
|
+
/** Called once on a build mismatch. Defaults to `window.location.reload()`. */
|
|
13
|
+
onBuildMismatch?: () => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Creates an `EventSourceFactory` that multiplexes every stream it opens over
|
|
17
|
+
* one real connection to `options.url`. Each returned stream behaves like
|
|
18
|
+
* `new EventSource(url)` to the caller: CONNECTING until the subscription is
|
|
19
|
+
* live, dispatches 'open'/'message'/'error' (and any server-named event), and
|
|
20
|
+
* auto-reconnects the way native EventSource does.
|
|
21
|
+
*
|
|
22
|
+
* All state (real connection, connection id, sub registry, teardown timer,
|
|
23
|
+
* reload guard) is per hub, so two hubs never share a connection.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createEventHub(options?: EventHubOptions): EventSourceFactory;
|
|
26
|
+
//# sourceMappingURL=event-hub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-hub.d.ts","sourceRoot":"","sources":["../../src/hooks/event-hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,gBAAgB,CAAC;AAgB1E,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAgFD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,kBAAkB,CAgOhF"}
|