@parhelia/core 0.1.12870 → 0.1.12875

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 (290) hide show
  1. package/dist/components/ui/card.d.ts +3 -1
  2. package/dist/components/ui/card.js +2 -2
  3. package/dist/components/ui/card.js.map +1 -1
  4. package/dist/components/ui/context-menu.js +2 -2
  5. package/dist/config/config.js +22 -2
  6. package/dist/config/config.js.map +1 -1
  7. package/dist/config/types.d.ts +0 -1
  8. package/dist/config/types.js.map +1 -1
  9. package/dist/editor/FieldActionsOverlay.d.ts +0 -1
  10. package/dist/editor/FieldActionsOverlay.js +1 -45
  11. package/dist/editor/FieldActionsOverlay.js.map +1 -1
  12. package/dist/editor/FieldListField.d.ts +1 -1
  13. package/dist/editor/FieldListField.js +20 -18
  14. package/dist/editor/FieldListField.js.map +1 -1
  15. package/dist/editor/ImageEditor.d.ts +6 -1
  16. package/dist/editor/ImageEditor.js +19 -3
  17. package/dist/editor/ImageEditor.js.map +1 -1
  18. package/dist/editor/PictureEditor.d.ts +2 -1
  19. package/dist/editor/PictureEditor.js +5 -14
  20. package/dist/editor/PictureEditor.js.map +1 -1
  21. package/dist/editor/ai/Agents.js +2 -2
  22. package/dist/editor/ai/Agents.js.map +1 -1
  23. package/dist/editor/ai/GuidanceOverlay.js +1 -11
  24. package/dist/editor/ai/GuidanceOverlay.js.map +1 -1
  25. package/dist/editor/ai/InlineAiDialog.js +22 -11
  26. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  27. package/dist/editor/ai/InlineAiTrigger.js +15 -15
  28. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  29. package/dist/editor/ai/dialogs/capturePageDom.js +66 -36
  30. package/dist/editor/ai/dialogs/capturePageDom.js.map +1 -1
  31. package/dist/editor/ai/dialogs/capturePageScreenshot.js +281 -162
  32. package/dist/editor/ai/dialogs/capturePageScreenshot.js.map +1 -1
  33. package/dist/editor/ai/terminal/agentSessionState.d.ts +3 -0
  34. package/dist/editor/ai/terminal/agentSessionState.js +3 -1
  35. package/dist/editor/ai/terminal/agentSessionState.js.map +1 -1
  36. package/dist/editor/ai/terminal/agentStartRequest.d.ts +2 -1
  37. package/dist/editor/ai/terminal/agentStartRequest.js +2 -1
  38. package/dist/editor/ai/terminal/agentStartRequest.js.map +1 -1
  39. package/dist/editor/ai/terminal/components/AgentCostDisplay.js +1 -1
  40. package/dist/editor/ai/terminal/components/AgentCostDisplay.js.map +1 -1
  41. package/dist/editor/ai/terminal/components/AgentDocumentList.d.ts +7 -0
  42. package/dist/editor/ai/terminal/components/AgentDocumentList.js +55 -13
  43. package/dist/editor/ai/terminal/components/AgentDocumentList.js.map +1 -1
  44. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.d.ts +5 -0
  45. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +12 -0
  46. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +1 -0
  47. package/dist/editor/ai/terminal/components/AgentFullPromptControls.d.ts +3 -1
  48. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +22 -14
  49. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -1
  50. package/dist/editor/ai/terminal/components/AgentModeSelector.js +4 -4
  51. package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
  52. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +4 -4
  53. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
  54. package/dist/editor/ai/terminal/components/AgentPromptComposer.js +1 -1
  55. package/dist/editor/ai/terminal/components/AgentPromptComposer.js.map +1 -1
  56. package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +2 -1
  57. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +8 -11
  58. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
  59. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +1 -4
  60. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +29 -13
  61. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
  62. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js +1 -1
  63. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js.map +1 -1
  64. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +2 -1
  65. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +2 -4
  66. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
  67. package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js +1 -1
  68. package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js.map +1 -1
  69. package/dist/editor/ai/terminal/components/AgentTerminalView.js +13 -2
  70. package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
  71. package/dist/editor/ai/terminal/components/AiResponseMessage.js +16 -14
  72. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  73. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js +37 -26
  74. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js.map +1 -1
  75. package/dist/editor/ai/terminal/components/UserMessage.d.ts +2 -1
  76. package/dist/editor/ai/terminal/components/UserMessage.js +130 -8
  77. package/dist/editor/ai/terminal/components/UserMessage.js.map +1 -1
  78. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js +1 -1
  79. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js.map +1 -1
  80. package/dist/editor/ai/terminal/useAgentSessionSync.d.ts +1 -0
  81. package/dist/editor/ai/terminal/useAgentSubmitHandlers.d.ts +3 -1
  82. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +9 -3
  83. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -1
  84. package/dist/editor/ai/terminal/useAgentTerminalController.js +7 -0
  85. package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
  86. package/dist/editor/ai/terminal/useAgentTerminalUiState.js +1 -1
  87. package/dist/editor/ai/terminal/useAgentTerminalUiState.js.map +1 -1
  88. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js +3 -1
  89. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js.map +1 -1
  90. package/dist/editor/ai/useInlineAiPosition.d.ts +1 -1
  91. package/dist/editor/ai/useInlineAiPosition.js +22 -52
  92. package/dist/editor/ai/useInlineAiPosition.js.map +1 -1
  93. package/dist/editor/ai-image-editor/AiImageResultOverlay.js +30 -62
  94. package/dist/editor/ai-image-editor/AiImageResultOverlay.js.map +1 -1
  95. package/dist/editor/bridge/BridgeClient.d.ts +80 -0
  96. package/dist/editor/bridge/BridgeClient.js +416 -0
  97. package/dist/editor/bridge/BridgeClient.js.map +1 -0
  98. package/dist/editor/client/EditorShell.d.ts +5 -1
  99. package/dist/editor/client/EditorShell.js +286 -126
  100. package/dist/editor/client/EditorShell.js.map +1 -1
  101. package/dist/editor/client/editContext.d.ts +37 -5
  102. package/dist/editor/client/editContext.js.map +1 -1
  103. package/dist/editor/client/hooks/useSocketMessageHandler.js +14 -17
  104. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  105. package/dist/editor/client/itemsRepository.d.ts +2 -0
  106. package/dist/editor/client/itemsRepository.js +15 -8
  107. package/dist/editor/client/itemsRepository.js.map +1 -1
  108. package/dist/editor/client/operations.d.ts +1 -1
  109. package/dist/editor/client/operations.js +41 -17
  110. package/dist/editor/client/operations.js.map +1 -1
  111. package/dist/editor/client/pageModelBuilder.js +24 -7
  112. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  113. package/dist/editor/field-types/MultiLineText.js +10 -3
  114. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  115. package/dist/editor/field-types/RawEditor.js +8 -1
  116. package/dist/editor/field-types/RawEditor.js.map +1 -1
  117. package/dist/editor/field-types/RichTextEditorComponent.js +156 -45
  118. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  119. package/dist/editor/field-types/SingleLineText.js +10 -3
  120. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  121. package/dist/editor/field-types/richtext/components/ReactSlate.js +8 -2
  122. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  123. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +1 -2
  124. package/dist/editor/field-types/richtext/contextMenuFactory.js +100 -303
  125. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  126. package/dist/editor/field-types/richtext/types.d.ts +2 -0
  127. package/dist/editor/field-types/richtext/types.js.map +1 -1
  128. package/dist/editor/field-types/useFormFieldCaretPresence.d.ts +13 -0
  129. package/dist/editor/field-types/useFormFieldCaretPresence.js +92 -0
  130. package/dist/editor/field-types/useFormFieldCaretPresence.js.map +1 -0
  131. package/dist/editor/media-selector/TreeSelector.js +15 -15
  132. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  133. package/dist/editor/menubar/PageSelector.js +8 -2
  134. package/dist/editor/menubar/PageSelector.js.map +1 -1
  135. package/dist/editor/menubar/VersionPreviewCard.js +4 -249
  136. package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
  137. package/dist/editor/menubar/toolbar-sections/EditControls.js +2 -2
  138. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  139. package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +0 -7
  140. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +23 -198
  141. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  142. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +1 -1
  143. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.d.ts +6 -0
  144. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +123 -0
  145. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -0
  146. package/dist/editor/page-editor-chrome/CommentHighlightings.d.ts +5 -2
  147. package/dist/editor/page-editor-chrome/CommentHighlightings.js +340 -215
  148. package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
  149. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +5 -1
  150. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +11 -4
  151. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
  152. package/dist/editor/page-editor-chrome/FieldActionIndicator.js +21 -13
  153. package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
  154. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +23 -29
  155. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
  156. package/dist/editor/page-editor-chrome/FrameMenu.js +110 -19
  157. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  158. package/dist/editor/page-editor-chrome/LockedFieldIndicator.d.ts +3 -2
  159. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +148 -45
  160. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -1
  161. package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +2 -0
  162. package/dist/editor/page-editor-chrome/PageEditorChrome.js +25 -21
  163. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
  164. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +163 -128
  165. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
  166. package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +1 -1
  167. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +6 -3
  168. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  169. package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +1 -2
  170. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +83 -146
  171. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  172. package/dist/editor/page-editor-chrome/SuggestionHighlightings.d.ts +5 -2
  173. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +144 -63
  174. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
  175. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.d.ts +1 -2
  176. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +101 -30
  177. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
  178. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +10 -1
  179. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +105 -122
  180. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
  181. package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +11 -4
  182. package/dist/editor/page-editor-chrome/overlay/geometry.js +139 -36
  183. package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
  184. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.d.ts +26 -0
  185. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js +222 -0
  186. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js.map +1 -0
  187. package/dist/editor/page-viewer/EditorForm.js +17 -1
  188. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  189. package/dist/editor/page-viewer/MiniMap.d.ts +2 -2
  190. package/dist/editor/page-viewer/MiniMap.js +176 -364
  191. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  192. package/dist/editor/page-viewer/PageViewer.js +40 -13
  193. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  194. package/dist/editor/page-viewer/PageViewerFrame.d.ts +0 -5
  195. package/dist/editor/page-viewer/PageViewerFrame.js +1525 -1507
  196. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  197. package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +20 -0
  198. package/dist/editor/page-viewer/bridgeFieldPatch.js +33 -0
  199. package/dist/editor/page-viewer/bridgeFieldPatch.js.map +1 -0
  200. package/dist/editor/page-viewer/pageViewContext.d.ts +32 -0
  201. package/dist/editor/page-viewer/pageViewContext.js +37 -6
  202. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  203. package/dist/editor/reviews/Comment.d.ts +2 -1
  204. package/dist/editor/reviews/Comment.js +9 -4
  205. package/dist/editor/reviews/Comment.js.map +1 -1
  206. package/dist/editor/reviews/CommentEditor.js +1 -1
  207. package/dist/editor/reviews/CommentEditor.js.map +1 -1
  208. package/dist/editor/reviews/CommentPopover.js +68 -9
  209. package/dist/editor/reviews/CommentPopover.js.map +1 -1
  210. package/dist/editor/reviews/CommentView.js +24 -4
  211. package/dist/editor/reviews/CommentView.js.map +1 -1
  212. package/dist/editor/reviews/Comments.d.ts +0 -2
  213. package/dist/editor/reviews/Comments.js +29 -30
  214. package/dist/editor/reviews/Comments.js.map +1 -1
  215. package/dist/editor/reviews/FeedbackCard.d.ts +4 -2
  216. package/dist/editor/reviews/FeedbackCard.js +5 -5
  217. package/dist/editor/reviews/FeedbackCard.js.map +1 -1
  218. package/dist/editor/reviews/SuggestedEdit.js +4 -6
  219. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  220. package/dist/editor/reviews/SuggestionDisplayPopover.js +3 -2
  221. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  222. package/dist/editor/reviews/commentTransientSelection.d.ts +23 -0
  223. package/dist/editor/reviews/commentTransientSelection.js +7 -0
  224. package/dist/editor/reviews/commentTransientSelection.js.map +1 -0
  225. package/dist/editor/reviews/feedbackOrdering.d.ts +5 -0
  226. package/dist/editor/reviews/feedbackOrdering.js +27 -0
  227. package/dist/editor/reviews/feedbackOrdering.js.map +1 -0
  228. package/dist/editor/reviews/feedbackSelection.js +32 -4
  229. package/dist/editor/reviews/feedbackSelection.js.map +1 -1
  230. package/dist/editor/reviews/suggestedEditState.d.ts +12 -0
  231. package/dist/editor/reviews/suggestedEditState.js +90 -0
  232. package/dist/editor/reviews/suggestedEditState.js.map +1 -0
  233. package/dist/editor/reviews/suggestionDisplayValue.d.ts +43 -0
  234. package/dist/editor/reviews/suggestionDisplayValue.js +93 -0
  235. package/dist/editor/reviews/suggestionDisplayValue.js.map +1 -0
  236. package/dist/editor/services/agentService.d.ts +14 -0
  237. package/dist/editor/services/agentService.js +11 -1
  238. package/dist/editor/services/agentService.js.map +1 -1
  239. package/dist/editor/services/reviewsService.d.ts +2 -2
  240. package/dist/editor/services/reviewsService.js.map +1 -1
  241. package/dist/editor/settings/SettingsView.js +2 -2
  242. package/dist/editor/settings/SettingsView.js.map +1 -1
  243. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +1 -1
  244. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  245. package/dist/editor/settings/panels/ProvidersPanel.js +2 -3
  246. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  247. package/dist/editor/sidebar/BridgeDiagnostics.d.ts +1 -0
  248. package/dist/editor/sidebar/BridgeDiagnostics.js +41 -0
  249. package/dist/editor/sidebar/BridgeDiagnostics.js.map +1 -0
  250. package/dist/editor/sidebar/MorePanelsButton.js +1 -1
  251. package/dist/editor/sidebar/MorePanelsButton.js.map +1 -1
  252. package/dist/editor/sidebar/Workbox.js +1 -1
  253. package/dist/editor/sidebar/Workbox.js.map +1 -1
  254. package/dist/editor/ui/IconSelectorDialog.js +1 -1
  255. package/dist/editor/ui/IconSelectorDialog.js.map +1 -1
  256. package/dist/editor/ui/SimpleIconButton.d.ts +2 -2
  257. package/dist/editor/ui/SimpleIconButton.js +1 -1
  258. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  259. package/dist/editor/utils.d.ts +1 -17
  260. package/dist/editor/utils.js +0 -143
  261. package/dist/editor/utils.js.map +1 -1
  262. package/dist/editor/version-diff/versionDiffTargets.d.ts +3 -8
  263. package/dist/editor/version-diff/versionDiffTargets.js +37 -94
  264. package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
  265. package/dist/revision.d.ts +2 -2
  266. package/dist/revision.js +2 -2
  267. package/dist/splash-screen/DialogWrappers.js +2 -2
  268. package/dist/splash-screen/DialogWrappers.js.map +1 -1
  269. package/dist/splash-screen/ModernSplashScreen.js +11 -3
  270. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  271. package/dist/splash-screen/NewPage.js +7 -5
  272. package/dist/splash-screen/NewPage.js.map +1 -1
  273. package/dist/splash-screen/OpenPage.js +5 -3
  274. package/dist/splash-screen/OpenPage.js.map +1 -1
  275. package/dist/splash-screen/RecentPages.js +3 -3
  276. package/dist/splash-screen/RecentPages.js.map +1 -1
  277. package/package.json +2 -1
  278. package/styles.css +49 -0
  279. package/dist/editor/page-editor-chrome/InlineEditor.d.ts +0 -7
  280. package/dist/editor/page-editor-chrome/InlineEditor.js +0 -1719
  281. package/dist/editor/page-editor-chrome/InlineEditor.js.map +0 -1
  282. package/dist/editor/page-editor-chrome/overlay/iframeAccess.d.ts +0 -2
  283. package/dist/editor/page-editor-chrome/overlay/iframeAccess.js +0 -21
  284. package/dist/editor/page-editor-chrome/overlay/iframeAccess.js.map +0 -1
  285. package/dist/editor/page-editor-chrome/useInlineAICompletion.d.ts +0 -7
  286. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +0 -758
  287. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +0 -1
  288. package/dist/editor/page-viewer/pageModelSkeletonBuilder.d.ts +0 -3
  289. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +0 -796
  290. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +0 -1
