@flemo/devtools 0.6.0 → 0.8.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/README.md +7 -5
- package/dist/__tests__/swipeProbe.test.d.ts +1 -0
- package/dist/hud.d.ts +14 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.mjs +308 -229
- package/dist/noop.d.ts +5 -1
- package/dist/noop.mjs +7 -9
- package/dist/panel/styles.d.ts +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/react.mjs +394 -372
- package/dist/surface.d.ts +0 -8
- package/dist/swipeProbe.d.ts +52 -0
- package/package.json +6 -6
package/dist/noop.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DevtoolsHudHandle, DevtoolsHudOptions } from './hud';
|
|
2
2
|
import { DevtoolsPanelHandle, DevtoolsPanelOptions } from './panel';
|
|
3
|
+
import { SwipeProbeHandle, SwipeProbeOptions } from './swipeProbe';
|
|
3
4
|
import { FlightRecorderHandle, FlightRecorderOptions } from './types';
|
|
4
5
|
export * from './anomalies';
|
|
5
6
|
export * from './blindSpots';
|
|
@@ -15,8 +16,11 @@ export declare const REPORT_SCHEMA_VERSION = "3";
|
|
|
15
16
|
export declare const attachFlightRecorder: (_options?: FlightRecorderOptions) => FlightRecorderHandle;
|
|
16
17
|
export declare const attachDevtoolsPanel: (_options?: DevtoolsPanelOptions) => DevtoolsPanelHandle;
|
|
17
18
|
export declare const attachDevtoolsHud: (_options?: DevtoolsHudOptions) => DevtoolsHudHandle;
|
|
19
|
+
export declare const SWIPE_PROBE_MS = 1200;
|
|
20
|
+
export declare const attachSwipeProbe: (_options?: SwipeProbeOptions) => SwipeProbeHandle;
|
|
18
21
|
export type { FlemoGlobal } from './recorder';
|
|
19
|
-
export type { DevtoolsHudHandle, DevtoolsHudOptions } from './hud';
|
|
22
|
+
export type { DevtoolsHudHandle, DevtoolsHudOptions, DevtoolsHudPosition } from './hud';
|
|
20
23
|
export type { DevtoolsPanelHandle, DevtoolsPanelOptions } from './panel';
|
|
24
|
+
export type { SwipeProbeHandle, SwipeProbeOptions, SwipeReleaseAudit, SwipeSample } from './swipeProbe';
|
|
21
25
|
export type { DriverEvidence } from './frameProbe';
|
|
22
26
|
export type { BucketSummary, EnvironmentFingerprint, FlemoReport, FlightDriver, FlightHolds, FlightKind, FlightParticipants, FlightRecord, FlightRecorderHandle, FlightRecorderOptions, FlightTimestamp, FramePhaseStats, FrameSampleStats, ImageActivity, InputEvidence, LandingAudit, LongTaskSpan, MorphActivity, MotionProgress, ObservationCapabilities, OverridesSection, Precondition, PreconditionStatus, PreviousSession, TripwireHit, UaBrand } from './types';
|
package/dist/noop.mjs
CHANGED
|
@@ -149,13 +149,6 @@ var e = 30, t = 1e4, n = 50, r = 120, i = 100, a = 48, o = (e) => {
|
|
|
149
149
|
"Judge with real input (a finger, a mouse). Synthetic dispatch — evaluate().click() and friends — never fires pointerdown, so it bypasses the swipe/gesture machinery that a real navigation goes through.",
|
|
150
150
|
"Establish the viewing configuration before believing any verdict: device emulation off, which physical display, its refresh rate and HiDPI scaling, Low Power Mode. Ask for a photo of the setup if it is not certain."
|
|
151
151
|
], b = "flemo:devtools-panel-height", x = [{
|
|
152
|
-
key: "flemo:devtools",
|
|
153
|
-
storage: "session",
|
|
154
|
-
kind: "opt-in-diagnostic",
|
|
155
|
-
values: "\"on\" / \"off\"",
|
|
156
|
-
fallback: "off",
|
|
157
|
-
effect: "arms this flight recorder in the playground (?devtools=on)"
|
|
158
|
-
}, {
|
|
159
152
|
key: b,
|
|
160
153
|
storage: "session",
|
|
161
154
|
kind: "production-state",
|
|
@@ -163,6 +156,11 @@ var e = 30, t = 1e4, n = 50, r = 120, i = 100, a = 48, o = (e) => {
|
|
|
163
156
|
fallback: "(the panel's default height)",
|
|
164
157
|
effect: "the drawer height this panel was last dragged to"
|
|
165
158
|
}], S = [], C = [...S, ...x], w = [
|
|
159
|
+
{
|
|
160
|
+
key: "flemo:devtools",
|
|
161
|
+
storage: "session",
|
|
162
|
+
retiredWith: "the playground's opt-in. `<FlemoDevtools />` mounts unconditionally and a production build resolves it to the inert entry, so there is nothing to arm (2026-09-07)"
|
|
163
|
+
},
|
|
166
164
|
{
|
|
167
165
|
key: "flemo:sixty",
|
|
168
166
|
storage: "session",
|
|
@@ -637,6 +635,6 @@ var e = 30, t = 1e4, n = 50, r = 120, i = 100, a = 48, o = (e) => {
|
|
|
637
635
|
detach: Q,
|
|
638
636
|
report: ce,
|
|
639
637
|
mark: () => null
|
|
640
|
-
}), $ = (e) => ({ detach: Q }), ue = (e) => ({ detach: Q });
|
|
638
|
+
}), $ = (e) => ({ detach: Q }), ue = (e) => ({ detach: Q }), de = 1200, fe = (e) => ({ detach: Q });
|
|
641
639
|
//#endregion
|
|
642
|
-
export { c as BLIND_SPOTS, S as CORE_FLAGS, x as DEVTOOLS_OWNED_FLAGS, C as FLAG_REGISTRY, y as JUDGING_PROTOCOL, e as LONG_GAP_MS, j as MAX_PERSISTED_BYTES, A as MAX_PERSISTED_FLIGHTS, i as MID_FLIGHT_TASK_MS, n as OPENING_WINDOW_LEAD_MS, r as OPENING_WINDOW_TAIL_MS, b as PANEL_HEIGHT_KEY, se as REPORT_SCHEMA_VERSION, w as RETIRED_FLAGS, T as RETIRED_MARKER, a as STALL_MS, t as STUCK_STATUS_MS, k as TRACE_KEY, ue as attachDevtoolsHud, $ as attachDevtoolsPanel, le as attachFlightRecorder, v as captureEnvironment, Y as classifyDriver, P as clearTrace, J as computeFrameStats, q as computePhaseStats, o as deriveFlightAnomalies, O as deriveOverrideWarnings, G as derivePreconditions, s as deriveReportAnomalies, oe as deriveVerdict, f as detectEngine, g as developmentHints, p as isEmulationSuspected, X as kindFromStatus, F as loadTrace, ie as parseTranslateX, m as sampleRafCadence, N as saveTrace, ne as snapshotOverrides, u as summariseBuckets };
|
|
640
|
+
export { c as BLIND_SPOTS, S as CORE_FLAGS, x as DEVTOOLS_OWNED_FLAGS, C as FLAG_REGISTRY, y as JUDGING_PROTOCOL, e as LONG_GAP_MS, j as MAX_PERSISTED_BYTES, A as MAX_PERSISTED_FLIGHTS, i as MID_FLIGHT_TASK_MS, n as OPENING_WINDOW_LEAD_MS, r as OPENING_WINDOW_TAIL_MS, b as PANEL_HEIGHT_KEY, se as REPORT_SCHEMA_VERSION, w as RETIRED_FLAGS, T as RETIRED_MARKER, a as STALL_MS, t as STUCK_STATUS_MS, de as SWIPE_PROBE_MS, k as TRACE_KEY, ue as attachDevtoolsHud, $ as attachDevtoolsPanel, le as attachFlightRecorder, fe as attachSwipeProbe, v as captureEnvironment, Y as classifyDriver, P as clearTrace, J as computeFrameStats, q as computePhaseStats, o as deriveFlightAnomalies, O as deriveOverrideWarnings, G as derivePreconditions, s as deriveReportAnomalies, oe as deriveVerdict, f as detectEngine, g as developmentHints, p as isEmulationSuspected, X as kindFromStatus, F as loadTrace, ie as parseTranslateX, m as sampleRafCadence, N as saveTrace, ne as snapshotOverrides, u as summariseBuckets };
|
package/dist/panel/styles.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PANEL_CSS = "\n
|
|
1
|
+
export declare const PANEL_CSS = "\n.toggle {\n position: fixed;\n bottom: 12px;\n z-index: 2147483000;\n display: flex;\n align-items: center;\n gap: 6px;\n margin: 0;\n padding: 6px 10px;\n border: 1px solid var(--line);\n border-radius: 999px;\n background: var(--bg);\n color: var(--fg);\n font: inherit;\n cursor: pointer;\n}\n.toggle:hover { background: var(--bg-soft); }\n.toggle[data-corner=\"bottom-right\"] { right: 12px; }\n.toggle[data-corner=\"bottom-left\"] { left: 12px; }\n.mark { font-weight: 700; letter-spacing: 0.04em; }\n.count {\n padding: 0 6px;\n border-radius: 999px;\n background: var(--bg-soft);\n color: var(--fg-dim);\n}\n.dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: var(--bad);\n}\n.dot[hidden] { display: none; }\n.panel {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 2147482999;\n display: flex;\n flex-direction: column;\n max-width: 100%;\n border-top: 1px solid var(--line);\n background: var(--bg);\n overflow: hidden;\n}\n.panel[hidden] { display: none; }\n.grip {\n flex: 0 0 6px;\n height: 6px;\n background: var(--line);\n cursor: ns-resize;\n touch-action: none;\n}\n.head {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n padding: 8px 10px;\n border-bottom: 1px solid var(--line);\n}\n.env { color: var(--fg-dim); }\n.spacer { flex: 1 1 auto; }\n.act {\n padding: 4px 8px;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: var(--bg-soft);\n color: var(--fg);\n font: inherit;\n cursor: pointer;\n}\n.chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n flex: 1 1 100%;\n}\n.chips:empty { display: none; }\n.chip {\n padding: 2px 8px;\n border: 1px solid var(--line);\n border-radius: 999px;\n background: var(--bg-soft);\n color: var(--fg-dim);\n max-width: 100%;\n overflow-wrap: anywhere;\n}\n/* The verdict reads as prose, not as a tag: it is a sentence about the whole\n session and it is the first thing anybody should read. */\n.chip.lead {\n border-color: var(--fg);\n color: var(--fg);\n white-space: normal;\n max-width: 100%;\n line-height: 1.5;\n}\n.chip.warn { border-color: var(--warn); color: var(--warn); }\n.chip.bad { border-color: var(--bad); color: var(--bad); }\n.body {\n display: flex;\n flex: 1 1 auto;\n min-height: 0;\n}\n.list {\n flex: 0 0 40%;\n max-width: 340px;\n min-width: 180px;\n overflow: auto;\n border-right: 1px solid var(--line);\n}\n.row {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n padding: 6px 10px;\n border: 0;\n border-bottom: 1px solid var(--line);\n background: none;\n color: var(--fg);\n font: inherit;\n text-align: left;\n cursor: pointer;\n}\n.row[aria-selected=\"true\"] { background: var(--bg-soft); }\n.row .kind { font-weight: 700; }\n.row .driver { color: var(--accent); }\n.row .dur, .row .screens { color: var(--fg-dim); }\n.row .n {\n margin-left: auto;\n padding: 0 6px;\n border-radius: 999px;\n background: var(--bg-soft);\n color: var(--fg-dim);\n}\n.row .n.bad { background: var(--bad); color: #fff; }\n.detail { flex: 1 1 auto; overflow: auto; padding: 8px 10px; }\n.section { margin: 0 0 10px; }\n.section > h2 {\n margin: 0 0 4px;\n font: inherit;\n font-weight: 700;\n color: var(--fg-dim);\n text-transform: uppercase;\n letter-spacing: 0.06em;\n}\n.kv { display: flex; gap: 8px; }\n.kv > .k { flex: 0 0 34%; max-width: 180px; color: var(--fg-dim); }\n.kv > .v { flex: 1 1 auto; overflow-wrap: anywhere; }\n/* A value that IS the finding \u2014 a stall, a re-asserted hold, an orphan. */\n.kv > .v.bad { color: var(--bad); }\n.li { overflow-wrap: anywhere; }\n.li.bad { color: var(--bad); }\n.dim { color: var(--fg-dim); }\n.spark { display: block; width: 100%; height: 28px; }\n.foot { border-top: 1px solid var(--line); padding: 6px 10px; color: var(--fg-dim); }\n.foot summary { cursor: pointer; }\n.foot .li { margin-top: 4px; }\n";
|
package/dist/react.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface FlemoDevtoolsProps {
|
|
|
11
11
|
hud?: boolean;
|
|
12
12
|
/** Mount the drawer. Default true. */
|
|
13
13
|
panel?: boolean;
|
|
14
|
-
/** Where the readout sits. Default "
|
|
14
|
+
/** Where the readout sits. Default "bottom-right", opposite the drawer's toggle. */
|
|
15
15
|
hudPosition?: DevtoolsHudOptions["position"];
|
|
16
16
|
/** Which corner the drawer's toggle sits in. Default "bottom-left". */
|
|
17
17
|
panelPosition?: DevtoolsPanelOptions["position"];
|