{
  "version": 3,
  "sources": ["../src/messenger.ts", "../src/eventsource-wrapper.ts", "../src/index.ts", "../src/auto.ts"],
  "sourcesContent": [
    "/**\n * Handles communication with the extension via window.postMessage\n */\n\nimport type { HelperMessage } from './types';\n\n/**\n * Send a message to the extension via window.postMessage\n */\nexport function postMessageToExtension(\n\tmessage: HelperMessage,\n\tdebug = false,\n): void {\n\ttry {\n\t\t// Post message to window - the content script will pick it up\n\t\twindow.postMessage(message, '*');\n\n\t\tif (debug) {\n\t\t\tconsole.log(\n\t\t\t\t'[GraphQL Stream Viewer Helper] Message sent:',\n\t\t\t\tmessage.type,\n\t\t\t\tmessage,\n\t\t\t);\n\t\t}\n\t} catch (error) {\n\t\tif (debug) {\n\t\t\tconsole.error(\n\t\t\t\t'[GraphQL Stream Viewer Helper] Failed to send message:',\n\t\t\t\terror,\n\t\t\t);\n\t\t}\n\t}\n}\n\n/**\n * Check if the extension is available by looking for a specific marker\n * Note: This is a best-effort check and may not be 100% accurate\n */\nexport function isExtensionAvailable(): boolean {\n\t// Check if we're in a browser environment\n\tif (typeof window === 'undefined') {\n\t\treturn false;\n\t}\n\n\t// Try to detect if the extension's content script is loaded\n\t// The content script should set a marker on the window object\n\treturn '__GRAPHQL_STREAM_VIEWER_EXTENSION__' in window;\n}\n\n/**\n * Wait for the extension to become available (with timeout)\n */\nexport function waitForExtension(timeoutMs = 5000): Promise<boolean> {\n\treturn new Promise((resolve) => {\n\t\tif (isExtensionAvailable()) {\n\t\t\tresolve(true);\n\t\t\treturn;\n\t\t}\n\n\t\tconst startTime = Date.now();\n\t\tconst checkInterval = setInterval(() => {\n\t\t\tif (isExtensionAvailable()) {\n\t\t\t\tclearInterval(checkInterval);\n\t\t\t\tresolve(true);\n\t\t\t} else if (Date.now() - startTime >= timeoutMs) {\n\t\t\t\tclearInterval(checkInterval);\n\t\t\t\tresolve(false);\n\t\t\t}\n\t\t}, 100);\n\t});\n}\n",
    "/**\n * EventSource wrapper that captures SSE events and sends them to the extension\n */\n\nimport type {\n\tConnectionEvent,\n\tHelperConfig,\n\tHelperMessage,\n\tSSEEventData,\n} from './types';\nimport { postMessageToExtension } from './messenger';\n\nconst VERSION = '0.1.1';\n\n// Store the original EventSource\nconst OriginalEventSource = window.EventSource;\n\n// Track wrapped EventSource instances\nconst activeConnections = new WeakMap<EventSource, EventSourceMetadata>();\n\ninterface EventSourceMetadata {\n\turl: string;\n\tconfig: Required<HelperConfig>;\n}\n\n/**\n * Create a wrapped EventSource that captures events\n */\nexport function createEventSourceWrapper(\n\tconfig: Required<HelperConfig>,\n): typeof EventSource {\n\treturn new Proxy(OriginalEventSource, {\n\t\tconstruct(target, args: [string | URL, EventSourceInit?]) {\n\t\t\tconst [url, _init] = args;\n\t\t\tconst urlString = url.toString();\n\n\t\t\t// Check if URL should be captured\n\t\t\tif (!config.urlFilter(urlString)) {\n\t\t\t\tif (config.debug) {\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t'[GraphQL Stream Viewer Helper] URL filtered out:',\n\t\t\t\t\t\turlString,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn new target(...args);\n\t\t\t}\n\n\t\t\tif (config.debug) {\n\t\t\t\tconsole.log(\n\t\t\t\t\t'[GraphQL Stream Viewer Helper] Wrapping EventSource:',\n\t\t\t\t\turlString,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Create the native EventSource instance\n\t\t\tconst eventSource = new target(...args);\n\n\t\t\t// Store metadata\n\t\t\tactiveConnections.set(eventSource, {\n\t\t\t\turl: urlString,\n\t\t\t\tconfig,\n\t\t\t});\n\n\t\t\t// Use the NATIVE addEventListener to capture ALL events\n\t\t\t// This works regardless of whether user code uses addEventListener or on* properties\n\t\t\tconst nativeAddEventListener = OriginalEventSource.prototype.addEventListener.bind(eventSource);\n\n\t\t\t// Capture message events (default SSE event type)\n\t\t\tnativeAddEventListener('message', (event: Event) => {\n\t\t\t\tif (config.debug) {\n\t\t\t\t\tconsole.log('[GraphQL Stream Viewer Helper] Message event captured:', event);\n\t\t\t\t}\n\t\t\t\tcaptureEvent(eventSource, 'message', event);\n\t\t\t});\n\n\t\t\t// Capture GraphQL Yoga SSE events (uses 'next' event type)\n\t\t\tnativeAddEventListener('next', (event: Event) => {\n\t\t\t\tif (config.debug) {\n\t\t\t\t\tconsole.log('[GraphQL Stream Viewer Helper] Next event captured:', event);\n\t\t\t\t}\n\t\t\t\tcaptureEvent(eventSource, 'next', event);\n\t\t\t});\n\n\t\t\t// Capture 'complete' events (GraphQL subscription completion)\n\t\t\tnativeAddEventListener('complete', (event: Event) => {\n\t\t\t\tif (config.debug) {\n\t\t\t\t\tconsole.log('[GraphQL Stream Viewer Helper] Complete event captured');\n\t\t\t\t}\n\t\t\t\tcaptureEvent(eventSource, 'complete', event);\n\t\t\t});\n\n\t\t\t// Capture open events\n\t\t\tnativeAddEventListener('open', (_event: Event) => {\n\t\t\t\tif (config.debug) {\n\t\t\t\t\tconsole.log('[GraphQL Stream Viewer Helper] Open event captured');\n\t\t\t\t}\n\t\t\t\tsendConnectionEvent(eventSource, 'open', urlString);\n\t\t\t});\n\n\t\t\t// Capture error events\n\t\t\tnativeAddEventListener('error', (event: Event) => {\n\t\t\t\tif (config.debug) {\n\t\t\t\t\tconsole.log('[GraphQL Stream Viewer Helper] Error event captured');\n\t\t\t\t}\n\t\t\t\tsendConnectionEvent(eventSource, 'error', urlString, event);\n\t\t\t});\n\n\t\t\t// Wrap the close method to send close event\n\t\t\tconst originalClose = eventSource.close.bind(eventSource);\n\t\t\teventSource.close = function () {\n\t\t\t\tif (config.debug) {\n\t\t\t\t\tconsole.log('[GraphQL Stream Viewer Helper] Close called');\n\t\t\t\t}\n\t\t\t\tsendConnectionEvent(eventSource, 'close', urlString);\n\t\t\t\tactiveConnections.delete(eventSource);\n\t\t\t\toriginalClose();\n\t\t\t};\n\n\t\t\treturn eventSource;\n\t\t},\n\t}) as typeof EventSource;\n}\n\n/**\n * Capture an SSE event and send to extension\n */\nfunction captureEvent(\n\teventSource: EventSource,\n\ttype: string,\n\tevent: Event,\n): void {\n\tconst metadata = activeConnections.get(eventSource);\n\tif (!metadata) {\n\t\treturn;\n\t}\n\n\tconst messageEvent = event as MessageEvent;\n\tconst eventData: SSEEventData = {\n\t\ttype,\n\t\tdata: messageEvent.data as string,\n\t\tid: messageEvent.lastEventId || undefined,\n\t\ttimestamp: Date.now(),\n\t\turl: metadata.url,\n\t\tlastEventId: (eventSource as any).lastEventId || messageEvent.lastEventId,\n\t\treadyState: eventSource.readyState,\n\t};\n\n\tconst message: HelperMessage = {\n\t\ttype: 'GRAPHQL_SSE_EVENT',\n\t\tdata: eventData,\n\t\tversion: VERSION,\n\t\tsource: 'graphql-stream-viewer-helper',\n\t};\n\n\tpostMessageToExtension(message, metadata.config.debug);\n}\n\n/**\n * Send a connection lifecycle event to extension\n */\nfunction sendConnectionEvent(\n\teventSource: EventSource,\n\ttype: 'open' | 'close' | 'error',\n\turl: string,\n\terrorEvent?: Event,\n): void {\n\tconst metadata = activeConnections.get(eventSource);\n\tif (!metadata) {\n\t\treturn;\n\t}\n\n\tconst connectionEvent: ConnectionEvent = {\n\t\ttype,\n\t\turl,\n\t\ttimestamp: Date.now(),\n\t};\n\n\tif (type === 'error' && errorEvent) {\n\t\tconnectionEvent.error = {\n\t\t\tmessage: errorEvent.type || 'Unknown error',\n\t\t\tstack: (errorEvent as ErrorEvent).error?.stack,\n\t\t};\n\t}\n\n\tconst message: HelperMessage = {\n\t\ttype: 'GRAPHQL_SSE_CONNECTION',\n\t\tdata: connectionEvent,\n\t\tversion: VERSION,\n\t\tsource: 'graphql-stream-viewer-helper',\n\t};\n\n\tpostMessageToExtension(message, metadata.config.debug);\n}\n\n/**\n * Install the EventSource wrapper globally\n */\nexport function installEventSourceWrapper(\n\tconfig: Required<HelperConfig>,\n): void {\n\tif (window.EventSource === OriginalEventSource) {\n\t\twindow.EventSource = createEventSourceWrapper(config);\n\n\t\tif (config.debug) {\n\t\t\tconsole.log(\n\t\t\t\t'[GraphQL Stream Viewer Helper] EventSource wrapper installed',\n\t\t\t);\n\t\t}\n\t}\n}\n\n/**\n * Restore the original EventSource\n */\nexport function uninstallEventSourceWrapper(): void {\n\tif (window.EventSource !== OriginalEventSource) {\n\t\twindow.EventSource = OriginalEventSource;\n\t\tconsole.log(\n\t\t\t'[GraphQL Stream Viewer Helper] EventSource wrapper uninstalled',\n\t\t);\n\t}\n}\n",
    "/**\n * GraphQL Stream Viewer Helper Library\n * Enables live SSE event monitoring for the GraphQL Stream Viewer extension\n */\n\nimport type { HelperConfig, HelperConnection } from './types';\nimport {\n\tinstallEventSourceWrapper,\n\tuninstallEventSourceWrapper,\n} from './eventsource-wrapper';\nimport { isExtensionAvailable, waitForExtension } from './messenger';\n\nexport type { HelperConfig, HelperConnection, SSEEventData, ConnectionEvent } from './types';\n\nconst DEFAULT_CONFIG: Required<HelperConfig> = {\n\tcaptureSSE: true,\n\tcaptureHTTP: false,\n\tdebug: false,\n\turlFilter: (url: string) => {\n\t\tconst lowerUrl = url.toLowerCase();\n\t\treturn (\n\t\t\tlowerUrl.includes('/graphql') ||\n\t\t\tlowerUrl.includes('/gql') ||\n\t\t\tlowerUrl.includes('query=')\n\t\t);\n\t},\n};\n\nlet currentConnection: HelperConnection | null = null;\n\n/**\n * Connect to the GraphQL Stream Viewer extension\n * This enables live SSE event monitoring\n *\n * @param config - Configuration options\n * @returns A connection object with disconnect method\n *\n * @example\n * ```typescript\n * import { connectDevTools } from '@graphql-stream-viewer/helper';\n *\n * // Connect with default config\n * const connection = connectDevTools();\n *\n * // Later, when you want to disconnect\n * connection.disconnect();\n * ```\n *\n * @example\n * ```typescript\n * // Connect with custom config\n * const connection = connectDevTools({\n *   debug: true,\n *   captureHTTP: true,\n *   urlFilter: (url) => url.includes('/api/graphql')\n * });\n * ```\n */\nexport function connectDevTools(\n\tconfig: HelperConfig = {},\n): HelperConnection {\n\t// Merge with defaults\n\tconst finalConfig: Required<HelperConfig> = {\n\t\t...DEFAULT_CONFIG,\n\t\t...config,\n\t};\n\n\t// Don't connect multiple times\n\tif (currentConnection) {\n\t\tif (finalConfig.debug) {\n\t\t\tconsole.warn(\n\t\t\t\t'[GraphQL Stream Viewer Helper] Already connected. Call disconnect() first.',\n\t\t\t);\n\t\t}\n\t\treturn currentConnection;\n\t}\n\n\tif (finalConfig.debug) {\n\t\tconsole.log('[GraphQL Stream Viewer Helper] Connecting...', finalConfig);\n\t}\n\n\t// Install EventSource wrapper\n\tif (finalConfig.captureSSE) {\n\t\tinstallEventSourceWrapper(finalConfig);\n\t}\n\n\t// TODO: Install fetch/XHR wrapper for HTTP requests\n\tif (finalConfig.captureHTTP) {\n\t\tif (finalConfig.debug) {\n\t\t\tconsole.warn(\n\t\t\t\t'[GraphQL Stream Viewer Helper] HTTP capture not yet implemented',\n\t\t\t);\n\t\t}\n\t}\n\n\t// Create connection object\n\tconst connection: HelperConnection = {\n\t\tdisconnect: () => {\n\t\t\tif (finalConfig.captureSSE) {\n\t\t\t\tuninstallEventSourceWrapper();\n\t\t\t}\n\n\t\t\tif (finalConfig.debug) {\n\t\t\t\tconsole.log('[GraphQL Stream Viewer Helper] Disconnected');\n\t\t\t}\n\n\t\t\tcurrentConnection = null;\n\t\t},\n\n\t\tisConnected: () => {\n\t\t\treturn currentConnection === connection;\n\t\t},\n\n\t\tgetConfig: () => {\n\t\t\treturn finalConfig;\n\t\t},\n\t};\n\n\tcurrentConnection = connection;\n\n\tif (finalConfig.debug) {\n\t\tconsole.log('[GraphQL Stream Viewer Helper] Connected successfully');\n\t}\n\n\treturn connection;\n}\n\n/**\n * Disconnect from the GraphQL Stream Viewer extension\n * This removes all wrappers and stops capturing events\n */\nexport function disconnect(): void {\n\tif (currentConnection) {\n\t\tcurrentConnection.disconnect();\n\t}\n}\n\n/**\n * Check if currently connected to the extension\n */\nexport function isConnected(): boolean {\n\treturn currentConnection?.isConnected() ?? false;\n}\n\n/**\n * Check if the GraphQL Stream Viewer extension is available\n * Note: This is a best-effort check\n */\nexport function checkExtensionAvailable(): boolean {\n\treturn isExtensionAvailable();\n}\n\n/**\n * Wait for the extension to become available (with timeout)\n * Useful for ensuring the extension is loaded before connecting\n *\n * @param timeoutMs - Timeout in milliseconds (default: 5000)\n * @returns Promise that resolves to true if extension is available\n *\n * @example\n * ```typescript\n * import { waitForExtension, connectDevTools } from '@graphql-stream-viewer/helper';\n *\n * async function setupDevTools() {\n *   const available = await waitForExtension();\n *   if (available) {\n *     connectDevTools({ debug: true });\n *   }\n * }\n * ```\n */\nexport { waitForExtension };\n\n/**\n * Get the current connection, if any\n */\nexport function getConnection(): HelperConnection | null {\n\treturn currentConnection;\n}\n",
    "/**\n * Auto-initialization module\n * Import this to automatically connect to the extension with default settings\n *\n * @example\n * ```typescript\n * // In your main entry file (e.g., index.ts or main.ts)\n * import '@graphql-stream-viewer/helper/auto';\n * ```\n */\n\nimport { connectDevTools } from './index';\n\n// Automatically connect when this module is imported\nif (typeof window !== 'undefined') {\n\t// Wait for DOM to be ready\n\tif (document.readyState === 'loading') {\n\t\tdocument.addEventListener('DOMContentLoaded', () => {\n\t\t\tconnectDevTools({\n\t\t\t\tdebug: process.env.NODE_ENV === 'development',\n\t\t\t});\n\t\t});\n\t} else {\n\t\t// DOM already loaded\n\t\tconnectDevTools({\n\t\t\tdebug: process.env.NODE_ENV === 'development',\n\t\t});\n\t}\n}\n\n// Note: No exports - this is a side-effect only module\n"
  ],
  "mappings": "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",
  "debugId": "D22567F16C30D4A164756E2164756E21",
  "names": []
}