@@ -0,0 +1,416 @@
1
+ import { BRIDGE_CAPABILITIES, PARHELIA_EDITING_BRIDGE_VERSION, createBridgeEnvelope, formatBridgeVersion, isAllowedOrigin, isBridgeMessageFromHost, isCompatibleBridgeVersion, isKnownBridgeEventName, negotiateCapabilities, } from "@parhelia/editor-bridge-head";
2
+ // Capabilities this editor knows how to consume. The session set is the
3
+ // intersection of this and what the host advertises in `ready`.
4
+ const EDITOR_SUPPORTED_CAPABILITIES = Object.values(BRIDGE_CAPABILITIES);
5
+ export class BridgeClient {
6
+ iframe;
7
+ editorOrigin;
8
+ allowedHostOrigins;
9
+ bridgeUrl;
10
+ onEvent;
11
+ onError;
12
+ onReadyChange;
13
+ readyTimeoutMs;
14
+ readyTimeoutId;
15
+ hostOrigin;
16
+ connected = false;
17
+ ready = false;
18
+ status = "connecting";
19
+ hostVersion;
20
+ compatible;
21
+ hostAdvertisedCapabilities = [];
22
+ acknowledgedCapabilities = [];
23
+ hostRuntime;
24
+ lastError;
25
+ helloIntervalId;
26
+ pendingRequests = new Map();
27
+ constructor(options) {
28
+ this.iframe = options.iframe;
29
+ this.editorOrigin = options.editorOrigin;
30
+ this.allowedHostOrigins = options.allowedHostOrigins.filter(Boolean);
31
+ this.bridgeUrl = options.bridgeUrl;
32
+ this.onEvent = options.onEvent;
33
+ this.onError = options.onError;
34
+ this.onReadyChange = options.onReadyChange;
35
+ this.readyTimeoutMs = options.readyTimeoutMs ?? 10_000;
36
+ }
37
+ connect() {
38
+ if (this.connected)
39
+ return;
40
+ this.connected = true;
41
+ window.addEventListener("message", this.handleMessage);
42
+ this.armReadyTimeout();
43
+ this.armHelloHandshake();
44
+ logBridgeDiagnostic("client connected", {
45
+ iframeSrc: this.iframe.getAttribute("src"),
46
+ allowedHostOrigins: this.allowedHostOrigins,
47
+ configuredHostOrigin: this.getConfiguredHostOrigin(),
48
+ });
49
+ }
50
+ disconnect() {
51
+ if (!this.connected)
52
+ return;
53
+ this.connected = false;
54
+ this.ready = false;
55
+ this.status = "connecting";
56
+ this.compatible = undefined;
57
+ this.hostVersion = undefined;
58
+ this.hostAdvertisedCapabilities = [];
59
+ this.acknowledgedCapabilities = [];
60
+ this.hostRuntime = undefined;
61
+ this.rejectPendingRequests(new Error("The Parhelia bridge disconnected before the host responded."));
62
+ this.clearReadyTimeout();
63
+ this.clearHelloHandshake();
64
+ this.onReadyChange?.(false);
65
+ window.removeEventListener("message", this.handleMessage);
66
+ logBridgeDiagnostic("client disconnected");
67
+ }
68
+ isReady() {
69
+ return this.ready;
70
+ }
71
+ supportsCapability(capability) {
72
+ return this.ready && this.acknowledgedCapabilities.includes(capability);
73
+ }
74
+ sendCommand(name, payload, options) {
75
+ const targetWindow = this.iframe.contentWindow;
76
+ const targetOrigin = this.hostOrigin ?? this.getConfiguredHostOrigin();
77
+ if (!targetWindow || !targetOrigin) {
78
+ logBridgeDiagnostic("command skipped", {
79
+ name,
80
+ hasTargetWindow: Boolean(targetWindow),
81
+ targetOrigin,
82
+ iframeSrc: this.iframe.getAttribute("src"),
83
+ });
84
+ return false;
85
+ }
86
+ const message = createBridgeEnvelope(name, payload, {
87
+ requestId: options?.requestId,
88
+ });
89
+ logBridgeMessage("parent -> host", message);
90
+ targetWindow.postMessage(message, targetOrigin);
91
+ return true;
92
+ }
93
+ requestCommand(name, payload, expectedEventName, options) {
94
+ const requestId = options?.requestId ??
95
+ extractPayloadRequestId(payload) ??
96
+ createRequestId();
97
+ const timeoutMs = options?.timeoutMs ?? 10_000;
98
+ return new Promise((resolve, reject) => {
99
+ const timeoutId = window.setTimeout(() => {
100
+ this.pendingRequests.delete(requestId);
101
+ reject(new Error(`Timed out waiting for Parhelia bridge event '${expectedEventName}'.`));
102
+ }, timeoutMs);
103
+ this.pendingRequests.set(requestId, {
104
+ expectedEventName,
105
+ resolve: (payload) => resolve(payload),
106
+ reject,
107
+ timeoutId,
108
+ });
109
+ const sent = this.sendCommand(name, payload, { requestId });
110
+ if (!sent) {
111
+ window.clearTimeout(timeoutId);
112
+ this.pendingRequests.delete(requestId);
113
+ reject(new Error(`Could not send Parhelia bridge command '${name}' to the host.`));
114
+ }
115
+ });
116
+ }
117
+ getEditorOrigin() {
118
+ return this.editorOrigin;
119
+ }
120
+ getAcknowledgedCapabilities() {
121
+ return [...this.acknowledgedCapabilities];
122
+ }
123
+ getDiagnostics() {
124
+ return {
125
+ status: this.status,
126
+ editorVersion: PARHELIA_EDITING_BRIDGE_VERSION,
127
+ hostVersion: this.hostVersion,
128
+ compatible: this.compatible,
129
+ hostOrigin: this.hostOrigin,
130
+ hostAdvertisedCapabilities: [...this.hostAdvertisedCapabilities],
131
+ acknowledgedCapabilities: [...this.acknowledgedCapabilities],
132
+ runtime: this.hostRuntime,
133
+ lastError: this.lastError,
134
+ };
135
+ }
136
+ handleMessage = (event) => {
137
+ if (event.source !== this.iframe.contentWindow) {
138
+ if (isBridgeMessageFromHost(event.data)) {
139
+ logBridgeDiagnostic("event ignored: source mismatch", {
140
+ origin: event.origin,
141
+ name: event.data.name,
142
+ });
143
+ }
144
+ return;
145
+ }
146
+ const allowedOrigins = this.getAllowedOrigins();
147
+ if (allowedOrigins.length > 0 &&
148
+ !allowedOrigins.some((origin) => isAllowedOrigin(event.origin, [origin]))) {
149
+ if (isBridgeMessageFromHost(event.data)) {
150
+ logBridgeDiagnostic("event ignored: origin rejected", {
151
+ origin: event.origin,
152
+ allowedOrigins,
153
+ name: event.data.name,
154
+ });
155
+ }
156
+ return;
157
+ }
158
+ // Recognize any well-formed bridge message from the host (even with an
159
+ // unknown name), so newer events surface in diagnostics rather than being
160
+ // silently dropped.
161
+ if (!isBridgeMessageFromHost(event.data)) {
162
+ return;
163
+ }
164
+ this.hostOrigin = event.origin;
165
+ // Dispatch only known event names; log + ignore unrecognized ones.
166
+ if (!isKnownBridgeEventName(event.data.name)) {
167
+ logBridgeDiagnostic("event ignored: unknown name", {
168
+ origin: event.origin,
169
+ name: event.data.name,
170
+ hostVersion: event.data.version,
171
+ });
172
+ return;
173
+ }
174
+ const bridgeEvent = event.data;
175
+ logBridgeMessage("host -> parent", bridgeEvent);
176
+ this.resolvePendingRequest(bridgeEvent);
177
+ if (bridgeEvent.name === "ready") {
178
+ this.handleReady(bridgeEvent, event.origin);
179
+ }
180
+ this.onEvent?.(bridgeEvent, this);
181
+ };
182
+ handleReady(event, origin) {
183
+ this.clearHelloHandshake();
184
+ const payload = event.payload;
185
+ const hostVersion = getReadyVersion(event);
186
+ this.hostVersion = hostVersion;
187
+ this.hostAdvertisedCapabilities = Array.isArray(payload.capabilities)
188
+ ? payload.capabilities
189
+ : [];
190
+ this.hostRuntime = payload.runtime;
191
+ if (!isCompatibleBridgeVersion(hostVersion)) {
192
+ this.clearReadyTimeout();
193
+ this.ready = false;
194
+ this.compatible = false;
195
+ this.status = "incompatible";
196
+ this.acknowledgedCapabilities = [];
197
+ const message = `Editing host bridge is v${formatBridgeVersion(hostVersion)}; this editor expects v${formatBridgeVersion(PARHELIA_EDITING_BRIDGE_VERSION)}. Redeploy the bridge to ${origin}.`;
198
+ this.lastError = { message, at: Date.now() };
199
+ logBridgeDiagnostic("ready rejected: version mismatch", {
200
+ hostVersion,
201
+ expectedVersion: PARHELIA_EDITING_BRIDGE_VERSION,
202
+ origin,
203
+ });
204
+ this.onError?.(new Error(message), this);
205
+ return;
206
+ }
207
+ this.clearReadyTimeout();
208
+ this.compatible = true;
209
+ this.status = "ready";
210
+ this.acknowledgedCapabilities = negotiateCapabilities(EDITOR_SUPPORTED_CAPABILITIES, this.hostAdvertisedCapabilities);
211
+ this.ready = true;
212
+ this.lastError = undefined;
213
+ this.onReadyChange?.(true);
214
+ }
215
+ resolvePendingRequest(event) {
216
+ const requestId = getEventRequestId(event);
217
+ if (!requestId)
218
+ return;
219
+ const pending = this.pendingRequests.get(requestId);
220
+ if (!pending || pending.expectedEventName !== event.name)
221
+ return;
222
+ window.clearTimeout(pending.timeoutId);
223
+ this.pendingRequests.delete(requestId);
224
+ pending.resolve(event.payload);
225
+ }
226
+ rejectPendingRequests(error) {
227
+ for (const [, pending] of this.pendingRequests) {
228
+ window.clearTimeout(pending.timeoutId);
229
+ pending.reject(error);
230
+ }
231
+ this.pendingRequests.clear();
232
+ }
233
+ armReadyTimeout() {
234
+ this.clearReadyTimeout();
235
+ if (this.readyTimeoutMs <= 0)
236
+ return;
237
+ this.readyTimeoutId = window.setTimeout(() => {
238
+ this.readyTimeoutId = undefined;
239
+ if (this.ready)
240
+ return;
241
+ this.clearHelloHandshake();
242
+ this.status = "unreachable";
243
+ const message = "Couldn't reach the editing host bridge - it may be missing or outdated.";
244
+ this.lastError = { message, at: Date.now() };
245
+ this.onError?.(new Error(message), this);
246
+ }, this.readyTimeoutMs);
247
+ }
248
+ clearReadyTimeout() {
249
+ if (this.readyTimeoutId === undefined)
250
+ return;
251
+ window.clearTimeout(this.readyTimeoutId);
252
+ this.readyTimeoutId = undefined;
253
+ }
254
+ armHelloHandshake() {
255
+ this.clearHelloHandshake();
256
+ // The host posts `ready` only once on load. If this client attached after
257
+ // that (a reconnect or a late attach), it would never see `ready` while
258
+ // still receiving the ongoing event stream. Proactively ask the host to
259
+ // re-announce by sending `hello` until we receive a `ready`.
260
+ this.sendHello();
261
+ this.helloIntervalId = window.setInterval(() => {
262
+ if (this.ready) {
263
+ this.clearHelloHandshake();
264
+ return;
265
+ }
266
+ this.sendHello();
267
+ }, 300);
268
+ }
269
+ sendHello() {
270
+ this.sendCommand("hello", this.bridgeUrl ? { bridgeUrl: this.bridgeUrl } : {});
271
+ }
272
+ clearHelloHandshake() {
273
+ if (this.helloIntervalId === undefined)
274
+ return;
275
+ window.clearInterval(this.helloIntervalId);
276
+ this.helloIntervalId = undefined;
277
+ }
278
+ getAllowedOrigins() {
279
+ const configuredOrigin = this.getConfiguredHostOrigin();
280
+ const origins = [...this.allowedHostOrigins];
281
+ if (configuredOrigin)
282
+ origins.push(configuredOrigin);
283
+ if (this.hostOrigin)
284
+ origins.push(this.hostOrigin);
285
+ return origins.filter((origin, index) => origin &&
286
+ origins.findIndex((candidate) => candidate === origin) === index);
287
+ }
288
+ getConfiguredHostOrigin() {
289
+ const src = this.iframe.getAttribute("src");
290
+ if (!src)
291
+ return undefined;
292
+ try {
293
+ const origin = new URL(src, window.location.href).origin;
294
+ if (this.allowedHostOrigins.length === 0 ||
295
+ this.allowedHostOrigins.some((allowed) => isAllowedOrigin(origin, [allowed]))) {
296
+ return origin;
297
+ }
298
+ }
299
+ catch {
300
+ return undefined;
301
+ }
302
+ return undefined;
303
+ }
304
+ }
305
+ function getReadyVersion(event) {
306
+ return event.payload.version ?? event.version;
307
+ }
308
+ function extractPayloadRequestId(payload) {
309
+ if (!payload || typeof payload !== "object" || !("requestId" in payload)) {
310
+ return undefined;
311
+ }
312
+ const requestId = payload.requestId;
313
+ return typeof requestId === "string" && requestId.length > 0
314
+ ? requestId
315
+ : undefined;
316
+ }
317
+ function getEventRequestId(event) {
318
+ const payloadRequestId = extractPayloadRequestId(event.payload);
319
+ if (payloadRequestId)
320
+ return payloadRequestId;
321
+ return event.requestId;
322
+ }
323
+ function createRequestId() {
324
+ const cryptoObject = globalThis.crypto;
325
+ if (cryptoObject?.randomUUID) {
326
+ return cryptoObject.randomUUID();
327
+ }
328
+ return `bridge-request-${Date.now().toString(36)}-${Math.random()
329
+ .toString(36)
330
+ .slice(2)}`;
331
+ }
332
+ function isBridgeDebugEnabled() {
333
+ try {
334
+ const params = new URLSearchParams(window.location.search);
335
+ if (params.get("parhelia_bridge_debug") === "1")
336
+ return true;
337
+ const stored = window.localStorage.getItem("parhelia:bridge:debug");
338
+ return stored === "1" || stored === "true";
339
+ }
340
+ catch {
341
+ return false;
342
+ }
343
+ }
344
+ function logBridgeMessage(direction, message) {
345
+ if (!shouldLogBridgeMessage(message))
346
+ return;
347
+ const safeMessage = redactSensitiveBridgeFields(message);
348
+ const name = safeMessage &&
349
+ typeof safeMessage === "object" &&
350
+ "name" in safeMessage &&
351
+ typeof safeMessage.name === "string"
352
+ ? `: ${safeMessage.name}`
353
+ : "";
354
+ console.log(`[Parhelia bridge message] ${direction}${name}`, safeMessage);
355
+ console.groupCollapsed(`[Parhelia bridge] ${direction}${name}`);
356
+ console.log(safeMessage);
357
+ console.groupEnd();
358
+ }
359
+ function shouldLogBridgeMessage(message) {
360
+ if (!isBridgeDebugEnabled())
361
+ return false;
362
+ if (!isHighFrequencyBridgeMessage(message))
363
+ return true;
364
+ return isVerboseBridgeDebugEnabled();
365
+ }
366
+ function isHighFrequencyBridgeMessage(message) {
367
+ if (!message || typeof message !== "object" || !("name" in message)) {
368
+ return false;
369
+ }
370
+ return (message.name === "scrollChanged" ||
371
+ message.name === "geometryUpdated" ||
372
+ message.name === "domUpdated" ||
373
+ message.name === "selectionChanged");
374
+ }
375
+ function isVerboseBridgeDebugEnabled() {
376
+ try {
377
+ const params = new URLSearchParams(window.location.search);
378
+ if (params.get("parhelia_bridge_debug") === "verbose")
379
+ return true;
380
+ if (params.get("parhelia_bridge_verbose") === "1")
381
+ return true;
382
+ const stored = window.localStorage.getItem("parhelia:bridge:debug:verbose");
383
+ return stored === "1" || stored === "true";
384
+ }
385
+ catch {
386
+ return false;
387
+ }
388
+ }
389
+ function logBridgeDiagnostic(message, details) {
390
+ if (!isBridgeDebugEnabled())
391
+ return;
392
+ if (details === undefined) {
393
+ console.debug(`[Parhelia bridge] ${message}`);
394
+ return;
395
+ }
396
+ console.debug(`[Parhelia bridge] ${message}`, redactSensitiveBridgeFields(details));
397
+ }
398
+ function redactSensitiveBridgeFields(value) {
399
+ if (Array.isArray(value)) {
400
+ return value.map(redactSensitiveBridgeFields);
401
+ }
402
+ if (!value || typeof value !== "object") {
403
+ return value;
404
+ }
405
+ const result = {};
406
+ for (const [key, nestedValue] of Object.entries(value)) {
407
+ if (/token|secret|signedContext|sessionId/i.test(key)) {
408
+ result[key] = "[redacted]";
409
+ }
410
+ else {
411
+ result[key] = redactSensitiveBridgeFields(nestedValue);
412
+ }
413
+ }
414
+ return result;
415
+ }
416
+ //# sourceMappingURL=BridgeClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BridgeClient.js","sourceRoot":"","sources":["../../../src/editor/bridge/BridgeClient.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,11 @@ export type WindowSize = {
16
16
  height: number;
17
17
  };
18
18
  export type InsertingState = {
19
- positionElement: Element;
19
+ position?: {
20
+ x: number;
21
+ y: number;
22
+ };
23
+ positionElement?: Element;
20
24
  positionAnchor: "left" | "right" | "top" | "bottom";
21
25
  };
22
26
  export type WebSocketMessage = {