@molecule/app-ide-react 1.18.1 → 1.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ChatPanel.d.ts.map +1 -1
- package/dist/components/ChatPanel.js +8 -3
- package/dist/components/ChatPanel.js.map +1 -1
- package/dist/components/HelpCard.d.ts.map +1 -1
- package/dist/components/HelpCard.js +3 -2
- package/dist/components/HelpCard.js.map +1 -1
- package/dist/components/MarkdownContent.d.ts +18 -0
- package/dist/components/MarkdownContent.d.ts.map +1 -1
- package/dist/components/MarkdownContent.js +27 -2
- package/dist/components/MarkdownContent.js.map +1 -1
- package/dist/components/PreviewPanel.d.ts +17 -0
- package/dist/components/PreviewPanel.d.ts.map +1 -1
- package/dist/components/PreviewPanel.js +34 -6
- package/dist/components/PreviewPanel.js.map +1 -1
- package/dist/components/StreamingIndicator.d.ts.map +1 -1
- package/dist/components/StreamingIndicator.js +13 -9
- package/dist/components/StreamingIndicator.js.map +1 -1
- package/dist/components/TestStatusBar.d.ts +5 -3
- package/dist/components/TestStatusBar.d.ts.map +1 -1
- package/dist/components/TestStatusBar.js +14 -19
- package/dist/components/TestStatusBar.js.map +1 -1
- package/dist/components/chat-models-utilities.d.ts +2 -2
- package/dist/components/chat-models-utilities.d.ts.map +1 -1
- package/dist/components/chat-models-utilities.js +11 -5
- package/dist/components/chat-models-utilities.js.map +1 -1
- package/dist/components/tests-bar-utilities.d.ts +3 -1
- package/dist/components/tests-bar-utilities.d.ts.map +1 -1
- package/dist/components/tests-bar-utilities.js +3 -1
- package/dist/components/tests-bar-utilities.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpCard.d.ts","sourceRoot":"","sources":["../../src/components/HelpCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAMhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"HelpCard.d.ts","sourceRoot":"","sources":["../../src/components/HelpCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAMhC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAMjE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,SAA8B,EAC9B,WAAkC,EAClC,YAAY,EACZ,aAAa,GACd,EAAE;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,aAAa,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAA;CAC5D,GAAG,GAAG,CAAC,OAAO,CAqId"}
|
|
@@ -5,6 +5,7 @@ import { getClassMap } from '@molecule/app-ui';
|
|
|
5
5
|
import { chatCardStyle } from './chat-card-style.js';
|
|
6
6
|
import { HELP_INTRO, HELP_MODES, HELP_SHORTCUTS, HELP_TIPS } from './chat-help-utilities.js';
|
|
7
7
|
import { Icon } from './Icon.js';
|
|
8
|
+
import { isAllowedLinkHref } from './MarkdownContent.js';
|
|
8
9
|
/**
|
|
9
10
|
* The `/help` high-level guide card.
|
|
10
11
|
*
|
|
@@ -23,10 +24,10 @@ export function HelpCard({ isLight, agentName = DEFAULT_AGENT_NAME, productName
|
|
|
23
24
|
return (_jsxs("div", { "data-mol-id": "help-card", className: cm.textSize('xs'),
|
|
24
25
|
// Shared card chrome: subtle primary tint + a uniform 1px border on all sides.
|
|
25
26
|
// One source of truth with the other chat info cards (chat-card-style).
|
|
26
|
-
style: { ...chatCardStyle(), marginBottom: 16 }, children: [_jsx("div", { className: sectionHeading, style: { marginBottom: 4 }, children: t('ide.chat.help.card.heading', undefined, { defaultValue: 'Help' }) }), _jsx("div", { className: cm.textMuted, style: { lineHeight: 1.4, marginBottom: 4 }, children: t(HELP_INTRO.key, { agentName, productName }, { defaultValue: HELP_INTRO.defaultValue }) }), _jsx("div", { className: sectionHeading, style: { marginTop: 12, marginBottom: 4 }, children: t('ide.chat.help.card.modesTitle', undefined, { defaultValue: 'Modes' }) }), _jsx("div", { "data-mol-id": "help-modes", children: HELP_MODES.map((helpMode) => (_jsxs("div", { "data-mol-id": `help-mode-${helpMode.id}`, style: { display: 'flex', alignItems: 'flex-start', gap: 8, padding: '3px 0' }, children: [_jsx(Icon, { name: helpMode.icon, size: 14, "aria-hidden": "true", "data-mol-id": `help-mode-icon-${helpMode.id}`, className: cm.textMuted, style: { flexShrink: 0, marginTop: 2, opacity: 0.8 } }), _jsx("span", { className: cm.textMuted, style: { flex: 1, lineHeight: 1.4 }, children: t(helpMode.key, { agentName }, { defaultValue: helpMode.defaultValue }) })] }, helpMode.id))) }), _jsx("div", { className: sectionHeading, style: { marginTop: 12, marginBottom: 4 }, children: t('ide.chat.help.card.tipsTitle', undefined, { defaultValue: 'Tips' }) }), _jsxs("div", { "data-mol-id": "help-tips", children: [HELP_TIPS.map((tip) => (_jsx("div", { "data-mol-id": `help-tip-${tip.id}`, className: cm.textMuted, style: { padding: '2px 0', lineHeight: 1.4 }, children: t(tip.key, { agentName }, { defaultValue: tip.defaultValue }) }, tip.id))), _jsx("div", { className: cm.textMuted, style: { marginTop: 6, lineHeight: 1.4 }, children: t(HELP_SHORTCUTS.key, undefined, { defaultValue: HELP_SHORTCUTS.defaultValue }) })] }), upgradeLines && upgradeLines.length > 0 && (_jsxs("div", { "data-mol-id": "help-upgrade", className: cm.borderT, style: { marginTop: 10, paddingTop: 8, borderColor: rowBorder }, children: [upgradeLines.map((line, i) => (_jsx("div", { className: cm.textMuted, style: { lineHeight: 1.4 }, children: line }, i))), upgradeActions.length > 0 && (_jsx("div", { style: { display: 'flex', gap: 8, marginTop: 8, flexWrap: 'wrap' }, children: upgradeActions.map((act, i) => act.href ? (_jsx("a", { "data-mol-id": "help-upgrade-action", href: act.href, target: act.href.startsWith('http') ? '_blank' : undefined, rel: act.href.startsWith('http') ? 'noopener noreferrer' : undefined,
|
|
27
|
+
style: { ...chatCardStyle(), marginBottom: 16 }, children: [_jsx("div", { className: sectionHeading, style: { marginBottom: 4 }, children: t('ide.chat.help.card.heading', undefined, { defaultValue: 'Help' }) }), _jsx("div", { className: cm.textMuted, style: { lineHeight: 1.4, marginBottom: 4 }, children: t(HELP_INTRO.key, { agentName, productName }, { defaultValue: HELP_INTRO.defaultValue }) }), _jsx("div", { className: sectionHeading, style: { marginTop: 12, marginBottom: 4 }, children: t('ide.chat.help.card.modesTitle', undefined, { defaultValue: 'Modes' }) }), _jsx("div", { "data-mol-id": "help-modes", children: HELP_MODES.map((helpMode) => (_jsxs("div", { "data-mol-id": `help-mode-${helpMode.id}`, style: { display: 'flex', alignItems: 'flex-start', gap: 8, padding: '3px 0' }, children: [_jsx(Icon, { name: helpMode.icon, size: 14, "aria-hidden": "true", "data-mol-id": `help-mode-icon-${helpMode.id}`, className: cm.textMuted, style: { flexShrink: 0, marginTop: 2, opacity: 0.8 } }), _jsx("span", { className: cm.textMuted, style: { flex: 1, lineHeight: 1.4 }, children: t(helpMode.key, { agentName }, { defaultValue: helpMode.defaultValue }) })] }, helpMode.id))) }), _jsx("div", { className: sectionHeading, style: { marginTop: 12, marginBottom: 4 }, children: t('ide.chat.help.card.tipsTitle', undefined, { defaultValue: 'Tips' }) }), _jsxs("div", { "data-mol-id": "help-tips", children: [HELP_TIPS.map((tip) => (_jsx("div", { "data-mol-id": `help-tip-${tip.id}`, className: cm.textMuted, style: { padding: '2px 0', lineHeight: 1.4 }, children: t(tip.key, { agentName }, { defaultValue: tip.defaultValue }) }, tip.id))), _jsx("div", { className: cm.textMuted, style: { marginTop: 6, lineHeight: 1.4 }, children: t(HELP_SHORTCUTS.key, undefined, { defaultValue: HELP_SHORTCUTS.defaultValue }) })] }), upgradeLines && upgradeLines.length > 0 && (_jsxs("div", { "data-mol-id": "help-upgrade", className: cm.borderT, style: { marginTop: 10, paddingTop: 8, borderColor: rowBorder }, children: [upgradeLines.map((line, i) => (_jsx("div", { className: cm.textMuted, style: { lineHeight: 1.4 }, children: line }, i))), upgradeActions.length > 0 && (_jsx("div", { style: { display: 'flex', gap: 8, marginTop: 8, flexWrap: 'wrap' }, children: upgradeActions.map((act, i) => act.href ? (isAllowedLinkHref(act.href) ? (_jsx("a", { "data-mol-id": "help-upgrade-action", href: act.href, target: act.href.startsWith('http') ? '_blank' : undefined, rel: act.href.startsWith('http') ? 'noopener noreferrer' : undefined,
|
|
27
28
|
// The anchor form of the SAME CTA as the button below it —
|
|
28
29
|
// same classes, same touch floor, so a link-backed upgrade
|
|
29
30
|
// action is indistinguishable from a handler-backed one.
|
|
30
|
-
className: cm.cn(cm.button({ variant: 'solid', color: 'primary', size: 'xs' }), cm.touchTargetCompact), children: act.label }, i)) : (_jsx("button", { type: "button", "data-mol-id": "help-upgrade-action", onClick: act.onClick, className: cm.cn(cm.button({ variant: 'solid', color: 'primary', size: 'xs' }), cm.touchTargetCompact), children: act.label }, i))) }))] }))] }));
|
|
31
|
+
className: cm.cn(cm.button({ variant: 'solid', color: 'primary', size: 'xs' }), cm.touchTargetCompact), children: act.label }, i)) : (_jsx("span", { "data-mol-id": "help-upgrade-action", children: act.label }, i))) : (_jsx("button", { type: "button", "data-mol-id": "help-upgrade-action", onClick: act.onClick, className: cm.cn(cm.button({ variant: 'solid', color: 'primary', size: 'xs' }), cm.touchTargetCompact), children: act.label }, i))) }))] }))] }));
|
|
31
32
|
}
|
|
32
33
|
//# sourceMappingURL=HelpCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpCard.js","sourceRoot":"","sources":["../../src/components/HelpCard.tsx"],"names":[],"mappings":";AAqBA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAC5F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"HelpCard.js","sourceRoot":"","sources":["../../src/components/HelpCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,24 @@
|
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
10
|
import type { JSX } from 'react';
|
|
11
|
+
/**
|
|
12
|
+
* Whether `href` may become an `<a href>` anchor at all. A URL whose scheme is
|
|
13
|
+
* NOT on the allowlist (`javascript:`, `data:`, `vbscript:`, …) must render as
|
|
14
|
+
* inert text everywhere model-authored links render — markdown links, ChatPanel
|
|
15
|
+
* card actions and the HelpCard's action anchors included. A href with NO
|
|
16
|
+
* scheme (app routes, `#anchor`, `//host`) carries nothing executable, so it is
|
|
17
|
+
* allowed through this gate; whether it anchors or navigates the preview is the
|
|
18
|
+
* caller's decision.
|
|
19
|
+
*
|
|
20
|
+
* Browsers strip tab/CR/LF anywhere in a URL (and leading C0 controls/space)
|
|
21
|
+
* BEFORE scheme parsing, so `java\tscript:…` executes as `javascript:`. This
|
|
22
|
+
* gate strips those characters first and reads the scheme the way the browser
|
|
23
|
+
* will.
|
|
24
|
+
*
|
|
25
|
+
* @param href - The raw href from model output or a card action.
|
|
26
|
+
* @returns True when the href may render as an anchor.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isAllowedLinkHref(href: string): boolean;
|
|
11
29
|
/** Props for {@link MarkdownContent}. */
|
|
12
30
|
export interface MarkdownContentProps {
|
|
13
31
|
/** The raw markdown text to render. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownContent.d.ts","sourceRoot":"","sources":["../../src/components/MarkdownContent.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"MarkdownContent.d.ts","sourceRoot":"","sources":["../../src/components/MarkdownContent.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,OAAO,CAAA;AAkB3C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQvD;AAmYD,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,wIAOzB,oBAAoB,KAAG,GAAG,CAAC,OAAO,CAwGnC,CAAA"}
|
|
@@ -12,6 +12,30 @@ import { StreamingIndicator } from './StreamingIndicator.js';
|
|
|
12
12
|
* `isSafeUrl`).
|
|
13
13
|
*/
|
|
14
14
|
const EXTERNAL_LINK_SCHEMES = new Set(['http:', 'https:', 'mailto:']);
|
|
15
|
+
/**
|
|
16
|
+
* Whether `href` may become an `<a href>` anchor at all. A URL whose scheme is
|
|
17
|
+
* NOT on the allowlist (`javascript:`, `data:`, `vbscript:`, …) must render as
|
|
18
|
+
* inert text everywhere model-authored links render — markdown links, ChatPanel
|
|
19
|
+
* card actions and the HelpCard's action anchors included. A href with NO
|
|
20
|
+
* scheme (app routes, `#anchor`, `//host`) carries nothing executable, so it is
|
|
21
|
+
* allowed through this gate; whether it anchors or navigates the preview is the
|
|
22
|
+
* caller's decision.
|
|
23
|
+
*
|
|
24
|
+
* Browsers strip tab/CR/LF anywhere in a URL (and leading C0 controls/space)
|
|
25
|
+
* BEFORE scheme parsing, so `java\tscript:…` executes as `javascript:`. This
|
|
26
|
+
* gate strips those characters first and reads the scheme the way the browser
|
|
27
|
+
* will.
|
|
28
|
+
*
|
|
29
|
+
* @param href - The raw href from model output or a card action.
|
|
30
|
+
* @returns True when the href may render as an anchor.
|
|
31
|
+
*/
|
|
32
|
+
export function isAllowedLinkHref(href) {
|
|
33
|
+
const cleaned = href.replace(/[\t\r\n]/g, '').replace(
|
|
34
|
+
// eslint-disable-next-line no-control-regex -- strip LEADING C0 controls/space the way a URL parser does before scheme parsing
|
|
35
|
+
/^[\u0000-\u0020]+/, '');
|
|
36
|
+
const scheme = /^([a-z][a-z0-9+.-]*:)/i.exec(cleaned)?.[1]?.toLowerCase();
|
|
37
|
+
return scheme == null || EXTERNAL_LINK_SCHEMES.has(scheme);
|
|
38
|
+
}
|
|
15
39
|
/**
|
|
16
40
|
* Renders a single markdown link `[label](href)`. A ROUTE link — any app-internal path, whether
|
|
17
41
|
* written with a leading slash (`/transactions`) or without (`transactions`, `courses/:id`) — is a
|
|
@@ -44,11 +68,12 @@ function LinkToken({ label, href, onNavigatePreview, }) {
|
|
|
44
68
|
// broken by control characters (`java\tscript:`) fails the regex entirely, so it falls to
|
|
45
69
|
// route handling — it can never slip into the anchor branch.
|
|
46
70
|
const scheme = /^([a-z][a-z0-9+.-]*:)/i.exec(href)?.[1]?.toLowerCase();
|
|
47
|
-
const
|
|
71
|
+
const allowlisted = isAllowedLinkHref(href);
|
|
72
|
+
const isExternal = (scheme != null && allowlisted) || href.startsWith('//');
|
|
48
73
|
const isAnchor = href.startsWith('#');
|
|
49
74
|
// Unapproved scheme → inert text: no anchor (model output must not be able to mint a
|
|
50
75
|
// `javascript:` href) and no preview button (a `data:`/`ftp:` string is not an app route).
|
|
51
|
-
if (scheme != null && !
|
|
76
|
+
if (scheme != null && !allowlisted)
|
|
52
77
|
return _jsx(_Fragment, { children: label });
|
|
53
78
|
if (!isExternal && !isAnchor) {
|
|
54
79
|
// Normalize to a root-relative path so the handler always receives a clean `/route`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownContent.js","sourceRoot":"","sources":["../../src/components/MarkdownContent.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MarkdownContent.js","sourceRoot":"","sources":["../../src/components/MarkdownContent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,23 @@ import type { PreviewPanelProps } from '../types.js';
|
|
|
63
63
|
* @returns `true` when the browser will show the document itself, with no bridge.
|
|
64
64
|
*/
|
|
65
65
|
export declare function isRawDocumentUrl(url: string): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* The targetOrigin for an OUTBOUND postMessage into the preview iframe: the
|
|
68
|
+
* iframe's CURRENT src origin when that parses, `'*'` only when it doesn't.
|
|
69
|
+
*
|
|
70
|
+
* Why: the inbound side of this bridge is gated on window identity
|
|
71
|
+
* (`event.source === iframe.contentWindow`), but the outbound side grew six
|
|
72
|
+
* wildcard posts — commands that can drive the page (click/fill/navigate)
|
|
73
|
+
* deliverable to WHATEVER page ever ended up in this frame. Targeting the
|
|
74
|
+
* frame's current src origin pins delivery to the page the panel believes it
|
|
75
|
+
* is talking to. The fallback stays `'*'` (never break the bridge: a stranded
|
|
76
|
+
* command loop is the whole preview going dark), and an unparsable src is
|
|
77
|
+
* exactly the case where no origin is known anyway.
|
|
78
|
+
*
|
|
79
|
+
* @param iframe - The preview iframe element (may be null pre-mount).
|
|
80
|
+
* @returns The targetOrigin string for `postMessage`.
|
|
81
|
+
*/
|
|
82
|
+
export declare function previewTargetOrigin(iframe: HTMLIFrameElement | null): string;
|
|
66
83
|
/**
|
|
67
84
|
* Live preview panel with iframe, device frame selector, and URL bar.
|
|
68
85
|
* @param props - Component props.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewPanel.d.ts","sourceRoot":"","sources":["../../src/components/PreviewPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,EAAE,KAAK,GAAG,EAA4C,MAAM,OAAO,CAAA;AAW1E,OAAO,KAAK,EAAE,iBAAiB,EAAuC,MAAM,aAAa,CAAA;AAmOzF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAYrD;AA2KD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,MAAM,GACP,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"PreviewPanel.d.ts","sourceRoot":"","sources":["../../src/components/PreviewPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,EAAE,KAAK,GAAG,EAA4C,MAAM,OAAO,CAAA;AAW1E,OAAO,KAAK,EAAE,iBAAiB,EAAuC,MAAM,aAAa,CAAA;AAmOzF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAYrD;AA2KD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,MAAM,CAU5E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,MAAM,GACP,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CA49DjC;yBA1+De,YAAY"}
|
|
@@ -450,6 +450,34 @@ async function isServerUp(url, externalSignal) {
|
|
|
450
450
|
externalSignal.removeEventListener('abort', onExternalAbort);
|
|
451
451
|
}
|
|
452
452
|
}
|
|
453
|
+
/**
|
|
454
|
+
* The targetOrigin for an OUTBOUND postMessage into the preview iframe: the
|
|
455
|
+
* iframe's CURRENT src origin when that parses, `'*'` only when it doesn't.
|
|
456
|
+
*
|
|
457
|
+
* Why: the inbound side of this bridge is gated on window identity
|
|
458
|
+
* (`event.source === iframe.contentWindow`), but the outbound side grew six
|
|
459
|
+
* wildcard posts — commands that can drive the page (click/fill/navigate)
|
|
460
|
+
* deliverable to WHATEVER page ever ended up in this frame. Targeting the
|
|
461
|
+
* frame's current src origin pins delivery to the page the panel believes it
|
|
462
|
+
* is talking to. The fallback stays `'*'` (never break the bridge: a stranded
|
|
463
|
+
* command loop is the whole preview going dark), and an unparsable src is
|
|
464
|
+
* exactly the case where no origin is known anyway.
|
|
465
|
+
*
|
|
466
|
+
* @param iframe - The preview iframe element (may be null pre-mount).
|
|
467
|
+
* @returns The targetOrigin string for `postMessage`.
|
|
468
|
+
*/
|
|
469
|
+
export function previewTargetOrigin(iframe) {
|
|
470
|
+
const src = iframe?.getAttribute('src');
|
|
471
|
+
if (src) {
|
|
472
|
+
try {
|
|
473
|
+
return new URL(src).origin;
|
|
474
|
+
}
|
|
475
|
+
catch (_error) {
|
|
476
|
+
// Unparsable src — no known origin to target; keep the bridge alive.
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
return '*';
|
|
480
|
+
}
|
|
453
481
|
/**
|
|
454
482
|
* Live preview panel with iframe, device frame selector, and URL bar.
|
|
455
483
|
* @param props - Component props.
|
|
@@ -506,7 +534,7 @@ export function PreviewPanel({ loadingIndicator, restartingIndicator, className,
|
|
|
506
534
|
// hit to a Next.js/Nuxt/SvelteKit route commonly takes 10-30s (and an auth redirect compiles a
|
|
507
535
|
// SECOND route), so a 12s window timed out navigate_preview on every imported meta-framework app.
|
|
508
536
|
const post = () => {
|
|
509
|
-
iframeRef.current?.contentWindow?.postMessage(payload,
|
|
537
|
+
iframeRef.current?.contentWindow?.postMessage(payload, previewTargetOrigin(iframeRef.current));
|
|
510
538
|
};
|
|
511
539
|
post();
|
|
512
540
|
const deadline = Date.now() + 40_000;
|
|
@@ -1209,7 +1237,7 @@ export function PreviewPanel({ loadingIndicator, restartingIndicator, className,
|
|
|
1209
1237
|
event.data?.type !== 'molecule:ui-result' &&
|
|
1210
1238
|
Date.now() <= pendingUi.deadline &&
|
|
1211
1239
|
!uiResolvedRef.current.has(pendingUi.payload.id)) {
|
|
1212
|
-
previewWindow.postMessage(pendingUi.payload,
|
|
1240
|
+
previewWindow.postMessage(pendingUi.payload, previewTargetOrigin(iframeRef.current));
|
|
1213
1241
|
}
|
|
1214
1242
|
// A spec asked for a viewport. The e2e preview client posts this and then
|
|
1215
1243
|
// polls its own innerWidth until the host honours it (up to 4s), so all
|
|
@@ -1353,11 +1381,11 @@ export function PreviewPanel({ loadingIndicator, restartingIndicator, className,
|
|
|
1353
1381
|
height: Number.isFinite(height) && height > 0 ? Math.round(height) : 844,
|
|
1354
1382
|
};
|
|
1355
1383
|
setRequestedSize(next);
|
|
1356
|
-
previewWindow.postMessage({ type: 'molecule:viewport-result', id: event.data.id, ...next },
|
|
1384
|
+
previewWindow.postMessage({ type: 'molecule:viewport-result', id: event.data.id, ...next }, previewTargetOrigin(iframeRef.current));
|
|
1357
1385
|
}
|
|
1358
1386
|
else {
|
|
1359
1387
|
setRequestedSize(null);
|
|
1360
|
-
previewWindow.postMessage({ type: 'molecule:viewport-result', id: event.data.id, width: null, height: null },
|
|
1388
|
+
previewWindow.postMessage({ type: 'molecule:viewport-result', id: event.data.id, width: null, height: null }, previewTargetOrigin(iframeRef.current));
|
|
1361
1389
|
}
|
|
1362
1390
|
}
|
|
1363
1391
|
else if (event.data?.type === 'molecule:heartbeat') {
|
|
@@ -1464,7 +1492,7 @@ export function PreviewPanel({ loadingIndicator, restartingIndicator, className,
|
|
|
1464
1492
|
// with the bridge alive the whole time (X0 rehearsal 28, G46).
|
|
1465
1493
|
const pending = pendingUiPostRef.current;
|
|
1466
1494
|
if (pending && Date.now() <= pending.deadline) {
|
|
1467
|
-
iframeRef.current?.contentWindow?.postMessage(pending.payload,
|
|
1495
|
+
iframeRef.current?.contentWindow?.postMessage(pending.payload, previewTargetOrigin(iframeRef.current));
|
|
1468
1496
|
}
|
|
1469
1497
|
// The document that just loaded is the raw file a link click announced (feed.xml,
|
|
1470
1498
|
// provenance.json, llms.txt): the browser shows it with its own viewer and no bridge will
|
|
@@ -1952,7 +1980,7 @@ export function PreviewPanel({ loadingIndicator, restartingIndicator, className,
|
|
|
1952
1980
|
// the preview has reported navigations (history is built from them), so the
|
|
1953
1981
|
// scaffold nav-bridge receiver is always present when these fire.
|
|
1954
1982
|
const postNavCommand = useCallback((action) => {
|
|
1955
|
-
iframeRef.current?.contentWindow?.postMessage({ type: 'molecule:nav-command', action },
|
|
1983
|
+
iframeRef.current?.contentWindow?.postMessage({ type: 'molecule:nav-command', action }, previewTargetOrigin(iframeRef.current));
|
|
1956
1984
|
}, []);
|
|
1957
1985
|
const handleBack = useCallback(() => {
|
|
1958
1986
|
back();
|