@fairfox/polly 0.90.0 → 0.92.0

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.
Files changed (107) hide show
  1. package/dist/cli/polly.js +3 -3
  2. package/dist/cli/polly.js.map +3 -3
  3. package/dist/gallery/gallery.css +2 -2
  4. package/dist/gallery/gallery.js +248 -241
  5. package/dist/src/background/index.js +27 -11
  6. package/dist/src/background/index.js.map +2 -2
  7. package/dist/src/background/message-router.js +27 -11
  8. package/dist/src/background/message-router.js.map +2 -2
  9. package/dist/src/client/index.js +56 -56
  10. package/dist/src/client/index.js.map +4 -4
  11. package/dist/src/elysia/index.js +6 -6
  12. package/dist/src/elysia/index.js.map +3 -3
  13. package/dist/src/index.js +51 -23
  14. package/dist/src/index.js.map +3 -3
  15. package/dist/src/mesh.js +2 -2
  16. package/dist/src/mesh.js.map +3 -3
  17. package/dist/src/peer.js +6 -6
  18. package/dist/src/peer.js.map +3 -3
  19. package/dist/src/polly-ui/index.css +2 -2
  20. package/dist/src/polly-ui/markdown.js +1844 -1010
  21. package/dist/src/polly-ui/markdown.js.map +5 -5
  22. package/dist/src/polly-ui/styles.css +2 -2
  23. package/dist/src/shared/adapters/index.js +27 -11
  24. package/dist/src/shared/adapters/index.js.map +2 -2
  25. package/dist/src/shared/lib/context-helpers.js +27 -11
  26. package/dist/src/shared/lib/context-helpers.js.map +2 -2
  27. package/dist/src/shared/lib/message-bus.js +27 -11
  28. package/dist/src/shared/lib/message-bus.js.map +2 -2
  29. package/dist/src/shared/lib/resource.js +41 -13
  30. package/dist/src/shared/lib/resource.js.map +3 -3
  31. package/dist/src/shared/lib/state.js +41 -13
  32. package/dist/src/shared/lib/state.js.map +3 -3
  33. package/dist/src/shared/state/app-state.js +41 -13
  34. package/dist/src/shared/state/app-state.js.map +3 -3
  35. package/dist/tools/bdd/src/cli.js +20 -2
  36. package/dist/tools/bdd/src/cli.js.map +4 -4
  37. package/dist/tools/bdd/src/index.js +20 -2
  38. package/dist/tools/bdd/src/index.js.map +3 -3
  39. package/dist/tools/init/templates/pwa/package.json.template +2 -3
  40. package/dist/tools/mutate/src/args.d.ts +25 -3
  41. package/dist/tools/mutate/src/cli.js +3234 -312
  42. package/dist/tools/mutate/src/cli.js.map +32 -12
  43. package/dist/tools/mutate/src/config.d.ts +13 -2
  44. package/dist/tools/mutate/src/define.d.ts +76 -0
  45. package/dist/tools/mutate/src/engine/ast.d.ts +13 -0
  46. package/dist/tools/mutate/src/engine/baseline.d.ts +20 -0
  47. package/dist/tools/mutate/src/engine/cache.d.ts +32 -0
  48. package/dist/tools/mutate/src/engine/coverage.d.ts +60 -0
  49. package/dist/tools/mutate/src/engine/generate.d.ts +23 -0
  50. package/dist/tools/mutate/src/engine/graph.d.ts +11 -0
  51. package/dist/tools/mutate/src/engine/index.d.ts +16 -0
  52. package/dist/tools/mutate/src/engine/junit.d.ts +38 -0
  53. package/dist/tools/mutate/src/engine/operators.d.ts +14 -0
  54. package/dist/tools/mutate/src/engine/preload.d.ts +10 -0
  55. package/dist/tools/mutate/src/engine/preload.js +180 -0
  56. package/dist/tools/mutate/src/engine/preload.js.map +10 -0
  57. package/dist/tools/mutate/src/engine/probes.d.ts +12 -0
  58. package/dist/tools/mutate/src/engine/report-writer.d.ts +44 -0
  59. package/dist/tools/mutate/src/engine/runner.d.ts +31 -0
  60. package/dist/tools/mutate/src/engine/stray-writes.d.ts +25 -0
  61. package/dist/tools/mutate/src/engine/typecheck.d.ts +37 -0
  62. package/dist/tools/mutate/src/engine/types.d.ts +191 -0
  63. package/dist/tools/mutate/src/engine/verify-callsites.d.ts +9 -0
  64. package/dist/tools/mutate/src/engine/workdir.d.ts +16 -0
  65. package/dist/tools/mutate/src/engine-config.d.ts +7 -0
  66. package/dist/tools/mutate/src/index.d.ts +7 -3
  67. package/dist/tools/mutate/src/index.js +2701 -77
  68. package/dist/tools/mutate/src/index.js.map +26 -7
  69. package/dist/tools/mutate/src/ingest.d.ts +30 -1
  70. package/dist/tools/mutate/src/init.d.ts +2 -1
  71. package/dist/tools/mutate/src/migrate.d.ts +32 -0
  72. package/dist/tools/mutate/src/report.d.ts +3 -0
  73. package/dist/tools/mutate/src/run.d.ts +17 -8
  74. package/dist/tools/mutate/src/verify-matrix.d.ts +12 -15
  75. package/dist/tools/quality/src/cli.js +9 -9
  76. package/dist/tools/quality/src/cli.js.map +4 -4
  77. package/dist/tools/quality/src/index.js +9 -9
  78. package/dist/tools/quality/src/index.js.map +4 -4
  79. package/dist/tools/quality/src/no-tautology-ensures.d.ts +2 -2
  80. package/dist/tools/quality/src/plugins/import-checks.d.ts +1 -1
  81. package/dist/tools/test/src/adapters/index.js +3 -2
  82. package/dist/tools/test/src/adapters/index.js.map +3 -3
  83. package/dist/tools/test/src/coverage-policy/cli.d.ts +2 -2
  84. package/dist/tools/test/src/coverage-policy/cli.js +217 -17
  85. package/dist/tools/test/src/coverage-policy/cli.js.map +7 -5
  86. package/dist/tools/test/src/coverage-policy/index.d.ts +1 -1
  87. package/dist/tools/test/src/coverage-policy/index.js +213 -12
  88. package/dist/tools/test/src/coverage-policy/index.js.map +7 -5
  89. package/dist/tools/test/src/coverage-policy/mutate-targets.d.ts +29 -12
  90. package/dist/tools/test/src/e2e-mesh/index.js +6 -6
  91. package/dist/tools/test/src/e2e-mesh/index.js.map +4 -4
  92. package/dist/tools/test/src/e2e-relay/index.js +230 -226
  93. package/dist/tools/test/src/e2e-relay/index.js.map +7 -7
  94. package/dist/tools/test/src/index.js +3 -2
  95. package/dist/tools/test/src/index.js.map +3 -3
  96. package/dist/tools/test/src/visual/index.js +684 -511
  97. package/dist/tools/test/src/visual/index.js.map +11 -11
  98. package/dist/tools/verify/src/cli.js +294 -21
  99. package/dist/tools/verify/src/cli.js.map +9 -9
  100. package/dist/tools/verify/src/config.d.ts +57 -1
  101. package/dist/tools/verify/src/config.js +68 -3
  102. package/dist/tools/verify/src/config.js.map +4 -4
  103. package/dist/tools/verify/src/primitives/index.d.ts +34 -0
  104. package/package.json +30 -39
  105. package/dist/tools/verify/src/stryker/index.d.ts +0 -32
  106. package/dist/tools/verify/src/stryker/index.js +0 -86
  107. package/dist/tools/verify/src/stryker/index.js.map +0 -10
@@ -22,7 +22,7 @@
22
22
  "// 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",
