@pie-players/pie-players-shared 0.3.42 → 0.3.44

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 (210) hide show
  1. package/dist/config/profile.d.ts +0 -1
  2. package/dist/config/profile.js.map +1 -1
  3. package/dist/i18n/index.d.ts +0 -3
  4. package/dist/i18n/index.js +0 -2
  5. package/dist/i18n/index.js.map +1 -1
  6. package/dist/i18n/loader.d.ts +0 -1
  7. package/dist/i18n/loader.js.map +1 -1
  8. package/dist/i18n/simple-i18n.d.ts +0 -1
  9. package/dist/i18n/simple-i18n.js.map +1 -1
  10. package/dist/i18n/types.d.ts +0 -1
  11. package/dist/i18n/types.js.map +1 -1
  12. package/dist/index.d.ts +0 -1
  13. package/dist/index.js +0 -4
  14. package/dist/index.js.map +1 -1
  15. package/dist/instrumentation/debug-panel-stream.d.ts +0 -1
  16. package/dist/instrumentation/debug-panel-stream.js.map +1 -1
  17. package/dist/instrumentation/index.d.ts +0 -1
  18. package/dist/instrumentation/index.js.map +1 -1
  19. package/dist/instrumentation/provider-guards.d.ts +0 -1
  20. package/dist/instrumentation/provider-guards.js.map +1 -1
  21. package/dist/instrumentation/providers/BaseInstrumentationProvider.d.ts +0 -1
  22. package/dist/instrumentation/providers/BaseInstrumentationProvider.js.map +1 -1
  23. package/dist/instrumentation/providers/CompositeInstrumentationProvider.d.ts +0 -1
  24. package/dist/instrumentation/providers/CompositeInstrumentationProvider.js.map +1 -1
  25. package/dist/instrumentation/providers/ConsoleInstrumentationProvider.d.ts +0 -1
  26. package/dist/instrumentation/providers/ConsoleInstrumentationProvider.js.map +1 -1
  27. package/dist/instrumentation/providers/DebugPanelInstrumentationProvider.d.ts +0 -1
  28. package/dist/instrumentation/providers/DebugPanelInstrumentationProvider.js.map +1 -1
  29. package/dist/instrumentation/providers/NewRelicInstrumentationProvider.d.ts +0 -1
  30. package/dist/instrumentation/providers/NewRelicInstrumentationProvider.js.map +1 -1
  31. package/dist/instrumentation/providers/index.d.ts +0 -1
  32. package/dist/instrumentation/providers/index.js.map +1 -1
  33. package/dist/instrumentation/types.d.ts +0 -1
  34. package/dist/instrumentation/types.js.map +1 -1
  35. package/dist/loader-config.d.ts +0 -1
  36. package/dist/loader-config.js.map +1 -1
  37. package/dist/loaders/ElementLoader.d.ts +0 -1
  38. package/dist/loaders/ElementLoader.js.map +1 -1
  39. package/dist/loaders/element-loader-types.d.ts +0 -1
  40. package/dist/loaders/element-loader-types.js.map +1 -1
  41. package/dist/loaders/element-loader.d.ts +0 -1
  42. package/dist/loaders/element-loader.js.map +1 -1
  43. package/dist/loaders/esm-adapter.d.ts +0 -1
  44. package/dist/loaders/esm-adapter.js.map +1 -1
  45. package/dist/loaders/iife-adapter.d.ts +0 -1
  46. package/dist/loaders/iife-adapter.js.map +1 -1
  47. package/dist/loaders/index.d.ts +0 -1
  48. package/dist/loaders/index.js.map +1 -1
  49. package/dist/object/index.d.ts +0 -1
  50. package/dist/object/index.js.map +1 -1
  51. package/dist/pie/asset-handler.d.ts +0 -1
  52. package/dist/pie/asset-handler.js.map +1 -1
  53. package/dist/pie/authoring.d.ts +0 -1
  54. package/dist/pie/authoring.js.map +1 -1
  55. package/dist/pie/component-context.d.ts +0 -1
  56. package/dist/pie/component-context.js.map +1 -1
  57. package/dist/pie/config.d.ts +0 -1
  58. package/dist/pie/config.js.map +1 -1
  59. package/dist/pie/configure-initialization.d.ts +0 -1
  60. package/dist/pie/configure-initialization.js.map +1 -1
  61. package/dist/pie/correct-response-env.d.ts +0 -1
  62. package/dist/pie/correct-response-env.js.map +1 -1
  63. package/dist/pie/custom-element-define.d.ts +0 -1
  64. package/dist/pie/custom-element-define.js.map +1 -1
  65. package/dist/pie/index.d.ts +4 -9
  66. package/dist/pie/index.js +4 -8
  67. package/dist/pie/index.js.map +1 -1
  68. package/dist/pie/initialization.d.ts +0 -1
  69. package/dist/pie/initialization.js.map +1 -1
  70. package/dist/pie/instrumentation-event-bridge.d.ts +0 -1
  71. package/dist/pie/instrumentation-event-bridge.js.map +1 -1
  72. package/dist/pie/instrumentation-event-map.d.ts +0 -1
  73. package/dist/pie/instrumentation-event-map.js.map +1 -1
  74. package/dist/pie/instrumentation-provider-resolution.d.ts +0 -1
  75. package/dist/pie/instrumentation-provider-resolution.js.map +1 -1
  76. package/dist/pie/item-controller-storage.d.ts +0 -1
  77. package/dist/pie/item-controller-storage.js.map +1 -1
  78. package/dist/pie/item-controller.d.ts +0 -1
  79. package/dist/pie/item-controller.js.map +1 -1
  80. package/dist/pie/item-session-contract.d.ts +0 -1
  81. package/dist/pie/item-session-contract.js.map +1 -1
  82. package/dist/pie/logger.d.ts +0 -1
  83. package/dist/pie/logger.js.map +1 -1
  84. package/dist/pie/math-rendering.d.ts +0 -1
  85. package/dist/pie/math-rendering.js.map +1 -1
  86. package/dist/pie/overrides.d.ts +0 -1
  87. package/dist/pie/overrides.js.map +1 -1
  88. package/dist/pie/player-initializer.d.ts +0 -1
  89. package/dist/pie/player-initializer.js.map +1 -1
  90. package/dist/pie/registry.d.ts +0 -1
  91. package/dist/pie/registry.js.map +1 -1
  92. package/dist/pie/resource-monitor.d.ts +0 -1
  93. package/dist/pie/resource-monitor.js.map +1 -1
  94. package/dist/pie/scoring.d.ts +0 -1
  95. package/dist/pie/scoring.js.map +1 -1
  96. package/dist/pie/stage-tracker.d.ts +0 -1
  97. package/dist/pie/stage-tracker.js.map +1 -1
  98. package/dist/pie/stages.d.ts +0 -1
  99. package/dist/pie/stages.js.map +1 -1
  100. package/dist/pie/tag-names.d.ts +0 -1
  101. package/dist/pie/tag-names.js.map +1 -1
  102. package/dist/pie/types.d.ts +0 -1
  103. package/dist/pie/types.js.map +1 -1
  104. package/dist/pie/updates.d.ts +0 -1
  105. package/dist/pie/updates.js.map +1 -1
  106. package/dist/pie/utils.d.ts +0 -1
  107. package/dist/pie/utils.js.map +1 -1
  108. package/dist/player-strategy.d.ts +0 -1
  109. package/dist/player-strategy.js.map +1 -1
  110. package/dist/security/index.d.ts +0 -1
  111. package/dist/security/index.js.map +1 -1
  112. package/dist/security/sanitize-item-markup.d.ts +0 -1
  113. package/dist/security/sanitize-item-markup.js.map +1 -1
  114. package/dist/security/sanitize-svg-icon.d.ts +0 -1
  115. package/dist/security/sanitize-svg-icon.js.map +1 -1
  116. package/dist/security/validate-style-url.d.ts +0 -1
  117. package/dist/security/validate-style-url.js.map +1 -1
  118. package/dist/security/wrap-overwide-images.d.ts +0 -1
  119. package/dist/security/wrap-overwide-images.js.map +1 -1
  120. package/dist/server/npm-registry.d.ts +0 -1
  121. package/dist/server/npm-registry.js.map +1 -1
  122. package/dist/types/index.d.ts +0 -1
  123. package/dist/types/index.js.map +1 -1
  124. package/dist/ui/debug-panel-persistence.d.ts +0 -1
  125. package/dist/ui/debug-panel-persistence.js.map +1 -1
  126. package/dist/ui/first-focusable.d.ts +0 -1
  127. package/dist/ui/first-focusable.js.map +1 -1
  128. package/dist/ui/focus-trap.d.ts +0 -1
  129. package/dist/ui/focus-trap.js.map +1 -1
  130. package/dist/ui/safe-storage.d.ts +0 -1
  131. package/dist/ui/safe-storage.js.map +1 -1
  132. package/package.json +6 -64
  133. package/dist/components/PieItemPlayer.svelte +0 -951
  134. package/dist/components/PiePreviewLayout.svelte +0 -154
  135. package/dist/components/PiePreviewToggle.svelte +0 -110
  136. package/dist/components/PieSpinner.svelte +0 -85
  137. package/dist/components/ToolSettingsButton.svelte +0 -62
  138. package/dist/components/ToolSettingsPanel.svelte +0 -104
  139. package/dist/components/index.ts +0 -6
  140. package/dist/config/profile.d.ts.map +0 -1
  141. package/dist/i18n/index.d.ts.map +0 -1
  142. package/dist/i18n/loader.d.ts.map +0 -1
  143. package/dist/i18n/simple-i18n.d.ts.map +0 -1
  144. package/dist/i18n/types.d.ts.map +0 -1
  145. package/dist/i18n/use-i18n-standalone.svelte.ts +0 -185
  146. package/dist/i18n/use-i18n.svelte.ts +0 -164
  147. package/dist/index.d.ts.map +0 -1
  148. package/dist/instrumentation/debug-panel-stream.d.ts.map +0 -1
  149. package/dist/instrumentation/index.d.ts.map +0 -1
  150. package/dist/instrumentation/provider-guards.d.ts.map +0 -1
  151. package/dist/instrumentation/providers/BaseInstrumentationProvider.d.ts.map +0 -1
  152. package/dist/instrumentation/providers/CompositeInstrumentationProvider.d.ts.map +0 -1
  153. package/dist/instrumentation/providers/ConsoleInstrumentationProvider.d.ts.map +0 -1
  154. package/dist/instrumentation/providers/DebugPanelInstrumentationProvider.d.ts.map +0 -1
  155. package/dist/instrumentation/providers/NewRelicInstrumentationProvider.d.ts.map +0 -1
  156. package/dist/instrumentation/providers/index.d.ts.map +0 -1
  157. package/dist/instrumentation/types.d.ts.map +0 -1
  158. package/dist/loader-config.d.ts.map +0 -1
  159. package/dist/loaders/ElementLoader.d.ts.map +0 -1
  160. package/dist/loaders/element-loader-types.d.ts.map +0 -1
  161. package/dist/loaders/element-loader.d.ts.map +0 -1
  162. package/dist/loaders/esm-adapter.d.ts.map +0 -1
  163. package/dist/loaders/iife-adapter.d.ts.map +0 -1
  164. package/dist/loaders/index.d.ts.map +0 -1
  165. package/dist/object/index.d.ts.map +0 -1
  166. package/dist/pie/asset-handler.d.ts.map +0 -1
  167. package/dist/pie/authoring.d.ts.map +0 -1
  168. package/dist/pie/component-context.d.ts.map +0 -1
  169. package/dist/pie/config.d.ts.map +0 -1
  170. package/dist/pie/configure-initialization.d.ts.map +0 -1
  171. package/dist/pie/correct-response-env.d.ts.map +0 -1
  172. package/dist/pie/custom-element-define.d.ts.map +0 -1
  173. package/dist/pie/index.d.ts.map +0 -1
  174. package/dist/pie/initialization.d.ts.map +0 -1
  175. package/dist/pie/instrumentation-event-bridge.d.ts.map +0 -1
  176. package/dist/pie/instrumentation-event-map.d.ts.map +0 -1
  177. package/dist/pie/instrumentation-provider-resolution.d.ts.map +0 -1
  178. package/dist/pie/item-controller-storage.d.ts.map +0 -1
  179. package/dist/pie/item-controller.d.ts.map +0 -1
  180. package/dist/pie/item-session-contract.d.ts.map +0 -1
  181. package/dist/pie/logger.d.ts.map +0 -1
  182. package/dist/pie/math-rendering.d.ts.map +0 -1
  183. package/dist/pie/overrides.d.ts.map +0 -1
  184. package/dist/pie/player-initializer.d.ts.map +0 -1
  185. package/dist/pie/registry.d.ts.map +0 -1
  186. package/dist/pie/resource-monitor.d.ts.map +0 -1
  187. package/dist/pie/scoring.d.ts.map +0 -1
  188. package/dist/pie/stage-tracker.d.ts.map +0 -1
  189. package/dist/pie/stages.d.ts.map +0 -1
  190. package/dist/pie/tag-names.d.ts.map +0 -1
  191. package/dist/pie/types.d.ts.map +0 -1
  192. package/dist/pie/updates.d.ts.map +0 -1
  193. package/dist/pie/use-resource-monitor.svelte.d.ts +0 -56
  194. package/dist/pie/use-resource-monitor.svelte.d.ts.map +0 -1
  195. package/dist/pie/use-resource-monitor.svelte.js +0 -176
  196. package/dist/pie/use-resource-monitor.svelte.js.map +0 -1
  197. package/dist/pie/utils.d.ts.map +0 -1
  198. package/dist/player-strategy.d.ts.map +0 -1
  199. package/dist/security/index.d.ts.map +0 -1
  200. package/dist/security/sanitize-item-markup.d.ts.map +0 -1
  201. package/dist/security/sanitize-svg-icon.d.ts.map +0 -1
  202. package/dist/security/validate-style-url.d.ts.map +0 -1
  203. package/dist/security/wrap-overwide-images.d.ts.map +0 -1
  204. package/dist/server/npm-registry.d.ts.map +0 -1
  205. package/dist/types/index.d.ts.map +0 -1
  206. package/dist/ui/debug-panel-persistence.d.ts.map +0 -1
  207. package/dist/ui/first-focusable.d.ts.map +0 -1
  208. package/dist/ui/focus-trap.d.ts.map +0 -1
  209. package/dist/ui/safe-storage.d.ts.map +0 -1
  210. package/dist/ui/use-promise.svelte.ts +0 -109
@@ -8,4 +8,3 @@ import type { PieRegistry } from "./types.js";
8
8
  * Get or create the global PIE registry
9
9
  */
10
10
  export declare const pieRegistry: () => PieRegistry;
