@fairfox/polly 0.13.0 → 0.13.2
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/src/background/index.d.ts +9 -1
- package/dist/src/background/index.js +3 -3
- package/dist/src/background/index.js.map +3 -3
- package/dist/src/index.js +6 -5
- package/dist/src/index.js.map +3 -3
- package/dist/src/shared/lib/context-helpers.d.ts +23 -1
- package/dist/src/shared/lib/context-helpers.js +6 -5
- package/dist/src/shared/lib/context-helpers.js.map +3 -3
- package/dist/tools/teach/src/cli.js +143 -1
- package/dist/tools/teach/src/cli.js.map +3 -3
- package/dist/tools/verify/src/cli.js +6 -1
- package/dist/tools/verify/src/cli.js.map +3 -3
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ExtensionAdapters } from "../shared/adapters";
|
|
1
2
|
import type { MessageBus } from "../shared/lib/message-bus";
|
|
2
3
|
import type { BaseMessage, ExtensionMessage } from "../shared/types/messages";
|
|
3
4
|
/**
|
|
@@ -6,6 +7,7 @@ import type { BaseMessage, ExtensionMessage } from "../shared/types/messages";
|
|
|
6
7
|
* This is the recommended way to setup your background script.
|
|
7
8
|
* It automatically creates the message bus and router.
|
|
8
9
|
*
|
|
10
|
+
* @param adapters - Optional extension adapters. If not provided, Chrome adapters will be used.
|
|
9
11
|
* @returns MessageBus instance for registering handlers
|
|
10
12
|
*
|
|
11
13
|
* @example
|
|
@@ -25,7 +27,13 @@ import type { BaseMessage, ExtensionMessage } from "../shared/types/messages";
|
|
|
25
27
|
* type MyMessages = { type: 'MY_MESSAGE'; data: string }
|
|
26
28
|
* const bus = createBackground<MyMessages>()
|
|
27
29
|
* ```
|
|
30
|
+
*
|
|
31
|
+
* @example With mock adapters for testing
|
|
32
|
+
* ```typescript
|
|
33
|
+
* import { createMockAdapters } from '@fairfox/polly/test'
|
|
34
|
+
* const bus = createBackground(createMockAdapters())
|
|
35
|
+
* ```
|
|
28
36
|
*/
|
|
29
|
-
export declare function createBackground<TMessage extends BaseMessage = ExtensionMessage>(): MessageBus<TMessage>;
|
|
37
|
+
export declare function createBackground<TMessage extends BaseMessage = ExtensionMessage>(adapters?: ExtensionAdapters): MessageBus<TMessage>;
|
|
30
38
|
export { getMessageBus } from "../shared/lib/message-bus";
|
|
31
39
|
export { MessageRouter } from "./message-router";
|
|
@@ -1469,8 +1469,8 @@ class MessageRouter {
|
|
|
1469
1469
|
}
|
|
1470
1470
|
|
|
1471
1471
|
// src/background/index.ts
|
|
1472
|
-
function createBackground() {
|
|
1473
|
-
const bus = getMessageBus("background",
|
|
1472
|
+
function createBackground(adapters) {
|
|
1473
|
+
const bus = getMessageBus("background", adapters, { skipListenerSetup: true });
|
|
1474
1474
|
new MessageRouter(bus);
|
|
1475
1475
|
return bus;
|
|
1476
1476
|
}
|
|
@@ -1480,4 +1480,4 @@ export {
|
|
|
1480
1480
|
MessageRouter
|
|
1481
1481
|
};
|
|
1482
1482
|
|
|
1483
|
-
//# debugId=
|
|
1483
|
+
//# debugId=6D0BF9905E57154464756E2164756E21
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"// Runtime handler execution tracking to prevent double-execution bugs\n// Only active in development mode, zero runtime cost in production\n\nexport class HandlerExecutionTracker {\n private executions = new Map<string, Map<string, number>>(); // messageId → handlerType → count\n private readonly isDevelopment: boolean;\n\n constructor() {\n // Check if we're in development mode or test mode\n this.isDevelopment =\n typeof process !== \"undefined\" &&\n (process.env?.NODE_ENV === \"development\" || process.env?.NODE_ENV === \"test\");\n }\n\n /**\n * Track a handler execution. Throws error if handler executes multiple times\n * for the same message ID.\n *\n * @param messageId - Unique message identifier\n * @param handlerType - Handler type (e.g., 'TODO_ADD')\n * @throws Error if handler already executed for this message\n */\n track(messageId: string, handlerType: string): void {\n if (!this.isDevelopment) return;\n\n let handlerCounts = this.executions.get(messageId);\n if (!handlerCounts) {\n handlerCounts = new Map();\n this.executions.set(messageId, handlerCounts);\n }\n\n const count = (handlerCounts.get(handlerType) || 0) + 1;\n handlerCounts.set(handlerType, count);\n\n if (count > 1) {\n const error = new Error(\n `🔴 DOUBLE EXECUTION DETECTED\\n\\nHandler \"${handlerType}\" executed ${count} times for message ${messageId}.\\n\\nThis indicates multiple chrome.runtime.onMessage listeners are registered.\\nCommon causes:\\n 1. Both MessageBus and MessageRouter registered listeners\\n 2. createBackground() called multiple times\\n 3. Handler registered in multiple places\\n\\nFix: Ensure only ONE listener is registered. In background scripts,\\nuse createBackground() instead of getMessageBus().\\n`\n );\n\n console.error(error);\n\n // Also log the execution trace\n console.error(\"Execution trace for message:\", messageId);\n console.error(Array.from(handlerCounts.entries()));\n\n throw error;\n }\n\n // Cleanup old messages after 5 seconds to prevent memory leak\n setTimeout(() => {\n this.executions.delete(messageId);\n }, 5000);\n }\n\n /**\n * Reset all tracked executions. Useful for testing.\n */\n reset(): void {\n this.executions.clear();\n }\n\n /**\n * Get execution count for a specific message and handler.\n * Useful for testing.\n */\n getExecutionCount(messageId: string, handlerType: string): number {\n return this.executions.get(messageId)?.get(handlerType) || 0;\n }\n}\n\n// Global singleton instance\nexport const globalExecutionTracker = new HandlerExecutionTracker();\n",
|
|
19
19
|
"// Type-safe message bus for extension communication\n\nimport type { ExtensionAdapters, MessageSender } from \"../adapters\";\nimport { createChromeAdapters } from \"../adapters\";\nimport type {\n BaseMessage,\n Context,\n ExtensionMessage,\n MessageResponse,\n RoutedMessage,\n RoutedResponse,\n} from \"../types/messages\";\nimport { ALL_CONTEXTS } from \"../types/messages\";\nimport type {\n BackgroundHelpers,\n ContentScriptHelpers,\n DevToolsHelpers,\n OptionsHelpers,\n PopupHelpers,\n SidePanelHelpers,\n} from \"./context-specific-helpers\";\nimport {\n createBackgroundHelpers,\n createContentScriptHelpers,\n createDevToolsHelpers,\n createOptionsHelpers,\n createPopupHelpers,\n createSidePanelHelpers,\n} from \"./context-specific-helpers\";\nimport { ConnectionError, ErrorHandler, HandlerError, TimeoutError } from \"./errors\";\nimport { globalExecutionTracker } from \"./handler-execution-tracker\";\n\n// Type guards for runtime message validation\n// Note: These validate structure but can't validate TMessage type at runtime\nexport function isRoutedMessage<TMessage extends BaseMessage = BaseMessage>(\n value: unknown\n): value is RoutedMessage<TMessage> {\n if (typeof value !== \"object\" || value === null) return false;\n // Use 'in' operator for type narrowing - no cast needed\n if (!(\"id\" in value) || !(\"source\" in value) || !(\"targets\" in value) || !(\"payload\" in value)) {\n return false;\n }\n // TypeScript now knows these properties exist\n return (\n typeof value.id === \"string\" &&\n typeof value.source === \"string\" &&\n Array.isArray(value.targets) &&\n typeof value.payload === \"object\" &&\n value.payload !== null\n );\n}\n\nexport function isRoutedResponse<TMessage extends BaseMessage = BaseMessage>(\n value: unknown\n): value is RoutedResponse<TMessage> {\n if (typeof value !== \"object\" || value === null) return false;\n // Use 'in' operator for type narrowing - no cast needed\n if (!(\"id\" in value) || !(\"success\" in value)) {\n return false;\n }\n // TypeScript now knows these properties exist\n return typeof value.id === \"string\" && typeof value.success === \"boolean\";\n}\n\ntype PendingRequest<TMessage extends BaseMessage = ExtensionMessage> = {\n // Accepts the union of all possible response types\n // Type safety is enforced at handler registration (.on) and invocation (send)\n resolve: (value: MessageResponse<TMessage> | undefined) => void;\n reject: (error: Error) => void;\n timestamp: number;\n timeout: NodeJS.Timeout;\n};\n\nexport class MessageBus<TMessage extends BaseMessage = ExtensionMessage> {\n public context: Context;\n public adapters: ExtensionAdapters;\n public helpers:\n | ContentScriptHelpers\n | DevToolsHelpers\n | PopupHelpers\n | OptionsHelpers\n | SidePanelHelpers\n | BackgroundHelpers\n | Record<string, never>;\n public pendingRequests = new Map<string, PendingRequest<TMessage>>();\n // Handlers Map stores arrays of functions with varying signatures\n // Type safety is enforced at registration (.on()) and invocation (send())\n // biome-ignore lint/complexity/noBannedTypes: Function type needed for dynamic handler map\n private handlers = new Map<string, Function[]>();\n private port: ReturnType<ExtensionAdapters[\"runtime\"][\"connect\"]> | null = null;\n private errorHandler: ErrorHandler;\n private userErrorHandlers: Array<(error: Error, bus: MessageBus<TMessage>) => void> = [];\n private stateAccessor: (() => unknown) | null = null;\n public messageListener:\n | ((\n message: unknown,\n sender: MessageSender,\n sendResponse: (response: unknown) => void\n ) => boolean)\n | null = null;\n\n constructor(\n context: Context,\n adapters?: ExtensionAdapters,\n options?: { skipListenerSetup?: boolean }\n ) {\n this.context = context;\n this.adapters = adapters || createChromeAdapters(context);\n this.errorHandler = new ErrorHandler(this.adapters.logger);\n this.helpers = this.createContextHelpers();\n\n // Skip listener setup if MessageRouter will handle it\n if (!options?.skipListenerSetup) {\n this.setupListeners();\n }\n }\n\n /**\n * Send a message with type safety.\n * Response type is inferred from message type, though TypeScript requires\n * the return type to be widened due to Map storage limitations.\n * Runtime type safety is ensured by handler registration and invocation.\n */\n async send<T extends TMessage>(\n payload: T,\n options?: {\n target?: Context | Context[];\n tabId?: number;\n timeout?: number;\n }\n ): Promise<\n | MessageResponse<Extract<TMessage, { type: T extends { type: infer TType } ? TType : never }>>\n | undefined\n > {\n const id = crypto.randomUUID();\n\n // For custom messages (not ExtensionMessage), targets must be explicitly provided\n let targets: Context[];\n if (options?.target) {\n // Handle single target from options\n if (Array.isArray(options.target)) {\n targets = options.target;\n } else {\n targets = [options.target];\n }\n } else {\n const inferredTarget = this.inferTarget(payload.type);\n if (!inferredTarget) {\n throw new Error(\n `Message type \"${payload.type}\" is not a framework message. Please provide explicit 'target' option.`\n );\n }\n // inferredTarget can be a single context or an array\n targets = Array.isArray(inferredTarget) ? inferredTarget : [inferredTarget];\n }\n\n const message: RoutedMessage<T> = {\n id,\n source: this.context,\n targets,\n ...(options?.tabId !== undefined && { tabId: options.tabId }),\n timestamp: Date.now(),\n payload,\n };\n\n return new Promise<MessageResponse<T> | undefined>((resolve, reject) => {\n const timeoutMs = options?.timeout || 5000;\n const timeout = setTimeout(() => {\n this.pendingRequests.delete(id);\n const error = new TimeoutError(`Message timeout: ${payload.type}`, timeoutMs, {\n messageType: payload.type,\n targets,\n });\n this.notifyErrorHandlers(error);\n reject(this.errorHandler.reject(error));\n }, timeoutMs);\n\n this.pendingRequests.set(id, {\n resolve: (value) => {\n clearTimeout(timeout);\n resolve(value);\n },\n reject: (error) => {\n clearTimeout(timeout);\n reject(error);\n },\n timestamp: Date.now(),\n timeout,\n });\n\n // Send via appropriate channel\n this.sendMessage(message);\n });\n }\n\n /**\n * Broadcast message to all contexts.\n * Used for state synchronization.\n */\n broadcast<T extends TMessage>(payload: T): void {\n const message: RoutedMessage<T> = {\n id: crypto.randomUUID(),\n source: this.context,\n targets: ALL_CONTEXTS,\n timestamp: Date.now(),\n payload,\n };\n\n this.sendMessage(message);\n }\n\n /**\n * Register a typed message handler.\n * Handler signature is enforced based on message type.\n * Multiple handlers can be registered for the same message type.\n */\n on<T extends TMessage[\"type\"]>(\n type: T,\n handler: (\n payload: Extract<TMessage, { type: T }>,\n message: RoutedMessage<Extract<TMessage, { type: T }>>\n ) =>\n | Promise<MessageResponse<Extract<TMessage, { type: T }>>>\n | MessageResponse<Extract<TMessage, { type: T }>>\n ): void {\n // Store handler with runtime type safety\n // TypeScript can't verify cross-boundary type safety through the Map storage,\n // but the .on() signature ensures the handler matches the message type\n const existing = this.handlers.get(type) || [];\n existing.push(handler);\n this.handlers.set(type, existing);\n }\n\n /**\n * Register multiple message handlers at once.\n * Reduces boilerplate when defining many handlers.\n *\n * @example\n * ```typescript\n * bus.registerHandlers({\n * 'MY_MESSAGE': async (payload) => ({ success: true }),\n * 'ANOTHER_MESSAGE': async (payload) => ({ data: payload }),\n * })\n * ```\n */\n // biome-ignore lint/complexity/noBannedTypes: Need to accept user-defined message types beyond ExtensionMessage\n registerHandlers(handlers: Record<string, Function | undefined>): void {\n for (const [type, handler] of Object.entries(handlers)) {\n if (handler) {\n const existing = this.handlers.get(type) || [];\n existing.push(handler);\n this.handlers.set(type, existing);\n }\n }\n }\n\n /**\n * Register a global error handler.\n * Called when errors occur during message handling.\n *\n * @example\n * ```typescript\n * bus.onError((error, bus) => {\n * console.error(`[${bus.context}] Error:`, error)\n * // Report to error tracking service\n * })\n * ```\n */\n onError(handler: (error: Error, bus: MessageBus<TMessage>) => void): void {\n this.userErrorHandlers.push(handler);\n }\n\n /**\n * Register a state accessor for runtime constraint checking.\n * The accessor function should return the current state object that constraints will check against.\n *\n * @param accessor - Function that returns the current state object\n *\n * @example\n * ```typescript\n * const state = { loggedIn: false };\n * bus.setStateAccessor(() => state);\n *\n * // Now constraints can be checked against this state\n * $constraints(\"loggedIn\", {\n * USER_LOGOUT: {\n * requires: (s) => s.loggedIn === true,\n * message: \"Must be logged in\"\n * }\n * }, { runtime: true });\n * ```\n */\n setStateAccessor(accessor: () => unknown): void {\n this.stateAccessor = accessor;\n }\n\n /**\n * Send message to background context.\n * Explicit routing API for better DX.\n *\n * @example\n * ```typescript\n * const result = await bus.sendToBackground({ type: 'GET_SETTINGS' })\n * ```\n */\n async sendToBackground<T extends TMessage>(\n payload: T,\n options?: { timeout?: number }\n ): Promise<\n | MessageResponse<Extract<TMessage, { type: T extends { type: infer TType } ? TType : never }>>\n | undefined\n > {\n return this.send(payload, { ...options, target: \"background\" });\n }\n\n /**\n * Send message to a specific content script.\n *\n * @example\n * ```typescript\n * const result = await bus.sendToContentScript(tabId, { type: 'ANALYZE_PAGE' })\n * ```\n */\n async sendToContentScript<T extends TMessage>(\n tabId: number,\n payload: T,\n options?: { timeout?: number }\n ): Promise<\n | MessageResponse<Extract<TMessage, { type: T extends { type: infer TType } ? TType : never }>>\n | undefined\n > {\n return this.send(payload, { ...options, target: \"content\", tabId });\n }\n\n /**\n * Send message to all tabs.\n * Useful for broadcasting updates to all content scripts.\n *\n * @example\n * ```typescript\n * await bus.sendToAllTabs({ type: 'REFRESH_UI' })\n * ```\n */\n async sendToAllTabs<T extends TMessage>(\n payload: T,\n options?: { timeout?: number }\n ): Promise<\n Array<\n | MessageResponse<\n Extract<TMessage, { type: T extends { type: infer TType } ? TType : never }>\n >\n | undefined\n >\n > {\n const tabs = await this.adapters.tabs.query({});\n return Promise.all(\n tabs.map((tab) =>\n tab.id ? this.sendToContentScript(tab.id, payload, options) : Promise.resolve(undefined)\n )\n );\n }\n\n /**\n * Send message to popup context.\n *\n * @example\n * ```typescript\n * await bus.sendToPopup({ type: 'UPDATE_UI', data: newData })\n * ```\n */\n async sendToPopup<T extends TMessage>(\n payload: T,\n options?: { timeout?: number }\n ): Promise<\n | MessageResponse<Extract<TMessage, { type: T extends { type: infer TType } ? TType : never }>>\n | undefined\n > {\n return this.send(payload, { ...options, target: \"popup\" });\n }\n\n /**\n * Send message to options page.\n *\n * @example\n * ```typescript\n * await bus.sendToOptions({ type: 'SETTINGS_UPDATED' })\n * ```\n */\n async sendToOptions<T extends TMessage>(\n payload: T,\n options?: { timeout?: number }\n ): Promise<\n | MessageResponse<Extract<TMessage, { type: T extends { type: infer TType } ? TType : never }>>\n | undefined\n > {\n return this.send(payload, { ...options, target: \"options\" });\n }\n\n /**\n * Send message to devtools panel.\n *\n * @example\n * ```typescript\n * await bus.sendToDevTools({ type: 'INSPECTION_DATA', data: pageData })\n * ```\n */\n async sendToDevTools<T extends TMessage>(\n payload: T,\n options?: { timeout?: number }\n ): Promise<\n | MessageResponse<Extract<TMessage, { type: T extends { type: infer TType } ? TType : never }>>\n | undefined\n > {\n return this.send(payload, { ...options, target: \"devtools\" });\n }\n\n /**\n * Send message to side panel.\n *\n * @example\n * ```typescript\n * await bus.sendToSidePanel({ type: 'UPDATE_ACTIVITY_LOG' })\n * ```\n */\n async sendToSidePanel<T extends TMessage>(\n payload: T,\n options?: { timeout?: number }\n ): Promise<\n | MessageResponse<Extract<TMessage, { type: T extends { type: infer TType } ? TType : never }>>\n | undefined\n > {\n return this.send(payload, { ...options, target: \"sidepanel\" });\n }\n\n /**\n * Connect with long-lived port.\n * Used for persistent connections (DevTools, Content Scripts).\n */\n connect(name: string): void {\n if (this.port) {\n console.warn(`[${this.context}] Port already connected: ${this.port.name}`);\n return;\n }\n\n this.port = this.adapters.runtime.connect(name);\n\n this.port.onMessage((message: unknown) => {\n if (isRoutedMessage<TMessage>(message) || isRoutedResponse<TMessage>(message)) {\n this.handleMessage(message);\n }\n });\n\n this.port.onDisconnect(() => {\n this.adapters.logger.warn(\"Port disconnected\", {\n context: this.context,\n portName: name,\n });\n this.port = null;\n\n // Reject all pending requests\n for (const [id, pending] of this.pendingRequests.entries()) {\n const error = new ConnectionError(\"Port disconnected\", {\n context: this.context,\n portName: name,\n requestId: id,\n });\n this.notifyErrorHandlers(error);\n pending.reject(this.errorHandler.reject(error));\n clearTimeout(pending.timeout);\n this.pendingRequests.delete(id);\n }\n });\n }\n\n /**\n * Disconnect port if connected.\n */\n disconnect(): void {\n if (this.port) {\n this.port.disconnect();\n this.port = null;\n }\n }\n\n /**\n * Remove all handlers and clean up.\n */\n destroy(): void {\n this.disconnect();\n this.handlers.clear();\n\n // Clear all pending requests\n for (const pending of this.pendingRequests.values()) {\n clearTimeout(pending.timeout);\n }\n this.pendingRequests.clear();\n\n // Remove message listener to prevent leaks\n if (this.messageListener) {\n this.adapters.runtime.removeMessageListener(this.messageListener);\n }\n }\n\n private setupListeners(): void {\n // Listen for one-off messages via chrome.runtime.sendMessage\n this.messageListener = (\n message: unknown,\n sender: unknown,\n sendResponse: (response: unknown) => void\n ) => {\n if (isRoutedMessage<TMessage>(message) || isRoutedResponse<TMessage>(message)) {\n this.handleMessage(message, sender)\n .then((response) => sendResponse(response))\n .catch((error) => {\n sendResponse({ success: false, error: error.message });\n });\n }\n return true; // Indicates async response\n };\n this.adapters.runtime.onMessage(this.messageListener);\n\n // Content/Page script window messaging\n if (this.context === \"content\" || this.context === \"page\") {\n this.adapters.window.addEventListener(\"message\", (event: MessageEvent) => {\n if (event.source !== window) return;\n if (event.data?.__extensionMessage) {\n this.handleMessage(event.data.message);\n }\n });\n }\n }\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Message handling requires routing logic for different message types\n public async handleMessage(\n message: RoutedMessage<TMessage> | RoutedResponse<TMessage>,\n _sender?: unknown\n ): Promise<unknown> {\n // Handle response to our request\n if (\"success\" in message) {\n const pending = this.pendingRequests.get(message.id);\n if (pending) {\n this.pendingRequests.delete(message.id);\n clearTimeout(pending.timeout);\n\n if (message.success) {\n // Message data is typed as MessageResponse<TMessage> from RoutedResponse\n pending.resolve(message.data ?? undefined);\n } else {\n const error = new HandlerError(message.error || \"Unknown error\", \"unknown\", {\n messageId: message.id,\n });\n this.notifyErrorHandlers(error);\n pending.reject(this.errorHandler.reject(error));\n }\n }\n return;\n }\n\n // Ignore messages not targeted at us\n if (!message.targets.includes(this.context)) {\n // If we're background, we need to route it\n if (this.context === \"background\") {\n return; // Routing handled elsewhere\n }\n return;\n }\n\n // Handle incoming request\n const handlers = this.handlers.get(message.payload.type);\n if (!handlers || handlers.length === 0) {\n // For multi-target messages, don't warn if we have no handler\n if (message.targets.length === 1) {\n console.warn(`[${this.context}] No handler for message type: ${message.payload.type}`);\n }\n return { success: false, error: \"No handler\" };\n }\n\n // For multi-target messages (including broadcasts), call all handlers (don't send responses)\n if (message.targets.length > 1) {\n try {\n // Track execution to detect double-handler invocation\n globalExecutionTracker.track(message.id, message.payload.type);\n\n await Promise.all(handlers.map((handler) => handler(message.payload, message)));\n return { success: true, data: undefined, timestamp: Date.now() };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : \"Unknown error\",\n timestamp: Date.now(),\n };\n }\n }\n\n // For LOG messages, call all handlers but still send response (for backwards compat)\n if (message.payload.type === \"LOG\") {\n try {\n // Track execution to detect double-handler invocation\n globalExecutionTracker.track(message.id, message.payload.type);\n\n await Promise.all(handlers.map((handler) => handler(message.payload, message)));\n const response: RoutedResponse<TMessage> = {\n id: message.id,\n success: true,\n timestamp: Date.now(),\n };\n this.sendResponse(message, response);\n return response;\n } catch (error) {\n const response: RoutedResponse<TMessage> = {\n id: message.id,\n success: false,\n error: error instanceof Error ? error.message : \"Unknown error\",\n timestamp: Date.now(),\n };\n this.sendResponse(message, response);\n return response;\n }\n }\n\n // For other targeted messages, call first handler and send response\n try {\n // Track execution to detect double-handler invocation\n globalExecutionTracker.track(message.id, message.payload.type);\n\n // Check runtime constraints before handler execution\n if (this.stateAccessor) {\n try {\n const { checkPreconditions, isRuntimeConstraintsEnabled } = await import(\n \"./constraints.js\"\n );\n if (isRuntimeConstraintsEnabled()) {\n const currentState = this.stateAccessor();\n checkPreconditions(message.payload.type, currentState);\n }\n } catch (error) {\n // If constraint check fails, throw immediately\n if (error instanceof Error) {\n throw error;\n }\n // If import fails, log warning but continue (constraints not available)\n if (\n error &&\n typeof error === \"object\" &&\n \"code\" in error &&\n error.code === \"MODULE_NOT_FOUND\"\n ) {\n // Constraints module not available - continue without checking\n } else {\n throw error;\n }\n }\n }\n\n // We've already checked handlers.length > 0 above, so handlers[0] exists\n const handler = handlers[0];\n if (!handler) {\n throw new Error(`Handler not found for ${message.payload.type}`);\n }\n const data = await handler(message.payload, message);\n\n // Check postconditions after handler execution (optional)\n if (this.stateAccessor) {\n try {\n const { checkPostconditions, isRuntimeConstraintsEnabled } = await import(\n \"./constraints.js\"\n );\n if (isRuntimeConstraintsEnabled()) {\n const currentState = this.stateAccessor();\n checkPostconditions(message.payload.type, currentState);\n }\n } catch (error) {\n // Postcondition failures should be logged but not block response\n if (error instanceof Error && error.message.includes(\"Postcondition\")) {\n console.error(`[${this.context}] Postcondition failed:`, error.message);\n // Continue - postcondition failures don't block the response\n }\n }\n }\n\n const response: RoutedResponse<TMessage> = {\n id: message.id,\n success: true,\n data,\n timestamp: Date.now(),\n };\n\n this.sendResponse(message, response);\n return response;\n } catch (error) {\n const response: RoutedResponse<TMessage> = {\n id: message.id,\n success: false,\n error: error instanceof Error ? error.message : \"Unknown error\",\n timestamp: Date.now(),\n };\n\n this.sendResponse(message, response);\n return response;\n }\n }\n\n public sendMessage<T extends TMessage = TMessage>(message: RoutedMessage<T>): void {\n if (this.context === \"content\" && message.targets.includes(\"page\")) {\n // Content → Page via window.postMessage\n this.adapters.window.postMessage({ __extensionMessage: true, message }, \"*\");\n } else if (this.context === \"page\") {\n // Page → Content via window.postMessage\n this.adapters.window.postMessage({ __extensionMessage: true, message }, \"*\");\n } else if (this.port) {\n // Use long-lived port if connected (devtools, content, popup, options)\n this.port.postMessage(message);\n } else {\n // Use chrome.runtime.sendMessage (fallback for unconnected contexts)\n this.adapters.runtime.sendMessage(message);\n }\n }\n\n private sendResponse(request: RoutedMessage<TMessage>, response: RoutedResponse<TMessage>): void {\n if (this.context === \"content\" && request.source === \"page\") {\n // Content → Page response\n this.adapters.window.postMessage({ __extensionMessage: true, message: response }, \"*\");\n } else if (this.context === \"page\" && request.source === \"content\") {\n // Page → Content response\n this.adapters.window.postMessage({ __extensionMessage: true, message: response }, \"*\");\n } else if (this.port && (this.context === \"devtools\" || this.context === \"content\")) {\n // Use port for response\n this.port.postMessage(response);\n } else {\n // Use chrome.runtime.sendMessage\n this.adapters.runtime.sendMessage(response);\n }\n }\n\n private inferTarget(type: string): Context | Context[] | undefined {\n const handlers = {\n DOM_QUERY: \"content\",\n DOM_UPDATE: \"content\",\n DOM_INSERT: \"content\",\n DOM_REMOVE: \"content\",\n PAGE_EVAL: \"page\",\n PAGE_GET_VAR: \"page\",\n PAGE_CALL_FN: \"page\",\n PAGE_SET_VAR: \"page\",\n API_REQUEST: \"background\",\n API_BATCH: \"background\",\n CLIPBOARD_WRITE: \"offscreen\",\n CLIPBOARD_WRITE_HTML: \"offscreen\",\n CLIPBOARD_WRITE_RICH: \"offscreen\",\n CLIPBOARD_READ: \"offscreen\",\n CONTEXT_MENU_CREATE: \"background\",\n CONTEXT_MENU_REMOVE: \"background\",\n STATE_SYNC: ALL_CONTEXTS,\n TAB_QUERY: \"background\",\n TAB_GET_CURRENT: \"background\",\n TAB_RELOAD: \"background\",\n LOG: \"background\",\n LOGS_GET: \"background\",\n LOGS_CLEAR: \"background\",\n LOGS_EXPORT: \"background\",\n } as const;\n\n // Helper type guard: narrows string to a key of the object\n function isHandlerKey(key: string): key is keyof typeof handlers {\n return key in handlers;\n }\n\n // Type guard narrows string to known keys\n if (isHandlerKey(type)) {\n // TypeScript now knows type is keyof typeof handlers - no cast needed!\n return handlers[type];\n }\n\n // Unknown message type - caller must provide explicit target\n return undefined;\n }\n\n /**\n * Create context-specific helpers based on current context.\n * @private\n */\n private createContextHelpers():\n | ContentScriptHelpers\n | DevToolsHelpers\n | PopupHelpers\n | OptionsHelpers\n | SidePanelHelpers\n | BackgroundHelpers\n | Record<string, never> {\n switch (this.context) {\n case \"content\":\n return createContentScriptHelpers();\n case \"devtools\":\n return createDevToolsHelpers();\n case \"popup\":\n return createPopupHelpers(this.adapters);\n case \"options\":\n return createOptionsHelpers(this.adapters);\n case \"sidepanel\":\n return createSidePanelHelpers(this.adapters);\n case \"background\":\n return createBackgroundHelpers(this.adapters);\n default:\n return {};\n }\n }\n\n /**\n * Notify all registered error handlers.\n * @private\n */\n private notifyErrorHandlers(error: Error): void {\n for (const handler of this.userErrorHandlers) {\n try {\n handler(error, this);\n } catch (handlerError) {\n console.error(`[${this.context}] Error in error handler:`, handlerError);\n }\n }\n }\n}\n\n/**\n * Create a MessageBus for the given context.\n *\n * IMPORTANT: Only call this ONCE per context in your application.\n * Calling it multiple times will create multiple message listeners, causing\n * handlers to execute multiple times. Store the returned bus and reuse it.\n *\n * For background scripts, use createBackground() instead.\n */\nexport function getMessageBus<TMessage extends BaseMessage = ExtensionMessage>(\n context: Context,\n adapters?: ExtensionAdapters,\n options?: { skipListenerSetup?: boolean }\n): MessageBus<TMessage> {\n return new MessageBus<TMessage>(context, adapters, options);\n}\n",
|
|
20
20
|
"// Background message router - central hub for all messaging\n\nimport type { PortAdapter } from \"@/shared/adapters\";\nimport { ErrorHandler, MessageRouterError } from \"@/shared/lib/errors\";\nimport {\n getMessageBus,\n isRoutedMessage,\n isRoutedResponse,\n type MessageBus,\n} from \"@/shared/lib/message-bus\";\nimport type { BaseMessage, Context, RoutedMessage, RoutedResponse } from \"@/shared/types/messages\";\n\nexport class MessageRouter<TMessage extends BaseMessage = BaseMessage> {\n // Singleton enforcement - use boolean to avoid type issues with generic class\n private static instanceExists = false;\n\n // MessageRouter works with any message type - it just routes them\n private bus: MessageBus<TMessage>;\n private errorHandler: ErrorHandler;\n\n // Track connections by context and tab\n public contentPorts = new Map<number, PortAdapter>(); // tabId → Port\n public devtoolsPorts = new Map<number, PortAdapter>(); // tabId → Port\n private popupPort: PortAdapter | null = null;\n private optionsPort: PortAdapter | null = null;\n private offscreenPort: PortAdapter | null = null;\n private sidePanelPort: PortAdapter | null = null;\n\n constructor(bus?: MessageBus<TMessage>) {\n // Enforce singleton pattern to prevent double message handling\n if (MessageRouter.instanceExists) {\n throw new Error(\n \"🔴 MessageRouter already exists!\\n\\n\" +\n \"Only ONE MessageRouter can exist in the background context.\\n\" +\n \"Multiple MessageRouter instances will cause handlers to execute multiple times.\\n\\n\" +\n \"Fix: Ensure createBackground() is only called once at application startup.\\n\" +\n 'Do not call getMessageBus(\"background\") separately - use the bus returned by createBackground().'\n );\n }\n\n // Mark instance as existing - no cast needed with boolean\n MessageRouter.instanceExists = true;\n\n // No cast needed - types match now\n this.bus = bus || getMessageBus<TMessage>(\"background\");\n this.errorHandler = new ErrorHandler(this.bus.adapters.logger);\n this.setupPortConnections();\n this.setupTabListeners();\n this.setupMessageHandlers();\n }\n\n private setupPortConnections(): void {\n this.bus.adapters.runtime.onConnect((port) => {\n this.bus.adapters.logger.debug(\"Port connected\", { port: port.name });\n\n // Parse port name to determine context and tab\n const [context, tabIdStr] = port.name.split(\"-\");\n\n switch (context) {\n case \"content\": {\n const contentTabId = Number.parseInt(tabIdStr || \"0\", 10);\n if (!Number.isNaN(contentTabId)) {\n this.contentPorts.set(contentTabId, port);\n port.onDisconnect(() => {\n this.bus.adapters.logger.debug(\"Content port disconnected\", {\n tabId: contentTabId,\n });\n this.contentPorts.delete(contentTabId);\n });\n }\n break;\n }\n\n case \"devtools\": {\n const devtoolsTabId = Number.parseInt(tabIdStr || \"0\", 10);\n if (!Number.isNaN(devtoolsTabId)) {\n this.devtoolsPorts.set(devtoolsTabId, port);\n port.onDisconnect(() => {\n this.bus.adapters.logger.debug(\"DevTools port disconnected\", {\n tabId: devtoolsTabId,\n });\n this.devtoolsPorts.delete(devtoolsTabId);\n });\n }\n break;\n }\n\n case \"popup\":\n this.popupPort = port;\n port.onDisconnect(() => {\n this.bus.adapters.logger.debug(\"Popup disconnected\");\n this.popupPort = null;\n });\n break;\n\n case \"options\":\n this.optionsPort = port;\n port.onDisconnect(() => {\n this.bus.adapters.logger.debug(\"Options disconnected\");\n this.optionsPort = null;\n });\n break;\n\n case \"offscreen\":\n this.offscreenPort = port;\n port.onDisconnect(() => {\n this.bus.adapters.logger.debug(\"Offscreen disconnected\");\n this.offscreenPort = null;\n });\n break;\n\n case \"sidepanel\":\n this.sidePanelPort = port;\n port.onDisconnect(() => {\n this.bus.adapters.logger.debug(\"Side panel disconnected\");\n this.sidePanelPort = null;\n });\n break;\n }\n\n // Handle messages from this port\n port.onMessage((message: unknown) => {\n if (isRoutedResponse<TMessage>(message)) {\n // This is a response, route back to original sender\n this.routeResponse(message);\n } else if (isRoutedMessage<TMessage>(message)) {\n // This is a request, route to target\n this.routeMessage(message);\n }\n });\n });\n }\n\n private setupTabListeners(): void {\n // Clean up ports when tabs are closed\n this.bus.adapters.tabs.onRemoved((tabId) => {\n this.bus.adapters.logger.debug(\"Tab removed, cleaning up ports\", {\n tabId,\n });\n this.contentPorts.delete(tabId);\n this.devtoolsPorts.delete(tabId);\n });\n\n // Track tab updates\n this.bus.adapters.tabs.onUpdated((tabId, changeInfo, tab) => {\n if (changeInfo.status === \"complete\") {\n this.bus.adapters.logger.debug(\"Tab loaded\", { tabId, url: tab.url });\n }\n });\n }\n\n private setupMessageHandlers(): void {\n // Handle messages that need routing\n this.bus.adapters.runtime.onMessage((message: unknown, _sender, sendResponse) => {\n if (isRoutedResponse<TMessage>(message)) {\n this.routeResponse(message);\n } else if (isRoutedMessage<TMessage>(message)) {\n this.routeMessage(message).then(sendResponse);\n }\n return true;\n });\n }\n\n public async routeMessage(message: RoutedMessage<TMessage>): Promise<unknown> {\n this.bus.adapters.logger.debug(\"Routing message\", {\n type: message.payload.type,\n source: message.source,\n targets: message.targets,\n tabId: message.tabId,\n });\n\n // Route to each target in the targets array\n const results: unknown[] = [];\n for (const target of message.targets) {\n const result = await this.routeToSingleTarget(message, target);\n results.push(result);\n }\n\n // If single target, return single result; otherwise return array\n return message.targets.length === 1 ? results[0] : results;\n }\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Message routing requires conditional logic for different targets\n private async routeToSingleTarget(\n message: RoutedMessage<TMessage>,\n target: Context\n ): Promise<unknown> {\n // Route to specific context\n switch (target) {\n case \"background\":\n // Message is for background, let MessageBus handle it\n return this.bus.handleMessage(message);\n\n case \"content\": {\n if (!message.tabId) {\n this.bus.adapters.logger.warn(\"Content target requires tabId\", {\n messageType: message.payload.type,\n });\n return { success: false, error: \"tabId required for content target\" };\n }\n const contentPort = this.contentPorts.get(message.tabId);\n if (contentPort) {\n contentPort.postMessage(message);\n return undefined;\n }\n this.bus.adapters.logger.warn(\"No content script port for tab\", {\n tabId: message.tabId,\n messageType: message.payload.type,\n });\n return { success: false, error: \"Content script not connected\" };\n }\n\n case \"devtools\": {\n if (!message.tabId) {\n this.bus.adapters.logger.warn(\"DevTools target requires tabId\", {\n messageType: message.payload.type,\n });\n return {\n success: false,\n error: \"tabId required for devtools target\",\n };\n }\n const devtoolsPort = this.devtoolsPorts.get(message.tabId);\n if (devtoolsPort) {\n devtoolsPort.postMessage(message);\n return undefined;\n }\n this.bus.adapters.logger.warn(\"No DevTools port for tab\", {\n tabId: message.tabId,\n messageType: message.payload.type,\n });\n return { success: false, error: \"DevTools not connected\" };\n }\n\n case \"popup\":\n if (this.popupPort) {\n this.popupPort.postMessage(message);\n return undefined;\n }\n this.bus.adapters.logger.warn(\"Popup not connected\", {\n messageType: message.payload.type,\n });\n return { success: false, error: \"Popup not connected\" };\n\n case \"options\":\n if (this.optionsPort) {\n this.optionsPort.postMessage(message);\n return undefined;\n }\n this.bus.adapters.logger.warn(\"Options not connected\", {\n messageType: message.payload.type,\n });\n return { success: false, error: \"Options not connected\" };\n\n case \"offscreen\":\n if (this.offscreenPort) {\n this.offscreenPort.postMessage(message);\n return undefined;\n }\n this.bus.adapters.logger.warn(\"Offscreen not connected\", {\n messageType: message.payload.type,\n });\n return { success: false, error: \"Offscreen not connected\" };\n\n case \"page\": {\n // Page script is not directly connected to background\n // Must route through content script\n if (!message.tabId) {\n this.bus.adapters.logger.warn(\"Page target requires tabId\", {\n messageType: message.payload.type,\n });\n return { success: false, error: \"tabId required for page target\" };\n }\n const contentPortForPage = this.contentPorts.get(message.tabId);\n if (contentPortForPage) {\n contentPortForPage.postMessage(message);\n return undefined;\n }\n this.bus.adapters.logger.warn(\"No content script to forward to page\", {\n tabId: message.tabId,\n messageType: message.payload.type,\n });\n return { success: false, error: \"Content script not connected\" };\n }\n\n case \"sidepanel\":\n if (this.sidePanelPort) {\n this.sidePanelPort.postMessage(message);\n return undefined;\n }\n this.bus.adapters.logger.warn(\"Side panel not connected\", {\n messageType: message.payload.type,\n });\n return { success: false, error: \"Side panel not connected\" };\n\n default:\n this.bus.adapters.logger.warn(\"Unknown target context\", {\n target,\n messageType: message.payload.type,\n });\n return { success: false, error: `Unknown target context: ${target}` };\n }\n }\n\n private routeResponse(response: RoutedResponse<TMessage>): void {\n // Responses are handled by MessageBus automatically via pending requests\n this.bus.adapters.logger.debug(\"Routing response\", {\n messageId: response.id,\n });\n }\n\n // Public API\n async sendToTab(tabId: number, message: RoutedMessage<TMessage>): Promise<void> {\n const port = this.contentPorts.get(tabId);\n if (port) {\n port.postMessage(message);\n } else {\n this.errorHandler.throw(\n new MessageRouterError(\"No content script connected to tab\", {\n tabId,\n messageType: message.payload.type,\n })\n );\n }\n }\n\n // Broadcast is now just routing with targets array containing all contexts\n broadcastToAll(message: RoutedMessage<TMessage>): void {\n // Message already has targets array, just route it\n this.routeMessage(message);\n }\n\n isContentScriptConnected(tabId: number): boolean {\n return this.contentPorts.has(tabId);\n }\n\n getConnectedTabs(): number[] {\n return Array.from(this.contentPorts.keys());\n }\n\n /**\n * Reset singleton instance. Only for testing purposes.\n * @internal\n */\n static resetInstance(): void {\n MessageRouter.instanceExists = false;\n }\n}\n",
|
|
21
|
-
"// Background helper - simplifies background script setup\n\nimport type { MessageBus } from \"../shared/lib/message-bus\";\nimport { getMessageBus } from \"../shared/lib/message-bus\";\nimport type { BaseMessage, ExtensionMessage } from \"../shared/types/messages\";\nimport { MessageRouter } from \"./message-router\";\n\n/**\n * Initialize background script with message router.\n *\n * This is the recommended way to setup your background script.\n * It automatically creates the message bus and router.\n *\n * @returns MessageBus instance for registering handlers\n *\n * @example\n * ```typescript\n * // src/background/index.ts\n * import { createBackground } from '@fairfox/web-ext/background'\n *\n * const bus = createBackground()\n *\n * bus.on('MY_MESSAGE', async (payload) => {\n * return { success: true }\n * })\n * ```\n *\n * @example With custom message types\n * ```typescript\n * type MyMessages = { type: 'MY_MESSAGE'; data: string }\n * const bus = createBackground<MyMessages>()\n * ```\n */\nexport function createBackground
|
|
21
|
+
"// Background helper - simplifies background script setup\n\nimport type { ExtensionAdapters } from \"../shared/adapters\";\nimport type { MessageBus } from \"../shared/lib/message-bus\";\nimport { getMessageBus } from \"../shared/lib/message-bus\";\nimport type { BaseMessage, ExtensionMessage } from \"../shared/types/messages\";\nimport { MessageRouter } from \"./message-router\";\n\n/**\n * Initialize background script with message router.\n *\n * This is the recommended way to setup your background script.\n * It automatically creates the message bus and router.\n *\n * @param adapters - Optional extension adapters. If not provided, Chrome adapters will be used.\n * @returns MessageBus instance for registering handlers\n *\n * @example\n * ```typescript\n * // src/background/index.ts\n * import { createBackground } from '@fairfox/web-ext/background'\n *\n * const bus = createBackground()\n *\n * bus.on('MY_MESSAGE', async (payload) => {\n * return { success: true }\n * })\n * ```\n *\n * @example With custom message types\n * ```typescript\n * type MyMessages = { type: 'MY_MESSAGE'; data: string }\n * const bus = createBackground<MyMessages>()\n * ```\n *\n * @example With mock adapters for testing\n * ```typescript\n * import { createMockAdapters } from '@fairfox/polly/test'\n * const bus = createBackground(createMockAdapters())\n * ```\n */\nexport function createBackground<TMessage extends BaseMessage = ExtensionMessage>(\n adapters?: ExtensionAdapters\n): MessageBus<TMessage> {\n // Create MessageBus without setting up listeners (MessageRouter will handle that)\n const bus = getMessageBus<TMessage>(\"background\", adapters, { skipListenerSetup: true });\n\n // Initialize MessageRouter to handle all message routing (generic type matches)\n new MessageRouter<TMessage>(bus);\n\n return bus;\n}\n\nexport { getMessageBus } from \"../shared/lib/message-bus\";\n// Re-export for convenience\nexport { MessageRouter } from \"./message-router\";\n"
|
|
22
22
|
],
|
|
23
|
-
"mappings": "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",
|
|
24
|
-
"debugId": "
|
|
23
|
+
"mappings": "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",
|
|
24
|
+
"debugId": "6D0BF9905E57154464756E2164756E21",
|
|
25
25
|
"names": []
|
|
26
26
|
}
|
package/dist/src/index.js
CHANGED
|
@@ -1204,9 +1204,10 @@ function createContext(context, config = {}) {
|
|
|
1204
1204
|
onInit,
|
|
1205
1205
|
onError,
|
|
1206
1206
|
waitForDOM = true,
|
|
1207
|
-
logPrefix = `[${context.charAt(0).toUpperCase() + context.slice(1)}]
|
|
1207
|
+
logPrefix = `[${context.charAt(0).toUpperCase() + context.slice(1)}]`,
|
|
1208
|
+
adapters
|
|
1208
1209
|
} = config;
|
|
1209
|
-
const bus = getMessageBus(context);
|
|
1210
|
+
const bus = getMessageBus(context, adapters);
|
|
1210
1211
|
if (onError) {
|
|
1211
1212
|
bus.onError(onError);
|
|
1212
1213
|
}
|
|
@@ -1245,10 +1246,10 @@ function createContext(context, config = {}) {
|
|
|
1245
1246
|
}
|
|
1246
1247
|
return bus;
|
|
1247
1248
|
}
|
|
1248
|
-
function runInContext(context, contexts, fn) {
|
|
1249
|
+
function runInContext(context, contexts, fn, adapters) {
|
|
1249
1250
|
const targetContexts = Array.isArray(contexts) ? contexts : [contexts];
|
|
1250
1251
|
if (targetContexts.includes(context)) {
|
|
1251
|
-
const bus = getMessageBus(context);
|
|
1252
|
+
const bus = getMessageBus(context, adapters);
|
|
1252
1253
|
Promise.resolve(fn(bus)).catch(() => {});
|
|
1253
1254
|
}
|
|
1254
1255
|
}
|
|
@@ -1725,4 +1726,4 @@ export {
|
|
|
1725
1726
|
$persistedState
|
|
1726
1727
|
};
|
|
1727
1728
|
|
|
1728
|
-
//# debugId=
|
|
1729
|
+
//# debugId=24654C31897ECEF564756E2164756E21
|