23
23
  "// 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// 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 // nosemgrep: javascript.browser.security.wildcard-postmessage-configuration.wildcard-postmessage-configuration — content↔page bridge runs in the same web origin (the active tab); narrowing the target wouldn't add security.\n this.adapters.window.postMessage({ __extensionMessage: true, message }, \"*\");\n } else if (this.context === \"page\") {\n // Page → Content via window.postMessage\n // nosemgrep: javascript.browser.security.wildcard-postmessage-configuration.wildcard-postmessage-configuration — content↔page bridge runs in the same web origin (the active tab); narrowing the target wouldn't add security.\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 // nosemgrep: javascript.browser.security.wildcard-postmessage-configuration.wildcard-postmessage-configuration — content↔page bridge runs in the same web origin (the active tab); narrowing the target wouldn't add security.\n this.adapters.window.postMessage({ __extensionMessage: true, message: response }, \"*\");\n } else if (this.context === \"page\" && request.source === \"content\") {\n // Page → Content response\n // nosemgrep: javascript.browser.security.wildcard-postmessage-configuration.wildcard-postmessage-configuration — content↔page bridge runs in the same web origin (the active tab); narrowing the target wouldn't add security.\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_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"
24
24
  ],
25
- "mappings": "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",
26
- "debugId": "74F15AFAAB5B5A2064756E2164756E21",
25
+ "mappings": "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",
26
+ "debugId": "550294C9EAA4855064756E2164756E21",
27
27
  "names": []
28
28
  }
@@ -170,6 +170,14 @@ var init_idb_helpers = __esm(() => {
170
170
  });
171
171
 
172
172
  // src/shared/lib/storage-adapter.ts
