@launchsecure/launch-kit 0.0.27 → 0.0.28
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/dist/beacon/beacon.mjs +1003 -440
- package/dist/beacon/beacon.mjs.map +1 -1
- package/dist/beacon/beacon.umd.js +45 -24
- package/dist/beacon/beacon.umd.js.map +1 -1
- package/dist/beacon/types/capture/events.d.ts +20 -0
- package/dist/beacon/types/capture/events.d.ts.map +1 -0
- package/dist/beacon/types/element.d.ts +1 -0
- package/dist/beacon/types/element.d.ts.map +1 -1
- package/dist/beacon/types/index.d.ts +2 -1
- package/dist/beacon/types/index.d.ts.map +1 -1
- package/dist/beacon/types/monitor/dom.d.ts +13 -0
- package/dist/beacon/types/monitor/dom.d.ts.map +1 -0
- package/dist/beacon/types/monitor/index.d.ts +19 -0
- package/dist/beacon/types/monitor/index.d.ts.map +1 -0
- package/dist/beacon/types/monitor/network.d.ts +12 -0
- package/dist/beacon/types/monitor/network.d.ts.map +1 -0
- package/dist/beacon/types/monitor/transport.d.ts +27 -0
- package/dist/beacon/types/monitor/transport.d.ts.map +1 -0
- package/dist/beacon/types/monitor/types.d.ts +117 -0
- package/dist/beacon/types/monitor/types.d.ts.map +1 -0
- package/dist/beacon/types/types.d.ts +10 -0
- package/dist/beacon/types/types.d.ts.map +1 -1
- package/dist/beacon/types/ui/drawer.d.ts +3 -1
- package/dist/beacon/types/ui/drawer.d.ts.map +1 -1
- package/dist/beacon/types/ui/monitor-panel.d.ts +19 -0
- package/dist/beacon/types/ui/monitor-panel.d.ts.map +1 -0
- package/dist/server/beacon-monitor-entry.js +353 -0
- package/dist/server/cli.js +50 -2
- package/dist/server/council-entry.js +0 -0
- package/dist/server/course-entry.js +246 -0
- package/dist/server/fb-wizard.js +0 -0
- package/dist/server/init-entry.js +394 -64
- package/dist/server/orbit-entry.js +187 -24
- package/package.json +24 -23
- package/scaffolds/ls-marketplace/.claude-plugin/marketplace.json +15 -0
- package/scaffolds/ls-marketplace/plugins/ls/.claude-plugin/plugin.json +28 -0
- package/scaffolds/ls-marketplace/plugins/ls/commands/activate-beacon.md +216 -0
- package/scaffolds/ls-marketplace/plugins/ls/commands/beacon-array.md +92 -0
- package/scaffolds/ls-marketplace/plugins/ls/commands/beacon-clear.md +68 -0
- package/scaffolds/ls-marketplace/plugins/ls/commands/beacon-pulse.md +80 -0
- package/scaffolds/ls-marketplace/plugins/ls/commands/beacon-scan.md +62 -0
- package/scaffolds/ls-marketplace/plugins/ls/commands/show-mcp-status.md +109 -0
- package/scaffolds/ls-marketplace/plugins/ls/commands/standup.md +177 -0
- package/scaffolds/migrate-safety/scripts/migrate-with-backup.sh +0 -0
- package/scaffolds/recall-hook/scripts/ensure-recall.sh +69 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CapturedEvent } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Attach `error` and `unhandledrejection` listeners on `window`. Idempotent — safe
|
|
4
|
+
* to call repeatedly (e.g., HMR reloads). No-op in non-browser environments.
|
|
5
|
+
*
|
|
6
|
+
* Called at module load from index.ts so we start capturing before the beacon
|
|
7
|
+
* element mounts. Errors that fire during initial page hydration are exactly
|
|
8
|
+
* the ones users are most likely to report and least able to describe.
|
|
9
|
+
*/
|
|
10
|
+
export declare function installEventCapture(): void;
|
|
11
|
+
/** Snapshot of the captured events buffer. Returns a copy; callers can mutate it. */
|
|
12
|
+
export declare function getCapturedEvents(): CapturedEvent[];
|
|
13
|
+
/**
|
|
14
|
+
* Register a callback that fires every time a new event is added to the buffer.
|
|
15
|
+
* Returns an unsubscribe function. Used by the drawer to live-update its chip
|
|
16
|
+
* count so users see errors arrive in real-time, regardless of whether the
|
|
17
|
+
* widget was opened before or after the error fired.
|
|
18
|
+
*/
|
|
19
|
+
export declare function subscribeToEvents(fn: () => void): () => void;
|
|
20
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/beacon-client/capture/events.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAuE9C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CA0C1C;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAG5D"}
|
|
@@ -12,6 +12,7 @@ export declare class LaunchKitBeacon extends HTMLElement {
|
|
|
12
12
|
private severity;
|
|
13
13
|
private documentClickBlocker?;
|
|
14
14
|
private submitSucceeded;
|
|
15
|
+
private eventsUnsubscribe?;
|
|
15
16
|
/** Public — wrappers can set `widget.config = {...}` for dynamic endpoint/headers/context. */
|
|
16
17
|
set config(value: BeaconConfig);
|
|
17
18
|
get config(): BeaconConfig | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../src/beacon-client/element.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAiD,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../src/beacon-client/element.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAiD,MAAM,SAAS,CAAC;AAiD3F,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,MAAM,KAAK,kBAAkB,IAAgC,MAAM,EAAE,CAAG;IAExE,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAkB;IAEjC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,IAAI,CAAa;IAGzB,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,QAAQ,CAAmB;IAGnC,OAAO,CAAC,oBAAoB,CAAC,CAA0B;IAIvD,OAAO,CAAC,eAAe,CAAS;IAGhC,OAAO,CAAC,iBAAiB,CAAC,CAAa;IAEvC,8FAA8F;IAC9F,IAAI,MAAM,CAAC,KAAK,EAAE,YAAY,EAE7B;IACD,IAAI,MAAM,IAAI,YAAY,GAAG,IAAI,CAIhC;IAED,iBAAiB;IA8DjB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgBvF,IAAI;IAqBJ,KAAK;IAUL,oBAAoB;IAad,cAAc;YAQN,aAAa;IAsF3B,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,SAAS;YAYH,YAAY;IAqG1B;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAMtB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;CAKxB;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAsB,GAAG,IAAI,CAKhE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defineBeacon, LaunchKitBeacon } from './element';
|
|
2
2
|
export { LaunchKitBeacon, defineBeacon };
|
|
3
|
-
export type { BeaconConfig, FeedbackPayload, Pin, Metadata, Severity, HeaderProvider, ContextProvider, SubmitResponse, } from './types';
|
|
3
|
+
export type { BeaconConfig, CapturedEvent, FeedbackPayload, Pin, Metadata, Severity, HeaderProvider, ContextProvider, SubmitResponse, } from './types';
|
|
4
|
+
export type { MonitorConfig, MonitorEvent, MonitorEventKind, MonitorBatch, MonitorPublicAPI, MonitorErrorEvent, MonitorNetworkEvent, MonitorClickEvent, MonitorRouteEvent, MonitorDialogEvent, MonitorProbeEvent, } from './monitor/types';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/beacon-client/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/beacon-client/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI1D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;AACzC,YAAY,EACV,YAAY,EACZ,aAAa,EACb,eAAe,EACf,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { MonitorClickEvent, MonitorDialogEvent, MonitorRouteEvent } from './types';
|
|
2
|
+
type Emit<E> = (event: Omit<E, 'ts' | 'sessionId' | 'seq'>) => void;
|
|
3
|
+
interface CaptureCallbacks {
|
|
4
|
+
emitClick: Emit<MonitorClickEvent>;
|
|
5
|
+
emitRoute: Emit<MonitorRouteEvent>;
|
|
6
|
+
emitDialog: Emit<MonitorDialogEvent>;
|
|
7
|
+
}
|
|
8
|
+
interface Installation {
|
|
9
|
+
uninstall(): void;
|
|
10
|
+
}
|
|
11
|
+
export declare function installDomCapture(cb: CaptureCallbacks): Installation;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../../src/beacon-client/monitor/dom.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAsB,kBAAkB,EAAsB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEhI,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,WAAW,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC;AAEpE,UAAU,gBAAgB;IACxB,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnC,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;CACtC;AAED,UAAU,YAAY;IACpB,SAAS,IAAI,IAAI,CAAC;CACnB;AAqOD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,gBAAgB,GAAG,YAAY,CAWpE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { MonitorPublicAPI } from './types';
|
|
2
|
+
type Listener = (active: boolean, url: string | null) => void;
|
|
3
|
+
/** Subscribe to active-state changes. Used by the panel UI to update its display. */
|
|
4
|
+
export declare function subscribeToMonitor(fn: Listener): () => void;
|
|
5
|
+
export declare const monitor: MonitorPublicAPI;
|
|
6
|
+
/**
|
|
7
|
+
* Resume a persisted session if one exists in sessionStorage. Called at module
|
|
8
|
+
* load. Without this, a page reload during active monitoring silently drops
|
|
9
|
+
* capture even though the URL is still configured.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resumeIfPersisted(): void;
|
|
12
|
+
/**
|
|
13
|
+
* Install the public API on window. Idempotent. Called from index.ts at module
|
|
14
|
+
* load so consumers can call `window.__lsBeacon.start(...)` from devtools or
|
|
15
|
+
* a bookmarklet without waiting for the element to mount.
|
|
16
|
+
*/
|
|
17
|
+
export declare function installPublicAPI(): void;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/beacon-client/monitor/index.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAgBjB,KAAK,QAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;AAkQ9D,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,IAAI,CAG3D;AAED,eAAO,MAAM,OAAO,EAAE,gBAMrB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CASxC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAKvC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MonitorNetworkEvent } from './types';
|
|
2
|
+
type Emit = (event: Omit<MonitorNetworkEvent, 'ts' | 'sessionId' | 'seq'>) => void;
|
|
3
|
+
interface InstallOptions {
|
|
4
|
+
emit: Emit;
|
|
5
|
+
verbose: boolean;
|
|
6
|
+
}
|
|
7
|
+
interface Installation {
|
|
8
|
+
uninstall(): void;
|
|
9
|
+
}
|
|
10
|
+
export declare function installNetworkCapture(opts: InstallOptions): Installation;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=network.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../src/beacon-client/monitor/network.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,GAAG,WAAW,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC;AAEnF,UAAU,cAAc;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,YAAY;IACpB,SAAS,IAAI,IAAI,CAAC;CACnB;AA6ID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,GAAG,YAAY,CASxE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MonitorEvent } from './types';
|
|
2
|
+
export interface TransportOptions {
|
|
3
|
+
url: string;
|
|
4
|
+
sessionId: string;
|
|
5
|
+
/** Called when a flush attempt failed (network error or non-2xx). For UI badge. */
|
|
6
|
+
onError?: (err: Error) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare class MonitorTransport {
|
|
9
|
+
private url;
|
|
10
|
+
private sessionId;
|
|
11
|
+
private onError?;
|
|
12
|
+
private buffer;
|
|
13
|
+
private inflight;
|
|
14
|
+
private timer;
|
|
15
|
+
private pagehideHandler?;
|
|
16
|
+
private destroyed;
|
|
17
|
+
constructor(opts: TransportOptions);
|
|
18
|
+
private handleVisibilityChange;
|
|
19
|
+
enqueue(event: MonitorEvent): void;
|
|
20
|
+
/** Async flush via fetch. No-op when in-flight or empty. */
|
|
21
|
+
flush(): Promise<void>;
|
|
22
|
+
/** Synchronous flush via sendBeacon, used on pagehide. */
|
|
23
|
+
private flushSync;
|
|
24
|
+
destroy(): void;
|
|
25
|
+
private makeBatch;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../src/beacon-client/monitor/transport.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,SAAS,CAAC;AAM1D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAChC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAuB;IACvC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,gBAAgB;IAelC,OAAO,CAAC,sBAAsB,CAE5B;IAEF,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAUlC,4DAA4D;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5B,0DAA0D;IAC1D,OAAO,CAAC,SAAS;IAoBjB,OAAO,IAAI,IAAI;IAUf,OAAO,CAAC,SAAS;CAgBlB"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
export type MonitorEventKind = 'error' | 'unhandledrejection' | 'fetch' | 'xhr' | 'click' | 'mousedown' | 'route' | 'dialog' | 'probe';
|
|
2
|
+
export interface MonitorEventBase {
|
|
3
|
+
/** Epoch ms when the event was captured. */
|
|
4
|
+
ts: number;
|
|
5
|
+
/** Per-tab session id, regenerated whenever start() is called fresh. */
|
|
6
|
+
sessionId: string;
|
|
7
|
+
/** Monotonic counter within the session (helps reorder if batches arrive out of order). */
|
|
8
|
+
seq: number;
|
|
9
|
+
}
|
|
10
|
+
export interface MonitorErrorEvent extends MonitorEventBase {
|
|
11
|
+
kind: 'error' | 'unhandledrejection';
|
|
12
|
+
message: string;
|
|
13
|
+
stack?: string;
|
|
14
|
+
source?: string;
|
|
15
|
+
line?: number;
|
|
16
|
+
col?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface MonitorNetworkEvent extends MonitorEventBase {
|
|
19
|
+
kind: 'fetch' | 'xhr';
|
|
20
|
+
url: string;
|
|
21
|
+
method: string;
|
|
22
|
+
/** 0 when the request threw before a response was received. */
|
|
23
|
+
status: number;
|
|
24
|
+
durationMs: number;
|
|
25
|
+
/** True if status >= 400 OR the request threw. */
|
|
26
|
+
failed: boolean;
|
|
27
|
+
/** Error message when the request threw. */
|
|
28
|
+
error?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface MonitorOverlayInfo {
|
|
31
|
+
tag: string;
|
|
32
|
+
zIndex: number;
|
|
33
|
+
pointerEvents: string;
|
|
34
|
+
classes: string;
|
|
35
|
+
}
|
|
36
|
+
export interface MonitorClickTarget {
|
|
37
|
+
tag: string;
|
|
38
|
+
id: string | null;
|
|
39
|
+
classes: string[];
|
|
40
|
+
role: string | null;
|
|
41
|
+
selector: string;
|
|
42
|
+
}
|
|
43
|
+
export interface MonitorClickEvent extends MonitorEventBase {
|
|
44
|
+
kind: 'click' | 'mousedown';
|
|
45
|
+
target: MonitorClickTarget;
|
|
46
|
+
/** Whether the actual hit-tested element matched the original target. */
|
|
47
|
+
hitMatchesTarget: boolean;
|
|
48
|
+
hitTarget?: MonitorClickTarget;
|
|
49
|
+
coords: {
|
|
50
|
+
x: number;
|
|
51
|
+
y: number;
|
|
52
|
+
};
|
|
53
|
+
/** Count of currently-open Radix-style dialogs in the document. */
|
|
54
|
+
openDialogs: number;
|
|
55
|
+
/** Resolved CSS `pointer-events` on <body>. Often the culprit when clicks vanish. */
|
|
56
|
+
bodyPointerEvents: string;
|
|
57
|
+
/** Up to 5 fixed/sticky overlays sitting at the click coords, sorted by z-index desc. */
|
|
58
|
+
overlaysAtPoint?: MonitorOverlayInfo[];
|
|
59
|
+
}
|
|
60
|
+
export interface MonitorRouteEvent extends MonitorEventBase {
|
|
61
|
+
kind: 'route';
|
|
62
|
+
from: string;
|
|
63
|
+
to: string;
|
|
64
|
+
via: 'pushState' | 'replaceState' | 'popstate' | 'hashchange';
|
|
65
|
+
}
|
|
66
|
+
export interface MonitorDialogEvent extends MonitorEventBase {
|
|
67
|
+
kind: 'dialog';
|
|
68
|
+
action: 'mount' | 'unmount' | 'state';
|
|
69
|
+
selector: string;
|
|
70
|
+
state?: string | null;
|
|
71
|
+
/** Truncated outerHTML (≤1KB) for mount events — gives the reviewer a hook. */
|
|
72
|
+
outerHTML?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface MonitorProbeEvent extends MonitorEventBase {
|
|
75
|
+
kind: 'probe';
|
|
76
|
+
/** Free-form label set by the caller (e.g. 'overlay-at-click', 'auth-state'). */
|
|
77
|
+
label: string;
|
|
78
|
+
/** Arbitrary JSON-serialisable payload. Serialised defensively; cyclic refs become "[cyclic]". */
|
|
79
|
+
data: unknown;
|
|
80
|
+
}
|
|
81
|
+
export type MonitorEvent = MonitorErrorEvent | MonitorNetworkEvent | MonitorClickEvent | MonitorRouteEvent | MonitorDialogEvent | MonitorProbeEvent;
|
|
82
|
+
export interface MonitorBatch {
|
|
83
|
+
sessionId: string;
|
|
84
|
+
events: MonitorEvent[];
|
|
85
|
+
meta: {
|
|
86
|
+
url: string;
|
|
87
|
+
userAgent: string;
|
|
88
|
+
viewport: {
|
|
89
|
+
w: number;
|
|
90
|
+
h: number;
|
|
91
|
+
dpr: number;
|
|
92
|
+
};
|
|
93
|
+
/** Wire format version. Bump when MonitorEvent shape changes. */
|
|
94
|
+
v: 1;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
export interface MonitorConfig {
|
|
98
|
+
/** Endpoint to POST batches to. Cleared on stop(). */
|
|
99
|
+
url: string;
|
|
100
|
+
/** If true, capture successful network calls + console.log/info in addition to failures. */
|
|
101
|
+
verbose?: boolean;
|
|
102
|
+
/** Hard session cap. Auto-stops monitoring at this point. Default 30 minutes. */
|
|
103
|
+
maxSessionMs?: number;
|
|
104
|
+
}
|
|
105
|
+
export interface MonitorPublicAPI {
|
|
106
|
+
/** Start monitoring. Replaces any active session. */
|
|
107
|
+
start(config: MonitorConfig): void;
|
|
108
|
+
/** Stop monitoring. Idempotent. */
|
|
109
|
+
stop(): void;
|
|
110
|
+
/** Emit a custom event into the monitor stream. No-op when monitoring is off. */
|
|
111
|
+
probe(label: string, data?: unknown): void;
|
|
112
|
+
/** Whether monitoring is currently active. */
|
|
113
|
+
isActive(): boolean;
|
|
114
|
+
/** Current configured URL, or null when inactive. */
|
|
115
|
+
currentUrl(): string | null;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/beacon-client/monitor/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,15 @@ export interface Pin {
|
|
|
20
20
|
name?: string;
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
+
export interface CapturedEvent {
|
|
24
|
+
ts: number;
|
|
25
|
+
kind: 'error' | 'unhandledrejection';
|
|
26
|
+
message: string;
|
|
27
|
+
stack?: string;
|
|
28
|
+
source?: string;
|
|
29
|
+
line?: number;
|
|
30
|
+
col?: number;
|
|
31
|
+
}
|
|
23
32
|
export interface Metadata {
|
|
24
33
|
url: string;
|
|
25
34
|
referrer?: string;
|
|
@@ -52,6 +61,7 @@ export interface FeedbackPayload {
|
|
|
52
61
|
};
|
|
53
62
|
metadata: Metadata;
|
|
54
63
|
pins: Pin[];
|
|
64
|
+
events?: CapturedEvent[];
|
|
55
65
|
context?: Record<string, unknown>;
|
|
56
66
|
}
|
|
57
67
|
export type HeaderProvider = Record<string, string> | (() => Record<string, string>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/beacon-client/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/beacon-client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Pin, Severity } from '../types';
|
|
1
|
+
import type { CapturedEvent, Pin, Severity } from '../types';
|
|
2
2
|
export interface DrawerCallbacks {
|
|
3
3
|
onClose: () => void;
|
|
4
4
|
onAnnotate: () => void;
|
|
@@ -19,6 +19,8 @@ export declare class DrawerView {
|
|
|
19
19
|
close(): void;
|
|
20
20
|
minimize(): void;
|
|
21
21
|
setPins(pins: Pin[], annotatedScreenshot?: string): void;
|
|
22
|
+
setEvents(events: CapturedEvent[]): void;
|
|
23
|
+
private updateEventsChip;
|
|
22
24
|
getAnnotatedScreenshot(): string | undefined;
|
|
23
25
|
setAnnotatedScreenshot(value: string | undefined): void;
|
|
24
26
|
setSubmitting(submitting: boolean): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../../src/beacon-client/ui/drawer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../../src/beacon-client/ui/drawer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAI7D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,gBAAgB,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC3C;AAED,qBAAa,UAAU;IACrB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,KAAK,CASX;gBAEU,UAAU,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,eAAe;IAiB9D,IAAI;IAKJ,KAAK;IAIL,QAAQ;IAKR,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,mBAAmB,CAAC,EAAE,MAAM;IAWjD,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE;IAKjC,OAAO,CAAC,gBAAgB;IAgCxB,sBAAsB,IAAI,MAAM,GAAG,SAAS;IAI5C,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAKhD,aAAa,CAAC,UAAU,EAAE,OAAO;IAKjC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,EAAE,GAAG,OAAO,GAAG,SAAc;IAM7D,KAAK;IAcL,cAAc;IACd,WAAW;IAEX,OAAO,CAAC,MAAM;CAgHf"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface MonitorPanelOptions {
|
|
2
|
+
/** Initial URL to populate the input. Usually from the host element's monitor-url attribute. */
|
|
3
|
+
initialUrl?: string | null;
|
|
4
|
+
/**
|
|
5
|
+
* Whether the host has explicitly opted into the debug panel by setting
|
|
6
|
+
* monitor-url. When true, the panel shows even without ?ls-debug=1.
|
|
7
|
+
*/
|
|
8
|
+
hasMonitorUrlAttr: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface MonitorPanelHandle {
|
|
11
|
+
/** The root element. Caller appends to drawer.root. */
|
|
12
|
+
root: HTMLDivElement;
|
|
13
|
+
/** Re-evaluate gating + redraw. Call when monitor-url attribute changes. */
|
|
14
|
+
update(opts: MonitorPanelOptions): void;
|
|
15
|
+
/** Clean up subscriptions. Call from element.disconnectedCallback. */
|
|
16
|
+
destroy(): void;
|
|
17
|
+
}
|
|
18
|
+
export declare function createMonitorPanel(opts: MonitorPanelOptions): MonitorPanelHandle;
|
|
19
|
+
//# sourceMappingURL=monitor-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monitor-panel.d.ts","sourceRoot":"","sources":["../../../../src/beacon-client/ui/monitor-panel.ts"],"names":[],"mappings":"AAkHA,MAAM,WAAW,mBAAmB;IAClC,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,IAAI,EAAE,cAAc,CAAC;IACrB,4EAA4E;IAC5E,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACxC,sEAAsE;IACtE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,kBAAkB,CAwGhF"}
|