@capillaryjs/capillary-devtools 1.0.0 → 1.2.0
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/CHANGELOG.md +27 -0
- package/README.md +49 -4
- package/dist/model/TraceRecorder.d.ts +3 -1
- package/dist/model/TraceRecorder.d.ts.map +1 -1
- package/dist/model/TraceRecorder.js +18 -8
- package/dist/model/TraceRecorder.js.map +1 -1
- package/dist/model/index.d.ts +2 -2
- package/dist/model/index.d.ts.map +1 -1
- package/dist/model/index.js +1 -1
- package/dist/model/index.js.map +1 -1
- package/dist/model/projection.d.ts +12 -0
- package/dist/model/projection.d.ts.map +1 -1
- package/dist/model/projection.js +41 -3
- package/dist/model/projection.js.map +1 -1
- package/dist/model/types.d.ts +15 -1
- package/dist/model/types.d.ts.map +1 -1
- package/dist/model/valueSnapshot.d.ts +8 -0
- package/dist/model/valueSnapshot.d.ts.map +1 -0
- package/dist/model/valueSnapshot.js +59 -0
- package/dist/model/valueSnapshot.js.map +1 -0
- package/dist/views/ActivityOverviewView.d.ts.map +1 -1
- package/dist/views/ActivityOverviewView.js +4 -1
- package/dist/views/ActivityOverviewView.js.map +1 -1
- package/dist/views/CausalTraceView.js +2 -2
- package/dist/views/CausalTraceView.js.map +1 -1
- package/dist/views/FlowGraphView.d.ts.map +1 -1
- package/dist/views/FlowGraphView.js +38 -12
- package/dist/views/FlowGraphView.js.map +1 -1
- package/dist/views/TraceDetailsView.d.ts.map +1 -1
- package/dist/views/TraceDetailsView.js +21 -10
- package/dist/views/TraceDetailsView.js.map +1 -1
- package/dist/views/TraceInspector.js +5 -5
- package/dist/views/TraceInspector.js.map +1 -1
- package/package.json +5 -5
- package/styles/structural.css +79 -12
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 1.2.0 - 2026-09-19
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Distinguish flow graph node kinds with themeable accents and shape families,
|
|
10
|
+
and expose each node's raw diagnostic kind as a `data-kind` styling hook.
|
|
11
|
+
- Show flow-edge states in the graph legend with representative arrow samples.
|
|
12
|
+
|
|
13
|
+
## 1.1.0 - 2026-09-18
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Use flexbox for the inspector's single-axis stacks and root list, retaining
|
|
18
|
+
grid for the responsive multi-column workbench layout.
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Add opt-in bounded, immutable nested value snapshots and expandable value/input/
|
|
23
|
+
error details, including cycle, accessor, failure, and truncation markers.
|
|
24
|
+
- Report render/update calls separately from event counts, show consumer triggers
|
|
25
|
+
and own renderer DOM writes, and identify UI consumers even with downstream children.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- Replace absent lifecycle payloads with execution/effect summaries, show fetch
|
|
30
|
+
state on graph nodes, and place selected-node details beside the inspector graph.
|
|
31
|
+
|
|
5
32
|
## 1.0.0
|
|
6
33
|
|
|
7
34
|
Initial release candidate; not yet published. Requires the companion Capillary
|
package/README.md
CHANGED
|
@@ -47,6 +47,19 @@ arrows are known connections/input provenance, not proof of execution. Expand
|
|
|
47
47
|
emitters. Details show inputs, values, state, errors, attempt outcomes, and
|
|
48
48
|
capture limitations. A node with no observed event is labelled as such.
|
|
49
49
|
|
|
50
|
+
Components show render calls separately from lifecycle-event counts. A render
|
|
51
|
+
start and completion are two events, usually one render; synchronous reentrant
|
|
52
|
+
passes are counted too. UI consumers are identified even when they have downstream
|
|
53
|
+
children. `DataTable` has named header, column-header, and body consumers. A body
|
|
54
|
+
render can change rows without rendering unchanged headers.
|
|
55
|
+
|
|
56
|
+
Consumer details show the trigger (`dependency`, `parent`, or `explicit`) and
|
|
57
|
+
**own renderer DOM writes**. These counts exclude nested consumers and application
|
|
58
|
+
DOM code; they include renderer writes to detached nodes. They are not paint/layout
|
|
59
|
+
measurements. Zero own writes does not mean that child consumers did no work.
|
|
60
|
+
Older recordings without this metadata show unknown effects. The composed inspector
|
|
61
|
+
places node details beside the graph; standalone views remain independently composable.
|
|
62
|
+
|
|
50
63
|
First/previous/next, the range control, and optional timed playback inspect the
|
|
51
64
|
recording only. They never rewind or rerun application work. The default is the
|
|
52
65
|
complete flow, with no autoplay; timed playback starts only on explicit Play.
|
|
@@ -72,11 +85,12 @@ available to the caller.
|
|
|
72
85
|
| `maxBytes` | 2,000,000 estimated UTF-16 bytes of serialized records; not a heap-size guarantee |
|
|
73
86
|
| `maxNodes`, `maxEdges` | 2,000 nodes and 8,000 connection lifetime records |
|
|
74
87
|
| `maxPreviewLength` | 180 characters per preview |
|
|
88
|
+
| `maxSnapshotDepth`, `maxSnapshotEntries` | 3 levels (maximum 20), 100 properties across each captured value tree |
|
|
75
89
|
| `capture` | `scalar`: metadata and primitive previews; object contents are not read |
|
|
76
90
|
| `topology`, `ui`, `verbose` | `true`, `true`, `false`; verbose adds unchanged recomputations and input snapshots |
|
|
77
91
|
| `clock` | `Date.now`; use a monotonic/injected clock for measured intervals |
|
|
78
92
|
|
|
79
|
-
Payload modes are `none`, `scalar`, `preview`, `raw`, and `formatter`.
|
|
93
|
+
Payload modes are `none`, `scalar`, `preview`, `snapshot`, `raw`, and `formatter`.
|
|
80
94
|
`preview` explicitly opts into shallow own-property inspection (at most eight
|
|
81
95
|
retained fields, no getters or recursive copy). Proxy descriptor traps may run;
|
|
82
96
|
failures are caught. `raw` deliberately retains mutable references, labels them
|
|
@@ -87,6 +101,32 @@ redaction. Formatter failures become a capture-error preview, not an application
|
|
|
87
101
|
exception. Node labels/causes are metadata, not passed through payload redaction;
|
|
88
102
|
do not put secrets there. Scalar strings can also be sensitive.
|
|
89
103
|
|
|
104
|
+
For trusted development data, opt into expandable capture-time object contents:
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
const recorder = new TraceRecorder({
|
|
108
|
+
verbose: true,
|
|
109
|
+
capture: 'snapshot',
|
|
110
|
+
maxSnapshotDepth: 4,
|
|
111
|
+
maxSnapshotEntries: 100,
|
|
112
|
+
maxPreviewLength: 180,
|
|
113
|
+
}).start({fromStart: true})
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
`snapshot` copies nested own data properties into immutable `ValueSnapshot` trees.
|
|
117
|
+
Details expand values, before-values, errors, and inputs without accessing the live
|
|
118
|
+
objects. Arrays show their captured length. Cycles, accessors, descriptor failures,
|
|
119
|
+
and depth/entry/string limits have explicit markers. Getters and `toJSON` are never
|
|
120
|
+
called; proxy own-key/descriptor traps may run and failures are contained. Property
|
|
121
|
+
enumeration itself follows JavaScript's `Reflect.ownKeys` behavior; the entry budget
|
|
122
|
+
bounds retained/traversed properties, not a proxy's own execution time. Captured trees
|
|
123
|
+
participate in `maxBytes` and JSON export. Original object references are not retained.
|
|
124
|
+
This mode can retain sensitive fields; application policy must choose whether to use it.
|
|
125
|
+
|
|
126
|
+
Scalar recordings cannot recover omitted contents later: configure capture and
|
|
127
|
+
record a new interaction. `preview` remains shallow; increasing its character
|
|
128
|
+
limit does not make it recursive. `raw` is not a historical object snapshot.
|
|
129
|
+
|
|
90
130
|
Eviction is explicit; missing parents/metadata and unfinished attempts are never
|
|
91
131
|
presented as a complete trace or proof that a request is still running. An
|
|
92
132
|
unchanged node is only an observed unchanged recomputation in verbose mode.
|
|
@@ -115,9 +155,14 @@ attempt start/duration/outcome table; it does not infer background work.
|
|
|
115
155
|
Use runtime style registration for just the selected component dependencies, or
|
|
116
156
|
import `@capillaryjs/capillary-devtools/styles/structural.css` for all views.
|
|
117
157
|
CSS uses `--cap-trace-text`, `-surface`, `-line`, `-accent`, `-selected`, `-muted`,
|
|
118
|
-
and `-warning` variables (all with neutral fallbacks).
|
|
119
|
-
|
|
120
|
-
|
|
158
|
+
and `-warning` variables (all with neutral fallbacks). Flow graph nodes also use
|
|
159
|
+
`--cap-trace-kind-ui`, `-query`, `-command`, `-derived`, `-subscriber`,
|
|
160
|
+
`-interaction`, and `-external` for their default accents. Each flow node exposes
|
|
161
|
+
its raw diagnostic kind as `data-kind`, allowing a host page to provide additional
|
|
162
|
+
kind-specific styling. Shape and accent are supplementary cues: the native node
|
|
163
|
+
label and kind text remain the authoritative accessible identification. Controls
|
|
164
|
+
are native and keyboard-operable; the scrollable graph has an equivalent textual
|
|
165
|
+
outline and leaf list. There is no implicit animation or reduced-motion exception.
|
|
121
166
|
|
|
122
167
|
The public model also exports `filterTrace`, `traceRoots`, `causalOutline`,
|
|
123
168
|
`projectFlow`, `traceAttempts`, `captureLimitations`, `TraceRecording`, and their
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Emitter } from '@capillaryjs/capillary';
|
|
2
2
|
import type { DiagnosticObserverOptions } from '@capillaryjs/capillary';
|
|
3
3
|
import type { TraceRecording } from './types.js';
|
|
4
|
-
export type TraceCaptureMode = 'none' | 'scalar' | 'preview' | 'raw' | 'formatter';
|
|
4
|
+
export type TraceCaptureMode = 'none' | 'scalar' | 'preview' | 'snapshot' | 'raw' | 'formatter';
|
|
5
5
|
export interface TraceCaptureContext {
|
|
6
6
|
readonly nodeId: string;
|
|
7
7
|
readonly field: string;
|
|
@@ -12,6 +12,8 @@ export interface TraceRecorderOptions extends DiagnosticObserverOptions {
|
|
|
12
12
|
maxNodes?: number;
|
|
13
13
|
maxEdges?: number;
|
|
14
14
|
maxPreviewLength?: number;
|
|
15
|
+
maxSnapshotDepth?: number;
|
|
16
|
+
maxSnapshotEntries?: number;
|
|
15
17
|
capture?: TraceCaptureMode;
|
|
16
18
|
formatter?: (value: unknown, context: TraceCaptureContext) => string;
|
|
17
19
|
clock?: () => number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraceRecorder.d.ts","sourceRoot":"","sources":["../../src/model/TraceRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAC,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAiC,yBAAyB,EAAC,MAAM,wBAAwB,CAAA;AAErG,OAAO,KAAK,EAAmC,cAAc,EAAe,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"TraceRecorder.d.ts","sourceRoot":"","sources":["../../src/model/TraceRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAC,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAiC,yBAAyB,EAAC,MAAM,wBAAwB,CAAA;AAErG,OAAO,KAAK,EAAmC,cAAc,EAAe,MAAM,YAAY,CAAA;AAG9F,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,WAAW,CAAA;AAC/F,MAAM,WAAW,mBAAmB;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAC;AACtF,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,KAAK,MAAM,CAAA;IACpE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAA;CACvB;AAED,uFAAuF;AACvF,qBAAa,aAAa;IACtB,QAAQ,CAAC,QAAQ,2BAA6D;IAC9E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6F;IACrH,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,eAAe,CAAI;IAC3B,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;gBAEhD,OAAO,GAAE,oBAAyB;IAkB9C,KAAK,CAAC,OAAO,GAAE;QAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,IAAI;IAY3E,IAAI,IAAI,IAAI;IASZ,KAAK,IAAI,IAAI;IAWb,QAAQ,IAAI,cAAc;IAY1B,4FAA4F;IAC5F,MAAM,IAAI,MAAM;IAEhB,OAAO,IAAI,IAAI;IAEf,OAAO,CAAC,MAAM;IAwCd,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,OAAO;IA0Bf,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,OAAO;CASlB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Diagnostics, Emitter } from '@capillaryjs/capillary';
|
|
2
2
|
import { devtoolsDiagnosticScope } from './scope.js';
|
|
3
|
+
import { captureValueSnapshot } from './valueSnapshot.js';
|
|
3
4
|
/** A bounded, caller-owned sink. Payload references never enter default recordings. */
|
|
4
5
|
export class TraceRecorder {
|
|
5
6
|
revision = new Emitter(0, { diagnosticScope: devtoolsDiagnosticScope });
|
|
@@ -22,14 +23,16 @@ export class TraceRecorder {
|
|
|
22
23
|
recordBytes = new WeakMap();
|
|
23
24
|
constructor(options = {}) {
|
|
24
25
|
this.options = { maxEvents: 2000, maxBytes: 2_000_000, maxNodes: 2000, maxEdges: 8000,
|
|
25
|
-
maxPreviewLength: 180, capture: 'scalar', clock: Date.now,
|
|
26
|
+
maxPreviewLength: 180, maxSnapshotDepth: 3, maxSnapshotEntries: 100, capture: 'scalar', clock: Date.now,
|
|
26
27
|
topology: true, verbose: false, ui: true, ...options };
|
|
27
|
-
for (const key of ['maxEvents', 'maxBytes', 'maxNodes', 'maxEdges', 'maxPreviewLength']) {
|
|
28
|
+
for (const key of ['maxEvents', 'maxBytes', 'maxNodes', 'maxEdges', 'maxPreviewLength', 'maxSnapshotDepth', 'maxSnapshotEntries']) {
|
|
28
29
|
if (!Number.isSafeInteger(this.options[key]) || this.options[key] < 1) {
|
|
29
30
|
throw new TypeError(`${key} must be a positive safe integer`);
|
|
30
31
|
}
|
|
31
32
|
}
|
|
32
|
-
if (
|
|
33
|
+
if (this.options.maxSnapshotDepth > 20)
|
|
34
|
+
throw new TypeError('maxSnapshotDepth must not exceed 20');
|
|
35
|
+
if (!['none', 'scalar', 'preview', 'snapshot', 'raw', 'formatter'].includes(this.options.capture)) {
|
|
33
36
|
throw new TypeError('Unknown trace capture mode');
|
|
34
37
|
}
|
|
35
38
|
if (this.options.capture === 'formatter' && typeof options.formatter !== 'function') {
|
|
@@ -90,7 +93,7 @@ export class TraceRecorder {
|
|
|
90
93
|
evictedEvents: this.evictedEvents, droppedTopology: this.droppedTopology, bytes: this.bytes,
|
|
91
94
|
maxBytes: this.options.maxBytes, maxEvents: this.options.maxEvents,
|
|
92
95
|
rawReferences: this.options.capture === 'raw', topology: this.options.topology,
|
|
93
|
-
ui: this.options.ui, verbose: this.options.verbose }) });
|
|
96
|
+
ui: this.options.ui, verbose: this.options.verbose, mode: this.options.capture }) });
|
|
94
97
|
return this.cached;
|
|
95
98
|
}
|
|
96
99
|
/** Safe JSON export strips raw references before serialization (including toJSON hooks). */
|
|
@@ -135,6 +138,7 @@ export class TraceRecorder {
|
|
|
135
138
|
error: details?.error == null ? null : preview(details.error, 'error'),
|
|
136
139
|
fetchState: details?.fetchState ?? null, attemptId: details?.attemptId ?? null,
|
|
137
140
|
delayMs: details?.delayMs ?? null,
|
|
141
|
+
...(details?.consumer ? { consumer: Object.freeze({ ...details.consumer }) } : {}),
|
|
138
142
|
inputs: Object.freeze((details?.inputs ?? []).map((input) => Object.freeze({ nodeId: input.nodeId,
|
|
139
143
|
value: preview(input.value, 'input') }))) }));
|
|
140
144
|
}
|
|
@@ -152,11 +156,16 @@ export class TraceRecorder {
|
|
|
152
156
|
const type = value === null ? 'null' : typeof value;
|
|
153
157
|
let text;
|
|
154
158
|
let captureError;
|
|
159
|
+
const snapshot = mode === 'snapshot' ? captureValueSnapshot(value, {
|
|
160
|
+
depth: this.options.maxSnapshotDepth, entries: this.options.maxSnapshotEntries,
|
|
161
|
+
text: this.options.maxPreviewLength,
|
|
162
|
+
}) : undefined;
|
|
155
163
|
try {
|
|
156
164
|
text = mode === 'none' ? 'not captured'
|
|
157
|
-
:
|
|
158
|
-
: mode === '
|
|
159
|
-
:
|
|
165
|
+
: snapshot ? snapshot.text
|
|
166
|
+
: mode === 'formatter' ? this.options.formatter(value, context)
|
|
167
|
+
: mode === 'preview' ? boundedPreview(value, this.options.maxPreviewLength)
|
|
168
|
+
: scalarText(value);
|
|
160
169
|
if (typeof text !== 'string')
|
|
161
170
|
throw new TypeError('Formatter must return a string');
|
|
162
171
|
}
|
|
@@ -164,9 +173,10 @@ export class TraceRecorder {
|
|
|
164
173
|
text = '[capture failed]';
|
|
165
174
|
captureError = 'Preview capture failed';
|
|
166
175
|
}
|
|
167
|
-
const truncated = text.length > this.options.maxPreviewLength;
|
|
176
|
+
const truncated = text.length > this.options.maxPreviewLength || snapshot?.truncated === true;
|
|
168
177
|
return Object.freeze({ text: text.slice(0, this.options.maxPreviewLength), type, truncated,
|
|
169
178
|
historical: mode !== 'raw', ...(captureError ? { captureError } : {}),
|
|
179
|
+
...(snapshot ? { snapshot } : {}),
|
|
170
180
|
...(mode === 'raw' ? { raw: value } : {}) });
|
|
171
181
|
}
|
|
172
182
|
enforceBounds() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraceRecorder.js","sourceRoot":"","sources":["../../src/model/TraceRecorder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TraceRecorder.js","sourceRoot":"","sources":["../../src/model/TraceRecorder.ts"],"names":[],"mappings":"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"}
|
package/dist/model/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type { TraceSelectionState } from './TraceSelection.js';
|
|
|
5
5
|
export { TracePlayback } from './TracePlayback.js';
|
|
6
6
|
export type { TracePlaybackScheduler, TracePlaybackState } from './TracePlayback.js';
|
|
7
7
|
export { devtoolsDiagnosticScope } from './scope.js';
|
|
8
|
-
export { filterTrace, traceRoots, causalOutline, traceAttempts, projectFlow, nodeValueEvent, captureLimitations } from './projection.js';
|
|
8
|
+
export { filterTrace, traceRoots, causalOutline, traceAttempts, projectFlow, nodeValueEvent, nodeActivity, eventValueText, captureLimitations } from './projection.js';
|
|
9
9
|
export type { CausalRow, FlowNode, FlowEdge, TraceFlow } from './projection.js';
|
|
10
|
-
export type { TraceEvent, TraceNode, TraceEdge, TraceRecording, TraceFilter, TraceAttempt, ValuePreview } from './types.js';
|
|
10
|
+
export type { TraceEvent, TraceNode, TraceEdge, TraceRecording, TraceFilter, TraceAttempt, ValuePreview, ValueSnapshot } from './types.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAC,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAC,sBAAsB,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAA;AAClF,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AAClD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAC,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAC,sBAAsB,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAA;AAClF,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AAClD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAA;AACpK,YAAY,EAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAA;AAC7E,YAAY,EAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAC,MAAM,YAAY,CAAA"}
|
package/dist/model/index.js
CHANGED
|
@@ -2,5 +2,5 @@ export { TraceRecorder } from './TraceRecorder.js';
|
|
|
2
2
|
export { TraceSelection } from './TraceSelection.js';
|
|
3
3
|
export { TracePlayback } from './TracePlayback.js';
|
|
4
4
|
export { devtoolsDiagnosticScope } from './scope.js';
|
|
5
|
-
export { filterTrace, traceRoots, causalOutline, traceAttempts, projectFlow, nodeValueEvent, captureLimitations } from './projection.js';
|
|
5
|
+
export { filterTrace, traceRoots, causalOutline, traceAttempts, projectFlow, nodeValueEvent, nodeActivity, eventValueText, captureLimitations } from './projection.js';
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/dist/model/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AAClD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AAClD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAA"}
|
|
@@ -9,6 +9,9 @@ export interface CausalRow {
|
|
|
9
9
|
}
|
|
10
10
|
/** Last observed state, not a later lifecycle marker's absent payload. */
|
|
11
11
|
export declare function nodeValueEvent(events: readonly TraceEvent[]): TraceEvent | undefined;
|
|
12
|
+
/** Render/update starts are executions; their completion markers are not extra executions. */
|
|
13
|
+
export declare function nodeActivity(node: TraceNode, events: readonly TraceEvent[]): string;
|
|
14
|
+
export declare function eventValueText(event: TraceEvent): string;
|
|
12
15
|
export declare function causalOutline(events: readonly TraceEvent[]): readonly CausalRow[];
|
|
13
16
|
export declare function traceAttempts(events: readonly TraceEvent[]): readonly TraceAttempt[];
|
|
14
17
|
export interface FlowNode {
|
|
@@ -29,6 +32,15 @@ export interface TraceFlow {
|
|
|
29
32
|
readonly width: number;
|
|
30
33
|
readonly height: number;
|
|
31
34
|
}
|
|
35
|
+
/** Shared geometry for the compact graph cards and their connector anchors. */
|
|
36
|
+
export declare const flowLayout: Readonly<{
|
|
37
|
+
canvasInset: 16;
|
|
38
|
+
nodeWidth: 192;
|
|
39
|
+
nodeSlotHeight: 108;
|
|
40
|
+
columnGap: 24;
|
|
41
|
+
rowGap: 16;
|
|
42
|
+
edgeY: 42;
|
|
43
|
+
}>;
|
|
32
44
|
/** Stable geometry depends on the complete selected trace, never the replay cursor. */
|
|
33
45
|
export declare function projectFlow(recording: TraceRecording, events: readonly TraceEvent[], options?: {
|
|
34
46
|
includeConnected?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/model/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAC,MAAM,YAAY,CAAA;AAEhG,wBAAgB,UAAU,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,UAAU,EAAE,CAG3E;AAED,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,GAAE,WAAgB,GAAG,SAAS,UAAU,EAAE,CAuBtG;AAED,MAAM,WAAW,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;CAAC;AAEhH,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,GAAG,SAAS,CAGpF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,SAAS,EAAE,CAkBjF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,YAAY,EAAE,CAcpF;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;IACtC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AACD,MAAM,WAAW,QAAQ;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAC;AAClG,MAAM,WAAW,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAC;AAEtJ,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,GAAE;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/model/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAC,MAAM,YAAY,CAAA;AAEhG,wBAAgB,UAAU,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,UAAU,EAAE,CAG3E;AAED,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,GAAE,WAAgB,GAAG,SAAS,UAAU,EAAE,CAuBtG;AAED,MAAM,WAAW,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;CAAC;AAEhH,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,GAAG,SAAS,CAGpF;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAWnF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQxD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,SAAS,EAAE,CAkBjF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,YAAY,EAAE,CAcpF;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;IACtC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AACD,MAAM,WAAW,QAAQ;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAC;AAClG,MAAM,WAAW,SAAS;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAC;AAEtJ,+EAA+E;AAC/E,eAAO,MAAM,UAAU;;;;;;;EAOrB,CAAA;AAEF,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,GAAE;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAM,GAAG,SAAS,CAmE3I;AAiCD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAgB/E"}
|
package/dist/model/projection.js
CHANGED
|
@@ -34,6 +34,33 @@ export function nodeValueEvent(events) {
|
|
|
34
34
|
return events.findLast((event) => ['value', 'state', 'derived', 'recomputed-unchanged', 'subscribed'].includes(event.kind))
|
|
35
35
|
?? events.findLast((event) => event.value.type !== 'undefined') ?? events.at(-1);
|
|
36
36
|
}
|
|
37
|
+
/** Render/update starts are executions; their completion markers are not extra executions. */
|
|
38
|
+
export function nodeActivity(node, events) {
|
|
39
|
+
if (node.kind !== 'component' && node.kind !== 'binding')
|
|
40
|
+
return `${events.length} events`;
|
|
41
|
+
const executions = new Map();
|
|
42
|
+
for (const event of events) {
|
|
43
|
+
if (event.kind !== 'consumer')
|
|
44
|
+
continue;
|
|
45
|
+
if (event.outcome === 'started')
|
|
46
|
+
executions.set(event.id, 1);
|
|
47
|
+
else
|
|
48
|
+
executions.set(event.parentId ?? event.id, event.consumer?.renderPasses ?? 1);
|
|
49
|
+
}
|
|
50
|
+
const starts = [...executions.values()].reduce((total, count) => total + count, 0);
|
|
51
|
+
const noun = node.kind === 'component' ? 'render' : 'update';
|
|
52
|
+
return `${starts} ${noun}${starts === 1 ? '' : 's'} · ${events.length} events`;
|
|
53
|
+
}
|
|
54
|
+
export function eventValueText(event) {
|
|
55
|
+
if (event.kind === 'consumer' && event.value.type === 'undefined' && !event.cause.startsWith('binding ')) {
|
|
56
|
+
const state = event.outcome === 'succeeded' ? 'Completed' : event.outcome === 'failed' ? 'Failed' : 'Started';
|
|
57
|
+
return event.consumer?.domWrites === undefined ? `${state} · DOM effects unknown`
|
|
58
|
+
: `${state} · ${event.consumer.domWrites} own DOM writes`;
|
|
59
|
+
}
|
|
60
|
+
if (event.kind === 'interaction' && event.value.type === 'undefined')
|
|
61
|
+
return event.cause;
|
|
62
|
+
return event.value.text;
|
|
63
|
+
}
|
|
37
64
|
export function causalOutline(events) {
|
|
38
65
|
const children = new Map();
|
|
39
66
|
const ids = new Set(events.map((event) => event.id));
|
|
@@ -71,6 +98,15 @@ export function traceAttempts(events) {
|
|
|
71
98
|
durationMs: start && end ? Math.max(0, end.timestamp - start.timestamp) : null };
|
|
72
99
|
});
|
|
73
100
|
}
|
|
101
|
+
/** Shared geometry for the compact graph cards and their connector anchors. */
|
|
102
|
+
export const flowLayout = Object.freeze({
|
|
103
|
+
canvasInset: 16,
|
|
104
|
+
nodeWidth: 192,
|
|
105
|
+
nodeSlotHeight: 108,
|
|
106
|
+
columnGap: 24,
|
|
107
|
+
rowGap: 16,
|
|
108
|
+
edgeY: 42,
|
|
109
|
+
});
|
|
74
110
|
/** Stable geometry depends on the complete selected trace, never the replay cursor. */
|
|
75
111
|
export function projectFlow(recording, events, options = {}) {
|
|
76
112
|
const nodes = new Map(recording.nodes.map((node) => [node.id, node]));
|
|
@@ -141,11 +177,13 @@ export function projectFlow(recording, events, options = {}) {
|
|
|
141
177
|
: node.kind === 'subscriber' ? 'subscription leaf'
|
|
142
178
|
: node.kind === 'emitter' || node.kind === 'derived' ? 'emitter without known subscribers'
|
|
143
179
|
: 'downstream leaf';
|
|
144
|
-
return { node, events: occurrences,
|
|
180
|
+
return { node, events: occurrences,
|
|
181
|
+
x: flowLayout.canvasInset + column * (flowLayout.nodeWidth + flowLayout.columnGap),
|
|
182
|
+
y: flowLayout.canvasInset + row * (flowLayout.nodeSlotHeight + flowLayout.rowGap), leaf };
|
|
145
183
|
});
|
|
146
184
|
return { nodes: positioned, edges: links,
|
|
147
|
-
width: Math.max(
|
|
148
|
-
height: Math.max(
|
|
185
|
+
width: Math.max(256, ...positioned.map((node) => node.x + flowLayout.nodeWidth + flowLayout.canvasInset)),
|
|
186
|
+
height: Math.max(140, ...positioned.map((node) => node.y + flowLayout.nodeSlotHeight + flowLayout.canvasInset)) };
|
|
149
187
|
}
|
|
150
188
|
function stronglyConnected(ids, edges) {
|
|
151
189
|
const visited = new Set(), order = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/model/projection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/model/projection.ts"],"names":[],"mappings":"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"}
|
package/dist/model/types.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
import type { DiagnosticEventKind, DiagnosticNode, DiagnosticOutcome } from '@capillaryjs/capillary';
|
|
1
|
+
import type { DiagnosticConsumerDetails, DiagnosticEventKind, DiagnosticNode, DiagnosticOutcome } from '@capillaryjs/capillary';
|
|
2
|
+
export interface ValueSnapshot {
|
|
3
|
+
readonly type: string;
|
|
4
|
+
readonly text: string;
|
|
5
|
+
readonly truncated?: boolean;
|
|
6
|
+
readonly entries?: readonly {
|
|
7
|
+
readonly key: string;
|
|
8
|
+
readonly value: ValueSnapshot;
|
|
9
|
+
}[];
|
|
10
|
+
}
|
|
2
11
|
export interface ValuePreview {
|
|
3
12
|
readonly text: string;
|
|
4
13
|
readonly type: string;
|
|
5
14
|
readonly truncated: boolean;
|
|
6
15
|
readonly historical: boolean;
|
|
7
16
|
readonly captureError?: string;
|
|
17
|
+
/** Bounded immutable capture-time contents, only in snapshot mode. */
|
|
18
|
+
readonly snapshot?: ValueSnapshot;
|
|
8
19
|
/** Only present for explicitly selected raw capture; never exported to JSON. */
|
|
9
20
|
readonly raw?: unknown;
|
|
10
21
|
}
|
|
@@ -27,6 +38,7 @@ export interface TraceEvent {
|
|
|
27
38
|
readonly nodeId: string;
|
|
28
39
|
readonly value: ValuePreview;
|
|
29
40
|
}[];
|
|
41
|
+
readonly consumer?: DiagnosticConsumerDetails;
|
|
30
42
|
}
|
|
31
43
|
export interface TraceNode extends DiagnosticNode {
|
|
32
44
|
readonly firstSequence: number;
|
|
@@ -58,6 +70,8 @@ export interface TraceRecording {
|
|
|
58
70
|
readonly topology: boolean;
|
|
59
71
|
readonly ui: boolean;
|
|
60
72
|
readonly verbose: boolean;
|
|
73
|
+
/** Absent in older recordings. */
|
|
74
|
+
readonly mode?: string;
|
|
61
75
|
};
|
|
62
76
|
}
|
|
63
77
|
export interface TraceFilter {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAC,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,yBAAyB,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAC,MAAM,wBAAwB,CAAA;AAE7H,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;KAAC,EAAE,CAAA;CACtF;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;IACjC,gFAAgF;IAChF,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;KAAC,EAAE,CAAA;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAA;CAChD;AAED,MAAM,WAAW,SAAU,SAAQ,cAAc;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3C;AAED,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CACrC;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;IACpC,QAAQ,CAAC,OAAO,EAAE;QACd,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;QACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;QACjC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;QAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;QAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;QAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;QAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;QAC1B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;QACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;QACzB,kCAAkC;QAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;CACJ;AAED,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CACrC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ValueSnapshot } from './types.js';
|
|
2
|
+
/** Copies descriptors into a bounded immutable tree; never retains the source. */
|
|
3
|
+
export declare function captureValueSnapshot(value: unknown, limits: {
|
|
4
|
+
depth: number;
|
|
5
|
+
entries: number;
|
|
6
|
+
text: number;
|
|
7
|
+
}): ValueSnapshot;
|
|
8
|
+
//# sourceMappingURL=valueSnapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valueSnapshot.d.ts","sourceRoot":"","sources":["../../src/model/valueSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,YAAY,CAAA;AAE7C,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GAAG,aAAa,CA2C1H"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/** Copies descriptors into a bounded immutable tree; never retains the source. */
|
|
2
|
+
export function captureValueSnapshot(value, limits) {
|
|
3
|
+
let remaining = limits.entries;
|
|
4
|
+
const ancestors = new WeakSet();
|
|
5
|
+
const node = (type, text, extra = {}) => Object.freeze({ type, text: text.slice(0, limits.text),
|
|
6
|
+
...(text.length > limits.text ? { truncated: true } : {}), ...extra });
|
|
7
|
+
const visit = (current, depth) => {
|
|
8
|
+
if (current === null)
|
|
9
|
+
return node('null', 'null');
|
|
10
|
+
if (typeof current !== 'object') {
|
|
11
|
+
return node(typeof current, typeof current === 'string' ? JSON.stringify(current)
|
|
12
|
+
: typeof current === 'function' ? '[function]' : String(current));
|
|
13
|
+
}
|
|
14
|
+
if (ancestors.has(current))
|
|
15
|
+
return node('reference', '[Circular reference]');
|
|
16
|
+
try {
|
|
17
|
+
const array = Array.isArray(current);
|
|
18
|
+
const type = array ? 'array' : 'object';
|
|
19
|
+
const length = array ? Object.getOwnPropertyDescriptor(current, 'length')?.value : undefined;
|
|
20
|
+
const summary = array ? `Array(${typeof length === 'number' ? length : '?'})` : 'Object';
|
|
21
|
+
if (depth >= limits.depth)
|
|
22
|
+
return node(type, `${summary} [depth limit]`, { truncated: true });
|
|
23
|
+
if (remaining === 0)
|
|
24
|
+
return node(type, `${summary} [entry limit]`, { truncated: true });
|
|
25
|
+
ancestors.add(current);
|
|
26
|
+
try {
|
|
27
|
+
const keys = Reflect.ownKeys(current).filter((key) => !array || key !== 'length');
|
|
28
|
+
const entries = [];
|
|
29
|
+
for (const key of keys) {
|
|
30
|
+
if (remaining === 0)
|
|
31
|
+
break;
|
|
32
|
+
remaining -= 1;
|
|
33
|
+
let child;
|
|
34
|
+
try {
|
|
35
|
+
const descriptor = Object.getOwnPropertyDescriptor(current, key);
|
|
36
|
+
child = !descriptor ? node('unavailable', '[Property unavailable]')
|
|
37
|
+
: 'value' in descriptor ? visit(descriptor.value, depth + 1)
|
|
38
|
+
: node('accessor', '[Accessor not invoked]');
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
child = node('unavailable', '[Capture failed]');
|
|
42
|
+
}
|
|
43
|
+
const name = String(key);
|
|
44
|
+
entries.push(Object.freeze({ key: name.length > limits.text ? `${name.slice(0, limits.text - 1)}…` : name, value: child }));
|
|
45
|
+
}
|
|
46
|
+
return node(type, summary, { entries: Object.freeze(entries),
|
|
47
|
+
...(entries.length < keys.length ? { truncated: true } : {}) });
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
ancestors.delete(current);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return node('unavailable', '[Capture failed]');
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
return visit(value, 0);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=valueSnapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valueSnapshot.js","sourceRoot":"","sources":["../../src/model/valueSnapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityOverviewView.d.ts","sourceRoot":"","sources":["../../src/views/ActivityOverviewView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"ActivityOverviewView.d.ts","sourceRoot":"","sources":["../../src/views/ActivityOverviewView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAGrC,qBAAa,oBAAqB,SAAQ,SAAS;IAC/C,OAAgB,QAAQ,SAAkB;IACjC,MAAM;CAUlB"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { h } from '@capillaryjs/capillary-ui';
|
|
2
2
|
import { TraceView } from './shared.js';
|
|
3
|
+
import { nodeActivity } from '../model/projection.js';
|
|
3
4
|
export class ActivityOverviewView extends TraceView {
|
|
4
5
|
static hostName = 'traceactivity';
|
|
5
6
|
render() {
|
|
6
7
|
const counts = new Map();
|
|
7
8
|
for (const event of this.events)
|
|
8
9
|
counts.set(event.nodeId, (counts.get(event.nodeId) ?? 0) + 1);
|
|
9
|
-
return this.host({ role: 'region', 'aria-label': 'Trace activity' }, h('h2', null, 'Activity'), h('ul', null, ...[...counts].sort((a, b) => b[1] - a[1]).map(([id, count]) => h('li', { key: id }, h('button', { type: 'button', onClick: () => this.props.selection.selectNode(id) }, `${this.label(id)} · ${
|
|
10
|
+
return this.host({ role: 'region', 'aria-label': 'Trace activity' }, h('h2', null, 'Activity'), h('ul', null, ...[...counts].sort((a, b) => b[1] - a[1]).map(([id, count]) => h('li', { key: id }, h('button', { type: 'button', onClick: () => this.props.selection.selectNode(id) }, `${this.label(id)} · ${this.recording.nodes.find((node) => node.id === id)
|
|
11
|
+
? nodeActivity(this.recording.nodes.find((node) => node.id === id), this.events.filter((event) => event.nodeId === id))
|
|
12
|
+
: `${count} events`}`)))));
|
|
10
13
|
}
|
|
11
14
|
}
|
|
12
15
|
//# sourceMappingURL=ActivityOverviewView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityOverviewView.js","sourceRoot":"","sources":["../../src/views/ActivityOverviewView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,2BAA2B,CAAA;AAC3C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"ActivityOverviewView.js","sourceRoot":"","sources":["../../src/views/ActivityOverviewView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,2BAA2B,CAAA;AAC3C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAA;AAEnD,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAC/C,MAAM,CAAU,QAAQ,GAAG,eAAe,CAAA;IACjC,MAAM;QACX,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;QACxC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9F,OAAO,IAAI,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EACxF,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CACzE,CAAC,CAAC,IAAI,EAAE,EAAC,GAAG,EAAE,EAAE,EAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,EAAC,EAC/F,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;YACtE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAE,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;YACxH,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h } from '@capillaryjs/capillary-ui';
|
|
2
|
-
import { causalOutline } from '../model/projection.js';
|
|
2
|
+
import { causalOutline, eventValueText } from '../model/projection.js';
|
|
3
3
|
import { TraceView } from './shared.js';
|
|
4
4
|
export class CausalTraceView extends TraceView {
|
|
5
5
|
static hostName = 'causaltrace';
|
|
@@ -15,7 +15,7 @@ export class CausalTraceView extends TraceView {
|
|
|
15
15
|
const label = `#${event.sequence} ${this.label(event.nodeId)} · ${event.cause}`;
|
|
16
16
|
const button = h('button', { type: 'button', 'data-event-id': event.id,
|
|
17
17
|
'aria-current': events[this.cursor]?.id === event.id ? 'step' : undefined,
|
|
18
|
-
onClick: () => this.choose(event) }, label, h('small', null, `${event.outcome ?? event.kind} · ${event
|
|
18
|
+
onClick: () => this.choose(event) }, label, h('small', null, `${event.outcome ?? event.kind} · ${eventValueText(event)}`));
|
|
19
19
|
const content = h('li', { key: event.id }, children.length
|
|
20
20
|
? h('details', { open: true }, h('summary', null, label), button, h('ol', { style: { paddingInlineStart: '1rem' } }, ...children.reverse())) : button);
|
|
21
21
|
const parent = event.parentId && ids.has(event.parentId) ? event.parentId : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CausalTraceView.js","sourceRoot":"","sources":["../../src/views/CausalTraceView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,2BAA2B,CAAA;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"CausalTraceView.js","sourceRoot":"","sources":["../../src/views/CausalTraceView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowGraphView.d.ts","sourceRoot":"","sources":["../../src/views/FlowGraphView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,qBAAa,aAAc,SAAQ,SAAS;IACxC,OAAgB,QAAQ,SAAc;IACtC,OAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"FlowGraphView.d.ts","sourceRoot":"","sources":["../../src/views/FlowGraphView.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,qBAAa,aAAc,SAAQ,SAAS;IACxC,OAAgB,QAAQ,SAAc;IACtC,OAAgB,GAAG,SAiClB;IACQ,MAAM;CAqDlB"}
|
|
@@ -1,20 +1,40 @@
|
|
|
1
1
|
import { h } from '@capillaryjs/capillary-ui';
|
|
2
|
-
import { nodeValueEvent, projectFlow } from '../model/projection.js';
|
|
2
|
+
import { eventValueText, flowLayout, nodeActivity, nodeValueEvent, projectFlow } from '../model/projection.js';
|
|
3
3
|
import { TraceView } from './shared.js';
|
|
4
4
|
export class FlowGraphView extends TraceView {
|
|
5
5
|
static hostName = 'traceflow';
|
|
6
6
|
static css = `
|
|
7
|
+
& .trace-flow-surface { position: relative; min-width: 0; min-height: 0; }
|
|
8
|
+
& .trace-flow-surface > .trace-scroll { height: 100%; min-height: 0; }
|
|
7
9
|
& .trace-canvas { position: relative; }
|
|
8
|
-
& .trace-node { position: absolute; width:
|
|
10
|
+
& .trace-node { --_node-accent: var(--cap-trace-accent, #005bb8); --_node-radius-start: .45rem; --_node-radius-end: .45rem; --_node-padding-inline: .6rem; box-sizing: border-box; position: absolute; width: ${flowLayout.nodeWidth}px; min-height: 0; padding: .5rem var(--_node-padding-inline); z-index: 1; border-inline-start: 4px solid var(--_node-accent); border-start-start-radius: var(--_node-radius-start); border-end-start-radius: var(--_node-radius-start); border-start-end-radius: var(--_node-radius-end); border-end-end-radius: var(--_node-radius-end); line-height: 1.35; }
|
|
11
|
+
& .trace-node[data-kind="component"], & .trace-node[data-kind="binding"] { --_node-accent: var(--cap-trace-kind-ui, #6d28d9); --_node-radius-start: 1rem; --_node-radius-end: 1rem; }
|
|
12
|
+
& .trace-node[data-kind="query"] { --_node-accent: var(--cap-trace-kind-query, #0e7490); --_node-radius-start: 999px; --_node-radius-end: 999px; --_node-padding-inline: 1.05rem; }
|
|
13
|
+
& .trace-node[data-kind="command"] { --_node-accent: var(--cap-trace-kind-command, #b45309); --_node-radius-start: .15rem; --_node-radius-end: .15rem; }
|
|
14
|
+
& .trace-node[data-kind="derived"] { --_node-accent: var(--cap-trace-kind-derived, #0f766e); }
|
|
15
|
+
& .trace-node[data-kind="subscriber"] { --_node-accent: var(--cap-trace-kind-subscriber, #4d7c0f); --_node-radius-start: .35rem; --_node-radius-end: 1rem; }
|
|
16
|
+
& .trace-node[data-kind="interaction"] { --_node-accent: var(--cap-trace-kind-interaction, #be185d); --_node-radius-start: 1rem; --_node-radius-end: .35rem; }
|
|
17
|
+
& .trace-node[data-kind="emitter"] { --_node-radius-start: 1rem; --_node-radius-end: .35rem; }
|
|
18
|
+
& .trace-node[data-kind="external"] { --_node-accent: var(--cap-trace-kind-external, #526477); }
|
|
9
19
|
& .trace-node[data-observed="false"] { border-style: dashed; border-inline-start-color: var(--cap-trace-muted, #526477); }
|
|
10
20
|
& .trace-node[data-observed="true"][data-reached="false"] { border-inline-start-color: var(--cap-trace-line, #cad4de); }
|
|
11
|
-
& .trace-node[aria-current="step"] { box-shadow: 0 0 0 3px var(--
|
|
12
|
-
& .trace-node strong { display: block; overflow-wrap: anywhere; }
|
|
21
|
+
& .trace-node[aria-current="step"] { box-shadow: 0 0 0 3px var(--_node-accent); }
|
|
22
|
+
& .trace-node strong { display: block; overflow-wrap: anywhere; line-height: 1.35; }
|
|
23
|
+
& .trace-node small, & .trace-node span { line-height: 1.35; }
|
|
13
24
|
& .trace-node span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
14
|
-
& .trace-edge { position: absolute; height: 0; border-top: 2px solid var(--cap-trace-accent, #005bb8); transform-origin: left center; }
|
|
15
|
-
& .trace-edge[data-observed="false"] { border-top-style: dashed; border-top-color: var(--cap-trace-muted, #526477); }
|
|
25
|
+
& .trace-edge { position: absolute; height: 0; border-top: 2px solid var(--cap-trace-accent, #005bb8); color: var(--cap-trace-accent, #005bb8); transform-origin: left center; }
|
|
26
|
+
& .trace-edge[data-observed="false"] { border-top-style: dashed; border-top-color: var(--cap-trace-muted, #526477); color: var(--cap-trace-muted, #526477); }
|
|
16
27
|
& .trace-edge[data-observed="true"][data-reached="false"] { border-top-color: var(--cap-trace-line, #cad4de); color: var(--cap-trace-line, #cad4de); }
|
|
17
|
-
& .trace-edge::after { content: ''; position: absolute; right: 0; top: -5px; width: 7px; height: 7px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
|
|
28
|
+
& .trace-edge::after, & .trace-legend-edge::after { content: ''; position: absolute; right: 0; top: -5px; width: 7px; height: 7px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
|
|
29
|
+
& .trace-flow-help { position: absolute; inset-inline-start: .75rem; inset-block-end: 1rem; z-index: 2; box-sizing: border-box; max-inline-size: min(28rem, calc(100% - 1.5rem)); margin: 0; overflow: hidden; border: 1px solid var(--cap-trace-line, #cad4de); border-radius: .5rem; background: var(--cap-trace-surface, #fff); box-shadow: 0 .25rem .75rem rgb(0 0 0 / .18); }
|
|
30
|
+
& .trace-flow-help summary { padding: .4rem .6rem; cursor: pointer; font-weight: 600; user-select: none; }
|
|
31
|
+
& .trace-flow-help[open] summary { border-block-end: 1px solid var(--cap-trace-line, #cad4de); }
|
|
32
|
+
& .trace-flow-help p { margin: .5rem .6rem; }
|
|
33
|
+
& .trace-flow-legend { display: grid; gap: .35rem; margin: .5rem .6rem; padding: 0; list-style: none; }
|
|
34
|
+
& .trace-flow-legend li { display: flex; align-items: center; gap: .65rem; }
|
|
35
|
+
& .trace-legend-edge { position: relative; flex: 0 0 2.75rem; height: 0; border-top: 2px solid var(--cap-trace-accent, #005bb8); color: var(--cap-trace-accent, #005bb8); }
|
|
36
|
+
& .trace-legend-edge[data-observed="false"] { border-top-style: dashed; border-top-color: var(--cap-trace-muted, #526477); color: var(--cap-trace-muted, #526477); }
|
|
37
|
+
& .trace-legend-edge[data-observed="true"][data-reached="false"] { border-top-color: var(--cap-trace-line, #cad4de); color: var(--cap-trace-line, #cad4de); }
|
|
18
38
|
& .trace-leaves { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; }
|
|
19
39
|
`;
|
|
20
40
|
render() {
|
|
@@ -25,23 +45,29 @@ export class FlowGraphView extends TraceView {
|
|
|
25
45
|
const byId = new Map(events.map((event) => [event.id, event]));
|
|
26
46
|
const reachedEdges = new Set(events.filter((event) => reached.has(event.id) && event.parentId)
|
|
27
47
|
.map((event) => `${byId.get(event.parentId)?.nodeId}:${event.nodeId}`));
|
|
28
|
-
return this.host({ role: 'region', 'aria-label': 'Propagation graph' }, h('h2', null, 'Propagation graph'), h('
|
|
48
|
+
return this.host({ role: 'region', 'aria-label': 'Propagation graph' }, h('h2', null, 'Propagation graph'), h('div', { className: 'trace-flow-surface' }, h('details', { className: 'trace-flow-help', open: true }, h('summary', null, 'Legend'), h('ul', { className: 'trace-flow-legend' }, h('li', null, h('span', { className: 'trace-legend-edge', 'aria-hidden': true,
|
|
49
|
+
'data-observed': 'true', 'data-reached': 'true' }), 'Recorded propagation'), h('li', null, h('span', { className: 'trace-legend-edge', 'aria-hidden': true,
|
|
50
|
+
'data-observed': 'false', 'data-reached': 'false' }), 'Known connection with no observed hop in this trace'), h('li', null, h('span', { className: 'trace-legend-edge', 'aria-hidden': true,
|
|
51
|
+
'data-observed': 'true', 'data-reached': 'false' }), 'Recorded path not yet reached at this step')), h('p', null, 'Node shape and accent color reflect node kind.'), h('p', null, 'Renders count executions, not visible changes. Own DOM writes exclude nested consumers; UI consumers can also have downstream children.')), !events.length ? h('p', { className: 'trace-empty' }, 'Select a recorded root to follow its flow.')
|
|
29
52
|
: h('div', { className: 'trace-scroll', tabIndex: 0, 'aria-label': 'Scrollable flow graph' }, h('div', { className: 'trace-canvas', style: { width: `${flow.width}px`, height: `${flow.height}px` } }, ...flow.edges.map((edge) => {
|
|
30
53
|
const from = positions.get(edge.from), to = positions.get(edge.to);
|
|
31
|
-
const x = from.x +
|
|
54
|
+
const x = from.x + flowLayout.nodeWidth, y = from.y + flowLayout.edgeY;
|
|
55
|
+
const dx = to.x - x, dy = to.y + flowLayout.edgeY - y;
|
|
32
56
|
return h('div', { key: `${edge.from}:${edge.to}`, className: 'trace-edge', 'aria-hidden': true,
|
|
33
57
|
'data-observed': String(edge.observed), 'data-reached': String(reachedEdges.has(`${edge.from}:${edge.to}`)),
|
|
34
58
|
style: { left: `${x}px`, top: `${y}px`,
|
|
35
59
|
width: `${Math.hypot(dx, dy)}px`, transform: `rotate(${Math.atan2(dy, dx)}rad)` } });
|
|
36
60
|
}), ...flow.nodes.map(({ node, events: occurrences, x, y, leaf }) => {
|
|
37
61
|
const current = nodeValueEvent(occurrences.filter((event) => reached.has(event.id)));
|
|
62
|
+
const kind = node.kind === 'component' || node.kind === 'binding' ? 'UI' : node.kind;
|
|
63
|
+
const kindLabel = node.kind === 'component' || node.kind === 'binding' ? 'UI consumer' : node.kind;
|
|
38
64
|
return h('button', { key: node.id, type: 'button', className: 'trace-node',
|
|
39
|
-
'data-node-id': node.id, 'data-observed': String(occurrences.length > 0),
|
|
65
|
+
'data-node-id': node.id, 'data-kind': node.kind, 'data-observed': String(occurrences.length > 0),
|
|
40
66
|
'data-reached': String(Boolean(current)),
|
|
41
67
|
'aria-current': events[this.cursor]?.nodeId === node.id ? 'step' : undefined,
|
|
42
68
|
'aria-pressed': this.props.selection.state.get().nodeId === node.id,
|
|
43
|
-
style: { left: `${x}px`, top: `${y}px` }, onClick: () => this.props.selection.selectNode(node.id) }, h('strong', null, node.label), h('small',
|
|
44
|
-
}))), flow.nodes.some((node) => node.leaf) ? h('details',
|
|
69
|
+
style: { left: `${x}px`, top: `${y}px` }, onClick: () => this.props.selection.selectNode(node.id) }, h('strong', null, node.label), h('small', { title: kindLabel }, `${nodeActivity(node, occurrences)} · ${kind}`), h('span', { title: current ? eventValueText(current) : undefined }, current ? eventValueText(current) : (occurrences.length ? 'Not reached at this step' : 'No recorded event')), current?.fetchState ? h('small', null, `State: ${current.fetchState}`) : null, leaf ? h('small', null, leaf) : null);
|
|
70
|
+
})))), flow.nodes.some((node) => node.leaf) ? h('details', null, h('summary', null, 'Downstream leaves'), h('ul', { className: 'trace-leaves' }, ...flow.nodes.filter((node) => node.leaf).map(({ node, leaf, events: occurrences }) => h('li', { key: node.id }, h('button', { type: 'button', onClick: () => this.props.selection.selectNode(node.id) }, `${node.label} — ${leaf}${occurrences.length ? '' : ' · unobserved'}`))))) : null);
|
|
45
71
|
}
|
|
46
72
|
}
|
|
47
73
|
//# sourceMappingURL=FlowGraphView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowGraphView.js","sourceRoot":"","sources":["../../src/views/FlowGraphView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,2BAA2B,CAAA;AAC3C,OAAO,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"FlowGraphView.js","sourceRoot":"","sources":["../../src/views/FlowGraphView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraceDetailsView.d.ts","sourceRoot":"","sources":["../../src/views/TraceDetailsView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TraceDetailsView.d.ts","sourceRoot":"","sources":["../../src/views/TraceDetailsView.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AAErC,qBAAa,gBAAiB,SAAQ,SAAS;IAC3C,OAAgB,QAAQ,SAAiB;IAChC,MAAM;CAsClB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h } from '@capillaryjs/capillary-ui';
|
|
2
|
-
import { captureLimitations, nodeValueEvent, traceAttempts } from '../model/projection.js';
|
|
2
|
+
import { captureLimitations, eventValueText, nodeActivity, nodeValueEvent, traceAttempts } from '../model/projection.js';
|
|
3
3
|
import { TraceView } from './shared.js';
|
|
4
4
|
export class TraceDetailsView extends TraceView {
|
|
5
5
|
static hostName = 'tracedetails';
|
|
@@ -12,17 +12,28 @@ export class TraceDetailsView extends TraceView {
|
|
|
12
12
|
const node = this.recording.nodes.find((candidate) => candidate.id === (selection.eventId ? event?.nodeId : selection.nodeId));
|
|
13
13
|
const fields = [
|
|
14
14
|
['Node', node?.label ?? 'Select a node or event'], ['Identity', node?.id ?? '—'], ['Kind', node?.kind ?? '—'],
|
|
15
|
-
...(node ? [['First observed', `#${node.firstSequence}`],
|
|
16
|
-
['Disposed', node.disposedSequence === null ? 'Not observed' : `#${node.disposedSequence}`]] : []),
|
|
17
|
-
...(event ? [
|
|
18
|
-
['Event', `#${event.sequence} · ${event.id}`], ['Cause', event.cause], ['Outcome', event.outcome ?? event.kind],
|
|
19
|
-
['Before', event.before?.text ?? 'Not captured'], ['Value', event.value.text + (event.value.truncated ? '… (truncated)' : '')],
|
|
20
|
-
['Fetch state', event.fetchState ?? '—'], ['Error', event.error?.text ?? '—'],
|
|
21
|
-
['Parent', event.parentId ?? 'Root event'], ['Attempt', event.attemptId ?? '—'],
|
|
22
|
-
] : []),
|
|
23
15
|
];
|
|
16
|
+
if (node)
|
|
17
|
+
fields.push(['Activity', nodeActivity(node, this.events.filter((candidate) => candidate.nodeId === node.id))], ['First observed', `#${node.firstSequence}`], ['Disposed', node.disposedSequence === null ? 'Not observed' : `#${node.disposedSequence}`]);
|
|
18
|
+
if (event)
|
|
19
|
+
fields.push(['Event', `#${event.sequence} · ${event.id}`], ['Cause', event.cause], ['Outcome', event.outcome ?? event.kind], ['Before', previewValue(event.before, event.before?.text ?? 'Not captured')], ['Value / effect', previewValue(event.value, eventValueText(event))], ['Fetch state', event.fetchState ?? '—'], ['Error', previewValue(event.error, event.error?.text ?? '—')], ['Parent', event.parentId ?? 'Root event'], ['Attempt', event.attemptId ?? '—']);
|
|
20
|
+
if (event?.consumer)
|
|
21
|
+
fields.push(['Triggered by', event.consumer.trigger], ['Own renderer DOM writes', event.consumer.domWrites === undefined ? 'Unknown / not completed' : String(event.consumer.domWrites)]);
|
|
24
22
|
const attempts = traceAttempts(this.events).filter((attempt) => attempt.nodeId === node?.id);
|
|
25
|
-
return this.host({ role: 'region', 'aria-label': 'Trace details' }, h('h2', null, 'Trace details'), h('dl', null, ...fields.flatMap(([label, value]) => [h('dt', null, label), h('dd', null, value)])), node && !event ? h('p', null, 'This node is known through topology, but has no selected event at this cursor.') : null, event?.inputs.length ? h('details', { open: true }, h('summary', null, 'Inputs used'), h('ul', null, ...event.inputs.map((input) => h('li', { key: input.nodeId }, `${this.label(input.nodeId)}:
|
|
23
|
+
return this.host({ role: 'region', 'aria-label': 'Trace details' }, h('h2', null, 'Trace details'), h('dl', null, ...fields.flatMap(([label, value]) => [h('dt', null, label), h('dd', null, value)])), event?.consumer ? h('p', null, 'Renderer counts exclude nested consumers and application DOM code. They do not measure browser paint or layout.') : null, node && !event ? h('p', null, 'This node is known through topology, but has no selected event at this cursor.') : null, event?.inputs.length ? h('details', { open: true }, h('summary', null, 'Inputs used'), h('ul', null, ...event.inputs.map((input) => h('li', { key: input.nodeId }, `${this.label(input.nodeId)}: `, previewValue(input.value, input.value.text))))) : null, attempts.length ? h('details', { open: true }, h('summary', null, 'Request attempts (complete selected trace)'), h('ul', null, ...attempts.map((attempt) => h('li', { key: attempt.id }, `${attempt.id}: ${attempt.status}${attempt.durationMs === null ? '' : ` · ${attempt.durationMs} ms`}`)))) : null, h('div', { className: 'trace-limit', role: 'note', 'aria-label': 'Capture limitations' }, ...captureLimitations(this.recording).map((message) => h('p', null, message))));
|
|
26
24
|
}
|
|
27
25
|
}
|
|
26
|
+
function previewValue(preview, fallback) {
|
|
27
|
+
if (!preview || preview.type !== 'object') {
|
|
28
|
+
return `${fallback}${preview?.truncated ? '… (truncated)' : ''}`;
|
|
29
|
+
}
|
|
30
|
+
if (preview.snapshot)
|
|
31
|
+
return snapshotTree(null, preview.snapshot);
|
|
32
|
+
return h('span', { className: 'trace-limit' }, `${fallback}${preview.truncated ? '… (truncated)' : ''} · expandable contents were not captured. Use TraceRecorder({capture: 'snapshot'}) and record again.`);
|
|
33
|
+
}
|
|
34
|
+
function snapshotTree(label, value) {
|
|
35
|
+
const text = `${label == null ? '' : `${label}: `}${value.text}${value.truncated ? ' … (truncated)' : ''}`;
|
|
36
|
+
return value.entries ? h('details', null, h('summary', null, text), h('ul', null, ...value.entries.map((entry, index) => h('li', { key: index }, snapshotTree(entry.key, entry.value)))))
|
|
37
|
+
: h('span', null, text);
|
|
38
|
+
}
|
|
28
39
|
//# sourceMappingURL=TraceDetailsView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraceDetailsView.js","sourceRoot":"","sources":["../../src/views/TraceDetailsView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"TraceDetailsView.js","sourceRoot":"","sources":["../../src/views/TraceDetailsView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { h } from '@capillaryjs/capillary-ui';
|
|
2
2
|
import { TraceRecorder } from '../model/TraceRecorder.js';
|
|
3
|
-
import { traceRoots, captureLimitations } from '../model/projection.js';
|
|
3
|
+
import { traceRoots, captureLimitations, eventValueText } from '../model/projection.js';
|
|
4
4
|
import { TraceView } from './shared.js';
|
|
5
5
|
import { FlowGraphView } from './FlowGraphView.js';
|
|
6
6
|
import { CausalTraceView } from './CausalTraceView.js';
|
|
@@ -15,9 +15,9 @@ export class TraceInspector extends TraceView {
|
|
|
15
15
|
TraceTimelineView, TracePlaybackControls, ActivityOverviewView];
|
|
16
16
|
static css = `
|
|
17
17
|
& .trace-workbench { display: grid; grid-template-columns: minmax(12rem, 17rem) minmax(0, 1fr); gap: 1rem; }
|
|
18
|
-
& .trace-stack { display:
|
|
18
|
+
& .trace-stack { display: flex; flex-flow: column nowrap; gap: 1rem; min-width: 0; }
|
|
19
19
|
& .trace-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, .7fr); gap: 1rem; }
|
|
20
|
-
& .trace-roots { display:
|
|
20
|
+
& .trace-roots { display: flex; flex-flow: column nowrap; gap: .4rem; padding: 0; list-style: none; }
|
|
21
21
|
& .trace-roots button { width: 100%; }
|
|
22
22
|
& select { max-width: 18rem; }
|
|
23
23
|
@media (max-width: 900px) { & .trace-workbench, & .trace-columns { grid-template-columns: minmax(0, 1fr); } & .trace-roots { max-height: 12rem; overflow: auto; } }
|
|
@@ -33,8 +33,8 @@ export class TraceInspector extends TraceView {
|
|
|
33
33
|
this.props.playback?.seek(null, 0);
|
|
34
34
|
} }, h('option', { value: '' }, 'All'), ...this.recording.nodes.map((node) => h('option', { key: node.id, value: node.id }, node.label))));
|
|
35
35
|
return this.host({ role: 'region', 'aria-label': 'Capillary DevTools' }, h('div', { className: 'trace-actions' }, h('h2', null, 'Capillary DevTools'), h('span', { role: 'status' }, `${this.recording.capture.active ? 'Recording' : 'Stopped'} · ${this.recording.events.length} events`), recorder ? h('button', { type: 'button', onClick: () => this.recording.capture.active ? recorder.stop() : recorder.start() }, this.recording.capture.active ? 'Stop capture' : 'Start capture') : null, recorder ? h('button', { type: 'button', onClick: () => { recorder.reset(); this.props.selection.selectRoot(null); this.props.playback?.seek(null, 0); } }, 'Clear recording') : null), ...captureLimitations(this.recording).map((message) => h('p', { key: message, className: 'trace-limit' }, message)), h('div', { key: 'workbench', className: 'trace-workbench' }, h('nav', { className: 'trace-pane', 'aria-label': 'Recorded roots' }, h('h3', null, 'Recorded roots'), roots.length ? h('ol', { className: 'trace-roots' }, ...roots.map((root) => h('li', { key: root.id }, h('button', { type: 'button', 'data-root-id': root.id, 'aria-pressed': state.rootId === root.id,
|
|
36
|
-
onClick: () => { this.props.selection.selectRoot(root.id); this.props.playback?.seek(null, 0); } }, `${this.label(root.nodeId)} · ${root.cause}`, h('small', null, `#${root.sequence} · ${root
|
|
37
|
-
: h('p', null, 'Interact with the application to record a trace.')), h('div', { className: 'trace-stack' }, h('div', { className: 'trace-actions' }, filter('source'), filter('target')), h('div', { className: 'trace-
|
|
36
|
+
onClick: () => { this.props.selection.selectRoot(root.id); this.props.playback?.seek(null, 0); } }, `${this.label(root.nodeId)} · ${root.cause}`, h('small', null, `#${root.sequence} · ${eventValueText(root)}`)))))
|
|
37
|
+
: h('p', null, 'Interact with the application to record a trace.')), h('div', { className: 'trace-stack' }, h('div', { className: 'trace-actions' }, filter('source'), filter('target')), h('div', { className: 'trace-columns' }, h('div', { className: 'trace-pane' }, h(FlowGraphView, this.props)), h('div', { className: 'trace-pane' }, h(TraceDetailsView, this.props))), h('div', { className: 'trace-pane' }, h(TracePlaybackControls, this.props)), h('div', { className: 'trace-pane trace-scroll' }, h(CausalTraceView, this.props)), h('details', { className: 'trace-pane' }, h('summary', null, 'Chronological events'), h(ChronologicalTraceView, this.props)), h('details', { className: 'trace-pane' }, h('summary', null, 'Timeline and activity'), h(TraceTimelineView, this.props), h(ActivityOverviewView, this.props)))));
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
//# sourceMappingURL=TraceInspector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraceInspector.js","sourceRoot":"","sources":["../../src/views/TraceInspector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,2BAA2B,CAAA;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAC,UAAU,EAAE,kBAAkB,EAAC,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"TraceInspector.js","sourceRoot":"","sources":["../../src/views/TraceInspector.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capillaryjs/capillary-devtools",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Bounded causal recordings and composable Capillary flow inspection tools.",
|
|
@@ -58,12 +58,12 @@
|
|
|
58
58
|
"prepack": "pnpm typecheck && pnpm test && pnpm build && pnpm test:types:consumer"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
|
-
"@capillaryjs/capillary": "^1.
|
|
62
|
-
"@capillaryjs/capillary-ui": "^1.
|
|
61
|
+
"@capillaryjs/capillary": "^1.4.0",
|
|
62
|
+
"@capillaryjs/capillary-ui": "^1.4.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@capillaryjs/capillary": "^1.
|
|
66
|
-
"@capillaryjs/capillary-ui": "^1.
|
|
65
|
+
"@capillaryjs/capillary": "^1.4.0",
|
|
66
|
+
"@capillaryjs/capillary-ui": "^1.4.0"
|
|
67
67
|
},
|
|
68
68
|
"engines": {
|
|
69
69
|
"node": ">=22",
|
package/styles/structural.css
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
align-items: stretch;
|
|
30
30
|
min-inline-size: 0;
|
|
31
31
|
min-block-size: 0;
|
|
32
|
+
gap: calc(var(--_cap-island-flow, 0) * var(--island-gap, 0px));
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
.cap-layout-horizontal {
|
|
@@ -50,11 +51,55 @@
|
|
|
50
51
|
}
|
|
51
52
|
|
|
52
53
|
.cap-scroll {
|
|
54
|
+
/* Move the clip into the surrounding gutter without moving the
|
|
55
|
+
* content. The inherited allowance is owned by the parent layout,
|
|
56
|
+
* so local gaps and nested scrollports do not add extra spacing. */
|
|
57
|
+
--_cap-scroll-gutter: calc(var(--_cap-island-flow, 0) * var(--_cap-island-gutter, 0px));
|
|
58
|
+
margin: calc(-1 * var(--_cap-scroll-gutter));
|
|
59
|
+
padding: var(--_cap-scroll-gutter);
|
|
53
60
|
overflow: auto;
|
|
54
61
|
min-inline-size: 0;
|
|
55
62
|
min-block-size: 0;
|
|
56
63
|
}
|
|
57
64
|
|
|
65
|
+
/* The mode crosses wrappers; each layout resolves its own public gap.
|
|
66
|
+
* Only the first enabled scope contributes a perimeter inset. */
|
|
67
|
+
.cap-island-layout {
|
|
68
|
+
--_cap-island-flow: 1;
|
|
69
|
+
--_cap-island-margin: 0px;
|
|
70
|
+
--_cap-island-separator-background: transparent;
|
|
71
|
+
box-sizing: border-box;
|
|
72
|
+
padding: var(--_cap-island-outer-inset, var(--island-inset, 0px));
|
|
73
|
+
gap: calc(var(--_cap-island-flow, 0) * var(--island-gap, 0px));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.cap-island-layout > * {
|
|
77
|
+
--_cap-island-outer-inset: 0px;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.cap-layout-horizontal > *,
|
|
81
|
+
.cap-layout-vertical > *,
|
|
82
|
+
.cap-island-layout > * {
|
|
83
|
+
--_cap-island-gutter: calc(var(--_cap-island-flow, 0) * var(--island-gap, 0px) / 2);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.cap-island-layout.cap-scroll {
|
|
87
|
+
padding: calc(var(--_cap-island-outer-inset, var(--island-inset, 0px))
|
|
88
|
+
+ var(--_cap-scroll-gutter));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.cap-island-layout-off {
|
|
92
|
+
--_cap-island-flow: 0;
|
|
93
|
+
--_cap-island-margin: initial;
|
|
94
|
+
--_cap-island-separator-background: initial;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.cap-island-layout-off > *,
|
|
98
|
+
.island > * {
|
|
99
|
+
--_cap-island-outer-inset: initial;
|
|
100
|
+
--_cap-island-gutter: 0px;
|
|
101
|
+
}
|
|
102
|
+
|
|
58
103
|
.colored {
|
|
59
104
|
--colored-base-bg:
|
|
60
105
|
linear-gradient(
|
|
@@ -72,10 +117,12 @@
|
|
|
72
117
|
|
|
73
118
|
.app-footer.island,
|
|
74
119
|
.island {
|
|
120
|
+
--_cap-island-flow: 0;
|
|
121
|
+
--_cap-island-separator-background: initial;
|
|
75
122
|
box-sizing: border-box;
|
|
76
123
|
min-width: 0;
|
|
77
124
|
min-height: 0;
|
|
78
|
-
margin: var(--island-margin);
|
|
125
|
+
margin: var(--_cap-island-margin, var(--island-margin));
|
|
79
126
|
padding: var(--island-padding);
|
|
80
127
|
background: var(--island-background);
|
|
81
128
|
border: var(--island-border);
|
|
@@ -85,13 +132,13 @@
|
|
|
85
132
|
|
|
86
133
|
.cap-fill-horizontal.island,
|
|
87
134
|
.cap-fill-horizontal .island {
|
|
88
|
-
max-width: calc(100% - (2 * var(--island-margin)));
|
|
135
|
+
max-width: calc(100% - (2 * var(--_cap-island-margin, var(--island-margin))));
|
|
89
136
|
overflow-x: auto;
|
|
90
137
|
}
|
|
91
138
|
|
|
92
139
|
.cap-fill-vertical.island,
|
|
93
140
|
.cap-fill-vertical .island {
|
|
94
|
-
max-height: calc(100% - (2 * var(--island-margin)));
|
|
141
|
+
max-height: calc(100% - (2 * var(--_cap-island-margin, var(--island-margin))));
|
|
95
142
|
overflow-y: auto;
|
|
96
143
|
}
|
|
97
144
|
|
|
@@ -308,24 +355,44 @@ cap-traceactivity { display: block; min-width: 0; color: var(--cap-trace-text, #
|
|
|
308
355
|
cap-traceactivity .trace-limit { border-inline-start: 3px solid var(--cap-trace-warning, #ae6500); padding-inline-start: .7rem; }
|
|
309
356
|
|
|
310
357
|
cap-traceinspector .trace-workbench { display: grid; grid-template-columns: minmax(12rem, 17rem) minmax(0, 1fr); gap: 1rem; }
|
|
311
|
-
cap-traceinspector .trace-stack { display:
|
|
358
|
+
cap-traceinspector .trace-stack { display: flex; flex-flow: column nowrap; gap: 1rem; min-width: 0; }
|
|
312
359
|
cap-traceinspector .trace-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, .7fr); gap: 1rem; }
|
|
313
|
-
cap-traceinspector .trace-roots { display:
|
|
360
|
+
cap-traceinspector .trace-roots { display: flex; flex-flow: column nowrap; gap: .4rem; padding: 0; list-style: none; }
|
|
314
361
|
cap-traceinspector .trace-roots button { width: 100%; }
|
|
315
362
|
cap-traceinspector select { max-width: 18rem; }
|
|
316
363
|
@media (max-width: 900px) { cap-traceinspector .trace-workbench, cap-traceinspector .trace-columns { grid-template-columns: minmax(0, 1fr); } cap-traceinspector .trace-roots { max-height: 12rem; overflow: auto; } }
|
|
317
364
|
|
|
318
|
-
cap-traceflow .trace-
|
|
319
|
-
cap-traceflow .trace-
|
|
365
|
+
cap-traceflow .trace-flow-surface { position: relative; min-width: 0; min-height: 0; }
|
|
366
|
+
cap-traceflow .trace-flow-surface > .trace-scroll { height: 100%; min-height: 0; }
|
|
367
|
+
cap-traceflow .trace-canvas { position: relative; }
|
|
368
|
+
cap-traceflow .trace-node { --_node-accent: var(--cap-trace-accent, #005bb8); --_node-radius-start: .45rem; --_node-radius-end: .45rem; --_node-padding-inline: .6rem; box-sizing: border-box; position: absolute; width: 192px; min-height: 0; padding: .5rem var(--_node-padding-inline); z-index: 1; border-inline-start: 4px solid var(--_node-accent); border-start-start-radius: var(--_node-radius-start); border-end-start-radius: var(--_node-radius-start); border-start-end-radius: var(--_node-radius-end); border-end-end-radius: var(--_node-radius-end); line-height: 1.35; }
|
|
369
|
+
cap-traceflow .trace-node[data-kind="component"], cap-traceflow .trace-node[data-kind="binding"] { --_node-accent: var(--cap-trace-kind-ui, #6d28d9); --_node-radius-start: 1rem; --_node-radius-end: 1rem; }
|
|
370
|
+
cap-traceflow .trace-node[data-kind="query"] { --_node-accent: var(--cap-trace-kind-query, #0e7490); --_node-radius-start: 999px; --_node-radius-end: 999px; --_node-padding-inline: 1.05rem; }
|
|
371
|
+
cap-traceflow .trace-node[data-kind="command"] { --_node-accent: var(--cap-trace-kind-command, #b45309); --_node-radius-start: .15rem; --_node-radius-end: .15rem; }
|
|
372
|
+
cap-traceflow .trace-node[data-kind="derived"] { --_node-accent: var(--cap-trace-kind-derived, #0f766e); }
|
|
373
|
+
cap-traceflow .trace-node[data-kind="subscriber"] { --_node-accent: var(--cap-trace-kind-subscriber, #4d7c0f); --_node-radius-start: .35rem; --_node-radius-end: 1rem; }
|
|
374
|
+
cap-traceflow .trace-node[data-kind="interaction"] { --_node-accent: var(--cap-trace-kind-interaction, #be185d); --_node-radius-start: 1rem; --_node-radius-end: .35rem; }
|
|
375
|
+
cap-traceflow .trace-node[data-kind="emitter"] { --_node-radius-start: 1rem; --_node-radius-end: .35rem; }
|
|
376
|
+
cap-traceflow .trace-node[data-kind="external"] { --_node-accent: var(--cap-trace-kind-external, #526477); }
|
|
320
377
|
cap-traceflow .trace-node[data-observed="false"] { border-style: dashed; border-inline-start-color: var(--cap-trace-muted, #526477); }
|
|
321
378
|
cap-traceflow .trace-node[data-observed="true"][data-reached="false"] { border-inline-start-color: var(--cap-trace-line, #cad4de); }
|
|
322
|
-
cap-traceflow .trace-node[aria-current="step"] { box-shadow: 0 0 0 3px var(--
|
|
323
|
-
cap-traceflow .trace-node strong { display: block; overflow-wrap: anywhere; }
|
|
379
|
+
cap-traceflow .trace-node[aria-current="step"] { box-shadow: 0 0 0 3px var(--_node-accent); }
|
|
380
|
+
cap-traceflow .trace-node strong { display: block; overflow-wrap: anywhere; line-height: 1.35; }
|
|
381
|
+
cap-traceflow .trace-node small, cap-traceflow .trace-node span { line-height: 1.35; }
|
|
324
382
|
cap-traceflow .trace-node span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
325
|
-
cap-traceflow .trace-edge { position: absolute; height: 0; border-top: 2px solid var(--cap-trace-accent, #005bb8); transform-origin: left center; }
|
|
326
|
-
cap-traceflow .trace-edge[data-observed="false"] { border-top-style: dashed; border-top-color: var(--cap-trace-muted, #526477); }
|
|
383
|
+
cap-traceflow .trace-edge { position: absolute; height: 0; border-top: 2px solid var(--cap-trace-accent, #005bb8); color: var(--cap-trace-accent, #005bb8); transform-origin: left center; }
|
|
384
|
+
cap-traceflow .trace-edge[data-observed="false"] { border-top-style: dashed; border-top-color: var(--cap-trace-muted, #526477); color: var(--cap-trace-muted, #526477); }
|
|
327
385
|
cap-traceflow .trace-edge[data-observed="true"][data-reached="false"] { border-top-color: var(--cap-trace-line, #cad4de); color: var(--cap-trace-line, #cad4de); }
|
|
328
|
-
cap-traceflow .trace-edge::after { content: ''; position: absolute; right: 0; top: -5px; width: 7px; height: 7px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
|
|
386
|
+
cap-traceflow .trace-edge::after, cap-traceflow .trace-legend-edge::after { content: ''; position: absolute; right: 0; top: -5px; width: 7px; height: 7px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
|
|
387
|
+
cap-traceflow .trace-flow-help { position: absolute; inset-inline-start: .75rem; inset-block-end: 1rem; z-index: 2; box-sizing: border-box; max-inline-size: min(28rem, calc(100% - 1.5rem)); margin: 0; overflow: hidden; border: 1px solid var(--cap-trace-line, #cad4de); border-radius: .5rem; background: var(--cap-trace-surface, #fff); box-shadow: 0 .25rem .75rem rgb(0 0 0 / .18); }
|
|
388
|
+
cap-traceflow .trace-flow-help summary { padding: .4rem .6rem; cursor: pointer; font-weight: 600; user-select: none; }
|
|
389
|
+
cap-traceflow .trace-flow-help[open] summary { border-block-end: 1px solid var(--cap-trace-line, #cad4de); }
|
|
390
|
+
cap-traceflow .trace-flow-help p { margin: .5rem .6rem; }
|
|
391
|
+
cap-traceflow .trace-flow-legend { display: grid; gap: .35rem; margin: .5rem .6rem; padding: 0; list-style: none; }
|
|
392
|
+
cap-traceflow .trace-flow-legend li { display: flex; align-items: center; gap: .65rem; }
|
|
393
|
+
cap-traceflow .trace-legend-edge { position: relative; flex: 0 0 2.75rem; height: 0; border-top: 2px solid var(--cap-trace-accent, #005bb8); color: var(--cap-trace-accent, #005bb8); }
|
|
394
|
+
cap-traceflow .trace-legend-edge[data-observed="false"] { border-top-style: dashed; border-top-color: var(--cap-trace-muted, #526477); color: var(--cap-trace-muted, #526477); }
|
|
395
|
+
cap-traceflow .trace-legend-edge[data-observed="true"][data-reached="false"] { border-top-color: var(--cap-trace-line, #cad4de); color: var(--cap-trace-line, #cad4de); }
|
|
329
396
|
cap-traceflow .trace-leaves { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; }
|
|
330
397
|
|
|
331
398
|
cap-causaltrace ol { list-style: none; padding: 0; margin: 0; } cap-causaltrace li { margin: .25rem 0; } cap-causaltrace summary { cursor: pointer; } cap-causaltrace button { max-width: 100%; overflow-wrap: anywhere; }
|