173
+ var exports_storage_adapter = {};
174
+ __export(exports_storage_adapter, {
175
+ ChromeStorageAdapter: () => ChromeStorageAdapter,
176
+ IndexedDBAdapter: () => IndexedDBAdapter,
177
+ MemoryStorageAdapter: () => MemoryStorageAdapter,
178
+ createStorageAdapter: () => createStorageAdapter
179
+ });
180
+
173
181
  class IndexedDBAdapter {
174
182
  dbName;
175
183
  storeName = "state";
@@ -301,6 +309,14 @@ var init_storage_adapter = __esm(() => {
301
309
  });
302
310
 
303
311
  // src/shared/lib/sync-adapter.ts
312
+ var exports_sync_adapter = {};
313
+ __export(exports_sync_adapter, {
314
+ BroadcastChannelSyncAdapter: () => BroadcastChannelSyncAdapter,
315
+ ChromeRuntimeSyncAdapter: () => ChromeRuntimeSyncAdapter,
316
+ NoOpSyncAdapter: () => NoOpSyncAdapter,
317
+ createSyncAdapter: () => createSyncAdapter
318
+ });
319
+
304
320
  class NoOpSyncAdapter {
305
321
  broadcast(_message) {}
306
322
  onMessage(_callback) {
@@ -534,8 +550,8 @@ function createState(key, initialValue, options) {
534
550
  if (options.enablePersist && adapters.storage) {
535
551
  entry.loaded = loadFromStorage(key, sig, entry, adapters.storage, options.validator);
536
552
  }
553
+ let debounceTimer = null;
537
554
  entry.loaded.then(() => {
538
- let debounceTimer = null;
539
555
  let previousValue = sig.value;
540
556
  let isFirstRun = true;
541
557
  effect(() => {
@@ -559,12 +575,14 @@ function createState(key, initialValue, options) {
559
575
  }
560
576
  }
561
577
  entry.clock++;
578
+ const clockAtWrite = entry.clock;
562
579
  const doUpdate = () => {
580
+ debounceTimer = null;
563
581
  if (options.enablePersist && adapters.storage) {
564
- persistToStorage(key, value, entry.clock, adapters.storage);
582
+ persistToStorage(key, value, clockAtWrite, adapters.storage);
565
583
  }
566
584
  if (options.enableSync && adapters.sync) {
567
- broadcastUpdate(key, value, entry.clock, adapters.sync);
585
+ broadcastUpdate(key, value, clockAtWrite, adapters.sync);
568
586
  }
569
587
  };
570
588
  if (options.debounceMs) {
@@ -580,20 +598,30 @@ function createState(key, initialValue, options) {
580
598
  if (adapters.sync.connect) {
581
599
  adapters.sync.connect();
582
600
  }
601
+ const acceptIncoming = (value, clock) => {
602
+ if (debounceTimer) {
603
+ clearTimeout(debounceTimer);
604
+ debounceTimer = null;
605
+ }
606
+ applyUpdate(entry, value, clock);
607
+ if (options.enablePersist && adapters.storage) {
608
+ persistToStorage(key, value, clock, adapters.storage);
609
+ }
610
+ };
611
+ const shouldAccept = (message) => {
612
+ if (options.validator && !options.validator(message.value)) {
613
+ console.warn(`[Polly] State "${key}": Received invalid value from sync (clock: ${message.clock})`, message.value);
614
+ return false;
615
+ }
616
+ return !deepEqual(entry.signal.value, message.value);
617
+ };
583
618
  adapters.sync.onMessage((message) => {
584
619
  if (message.key !== key)
585
620
  return;
586
621
  const oldClock = entry.clock;
587
622
  entry.clock = Math.max(entry.clock, message.clock);
588
- if (message.clock > oldClock) {
589
- if (options.validator && !options.validator(message.value)) {
590
- console.warn(`[Polly] State "${key}": Received invalid value from sync (clock: ${message.clock})`, message.value);
591
- return;
592
- }
593
- if (deepEqual(entry.signal.value, message.value)) {
594
- return;
595
- }
596
- applyUpdate(entry, message.value, message.clock);
623
+ if (message.clock > oldClock && shouldAccept(message)) {
624
+ acceptIncoming(message.value, message.clock);
597
625
  }
598
626
  });
599
627
  }
@@ -710,4 +738,4 @@ export {
710
738
  $resource
711
739
  };
712
740
 
713
- //# debugId=FEDC5CBB4D1AC19B64756E2164756E21
741
+ //# debugId=194264C7746E27FC64756E2164756E21
@@ -6,9 +6,9 @@
6
6
  "// Storage adapters for different execution contexts\n// Automatically chooses the right storage mechanism based on environment\n\nimport { cachedOpen, runRequest, runTx } from \"./idb-helpers\";\n\n/**\n * Universal storage adapter interface\n */\nexport interface StorageAdapter {\n get<T = unknown>(keys: string[]): Promise<Record<string, T>>;\n set(items: Record<string, unknown>): Promise<void>;\n remove(keys: string[]): Promise<void>;\n}\n\n/**\n * IndexedDB adapter for web apps\n */\nexport class IndexedDBAdapter implements StorageAdapter {\n private readonly dbName: string;\n private readonly storeName = \"state\";\n private readonly dbRef: { promise: Promise<IDBDatabase> | null } = { promise: null };\n\n constructor(dbName = \"polly-state\") {\n this.dbName = dbName;\n }\n\n private getDB(): Promise<IDBDatabase> {\n return cachedOpen(this.dbRef, {\n name: this.dbName,\n version: 1,\n upgrade: (db) => {\n if (!db.objectStoreNames.contains(this.storeName)) {\n db.createObjectStore(this.storeName);\n }\n },\n });\n }\n\n async get<T = unknown>(keys: string[]): Promise<Record<string, T>> {\n try {\n const db = await this.getDB();\n const tx = db.transaction(this.storeName, \"readonly\");\n const store = tx.objectStore(this.storeName);\n const pairs = await Promise.all(\n keys.map(async (key) => [key, await runRequest<T | undefined>(store.get(key))] as const)\n );\n const result: Record<string, T> = {};\n for (const [key, value] of pairs) {\n if (value !== undefined) result[key] = value;\n }\n return result;\n } catch (error) {\n console.warn(\"[Polly] IndexedDB get failed:\", error);\n return {};\n }\n }\n\n async set(items: Record<string, unknown>): Promise<void> {\n try {\n const db = await this.getDB();\n await runTx(db, this.storeName, \"readwrite\", (store) => {\n for (const [key, value] of Object.entries(items)) {\n store.put(value, key);\n }\n });\n } catch (error) {\n console.warn(\"[Polly] IndexedDB set failed:\", error);\n }\n }\n\n async remove(keys: string[]): Promise<void> {\n try {\n const db = await this.getDB();\n await runTx(db, this.storeName, \"readwrite\", (store) => {\n for (const key of keys) store.delete(key);\n });\n } catch (error) {\n console.warn(\"[Polly] IndexedDB remove failed:\", error);\n }\n }\n}\n\n/**\n * Chrome storage adapter for extensions\n */\nexport class ChromeStorageAdapter implements StorageAdapter {\n async get<T = unknown>(keys: string[]): Promise<Record<string, T>> {\n if (typeof chrome === \"undefined\" || !chrome.storage) {\n return {};\n }\n\n try {\n return (await chrome.storage.local.get(keys)) as unknown as Record<string, T>;\n } catch (error) {\n console.warn(\"[Polly] Chrome storage get failed:\", error);\n return {};\n }\n }\n\n async set(items: Record<string, unknown>): Promise<void> {\n if (typeof chrome === \"undefined\" || !chrome.storage) {\n return;\n }\n\n try {\n await chrome.storage.local.set(items);\n } catch (error) {\n console.warn(\"[Polly] Chrome storage set failed:\", error);\n }\n }\n\n async remove(keys: string[]): Promise<void> {\n if (typeof chrome === \"undefined\" || !chrome.storage) {\n return;\n }\n\n try {\n await chrome.storage.local.remove(keys);\n } catch (error) {\n console.warn(\"[Polly] Chrome storage remove failed:\", error);\n }\n }\n}\n\n/**\n * In-memory adapter (no persistence) for testing or server contexts\n */\nexport class MemoryStorageAdapter implements StorageAdapter {\n private storage = new Map<string, unknown>();\n\n async get<T = unknown>(keys: string[]): Promise<Record<string, T>> {\n const result: Record<string, T> = {};\n for (const key of keys) {\n const value = this.storage.get(key);\n if (value !== undefined) {\n result[key] = value as unknown as T;\n }\n }\n return result;\n }\n\n async set(items: Record<string, unknown>): Promise<void> {\n for (const [key, value] of Object.entries(items)) {\n this.storage.set(key, value);\n }\n }\n\n async remove(keys: string[]): Promise<void> {\n for (const key of keys) {\n this.storage.delete(key);\n }\n }\n}\n\n/**\n * Detect execution context and return appropriate storage adapter\n */\nexport function createStorageAdapter(): StorageAdapter {\n // Chrome extension context\n if (typeof chrome !== \"undefined\" && chrome.storage && chrome.runtime) {\n return new ChromeStorageAdapter();\n }\n\n // Web app context (has IndexedDB)\n if (typeof indexedDB !== \"undefined\") {\n return new IndexedDBAdapter();\n }\n\n // Server/test context (no persistent storage available)\n return new MemoryStorageAdapter();\n}\n",
7
7
  "// Sync adapter interface for cross-context state synchronization\n// Abstracts the transport mechanism (chrome.runtime, BroadcastChannel, etc.)\n//\n// Architecture Decision: BroadcastChannel vs SharedWorker\n// We currently use BroadcastChannel for web app sync because:\n// - Simpler API with no lifecycle management complexity\n// - Decentralized (aligns with local-first/offline-first architecture)\n// - Better browser support (especially Safari and mobile)\n// - Perfect for message-passing with Lamport clock conflict resolution\n// - No single point of failure\n//\n// Future Consideration: SharedWorker Support\n// SharedWorker could be added as an optional adapter for use cases requiring:\n// - Central coordination point for complex multi-tab workflows\n// - Shared WebSocket connections (one connection for all tabs)\n// - Heavy computation done once and shared across tabs\n// - Persistent background work when tabs are closed\n// - Transaction coordination across tabs\n//\n// For most Polly use cases, BroadcastChannel's peer-to-peer model is preferred,\n// but SharedWorker support could be valuable for advanced scenarios.\n\n/**\n * Message format for state synchronization\n */\nexport interface StateSyncMessage<T = unknown> {\n key: string;\n value: T;\n clock: number;\n}\n\n/**\n * Sync adapter interface - abstracts the transport mechanism for state sync\n *\n * Different contexts use different transports:\n * - Chrome extensions: chrome.runtime messaging\n * - Web apps (multi-tab): BroadcastChannel\n * - PWAs: BroadcastChannel + Service Worker messaging\n * - Single-context: NoOp (no sync needed)\n */\nexport interface SyncAdapter {\n /**\n * Broadcast a state update to other contexts\n */\n broadcast<T>(message: StateSyncMessage<T>): void;\n\n /**\n * Register a callback for incoming state updates\n */\n onMessage<T>(callback: (message: StateSyncMessage<T>) => void): () => void;\n\n /**\n * Optional: Connect to the sync mechanism\n * Some transports require explicit connection setup\n */\n connect?(): Promise<void>;\n\n /**\n * Optional: Disconnect from the sync mechanism\n */\n disconnect?(): void;\n\n /**\n * Optional: Check if connected\n */\n isConnected?(): boolean;\n}\n\n/**\n * NoOp sync adapter for single-context scenarios (no sync needed)\n */\nexport class NoOpSyncAdapter implements SyncAdapter {\n broadcast<T>(_message: StateSyncMessage<T>): void {\n // No-op: single context, no need to sync\n }\n\n onMessage<T>(_callback: (message: StateSyncMessage<T>) => void): () => void {\n // No-op: no messages will ever arrive\n return () => {\n // Empty cleanup function - nothing to clean up for null adapter\n };\n }\n}\n\n/**\n * Chrome runtime sync adapter for Chrome extensions\n * Uses chrome.runtime.sendMessage for cross-context messaging\n */\nexport class ChromeRuntimeSyncAdapter implements SyncAdapter {\n private listeners: Array<(message: StateSyncMessage<unknown>) => void> = [];\n private port: chrome.runtime.Port | null = null;\n\n constructor() {\n // Set up listener for incoming messages\n if (typeof chrome !== \"undefined\" && chrome.runtime) {\n chrome.runtime.onMessage.addListener((message, _sender, _sendResponse) => {\n if (message.type === \"STATE_SYNC\") {\n this.listeners.forEach((listener) => {\n listener(message);\n });\n }\n });\n }\n }\n\n broadcast<T>(message: StateSyncMessage<T>): void {\n if (typeof chrome === \"undefined\" || !chrome.runtime) {\n console.warn(\"[SyncAdapter] chrome.runtime not available\");\n return;\n }\n\n try {\n chrome.runtime.sendMessage({\n type: \"STATE_SYNC\",\n key: message.key,\n value: message.value,\n clock: message.clock,\n });\n } catch (error) {\n console.warn(\"[SyncAdapter] Failed to broadcast state update:\", error);\n }\n }\n\n onMessage<T>(callback: (message: StateSyncMessage<T>) => void): () => void {\n this.listeners.push(callback as unknown as (message: StateSyncMessage<unknown>) => void);\n\n // Return cleanup function\n return () => {\n const index = this.listeners.indexOf(\n callback as unknown as (message: StateSyncMessage<unknown>) => void\n );\n if (index > -1) {\n this.listeners.splice(index, 1);\n }\n };\n }\n\n connect(): Promise<void> {\n // Chrome runtime is always connected\n return Promise.resolve();\n }\n\n disconnect(): void {\n this.listeners = [];\n if (this.port) {\n this.port.disconnect();\n this.port = null;\n }\n }\n\n isConnected(): boolean {\n return typeof chrome !== \"undefined\" && !!chrome.runtime;\n }\n}\n\n/**\n * BroadcastChannel sync adapter for web apps (multi-tab)\n * Uses BroadcastChannel API for cross-tab messaging\n */\nexport class BroadcastChannelSyncAdapter implements SyncAdapter {\n private channel: BroadcastChannel | null = null;\n private listeners: Array<(message: StateSyncMessage<unknown>) => void> = [];\n\n constructor(channelName = \"polly-sync\") {\n if (typeof BroadcastChannel === \"undefined\") {\n console.warn(\"[SyncAdapter] BroadcastChannel not available\");\n } else {\n this.channel = new BroadcastChannel(channelName);\n\n this.channel.onmessage = (event) => {\n if (event.data.type === \"STATE_SYNC\") {\n this.listeners.forEach((listener) => {\n listener(event.data);\n });\n }\n };\n }\n }\n\n broadcast<T>(message: StateSyncMessage<T>): void {\n if (!this.channel) {\n console.warn(\"[SyncAdapter] BroadcastChannel not initialized\");\n return;\n }\n\n try {\n this.channel.postMessage({\n type: \"STATE_SYNC\",\n key: message.key,\n value: message.value,\n clock: message.clock,\n });\n } catch (error) {\n console.warn(\"[SyncAdapter] Failed to broadcast state update:\", error);\n }\n }\n\n onMessage<T>(callback: (message: StateSyncMessage<T>) => void): () => void {\n this.listeners.push(callback as unknown as (message: StateSyncMessage<unknown>) => void);\n\n // Return cleanup function\n return () => {\n const index = this.listeners.indexOf(\n callback as unknown as (message: StateSyncMessage<unknown>) => void\n );\n if (index > -1) {\n this.listeners.splice(index, 1);\n }\n };\n }\n\n connect(): Promise<void> {\n // BroadcastChannel connects immediately on construction\n return Promise.resolve();\n }\n\n disconnect(): void {\n this.listeners = [];\n if (this.channel) {\n this.channel.close();\n this.channel = null;\n }\n }\n\n isConnected(): boolean {\n return this.channel !== null;\n }\n}\n\n/**\n * Detect available sync mechanisms and create appropriate adapter\n */\nexport function createSyncAdapter(): SyncAdapter {\n // Chrome extension context - use chrome.runtime\n if (typeof chrome !== \"undefined\" && chrome.runtime) {\n return new ChromeRuntimeSyncAdapter();\n }\n\n // Web app with multi-tab support - use BroadcastChannel\n if (typeof BroadcastChannel !== \"undefined\") {\n return new BroadcastChannelSyncAdapter();\n }\n\n // Single context or no sync available - use NoOp\n return new NoOpSyncAdapter();\n}\n",
8
8
  "/**\n * $resource — Async signal primitive that separates sync dependency tracking from async work.\n *\n * Reactive signal dependency tracking breaks at `await` boundaries. When a `computed()` or\n * `effect()` hits an `await`, JavaScript suspends the function and the tracking context is\n * lost. Signal reads after the `await` are silently dropped from the dependency graph.\n *\n * `$resource` solves this by splitting the problem:\n * - `source` is a synchronous function whose signal reads are fully tracked\n * - `fetcher` is an async function that receives source output — no signal access needed\n *\n * For verification, `$resource` emits three synthetic state machine transitions:\n * - `{name}_FetchStart`: source deps available, triggers loading\n * - `{name}_FetchSuccess`: fetch resolved, data updated\n * - `{name}_FetchError`: fetch rejected, error captured\n *\n * @example\n * ```ts\n * const todos = $resource(\"todos\", {\n * source: () => ({ userId: authState.value.userId }),\n * fetcher: async ({ userId }) => {\n * const res = await fetch(`/api/todos?userId=${userId}`);\n * return await res.json();\n * },\n * initialValue: [],\n * });\n *\n * todos.data // Signal<Todo[]>\n * todos.status // Signal<\"idle\" | \"loading\" | \"success\" | \"error\">\n * todos.error // Signal<Error | undefined>\n * todos.refetch()\n * ```\n */\n\nimport { effect, type Signal, signal } from \"@preact/signals\";\nimport { deepEqual } from \"./state\";\n\nexport type ResourceStatus = \"idle\" | \"loading\" | \"success\" | \"error\";\n\nexport type ResourceOptions<TSource, TData> = {\n /** Synchronous function that reads signals. Fully tracked by the reactivity system. */\n source: () => TSource;\n /** Async function that receives source output. Must not read any signals. */\n fetcher: (source: TSource) => Promise<TData>;\n /** Initial data value before first fetch completes. */\n initialValue: TData;\n};\n\nexport type Resource<TData> = {\n /** The fetched data (or initialValue before first successful fetch). */\n data: Signal<TData>;\n /** Current lifecycle status: idle → loading → success | error. */\n status: Signal<ResourceStatus>;\n /** The error from the most recent failed fetch, or undefined. */\n error: Signal<Error | undefined>;\n /** Re-run the fetcher with the current source values. */\n refetch: () => void;\n};\n\nexport function $resource<TSource, TData>(\n _name: string,\n options: ResourceOptions<TSource, TData>\n): Resource<TData> {\n const { source, fetcher, initialValue } = options;\n\n const data = signal<TData>(initialValue);\n const status = signal<ResourceStatus>(\"idle\");\n const error = signal<Error | undefined>(undefined);\n\n let generation = 0;\n let lastSource: TSource | undefined;\n\n function runFetch(sourceValue: TSource) {\n const thisGeneration = ++generation;\n status.value = \"loading\";\n error.value = undefined;\n\n fetcher(sourceValue).then(\n (result) => {\n if (thisGeneration !== generation) return; // stale\n data.value = result;\n status.value = \"success\";\n error.value = undefined;\n },\n (err) => {\n if (thisGeneration !== generation) return; // stale\n status.value = \"error\";\n error.value = err instanceof Error ? err : new Error(String(err));\n }\n );\n }\n\n // Track source synchronously — when source output changes, call fetcher.\n // The effect's tracked body only READS (source()) and schedules; it must not\n // WRITE a signal synchronously. runFetch sets status/error, and if those\n // writes ran inside this effect while a component that reads them was\n // rendering, preact/signals would re-enter the running render and throw\n // \"Cycle detected\". Deferring runFetch to a microtask moves the writes\n // outside the render/effect pass that triggered them.\n effect(() => {\n const sourceValue = source();\n\n if (lastSource !== undefined && deepEqual(lastSource, sourceValue)) {\n return;\n }\n lastSource = sourceValue;\n queueMicrotask(() => runFetch(sourceValue));\n });\n\n function refetch() {\n if (lastSource !== undefined) {\n runFetch(lastSource);\n }\n }\n\n return { data, status, error, refetch };\n}\n",
9
- "// State primitives with optional sync and persistence\n\nimport { effect, type Signal, signal } from \"@preact/signals\";\nimport type { MessageBus } from \"./message-bus\";\nimport { createStorageAdapter, type StorageAdapter } from \"./storage-adapter\";\nimport { createSyncAdapter, type SyncAdapter } from \"./sync-adapter\";\n\n/**\n * Signal extended with .loaded promise for hydration control\n */\ntype SignalWithLoaded<T> = Signal<T> & { loaded: Promise<void> };\n\n/**\n * Signal extended with .loaded and .verify properties for verification tracking\n */\ntype SignalWithVerify<T> = Signal<T> & { loaded: Promise<void>; verify: T };\n\ntype StateEntry<T> = {\n signal: Signal<T>;\n clock: number; // Lamport clock for causal ordering\n loaded: Promise<void>;\n updating: boolean;\n};\n\ntype StateOptions<T = unknown> = {\n // Legacy MessageBus support (deprecated, will be removed in v2.0)\n bus?: MessageBus;\n\n // New adapter system (recommended)\n storage?: StorageAdapter; // Custom storage adapter\n sync?: SyncAdapter; // Custom sync adapter\n\n // Behavior options\n debounceMs?: number; // Debounce storage writes\n validator?: (value: unknown) => value is T; // Runtime type validation\n verify?: boolean; // Enable verification tracking (creates plain object mirror)\n};\n\nconst stateRegistry = new Map<string, StateEntry<unknown>>();\n\n/**\n * Shared state: synced across all contexts AND persisted to storage\n *\n * Uses Lamport clock for conflict resolution. State is automatically:\n * - Loaded from chrome.storage on initialization\n * - Synced to other contexts via broadcast messages\n * - Persisted to chrome.storage on every change\n *\n * Available in: background, popup, options, devtools, content scripts\n * ⚠️ NOT available in page scripts (use content script state instead)\n *\n * @param key - Unique identifier for this state (e.g., \"app-settings\")\n * @param initialValue - Default value if nothing is in storage\n * @param options - Optional configuration (bus, debounceMs)\n * @returns Reactive signal that stays in sync across all contexts\n *\n * @example\n * ```typescript\n * // Define once, use everywhere\n * const settings = $sharedState(\"settings\", { theme: \"dark\" })\n *\n * // Changes automatically sync\n * settings.value = { theme: \"light\" }\n * ```\n */\nexport function $sharedState<T>(\n key: string,\n initialValue: T,\n options: StateOptions<T> = {}\n): Signal<T> & { loaded: Promise<void>; verify?: T } {\n const sig = createState(key, initialValue, {\n ...options,\n enableSync: true,\n enablePersist: true,\n });\n\n // Expose loaded promise for awaiting hydration\n const entry = stateRegistry.get(key);\n if (entry) {\n (sig as unknown as SignalWithLoaded<T>).loaded = entry.loaded;\n }\n\n return sig as unknown as Signal<T> & { loaded: Promise<void> };\n}\n\n/**\n * Synced state: synced across all contexts but NOT persisted\n *\n * State is broadcast to all contexts in real-time but resets on extension reload.\n *\n * Available in: background, popup, options, devtools, content scripts\n * ⚠️ NOT available in page scripts\n *\n * @param key - Unique identifier for this state\n * @param initialValue - Default value\n * @param options - Optional configuration\n * @returns Reactive signal synced across contexts (but not persisted)\n *\n * @example\n * ```typescript\n * // Temporary shared state\n * const activeTabId = $syncedState(\"active-tab\", null)\n * ```\n */\nexport function $syncedState<T>(\n key: string,\n initialValue: T,\n options: StateOptions<T> = {}\n): Signal<T> {\n return createState(key, initialValue, {\n ...options,\n enableSync: true,\n enablePersist: false,\n });\n}\n\n/**\n * Persisted state: persisted to storage but NOT synced across contexts\n *\n * Each context has its own copy of the state, persisted independently.\n *\n * Available in: background, popup, options, devtools, content scripts\n * ⚠️ NOT available in page scripts\n *\n * @param key - Unique identifier (use prefix like \"popup:state\" to avoid collisions)\n * @param initialValue - Default value\n * @param options - Optional configuration\n * @returns Reactive signal persisted to storage (but not synced)\n *\n * @example\n * ```typescript\n * // Each context has its own persisted state\n * const popupState = $persistedState(\"popup:last-panel\", \"home\")\n * const devtoolsState = $persistedState(\"devtools:expanded\", true)\n * ```\n */\nexport function $persistedState<T>(\n key: string,\n initialValue: T,\n options: StateOptions<T> = {}\n): Signal<T> & { loaded: Promise<void> } {\n const sig = createState(key, initialValue, {\n ...options,\n enableSync: false,\n enablePersist: true,\n });\n\n // Expose loaded promise for awaiting hydration\n const entry = stateRegistry.get(key);\n if (entry) {\n (sig as unknown as SignalWithLoaded<T>).loaded = entry.loaded;\n }\n\n return sig as unknown as Signal<T> & { loaded: Promise<void> };\n}\n\n/**\n * Local state: not synced, not persisted (like regular Preact signal)\n *\n * Simple reactive state that lives only in the current context.\n * Resets on reload or context restart.\n *\n * Available in: all contexts (including page scripts)\n *\n * @param initialValue - Default value\n * @returns Reactive signal (local only)\n *\n * @example\n * ```typescript\n * // Local UI state\n * const isLoading = $state(false)\n * const error = $state<string | null>(null)\n * ```\n */\nexport function $state<T>(initialValue: T): Signal<T> {\n return signal(initialValue);\n}\n\n/** Server-side authoritative state, keyed for stable identity across the\n * process. Unlike the browser primitives it does NOT sync across contexts or\n * persist to chrome.storage — the server holds the canonical replica and is\n * the always-on peer; connected clients receive derived updates through the\n * Elysia `polly()` plugin's effect/broadcast layer rather than through this\n * signal directly. Used inside `polly({ state: { server: { ... } } })` and\n * read on the request context as `pollyState.server.<key>.value`. */\nconst serverStateRegistry = new Map<string, Signal<unknown>>();\n\n/**\n * Reactive server-only state. The first call for a `key` creates the signal;\n * later calls with the same `key` return that same signal, so a module that\n * declares its server state once gets a stable reference everywhere it is\n * read.\n *\n * @param key - Stable identifier for this server state (e.g. \"db\")\n * @param initialValue - Value held until the server mutates it\n * @returns A reactive signal holding the authoritative server value\n *\n * @example\n * ```typescript\n * import { $serverState } from \"@fairfox/polly\";\n *\n * const db = { todos: signal([]), nextId: 1 };\n * polly({ state: { server: { db: $serverState(\"db\", db) } } });\n * // in a handler: ctx.pollyState.server.db.value.todos.value = [...]\n * ```\n */\nexport function $serverState<T>(key: string, initialValue: T): Signal<T> {\n const existing = serverStateRegistry.get(key);\n // The registry erases T (it stores Signal<unknown>); the key is the\n // caller's contract that the stored signal carries their T.\n if (existing) return existing as unknown as Signal<T>;\n const sig = signal(initialValue);\n serverStateRegistry.set(key, sig as unknown as Signal<unknown>);\n return sig;\n}\n\ntype InternalStateOptions<T = unknown> = StateOptions<T> & {\n enableSync: boolean; // Whether to enable sync (avoid collision with sync?: SyncAdapter)\n enablePersist: boolean; // Whether to enable persistence\n};\n\n// Deep equality check to prevent redundant updates\nexport function deepEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (typeof a !== \"object\" || typeof b !== \"object\") return false;\n\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n if (!keysB.includes(key)) return false;\n if (\n !deepEqual(\n (a as unknown as Record<string, unknown>)[key],\n (b as unknown as Record<string, unknown>)[key]\n )\n )\n return false;\n }\n\n return true;\n}\n\n/**\n * Resolve storage and sync adapters with three-tier priority:\n * 1. Explicit adapters from options (highest priority)\n * 2. MessageBus adapters (legacy, deprecated)\n * 3. Auto-detected adapters (default behavior)\n */\nfunction resolveAdapters(options: InternalStateOptions): {\n storage: StorageAdapter | null;\n sync: SyncAdapter | null;\n} {\n // Priority 1: Explicit adapters (partial or full)\n if (options.storage || options.sync) {\n return {\n storage: options.storage || (options.enablePersist ? createStorageAdapter() : null),\n sync: options.sync || (options.enableSync ? createSyncAdapter() : null),\n };\n }\n\n // Priority 2: MessageBus (legacy support)\n // MessageBus doesn't provide sync adapter, only Chrome storage\n if (options.bus) {\n return {\n storage: options.bus.adapters.storage,\n sync: options.enableSync ? createSyncAdapter() : null,\n };\n }\n\n // Priority 3: Auto-detect based on enableSync and enablePersist flags\n return {\n storage: options.enablePersist ? createStorageAdapter() : null,\n sync: options.enableSync ? createSyncAdapter() : null,\n };\n}\n\nfunction createState<T>(key: string, initialValue: T, options: InternalStateOptions<T>): Signal<T> {\n // Return existing signal if already registered\n if (stateRegistry.has(key)) {\n return stateRegistry.get(key)?.signal as unknown as Signal<T>;\n }\n\n const sig = signal(initialValue);\n\n // Create verification mirror if requested\n if (options.verify) {\n // Create plain object mirror for verification\n const mirror = JSON.parse(JSON.stringify(initialValue)) as unknown as T;\n (sig as unknown as SignalWithVerify<T>).verify = mirror;\n }\n\n const entry: StateEntry<T> = {\n signal: sig,\n clock: 0,\n loaded: Promise.resolve(),\n updating: false,\n };\n\n // Resolve adapters (explicit, MessageBus, or auto-detect)\n const adapters = resolveAdapters(options);\n\n // Load from storage if persist is enabled\n if (options.enablePersist && adapters.storage) {\n entry.loaded = loadFromStorage(key, sig, entry, adapters.storage, options.validator);\n }\n\n // Watch for changes after initial load\n entry.loaded.then(() => {\n let debounceTimer: NodeJS.Timeout | null = null;\n let previousValue = sig.value;\n let isFirstRun = true;\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Sync effect requires coordination of multiple state change scenarios\n effect(() => {\n // Read the signal FIRST, before any early return can happen.\n //\n // Preact re-collects an effect's dependencies on every run, so a run that\n // returns without touching `sig.value` unsubscribes the effect for good.\n // The run an incoming sync message triggers is exactly such a run.\n const value = sig.value;\n\n // Skip first run (effect fires immediately on registration)\n if (isFirstRun) {\n isFirstRun = false;\n return;\n }\n\n // An incoming message is being applied. Adopt it as the baseline — this\n // context now holds it, so the next local change is a change against it —\n // and do not broadcast, which would echo it back to the sender.\n if (entry.updating) {\n previousValue = value;\n return;\n }\n\n // Skip if value hasn't changed (deep equality check)\n if (deepEqual(value, previousValue)) {\n return;\n }\n\n previousValue = value;\n\n // Update verification mirror if enabled\n if (options.verify) {\n const verifySignal = sig as unknown as SignalWithVerify<T>;\n if (verifySignal.verify) {\n // nosemgrep: javascript.lang.security.insecure-object-assign.insecure-object-assign — internal mirror; value is a deep JSON clone, not arbitrary external input.\n Object.assign(verifySignal.verify, JSON.parse(JSON.stringify(value)));\n }\n }\n\n // Increment clock monotonically\n entry.clock++;\n\n const doUpdate = () => {\n // Persist to storage\n if (options.enablePersist && adapters.storage) {\n persistToStorage(key, value, entry.clock, adapters.storage);\n }\n\n // Broadcast to other contexts\n if (options.enableSync && adapters.sync) {\n broadcastUpdate(key, value, entry.clock, adapters.sync);\n }\n };\n\n // Debounce if specified\n if (options.debounceMs) {\n if (debounceTimer) clearTimeout(debounceTimer);\n debounceTimer = setTimeout(doUpdate, options.debounceMs);\n } else {\n doUpdate();\n }\n });\n });\n\n // Listen for updates from other contexts (only if sync enabled)\n if (options.enableSync && adapters.sync) {\n // Connect if needed (some adapters require explicit connection)\n if (adapters.sync.connect) {\n adapters.sync.connect();\n }\n\n // Register sync message listener\n adapters.sync.onMessage<T>((message) => {\n if (message.key !== key) return;\n\n const oldClock = entry.clock;\n\n // Lamport clock rule: Always update to max(local, received)\n // This maintains causal ordering even when rejecting updates\n entry.clock = Math.max(entry.clock, message.clock);\n\n // Only accept value updates if received clock is strictly greater than old local clock\n // This ensures we only apply causally newer updates\n if (message.clock > oldClock) {\n // Validate incoming value if validator provided\n if (options.validator && !options.validator(message.value)) {\n console.warn(\n `[Polly] State \"${key}\": Received invalid value from sync (clock: ${message.clock})`,\n message.value\n );\n return;\n }\n\n // Skip redundant updates (deep equality check)\n if (deepEqual(entry.signal.value, message.value)) {\n return;\n }\n\n applyUpdate(entry, message.value as unknown as T, message.clock);\n }\n });\n }\n\n stateRegistry.set(key, entry as unknown as StateEntry<unknown>);\n return sig;\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * Backfill keys added to the state shape since a value was persisted.\n *\n * Stored plain objects are shallow-merged over the current defaults so that a\n * field added in a later release rehydrates to its default rather than\n * `undefined`. Primitives and arrays are replaced wholesale — merging those\n * would corrupt them.\n */\nfunction reconcileWithDefaults<T>(defaults: T, stored: unknown): T {\n // Persisted values are trusted to be the T this key was registered with;\n // schema drift is handled by the merge, not by runtime validation.\n if (isPlainObject(defaults) && isPlainObject(stored)) {\n return { ...defaults, ...stored } as unknown as T;\n }\n return stored as unknown as T;\n}\n\nasync function loadFromStorage<T>(\n key: string,\n sig: Signal<T>,\n entry: StateEntry<T>,\n storage: StorageAdapter,\n validator?: (value: unknown) => value is T\n): Promise<void> {\n try {\n const result = await storage.get([key, `${key}:clock`]);\n\n if (result[key] !== undefined) {\n // sig still holds the initial value here, so it is the default base\n // for backfilling keys the persisted blob predates.\n const storedValue = reconcileWithDefaults(sig.peek(), result[key]);\n\n // Validate stored value if validator provided\n if (validator) {\n if (validator(storedValue)) {\n sig.value = storedValue;\n } else {\n console.warn(\n `[Polly] State \"${key}\": Stored value failed validation, using initial value`,\n storedValue\n );\n }\n } else {\n sig.value = storedValue as unknown as T;\n }\n }\n\n if (result[`${key}:clock`] !== undefined) {\n entry.clock = result[`${key}:clock`] as unknown as number;\n }\n } catch (error) {\n console.warn(`[Polly] Failed to load state from storage: ${key}`, error);\n }\n}\n\nfunction persistToStorage<T>(key: string, value: T, clock: number, storage: StorageAdapter): void {\n try {\n storage.set({\n [key]: value,\n [`${key}:clock`]: clock,\n });\n } catch (error) {\n console.warn(`[Polly] Failed to persist state to storage: ${key}`, error);\n }\n}\n\nfunction broadcastUpdate<T>(key: string, value: T, clock: number, sync: SyncAdapter): void {\n try {\n sync.broadcast({\n key,\n value,\n clock,\n });\n } catch (error) {\n console.warn(`[Polly] Failed to broadcast state update: ${key}`, error);\n }\n}\n\nfunction applyUpdate<T>(entry: StateEntry<T>, value: T, clock: number): void {\n entry.updating = true;\n entry.signal.value = value;\n entry.clock = clock;\n entry.updating = false;\n}\n\n/**\n * Get state by key (useful for retrieving state without re-creating)\n */\nexport function getStateByKey<T>(key: string): Signal<T> | undefined {\n const entry = stateRegistry.get(key);\n return entry?.signal as unknown as Signal<T> | undefined;\n}\n\n/**\n * Clear state registry (useful for testing)\n */\nexport function clearStateRegistry(): void {\n stateRegistry.clear();\n}\n"
9
+ "// State primitives with optional sync and persistence\n\nimport { effect, type Signal, signal } from \"@preact/signals\";\nimport type { MessageBus } from \"./message-bus\";\nimport { createStorageAdapter, type StorageAdapter } from \"./storage-adapter\";\nimport { createSyncAdapter, type StateSyncMessage, type SyncAdapter } from \"./sync-adapter\";\n\n/**\n * Signal extended with .loaded promise for hydration control\n */\ntype SignalWithLoaded<T> = Signal<T> & { loaded: Promise<void> };\n\n/**\n * Signal extended with .loaded and .verify properties for verification tracking\n */\ntype SignalWithVerify<T> = Signal<T> & { loaded: Promise<void>; verify: T };\n\ntype StateEntry<T> = {\n signal: Signal<T>;\n clock: number; // Lamport clock for causal ordering\n loaded: Promise<void>;\n updating: boolean;\n};\n\ntype StateOptions<T = unknown> = {\n // Legacy MessageBus support (deprecated, will be removed in v2.0)\n bus?: MessageBus;\n\n // New adapter system (recommended)\n storage?: StorageAdapter; // Custom storage adapter\n sync?: SyncAdapter; // Custom sync adapter\n\n // Behavior options\n debounceMs?: number; // Debounce storage writes\n validator?: (value: unknown) => value is T; // Runtime type validation\n verify?: boolean; // Enable verification tracking (creates plain object mirror)\n};\n\nconst stateRegistry = new Map<string, StateEntry<unknown>>();\n\n/**\n * Shared state: synced across all contexts AND persisted to storage\n *\n * Uses Lamport clock for conflict resolution. State is automatically:\n * - Loaded from chrome.storage on initialization\n * - Synced to other contexts via broadcast messages\n * - Persisted to chrome.storage on every change\n *\n * Available in: background, popup, options, devtools, content scripts\n * ⚠️ NOT available in page scripts (use content script state instead)\n *\n * @param key - Unique identifier for this state (e.g., \"app-settings\")\n * @param initialValue - Default value if nothing is in storage\n * @param options - Optional configuration (bus, debounceMs)\n * @returns Reactive signal that stays in sync across all contexts\n *\n * @example\n * ```typescript\n * // Define once, use everywhere\n * const settings = $sharedState(\"settings\", { theme: \"dark\" })\n *\n * // Changes automatically sync\n * settings.value = { theme: \"light\" }\n * ```\n */\nexport function $sharedState<T>(\n key: string,\n initialValue: T,\n options: StateOptions<T> = {}\n): Signal<T> & { loaded: Promise<void>; verify?: T } {\n const sig = createState(key, initialValue, {\n ...options,\n enableSync: true,\n enablePersist: true,\n });\n\n // Expose loaded promise for awaiting hydration\n const entry = stateRegistry.get(key);\n if (entry) {\n (sig as unknown as SignalWithLoaded<T>).loaded = entry.loaded;\n }\n\n return sig as unknown as Signal<T> & { loaded: Promise<void> };\n}\n\n/**\n * Synced state: synced across all contexts but NOT persisted\n *\n * State is broadcast to all contexts in real-time but resets on extension reload.\n *\n * Available in: background, popup, options, devtools, content scripts\n * ⚠️ NOT available in page scripts\n *\n * @param key - Unique identifier for this state\n * @param initialValue - Default value\n * @param options - Optional configuration\n * @returns Reactive signal synced across contexts (but not persisted)\n *\n * @example\n * ```typescript\n * // Temporary shared state\n * const activeTabId = $syncedState(\"active-tab\", null)\n * ```\n */\nexport function $syncedState<T>(\n key: string,\n initialValue: T,\n options: StateOptions<T> = {}\n): Signal<T> {\n return createState(key, initialValue, {\n ...options,\n enableSync: true,\n enablePersist: false,\n });\n}\n\n/**\n * Persisted state: persisted to storage but NOT synced across contexts\n *\n * Each context has its own copy of the state, persisted independently.\n *\n * Available in: background, popup, options, devtools, content scripts\n * ⚠️ NOT available in page scripts\n *\n * @param key - Unique identifier (use prefix like \"popup:state\" to avoid collisions)\n * @param initialValue - Default value\n * @param options - Optional configuration\n * @returns Reactive signal persisted to storage (but not synced)\n *\n * @example\n * ```typescript\n * // Each context has its own persisted state\n * const popupState = $persistedState(\"popup:last-panel\", \"home\")\n * const devtoolsState = $persistedState(\"devtools:expanded\", true)\n * ```\n */\nexport function $persistedState<T>(\n key: string,\n initialValue: T,\n options: StateOptions<T> = {}\n): Signal<T> & { loaded: Promise<void> } {\n const sig = createState(key, initialValue, {\n ...options,\n enableSync: false,\n enablePersist: true,\n });\n\n // Expose loaded promise for awaiting hydration\n const entry = stateRegistry.get(key);\n if (entry) {\n (sig as unknown as SignalWithLoaded<T>).loaded = entry.loaded;\n }\n\n return sig as unknown as Signal<T> & { loaded: Promise<void> };\n}\n\n/**\n * Local state: not synced, not persisted (like regular Preact signal)\n *\n * Simple reactive state that lives only in the current context.\n * Resets on reload or context restart.\n *\n * Available in: all contexts (including page scripts)\n *\n * @param initialValue - Default value\n * @returns Reactive signal (local only)\n *\n * @example\n * ```typescript\n * // Local UI state\n * const isLoading = $state(false)\n * const error = $state<string | null>(null)\n * ```\n */\nexport function $state<T>(initialValue: T): Signal<T> {\n return signal(initialValue);\n}\n\n/** Server-side authoritative state, keyed for stable identity across the\n * process. Unlike the browser primitives it does NOT sync across contexts or\n * persist to chrome.storage — the server holds the canonical replica and is\n * the always-on peer; connected clients receive derived updates through the\n * Elysia `polly()` plugin's effect/broadcast layer rather than through this\n * signal directly. Used inside `polly({ state: { server: { ... } } })` and\n * read on the request context as `pollyState.server.<key>.value`. */\nconst serverStateRegistry = new Map<string, Signal<unknown>>();\n\n/**\n * Reactive server-only state. The first call for a `key` creates the signal;\n * later calls with the same `key` return that same signal, so a module that\n * declares its server state once gets a stable reference everywhere it is\n * read.\n *\n * @param key - Stable identifier for this server state (e.g. \"db\")\n * @param initialValue - Value held until the server mutates it\n * @returns A reactive signal holding the authoritative server value\n *\n * @example\n * ```typescript\n * import { $serverState } from \"@fairfox/polly\";\n *\n * const db = { todos: signal([]), nextId: 1 };\n * polly({ state: { server: { db: $serverState(\"db\", db) } } });\n * // in a handler: ctx.pollyState.server.db.value.todos.value = [...]\n * ```\n */\nexport function $serverState<T>(key: string, initialValue: T): Signal<T> {\n const existing = serverStateRegistry.get(key);\n // The registry erases T (it stores Signal<unknown>); the key is the\n // caller's contract that the stored signal carries their T.\n if (existing) return existing as unknown as Signal<T>;\n const sig = signal(initialValue);\n serverStateRegistry.set(key, sig as unknown as Signal<unknown>);\n return sig;\n}\n\ntype InternalStateOptions<T = unknown> = StateOptions<T> & {\n enableSync: boolean; // Whether to enable sync (avoid collision with sync?: SyncAdapter)\n enablePersist: boolean; // Whether to enable persistence\n};\n\n// Deep equality check to prevent redundant updates\nexport function deepEqual(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (typeof a !== \"object\" || typeof b !== \"object\") return false;\n\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n if (!keysB.includes(key)) return false;\n if (\n !deepEqual(\n (a as unknown as Record<string, unknown>)[key],\n (b as unknown as Record<string, unknown>)[key]\n )\n )\n return false;\n }\n\n return true;\n}\n\n/**\n * Resolve storage and sync adapters with three-tier priority:\n * 1. Explicit adapters from options (highest priority)\n * 2. MessageBus adapters (legacy, deprecated)\n * 3. Auto-detected adapters (default behavior)\n */\nfunction resolveAdapters(options: InternalStateOptions): {\n storage: StorageAdapter | null;\n sync: SyncAdapter | null;\n} {\n // Priority 1: Explicit adapters (partial or full)\n if (options.storage || options.sync) {\n return {\n storage: options.storage || (options.enablePersist ? createStorageAdapter() : null),\n sync: options.sync || (options.enableSync ? createSyncAdapter() : null),\n };\n }\n\n // Priority 2: MessageBus (legacy support)\n // MessageBus doesn't provide sync adapter, only Chrome storage\n if (options.bus) {\n return {\n storage: options.bus.adapters.storage,\n sync: options.enableSync ? createSyncAdapter() : null,\n };\n }\n\n // Priority 3: Auto-detect based on enableSync and enablePersist flags\n return {\n storage: options.enablePersist ? createStorageAdapter() : null,\n sync: options.enableSync ? createSyncAdapter() : null,\n };\n}\n\nfunction createState<T>(key: string, initialValue: T, options: InternalStateOptions<T>): Signal<T> {\n // Return existing signal if already registered\n if (stateRegistry.has(key)) {\n return stateRegistry.get(key)?.signal as unknown as Signal<T>;\n }\n\n const sig = signal(initialValue);\n\n // Create verification mirror if requested\n if (options.verify) {\n // Create plain object mirror for verification\n const mirror = JSON.parse(JSON.stringify(initialValue)) as unknown as T;\n (sig as unknown as SignalWithVerify<T>).verify = mirror;\n }\n\n const entry: StateEntry<T> = {\n signal: sig,\n clock: 0,\n loaded: Promise.resolve(),\n updating: false,\n };\n\n // Resolve adapters (explicit, MessageBus, or auto-detect)\n const adapters = resolveAdapters(options);\n\n // Load from storage if persist is enabled\n if (options.enablePersist && adapters.storage) {\n entry.loaded = loadFromStorage(key, sig, entry, adapters.storage, options.validator);\n }\n\n // polly#167: the pending debounce timer lives in createState scope, not\n // inside the `loaded` callback, because the incoming-message handler below\n // has to be able to cancel a write the message supersedes.\n let debounceTimer: NodeJS.Timeout | null = null;\n\n // Watch for changes after initial load\n entry.loaded.then(() => {\n let previousValue = sig.value;\n let isFirstRun = true;\n\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Sync effect requires coordination of multiple state change scenarios\n effect(() => {\n // Read the signal FIRST, before any early return can happen.\n //\n // Preact re-collects an effect's dependencies on every run, so a run that\n // returns without touching `sig.value` unsubscribes the effect for good.\n // The run an incoming sync message triggers is exactly such a run.\n const value = sig.value;\n\n // Skip first run (effect fires immediately on registration)\n if (isFirstRun) {\n isFirstRun = false;\n return;\n }\n\n // An incoming message is being applied. Adopt it as the baseline — this\n // context now holds it, so the next local change is a change against it —\n // and do not broadcast, which would echo it back to the sender.\n if (entry.updating) {\n previousValue = value;\n return;\n }\n\n // Skip if value hasn't changed (deep equality check)\n if (deepEqual(value, previousValue)) {\n return;\n }\n\n previousValue = value;\n\n // Update verification mirror if enabled\n if (options.verify) {\n const verifySignal = sig as unknown as SignalWithVerify<T>;\n if (verifySignal.verify) {\n // nosemgrep: javascript.lang.security.insecure-object-assign.insecure-object-assign — internal mirror; value is a deep JSON clone, not arbitrary external input.\n Object.assign(verifySignal.verify, JSON.parse(JSON.stringify(value)));\n }\n }\n\n // Increment clock monotonically\n entry.clock++;\n\n // polly#167: bind the clock to the value HERE, where the two agree.\n //\n // `doUpdate` used to read `entry.clock` when it fired. Under\n // `debounceMs` that is a later moment, and the incoming-message handler\n // below raises `entry.clock` to any message's clock — including a\n // message whose value it rejects. So the deferred write paired this\n // value with somebody else's clock, persisted the pair, and broadcast\n // it. The persisted clock is restored on the next load, so a peer\n // re-sending the real value at that clock was then refused by the\n // strictly-greater rule and the divergence became durable.\n const clockAtWrite = entry.clock;\n\n const doUpdate = () => {\n debounceTimer = null;\n\n // Persist to storage\n if (options.enablePersist && adapters.storage) {\n persistToStorage(key, value, clockAtWrite, adapters.storage);\n }\n\n // Broadcast to other contexts\n if (options.enableSync && adapters.sync) {\n broadcastUpdate(key, value, clockAtWrite, adapters.sync);\n }\n };\n\n // Debounce if specified\n if (options.debounceMs) {\n if (debounceTimer) clearTimeout(debounceTimer);\n debounceTimer = setTimeout(doUpdate, options.debounceMs);\n } else {\n doUpdate();\n }\n });\n });\n\n // Listen for updates from other contexts (only if sync enabled)\n if (options.enableSync && adapters.sync) {\n // Connect if needed (some adapters require explicit connection)\n if (adapters.sync.connect) {\n adapters.sync.connect();\n }\n\n /**\n * Take an incoming value this context has decided to accept.\n *\n * polly#167 put two steps in front of the apply. Both are about a pending\n * debounce timer that the message has just made wrong.\n */\n const acceptIncoming = (value: T, clock: number): void => {\n // The local value is causally older than this one, so the deferred write\n // has nothing left to say. Dropping it stops a stale broadcast that a\n // third context still below this clock would accept.\n //\n // Reached only for a value this context does not already hold: the\n // deep-equality skip below returns first, which leaves a pending timer\n // holding that same value armed, as it should be.\n if (debounceTimer) {\n clearTimeout(debounceTimer);\n debounceTimer = null;\n }\n\n applyUpdate(entry, value, clock);\n\n // `applyUpdate` sets `entry.updating`, so the local effect returns\n // without writing. Persist the incoming pair here, or storage keeps\n // whatever it last held while the signal holds this value — and on the\n // next load the two disagree.\n if (options.enablePersist && adapters.storage) {\n persistToStorage(key, value, clock, adapters.storage);\n }\n };\n\n /** Whether an incoming value is one this context should take. */\n const shouldAccept = (message: StateSyncMessage<T>): boolean => {\n // Validate incoming value if validator provided\n if (options.validator && !options.validator(message.value)) {\n console.warn(\n `[Polly] State \"${key}\": Received invalid value from sync (clock: ${message.clock})`,\n message.value\n );\n return false;\n }\n\n // Skip redundant updates (deep equality check)\n return !deepEqual(entry.signal.value, message.value);\n };\n\n // Register sync message listener\n adapters.sync.onMessage<T>((message) => {\n if (message.key !== key) return;\n\n const oldClock = entry.clock;\n\n // Lamport clock rule: Always update to max(local, received)\n // This maintains causal ordering even when rejecting updates\n entry.clock = Math.max(entry.clock, message.clock);\n\n // Only accept value updates if received clock is strictly greater than old local clock\n // This ensures we only apply causally newer updates\n if (message.clock > oldClock && shouldAccept(message)) {\n acceptIncoming(message.value as unknown as T, message.clock);\n }\n });\n }\n\n stateRegistry.set(key, entry as unknown as StateEntry<unknown>);\n return sig;\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * Backfill keys added to the state shape since a value was persisted.\n *\n * Stored plain objects are shallow-merged over the current defaults so that a\n * field added in a later release rehydrates to its default rather than\n * `undefined`. Primitives and arrays are replaced wholesale — merging those\n * would corrupt them.\n */\nfunction reconcileWithDefaults<T>(defaults: T, stored: unknown): T {\n // Persisted values are trusted to be the T this key was registered with;\n // schema drift is handled by the merge, not by runtime validation.\n if (isPlainObject(defaults) && isPlainObject(stored)) {\n return { ...defaults, ...stored } as unknown as T;\n }\n return stored as unknown as T;\n}\n\nasync function loadFromStorage<T>(\n key: string,\n sig: Signal<T>,\n entry: StateEntry<T>,\n storage: StorageAdapter,\n validator?: (value: unknown) => value is T\n): Promise<void> {\n try {\n const result = await storage.get([key, `${key}:clock`]);\n\n if (result[key] !== undefined) {\n // sig still holds the initial value here, so it is the default base\n // for backfilling keys the persisted blob predates.\n const storedValue = reconcileWithDefaults(sig.peek(), result[key]);\n\n // Validate stored value if validator provided\n if (validator) {\n if (validator(storedValue)) {\n sig.value = storedValue;\n } else {\n console.warn(\n `[Polly] State \"${key}\": Stored value failed validation, using initial value`,\n storedValue\n );\n }\n } else {\n sig.value = storedValue as unknown as T;\n }\n }\n\n if (result[`${key}:clock`] !== undefined) {\n entry.clock = result[`${key}:clock`] as unknown as number;\n }\n } catch (error) {\n console.warn(`[Polly] Failed to load state from storage: ${key}`, error);\n }\n}\n\nfunction persistToStorage<T>(key: string, value: T, clock: number, storage: StorageAdapter): void {\n try {\n storage.set({\n [key]: value,\n [`${key}:clock`]: clock,\n });\n } catch (error) {\n console.warn(`[Polly] Failed to persist state to storage: ${key}`, error);\n }\n}\n\nfunction broadcastUpdate<T>(key: string, value: T, clock: number, sync: SyncAdapter): void {\n try {\n sync.broadcast({\n key,\n value,\n clock,\n });\n } catch (error) {\n console.warn(`[Polly] Failed to broadcast state update: ${key}`, error);\n }\n}\n\nfunction applyUpdate<T>(entry: StateEntry<T>, value: T, clock: number): void {\n entry.updating = true;\n entry.signal.value = value;\n entry.clock = clock;\n entry.updating = false;\n}\n\n/**\n * Get state by key (useful for retrieving state without re-creating)\n */\nexport function getStateByKey<T>(key: string): Signal<T> | undefined {\n const entry = stateRegistry.get(key);\n return entry?.signal as unknown as Signal<T> | undefined;\n}\n\n/**\n * Clear state registry (useful for testing)\n */\nexport function clearStateRegistry(): void {\n stateRegistry.clear();\n}\n"
10
10
  ],
11
- "mappings": "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",
12
- "debugId": "FEDC5CBB4D1AC19B64756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "194264C7746E27FC64756E2164756E21",
13
13
  "names": []
14
14
  }