@zenfg/inspector 0.1.0-beta.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/LICENSE +21 -0
- package/README.md +74 -0
- package/dist/FrameGraphInspector.d.ts +153 -0
- package/dist/FrameGraphInspector.d.ts.map +1 -0
- package/dist/FrameGraphInspector.js +580 -0
- package/dist/FrameGraphInspector.js.map +1 -0
- package/dist/debugCaptureModel.d.ts +166 -0
- package/dist/debugCaptureModel.d.ts.map +1 -0
- package/dist/debugCaptureModel.js +364 -0
- package/dist/debugCaptureModel.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/panelAliasAnalysis.d.ts +20 -0
- package/dist/panelAliasAnalysis.d.ts.map +1 -0
- package/dist/panelAliasAnalysis.js +113 -0
- package/dist/panelAliasAnalysis.js.map +1 -0
- package/dist/panelCytoscapeGraphRenderer.d.ts +71 -0
- package/dist/panelCytoscapeGraphRenderer.d.ts.map +1 -0
- package/dist/panelCytoscapeGraphRenderer.js +559 -0
- package/dist/panelCytoscapeGraphRenderer.js.map +1 -0
- package/dist/panelDiagnosticsView.d.ts +22 -0
- package/dist/panelDiagnosticsView.d.ts.map +1 -0
- package/dist/panelDiagnosticsView.js +123 -0
- package/dist/panelDiagnosticsView.js.map +1 -0
- package/dist/panelDomHelpers.d.ts +26 -0
- package/dist/panelDomHelpers.d.ts.map +1 -0
- package/dist/panelDomHelpers.js +129 -0
- package/dist/panelDomHelpers.js.map +1 -0
- package/dist/panelGraphLayout.d.ts +28 -0
- package/dist/panelGraphLayout.d.ts.map +1 -0
- package/dist/panelGraphLayout.js +223 -0
- package/dist/panelGraphLayout.js.map +1 -0
- package/dist/panelGraphRenderer.d.ts +20 -0
- package/dist/panelGraphRenderer.d.ts.map +1 -0
- package/dist/panelGraphRenderer.js +2 -0
- package/dist/panelGraphRenderer.js.map +1 -0
- package/dist/panelGraphScene.d.ts +98 -0
- package/dist/panelGraphScene.d.ts.map +1 -0
- package/dist/panelGraphScene.js +559 -0
- package/dist/panelGraphScene.js.map +1 -0
- package/dist/panelGraphView.d.ts +9 -0
- package/dist/panelGraphView.d.ts.map +1 -0
- package/dist/panelGraphView.js +88 -0
- package/dist/panelGraphView.js.map +1 -0
- package/dist/panelGraphVisuals.d.ts +38 -0
- package/dist/panelGraphVisuals.d.ts.map +1 -0
- package/dist/panelGraphVisuals.js +330 -0
- package/dist/panelGraphVisuals.js.map +1 -0
- package/dist/panelIcons.d.ts +4 -0
- package/dist/panelIcons.d.ts.map +1 -0
- package/dist/panelIcons.js +43 -0
- package/dist/panelIcons.js.map +1 -0
- package/dist/panelInspectorView.d.ts +33 -0
- package/dist/panelInspectorView.d.ts.map +1 -0
- package/dist/panelInspectorView.js +357 -0
- package/dist/panelInspectorView.js.map +1 -0
- package/dist/panelMemoryView.d.ts +21 -0
- package/dist/panelMemoryView.d.ts.map +1 -0
- package/dist/panelMemoryView.js +134 -0
- package/dist/panelMemoryView.js.map +1 -0
- package/dist/panelPassesView.d.ts +31 -0
- package/dist/panelPassesView.d.ts.map +1 -0
- package/dist/panelPassesView.js +183 -0
- package/dist/panelPassesView.js.map +1 -0
- package/dist/panelResourcesView.d.ts +19 -0
- package/dist/panelResourcesView.d.ts.map +1 -0
- package/dist/panelResourcesView.js +89 -0
- package/dist/panelResourcesView.js.map +1 -0
- package/dist/panelSelection.d.ts +5 -0
- package/dist/panelSelection.d.ts.map +1 -0
- package/dist/panelSelection.js +88 -0
- package/dist/panelSelection.js.map +1 -0
- package/dist/panelTypes.d.ts +40 -0
- package/dist/panelTypes.d.ts.map +1 -0
- package/dist/panelTypes.js +2 -0
- package/dist/panelTypes.js.map +1 -0
- package/dist/panelVisualTheme.d.ts +76 -0
- package/dist/panelVisualTheme.d.ts.map +1 -0
- package/dist/panelVisualTheme.js +39 -0
- package/dist/panelVisualTheme.js.map +1 -0
- package/dist/panelWorkbenchHelpers.d.ts +34 -0
- package/dist/panelWorkbenchHelpers.d.ts.map +1 -0
- package/dist/panelWorkbenchHelpers.js +162 -0
- package/dist/panelWorkbenchHelpers.js.map +1 -0
- package/dist/panelWorkbenchView.d.ts +77 -0
- package/dist/panelWorkbenchView.d.ts.map +1 -0
- package/dist/panelWorkbenchView.js +409 -0
- package/dist/panelWorkbenchView.js.map +1 -0
- package/dist/query.d.ts +11 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +21 -0
- package/dist/query.js.map +1 -0
- package/dist/styles.d.ts +8 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +1073 -0
- package/dist/styles.js.map +1 -0
- package/package.json +29 -0
- package/src/FrameGraphInspector.ts +632 -0
- package/src/debugCaptureModel.ts +583 -0
- package/src/index.ts +21 -0
- package/src/panelAliasAnalysis.ts +164 -0
- package/src/panelCytoscapeGraphRenderer.ts +617 -0
- package/src/panelDiagnosticsView.ts +160 -0
- package/src/panelDomHelpers.ts +151 -0
- package/src/panelGraphLayout.ts +281 -0
- package/src/panelGraphRenderer.ts +21 -0
- package/src/panelGraphScene.ts +787 -0
- package/src/panelGraphView.ts +108 -0
- package/src/panelGraphVisuals.ts +364 -0
- package/src/panelIcons.ts +56 -0
- package/src/panelInspectorView.ts +377 -0
- package/src/panelMemoryView.ts +154 -0
- package/src/panelPassesView.ts +222 -0
- package/src/panelResourcesView.ts +115 -0
- package/src/panelSelection.ts +99 -0
- package/src/panelTypes.ts +28 -0
- package/src/panelVisualTheme.ts +39 -0
- package/src/panelWorkbenchHelpers.ts +216 -0
- package/src/panelWorkbenchView.ts +465 -0
- package/src/query.ts +22 -0
- package/src/styles.ts +1076 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ZenFG contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# @zenfg/inspector
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@zenfg/inspector)
|
|
4
|
+
[](https://github.com/uinosoft/zenfg/blob/main/CHANGELOG.md)
|
|
5
|
+
[](https://github.com/uinosoft/zenfg/actions/workflows/ci.yml)
|
|
6
|
+
[](https://github.com/uinosoft/zenfg/blob/main/LICENSE)
|
|
7
|
+
|
|
8
|
+
`@zenfg/inspector` is an embeddable, renderer-independent DOM workbench for
|
|
9
|
+
ZenFG Snapshot data. It depends on `@zenfg/snapshot`, Cytoscape, and ELK; it has
|
|
10
|
+
no WebGPU, wgpu, engine, or host-UI dependency.
|
|
11
|
+
|
|
12
|
+
This is a public beta package. Public APIs may change before 1.0; integration
|
|
13
|
+
projects should pin the exact beta version.
|
|
14
|
+
|
|
15
|
+
For package selection, the capture data flow, version boundaries, and links to
|
|
16
|
+
complete producer recipes, see the
|
|
17
|
+
[ZenFG quick reference](https://github.com/uinosoft/zenfg/blob/main/docs/quick-reference.md).
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
npm install @zenfg/inspector@0.1.0-beta.1
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
import { mountFrameGraphInspector } from '@zenfg/inspector';
|
|
29
|
+
|
|
30
|
+
const inspector = mountFrameGraphInspector(document.querySelector('#tools')!, {
|
|
31
|
+
captureSnapshot: () => renderer.requestFrameGraphSnapshot(),
|
|
32
|
+
branding: 'ZenFG Inspector', // Pass false to hide visible branding.
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
inspector.setSnapshot(existingSnapshot);
|
|
36
|
+
await inspector.importSnapshot(file);
|
|
37
|
+
inspector.downloadSnapshot();
|
|
38
|
+
await inspector.copySnapshotJson();
|
|
39
|
+
inspector.destroy();
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
`FrameGraphInspector` fills any `HTMLElement` with a non-zero width and height,
|
|
43
|
+
so the same workbench can be a full page or an embedded tool. Product branding,
|
|
44
|
+
file selection, and file drag-and-drop are built in; an optional dock or overlay
|
|
45
|
+
adapter remains the host application's responsibility. File import defaults to
|
|
46
|
+
64 MiB and may be adjusted with
|
|
47
|
+
`maxImportBytes`. `maxGraphElements` defaults to 5,000; captures above that
|
|
48
|
+
layout budget retain Passes, Resources, Memory, Diagnostics, Inspector, and raw
|
|
49
|
+
views while automatic Cytoscape/ELK layout is disabled with an explanation.
|
|
50
|
+
|
|
51
|
+
## Workbench
|
|
52
|
+
|
|
53
|
+
The persistent workbench provides Overview, Graph, Passes, Resources, Memory,
|
|
54
|
+
and Diagnostics views plus a selection Inspector with Summary, Relations, and
|
|
55
|
+
Raw panes. It supports live capture providers, direct Snapshot set/get, file
|
|
56
|
+
import, Legacy V0 and Legacy Candidate V1 migration, canonical download,
|
|
57
|
+
clipboard copy, and cleanup through `destroy()`.
|
|
58
|
+
|
|
59
|
+
Capture, import, and direct replacement share a revision counter: stale async
|
|
60
|
+
results and results arriving after destruction are ignored. A failed or
|
|
61
|
+
oversized import leaves the current capture and UI state intact. The latest
|
|
62
|
+
valid capture preserves tab, filter, sorting, group-expansion, graph mode,
|
|
63
|
+
selection, Inspector, scrolling, and viewport state where possible.
|
|
64
|
+
|
|
65
|
+
Graph layout is lazy and read-only. ELK computes layered compound geometry and
|
|
66
|
+
Cytoscape renders it with pan, zoom, selection, hover, tooltips, group
|
|
67
|
+
expansion, relayout, and fit controls. Input labels and raw fields are assigned
|
|
68
|
+
with text DOM APIs; Snapshot extensions, URLs, labels, and messages are never
|
|
69
|
+
executed as markup or code.
|
|
70
|
+
|
|
71
|
+
The backend-free application in `apps/inspector` mounts the same workbench into
|
|
72
|
+
a full-viewport host without adding duplicate controls. It is built as static
|
|
73
|
+
files and includes third-party notices; hosting and deployment are deliberately
|
|
74
|
+
separate.
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { type FrameGraphSnapshot } from '@zenfg/snapshot';
|
|
2
|
+
/** Construction and safety limits for an embedded {@link FrameGraphInspector}. */
|
|
3
|
+
export type FrameGraphInspectorOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* Product label shown in the workbench command bar. Pass `false` to hide
|
|
6
|
+
* visible branding while retaining the inspector's accessible name.
|
|
7
|
+
*
|
|
8
|
+
* @defaultValue `"ZenFG Inspector"`
|
|
9
|
+
*/
|
|
10
|
+
branding?: string | false;
|
|
11
|
+
/**
|
|
12
|
+
* Produces a live snapshot when capture is requested. The inspector awaits
|
|
13
|
+
* promises and displays thrown or rejected errors in its status area.
|
|
14
|
+
*/
|
|
15
|
+
captureSnapshot?: () => FrameGraphSnapshot | undefined | Promise<FrameGraphSnapshot | undefined>;
|
|
16
|
+
/**
|
|
17
|
+
* Maximum accepted import size in bytes.
|
|
18
|
+
*
|
|
19
|
+
* @defaultValue `67108864` (64 MiB)
|
|
20
|
+
*/
|
|
21
|
+
maxImportBytes?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Maximum graph nodes plus edges accepted by automatic layout.
|
|
24
|
+
*
|
|
25
|
+
* @defaultValue `5000`
|
|
26
|
+
*/
|
|
27
|
+
maxGraphElements?: number;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Browser lifecycle controller for one embeddable FrameGraph inspector.
|
|
31
|
+
*
|
|
32
|
+
* @remarks The constructor creates, but does not append, {@link dom}. Use
|
|
33
|
+
* {@link mountFrameGraphInspector} for the common append-and-return workflow.
|
|
34
|
+
* Async capture, import, and clipboard failures are reported in the UI. Call
|
|
35
|
+
* {@link destroy} when the controller is no longer needed.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* const inspector = new FrameGraphInspector({ captureSnapshot: capture });
|
|
40
|
+
* document.body.append(inspector.dom);
|
|
41
|
+
* // Later:
|
|
42
|
+
* inspector.destroy();
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare class FrameGraphInspector {
|
|
46
|
+
/** Root element owned by this inspector instance. */
|
|
47
|
+
readonly dom: HTMLElement;
|
|
48
|
+
private readonly body;
|
|
49
|
+
private readonly content;
|
|
50
|
+
private readonly dropOverlay;
|
|
51
|
+
private readonly passesGraphModeButton;
|
|
52
|
+
private readonly resourcesGraphModeButton;
|
|
53
|
+
private readonly groupsButton;
|
|
54
|
+
private readonly collapseGroupsButton;
|
|
55
|
+
private readonly graphView;
|
|
56
|
+
private readonly workbench;
|
|
57
|
+
private captureSnapshotCallback;
|
|
58
|
+
private protocolSnapshot;
|
|
59
|
+
private operationRevision;
|
|
60
|
+
private viewModel;
|
|
61
|
+
private selected;
|
|
62
|
+
private hovered;
|
|
63
|
+
private capturing;
|
|
64
|
+
private importing;
|
|
65
|
+
private copying;
|
|
66
|
+
private copied;
|
|
67
|
+
private initialAutoCaptureAttempted;
|
|
68
|
+
private statusMessage;
|
|
69
|
+
private statusTone;
|
|
70
|
+
private destroyed;
|
|
71
|
+
private copyFeedbackTimeout;
|
|
72
|
+
private readonly maxImportBytes;
|
|
73
|
+
private dragDepth;
|
|
74
|
+
private readonly handleDragEnter;
|
|
75
|
+
private readonly handleDragOver;
|
|
76
|
+
private readonly handleDragLeave;
|
|
77
|
+
private readonly handleDragEnd;
|
|
78
|
+
private readonly handleDrop;
|
|
79
|
+
/**
|
|
80
|
+
* Creates a detached inspector UI.
|
|
81
|
+
*
|
|
82
|
+
* @throws If a configured numeric limit is not a non-negative safe integer,
|
|
83
|
+
* or if browser DOM globals are unavailable.
|
|
84
|
+
*/
|
|
85
|
+
constructor(options?: FrameGraphInspectorOptions);
|
|
86
|
+
/**
|
|
87
|
+
* Replaces or removes the live-capture provider.
|
|
88
|
+
*
|
|
89
|
+
* @remarks Installing a provider may immediately begin an asynchronous
|
|
90
|
+
* capture when no snapshot is displayed.
|
|
91
|
+
*/
|
|
92
|
+
setCaptureSnapshotProvider(provider: FrameGraphInspectorOptions['captureSnapshot']): void;
|
|
93
|
+
/**
|
|
94
|
+
* Requests and displays a live snapshot from the configured provider.
|
|
95
|
+
*
|
|
96
|
+
* @remarks Concurrent requests are coalesced. Provider errors, invalid
|
|
97
|
+
* snapshots, and an unavailable provider are displayed in the inspector and
|
|
98
|
+
* do not reject the returned promise.
|
|
99
|
+
*/
|
|
100
|
+
captureSnapshot(): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Validates and synchronously displays a programmatic Snapshot 1.0 value.
|
|
103
|
+
*
|
|
104
|
+
* @throws {@link FrameGraphSnapshotValidationError} if `snapshot` is invalid.
|
|
105
|
+
*/
|
|
106
|
+
setSnapshot(snapshot: FrameGraphSnapshot): void;
|
|
107
|
+
/** Returns the currently displayed canonical snapshot, if any. */
|
|
108
|
+
getSnapshot(): FrameGraphSnapshot | undefined;
|
|
109
|
+
/**
|
|
110
|
+
* Reads, migrates, validates, and displays a snapshot JSON file.
|
|
111
|
+
*
|
|
112
|
+
* @remarks Files above `maxImportBytes`, read failures, invalid JSON, and
|
|
113
|
+
* validation failures are displayed in the UI and do not reject the promise.
|
|
114
|
+
*/
|
|
115
|
+
importSnapshot(file: File): Promise<void>;
|
|
116
|
+
/** Downloads the displayed snapshot as pretty-printed canonical JSON. */
|
|
117
|
+
downloadSnapshot(): void;
|
|
118
|
+
/**
|
|
119
|
+
* Copies the displayed snapshot as pretty-printed canonical JSON.
|
|
120
|
+
*
|
|
121
|
+
* @remarks Clipboard failures are shown in the UI and do not reject the
|
|
122
|
+
* returned promise. A legacy `document.execCommand` fallback is used when the
|
|
123
|
+
* async Clipboard API is unavailable.
|
|
124
|
+
*/
|
|
125
|
+
copySnapshotJson(): Promise<void>;
|
|
126
|
+
private applySnapshot;
|
|
127
|
+
/**
|
|
128
|
+
* Idempotently cancels pending UI results, releases graph resources, and
|
|
129
|
+
* removes the inspector workbench. Do not reuse the controller afterward.
|
|
130
|
+
*/
|
|
131
|
+
destroy(): void;
|
|
132
|
+
private updateCaptureActions;
|
|
133
|
+
private maybeAutoCapture;
|
|
134
|
+
private handleSelect;
|
|
135
|
+
private handleHover;
|
|
136
|
+
private setGraphMode;
|
|
137
|
+
private updateGraphModeButtonState;
|
|
138
|
+
private toggleGroups;
|
|
139
|
+
private toggleGroup;
|
|
140
|
+
private collapseAllGroups;
|
|
141
|
+
private showEmptyState;
|
|
142
|
+
private setDropActive;
|
|
143
|
+
private clearDropState;
|
|
144
|
+
private reportCaptureIssue;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Creates an inspector, appends its root element to `host`, and returns its
|
|
148
|
+
* lifecycle controller.
|
|
149
|
+
*
|
|
150
|
+
* @throws If inspector construction fails; see {@link FrameGraphInspector}.
|
|
151
|
+
*/
|
|
152
|
+
export declare function mountFrameGraphInspector(host: HTMLElement, options?: FrameGraphInspectorOptions): FrameGraphInspector;
|
|
153
|
+
//# sourceMappingURL=FrameGraphInspector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameGraphInspector.d.ts","sourceRoot":"","sources":["../src/FrameGraphInspector.ts"],"names":[],"mappings":"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"}
|