True when the server requires literal scrubbing on every bundle.
Emits the stopped recording's state each time a recording is stopped for packaging. The report-problem dialog listens to this to build and show the snapshot.
Builds a scrubbed .mjdiag archive from the current client-side buffers.
Clears in-memory buffers (used in tests or when resetting session state).
Disposes listeners.
Triggers a browser file download of a built .mjdiag archive.
Downloads a server-built bundle. The link minted at build time is single-use and expires after a
minute, so this mints a fresh one through DiagnosticsGetBundlePreviewOperation and starts the
browser download from it. Returns the link it used.
Handles the server-sent X-MJ-Diagnostic-Trigger: <sessionId> header that a server watch session
adds to the responses it captures. The first header for a session records that session and,
when no recording runs, starts a recording under it; an active user recording keeps its own
session. Entries captured before the first header are never sent to the watch session. Later
headers upload the entries captured since, at most once every 30 seconds.
Returns true when an upload succeeded.
Starts listening for the server's X-MJ-Diagnostic-Trigger header, starts background capture
into memory (unless a known status has capture off) and, when a user is signed in, reads the
server status (see LoadServerStatus).
Entries captured before the status is known stay in memory; only the user's own download or Submit sends them.
Reads the server's diagnostics status for the signed-in user. Call it after sign-in.
When the status reports CaptureEnabled === true, background capture continues. When it
reports capture off (or leaves it out), capture stops and every buffered entry is cleared,
unless a recording runs.
When the status cannot be read, capture continues into memory only.
RequireLiteralScrubbing forces the Standard profile.
Adds a step to the breadcrumb trail that bundles carry in repro.json. Initialize records
clicks, uncaught errors and unhandled promise rejections; an app adds other steps here.
Adds a page the user went to as a breadcrumb, while background capture or a recording runs. The query string and fragment are left out.
Registers a hook (such as GraphQLDataProvider.Instance.SetActiveDiagnosticSessionId) that is updated whenever a recording session starts or stops.
Starts a live recording. When the user holds Diagnostics: Run Sessions or self-service
recording is on, a server session for this user and browser session is started, every request
carries its ID and the network waterfall is recorded. Otherwise the recording is client-only
under a local rec-… ID that is never sent to the server. Returns the recording's session ID.
Starts recording under an existing server session ID and binds the session ID header hook.
Stops the active recording, opens the report-problem dialog and asks it to build a snapshot for the stopped session.
Stops the active recording, unbinds the session ID header hook and stops the server session this service started for it.
Submits a full-stack (client + server) diagnostic bundle from the UX:
DiagnosticsUploadClientCaptureOperation.mjdiag bundle on the server via DiagnosticsBuildBundleOperationDiagnosticsSendBundleOperation
Provider for remote operations. Defaults to the global provider when not set.