SYMBOL INDEX (637 symbols across 122 files) FILE: api/extensions/recorder/src/background.js constant LOCAL_API_URL (line 1) | const LOCAL_API_URL = "http://localhost:3000/v1/events"; constant FALLBACK_API_URL (line 2) | const FALLBACK_API_URL = "http://0.0.0.0:3000/v1/events"; function injectScript (line 5) | async function injectScript(tabId, changeInfo, tab) { FILE: api/openapi/generate.ts type OpenAPIServer (line 5) | interface OpenAPIServer { type OpenAPIDocument (line 10) | interface OpenAPIDocument { FILE: api/src/config.ts type LoggingConfig (line 5) | interface LoggingConfig { method logMethod (line 21) | logMethod(inputArgs: any[], method: any) { FILE: api/src/index.ts constant HOST (line 10) | const HOST = process.env.HOST ?? "0.0.0.0"; constant PORT (line 11) | const PORT = process.env.PORT ? parseInt(process.env.PORT, 10) : 3000; FILE: api/src/modules/actions/actions.routes.ts function routes (line 6) | async function routes(server: FastifyInstance) { FILE: api/src/modules/actions/actions.schema.ts type ScrapeRequestBody (line 112) | type ScrapeRequestBody = z.infer; type ScrapeRequest (line 113) | type ScrapeRequest = FastifyRequest<{ Body: ScrapeRequestBody }>; type ScreenshotRequestBody (line 115) | type ScreenshotRequestBody = z.infer; type ScreenshotRequest (line 116) | type ScreenshotRequest = FastifyRequest<{ Body: ScreenshotRequestBody }>; type PDFRequestBody (line 118) | type PDFRequestBody = z.infer; type PDFRequest (line 119) | type PDFRequest = FastifyRequest<{ Body: PDFRequestBody }>; type SearchRequestBody (line 121) | type SearchRequestBody = z.infer; type SearchRequest (line 122) | type SearchRequest = FastifyRequest<{ Body: SearchRequestBody }>; FILE: api/src/modules/cdp/cdp.routes.ts function routes (line 6) | async function routes(server: FastifyInstance) { FILE: api/src/modules/files/files.controller.ts class FilesController (line 17) | class FilesController { method constructor (line 18) | constructor(private fileService: FileService) {} method validatePath (line 20) | private validatePath(filePath: string): boolean { method handleFileUpload (line 41) | async handleFileUpload( method createStreamFromUrl (line 159) | private async createStreamFromUrl( method handleFileDownload (line 193) | async handleFileDownload( method handleFileHead (line 218) | async handleFileHead( method handleFileList (line 238) | async handleFileList( method handleFileDelete (line 261) | async handleFileDelete( method handleFileDeleteAll (line 277) | async handleFileDeleteAll( method handleDownloadArchive (line 291) | async handleDownloadArchive( FILE: api/src/modules/files/files.routes.ts function routes (line 8) | async function routes(server: FastifyInstance) { FILE: api/src/modules/files/files.schema.ts type FileDetails (line 18) | type FileDetails = z.infer; type MultipleFiles (line 19) | type MultipleFiles = z.infer; type FileUploadRequest (line 20) | type FileUploadRequest = z.infer; FILE: api/src/modules/logs/logs.schema.ts type LogQueryInput (line 30) | type LogQueryInput = z.infer; type LogStatsOutput (line 31) | type LogStatsOutput = z.infer; type LogQueryResultOutput (line 32) | type LogQueryResultOutput = z.infer; type ExportLogsInput (line 33) | type ExportLogsInput = z.infer; FILE: api/src/modules/selenium/selenium.routes.ts function routes (line 4) | async function routes(server: FastifyInstance) { FILE: api/src/modules/selenium/selenium.schema.ts type LaunchRequest (line 36) | type LaunchRequest = z.infer; FILE: api/src/modules/sessions/sessions.routes.ts function routes (line 23) | async function routes(server: FastifyInstance) { FILE: api/src/modules/sessions/sessions.schema.ts type CredentialsOptions (line 10) | type CredentialsOptions = z.infer; type SessionsScrapeRequestBody (line 178) | type SessionsScrapeRequestBody = Omit; type SessionsScrapeRequest (line 179) | type SessionsScrapeRequest = FastifyRequest<{ Body: SessionsScrapeReques... type SessionsScreenshotRequestBody (line 181) | type SessionsScreenshotRequestBody = Omit; type SessionsScreenshotRequest (line 182) | type SessionsScreenshotRequest = FastifyRequest<{ Body: SessionsScreensh... type SessionsPDFRequestBody (line 184) | type SessionsPDFRequestBody = Omit; type SessionsPDFRequest (line 185) | type SessionsPDFRequest = FastifyRequest<{ Body: SessionsPDFRequestBody }>; type RecordedEvents (line 187) | type RecordedEvents = z.infer; type CreateSessionBody (line 188) | type CreateSessionBody = z.infer; type CreateSessionRequest (line 189) | type CreateSessionRequest = FastifyRequest<{ Body: CreateSessionBody }>; type SessionDetails (line 190) | type SessionDetails = z.infer; type MultipleSessions (line 191) | type MultipleSessions = z.infer; type SessionStreamQuery (line 193) | type SessionStreamQuery = z.infer; type SessionStreamRequest (line 194) | type SessionStreamRequest = FastifyRequest<{ Querystring: SessionStreamQ... FILE: api/src/plugins/browser-socket/browser-socket.ts type BrowserSocketOptions (line 8) | interface BrowserSocketOptions { FILE: api/src/plugins/browser-socket/casting.handler.ts function handleCastSession (line 18) | async function handleCastSession( FILE: api/src/plugins/browser-socket/handlers/logs.handler.ts function handleLogsWebSocket (line 7) | function handleLogsWebSocket(context: WebSocketHandlerContext, ws: WebSo... FILE: api/src/plugins/browser-socket/handlers/pageId.handler.ts function handlePageIdWebSocket (line 6) | function handlePageIdWebSocket(context: WebSocketHandlerContext, ws: Web... FILE: api/src/plugins/browser-socket/handlers/recording.handler.ts function handleRecordingWebSocket (line 7) | function handleRecordingWebSocket(context: WebSocketHandlerContext, ws: ... FILE: api/src/plugins/browser.ts type FastifyInstance (line 15) | interface FastifyInstance { FILE: api/src/plugins/request-logger.ts type FastifyReply (line 5) | interface FastifyReply { function now (line 11) | function now() { function roundMS (line 46) | function roundMS(num: number): number { function getClientIp (line 50) | function getClientIp(req: any): string { FILE: api/src/plugins/schemas.ts constant SCHEMAS (line 16) | const SCHEMAS = { FILE: api/src/plugins/ui-plugin.ts type UIPluginOptions (line 7) | interface UIPluginOptions { FILE: api/src/scripts/fingerprint.js function _0x5610 (line 40) | function _0x5610(_0xa98ee6, _0x384755) { function _0x338a (line 55) | function _0x338a() { FILE: api/src/scripts/index.ts constant SCRIPTS_DIR (line 5) | const SCRIPTS_DIR = path.join(dirname(fileURLToPath(import.meta.url))); constant FIXED_VERSION (line 12) | const FIXED_VERSION = "WebGL 1.0 (OpenGL ES 2.0 Chromium)"; constant FIXED_SHADING_LANGUAGE_VERSION (line 13) | const FIXED_SHADING_LANGUAGE_VERSION = "WebGL GLSL ES 1.0 (OpenGL ES GLS... FILE: api/src/services/cdp/cdp.service.ts class CDPService (line 83) | class CDPService extends EventEmitter { method constructor (line 115) | constructor( method getInstrumentationLogger (line 187) | public getInstrumentationLogger(): BrowserLogger { method getLogger (line 191) | public getLogger(name: string) { method setProxyWebSocketHandler (line 195) | public setProxyWebSocketHandler( method setDisconnectHandler (line 201) | public setDisconnectHandler(handler: () => Promise): void { method getBrowserInstance (line 205) | public getBrowserInstance(): Browser | null { method getLaunchConfig (line 209) | public getLaunchConfig(): BrowserLauncherOptions | undefined { method getSessionContext (line 213) | public getSessionContext(): SessionData | null { method registerLaunchHook (line 217) | public registerLaunchHook(fn: (config: BrowserLauncherOptions) => Prom... method registerShutdownHook (line 221) | public registerShutdownHook(fn: (config: BrowserLauncherOptions | null... method removeAllHandlers (line 225) | private removeAllHandlers() { method isRunning (line 230) | public isRunning(): boolean { method getTargetId (line 234) | public getTargetId(page: Page) { method getPrimaryPage (line 239) | public async getPrimaryPage(): Promise { method getDebuggerBase (line 249) | private getDebuggerBase(): { baseUrl: string; protocol: string; wsProt... method getDebuggerUrl (line 256) | public getDebuggerUrl() { method getDebuggerWsUrl (line 261) | public getDebuggerWsUrl(pageId?: string) { method refreshPrimaryPage (line 268) | public async refreshPrimaryPage() { method registerPlugin (line 278) | public registerPlugin(plugin: BasePlugin) { method unregisterPlugin (line 282) | public unregisterPlugin(pluginName: string) { method handleTargetChange (line 286) | private async handleTargetChange(target: Target) { method handleNewTarget (line 316) | private async handleNewTarget(target: Target) { method handlePageRequest (line 388) | private async handlePageRequest(request: HTTPRequest, page: Page) { method createPage (line 445) | public async createPage(): Promise { method shutdownHook (line 452) | private async shutdownHook() { method shutdown (line 459) | public async shutdown(): Promise { method getBrowserProcess (line 509) | public getBrowserProcess() { method createBrowserContext (line 513) | public async createBrowserContext(proxyUrl: string): Promise { method getBrowserState (line 1145) | public async getBrowserState(): Promise { method getExistingPageSessionData (line 1196) | private async getExistingPageSessionData(): Promise { method getAllPages (line 1258) | public async getAllPages() { method startNewSession (line 1263) | public async startNewSession(sessionConfig: BrowserLauncherOptions): P... method endSession (line 1278) | public async endSession(): Promise { method onDisconnect (line 1302) | private async onDisconnect(): Promise { method injectSessionContext (line 1313) | private async injectSessionContext( method injectFingerprintSafely (line 1366) | private async injectFingerprintSafely( method setupUserPreferences (line 1461) | private async setupUserPreferences(userDataDir: string, userPreference... FILE: api/src/services/cdp/errors/launch-errors.ts type LaunchErrorType (line 6) | enum LaunchErrorType { type BrowserProcessState (line 19) | enum BrowserProcessState { type PluginName (line 27) | enum PluginName { type PluginOperation (line 33) | enum PluginOperation { type CleanupType (line 39) | enum CleanupType { type SessionContextType (line 44) | enum SessionContextType { type FingerprintStage (line 48) | enum FingerprintStage { type ResourceType (line 53) | enum ResourceType { type NetworkOperation (line 58) | enum NetworkOperation { type SystemOperation (line 64) | enum SystemOperation { type ConfigurationField (line 69) | enum ConfigurationField { type ErrorCategories (line 75) | enum ErrorCategories {} method constructor (line 82) | constructor( class LaunchTimeoutError (line 106) | class LaunchTimeoutError extends BaseLaunchError { method constructor (line 107) | constructor(timeoutMs: number = 30000, cause?: unknown) { class ConfigurationError (line 124) | class ConfigurationError extends BaseLaunchError { method constructor (line 125) | constructor( class ResourceError (line 148) | class ResourceError extends BaseLaunchError { method constructor (line 149) | constructor( class SystemError (line 169) | class SystemError extends BaseLaunchError { method constructor (line 170) | constructor(message: string, operation: SystemOperation, originalError... class NetworkError (line 188) | class NetworkError extends BaseLaunchError { method constructor (line 189) | constructor(message: string, networkOperation: NetworkOperation, cause... class FingerprintError (line 206) | class FingerprintError extends BaseLaunchError { method constructor (line 207) | constructor(message: string, stage: FingerprintStage, cause?: unknown) { class PluginError (line 224) | class PluginError extends BaseLaunchError { method constructor (line 225) | constructor( class CleanupError (line 249) | class CleanupError extends BaseLaunchError { method constructor (line 250) | constructor(message: string, cleanupType: CleanupType, cause?: unknown) { class BrowserProcessError (line 267) | class BrowserProcessError extends BaseLaunchError { method constructor (line 268) | constructor( class SessionContextError (line 291) | class SessionContextError extends BaseLaunchError { method constructor (line 292) | constructor(message: string, contextType: SessionContextType, cause?: ... function categorizeError (line 308) | function categorizeError(error: unknown, context?: string): BaseLaunchEr... FILE: api/src/services/cdp/instrumentation/browser-logger.ts type Context (line 6) | type Context = Record; type Logger (line 12) | interface Logger { type BrowserLogger (line 17) | interface BrowserLogger { type CreateBrowserLoggerOptions (line 30) | interface CreateBrowserLoggerOptions { function createBrowserLogger (line 37) | function createBrowserLogger(options: CreateBrowserLoggerOptions): Brows... FILE: api/src/services/cdp/instrumentation/cdp-events.ts function attachCDPEvents (line 9) | function attachCDPEvents(session: CDPSession, logger: BrowserLogger): vo... FILE: api/src/services/cdp/instrumentation/extension-events.ts function attachExtensionEvents (line 8) | async function attachExtensionEvents( FILE: api/src/services/cdp/instrumentation/page-events.ts type AttachPageEventsOptions (line 6) | interface AttachPageEventsOptions { constant MAX_BODY_SIZE (line 10) | const MAX_BODY_SIZE = 1_048_576; constant TEXT_MIME_PREFIXES (line 11) | const TEXT_MIME_PREFIXES = ["text/", "application/json", "application/xm... function isTextMime (line 13) | function isTextMime(mime: string | undefined): boolean { function attachPageEvents (line 24) | async function attachPageEvents( FILE: api/src/services/cdp/instrumentation/storage/duckdb-storage.ts type ParquetCompression (line 9) | type ParquetCompression = "zstd" | "snappy" | "gzip" | "none"; type DuckDBStorageOptions (line 11) | interface DuckDBStorageOptions { class DuckDBStorage (line 48) | class DuckDBStorage implements LogStorage { method constructor (line 64) | constructor(options: DuckDBStorageOptions = {}) { method initialize (line 74) | async initialize(): Promise { method startFlushTimer (line 118) | private startFlushTimer(): void { method stopFlushTimer (line 129) | private stopFlushTimer(): void { method flushWriteBuffer (line 136) | private async flushWriteBuffer(): Promise { method write (line 153) | async write(event: BrowserEventUnion, context: Record): P... method writeSingle (line 173) | private async writeSingle(event: BrowserEventUnion, context: Record { method query (line 252) | async query(query: LogQuery): Promise { method supportsParquetExport (line 316) | supportsParquetExport(): boolean { method exportToParquet (line 320) | async exportToParquet(filePath: string, query?: LogQuery): Promise { method vacuum (line 441) | async vacuum(): Promise { method close (line 448) | async close(): Promise { method getBufferStats (line 472) | getBufferStats(): { bufferedEvents: number; isBufferingEnabled: boolea... FILE: api/src/services/cdp/instrumentation/storage/in-memory-storage.ts type StoredEvent (line 4) | interface StoredEvent { class InMemoryStorage (line 14) | class InMemoryStorage implements LogStorage { method constructor (line 18) | constructor(maxEvents: number = 10000) { method initialize (line 22) | async initialize(): Promise { method write (line 26) | async write(event: BrowserEventUnion, context: Record): P... method writeBatch (line 39) | async writeBatch( method query (line 47) | async query(query: LogQuery): Promise { method supportsParquetExport (line 89) | supportsParquetExport(): boolean { method exportToParquet (line 93) | async exportToParquet(filePath: string, query?: LogQuery): Promise { method flush (line 117) | async flush(): Promise { method close (line 121) | async close(): Promise { FILE: api/src/services/cdp/instrumentation/storage/log-storage.interface.ts type LogQuery (line 3) | interface LogQuery { type LogQueryResult (line 13) | interface LogQueryResult { type LogStorage (line 19) | interface LogStorage { FILE: api/src/services/cdp/instrumentation/storage/safe-json.ts function safeStringify (line 1) | function safeStringify(value: unknown): string { FILE: api/src/services/cdp/instrumentation/target-manager.ts constant INTERNAL_EXTENSIONS (line 10) | const INTERNAL_EXTENSIONS = new Set([ class TargetInstrumentationManager (line 14) | class TargetInstrumentationManager { method constructor (line 20) | constructor( method attach (line 28) | async attach(target: Target, type: TargetType) { method detach (line 118) | detach(targetId: string) { method enableDomainsForTarget (line 129) | private async enableDomainsForTarget( FILE: api/src/services/cdp/instrumentation/types.ts type BaseBrowserEvent (line 4) | interface BaseBrowserEvent { type RequestEvent (line 11) | interface RequestEvent extends BaseBrowserEvent { type ResponseEvent (line 22) | interface ResponseEvent extends BaseBrowserEvent { type ResponseBodyEvent (line 33) | interface ResponseBodyEvent extends BaseBrowserEvent { type NavigationEvent (line 42) | interface NavigationEvent extends BaseBrowserEvent { type ConsoleEvent (line 47) | interface ConsoleEvent extends BaseBrowserEvent { type ErrorEvent (line 52) | interface ErrorEvent extends BaseBrowserEvent { type RecordingEvent (line 61) | interface RecordingEvent extends BaseBrowserEvent { type CDPEvent (line 66) | interface CDPEvent extends BaseBrowserEvent { type CDPCommandEvent (line 74) | interface CDPCommandEvent extends BaseBrowserEvent { type CDPCommandResultEvent (line 83) | interface CDPCommandResultEvent extends BaseBrowserEvent { type ExtensionEvent (line 94) | interface ExtensionEvent extends BaseBrowserEvent { type BrowserEventUnion (line 104) | type BrowserEventUnion = FILE: api/src/services/cdp/instrumentation/utils.ts function extractTargetId (line 4) | function extractTargetId(target: Target): string { function serializeRemoteObject (line 8) | function serializeRemoteObject(obj: Protocol.Runtime.RemoteObject): stri... function formatLocation (line 15) | function formatLocation(stackTrace?: Protocol.Runtime.StackTrace): strin... FILE: api/src/services/cdp/instrumentation/worker-events.ts function attachWorkerEvents (line 6) | function attachWorkerEvents( FILE: api/src/services/cdp/plugins/core/base-plugin.ts type PluginOptions (line 5) | interface PluginOptions { method constructor (line 15) | constructor(options: PluginOptions) { method setService (line 21) | public setService(service: CDPService): void { method onBrowserLaunch (line 26) | public async onBrowserLaunch(browser: Browser): Promise {} method onBrowserReady (line 27) | public onBrowserReady(context: BrowserLauncherOptions): void | Promise {} method onPageNavigate (line 29) | public async onPageNavigate(page: Page): Promise {} method onPageUnload (line 30) | public async onPageUnload(page: Page): Promise {} method onBrowserClose (line 31) | public async onBrowserClose(browser: Browser): Promise {} method onBeforePageClose (line 32) | public async onBeforePageClose(page: Page): Promise {} method onShutdown (line 33) | public async onShutdown(): Promise {} method onSessionEnd (line 34) | public async onSessionEnd(sessionConfig: BrowserLauncherOptions): Promis... FILE: api/src/services/cdp/plugins/core/plugin-manager.ts class PluginManager (line 7) | class PluginManager { method constructor (line 12) | constructor(service: CDPService, logger: FastifyBaseLogger) { method register (line 21) | public register(plugin: BasePlugin): void { method unregister (line 34) | public unregister(pluginName: string): boolean { method getPlugin (line 47) | public getPlugin(pluginName: string): T | undefi... method onBrowserLaunch (line 54) | public async onBrowserLaunch(browser: Browser): Promise { method onBrowserReady (line 65) | public async onBrowserReady(context: BrowserLauncherOptions): Promise<... method onPageCreated (line 81) | public async onPageCreated(page: Page): Promise { method onBrowserClose (line 95) | public async onBrowserClose(browser: Browser): Promise { method onPageNavigate (line 109) | public async onPageNavigate(page: Page): Promise { method onPageUnload (line 123) | public async onPageUnload(page: Page): Promise { method onBeforePageClose (line 137) | public async onBeforePageClose(page: Page): Promise { method onShutdown (line 151) | public async onShutdown(): Promise { method onSessionEnd (line 165) | public async onSessionEnd(sessionConfig: BrowserLauncherOptions): Prom... FILE: api/src/services/cdp/plugins/pptr-extensions.d.ts type Page (line 4) | interface Page { FILE: api/src/services/cdp/utils/error-handlers.ts function executeCritical (line 18) | async function executeCritical( function executeOptional (line 46) | async function executeOptional( function executeBestEffort (line 76) | async function executeBestEffort( FILE: api/src/services/cdp/utils/validation.ts function comparePromiseValues (line 12) | async function comparePromiseValues( function validateLaunchConfig (line 31) | function validateLaunchConfig(config: BrowserLauncherOptions): void { function validateTimezone (line 72) | async function validateTimezone( function isSimilarConfig (line 114) | async function isSimilarConfig( FILE: api/src/services/context/chrome-context.service.ts class ChromeContextService (line 8) | class ChromeContextService extends EventEmitter { method constructor (line 11) | constructor(logger: FastifyBaseLogger) { method getSessionData (line 21) | public async getSessionData(userDataDir?: string): Promise { method extractLocalStorage (line 61) | private async extractLocalStorage( method extractSessionStorage (line 80) | private async extractSessionStorage( FILE: api/src/services/context/types.ts type StorageProviderName (line 3) | enum StorageProviderName { type IndexedDBDatabaseWithOrigin (line 10) | interface IndexedDBDatabaseWithOrigin { type IndexedDBDatabase (line 17) | interface IndexedDBDatabase { type IndexedDBObjectStore (line 23) | interface IndexedDBObjectStore { type IndexedDBRecord (line 29) | interface IndexedDBRecord { type IndexedDBBlobFile (line 35) | interface IndexedDBBlobFile { type LocalStorageData (line 44) | type LocalStorageData = Record; type SessionStorageData (line 45) | type SessionStorageData = Record; type CookieData (line 46) | type CookieData = z.infer; type StorageProviderDataMap (line 48) | interface StorageProviderDataMap { type ProviderDataType (line 56) | type ProviderDataType = StorageProviderDa... type SessionData (line 58) | type SessionData = { class CorruptedSessionDataError (line 66) | class CorruptedSessionDataError extends Error { method constructor (line 67) | constructor(zodError: z.ZodError) { type CDPCookie (line 114) | type CDPCookie = z.infer; FILE: api/src/services/file.service.ts type File (line 11) | interface File { class FileService (line 16) | class FileService { method constructor (line 26) | private constructor() { method getInstance (line 39) | public static getInstance() { method handleFileAdd (line 46) | private async handleFileAdd(filePath: string) { method handleFileDelete (line 51) | private handleFileDelete(filePath: string) { method handleDirChange (line 56) | private handleDirChange(filePath: string) { method initFileWatcher (line 61) | private initFileWatcher() { method getSafeFilePath (line 87) | private getSafeFilePath(relativePath: string) { method exists (line 98) | private async exists(filePath: string): Promise { method saveFile (line 109) | public async saveFile({ method downloadFile (line 149) | public async downloadFile({ method getFile (line 180) | public async getFile({ filePath }: { filePath: string }): Promise { method listFiles (line 203) | public async listFiles(): Promise> { method deleteFile (line 252) | public async deleteFile({ filePath }: { filePath: string }): Promise { method getBaseFilesPath (line 331) | public getBaseFilesPath(): string { method getPrebuiltArchivePath (line 335) | public async getPrebuiltArchivePath(): Promise { method _createArchive (line 339) | private _createArchive(): Promise { FILE: api/src/services/leveldb/localstorage.ts function decodeString (line 13) | function decodeString(raw: Buffer): { value: string; charset: string } { type StorageMetadata (line 35) | interface StorageMetadata { type LocalStorageRecord (line 41) | interface LocalStorageRecord { class LocalStoreDb (line 52) | class LocalStoreDb { method constructor (line 56) | private constructor(db: Level) { method open (line 60) | public static async open(dir: string): Promise { method load (line 84) | public async load(): Promise { method close (line 121) | public close(): void { class ChromeLocalStorageReader (line 127) | class ChromeLocalStorageReader { method readLocalStorage (line 132) | public static async readLocalStorage( FILE: api/src/services/leveldb/sessionstorage.ts function decodeUTF16LE (line 12) | function decodeUTF16LE(raw: Buffer): string { type SessionStorageRecord (line 20) | interface SessionStorageRecord { class SessionStoreDb (line 32) | class SessionStoreDb { method constructor (line 37) | private constructor(db: Level) { method open (line 41) | public static async open(dir: string): Promise { method loadNamespaceRecords (line 68) | private async loadNamespaceRecords(): Promise { method load (line 93) | public async load(): Promise { method close (line 135) | public close(): void { function processSessionRecord (line 144) | function processSessionRecord(record: SessionStorageRecord): SessionStor... class ChromeSessionStorageReader (line 204) | class ChromeSessionStorageReader { method readSessionStorage (line 209) | public static async readSessionStorage( FILE: api/src/services/selenium.service.ts class SeleniumService (line 8) | class SeleniumService extends EventEmitter { method constructor (line 15) | constructor(logger: FastifyBaseLogger) { method getChromeArgs (line 20) | public async getChromeArgs(): Promise { method launch (line 32) | public async launch(launchOptions: BrowserLauncherOptions): Promise Promise | IProxy... class SessionService (line 50) | class SessionService { method constructor (line 61) | constructor(config: { method startSession (line 85) | public async startSession(options: { method endSession (line 248) | public async endSession(): Promise { method resetSessionInfo (line 278) | private async resetSessionInfo(overrides?: Partial): P... method setProxyFactory (line 300) | public setProxyFactory(factory: ProxyFactory) { FILE: api/src/services/timezone-fetcher.service.ts type TimezoneFetchResult (line 7) | interface TimezoneFetchResult { type TimezoneService (line 13) | interface TimezoneService { class TimezoneFetcher (line 19) | class TimezoneFetcher { method constructor (line 25) | constructor(logger: FastifyBaseLogger) { method startFetch (line 40) | private startFetch(proxyUrl?: string): Promise { method getTimezone (line 58) | public async getTimezone(proxyUrl?: string, fallback?: string): Promis... method fetchTimezoneInternal (line 91) | private async fetchTimezoneInternal(proxyUrl?: string): Promise unknown>( method factory (line 64) | factory(tracerName: string) { function traceable (line 83) | function traceable( function createDecorator (line 97) | function createDecorator(opts?: TracerOptions) { function toKebabCase (line 124) | function toKebabCase(str: string) { FILE: api/src/types/browser.ts type OptimizeBandwidthOptions (line 11) | type OptimizeBandwidthOptions = { type BrowserLauncherOptions (line 19) | interface BrowserLauncherOptions { type BrowserServerOptions (line 50) | interface BrowserServerOptions { type BrowserEvent (line 62) | type BrowserEvent = { FILE: api/src/types/casting.ts type MouseEvent (line 1) | type MouseEvent = { type KeyEvent (line 16) | type KeyEvent = { type NavigationEvent (line 29) | type NavigationEvent = { type CloseTabEvent (line 38) | type CloseTabEvent = { type ClipboardWriteEvent (line 43) | type ClipboardWriteEvent = { type ClipboardReadEvent (line 51) | type ClipboardReadEvent = { type GetSelectedTextEvent (line 56) | type GetSelectedTextEvent = { type PageInfo (line 61) | type PageInfo = { FILE: api/src/types/enums.ts type ScrapeFormat (line 3) | enum ScrapeFormat { type BrowserEventType (line 10) | enum BrowserEventType { type EmitEvent (line 27) | enum EmitEvent { FILE: api/src/types/fastify.d.ts type FastifyRequest (line 9) | interface FastifyRequest {} type FastifyInstance (line 10) | interface FastifyInstance { FILE: api/src/types/websocket.ts type WebSocketHandlerContext (line 6) | interface WebSocketHandlerContext { type WebSocketHandler (line 12) | interface WebSocketHandler { type WebSocketHandlerRegistry (line 22) | interface WebSocketHandlerRegistry { FILE: api/src/utils/browser.ts function installMouseHelper (line 35) | async function installMouseHelper(page: Page, device: string) { function filterHeaders (line 148) | function filterHeaders(headers: Record) { FILE: api/src/utils/context.ts function extractStorageForPage (line 19) | async function extractStorageForPage( function groupSessionStorageByOrigin (line 360) | function groupSessionStorageByOrigin( function getProfilePath (line 415) | function getProfilePath(userDataDir: string, ...pathSegments: string[]):... function deepMerge (line 436) | function deepMerge(target: T, source: Partial): T { FILE: api/src/utils/errors.ts function getErrors (line 1) | function getErrors(e: unknown) { FILE: api/src/utils/extensions.ts function getExtensionPaths (line 4) | async function getExtensionPaths(extensionNames: string[]): Promise { FILE: api/src/utils/passthough-proxy.ts type Result (line 73) | type Result = [err: Error, result: null] | [err: null, result: T]; FILE: api/src/utils/proxy.ts type IProxyServer (line 6) | interface IProxyServer { class ProxyServer (line 15) | class ProxyServer extends Server implements IProxyServer { method constructor (line 22) | constructor(proxyUrl: string) { method listen (line 65) | async listen(): Promise { FILE: api/src/utils/requests.ts constant AD_HOSTS (line 1) | const AD_HOSTS = [ constant RE_IMAGE_EXT (line 53) | const RE_IMAGE_EXT = /\.(jpg|jpeg|png|webp|svg|ico)(\?.*)?$/i; constant RE_VIDEO_EXT (line 54) | const RE_VIDEO_EXT = /\.(mp4|m4s|m3u8|ts|webm|gif)(\?.*)?$/i; constant RE_RANGE (line 55) | const RE_RANGE = /range=\d+-\d+/i; function tryParseUrl (line 57) | function tryParseUrl(url: string): URL | null { function isAdRequest (line 65) | function isAdRequest(parsed: URL): boolean { function isImageRequest (line 70) | function isImageRequest(parsed: URL): boolean { function isHeavyMediaRequest (line 74) | function isHeavyMediaRequest(parsed: URL): boolean { function isHostBlocked (line 81) | function isHostBlocked(parsed: URL, blockedHosts?: string[]): boolean { function compileUrlPatterns (line 87) | function compileUrlPatterns(patterns: string[]): RegExp[] { function isUrlMatchingPatterns (line 101) | function isUrlMatchingPatterns(url: string, compiledPatterns?: RegExp[])... FILE: api/src/utils/retry.ts type RetryOptions (line 9) | interface RetryOptions { type RetryResult (line 17) | interface RetryResult { class RetryError (line 23) | class RetryError extends Error { method constructor (line 28) | constructor(attempts: number, lastError: Error, allErrors: Error[]) { class RetryManager (line 40) | class RetryManager { method constructor (line 50) | constructor(logger: FastifyBaseLogger) { method executeWithRetry (line 57) | async executeWithRetry( method isErrorRetryable (line 135) | private isErrorRetryable(error: Error): boolean { method sleep (line 152) | private sleep(ms: number): Promise { method createRetryWrapper (line 156) | createRetryWrapper( FILE: api/src/utils/schema.ts type Models (line 4) | type Models = { type BuildJsonSchemasOptions (line 8) | type BuildJsonSchemasOptions = { type SchemaKey (line 14) | type SchemaKey = M extends Models ? Key & s... type SchemaKeyOrDescription (line 16) | type SchemaKeyOrDescription = type $Ref (line 23) | type $Ref = (key: SchemaKeyOrDescription) => { type JsonSchema (line 28) | type JsonSchema = { type BuildJsonSchemasResult (line 32) | type BuildJsonSchemasResult = { FILE: api/src/utils/scrape/pdfToHtml.ts function parsePdfDate (line 3) | function parsePdfDate(pdfDate?: string | null): string | null { type HtmlLikeMetadata (line 30) | type HtmlLikeMetadata = { function extractLinksFromConvertedHtml (line 56) | function extractLinksFromConvertedHtml(html: string): { url: string; tex... function buildHtmlLikeMetadataFromPdf (line 67) | function buildHtmlLikeMetadataFromPdf( FILE: api/src/utils/scrape/plugins/highlightedCodeBlock.ts function highlightedCodeBlock (line 7) | function highlightedCodeBlock(turndownService: TurndownService) { FILE: api/src/utils/scrape/plugins/inlineLink.ts function inlineLink (line 5) | function inlineLink(turndownService: TurndownService) { FILE: api/src/utils/scrape/plugins/strikethrough.ts function taskListItems (line 5) | function taskListItems(turndownService: TurndownService) { FILE: api/src/utils/scrape/plugins/table.ts function getAlignment (line 16) | function getAlignment(node) { function getBorder (line 20) | function getBorder(alignment) { function getColumnAlignment (line 24) | function getColumnAlignment(table, columnIndex) { function extractTextFromCell (line 49) | function extractTextFromCell(cellNode: HTMLElement): string { function isHeadingRow (line 170) | function isHeadingRow(tr) { function isFirstTbody (line 182) | function isFirstTbody(element) { function cell (line 191) | function cell(content: string, node: Node, index: number | null = null) { function nodeContainsTable (line 202) | function nodeContainsTable(node) { function tableShouldBeSkipped (line 241) | function tableShouldBeSkipped(tableNode) { function tableShouldBeSkipped_ (line 251) | function tableShouldBeSkipped_(tableNode) { function nodeParentTable (line 259) | function nodeParentTable(node) { function handleColSpan (line 268) | function handleColSpan(content, node, emptyChar) { function tableColCount (line 276) | function tableColCount(node) { function tables (line 286) | function tables(turndownService: TurndownService) { FILE: api/src/utils/scrape/plugins/taskListItems.ts function strikethrough (line 5) | function strikethrough(turndownService: TurndownService) { FILE: api/src/utils/scrape/plugins/utilities.ts function isCodeBlockSpecialCase1 (line 5) | function isCodeBlockSpecialCase1(node: Node) { function isCodeBlockSpecialCase2 (line 16) | function isCodeBlockSpecialCase2(node: Node) { function isCodeBlock (line 35) | function isCodeBlock(node: Node) { FILE: api/src/utils/scrape/safeGoTo.ts function safeGoto (line 11) | async function safeGoto(page: Page, url: string, options = {}) { FILE: api/src/utils/text.ts function titleCase (line 1) | function titleCase(input: string): string { FILE: api/src/utils/url.ts function getProtocol (line 8) | function getProtocol(protocolType: "http" | "ws"): string { function getBaseUrl (line 17) | function getBaseUrl(protocolType: "http" | "ws" = "http"): string { function getUrl (line 29) | function getUrl(path: string, protocolType: "http" | "ws" = "http"): str... function normalizeUrl (line 41) | function normalizeUrl(url: string): string | null { FILE: repl/src/script.ts function run (line 3) | async function run() { FILE: ui/src/App.tsx function App (line 11) | function App() { FILE: ui/src/components/badges/proxy-badge.tsx function ProxyBadge (line 5) | function ProxyBadge({ proxy }: { proxy: string }) { FILE: ui/src/components/badges/user-agent-badge.tsx function UserAgentBadge (line 6) | function UserAgentBadge({ userAgent }: { userAgent: string }) { FILE: ui/src/components/badges/websocket-url-badge.tsx function WebsocketUrlBadge (line 5) | function WebsocketUrlBadge({ url }: { url: string }) { FILE: ui/src/components/icons/ChromeIcon.tsx function ChromeIcon (line 3) | function ChromeIcon({ FILE: ui/src/components/icons/DeleteIcon.tsx function DeleteIcon (line 3) | function DeleteIcon({ width = 28, height = 28 }: IconProps) { FILE: ui/src/components/icons/KeyIcon.tsx function KeyIcon (line 3) | function KeyIcon({ FILE: ui/src/components/icons/LoadingSpinner.tsx type LoadingSpinnerProps (line 3) | interface LoadingSpinnerProps { FILE: ui/src/components/icons/NinjaIcon.tsx function NinjaIcon (line 3) | function NinjaIcon({ color = "#A1A1AA" }: IconProps) { FILE: ui/src/components/illustrations/command-line.tsx function CommandLine (line 1) | function CommandLine() { FILE: ui/src/components/illustrations/globe.tsx function Globe (line 1) | function Globe() { FILE: ui/src/components/loading/Loading.tsx function Loading (line 3) | function Loading() { FILE: ui/src/components/sessions/session-console/index.tsx type SessionConsoleProps (line 7) | interface SessionConsoleProps { function SessionConsole (line 11) | function SessionConsole({ id }: SessionConsoleProps) { FILE: ui/src/components/sessions/session-console/session-details.tsx function SessionDetails (line 6) | function SessionDetails({ id }: { id: string | null }) { FILE: ui/src/components/sessions/session-console/session-devtools.tsx function SessionDevTools (line 4) | function SessionDevTools() { FILE: ui/src/components/sessions/session-console/session-logs.tsx function SessionLogs (line 4) | function SessionLogs({ id }: { id: string }) { FILE: ui/src/components/sessions/session-viewer/empty-state.tsx function EmptyState (line 5) | function EmptyState() { FILE: ui/src/components/sessions/session-viewer/live-empty-state.tsx function LiveEmptyState (line 7) | function LiveEmptyState({ session }: { session: SessionDetails }) { FILE: ui/src/components/sessions/session-viewer/session-viewer.tsx type SessionViewerProps (line 6) | type SessionViewerProps = { function SessionViewer (line 12) | function SessionViewer({ id }: SessionViewerProps) { FILE: ui/src/components/theme-provider.tsx type Theme (line 3) | type Theme = "dark" | "light" | "system"; type ThemeProviderProps (line 5) | type ThemeProviderProps = { type ThemeProviderState (line 11) | type ThemeProviderState = { function ThemeProvider (line 23) | function ThemeProvider({ FILE: ui/src/components/ui/badge.tsx type BadgeProps (line 25) | interface BadgeProps function Badge (line 29) | function Badge({ className, variant, ...props }: BadgeProps) { FILE: ui/src/components/ui/button.tsx type ButtonProps (line 34) | interface ButtonProps FILE: ui/src/components/ui/form.tsx type FormFieldContextValue (line 18) | type FormFieldContextValue< type FormItemContextValue (line 63) | type FormItemContextValue = { FILE: ui/src/components/ui/input.tsx type InputProps (line 5) | interface InputProps FILE: ui/src/components/ui/pagination.tsx type PaginationLinkProps (line 41) | type PaginationLinkProps = { FILE: ui/src/components/ui/toast.tsx type ToastProps (line 113) | type ToastProps = React.ComponentPropsWithoutRef type ToastActionElement (line 115) | type ToastActionElement = React.ReactElement FILE: ui/src/components/ui/toaster.tsx function Toaster (line 11) | function Toaster() { FILE: ui/src/containers/session-container.tsx function SessionContainer (line 9) | function SessionContainer() { FILE: ui/src/contexts/sessions-context/sessions-context.tsx function SessionsProvider (line 24) | function SessionsProvider({ FILE: ui/src/contexts/sessions-context/sessions-context.types.ts type SessionsContextType (line 10) | type SessionsContextType = { type SessionsProviderProps (line 22) | type SessionsProviderProps = { FILE: ui/src/hooks/use-sessions-context.ts function useSessionsContext (line 5) | function useSessionsContext(): SessionsContextType { FILE: ui/src/hooks/use-toast.ts constant TOAST_LIMIT (line 11) | const TOAST_LIMIT = 1 constant TOAST_REMOVE_DELAY (line 12) | const TOAST_REMOVE_DELAY = 1000000 type ToasterToast (line 14) | type ToasterToast = ToastProps & { function genId (line 30) | function genId() { type ActionType (line 35) | type ActionType = typeof actionTypes type Action (line 37) | type Action = type State (line 55) | interface State { function dispatch (line 136) | function dispatch(action: Action) { type Toast (line 143) | type Toast = Omit function toast (line 145) | function toast({ ...props }: Toast) { function useToast (line 174) | function useToast() { FILE: ui/src/lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { FILE: ui/src/root-layout.tsx function RootLayout (line 9) | function RootLayout() { FILE: ui/src/steel-client/types.gen.ts type ScrapeRequest (line 3) | type ScrapeRequest = { type ScrapeResponse (line 16) | type ScrapeResponse = { type ScreenshotRequest (line 49) | type ScreenshotRequest = { type ScreenshotResponse (line 60) | type ScreenshotResponse = unknown; type PDFRequest (line 62) | type PDFRequest = { type PDFResponse (line 72) | type PDFResponse = unknown; type CreateSession (line 74) | type CreateSession = { type device (line 294) | type device = "desktop" | "mobile"; type SessionDetails (line 301) | type SessionDetails = { type status (line 382) | type status = "idle" | "live" | "released" | "failed"; type MultipleSessions (line 394) | type MultipleSessions = { type SessionContextSchema (line 474) | type SessionContextSchema = { type RecordedEvents (line 596) | type RecordedEvents = { type ReleaseSession (line 603) | type ReleaseSession = { type SessionStreamQuery (line 685) | type SessionStreamQuery = { type theme (line 711) | type theme = "dark" | "light"; type SessionStreamResponse (line 724) | type SessionStreamResponse = string; type SessionLiveDetailsResponse (line 726) | type SessionLiveDetailsResponse = { type LogQuerySchema (line 748) | type LogQuerySchema = { type LogStatsSchema (line 758) | type LogStatsSchema = { type LogQueryResultSchema (line 765) | type LogQueryResultSchema = { type ExportLogsSchema (line 773) | type ExportLogsSchema = { type GetDevtoolsUrlSchema (line 785) | type GetDevtoolsUrlSchema = { type LaunchRequest (line 789) | type LaunchRequest = { type LaunchResponse (line 820) | type LaunchResponse = { type FileUploadRequest (line 824) | type FileUploadRequest = { type FileDetails (line 835) | type FileDetails = { type MultipleFiles (line 850) | type MultipleFiles = { type ScrapeData (line 870) | type ScrapeData = { type ScrapeResponse2 (line 874) | type ScrapeResponse2 = ScrapeResponse; type ScrapeError (line 876) | type ScrapeError = unknown; type ScreenshotData (line 878) | type ScreenshotData = { type ScreenshotResponse2 (line 882) | type ScreenshotResponse2 = ScreenshotResponse; type ScreenshotError (line 884) | type ScreenshotError = unknown; type PdfData (line 886) | type PdfData = { type PdfResponse (line 890) | type PdfResponse = PDFResponse; type PdfError (line 892) | type PdfError = unknown; type HealthResponse (line 894) | type HealthResponse = unknown; type HealthError (line 896) | type HealthError = unknown; type LaunchBrowserSessionData (line 898) | type LaunchBrowserSessionData = { type LaunchBrowserSessionResponse (line 902) | type LaunchBrowserSessionResponse = SessionDetails; type LaunchBrowserSessionError (line 904) | type LaunchBrowserSessionError = unknown; type GetSessionsResponse (line 906) | type GetSessionsResponse = MultipleSessions; type GetSessionsError (line 908) | type GetSessionsError = unknown; type GetSessionDetailsData (line 910) | type GetSessionDetailsData = { type GetSessionDetailsResponse (line 916) | type GetSessionDetailsResponse = SessionDetails; type GetSessionDetailsError (line 918) | type GetSessionDetailsError = unknown; type GetBrowserContextData (line 920) | type GetBrowserContextData = { type GetBrowserContextResponse (line 926) | type GetBrowserContextResponse = SessionContextSchema; type GetBrowserContextError (line 928) | type GetBrowserContextError = unknown; type ReleaseBrowserSessionData (line 930) | type ReleaseBrowserSessionData = { type ReleaseBrowserSessionResponse (line 936) | type ReleaseBrowserSessionResponse = ReleaseSession; type ReleaseBrowserSessionError (line 938) | type ReleaseBrowserSessionError = unknown; type ReleaseBrowserSessionsResponse (line 940) | type ReleaseBrowserSessionsResponse = ReleaseSession; type ReleaseBrowserSessionsError (line 942) | type ReleaseBrowserSessionsError = unknown; type GetSessionDebuggerStreamData (line 944) | type GetSessionDebuggerStreamData = { type GetSessionDebuggerStreamResponse (line 969) | type GetSessionDebuggerStreamResponse = SessionStreamResponse; type GetSessionDebuggerStreamError (line 971) | type GetSessionDebuggerStreamError = unknown; type ReceiveEventsData (line 973) | type ReceiveEventsData = { type ReceiveEventsResponse (line 977) | type ReceiveEventsResponse = unknown; type ReceiveEventsError (line 979) | type ReceiveEventsError = unknown; type GetSessionLiveDetailsData (line 981) | type GetSessionLiveDetailsData = { type GetSessionLiveDetailsResponse (line 987) | type GetSessionLiveDetailsResponse = SessionLiveDetailsResponse; type GetSessionLiveDetailsError (line 989) | type GetSessionLiveDetailsError = unknown; type ScrapeSessionData (line 991) | type ScrapeSessionData = { type ScrapeSessionResponse (line 995) | type ScrapeSessionResponse = ScrapeResponse; type ScrapeSessionError (line 997) | type ScrapeSessionError = unknown; type ScreenshotSessionData (line 999) | type ScreenshotSessionData = { type ScreenshotSessionResponse (line 1003) | type ScreenshotSessionResponse = ScreenshotResponse; type ScreenshotSessionError (line 1005) | type ScreenshotSessionError = unknown; type PdfSessionData (line 1007) | type PdfSessionData = { type PdfSessionResponse (line 1011) | type PdfSessionResponse = PDFResponse; type PdfSessionError (line 1013) | type PdfSessionError = unknown; type GetDevtoolsUrlData (line 1015) | type GetDevtoolsUrlData = { type GetDevtoolsUrlResponse (line 1021) | type GetDevtoolsUrlResponse = unknown; type GetDevtoolsUrlError (line 1023) | type GetDevtoolsUrlError = unknown; type UploadFileData (line 1025) | type UploadFileData = { type UploadFileResponse (line 1032) | type UploadFileResponse = FileDetails; type UploadFileError (line 1034) | type UploadFileError = unknown; type ListFilesData (line 1036) | type ListFilesData = { type ListFilesResponse (line 1042) | type ListFilesResponse = MultipleFiles; type ListFilesError (line 1044) | type ListFilesError = unknown; type DeleteAllFilesData (line 1046) | type DeleteAllFilesData = { type DeleteAllFilesResponse (line 1052) | type DeleteAllFilesResponse = void; type DeleteAllFilesError (line 1054) | type DeleteAllFilesError = unknown; type DownloadFileData (line 1056) | type DownloadFileData = { type DownloadFileResponse (line 1063) | type DownloadFileResponse = unknown; type DownloadFileError (line 1065) | type DownloadFileError = unknown; type DeleteFileData (line 1067) | type DeleteFileData = { type DeleteFileResponse (line 1074) | type DeleteFileResponse = void; type DeleteFileError (line 1076) | type DeleteFileError = unknown; type DownloadArchiveData (line 1078) | type DownloadArchiveData = { type DownloadArchiveResponse (line 1084) | type DownloadArchiveResponse = unknown; type DownloadArchiveError (line 1086) | type DownloadArchiveError = unknown; type GetV1LogsQueryData (line 1088) | type GetV1LogsQueryData = { type GetV1LogsQueryResponse (line 1100) | type GetV1LogsQueryResponse = unknown; type GetV1LogsQueryError (line 1102) | type GetV1LogsQueryError = unknown; type GetV1LogsStatsResponse (line 1104) | type GetV1LogsStatsResponse = unknown; type GetV1LogsStatsError (line 1106) | type GetV1LogsStatsError = unknown; type GetV1LogsStreamResponse (line 1108) | type GetV1LogsStreamResponse = unknown; type GetV1LogsStreamError (line 1110) | type GetV1LogsStreamError = unknown; type PostV1LogsExportData (line 1112) | type PostV1LogsExportData = { type PostV1LogsExportResponse (line 1124) | type PostV1LogsExportResponse = unknown; type PostV1LogsExportError (line 1126) | type PostV1LogsExportError = unknown; type DeleteV1LogsResponse (line 1128) | type DeleteV1LogsResponse = unknown; type DeleteV1LogsError (line 1130) | type DeleteV1LogsError = unknown; type ScrapeResponseTransformer (line 1132) | type ScrapeResponseTransformer = (data: any) => Promise; type ScrapeResponseModelResponseTransformer (line 1134) | type ScrapeResponseModelResponseTransformer = ( type LaunchBrowserSessionResponseTransformer (line 1153) | type LaunchBrowserSessionResponseTransformer = ( type SessionDetailsModelResponseTransformer (line 1157) | type SessionDetailsModelResponseTransformer = ( type GetSessionDetailsResponseTransformer (line 1175) | type GetSessionDetailsResponseTransformer = ( type ReleaseBrowserSessionResponseTransformer (line 1185) | type ReleaseBrowserSessionResponseTransformer = ( type ReleaseSessionModelResponseTransformer (line 1189) | type ReleaseSessionModelResponseTransformer = ( type ReleaseBrowserSessionsResponseTransformer (line 1207) | type ReleaseBrowserSessionsResponseTransformer = ( type ScrapeSessionResponseTransformer (line 1217) | type ScrapeSessionResponseTransformer = ( type UploadFileResponseTransformer (line 1227) | type UploadFileResponseTransformer = ( type FileDetailsModelResponseTransformer (line 1231) | type FileDetailsModelResponseTransformer = (data: any) => FileDetails; FILE: ui/src/styles/theme.ts type ReplaceKeyPrefix (line 16) | type ReplaceKeyPrefix< function renameKeysWithPrefix (line 25) | function renameKeysWithPrefix< type Theme (line 64) | type Theme = typeof theme; FILE: ui/src/types/cdp.ts type ProtocolCommands (line 1) | enum ProtocolCommands { type HostCommands (line 6) | enum HostCommands { type WorkerCommands (line 13) | enum WorkerCommands { type Message (line 21) | interface Message { FILE: ui/src/types/props.ts type IconProps (line 1) | interface IconProps { FILE: ui/src/utils/formatting.ts function formatDuration (line 1) | function formatDuration(durationInMs: number): string {