11
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/pie/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAgB,EAAE;IAC5C,IAAI,QAAqB,CAAC;IAC1B,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;IAChC,CAAC;SAAM,CAAC;QACP,QAAQ,GAAG,EAAE,CAAC;QACb,MAAc,CAAC,YAAY,GAAG,QAAQ,CAAC;IACzC,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/pie/registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAgB,EAAE;IAC5C,IAAI,QAAqB,CAAC;IAC1B,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;IAChC,CAAC;SAAM,CAAC;QACP,QAAQ,GAAG,EAAE,CAAC;QACb,MAAc,CAAC,YAAY,GAAG,QAAQ,CAAC;IACzC,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC","sourcesContent":["/**\n * PIE Registry Module\n *\n * Manages the global PIE registry that tracks loaded elements.\n */\n\nimport type { PieRegistry } from \"./types.js\";\nimport { isPieRegistryAvailable } from \"./types.js\";\n\n/**\n * Get or create the global PIE registry\n */\nexport const pieRegistry = (): PieRegistry => {\n\tlet registry: PieRegistry;\n\tif (isPieRegistryAvailable(window)) {\n\t\tregistry = window.PIE_REGISTRY;\n\t} else {\n\t\tregistry = {};\n\t\t(window as any).PIE_REGISTRY = registry;\n\t}\n\treturn registry;\n};\n"]}
@@ -240,4 +240,3 @@ export declare function createResourceMonitor(container: HTMLElement, config?: R
240
240
  export declare function initializeResourceRequestTracking(): void;
241
241
  export declare function getTrackedResourceRequests(): Map<string, ComponentContext[]>;
242
242
  export declare function clearTrackedResourceRequests(): void;
243
- //# sourceMappingURL=resource-monitor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-monitor.js","sourceRoot":"","sources":["../../src/pie/resource-monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-monitor.js","sourceRoot":"","sources":["../../src/pie/resource-monitor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Resource Monitor for PIE Element Assets\n *\n * Tracks and monitors loading of resources (audio, video, images) embedded\n * in PIE element content without requiring changes to PIE elements.\n *\n * Features:\n * - Tracks resource load timing with PerformanceObserver\n * - Detects and retries failed resource loads\n * - Sends instrumentation to New Relic\n * - Works with all resource types (audio, video, img, link)\n */\n\nimport { NewRelicInstrumentationProvider } from \"../instrumentation/providers/NewRelicInstrumentationProvider.js\";\nimport { isInstrumentationProvider } from \"../instrumentation/provider-guards.js\";\nimport type { InstrumentationProvider } from \"../instrumentation/types.js\";\nimport type { ComponentContext } from \"./component-context.js\";\nimport { getCurrentComponentContext } from \"./component-context.js\";\nimport { createPieLogger, isGlobalDebugEnabled } from \"./logger.js\";\n\nexport type ResourceMonitorConfig = {\n\t/**\n\t * Enable tracking page actions/events\n\t *\n\t * When true, resource monitoring events will be sent to the instrumentation provider.\n\t */\n\ttrackPageActions?: boolean;\n\n\t/**\n\t * Instrumentation provider for tracking events and errors\n\t *\n\t * Optional. If not provided, defaults to NewRelicInstrumentationProvider.\n\t * The provider handles instrumentation gracefully - if New Relic is not available,\n\t * it will simply not track events (no errors thrown).\n\t *\n\t * To use a different provider, pass it here:\n\t *\n\t * @example\n\t * ```typescript\n\t * const provider = new ConsoleInstrumentationProvider();\n\t * await provider.initialize({ debug: true });\n\t *\n\t * const monitor = new ResourceMonitor({\n\t * trackPageActions: true,\n\t * instrumentationProvider: provider\n\t * });\n\t * ```\n\t */\n\tinstrumentationProvider?: InstrumentationProvider;\n\n\t/**\n\t * Whether ResourceMonitor should initialize/destroy the instrumentation provider.\n\t *\n\t * Defaults to `true` when ResourceMonitor creates the provider internally, and\n\t * `false` when a provider is injected by the host.\n\t */\n\tmanageProviderLifecycle?: boolean;\n\n\t/**\n\t * Maximum number of retry attempts for failed resources\n\t * Default: 3\n\t */\n\tmaxRetries?: number;\n\n\t/**\n\t * Initial delay in ms before first retry\n\t * Default: 500\n\t */\n\tinitialRetryDelay?: number;\n\n\t/**\n\t * Maximum delay in ms between retries\n\t * Default: 5000\n\t */\n\tmaxRetryDelay?: number;\n\n\t/**\n\t * Enable debug logging\n\t */\n\tdebug?: boolean;\n};\n\nconst DEFAULT_CONFIG = {\n\ttrackPageActions: false as const,\n\tinstrumentationProvider: undefined as InstrumentationProvider | undefined,\n\tmanageProviderLifecycle: undefined as boolean | undefined,\n\tmaxRetries: 3 as number,\n\tinitialRetryDelay: 500 as number,\n\tmaxRetryDelay: 5000 as number,\n\tdebug: false as const,\n};\n\n// Constants\nconst MAX_URL_LENGTH = 80;\nconst URL_TRUNCATE_LENGTH = 77;\nconst MEDIA_RETRY_RECONCILIATION_TIMEOUT_MS = 1200;\nconst MEDIA_RETRY_RECONCILIATION_POLL_MS = 75;\n\ntype ResourceElement =\n\t| HTMLImageElement\n\t| HTMLAudioElement\n\t| HTMLVideoElement\n\t| HTMLLinkElement\n\t| HTMLSourceElement;\n\n/**\n * Event detail for resource monitoring events\n */\nexport interface ResourceMonitorEventDetail {\n\turl: string;\n\tresourceType: string;\n\tduration?: number;\n\tsize?: number;\n\tretryCount: number;\n\tmaxRetries: number;\n\terror?: string;\n}\n\nexport interface MediaRetryReadyDetail extends ResourceMonitorEventDetail {\n\tmediaTag: \"audio\" | \"video\";\n}\n\n/**\n * Resource monitor event contract\n *\n * - `pie-resource-load-success`: emitted when a resource request is successful.\n * For retried media resources, this is emitted only after media becomes healthy.\n * - `pie-resource-retry-success`: emitted once per successful retry cycle.\n * - `pie-media-retry-ready`: emitted once per successful retry cycle to recovered\n * media targets (`audio`/`video`), including `<source>`-driven retries resolved\n * to their parent media element.\n * - `pie-resource-load-error`: emitted when retries are exhausted or when a retried\n * media fetch succeeds but media does not become healthy before reconciliation timeout.\n */\n\ninterface ResourceErrorDiagnostics {\n\teventType: string;\n\ttagName: string;\n\tresourceUrl: string;\n\toriginalUrl: string;\n\tcurrentRetries: number;\n\tremainingRetries: number;\n\twillRetry: boolean;\n\tcacheBypassActive: boolean;\n\tcurrentSrc?: string;\n\treadyState?: number;\n\tnetworkState?: number;\n\tpaused?: boolean;\n\tended?: boolean;\n\tcurrentTime?: number;\n\tduration?: number | null;\n\tmediaErrorCode?: number;\n\tmediaErrorName?: string;\n\tmediaErrorMessage?: string;\n}\n\n/**\n * Tracks resource loads and provides retry capability\n */\nexport class ResourceMonitor {\n\tprivate config: Required<\n\t\tOmit<ResourceMonitorConfig, \"instrumentationProvider\">\n\t> & {\n\t\tinstrumentationProvider: InstrumentationProvider | undefined;\n\t};\n\tprivate logger: ReturnType<typeof createPieLogger>;\n\tprivate observer: PerformanceObserver | null = null;\n\tprivate mutationObserver: MutationObserver | null = null;\n\tprivate errorHandler: ((event: Event) => void) | null = null;\n\tprivate retryAttempts = new Map<string, number>();\n\tprivate retryTargets = new Map<string, Set<ResourceElement>>();\n\tprivate container: HTMLElement | null = null;\n\tprivate isBrowser: boolean;\n\tprivate containerResources = new Set<string>(); // Track resources within our container\n\tprivate provider: InstrumentationProvider;\n\tprivate readonly ownsProvider: boolean;\n\tprivate readonly manageProviderLifecycle: boolean;\n\tprivate started = false;\n\tprivate lifecycleVersion = 0;\n\tprivate pendingRetryTimers = new Map<string, ReturnType<typeof setTimeout>>();\n\tprivate retryInFlight = new Set<string>();\n\tprivate pendingMediaChecks = new Map<\n\t\tstring,\n\t\t{\n\t\t\tcleanup: () => void;\n\t\t}\n\t>();\n\n\tconstructor(config: ResourceMonitorConfig = {}) {\n\t\tconst validInjectedProvider = isInstrumentationProvider(\n\t\t\tconfig.instrumentationProvider,\n\t\t)\n\t\t\t? config.instrumentationProvider\n\t\t\t: undefined;\n\t\tconst hasInjectedProvider = !!validInjectedProvider;\n\t\tconst manageProviderLifecycle =\n\t\t\tconfig.manageProviderLifecycle ?? !hasInjectedProvider;\n\t\tthis.config = {\n\t\t\ttrackPageActions:\n\t\t\t\tconfig.trackPageActions ?? DEFAULT_CONFIG.trackPageActions,\n\t\t\tinstrumentationProvider: validInjectedProvider,\n\t\t\tmanageProviderLifecycle,\n\t\t\tmaxRetries: config.maxRetries ?? DEFAULT_CONFIG.maxRetries,\n\t\t\tinitialRetryDelay:\n\t\t\t\tconfig.initialRetryDelay ?? DEFAULT_CONFIG.initialRetryDelay,\n\t\t\tmaxRetryDelay: config.maxRetryDelay ?? DEFAULT_CONFIG.maxRetryDelay,\n\t\t\tdebug: config.debug ?? DEFAULT_CONFIG.debug,\n\t\t};\n\t\tthis.logger = createPieLogger(\"resource-monitor\", () =>\n\t\t\tthis.isDebugEnabled(),\n\t\t);\n\t\tif (config.instrumentationProvider && !validInjectedProvider) {\n\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\tthis.logger.warn(\n\t\t\t\t\t\"Ignoring invalid instrumentation provider; expected InstrumentationProvider shape\",\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// Always use a provider - default to NewRelic if not specified\n\t\tthis.ownsProvider = !this.config.instrumentationProvider;\n\t\tthis.provider =\n\t\t\tthis.config.instrumentationProvider ??\n\t\t\tnew NewRelicInstrumentationProvider();\n\t\tthis.manageProviderLifecycle = this.config.manageProviderLifecycle;\n\n\t\t// Initialize the provider (async, but don't block constructor)\n\t\tif (this.manageProviderLifecycle) {\n\t\t\tthis.provider.initialize().catch((err) => {\n\t\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\t\tthis.logger.warn(\"Failed to initialize instrumentation provider:\", err);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (this.isDebugEnabled()) {\n\t\t\tthis.logger.debug(\n\t\t\t\t\"Skipping provider lifecycle management for injected provider\",\n\t\t\t);\n\t\t}\n\t\tthis.isBrowser =\n\t\t\ttypeof window !== \"undefined\" && typeof document !== \"undefined\";\n\t}\n\n\t/**\n\t * Check if debug logging is enabled (dynamically checks window.PIE_DEBUG)\n\t */\n\tprivate isDebugEnabled(): boolean {\n\t\treturn this.config.debug || isGlobalDebugEnabled();\n\t}\n\n\t/**\n\t * Truncate URL for display in logs\n\t */\n\tprivate truncateUrl(url: string): string {\n\t\treturn url.length > MAX_URL_LENGTH\n\t\t\t? \"...\" + url.slice(-URL_TRUNCATE_LENGTH)\n\t\t\t: url;\n\t}\n\n\t/**\n\t * Strip retry parameters from URL to get the original URL\n\t */\n\tprivate getOriginalUrl(url: string): string {\n\t\ttry {\n\t\t\tconst urlObj = new URL(url);\n\t\t\turlObj.searchParams.delete(\"retry\");\n\t\t\turlObj.searchParams.delete(\"t\");\n\t\t\treturn urlObj.toString();\n\t\t} catch {\n\t\t\t// If URL parsing fails, return as-is\n\t\t\treturn url;\n\t\t}\n\t}\n\n\tprivate withRetryParams(url: string, attempt: number): string {\n\t\tconst retryValue = String(attempt);\n\t\tconst timestamp = Date.now().toString();\n\t\ttry {\n\t\t\tconst parsed = new URL(url);\n\t\t\tparsed.searchParams.set(\"retry\", retryValue);\n\t\t\tparsed.searchParams.set(\"t\", timestamp);\n\t\t\treturn parsed.toString();\n\t\t} catch {\n\t\t\t// Fallback for relative or malformed URLs.\n\t\t\tconst separator = url.includes(\"?\") ? \"&\" : \"?\";\n\t\t\treturn `${url}${separator}retry=${encodeURIComponent(retryValue)}&t=${encodeURIComponent(timestamp)}`;\n\t\t}\n\t}\n\n\tprivate getMediaErrorName(code: number | undefined): string | undefined {\n\t\tswitch (code) {\n\t\t\tcase 1:\n\t\t\t\treturn \"MEDIA_ERR_ABORTED\";\n\t\t\tcase 2:\n\t\t\t\treturn \"MEDIA_ERR_NETWORK\";\n\t\t\tcase 3:\n\t\t\t\treturn \"MEDIA_ERR_DECODE\";\n\t\t\tcase 4:\n\t\t\t\treturn \"MEDIA_ERR_SRC_NOT_SUPPORTED\";\n\t\t\tdefault:\n\t\t\t\treturn undefined;\n\t\t}\n\t}\n\n\tprivate buildResourceErrorDiagnostics(\n\t\ttarget: ResourceElement,\n\t\targs: {\n\t\t\teventType: string;\n\t\t\tresourceUrl: string;\n\t\t\toriginalUrl: string;\n\t\t\tcurrentRetries: number;\n\t\t\tremainingRetries: number;\n\t\t\twillRetry: boolean;\n\t\t},\n\t): ResourceErrorDiagnostics {\n\t\tconst diagnostics: ResourceErrorDiagnostics = {\n\t\t\teventType: args.eventType,\n\t\t\ttagName: target.tagName.toLowerCase(),\n\t\t\tresourceUrl: args.resourceUrl,\n\t\t\toriginalUrl: args.originalUrl,\n\t\t\tcurrentRetries: args.currentRetries,\n\t\t\tremainingRetries: args.remainingRetries,\n\t\t\twillRetry: args.willRetry,\n\t\t\tcacheBypassActive:\n\t\t\t\targs.resourceUrl.includes(\"retry=\") || args.resourceUrl.includes(\"t=\"),\n\t\t};\n\n\t\tif (\n\t\t\ttarget instanceof HTMLAudioElement ||\n\t\t\ttarget instanceof HTMLVideoElement\n\t\t) {\n\t\t\tconst mediaError = target.error;\n\t\t\tconst mediaErrorCode = mediaError?.code;\n\t\t\tdiagnostics.currentSrc = target.currentSrc || target.src;\n\t\t\tdiagnostics.readyState = target.readyState;\n\t\t\tdiagnostics.networkState = target.networkState;\n\t\t\tdiagnostics.paused = target.paused;\n\t\t\tdiagnostics.ended = target.ended;\n\t\t\tdiagnostics.currentTime = target.currentTime;\n\t\t\tdiagnostics.duration = Number.isFinite(target.duration)\n\t\t\t\t? target.duration\n\t\t\t\t: null;\n\t\t\tdiagnostics.mediaErrorCode = mediaErrorCode;\n\t\t\tdiagnostics.mediaErrorName = this.getMediaErrorName(mediaErrorCode);\n\t\t\tdiagnostics.mediaErrorMessage =\n\t\t\t\ttypeof mediaError?.message === \"string\"\n\t\t\t\t\t? mediaError.message\n\t\t\t\t\t: undefined;\n\t\t}\n\n\t\treturn diagnostics;\n\t}\n\n\t/**\n\t * Track event with instrumentation provider if enabled\n\t */\n\tprivate trackInstrumentationEvent(\n\t\teventName: string,\n\t\tattributes: Record<string, any>,\n\t): void {\n\t\tif (!this.config.trackPageActions || !this.provider.isReady()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.provider.trackEvent(eventName, {\n\t\t\t...attributes,\n\t\t\tcomponent: \"resource-monitor\",\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t});\n\t}\n\n\t/**\n\t * Track error with instrumentation provider if enabled\n\t */\n\tprivate trackInstrumentationError(\n\t\terror: Error,\n\t\tattributes: Record<string, any>,\n\t): void {\n\t\tif (!this.config.trackPageActions || !this.provider.isReady()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.provider.trackError(error, {\n\t\t\t...attributes,\n\t\t\tcomponent: \"resource-monitor\",\n\t\t\terrorType: attributes.errorType || \"ResourceError\",\n\t\t});\n\t}\n\n\t/**\n\t * Start monitoring resources in the given container\n\t */\n\tpublic start(container: HTMLElement): void {\n\t\tif (this.started) {\n\t\t\tif (this.container === container) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.stop();\n\t\t}\n\n\t\tif (!this.isBrowser) {\n\t\t\tthis.logger.debug(\n\t\t\t\t\"Not in browser environment, skipping resource monitoring\",\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.container = container;\n\t\tthis.lifecycleVersion += 1;\n\n\t\tthis.setupMutationObserver();\n\t\tthis.scanContainerResources(); // Initial scan of existing resources\n\t\tthis.setupPerformanceObserver();\n\t\tthis.setupErrorHandler();\n\t\tthis.started = true;\n\n\t\tthis.logger.info(\"✅ Resource monitoring started\");\n\t}\n\n\t/**\n\t * Stop monitoring and clean up\n\t */\n\tpublic stop(): void {\n\t\tif (!this.started) return;\n\t\tthis.lifecycleVersion += 1;\n\n\t\tif (this.observer) {\n\t\t\tthis.observer.disconnect();\n\t\t\tthis.observer = null;\n\t\t}\n\n\t\tif (this.mutationObserver) {\n\t\t\tthis.mutationObserver.disconnect();\n\t\t\tthis.mutationObserver = null;\n\t\t}\n\n\t\tif (this.errorHandler && this.container) {\n\t\t\tthis.container.removeEventListener(\"error\", this.errorHandler, true);\n\t\t\tthis.errorHandler = null;\n\t\t}\n\n\t\tthis.retryAttempts.clear();\n\t\tthis.retryTargets.clear();\n\t\tthis.retryInFlight.clear();\n\t\tfor (const timer of this.pendingRetryTimers.values()) {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t\tthis.pendingRetryTimers.clear();\n\t\tfor (const pending of this.pendingMediaChecks.values()) {\n\t\t\tpending.cleanup();\n\t\t}\n\t\tthis.pendingMediaChecks.clear();\n\t\tthis.containerResources.clear();\n\t\tthis.container = null;\n\t\tthis.started = false;\n\n\t\tif (this.manageProviderLifecycle) {\n\t\t\ttry {\n\t\t\t\tthis.provider.destroy();\n\t\t\t} catch (error) {\n\t\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\t\tthis.logger.warn(\"Failed to destroy instrumentation provider:\", error);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.logger.info(\"Resource monitoring stopped\");\n\t}\n\n\t/**\n\t * Set up MutationObserver to track DOM changes within container\n\t * This allows us to know which resources belong to our container\n\t */\n\tprivate setupMutationObserver(): void {\n\t\tif (\n\t\t\t!this.isBrowser ||\n\t\t\ttypeof MutationObserver === \"undefined\" ||\n\t\t\t!this.container\n\t\t) {\n\t\t\tthis.logger.debug(\"MutationObserver not available or no container\");\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tthis.mutationObserver = new MutationObserver((mutations) => {\n\t\t\t\tfor (const mutation of mutations) {\n\t\t\t\t\t// Check added nodes\n\t\t\t\t\tmutation.addedNodes.forEach((node) => {\n\t\t\t\t\t\tif (node instanceof HTMLElement) {\n\t\t\t\t\t\t\tthis.scanElementForResources(node);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// Check attribute changes (src, href changes)\n\t\t\t\t\tif (\n\t\t\t\t\t\tmutation.type === \"attributes\" &&\n\t\t\t\t\t\tmutation.target instanceof HTMLElement\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst target = mutation.target;\n\t\t\t\t\t\tif (this.isResourceElement(target)) {\n\t\t\t\t\t\t\tconst src = this.getResourceSrc(target);\n\t\t\t\t\t\t\tif (src) {\n\t\t\t\t\t\t\t\tthis.containerResources.add(src);\n\t\t\t\t\t\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\t\t\t\t\t\tthis.logger.debug(\n\t\t\t\t\t\t\t\t\t\t`📌 Tracked resource attribute change: ${src}`,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Observe the container for changes\n\t\t\tthis.mutationObserver.observe(this.container, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: [\"src\", \"href\"],\n\t\t\t});\n\n\t\t\tthis.logger.debug(\"MutationObserver set up successfully\");\n\t\t} catch (error) {\n\t\t\tthis.logger.warn(\"Failed to set up MutationObserver:\", error);\n\t\t}\n\t}\n\n\t/**\n\t * Scan an element and its descendants for resources\n\t */\n\tprivate scanElementForResources(element: HTMLElement): void {\n\t\t// Check the element itself\n\t\tif (this.isResourceElement(element)) {\n\t\t\tconst src = this.getResourceSrc(element);\n\t\t\tif (src) {\n\t\t\t\tthis.containerResources.add(src);\n\t\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\t\tthis.logger.debug(`📌 Tracked new resource in container: ${src}`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check descendants\n\t\tconst resourceSelectors = [\n\t\t\t\"img\",\n\t\t\t\"audio\",\n\t\t\t\"video\",\n\t\t\t'link[rel=\"stylesheet\"]',\n\t\t\t\"source\",\n\t\t];\n\t\tresourceSelectors.forEach((selector) => {\n\t\t\telement.querySelectorAll(selector).forEach((el) => {\n\t\t\t\tif (this.isResourceElement(el)) {\n\t\t\t\t\tconst src = this.getResourceSrc(el as ResourceElement);\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tthis.containerResources.add(src);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initial scan of container for existing resources\n\t */\n\tprivate scanContainerResources(): void {\n\t\tif (!this.container) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.scanElementForResources(this.container);\n\n\t\tif (this.isDebugEnabled()) {\n\t\t\tthis.logger.debug(\n\t\t\t\t`📊 Initial container scan found ${this.containerResources.size} resources`,\n\t\t\t);\n\t\t\tif (this.containerResources.size > 0) {\n\t\t\t\tthis.containerResources.forEach((url) => {\n\t\t\t\t\tthis.logger.debug(` - ${this.truncateUrl(url)}`);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Set up PerformanceObserver to track resource loading timing\n\t */\n\tprivate setupPerformanceObserver(): void {\n\t\tif (!this.isBrowser || typeof PerformanceObserver === \"undefined\") {\n\t\t\tthis.logger.debug(\"PerformanceObserver not available\");\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tthis.observer = new PerformanceObserver((list) => {\n\t\t\t\tfor (const entry of list.getEntries()) {\n\t\t\t\t\tif (entry.entryType === \"resource\") {\n\t\t\t\t\t\tthis.handleResourceTiming(entry as PerformanceResourceTiming);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Use 'type' (singular) instead of 'entryTypes' (plural) to support buffered option\n\t\t\t// The buffered flag only works with the newer 'type' parameter\n\t\t\tthis.observer.observe({\n\t\t\t\ttype: \"resource\",\n\t\t\t\tbuffered: true, // Capture resources loaded before observer started\n\t\t\t});\n\n\t\t\tthis.logger.debug(\"PerformanceObserver set up successfully\");\n\t\t} catch (error) {\n\t\t\tthis.logger.warn(\"Failed to set up PerformanceObserver:\", error);\n\t\t}\n\t}\n\n\t/**\n\t * Handle resource timing entry\n\t */\n\tprivate handleResourceTiming(entry: PerformanceResourceTiming): void {\n\t\t// Only track media and image resources that are relevant to PIE content\n\t\tconst isRelevant = this.isRelevantResource(entry);\n\n\t\tif (!isRelevant) {\n\t\t\tif (\n\t\t\t\tthis.isDebugEnabled() &&\n\t\t\t\t(entry.initiatorType === \"img\" ||\n\t\t\t\t\tentry.initiatorType === \"audio\" ||\n\t\t\t\t\tentry.initiatorType === \"video\")\n\t\t\t) {\n\t\t\t\tthis.logger.debug(\n\t\t\t\t\t`⏭️ Skipping non-container resource: ${this.truncateUrl(entry.name)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst duration = entry.duration;\n\t\tconst size = entry.transferSize;\n\t\tconst url = entry.name;\n\t\tconst originalUrl = this.getOriginalUrl(url);\n\n\t\t// Detect actual failures: responseEnd === 0 means the request didn't complete\n\t\t// Note: transferSize === 0 is NOT a failure indicator (can be cache, CORS, or small resources)\n\t\t// We primarily rely on the error event handler for detecting failures\n\t\tconst failed = entry.responseEnd === 0 && entry.duration > 0;\n\n\t\t// Check if this was a retry that succeeded\n\t\tconst wasRetried = this.retryAttempts.has(originalUrl);\n\t\tconst retryCount = this.retryAttempts.get(originalUrl) || 0;\n\n\t\t// Enhanced debug logging with detailed timing breakdown\n\t\tif (this.isDebugEnabled()) {\n\t\t\tconst shortUrl = this.truncateUrl(url);\n\t\t\tconst sizeKB = (size / 1024).toFixed(2);\n\t\t\tconst status = failed ? \"❌ FAILED\" : \"✅ SUCCESS\";\n\n\t\t\t// Detailed timing breakdown\n\t\t\tconst timingDetails = {\n\t\t\t\ttotal: `${duration.toFixed(2)}ms`,\n\t\t\t\tdns:\n\t\t\t\t\tentry.domainLookupEnd > 0\n\t\t\t\t\t\t? `${(entry.domainLookupEnd - entry.domainLookupStart).toFixed(2)}ms`\n\t\t\t\t\t\t: \"n/a\",\n\t\t\t\ttcp:\n\t\t\t\t\tentry.connectEnd > 0\n\t\t\t\t\t\t? `${(entry.connectEnd - entry.connectStart).toFixed(2)}ms`\n\t\t\t\t\t\t: \"n/a\",\n\t\t\t\trequest:\n\t\t\t\t\tentry.responseStart > 0\n\t\t\t\t\t\t? `${(entry.responseStart - entry.requestStart).toFixed(2)}ms`\n\t\t\t\t\t\t: \"n/a\",\n\t\t\t\tresponse:\n\t\t\t\t\tentry.responseEnd > 0\n\t\t\t\t\t\t? `${(entry.responseEnd - entry.responseStart).toFixed(2)}ms`\n\t\t\t\t\t\t: \"n/a\",\n\t\t\t\tsize: size > 0 ? `${sizeKB} KB` : \"0 KB\",\n\t\t\t\ttype: entry.initiatorType,\n\t\t\t\tprotocol: entry.nextHopProtocol || \"unknown\",\n\t\t\t};\n\n\t\t\t// Add retry context if this was retried\n\t\t\tconst retryContext =\n\t\t\t\twasRetried && !failed\n\t\t\t\t\t? `\\n 🔄 Retry Success: Succeeded after ${retryCount} ${retryCount === 1 ? \"retry\" : \"retries\"}`\n\t\t\t\t\t: \"\";\n\n\t\t\tthis.logger.info(\n\t\t\t\t`📊 PIE Resource Load ${status}\\n` +\n\t\t\t\t\t` URL: ${shortUrl}\\n` +\n\t\t\t\t\t` Type: ${timingDetails.type} | Protocol: ${timingDetails.protocol}\\n` +\n\t\t\t\t\t` ⏱️ Total Time: ${timingDetails.total}\\n` +\n\t\t\t\t\t` └─ DNS Lookup: ${timingDetails.dns}\\n` +\n\t\t\t\t\t` └─ TCP Connect: ${timingDetails.tcp}\\n` +\n\t\t\t\t\t` └─ Request Time: ${timingDetails.request}\\n` +\n\t\t\t\t\t` └─ Response Time: ${timingDetails.response}\\n` +\n\t\t\t\t\t` 📦 Transfer Size: ${timingDetails.size}${retryContext}`,\n\t\t\t);\n\t\t} else {\n\t\t\t// Simple logging when debug is off but tracking is on\n\t\t\tthis.logger.debug(`Resource loaded: ${entry.name}`, {\n\t\t\t\tduration: `${duration.toFixed(2)}ms`,\n\t\t\t\tsize: `${size} bytes`,\n\t\t\t\ttype: entry.initiatorType,\n\t\t\t\tfailed,\n\t\t\t\twasRetried,\n\t\t\t\tretryCount,\n\t\t\t});\n\t\t}\n\n\t\t// Handle successful loads\n\t\tif (!failed) {\n\t\t\tthis.handleSuccessfulLoad(\n\t\t\t\toriginalUrl,\n\t\t\t\tentry,\n\t\t\t\tduration,\n\t\t\t\tsize,\n\t\t\t\tretryCount,\n\t\t\t\twasRetried,\n\t\t\t);\n\t\t}\n\n\t\t// Track with instrumentation provider\n\t\tthis.trackInstrumentationEvent(\"pie-resource-load\", {\n\t\t\turl: entry.name,\n\t\t\tduration: Math.round(duration),\n\t\t\tsize,\n\t\t\ttype: entry.initiatorType,\n\t\t\tfailed,\n\t\t\twasRetried,\n\t\t\tretryCount,\n\t\t});\n\n\t\t// Track failed loads\n\t\tif (failed) {\n\t\t\tthis.handleFailedLoad(originalUrl, entry, duration, retryCount, wasRetried);\n\t\t}\n\t}\n\n\tprivate isLifecycleActive(version: number): boolean {\n\t\treturn this.started && this.lifecycleVersion === version;\n\t}\n\n\tprivate clearRetryTracking(url: string): void {\n\t\tthis.retryAttempts.delete(url);\n\t\tthis.retryTargets.delete(url);\n\t\tthis.retryInFlight.delete(url);\n\t}\n\n\tprivate clearPendingMediaCheck(url: string): void {\n\t\tconst pending = this.pendingMediaChecks.get(url);\n\t\tif (!pending) return;\n\t\tpending.cleanup();\n\t\tthis.pendingMediaChecks.delete(url);\n\t}\n\n\tprivate getRetryTargets(url: string): Set<ResourceElement> {\n\t\tlet trackedTargets = this.retryTargets.get(url);\n\t\tif (!trackedTargets) {\n\t\t\ttrackedTargets = new Set<ResourceElement>();\n\t\t\tthis.retryTargets.set(url, trackedTargets);\n\t\t}\n\t\treturn trackedTargets;\n\t}\n\n\tprivate getPrimaryRetryTarget(url: string): ResourceElement | null {\n\t\tconst targets = this.retryTargets.get(url);\n\t\tif (!targets || targets.size === 0) return null;\n\t\tfor (const target of targets) {\n\t\t\treturn target;\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * Handle successful resource load\n\t */\n\tprivate handleSuccessfulLoad(\n\t\turl: string,\n\t\tentry: PerformanceResourceTiming,\n\t\tduration: number,\n\t\tsize: number,\n\t\tretryCount: number,\n\t\twasRetried: boolean,\n\t): void {\n\t\tconst detail: ResourceMonitorEventDetail = {\n\t\t\turl,\n\t\t\tresourceType: entry.initiatorType,\n\t\t\tduration,\n\t\t\tsize,\n\t\t\tretryCount,\n\t\t\tmaxRetries: this.config.maxRetries,\n\t\t};\n\t\tconst isMediaInitiator =\n\t\t\tentry.initiatorType === \"audio\" ||\n\t\t\tentry.initiatorType === \"video\" ||\n\t\t\tentry.initiatorType === \"source\";\n\n\t\tif (wasRetried && isMediaInitiator) {\n\t\t\tthis.reconcileMediaRetrySuccess(url, detail);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dispatchEvent(\"pie-resource-load-success\", detail);\n\t\tif (wasRetried) {\n\t\t\tthis.finalizeRetrySuccess(url, detail);\n\t\t}\n\t}\n\n\tprivate resolveMediaTarget(\n\t\ttarget: ResourceElement,\n\t): { mediaEl: HTMLAudioElement | HTMLVideoElement; mediaTag: \"audio\" | \"video\" } | null {\n\t\tif (target instanceof HTMLAudioElement) {\n\t\t\treturn { mediaEl: target, mediaTag: \"audio\" };\n\t\t}\n\t\tif (target instanceof HTMLVideoElement) {\n\t\t\treturn { mediaEl: target, mediaTag: \"video\" };\n\t\t}\n\t\tif (target instanceof HTMLSourceElement) {\n\t\t\tconst parent = target.parentElement;\n\t\t\tif (parent instanceof HTMLAudioElement) {\n\t\t\t\treturn { mediaEl: parent, mediaTag: \"audio\" };\n\t\t\t}\n\t\t\tif (parent instanceof HTMLVideoElement) {\n\t\t\t\treturn { mediaEl: parent, mediaTag: \"video\" };\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate resolveMediaTargetsForUrl(url: string): Array<{\n\t\tmediaEl: HTMLAudioElement | HTMLVideoElement;\n\t\tmediaTag: \"audio\" | \"video\";\n\t}> {\n\t\tconst targets = this.retryTargets.get(url);\n\t\tif (!targets || targets.size === 0) return [];\n\t\tconst resolved = new Set<HTMLAudioElement | HTMLVideoElement>();\n\t\tconst out: Array<{\n\t\t\tmediaEl: HTMLAudioElement | HTMLVideoElement;\n\t\t\tmediaTag: \"audio\" | \"video\";\n\t\t}> = [];\n\t\tfor (const target of targets) {\n\t\t\tconst mediaTarget = this.resolveMediaTarget(target);\n\t\t\tif (!mediaTarget) continue;\n\t\t\tconst { mediaEl, mediaTag } = mediaTarget;\n\t\t\tif (resolved.has(mediaEl)) continue;\n\t\t\tconst candidateUrl = mediaEl.currentSrc || mediaEl.src;\n\t\t\tif (candidateUrl && this.getOriginalUrl(candidateUrl) !== url) continue;\n\t\t\tresolved.add(mediaEl);\n\t\t\tout.push({ mediaEl, mediaTag });\n\t\t}\n\t\treturn out;\n\t}\n\n\tprivate normalizeRetrySuccessResourceType(\n\t\turl: string,\n\t\tresourceType: string,\n\t): string {\n\t\tif (resourceType !== \"source\") return resourceType;\n\t\tconst mediaTargets = this.resolveMediaTargetsForUrl(url);\n\t\tif (mediaTargets.length === 0) return resourceType;\n\t\treturn mediaTargets[0].mediaTag;\n\t}\n\n\tprivate isMediaRetryRecovered(url: string): boolean {\n\t\tconst mediaTargets = this.resolveMediaTargetsForUrl(url);\n\t\tif (mediaTargets.length === 0) return false;\n\t\tfor (const { mediaEl } of mediaTargets) {\n\t\t\tconst hasError = !!mediaEl.error;\n\t\t\tconst hasNoSource =\n\t\t\t\tmediaEl.networkState === HTMLMediaElement.NETWORK_NO_SOURCE;\n\t\t\tconst isReady =\n\t\t\t\tmediaEl.readyState >= HTMLMediaElement.HAVE_METADATA;\n\t\t\tif (!hasError && !hasNoSource && isReady) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate finalizeRetrySuccess(url: string, detail: ResourceMonitorEventDetail): void {\n\t\tif (!this.retryAttempts.has(url)) return;\n\t\tconst successDetail: ResourceMonitorEventDetail = {\n\t\t\t...detail,\n\t\t\tresourceType: this.normalizeRetrySuccessResourceType(\n\t\t\t\turl,\n\t\t\t\tdetail.resourceType,\n\t\t\t),\n\t\t};\n\t\tconst shortUrl = this.truncateUrl(url);\n\t\tthis.logger.info(\n\t\t\t`✅ PIE Resource Retry Succeeded!\\n` +\n\t\t\t\t` URL: ${shortUrl}\\n` +\n\t\t\t\t` Retry Attempt: ${successDetail.retryCount}\\n` +\n\t\t\t\t` Load Time: ${(successDetail.duration || 0).toFixed(2)}ms\\n` +\n\t\t\t\t` Result: Resource now available to user`,\n\t\t);\n\t\tthis.dispatchEvent(\"pie-resource-retry-success\", successDetail);\n\t\tthis.dispatchMediaRetryReady(url, successDetail);\n\t\tthis.clearPendingMediaCheck(url);\n\t\tthis.clearRetryTracking(url);\n\t}\n\n\tprivate reconcileMediaRetrySuccess(\n\t\turl: string,\n\t\tdetail: ResourceMonitorEventDetail,\n\t): void {\n\t\tthis.clearPendingMediaCheck(url);\n\t\tif (this.isMediaRetryRecovered(url)) {\n\t\t\tthis.dispatchEvent(\"pie-resource-load-success\", detail);\n\t\t\tthis.finalizeRetrySuccess(url, detail);\n\t\t\treturn;\n\t\t}\n\t\tif (this.isDebugEnabled()) {\n\t\t\tthis.logger.debug(\n\t\t\t\t`⏳ Waiting for media readiness before retry success: ${this.truncateUrl(url)}`,\n\t\t\t);\n\t\t}\n\t\tconst version = this.lifecycleVersion;\n\t\tconst mediaTargets = this.resolveMediaTargetsForUrl(url);\n\t\tconst eventHandlers: Array<{\n\t\t\tmediaEl: HTMLAudioElement | HTMLVideoElement;\n\t\t\thandler: EventListener;\n\t\t}> = [];\n\t\tconst pollTimer = setInterval(() => {\n\t\t\tif (!this.isLifecycleActive(version)) {\n\t\t\t\tthis.clearPendingMediaCheck(url);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.retryAttempts.has(url)) {\n\t\t\t\tthis.clearPendingMediaCheck(url);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.isMediaRetryRecovered(url)) {\n\t\t\t\tthis.dispatchEvent(\"pie-resource-load-success\", detail);\n\t\t\t\tthis.finalizeRetrySuccess(url, detail);\n\t\t\t}\n\t\t}, MEDIA_RETRY_RECONCILIATION_POLL_MS);\n\t\tconst timeoutTimer = setTimeout(() => {\n\t\t\tif (!this.isLifecycleActive(version)) {\n\t\t\t\tthis.clearPendingMediaCheck(url);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.retryAttempts.has(url)) {\n\t\t\t\tthis.clearPendingMediaCheck(url);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.clearPendingMediaCheck(url);\n\t\t\tthis.handleMediaRetryReconciliationTimeout(url, detail);\n\t\t}, MEDIA_RETRY_RECONCILIATION_TIMEOUT_MS);\n\t\tfor (const { mediaEl } of mediaTargets) {\n\t\t\tconst handler: EventListener = () => {\n\t\t\t\tif (!this.isLifecycleActive(version)) return;\n\t\t\t\tif (!this.retryAttempts.has(url)) return;\n\t\t\t\tif (!this.isMediaRetryRecovered(url)) return;\n\t\t\t\tthis.dispatchEvent(\"pie-resource-load-success\", detail);\n\t\t\t\tthis.finalizeRetrySuccess(url, detail);\n\t\t\t};\n\t\t\tmediaEl.addEventListener(\"loadedmetadata\", handler);\n\t\t\tmediaEl.addEventListener(\"canplay\", handler);\n\t\t\teventHandlers.push({ mediaEl, handler });\n\t\t}\n\t\tthis.pendingMediaChecks.set(url, {\n\t\t\tcleanup: () => {\n\t\t\t\tclearInterval(pollTimer);\n\t\t\t\tclearTimeout(timeoutTimer);\n\t\t\t\tfor (const { mediaEl, handler } of eventHandlers) {\n\t\t\t\t\tmediaEl.removeEventListener(\"loadedmetadata\", handler);\n\t\t\t\t\tmediaEl.removeEventListener(\"canplay\", handler);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate handleMediaRetryReconciliationTimeout(\n\t\turl: string,\n\t\tdetail: ResourceMonitorEventDetail,\n\t): void {\n\t\tconst shortUrl = this.truncateUrl(url);\n\t\tthis.logger.warn(\n\t\t\t`⚠️ PIE Resource Retry Ready Timeout\\n` +\n\t\t\t\t` URL: ${shortUrl}\\n` +\n\t\t\t\t` Retry Attempt: ${detail.retryCount}\\n` +\n\t\t\t\t` Status: Media did not become healthy after fetch success`,\n\t\t);\n\t\tthis.dispatchEvent(\"pie-resource-retry-failed\", {\n\t\t\t...detail,\n\t\t\terror: \"Media fetch succeeded but did not become ready before timeout\",\n\t\t});\n\t\tthis.trackInstrumentationError(\n\t\t\tnew Error(\n\t\t\t\t`Resource retry reconciliation timed out before media was healthy: ${url}`,\n\t\t\t),\n\t\t\t{\n\t\t\t\tresourceUrl: url,\n\t\t\t\tresourceType: detail.resourceType,\n\t\t\t\tretryCount: detail.retryCount,\n\t\t\t\terrorType: \"MediaRetryReadyTimeout\",\n\t\t\t},\n\t\t);\n\t\tconst retryTarget = this.getPrimaryRetryTarget(url);\n\t\tif (retryTarget) {\n\t\t\tthis.retryResourceLoad(retryTarget, url);\n\t\t\treturn;\n\t\t}\n\t\tthis.handlePermanentFailure(url, detail.resourceType, detail.retryCount);\n\t}\n\n\tprivate dispatchMediaRetryReady(\n\t\turl: string,\n\t\tdetail: ResourceMonitorEventDetail,\n\t): void {\n\t\tconst mediaTargets = this.resolveMediaTargetsForUrl(url);\n\t\tif (mediaTargets.length === 0) return;\n\t\tfor (const { mediaEl, mediaTag } of mediaTargets) {\n\t\t\tconst event = new CustomEvent<MediaRetryReadyDetail>(\n\t\t\t\t\"pie-media-retry-ready\",\n\t\t\t\t{\n\t\t\t\t\tdetail: {\n\t\t\t\t\t\t...detail,\n\t\t\t\t\t\tmediaTag,\n\t\t\t\t\t},\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t},\n\t\t\t);\n\t\t\tmediaEl.dispatchEvent(event);\n\t\t}\n\t}\n\n\t/**\n\t * Handle failed resource load\n\t */\n\tprivate handleFailedLoad(\n\t\turl: string,\n\t\tentry: PerformanceResourceTiming,\n\t\tduration: number,\n\t\tretryCount: number,\n\t\twasRetried: boolean,\n\t): void {\n\t\tconst shortUrl = this.truncateUrl(url);\n\n\t\tif (wasRetried) {\n\t\t\t// This is a retry that also failed - use warn since we'll retry again\n\t\t\tthis.logger.warn(\n\t\t\t\t`⚠️ PIE Resource Retry Failed\\n` +\n\t\t\t\t\t` URL: ${shortUrl}\\n` +\n\t\t\t\t\t` Retry Attempt: ${retryCount}\\n` +\n\t\t\t\t\t` Remaining Attempts: ${this.config.maxRetries - retryCount}\\n` +\n\t\t\t\t\t` Status: Will ${retryCount >= this.config.maxRetries ? \"give up\" : \"retry again\"}`,\n\t\t\t);\n\n\t\t\t// Dispatch retry failure event\n\t\t\tthis.dispatchEvent(\"pie-resource-retry-failed\", {\n\t\t\t\turl,\n\t\t\t\tresourceType: entry.initiatorType,\n\t\t\t\tduration,\n\t\t\t\tretryCount,\n\t\t\t\tmaxRetries: this.config.maxRetries,\n\t\t\t\terror: \"Resource load failed after retry\",\n\t\t\t});\n\t\t} else {\n\t\t\t// Initial failure - use warn since we'll retry\n\t\t\tthis.logger.warn(\n\t\t\t\t`⚠️ PIE Resource Initial Load Failed\\n` +\n\t\t\t\t\t` URL: ${shortUrl}\\n` +\n\t\t\t\t\t` Status: Will attempt ${this.config.maxRetries} ${this.config.maxRetries === 1 ? \"retry\" : \"retries\"}`,\n\t\t\t);\n\n\t\t\t// Dispatch initial failure event\n\t\t\tthis.dispatchEvent(\"pie-resource-load-failed\", {\n\t\t\t\turl,\n\t\t\t\tresourceType: entry.initiatorType,\n\t\t\t\tduration,\n\t\t\t\tretryCount: 0,\n\t\t\t\tmaxRetries: this.config.maxRetries,\n\t\t\t\terror: \"Initial resource load failed\",\n\t\t\t});\n\t\t}\n\n\t\t// Track error with instrumentation provider\n\t\tthis.trackInstrumentationError(\n\t\t\tnew Error(`Resource load failed: ${entry.name}`),\n\t\t\t{\n\t\t\t\tresourceUrl: entry.name,\n\t\t\t\tresourceType: entry.initiatorType,\n\t\t\t\tduration: Math.round(duration),\n\t\t\t\twasRetried,\n\t\t\t\tretryCount,\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * Check if resource is relevant to our container\n\t * Uses container-scoped tracking via MutationObserver\n\t * Also retroactively checks if resource belongs to container if not yet tracked\n\t */\n\tprivate isRelevantResource(entry: PerformanceResourceTiming): boolean {\n\t\tconst url = entry.name;\n\n\t\t// Only track resources that we know are in our container\n\t\tlet isInContainer = this.containerResources.has(url);\n\n\t\tif (!isInContainer) {\n\t\t\t// Also check if it's a relative URL that might match\n\t\t\t// (PerformanceResourceTiming gives absolute URLs)\n\t\t\tfor (const containerUrl of this.containerResources) {\n\t\t\t\tif (url.endsWith(containerUrl) || containerUrl.endsWith(url)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Retroactively check if this resource belongs to our container\n\t\t\t// This handles the case where resources load before MutationObserver scans\n\t\t\t// PerformanceObserver can capture resources that loaded before it started (buffered: true)\n\t\t\t// but if they loaded before MutationObserver scanned, they won't be in containerResources\n\t\t\tif (this.container) {\n\t\t\t\t// Simple check: if resource is a media/image type and we have a container,\n\t\t\t\t// check if any element in container has this src/href\n\t\t\t\t// This is a fallback for resources that loaded very quickly before scan completed\n\t\t\t\tconst isInContainer = this.isResourceInContainer(\n\t\t\t\t\turl,\n\t\t\t\t\tentry.initiatorType,\n\t\t\t\t);\n\t\t\t\tif (isInContainer) {\n\t\t\t\t\tthis.containerResources.add(url);\n\t\t\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\t\t\tthis.logger.debug(\n\t\t\t\t\t\t\t`📌 Retroactively tracked resource: ${this.truncateUrl(url)}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn isInContainer;\n\t}\n\n\t/**\n\t * Check if a resource URL actually belongs to our container by checking DOM elements\n\t * This is a fallback for resources that loaded before MutationObserver scanned\n\t */\n\tprivate isResourceInContainer(url: string, initiatorType: string): boolean {\n\t\tif (!this.container) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Check if any element in the container has this URL as src/href\n\t\t\tconst urlObj = new URL(url);\n\t\t\tconst urlPath = urlObj.pathname + urlObj.search;\n\n\t\t\t// For images, audio, video - check src attributes\n\t\t\tif (\n\t\t\t\tinitiatorType === \"img\" ||\n\t\t\t\tinitiatorType === \"audio\" ||\n\t\t\t\tinitiatorType === \"video\"\n\t\t\t) {\n\t\t\t\tconst elements = this.container.querySelectorAll(\n\t\t\t\t\t`${initiatorType}[src]`,\n\t\t\t\t);\n\t\t\t\tfor (const el of elements) {\n\t\t\t\t\tconst resourceEl = el as\n\t\t\t\t\t\t| HTMLImageElement\n\t\t\t\t\t\t| HTMLAudioElement\n\t\t\t\t\t\t| HTMLVideoElement;\n\t\t\t\t\tif (\n\t\t\t\t\t\tresourceEl.src &&\n\t\t\t\t\t\t(resourceEl.src === url || resourceEl.src.endsWith(urlPath))\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For link elements (stylesheets) - check href\n\t\t\tif (initiatorType === \"link\") {\n\t\t\t\tconst links = this.container.querySelectorAll(\"link[href]\");\n\t\t\t\tfor (const link of links) {\n\t\t\t\t\tconst linkEl = link as HTMLLinkElement;\n\t\t\t\t\tif (\n\t\t\t\t\t\tlinkEl.href &&\n\t\t\t\t\t\t(linkEl.href === url || linkEl.href.endsWith(urlPath))\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For source elements (inside audio/video) - check src\n\t\t\tif (initiatorType === \"source\") {\n\t\t\t\tconst sources = this.container.querySelectorAll(\"source[src]\");\n\t\t\t\tfor (const source of sources) {\n\t\t\t\t\tconst sourceEl = source as HTMLSourceElement;\n\t\t\t\t\tif (\n\t\t\t\t\t\tsourceEl.src &&\n\t\t\t\t\t\t(sourceEl.src === url || sourceEl.src.endsWith(urlPath))\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// If URL parsing fails or querySelector fails, fall back to false\n\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\tthis.logger.debug(\n\t\t\t\t\t`Error checking if resource is in container: ${error}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Set up error event handler for resource loading failures\n\t */\n\tprivate setupErrorHandler(): void {\n\t\tif (!this.container) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Use capturing phase to catch errors before they bubble\n\t\tthis.errorHandler = (event: Event) => {\n\t\t\tconst target = event.target as ResourceElement;\n\n\t\t\t// Only handle resource elements\n\t\t\tif (!this.isResourceElement(target)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst tagName = target.tagName.toLowerCase();\n\t\t\tconst src = this.getResourceSrc(target);\n\n\t\t\tif (!src) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Get the original URL without retry parameters\n\t\t\tconst originalSrc = this.getOriginalUrl(src);\n\n\t\t\t// Check if we have retries remaining\n\t\t\tconst currentRetries = this.retryAttempts.get(originalSrc) || 0;\n\t\t\tconst remainingRetries = this.config.maxRetries - currentRetries;\n\t\t\tconst willRetry = remainingRetries > 0;\n\t\t\tconst diagnostics = this.buildResourceErrorDiagnostics(target, {\n\t\t\t\teventType: event.type,\n\t\t\t\tresourceUrl: src,\n\t\t\t\toriginalUrl: originalSrc,\n\t\t\t\tcurrentRetries,\n\t\t\t\tremainingRetries,\n\t\t\t\twillRetry,\n\t\t\t});\n\n\t\t\t// Enhanced debug logging for errors\n\t\t\t// Use warn if we'll retry, error if we've exhausted retries\n\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\tconst shortUrl = this.truncateUrl(src);\n\t\t\t\tconst logMethod = willRetry\n\t\t\t\t\t? this.logger.warn.bind(this.logger)\n\t\t\t\t\t: this.logger.error.bind(this.logger);\n\t\t\t\tconst icon = willRetry ? \"⚠️\" : \"❌\";\n\n\t\t\t\tlogMethod(\n\t\t\t\t\t`${icon} PIE Resource Load Error\\n` +\n\t\t\t\t\t\t` Element: <${tagName}>\\n` +\n\t\t\t\t\t\t` URL: ${shortUrl}\\n` +\n\t\t\t\t\t\t` Current Attempts: ${currentRetries}\\n` +\n\t\t\t\t\t\t` Remaining Retries: ${remainingRetries}/${this.config.maxRetries}\\n` +\n\t\t\t\t\t\t` Action: ${willRetry ? \"Will retry with exponential backoff\" : \"Max retries reached, giving up\"}`,\n\t\t\t\t\tdiagnostics,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst logMethod = willRetry\n\t\t\t\t\t? this.logger.warn.bind(this.logger)\n\t\t\t\t\t: this.logger.error.bind(this.logger);\n\t\t\t\tconst icon = willRetry ? \"⚠️\" : \"❌\";\n\t\t\t\tlogMethod(`${icon} Resource error: ${tagName} failed to load ${src}`);\n\t\t\t}\n\n\t\t\tthis.trackInstrumentationEvent(\"pie-resource-load-error\", diagnostics);\n\n\t\t\t// Track error with instrumentation provider\n\t\t\tthis.trackInstrumentationError(\n\t\t\t\tnew Error(`Resource load error: ${originalSrc}`),\n\t\t\t\t{\n\t\t\t\t\tresourceType: tagName,\n\t\t\t\t\t...diagnostics,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\t// Attempt retry with original URL\n\t\t\tthis.retryResourceLoad(target, originalSrc);\n\t\t};\n\n\t\tthis.container.addEventListener(\"error\", this.errorHandler, true);\n\t\tthis.logger.debug(\"Error handler attached to container\");\n\t}\n\n\t/**\n\t * Check if element is a resource element\n\t */\n\tprivate isResourceElement(\n\t\telement: EventTarget | null,\n\t): element is ResourceElement {\n\t\tif (!element || !(element instanceof HTMLElement)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst tag = element.tagName.toLowerCase();\n\t\treturn [\"img\", \"audio\", \"video\", \"link\", \"source\"].includes(tag);\n\t}\n\n\t/**\n\t * Get resource src/href from element\n\t */\n\tprivate getResourceSrc(element: ResourceElement): string | null {\n\t\tif (element instanceof HTMLLinkElement) {\n\t\t\treturn element.href;\n\t\t}\n\n\t\t// For audio, video, img, and source elements (all have src)\n\t\tif (\"src\" in element && element.src) {\n\t\t\treturn element.src;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Handle permanent resource failure after all retries exhausted\n\t */\n\tprivate handlePermanentFailure(\n\t\turl: string,\n\t\tresourceType: string,\n\t\tretryCount: number,\n\t): void {\n\t\tthis.clearPendingMediaCheck(url);\n\t\tthis.clearRetryTracking(url);\n\t\tif (this.isDebugEnabled()) {\n\t\t\tconst shortUrl = this.truncateUrl(url);\n\t\t\tthis.logger.error(\n\t\t\t\t`❌ PIE Resource Permanently Failed\\n` +\n\t\t\t\t\t` URL: ${shortUrl}\\n` +\n\t\t\t\t\t` Total Attempts: ${retryCount + 1} (initial + ${retryCount} retries)\\n` +\n\t\t\t\t\t` Status: Giving up after ${this.config.maxRetries} retries\\n` +\n\t\t\t\t\t` ⚠️ This resource will not be available to the user`,\n\t\t\t);\n\t\t} else {\n\t\t\tthis.logger.error(\n\t\t\t\t`❌ Failed to load resource after ${this.config.maxRetries} retries: ${url}`,\n\t\t\t);\n\t\t}\n\n\t\t// Dispatch permanent failure event\n\t\tthis.dispatchEvent(\"pie-resource-load-error\", {\n\t\t\turl,\n\t\t\tresourceType,\n\t\t\tretryCount,\n\t\t\tmaxRetries: this.config.maxRetries,\n\t\t\terror: `Resource permanently failed after ${this.config.maxRetries} retries`,\n\t\t});\n\n\t\t// Track final failure with instrumentation provider\n\t\tthis.trackInstrumentationError(\n\t\t\tnew Error(\n\t\t\t\t`Resource permanently failed after ${this.config.maxRetries} retries: ${url}`,\n\t\t\t),\n\t\t\t{\n\t\t\t\tresourceUrl: url,\n\t\t\t\tretryCount,\n\t\t\t\tresourceType,\n\t\t\t},\n\t\t);\n\t}\n\n\t/**\n\t * Log retry schedule information\n\t */\n\tprivate logRetrySchedule(\n\t\turl: string,\n\t\tretryCount: number,\n\t\tdelay: number,\n\t\telementTag: string,\n\t): void {\n\t\tif (this.isDebugEnabled()) {\n\t\t\tconst shortUrl = this.truncateUrl(url);\n\t\t\tconst nextDelay = Math.min(\n\t\t\t\tthis.config.initialRetryDelay * Math.pow(2, retryCount + 1),\n\t\t\t\tthis.config.maxRetryDelay,\n\t\t\t);\n\n\t\t\tconst strategy =\n\t\t\t\telementTag === \"img\"\n\t\t\t\t\t? \"Cache-busting URL\"\n\t\t\t\t\t: elementTag === \"audio\" || elementTag === \"video\"\n\t\t\t\t\t\t? \"element.load()\"\n\t\t\t\t\t\t: elementTag === \"link\"\n\t\t\t\t\t\t\t? \"Cache-busting URL\"\n\t\t\t\t\t\t\t: \"URL update\";\n\n\t\t\tthis.logger.info(\n\t\t\t\t`🔄 PIE Resource Retry Scheduled\\n` +\n\t\t\t\t\t` URL: ${shortUrl}\\n` +\n\t\t\t\t\t` Attempt: ${retryCount + 1}/${this.config.maxRetries}\\n` +\n\t\t\t\t\t` ⏰ Wait Time: ${delay}ms (exponential backoff)\\n` +\n\t\t\t\t\t` Next Retry Delay: ${nextDelay}ms (if this fails)\\n` +\n\t\t\t\t\t` Strategy: ${strategy}`,\n\t\t\t);\n\t\t} else {\n\t\t\tthis.logger.info(\n\t\t\t\t`🔄 Retrying resource load (attempt ${retryCount + 1}/${this.config.maxRetries}) after ${delay}ms: ${url}`,\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Retry loading a failed resource with exponential backoff\n\t */\n\tprivate performRetryLoadAttempt(\n\t\telement: ResourceElement,\n\t\toriginalSrc: string,\n\t\tattemptNumber: number,\n\t): void {\n\t\ttry {\n\t\t\tif (\n\t\t\t\telement instanceof HTMLAudioElement ||\n\t\t\t\telement instanceof HTMLVideoElement\n\t\t\t) {\n\t\t\t\tconst retryUrl = this.withRetryParams(originalSrc, attemptNumber);\n\t\t\t\tif (element.src) {\n\t\t\t\t\telement.src = retryUrl;\n\t\t\t\t} else {\n\t\t\t\t\tconst source = Array.from(element.querySelectorAll(\"source\")).find(\n\t\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\t\ttypeof candidate.src === \"string\" &&\n\t\t\t\t\t\t\tthis.getOriginalUrl(candidate.src) === originalSrc,\n\t\t\t\t\t);\n\t\t\t\t\tif (source) {\n\t\t\t\t\t\tsource.src = retryUrl;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telement.load();\n\t\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\t\tthis.logger.debug(\n\t\t\t\t\t\t`✓ Triggered load() on <${element.tagName.toLowerCase()}> with cache-busting params`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if (element instanceof HTMLSourceElement) {\n\t\t\t\tconst retryUrl = this.withRetryParams(originalSrc, attemptNumber);\n\t\t\t\telement.src = retryUrl;\n\t\t\t\tconst parent = element.parentElement;\n\t\t\t\tif (\n\t\t\t\t\tparent instanceof HTMLAudioElement ||\n\t\t\t\t\tparent instanceof HTMLVideoElement\n\t\t\t\t) {\n\t\t\t\t\tparent.load();\n\t\t\t\t}\n\t\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\t\tthis.logger.debug(\n\t\t\t\t\t\t`✓ Updated <source> src with cache-busting params and reloaded parent media: retry=${attemptNumber}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if (element instanceof HTMLImageElement) {\n\t\t\t\telement.src = this.withRetryParams(originalSrc, attemptNumber);\n\t\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\t\tthis.logger.debug(\n\t\t\t\t\t\t`✓ Updated <img> src with cache-busting params: retry=${attemptNumber}, t=${Date.now()}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if (element instanceof HTMLLinkElement) {\n\t\t\t\telement.href = this.withRetryParams(originalSrc, attemptNumber);\n\t\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\t\tthis.logger.debug(\n\t\t\t\t\t\t`✓ Updated <link> href with cache-busting params: retry=${attemptNumber}, t=${Date.now()}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst diagnostics = this.buildResourceErrorDiagnostics(element, {\n\t\t\t\teventType: \"retry\",\n\t\t\t\tresourceUrl: this.getResourceSrc(element) || originalSrc,\n\t\t\t\toriginalUrl: originalSrc,\n\t\t\t\tcurrentRetries: attemptNumber,\n\t\t\t\tremainingRetries: Math.max(0, this.config.maxRetries - attemptNumber),\n\t\t\t\twillRetry: attemptNumber < this.config.maxRetries,\n\t\t\t});\n\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\tthis.logger.error(\n\t\t\t\t\t`❌ Error during retry attempt for ${originalSrc}:`,\n\t\t\t\t\terror,\n\t\t\t\t\tdiagnostics,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.logger.error(`Error during retry for ${originalSrc}:`, error);\n\t\t\t}\n\t\t\tthis.trackInstrumentationError(\n\t\t\t\tnew Error(`Retry attempt error for resource: ${originalSrc}`),\n\t\t\t\t{\n\t\t\t\t\t...diagnostics,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate retryResourceLoad(element: ResourceElement, originalSrc: string): void {\n\t\tthis.getRetryTargets(originalSrc).add(element);\n\t\tif (!this.started) return;\n\t\tif (this.retryInFlight.has(originalSrc)) {\n\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\tthis.logger.debug(\n\t\t\t\t\t`Retry already scheduled for ${this.truncateUrl(originalSrc)}; skipping duplicate error-triggered schedule`,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst currentRetries = this.retryAttempts.get(originalSrc) || 0;\n\t\tif (currentRetries >= this.config.maxRetries) {\n\t\t\tthis.handlePermanentFailure(\n\t\t\t\toriginalSrc,\n\t\t\t\telement.tagName.toLowerCase(),\n\t\t\t\tcurrentRetries,\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tconst delay = Math.min(\n\t\t\tthis.config.initialRetryDelay * Math.pow(2, currentRetries),\n\t\t\tthis.config.maxRetryDelay,\n\t\t);\n\t\tconst attemptNumber = currentRetries + 1;\n\t\tthis.retryInFlight.add(originalSrc);\n\t\tthis.retryAttempts.set(originalSrc, attemptNumber);\n\t\tthis.logRetrySchedule(\n\t\t\toriginalSrc,\n\t\t\tcurrentRetries,\n\t\t\tdelay,\n\t\t\telement.tagName.toLowerCase(),\n\t\t);\n\t\tthis.trackInstrumentationEvent(\"pie-resource-retry\", {\n\t\t\turl: originalSrc,\n\t\t\tattempt: attemptNumber,\n\t\t\tdelay,\n\t\t});\n\t\tconst version = this.lifecycleVersion;\n\t\tconst timer = setTimeout(() => {\n\t\t\tthis.pendingRetryTimers.delete(originalSrc);\n\t\t\tthis.retryInFlight.delete(originalSrc);\n\t\t\tif (!this.isLifecycleActive(version)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst retryTarget = this.getPrimaryRetryTarget(originalSrc);\n\t\t\tif (!retryTarget) return;\n\t\t\tif (this.isDebugEnabled()) {\n\t\t\t\tthis.logger.debug(\n\t\t\t\t\t`⏱️ Retry wait completed (${delay}ms), attempting reload now...`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.performRetryLoadAttempt(retryTarget, originalSrc, attemptNumber);\n\t\t}, delay);\n\t\tthis.pendingRetryTimers.set(originalSrc, timer);\n\t}\n\n\t/**\n\t * Dispatch a custom event from the container\n\t */\n\tprivate dispatchEvent(\n\t\teventName: string,\n\t\tdetail: ResourceMonitorEventDetail,\n\t): void {\n\t\tif (!this.container) {\n\t\t\t// Silent return - if container is null, events can't be dispatched\n\t\t\t// This should only happen if ResourceMonitor wasn't properly initialized\n\t\t\treturn;\n\t\t}\n\n\t\tconst event = new CustomEvent(eventName, {\n\t\t\tdetail,\n\t\t\tbubbles: true,\n\t\t\tcomposed: true, // Allow crossing shadow DOM boundaries\n\t\t});\n\n\t\tthis.container.dispatchEvent(event);\n\t}\n\n\t/**\n\t * Get current retry statistics\n\t */\n\tpublic getStats(): {\n\t\tactiveRetries: number;\n\t\tfailedResources: Array<{ url: string; attempts: number }>;\n\t} {\n\t\tconst failedResources: Array<{ url: string; attempts: number }> = [];\n\n\t\tthis.retryAttempts.forEach((attempts, url) => {\n\t\t\tfailedResources.push({ url, attempts });\n\t\t});\n\n\t\treturn {\n\t\t\tactiveRetries: this.retryAttempts.size,\n\t\t\tfailedResources: failedResources.sort((a, b) => b.attempts - a.attempts),\n\t\t};\n\t}\n}\n\n/**\n * Create and start a resource monitor for a container\n */\nexport function createResourceMonitor(\n\tcontainer: HTMLElement,\n\tconfig: ResourceMonitorConfig = {},\n): ResourceMonitor {\n\tconst monitor = new ResourceMonitor(config);\n\tmonitor.start(container);\n\treturn monitor;\n}\n\n// =============================================================================\n// Global resource request tracking (consolidated from the old font-request-tracker)\n// =============================================================================\n\n// Track failed resource requests (by URL)\nconst failedRequests = new Map<string, ComponentContext[]>();\n\nfunction isResourceFile(url: string): boolean {\n\tconst resourceExtensions = [\n\t\t// Fonts\n\t\t\".woff\",\n\t\t\".woff2\",\n\t\t\".ttf\",\n\t\t\".otf\",\n\t\t\".eot\",\n\t\t// Images\n\t\t\".gif\",\n\t\t\".jpg\",\n\t\t\".jpeg\",\n\t\t\".png\",\n\t\t\".svg\",\n\t\t\".webp\",\n\t\t\".ico\",\n\t\t// Audio/Video\n\t\t\".mp3\",\n\t\t\".mp4\",\n\t\t\".wav\",\n\t\t\".ogg\",\n\t\t\".webm\",\n\t\t// Other assets\n\t\t\".pdf\",\n\t\t\".css\",\n\t\t\".js\",\n\t];\n\n\treturn resourceExtensions.some((ext) => url.toLowerCase().includes(ext));\n}\n\nfunction getResourceType(url: string): string {\n\tif (url.match(/\\.(woff|woff2|ttf|otf|eot)/i)) return \"Font\";\n\tif (url.match(/\\.(gif|jpg|jpeg|png|svg|webp|ico)/i)) return \"Image\";\n\tif (url.match(/\\.(mp3|mp4|wav|ogg|webm)/i)) return \"Media\";\n\tif (url.match(/\\.(css)/i)) return \"Stylesheet\";\n\tif (url.match(/\\.(js)/i)) return \"Script\";\n\treturn \"Resource\";\n}\n\nfunction logFailedRequest(\n\turl: string,\n\tstatus: number,\n\tcontext: ComponentContext | null,\n) {\n\t// Only log 404s and other failures (status 0 for network errors)\n\tif (status !== 404 && status !== 0) {\n\t\treturn;\n\t}\n\n\tconst key = url;\n\tif (!failedRequests.has(key)) {\n\t\tfailedRequests.set(key, []);\n\t}\n\n\tconst contexts = failedRequests.get(key)!;\n\tcontexts.push({\n\t\t...(context || { componentName: \"Unknown\", timestamp: Date.now() }),\n\t\ttimestamp: Date.now(),\n\t});\n\n\tconst resourceType = getResourceType(url);\n\tconst filename = url.split(\"/\").pop() || url;\n\tconst itemId = context?.itemId || \"Unknown\";\n\tconst componentName = context?.componentName || \"Unknown component\";\n\tconst elementType = context?.elementType || \"\";\n\n\tconsole.warn(\n\t\t`Failed ${resourceType} request`,\n\t\t`\\n Resource: ${filename}`,\n\t\t`\\n URL: ${url}`,\n\t\t`\\n Item ID: ${itemId}`,\n\t\t`\\n Mini-Player: ${componentName}`,\n\t\telementType ? `\\n Element Type: ${elementType}` : \"\",\n\t\t`\\n Status: ${status}`,\n\t\tcontext\n\t\t\t? \"\"\n\t\t\t: \"\\n Note: Component not tracked - may be from item markup or PIE element\",\n\t);\n}\n\n/**\n * Initialize global resource request tracking (404s for fonts/images/etc.)\n * Call this once when the app loads (client-side only).\n */\nexport function initializeResourceRequestTracking(): void {\n\tif (typeof window === \"undefined\") return;\n\n\t// Track fetch requests\n\tconst originalFetch = window.fetch;\n\twindow.fetch = async function (...args: Parameters<typeof fetch>) {\n\t\t// Extract URL from first argument (can be string, URL, or Request)\n\t\tlet url = \"\";\n\t\tif (typeof args[0] === \"string\") {\n\t\t\turl = args[0];\n\t\t} else if (args[0] instanceof URL) {\n\t\t\turl = args[0].toString();\n\t\t} else if (args[0] instanceof Request) {\n\t\t\turl = args[0].url;\n\t\t}\n\n\t\tif (isResourceFile(url) || url.startsWith(\"/\")) {\n\t\t\tconst context = getCurrentComponentContext();\n\t\t\ttry {\n\t\t\t\tconst response = await (originalFetch as any)(...args);\n\t\t\t\tif (response.status === 404) {\n\t\t\t\t\tlogFailedRequest(url, response.status, context);\n\t\t\t\t}\n\t\t\t\treturn response;\n\t\t\t} catch (error) {\n\t\t\t\tlogFailedRequest(url, 0, context);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\treturn (originalFetch as any)(...args);\n\t} as any;\n\n\t// Track XMLHttpRequest\n\tconst originalXHROpen = XMLHttpRequest.prototype.open;\n\tXMLHttpRequest.prototype.open = function (\n\t\tmethod: string,\n\t\turl: string | URL,\n\t\tasync?: boolean,\n\t\tusername?: string | null,\n\t\tpassword?: string | null,\n\t) {\n\t\tconst urlString = typeof url === \"string\" ? url : url.toString();\n\n\t\tif (isResourceFile(urlString) || urlString.startsWith(\"/\")) {\n\t\t\tconst context = getCurrentComponentContext();\n\t\t\tthis.addEventListener(\"load\", function () {\n\t\t\t\tif (this.status === 404) {\n\t\t\t\t\tlogFailedRequest(urlString, this.status, context);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.addEventListener(\"error\", function () {\n\t\t\t\tlogFailedRequest(urlString, 0, context);\n\t\t\t});\n\t\t}\n\n\t\treturn originalXHROpen.call(\n\t\t\tthis,\n\t\t\tmethod,\n\t\t\turl,\n\t\t\tasync ?? true,\n\t\t\tusername ?? null,\n\t\t\tpassword ?? null,\n\t\t);\n\t};\n\n\t// Intercept img tag error events (most reliable way to catch failed image loads)\n\tconst errorHandler = (event: Event) => {\n\t\tconst target = event.target;\n\t\tif (target instanceof HTMLImageElement && target.src) {\n\t\t\tconst url = target.src;\n\t\t\tif (\n\t\t\t\tisResourceFile(url) ||\n\t\t\t\turl.startsWith(\"/\") ||\n\t\t\t\turl.startsWith(window.location.origin + \"/\")\n\t\t\t) {\n\t\t\t\tconst context = getCurrentComponentContext();\n\t\t\t\tconst relativeUrl = url.startsWith(window.location.origin)\n\t\t\t\t\t? url.replace(window.location.origin, \"\")\n\t\t\t\t\t: url;\n\t\t\t\tlogFailedRequest(relativeUrl, 404, context);\n\t\t\t}\n\t\t}\n\t};\n\n\tdocument.addEventListener(\"error\", errorHandler, true);\n\n\t// Track resource requests via PerformanceObserver (fonts, CSS resources, etc.)\n\tconst observer = new PerformanceObserver((list) => {\n\t\tfor (const entry of list.getEntries()) {\n\t\t\tif (entry.entryType !== \"resource\") continue;\n\t\t\tconst resourceEntry = entry;\n\t\t\tconst url = resourceEntry.name;\n\n\t\t\tif (\n\t\t\t\tisResourceFile(url) ||\n\t\t\t\turl.startsWith(\"/\") ||\n\t\t\t\turl.startsWith(window.location.origin + \"/\")\n\t\t\t) {\n\t\t\t\tconst perf = resourceEntry;\n\t\t\t\tconst failed = (perf as any).responseEnd === 0 && perf.duration > 0;\n\t\t\t\tconst mightBe404 =\n\t\t\t\t\t(perf as any).transferSize === 0 &&\n\t\t\t\t\t(perf as any).responseEnd > 0 &&\n\t\t\t\t\t(perf as any).responseStart === 0;\n\t\t\t\tif (failed || mightBe404) {\n\t\t\t\t\tconst context = getCurrentComponentContext();\n\t\t\t\t\tconst relativeUrl = url.startsWith(window.location.origin)\n\t\t\t\t\t\t? url.replace(window.location.origin, \"\")\n\t\t\t\t\t\t: url;\n\t\t\t\t\tlogFailedRequest(relativeUrl, 404, context);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\ttry {\n\t\tobserver.observe({ type: \"resource\", buffered: true });\n\t} catch (e) {\n\t\tconsole.warn(\n\t\t\t\"Failed to set up PerformanceObserver for resource tracking:\",\n\t\t\te,\n\t\t);\n\t}\n}\n\nexport function getTrackedResourceRequests(): Map<string, ComponentContext[]> {\n\treturn new Map(failedRequests);\n}\n\nexport function clearTrackedResourceRequests(): void {\n\tfailedRequests.clear();\n}\n"]}
@@ -32,4 +32,3 @@ export declare function scorePieItem(config: ConfigEntity, sessionData: any[], o
32
32
  export declare function scorePieItem(config: ConfigEntity, sessionData: any[], options?: ScorePieItemOptions): Promise<{
33
33
  results: OutcomeResponse[];
34
34
  }>;
35
- //# sourceMappingURL=scoring.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/pie/scoring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/pie/scoring.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * PIE Scoring Module\n *\n * Scoring and outcome calculation for PIE elements.\n */\n\nimport type {\n\tConfigEntity,\n\tEnv,\n\tOutcomeResponse,\n\tPieController,\n\tPieModel,\n} from \"../types/index.js\";\nimport { createPieLogger, isGlobalDebugEnabled } from \"./logger.js\";\nimport { pieRegistry } from \"./registry.js\";\nimport type { PieElement } from \"./types.js\";\nimport { BundleType } from \"./types.js\";\nimport { findOrAddSession } from \"./utils.js\";\n\n// Create module-level logger (respects global debug flag - pass function for dynamic checking)\nconst logger = createPieLogger(\"pie-scoring\", () => isGlobalDebugEnabled());\n\n/**\n * Find the controller for a PIE element\n */\nexport const findPieController = (\n\telementName: string,\n): PieController | undefined => {\n\tconst registry = pieRegistry();\n\n\tlogger.debug(\n\t\t`[findPieController] Looking for controller for: ${elementName}`,\n\t);\n\tlogger.debug(\n\t\t`[findPieController] Registry has entries for:`,\n\t\tObject.keys(registry),\n\t);\n\n\tconst entry = registry[elementName];\n\tif (!entry) {\n\t\tlogger.error(\n\t\t\t`[findPieController] ❌ No registry entry found for element: ${elementName}`,\n\t\t);\n\t\tlogger.error(\n\t\t\t`[findPieController] Available element names:`,\n\t\t\tObject.keys(registry),\n\t\t);\n\t\tlogger.error(`[findPieController] Full registry:`, registry);\n\t\treturn undefined;\n\t}\n\n\tlogger.debug(`[findPieController] Found registry entry for ${elementName}:`, {\n\t\tpackage: entry.package,\n\t\ttagName: entry.tagName,\n\t\thasController: !!entry.controller,\n\t\tcontrollerKeys: entry.controller ? Object.keys(entry.controller) : [],\n\t\tbundleType: entry.bundleType,\n\t});\n\n\tconst controller = entry.controller;\n\tif (!controller) {\n\t\t// Check if missing controller is expected based on bundle type\n\t\tif (entry.bundleType === BundleType.clientPlayer) {\n\t\t\t// client-player.js MUST have controllers\n\t\t\tlogger.error(\n\t\t\t\t`[findPieController] ❌ CRITICAL: Registry entry exists for ${elementName} but controller is missing!`,\n\t\t\t);\n\t\t\tlogger.error(\n\t\t\t\t`[findPieController] Bundle type: ${entry.bundleType} (controllers required)`,\n\t\t\t);\n\t\t\tlogger.error(`[findPieController] Entry:`, entry);\n\t\t\tthrow new Error(\n\t\t\t\t`No controller found for ${elementName}. client-player.js bundles MUST include controllers. Check bundle loading and registration.`,\n\t\t\t);\n\t\t} else {\n\t\t\t// player.js doesn't have controllers - this is expected\n\t\t\tlogger.debug(\n\t\t\t\t`[findPieController] ℹ️ No controller for ${elementName} - using server-processed models (player.js bundle)`,\n\t\t\t);\n\t\t}\n\t} else {\n\t\tlogger.debug(\n\t\t\t`[findPieController] ✅ Controller found for ${elementName} with functions:`,\n\t\t\tObject.keys(controller),\n\t\t);\n\t}\n\n\treturn controller;\n};\n\nexport type ScorePieItemOptions = {\n\t/** Scope element lookup to a specific player/root. Defaults to document for existing callers. */\n\tcontainer?: Pick<ParentNode, \"querySelector\">;\n\tenv?: Partial<Env>;\n\tmodels?: PieModel[];\n\t/**\n\t * Existing callers keep the historical scorePieItem controller call shape.\n\t * provideScore() opts into the legacy <pie-player> shape explicitly.\n\t */\n\toutcomeArguments?: \"session-env\" | \"model-session-env\";\n\t/**\n\t * Preserve one result slot per model, including undefined for missing element/controller.\n\t * Existing scorePieItem callers keep the filtered result shape by default.\n\t */\n\tincludeMissingResults?: boolean;\n};\n\nconst escapeAttributeSelectorValue = (value: string): string =>\n\tvalue\n\t\t.replace(/\\\\/g, \"\\\\\\\\\")\n\t\t.replace(/\"/g, '\\\\\"')\n\t\t.replace(/\\n/g, \"\\\\a \")\n\t\t.replace(/\\r/g, \"\\\\d \");\n\nconst findRenderedPieElement = (\n\troot: Pick<ParentNode, \"querySelector\">,\n\tmodelId: string,\n): PieElement | null => {\n\tconst escapedId = escapeAttributeSelectorValue(modelId);\n\treturn (root.querySelector(`[id=\"${escapedId}\"]`) ||\n\t\troot.querySelector(`[pie-id=\"${escapedId}\"]`)) as PieElement | null;\n};\n\nconst invokeOutcome = async (\n\tcontroller: PieController,\n\tmodel: PieModel,\n\tsession: any,\n\tenv: Partial<Env>,\n\targumentShape: \"session-env\" | \"model-session-env\",\n): Promise<OutcomeResponse> => {\n\tif (argumentShape === \"model-session-env\") {\n\t\tconst outcome = controller.outcome as unknown as (\n\t\t\tmodel: PieModel,\n\t\t\tsession: any,\n\t\t\tenv: Partial<Env>,\n\t\t) => Promise<OutcomeResponse>;\n\t\treturn outcome.call(controller, model, session, env);\n\t}\n\tconst outcome = controller.outcome as unknown as (\n\t\tsession: any,\n\t\tenv: Partial<Env>,\n\t) => Promise<OutcomeResponse>;\n\treturn outcome.call(controller, session, env);\n};\n\nexport function scorePieItem(\n\tconfig: ConfigEntity,\n\tsessionData: any[],\n\toptions: ScorePieItemOptions & { includeMissingResults: true },\n): Promise<{ results: Array<OutcomeResponse | undefined> }>;\nexport function scorePieItem(\n\tconfig: ConfigEntity,\n\tsessionData: any[],\n\toptions?: ScorePieItemOptions,\n): Promise<{ results: OutcomeResponse[] }>;\n/**\n * Score a PIE item by calling outcome on all PIE elements\n */\nexport async function scorePieItem(\n\tconfig: ConfigEntity,\n\tsessionData: any[],\n\toptions: ScorePieItemOptions = {},\n): Promise<{ results: Array<OutcomeResponse | undefined> }> {\n\tconst root = options.container ?? document;\n\tconst models = options.models ?? config.models ?? [];\n\tconst outcomeArguments = options.outcomeArguments ?? \"session-env\";\n\tconst scoringEnv: Partial<Env> = {\n\t\t...options.env,\n\t\tmode: \"evaluate\",\n\t\tpartialScoring: options.env?.partialScoring,\n\t};\n\tconst r = await Promise.all(\n\t\tmodels.map(async (model) => {\n\t\t\tconst pieEl = findRenderedPieElement(root, model.id);\n\t\t\tlogger.debug(\"found pieEl %O for model id %s\", pieEl, model.id);\n\t\t\tconst session = findOrAddSession(sessionData, model.id, model.element);\n\t\t\tif (pieEl) {\n\t\t\t\tconst controller = findPieController(pieEl.localName);\n\t\t\t\tif (controller?.outcome) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...session,\n\t\t\t\t\t\t...(await invokeOutcome(\n\t\t\t\t\t\t\tcontroller,\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\tscoringEnv,\n\t\t\t\t\t\t\toutcomeArguments,\n\t\t\t\t\t\t)),\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tlogger.debug(\"ignore %s (no controller)\", pieEl.localName);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlogger.debug(\"ignore %s (no element found for %s)\", model.id);\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}),\n\t);\n\n\tlogger.debug(\"scorePieItem result\", r);\n\treturn {\n\t\tresults: options.includeMissingResults\n\t\t\t? r\n\t\t\t: (r.filter(Boolean) as OutcomeResponse[]),\n\t};\n}\n"]}
@@ -48,4 +48,3 @@ export type StageTracker = {
48
48
  getCurrent: () => Stage | null;
49
49
  };
50
50
  export declare function createStageTracker(opts: CreateStageTrackerOptions): StageTracker;
51
- //# sourceMappingURL=stage-tracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stage-tracker.js","sourceRoot":"","sources":["../../src/pie/stage-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stage-tracker.js","sourceRoot":"","sources":["../../src/pie/stage-tracker.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tSTAGES,\n\tapplicableStages,\n\tstageOrdinal,\n\ttype Stage,\n\ttype StageChangeDetail,\n\ttype StageSourceCe,\n\ttype StageStatus,\n} from \"./stages.js\";\n\n/**\n * Stage tracker primitive (M6).\n *\n * One tracker per CE instance per cohort. `enter(stage, status?)` is the\n * only mutation; `reset()` rolls the cohort over (e.g. when\n * `(sectionId, attemptId)` changes).\n *\n * The tracker enforces the locked invariants from\n * `m6_ready_vocab_canonical_followup.plan.md` §3.1–§3.6:\n * - Monotonic ordering across `STAGES`. Backward transitions inside one\n * cohort are rejected (dev) / warned-once (prod) so subscribers never\n * see a stage regress without an intervening `reset()`.\n * - Per-CE applicability. The post-retro canonical list applies to\n * every CE shape; the `applicableStages` indirection is kept so a\n * future shape-specific stage can opt out without rewriting callers.\n * Non-applicable stages auto-emit `status: \"skipped\"` when an\n * applicable later stage is entered, so iteration order stays stable\n * across CE shapes.\n * - One source for every emit. The injected `emit(detail)` function\n * drives DOM events, engine subscribers, and coordinator subscribers\n * from the same call site so no surface drifts.\n *\n * Failure semantics intentionally piggyback on the M3 framework-error\n * contract: `enter(stage, \"failed\")` records the position; the\n * framework error records the cause.\n */\n\nexport type CreateStageTrackerOptions = {\n\tsourceCe: string;\n\tsourceCeShape: StageSourceCe;\n\truntimeId: string;\n\tsectionId?: string;\n\tattemptId?: string;\n\temit: (detail: StageChangeDetail) => void;\n\tnow?: () => string;\n\tonUnexpectedTransition?: (info: {\n\t\tfrom: Stage | null;\n\t\tto: Stage;\n\t\treason: \"backward\" | \"duplicate\";\n\t}) => void;\n};\n\nexport type StageTracker = {\n\tenter: (stage: Stage, status?: StageStatus) => void;\n\treset: (next?: { sectionId?: string; attemptId?: string }) => void;\n\tgetCurrent: () => Stage | null;\n};\n\nlet unexpectedTransitionWarned = false;\n\nfunction defaultUnexpectedTransitionLogger(info: {\n\tfrom: Stage | null;\n\tto: Stage;\n\treason: \"backward\" | \"duplicate\";\n}): void {\n\tif (unexpectedTransitionWarned) return;\n\tunexpectedTransitionWarned = true;\n\tif (typeof console !== \"undefined\" && console.warn) {\n\t\tconsole.warn(\n\t\t\t`[pie-stage-tracker] Unexpected ${info.reason} stage transition ` +\n\t\t\t\t`from \\`${info.from ?? \"<none>\"}\\` to \\`${info.to}\\`. ` +\n\t\t\t\t`Stage transitions are expected to be monotonic within a cohort; ` +\n\t\t\t\t`call \\`reset()\\` when \\`(sectionId, attemptId)\\` changes.`,\n\t\t);\n\t}\n}\n\nexport function createStageTracker(opts: CreateStageTrackerOptions): StageTracker {\n\tconst applicable = applicableStages(opts.sourceCeShape);\n\tconst applicableSet = new Set(applicable);\n\tconst now = opts.now ?? (() => new Date().toISOString());\n\tconst onUnexpected =\n\t\topts.onUnexpectedTransition ?? defaultUnexpectedTransitionLogger;\n\n\tlet current: Stage | null = null;\n\tlet sectionId = opts.sectionId;\n\tlet attemptId = opts.attemptId;\n\tconst emitted = new Set<Stage>();\n\n\tfunction emitDetail(stage: Stage, status: StageStatus): void {\n\t\topts.emit({\n\t\t\tstage,\n\t\t\tstatus,\n\t\t\truntimeId: opts.runtimeId,\n\t\t\tsectionId,\n\t\t\tattemptId,\n\t\t\ttimestamp: now(),\n\t\t\tsourceCe: opts.sourceCe,\n\t\t});\n\t}\n\n\tfunction fillSkippedBefore(stage: Stage): void {\n\t\tconst targetIdx = stageOrdinal(stage);\n\t\tconst startIdx = current === null ? 0 : stageOrdinal(current) + 1;\n\t\tfor (let idx = startIdx; idx < targetIdx; idx += 1) {\n\t\t\tconst skipCandidate = STAGES[idx];\n\t\t\tif (applicableSet.has(skipCandidate)) continue;\n\t\t\tif (emitted.has(skipCandidate)) continue;\n\t\t\temitted.add(skipCandidate);\n\t\t\temitDetail(skipCandidate, \"skipped\");\n\t\t}\n\t}\n\n\tfunction enter(stage: Stage, status: StageStatus = \"entered\"): void {\n\t\tconst nextOrdinal = stageOrdinal(stage);\n\t\tconst currentOrdinal = current === null ? -1 : stageOrdinal(current);\n\n\t\tif (status === \"entered\") {\n\t\t\tif (emitted.has(stage)) {\n\t\t\t\tonUnexpected({ from: current, to: stage, reason: \"duplicate\" });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (nextOrdinal < currentOrdinal) {\n\t\t\t\tonUnexpected({ from: current, to: stage, reason: \"backward\" });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!applicableSet.has(stage)) {\n\t\t\t\t// A non-applicable stage entered with `entered` is a programming\n\t\t\t\t// error: the tracker auto-skips it when a later stage enters.\n\t\t\t\t// Treat it as a `skipped` emission and continue.\n\t\t\t\tif (emitted.has(stage)) return;\n\t\t\t\temitted.add(stage);\n\t\t\t\temitDetail(stage, \"skipped\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfillSkippedBefore(stage);\n\t\t\temitted.add(stage);\n\t\t\tcurrent = stage;\n\t\t\temitDetail(stage, \"entered\");\n\t\t\treturn;\n\t\t}\n\n\t\t// `status === \"failed\"` records position; do not gate on monotonic\n\t\t// ordering — failure can happen during any transition. Mark the stage\n\t\t// as emitted so a subsequent `entered` for the same stage warns as a\n\t\t// duplicate; downstream recovery should call `reset()` first.\n\t\tif (status === \"failed\") {\n\t\t\tfillSkippedBefore(stage);\n\t\t\temitted.add(stage);\n\t\t\tcurrent = stage;\n\t\t\temitDetail(stage, \"failed\");\n\t\t\treturn;\n\t\t}\n\n\t\t// `status === \"skipped\"` is reserved for the auto-fill path; explicit\n\t\t// callers shouldn't pass it. Accept it idempotently for robustness.\n\t\tif (emitted.has(stage)) return;\n\t\temitted.add(stage);\n\t\temitDetail(stage, \"skipped\");\n\t}\n\n\tfunction reset(next?: { sectionId?: string; attemptId?: string }): void {\n\t\tcurrent = null;\n\t\temitted.clear();\n\t\tif (next) {\n\t\t\tsectionId = next.sectionId;\n\t\t\tattemptId = next.attemptId;\n\t\t}\n\t}\n\n\tfunction getCurrent(): Stage | null {\n\t\treturn current;\n\t}\n\n\treturn { enter, reset, getCurrent };\n}\n"]}
@@ -72,4 +72,3 @@ export type LoadingCompleteDetail = {
72
72
  timestamp: string;
73
73
  sourceCe: string;
74
74
  };
75
- //# sourceMappingURL=stages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stages.js","sourceRoot":"","sources":["../../src/pie/stages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,UAAU;IACV,cAAc;IACd,aAAa;IACb,UAAU;CACD,CAAC,CAAC;AAcZ;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACxD,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"stages.js","sourceRoot":"","sources":["../../src/pie/stages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,UAAU;IACV,cAAc;IACd,aAAa;IACb,UAAU;CACD,CAAC,CAAC;AAcZ;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAwB;IACxD,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC","sourcesContent":["/**\n * Canonical stage vocabulary (M6 of the Coherent Options Surface track).\n *\n * One monotonic stage list is the unified replacement for the previous\n * drift of `toolkit-ready`, `section-ready`, `section-controller-ready`,\n * `interaction-ready`, `readiness-change`, and `ready` — all of which\n * have been removed. Hosts ask the same question — \"is this CE at\n * stage ≥ X?\" — across every `<pie-section-player-*>` and\n * `<pie-assessment-toolkit>` element.\n *\n * The four-stage canonical list (`composed`, `engine-ready`, `interactive`,\n * `disposed`) was finalized after the M5/M6 cumulative review confirmed\n * zero internal or external consumers for the original `attached`,\n * `runtime-bound`, and `ui-rendered` stages. The retro keeps the same\n * shape for both the toolkit CE and the layout CEs — every CE iterates\n * through the same list so subscribers don't need to special-case shape.\n *\n * Locked decisions (see `m6_ready_vocab_canonical_followup.plan.md`):\n * - **A1** Stage machine model with one canonical event family.\n * - **B1** \"All items loaded\" is reclassified as `pie-loading-complete`,\n * not a stage. (The previous `ready` DOM event alias was removed in\n * the broad architecture review compat sweep.)\n * - **C1** `readiness.mode = \"strict\"` only delays the `interactive`\n * transition; every earlier stage fires identically across modes.\n * - **D1** One DOM event family `pie-stage-change` with the stage in the\n * payload, mirroring the M3 `framework-error` idiom.\n *\n * Failure semantics deliberately stay in the M3 framework-error contract —\n * `status: \"failed\"` records the position; the framework error records the\n * cause.\n */\n\nexport const STAGES = Object.freeze([\n\t\"composed\",\n\t\"engine-ready\",\n\t\"interactive\",\n\t\"disposed\",\n] as const);\n\nexport type Stage = (typeof STAGES)[number];\n\nexport type StageStatus = \"entered\" | \"skipped\" | \"failed\";\n\n/**\n * Subset of the source CE shape used by stage subscribers. Both shapes\n * apply every canonical stage post-retro — the distinction stays in the\n * type so future shape-specific stages (e.g. layout-only `paginated`) can\n * be added without churn at the call sites.\n */\nexport type StageSourceCe = \"toolkit\" | \"layout\";\n\n/**\n * Stages that apply to a given CE shape. Post-retro the toolkit and the\n * layout CEs share the same canonical list; `applicableStages` is kept as\n * an indirection so the tracker, telemetry, and tests don't have to be\n * rewritten when a future stage diverges between shapes.\n */\nexport function applicableStages(_sourceCe: StageSourceCe): readonly Stage[] {\n\treturn STAGES;\n}\n\n/**\n * Strict ordering index used by the tracker to detect monotonic\n * violations. `disposed` is last; `composed` is first.\n */\nexport function stageOrdinal(stage: Stage): number {\n\tconst idx = STAGES.indexOf(stage);\n\tif (idx === -1) {\n\t\tthrow new Error(`Unknown stage \\`${stage}\\``);\n\t}\n\treturn idx;\n}\n\nexport type StageChangeDetail = {\n\tstage: Stage;\n\tstatus: StageStatus;\n\t/** Matches the existing `runtimeId` carried by toolkit telemetry. */\n\truntimeId: string;\n\tsectionId?: string;\n\tattemptId?: string;\n\t/** ISO-8601, monotonic across one cohort. */\n\ttimestamp: string;\n\t/** Tag name minus the `--version-<encoded>` suffix. */\n\tsourceCe: string;\n};\n\nexport type LoadingCompleteDetail = {\n\truntimeId: string;\n\tsectionId: string;\n\tattemptId?: string;\n\titemCount: number;\n\tloadedCount: number;\n\ttimestamp: string;\n\tsourceCe: string;\n};\n"]}
@@ -15,4 +15,3 @@ export declare const toViewTag: (baseTag: string, view: PieViewMode | string, cu
15
15
  * Build a safe print tag by appending a deterministic, positive hash suffix.
16
16
  */
17
17
  export declare const toPrintHashedTag: (baseTag: string, hashSource: string, hashFn: (value: string) => number) => string;
18
- //# sourceMappingURL=tag-names.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tag-names.js","sourceRoot":"","sources":["../../src/pie/tag-names.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IAClC,gBAAgB;IAChB,eAAe;IACf,WAAW;IACX,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;CACf,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,kCAAkC,CAAC;AAItD,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC3D,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,QAAQ;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACvC,IAAY,EACZ,OAAO,GAAG,oBAAoB,EACrB,EAAE;IACX,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,+BAA+B,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,UAAU,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,KAAK,UAAU,2CAA2C,CAC5E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,KAAK,UAAU,+CAA+C,CAChF,CAAC;IACH,CAAC;IAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,KAAK,UAAU,2CAA2C,CAC5E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,KAAK,UAAU,wEAAwE,CACzG,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,OAAe,EACf,IAA0B,EAC1B,YAAqB,EACZ,EAAE;IACX,MAAM,MAAM,GACX,YAAY;QACZ,CAAC,eAAe,CAAC,IAAmB,CAAC,KAAK,SAAS;YAClD,CAAC,CAAC,eAAe,CAAC,IAAmB,CAAC;YACtC,CAAC,CAAC,EAAE,CAAC,CAAC;IACR,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,OAAe,EACf,UAAkB,EAClB,MAAiC,EACxB,EAAE;IACX,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1C,OAAO,GAAG,OAAO,UAAU,IAAI,EAAE,CAAC;AACnC,CAAC,CAAC"}
1
+ {"version":3,"file":"tag-names.js","sourceRoot":"","sources":["../../src/pie/tag-names.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IAClC,gBAAgB;IAChB,eAAe;IACf,WAAW;IACX,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;CACf,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,kCAAkC,CAAC;AAItD,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC3D,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,QAAQ;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACvC,IAAY,EACZ,OAAO,GAAG,oBAAoB,EACrB,EAAE;IACX,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,+BAA+B,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,UAAU,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,KAAK,UAAU,2CAA2C,CAC5E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,KAAK,UAAU,+CAA+C,CAChF,CAAC;IACH,CAAC;IAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,KAAK,UAAU,2CAA2C,CAC5E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACd,WAAW,OAAO,KAAK,UAAU,wEAAwE,CACzG,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,OAAe,EACf,IAA0B,EAC1B,YAAqB,EACZ,EAAE;IACX,MAAM,MAAM,GACX,YAAY;QACZ,CAAC,eAAe,CAAC,IAAmB,CAAC,KAAK,SAAS;YAClD,CAAC,CAAC,eAAe,CAAC,IAAmB,CAAC;YACtC,CAAC,CAAC,EAAE,CAAC,CAAC;IACR,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,OAAe,EACf,UAAkB,EAClB,MAAiC,EACxB,EAAE;IACX,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1C,OAAO,GAAG,OAAO,UAAU,IAAI,EAAE,CAAC;AACnC,CAAC,CAAC","sourcesContent":["/**\n * Custom element tag helpers for PIE runtime loaders/players.\n */\n\nconst RESERVED_TAG_NAMES = new Set([\n\t\"annotation-xml\",\n\t\"color-profile\",\n\t\"font-face\",\n\t\"font-face-src\",\n\t\"font-face-uri\",\n\t\"font-face-format\",\n\t\"font-face-name\",\n\t\"missing-glyph\",\n]);\n\nconst TAG_FORMAT = /^[a-z][a-z0-9._-]*-[a-z0-9._-]*$/;\n\nexport type PieViewMode = \"delivery\" | \"author\" | \"print\";\n\nexport const VIEW_TAG_SUFFIX: Record<PieViewMode, string> = {\n\tdelivery: \"\",\n\tauthor: \"-config\",\n\tprint: \"-print\",\n};\n\n/**\n * Validate a custom element tag name according to platform constraints.\n */\nexport const validateCustomElementTag = (\n\tname: string,\n\tcontext = \"custom element tag\",\n): string => {\n\tif (!name || typeof name !== \"string\") {\n\t\tthrow new Error(`Invalid ${context}: expected a non-empty string`);\n\t}\n\n\tconst normalized = name.trim();\n\tif (!normalized) {\n\t\tthrow new Error(`Invalid ${context}: tag is empty`);\n\t}\n\n\tif (normalized !== normalized.toLowerCase()) {\n\t\tthrow new Error(\n\t\t\t`Invalid ${context} \"${normalized}\": custom element names must be lowercase`,\n\t\t);\n\t}\n\n\tif (!normalized.includes(\"-\")) {\n\t\tthrow new Error(\n\t\t\t`Invalid ${context} \"${normalized}\": custom element names must include a hyphen`,\n\t\t);\n\t}\n\n\tif (RESERVED_TAG_NAMES.has(normalized)) {\n\t\tthrow new Error(\n\t\t\t`Invalid ${context} \"${normalized}\": this name is reserved by the HTML spec`,\n\t\t);\n\t}\n\n\tif (!TAG_FORMAT.test(normalized)) {\n\t\tthrow new Error(\n\t\t\t`Invalid ${context} \"${normalized}\": allowed characters are lowercase letters, numbers, \".\", \"_\" and \"-\"`,\n\t\t);\n\t}\n\n\treturn normalized;\n};\n\n/**\n * Create a deterministic tag for a view-specific element class.\n */\nexport const toViewTag = (\n\tbaseTag: string,\n\tview: PieViewMode | string,\n\tcustomSuffix?: string,\n): string => {\n\tconst suffix =\n\t\tcustomSuffix ??\n\t\t(VIEW_TAG_SUFFIX[view as PieViewMode] !== undefined\n\t\t\t? VIEW_TAG_SUFFIX[view as PieViewMode]\n\t\t\t: \"\");\n\treturn `${baseTag}${suffix}`;\n};\n\n/**\n * Build a safe print tag by appending a deterministic, positive hash suffix.\n */\nexport const toPrintHashedTag = (\n\tbaseTag: string,\n\thashSource: string,\n\thashFn: (value: string) => number,\n): string => {\n\tconst hash = Math.abs(hashFn(hashSource));\n\treturn `${baseTag}-print-${hash}`;\n};\n"]}
@@ -133,4 +133,3 @@ export declare function isCustomElementConstructor(obj: any): obj is CustomEleme
133
133
  export declare function isPieRegistryAvailable(obj: any): obj is {
134
134
  PIE_REGISTRY: PieRegistry;
135
135
  };
136
- //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pie/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkDH;;GAEG;AACH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACrB,kCAAoB,CAAA;IACpB,+CAAiC,CAAA;IACjC,kCAAoB,CAAA;AACrB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,MAGX;AAHD,WAAY,MAAM;IACjB,6BAAmB,CAAA;IACnB,2BAAiB,CAAA;AAClB,CAAC,EAHW,MAAM,KAAN,MAAM,QAGjB;AA2CD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAqC;IACzE,wBAAwB,EAAE,IAAI;IAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE;IAC/D,cAAc,EAAE,EAAE;CAClB,CAAC;AAqBF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAQ;IACtC,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACzC,GAAQ;IAER,OAAO,CACN,OAAO,GAAG,KAAK,UAAU;QACzB,WAAW,IAAI,GAAG;QAClB,GAAG,CAAC,SAAS,YAAY,WAAW,CACpC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACrC,GAAQ;IAER,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pie/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkDH;;GAEG;AACH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACrB,kCAAoB,CAAA;IACpB,+CAAiC,CAAA;IACjC,kCAAoB,CAAA;AACrB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,MAGX;AAHD,WAAY,MAAM;IACjB,6BAAmB,CAAA;IACnB,2BAAiB,CAAA;AAClB,CAAC,EAHW,MAAM,KAAN,MAAM,QAGjB;AA2CD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAqC;IACzE,wBAAwB,EAAE,IAAI;IAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE;IAC/D,cAAc,EAAE,EAAE;CAClB,CAAC;AAqBF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAQ;IACtC,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACzC,GAAQ;IAER,OAAO,CACN,OAAO,GAAG,KAAK,UAAU;QACzB,WAAW,IAAI,GAAG;QAClB,GAAG,CAAC,SAAS,YAAY,WAAW,CACpC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACrC,GAAQ;IAER,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC;AACpD,CAAC","sourcesContent":["/**\n * PIE Types Module\n *\n * Pure type definitions, interfaces, and enums used across PIE utilities.\n * This module has NO runtime dependencies on other PIE modules.\n */\n\nimport type { ConfigEntity, Env, PieController, PieModel } from \"../types/index.js\";\n\n/**\n * Player modes\n */\nexport type PlayerMode = \"gather\" | \"view\" | \"evaluate\" | \"author\";\n\n/**\n * PIE custom element interface\n */\nexport interface PieElement extends HTMLElement {\n\tset model(m: PieModel | undefined);\n\tget model(): PieModel | undefined;\n\tset session(s: any);\n\tget session(): any;\n\tmodelLoaded?: CustomEvent;\n\tonModelChanged: Function;\n\tconfiguration: object;\n}\n\n/**\n * Configure element interface (for authoring mode)\n */\nexport interface ConfigureElement extends HTMLElement {\n\tset model(m: any);\n\tget model(): any;\n\tset configuration(c: any);\n\tget configuration(): any;\n}\n\n/**\n * Authoring environment extends base Env\n */\nexport interface AuthoringEnv extends Env {\n\tmode: \"author\";\n\tconfiguration?: Record<string, any>;\n}\n\n/**\n * Asset upload handler interface (for images and sounds)\n */\nexport interface AssetHandler {\n\tcancel: () => void;\n\tdone: (err?: Error, src?: string) => void;\n\tfileChosen: (file: File) => void;\n\tprogress?: (percent: number, bytes: number, total: number) => void;\n}\n\n/**\n * PIE bundle types\n */\nexport enum BundleType {\n\tplayer = \"player.js\", // Elements only (no controllers)\n\tclientPlayer = \"client-player.js\", // Elements + controllers\n\teditor = \"editor.js\", // Editor UI\n}\n\n/**\n * Internal PIE registry entry status\n */\nexport enum Status {\n\tloading = \"loading\",\n\tloaded = \"loaded\",\n}\n\n/**\n * Internal PIE registry entry\n */\nexport interface Entry {\n\tpackage: string;\n\tstatus: Status;\n\ttagName: string;\n\tcontroller?: PieController;\n\t// Note: In practice these are not DOM Elements; they may be constructors, metadata, etc.\n\t// Keep them loose to support both IIFE and ESM loaders.\n\tconfig?: any;\n\telement?: any;\n\tbundleType?: BundleType; // Track which bundle type was used\n}\n\n/**\n * PIE registry - maps element names to their loaded data\n */\nexport interface PieRegistry {\n\t[key: string]: Entry;\n}\n\n/**\n * Event listeners map\n */\nexport interface EventListeners {\n\t[key: string]: (event: CustomEvent) => void;\n}\n\n/**\n * Options for updating PIE elements\n */\nexport interface UpdatePieElementOptions {\n\tconfig: ConfigEntity;\n\tsession: any[];\n\tenv?: Env;\n\tinvokeControllerForModel?: boolean;\n\teventListeners?: EventListeners;\n\tcontainer?: Element | Document; // Optional container to scope querySelector (defaults to document)\n}\n\n/**\n * Default options for updatePieElement\n */\nexport const defaultPieElementOptions: Partial<UpdatePieElementOptions> = {\n\tinvokeControllerForModel: true,\n\tenv: { mode: \"gather\", role: \"student\", partialScoring: false },\n\teventListeners: {},\n};\n\n/**\n * Event listeners map for multiple elements\n */\nexport interface EventListenersMap {\n\t[elementName: string]: EventListeners;\n}\n\n/**\n * Options for loading PIE elements\n */\nexport interface LoadPieElementsOptions {\n\tbuildServiceBase?: string;\n\tbundleType?: BundleType;\n\tenv?: Env;\n\tbundleUrl?: string;\n\teventListeners?: EventListenersMap;\n\tcontainer?: Element | Document; // Optional container to scope querySelector\n}\n\n/**\n * Type guard: Check if object has window.pie\n */\nexport function isPieAvailable(obj: any): obj is { pie: any } {\n\treturn obj && typeof obj.pie === \"object\";\n}\n\n/**\n * Type guard: Check if object is a CustomElementConstructor\n */\nexport function isCustomElementConstructor(\n\tobj: any,\n): obj is CustomElementConstructor {\n\treturn (\n\t\ttypeof obj === \"function\" &&\n\t\t\"prototype\" in obj &&\n\t\tobj.prototype instanceof HTMLElement\n\t);\n}\n\n/**\n * Type guard: Check if window has PIE_REGISTRY\n */\nexport function isPieRegistryAvailable(\n\tobj: any,\n): obj is { PIE_REGISTRY: PieRegistry } {\n\treturn obj && typeof obj.PIE_REGISTRY === \"object\";\n}\n"]}
@@ -17,4 +17,3 @@ export declare const updatePieElement: (elName: string, opts: UpdatePieElementOp
17
17
  * Update all PIE elements in a config
18
18
  */
19
19
  export declare const updatePieElements: (config: ConfigEntity, session: any[], env: Env, container?: Element | Document) => void;
20
- //# sourceMappingURL=updates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"updates.js","sourceRoot":"","sources":["../../src/pie/updates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updates.js","sourceRoot":"","sources":["../../src/pie/updates.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * PIE Updates Module\n *\n * Functions for updating PIE elements with new models, sessions, and env.\n */\n\nimport { mergeObjectsIgnoringNullUndefined } from \"../object/index.js\";\nimport type { ConfigEntity, Env, PieModel } from \"../types/index.js\";\nimport { createPieLogger, isGlobalDebugEnabled } from \"./logger.js\";\nimport { findPieController } from \"./scoring.js\";\nimport type { PieElement, UpdatePieElementOptions } from \"./types.js\";\nimport { defaultPieElementOptions } from \"./types.js\";\nimport { findOrAddSession } from \"./utils.js\";\n\n// Create module-level logger (respects global debug flag - pass function for dynamic checking)\nconst logger = createPieLogger(\"pie-updates\", () => isGlobalDebugEnabled());\n\ntype ControllerErrorDetail = {\n\tcode: \"PIE_CONTROLLER_CONTRACT_ERROR\" | \"PIE_CONTROLLER_RUNTIME_ERROR\";\n\tmessage: string;\n\telementName: string;\n\telementId: string;\n\tcontrollerShape?: string;\n\tcause?: string;\n};\n\nconst describeControllerShape = (controller: unknown): string => {\n\tif (!controller) return \"missing\";\n\tif (typeof controller === \"function\") return \"function\";\n\tif (typeof controller !== \"object\") return typeof controller;\n\tconst keys = Object.keys(controller as Record<string, unknown>);\n\tconst defaultValue = (controller as Record<string, unknown>).default;\n\tconst defaultKeys =\n\t\tdefaultValue && typeof defaultValue === \"object\"\n\t\t\t? Object.keys(defaultValue as Record<string, unknown>)\n\t\t\t: [];\n\treturn defaultKeys.length > 0\n\t\t? `object(keys=[${keys.join(\",\")}],defaultKeys=[${defaultKeys.join(\",\")}])`\n\t\t: `object(keys=[${keys.join(\",\")}])`;\n};\n\nconst resolveControllerModelFunction = (\n\tcontroller: unknown,\n): ((model: PieModel, session: any, env: Env, updateSession: any) => unknown) | null => {\n\tif (!controller) return null;\n\tif (typeof controller === \"function\") {\n\t\treturn controller as (model: PieModel, session: any, env: Env, updateSession: any) => unknown;\n\t}\n\tif (typeof controller !== \"object\") return null;\n\tconst direct = (controller as Record<string, unknown>).model;\n\tif (typeof direct === \"function\") {\n\t\treturn (model, sessionData, env, updateSession) =>\n\t\t\t(direct as Function).call(controller, model, sessionData, env, updateSession);\n\t}\n\tconst fromDefault = (controller as Record<string, unknown>).default;\n\tif (fromDefault && typeof fromDefault === \"object\") {\n\t\tconst nested = (fromDefault as Record<string, unknown>).model;\n\t\tif (typeof nested === \"function\") {\n\t\t\treturn (model, sessionData, env, updateSession) =>\n\t\t\t\t(nested as Function).call(fromDefault, model, sessionData, env, updateSession);\n\t\t}\n\t}\n\treturn null;\n};\n\nconst emitControllerError = (\n\tpieElement: PieElement,\n\tdetail: ControllerErrorDetail,\n): void => {\n\tpieElement.dispatchEvent(\n\t\tnew CustomEvent(\"pie-controller-error\", {\n\t\t\tdetail,\n\t\t\tbubbles: true,\n\t\t\tcomposed: true,\n\t\t}),\n\t);\n};\n\n/**\n * Helper function to apply controller to element\n * Extracted to eliminate duplication and ensure consistent controller invocation\n */\nconst applyControllerToElement = async (\n\telement: PieElement,\n\tmodel: PieModel,\n\telementSession: any,\n\tcontroller: unknown,\n\tenv: Env,\n\tlogPrefix: string,\n): Promise<void> => {\n\tlogger.debug(`${logPrefix} Using controller, env:`, env);\n\tlogger.debug(`${logPrefix} Model before filter:`, {\n\t\tid: model.id,\n\t\telement: model.element,\n\t\thasCorrectResponse: \"correctResponse\" in model,\n\t});\n\n\t// Create updateSession callback for controller to save shuffle order\n\tconst updateSession = (id: string, _elementName: string, properties: any) => {\n\t\tlogger.debug(\n\t\t\t`${logPrefix} updateSession called for ${id} with:`,\n\t\t\tproperties,\n\t\t);\n\t\tObject.assign(elementSession, properties);\n\t\treturn Promise.resolve();\n\t};\n\n\ttry {\n\t\tconst modelFunction = resolveControllerModelFunction(controller);\n\t\tif (!modelFunction) {\n\t\t\tthrow new Error(\n\t\t\t\t`Controller contract mismatch: expected a model() function but received ${describeControllerShape(\n\t\t\t\t\tcontroller,\n\t\t\t\t)}`,\n\t\t\t);\n\t\t}\n\t\tconst controllerResult = await modelFunction(model, elementSession, env, updateSession);\n\n\t\t// Merge controller result with id and element (like server-side PieControllerExecutor does)\n\t\tconst controllerResultObject =\n\t\t\tcontrollerResult && typeof controllerResult === \"object\"\n\t\t\t\t? (controllerResult as Record<string, unknown>)\n\t\t\t\t: {};\n\t\tconst filteredModel = {\n\t\t\tid: model.id,\n\t\t\telement: model.element,\n\t\t\t...controllerResultObject,\n\t\t};\n\n\t\tlogger.debug(`${logPrefix} ✅ Controller filtered model:`, {\n\t\t\tid: filteredModel.id,\n\t\t\telement: filteredModel.element,\n\t\t\thasCorrectResponse: \"correctResponse\" in filteredModel,\n\t\t\tmode: env.mode,\n\t\t\trole: env.role,\n\t\t});\n\n\t\telement.model = filteredModel;\n\t\telement.session = elementSession;\n\t} catch (err) {\n\t\tlogger.error(`${logPrefix} ❌ Controller error:`, err);\n\t\tthrow err; // Re-throw - controller errors are fatal\n\t}\n};\n\ntype ResolvedUpdateOptions = Pick<\n\tUpdatePieElementOptions,\n\t\"config\" | \"session\" | \"env\" | \"eventListeners\" | \"invokeControllerForModel\"\n>;\n\nconst resolveAndValidateUpdateOptions = (\n\topts: UpdatePieElementOptions,\n): ResolvedUpdateOptions => {\n\tconst { config, session, env, eventListeners, invokeControllerForModel } =\n\t\tmergeObjectsIgnoringNullUndefined(defaultPieElementOptions, opts);\n\tif (!env) {\n\t\tthrow new Error(\"env is required\");\n\t}\n\tif (!session) {\n\t\tthrow new Error(\"session is required\");\n\t}\n\tif (!config) {\n\t\tthrow new Error(\"config is required\");\n\t}\n\treturn { config, session, env, eventListeners, invokeControllerForModel };\n};\n\nconst updateSinglePieElement = (\n\tpieElement: PieElement,\n\tcontrollerLookupTag: string,\n\toptions: ResolvedUpdateOptions,\n\tlogContext: string,\n): void => {\n\tconst { config, session, env, eventListeners, invokeControllerForModel } =\n\t\toptions;\n\tconst model = config.models?.find((m) => m.id === pieElement.id) as\n\t\t| PieModel\n\t\t| undefined;\n\tif (!model) {\n\t\tlogger.error(`${logContext} Model not found for`, controllerLookupTag);\n\t\tthrow new Error(`model not found for ${controllerLookupTag}`);\n\t}\n\n\tconst elementSession = findOrAddSession(session, model.id, model.element);\n\n\t// Always attach event listeners (don't skip them for no-controller case)\n\tif (eventListeners) {\n\t\tObject.entries(eventListeners).forEach(([evt, fn]) => {\n\t\t\tpieElement.addEventListener(evt as any, fn);\n\t\t});\n\t}\n\n\tif (env && invokeControllerForModel) {\n\t\tconst controller = findPieController(controllerLookupTag);\n\t\tif (!controller) {\n\t\t\tlogger.debug(\n\t\t\t\t`${logContext} ℹ️ No controller for ${controllerLookupTag}, using server-processed model`,\n\t\t\t);\n\t\t\tpieElement.model = model;\n\t\t\tpieElement.session = elementSession;\n\t\t\treturn;\n\t\t}\n\n\t\tlogger.debug(\n\t\t\t`${logContext} Invoking controller for ${controllerLookupTag}#${pieElement.id}`,\n\t\t\t{\n\t\t\t\tmode: env.mode,\n\t\t\t\trole: env.role,\n\t\t\t\thasCorrectResponse: \"correctResponse\" in model,\n\t\t\t},\n\t\t);\n\n\t\tapplyControllerToElement(\n\t\t\tpieElement,\n\t\t\tmodel,\n\t\t\telementSession,\n\t\t\tcontroller,\n\t\t\tenv,\n\t\t\t`${logContext}(${controllerLookupTag}#${pieElement.id})`,\n\t\t).catch((err) => {\n\t\t\tconst errorMessage = err instanceof Error ? err.message : String(err);\n\t\t\tconst isContractError = errorMessage.includes(\n\t\t\t\t\"Controller contract mismatch\",\n\t\t\t);\n\t\t\tlogger.error(\n\t\t\t\t`${logContext} Controller failed for ${controllerLookupTag}#${pieElement.id}:`,\n\t\t\t\terr,\n\t\t\t);\n\t\t\temitControllerError(pieElement, {\n\t\t\t\tcode: isContractError\n\t\t\t\t\t? \"PIE_CONTROLLER_CONTRACT_ERROR\"\n\t\t\t\t\t: \"PIE_CONTROLLER_RUNTIME_ERROR\",\n\t\t\t\tmessage: `${controllerLookupTag} controller failed while applying model for ${pieElement.id}. ${errorMessage}`,\n\t\t\t\telementName: controllerLookupTag,\n\t\t\t\telementId: pieElement.id,\n\t\t\t\tcontrollerShape: describeControllerShape(controller),\n\t\t\t\tcause: errorMessage,\n\t\t\t});\n\t\t\t// Fall back to raw model on controller error\n\t\t\tpieElement.model = model;\n\t\t\tpieElement.session = elementSession;\n\t\t});\n\t} else {\n\t\tlogger.debug(\n\t\t\t`${logContext} Direct model assignment for ${controllerLookupTag}#${pieElement.id} (no controller invocation requested)`,\n\t\t);\n\t\tpieElement.model = model;\n\t\tpieElement.session = elementSession;\n\t}\n};\n\n/**\n * Update a PIE element by ref (direct Element reference)\n */\nexport const updatePieElementWithRef = (\n\tel: Element,\n\topts: UpdatePieElementOptions,\n): void => {\n\tconst options = resolveAndValidateUpdateOptions(opts);\n\tconst pieElement = el as PieElement;\n\tconst elName = pieElement.tagName.toLowerCase();\n\tupdateSinglePieElement(\n\t\tpieElement,\n\t\telName,\n\t\toptions,\n\t\t\"[updatePieElementWithRef]\",\n\t);\n};\n\n/**\n * Update a PIE element by name (finds all matching elements in DOM)\n */\nexport const updatePieElement = (\n\telName: string,\n\topts: UpdatePieElementOptions,\n): void => {\n\tconst options = resolveAndValidateUpdateOptions(opts);\n\tconst { container } = mergeObjectsIgnoringNullUndefined(\n\t\tdefaultPieElementOptions,\n\t\topts,\n\t);\n\t// Use container for scoped query or fallback to document for global query\n\tconst searchRoot = container || document;\n\tconst pieElements = searchRoot.querySelectorAll(elName);\n\tif (!pieElements || pieElements.length === 0) {\n\t\tlogger.debug(`no elements found for ${elName}`);\n\t\treturn;\n\t}\n\tpieElements.forEach((el) => {\n\t\tconst pieElement = el as PieElement;\n\t\tupdateSinglePieElement(pieElement, elName, options, \"[updatePieElement]\");\n\t});\n};\n\n/**\n * Update all PIE elements in a config\n */\nexport const updatePieElements = (\n\tconfig: ConfigEntity,\n\tsession: any[],\n\tenv: Env,\n\tcontainer?: Element | Document,\n): void => {\n\tlogger.debug(\"[updatePieElements] Updating all elements with env:\", env);\n\tObject.entries(config.elements).forEach(([elName, _pkg]) => {\n\t\tupdatePieElement(elName, { config, session, env, container });\n\t});\n};\n"]}