{
  "version": 3,
  "sources": ["../../src/modules/payload-viewer-sandbox/NativeViewerTree.tsx", "../../src/modules/payload-viewer-sandbox/PayloadViewerSandboxSession.ts", "../../src/modules/payload-viewer-sandbox/SandboxedNativePayloadViewer.tsx"],
  "sourcesContent": ["/* eslint-disable react-x/no-array-index-key -- Validated protocol nodes do not expose stable ids; each path is scoped to an immutable render tree. */\nimport {\n  Box, Button, Chip, Stack, Table, TableBody, TableCell, TableHead, TableRow, Typography,\n} from '@mui/material'\nimport type { ViewerNodeV1, ViewerToneV1 } from '@xyo-network/payload-viewer-protocol'\nimport type { FC } from 'react'\n\nimport type { NativeViewerActionV1 } from './types.ts'\n\n/** Props for {@link NativeViewerTree}. */\nexport interface NativeViewerTreeProps {\n  node: ViewerNodeV1\n  onAction: (action: NativeViewerActionV1) => void\n}\n\nconst chipColor = (tone?: ViewerToneV1) => {\n  switch (tone) {\n    case 'danger': return 'error'\n    case 'info': return 'info'\n    case 'success': return 'success'\n    case 'warning': return 'warning'\n    default: return 'default'\n  }\n}\n\nconst NativeViewerNode: FC<NativeViewerTreeProps & { path: string }> = ({\n  node, onAction, path,\n}) => {\n  switch (node.type) {\n    case 'action': return (\n      <Button onClick={() => onAction({\n        actionId: node.actionId, intent: node.intent, value: node.value,\n      })}\n      >\n        {node.label}\n      </Button>\n    )\n    case 'badge': return <Chip color={chipColor(node.tone)} label={node.label} size=\"small\" />\n    case 'chart': return (\n      <Stack aria-label={`${node.chartType} chart`} role=\"img\" spacing={1}>\n        {node.series.map((series, index) => (\n          <Typography key={`${path}.series.${index}`} variant=\"body2\">\n            {`${series.label}: ${series.values.map((value, valueIndex) => `${node.labels[valueIndex] ?? valueIndex} ${value}`).join(', ')}`}\n          </Typography>\n        ))}\n      </Stack>\n    )\n    case 'property': return (\n      <Stack direction=\"row\" spacing={1} sx={{ alignItems: 'baseline', flexWrap: 'wrap' }}>\n        <Typography color=\"text.secondary\" variant=\"body2\">{node.label}</Typography>\n        <Typography sx={{ overflowWrap: 'anywhere' }}>{node.value}</Typography>\n        {node.copyable\n          ? (\n              <Button\n                size=\"small\"\n                onClick={() => onAction({\n                  actionId: `${path}.copy`, intent: 'clipboard.write', value: node.value,\n                })}\n              >\n                Copy\n              </Button>\n            )\n          : null}\n      </Stack>\n    )\n    case 'stack': return (\n      <Stack direction={node.direction} spacing={0} sx={{ gap: node.gap ?? 0 }}>\n        {node.children.map((child, index) => (\n          <NativeViewerNode key={`${path}.${index}`} node={child} onAction={onAction} path={`${path}.${index}`} />\n        ))}\n      </Stack>\n    )\n    case 'table': return (\n      <Box sx={{ overflowX: 'auto' }}>\n        <Table size=\"small\">\n          <TableHead>\n            <TableRow>\n              {node.columns.map(column => (\n                <TableCell\n                  key={column.id}\n                  align={column.align === 'end' ? 'right' : column.align === 'start' ? 'left' : column.align}\n                >\n                  {column.label}\n                </TableCell>\n              ))}\n            </TableRow>\n          </TableHead>\n          <TableBody>\n            {node.rows.map((row, rowIndex) => (\n              <TableRow key={`${path}.row.${rowIndex}`}>\n                {row.map((value, columnIndex) => (\n                  <TableCell key={`${path}.row.${rowIndex}.${columnIndex}`}>{value === null ? '' : String(value)}</TableCell>\n                ))}\n              </TableRow>\n            ))}\n          </TableBody>\n        </Table>\n      </Box>\n    )\n    case 'text': return (\n      <Typography variant={node.variant === 'heading' ? 'h6' : node.variant === 'caption' ? 'caption' : 'body1'}>\n        {node.value}\n      </Typography>\n    )\n  }\n}\n\n/** Maps validated semantic nodes to host-owned React and MUI components. */\nexport const NativeViewerTree: FC<NativeViewerTreeProps> = ({ node, onAction }) => (\n  <NativeViewerNode node={node} onAction={onAction} path=\"root\" />\n)\n", "/* eslint-disable @typescript-eslint/member-ordering -- Keep session lifecycle methods in call order. */\nimport {\n  HOST_API_VERSION_V1,\n  type HostDisposeMessageV1,\n  type HostEnvironmentMessageV1,\n  type HostInitMessageV1,\n  type HostRenderMessageV1,\n  type HostToPluginMessageV1,\n  type JsonValue,\n  type PayloadViewerConnectMessageV1,\n  type PluginToHostMessageV1,\n  validatePayloadViewerConnectMessageV1,\n  validateProtocolMessageV1,\n  type ViewerEnvironmentV1,\n  type ViewerIdV1,\n  type ViewerPermissionV1,\n  type ViewerSurfaceV1,\n} from '@xyo-network/payload-viewer-protocol'\n\nimport type {\n  NativeViewerActionV1, NativeViewerRenderResultV1, PayloadViewerSandboxDiagnosticV1,\n} from './types.ts'\n\n/** Options for constructing a {@link PayloadViewerSandboxSessionV1}. */\nexport interface PayloadViewerSandboxSessionOptionsV1 {\n  environment: ViewerEnvironmentV1\n  grantedPermissions: readonly ViewerPermissionV1[]\n  messageChannelFactory?: () => MessageChannel\n  messageIdFactory?: () => string\n  onAction?: (action: NativeViewerActionV1) => void\n  onDiagnostic?: (diagnostic: PayloadViewerSandboxDiagnosticV1) => void\n  renderTimeoutMs?: number\n  sessionTimeoutMs?: number\n  surface: ViewerSurfaceV1\n  targetWindow: WindowProxy\n  viewerId: ViewerIdV1\n}\n\ninterface PendingRenderV1 {\n  reject: (error: Error) => void\n  resolve: (result: NativeViewerRenderResultV1) => void\n  timeout: ReturnType<typeof setTimeout>\n}\n\n/** Error thrown when a payload viewer sandbox session or render times out. */\nexport class PayloadViewerSandboxTimeoutError extends Error {\n  constructor(message: string) {\n    super(message)\n    this.name = 'PayloadViewerSandboxTimeoutError'\n  }\n}\n\n/** Host-side private MessageChannel session for one selected sandbox viewer. */\nexport class PayloadViewerSandboxSessionV1 {\n  private environment: ViewerEnvironmentV1\n  private readonly grantedPermissions: ReadonlySet<ViewerPermissionV1>\n  private readonly messageChannelFactory: () => MessageChannel\n  private readonly messageIdFactory: () => string\n  private readonly onAction?: (action: NativeViewerActionV1) => void\n  private readonly onDiagnostic?: (diagnostic: PayloadViewerSandboxDiagnosticV1) => void\n  private readonly pendingRenders = new Map<string, PendingRenderV1>()\n  private readonly port: MessagePort\n  private readonly renderTimeoutMs: number\n  private readonly sessionId: string\n  private readonly sessionTimeoutMs: number\n  private readonly surface: ViewerSurfaceV1\n  private readonly targetWindow: WindowProxy\n  private readonly viewerId: ViewerIdV1\n  private disposed = false\n  private ready = false\n  private startPromise?: Promise<void>\n\n  constructor({\n    environment,\n    grantedPermissions,\n    messageChannelFactory = () => new MessageChannel(),\n    messageIdFactory = () => crypto.randomUUID(),\n    onAction,\n    onDiagnostic,\n    renderTimeoutMs = 2000,\n    sessionTimeoutMs = 2000,\n    surface,\n    targetWindow,\n    viewerId,\n  }: PayloadViewerSandboxSessionOptionsV1) {\n    this.environment = environment\n    this.grantedPermissions = new Set(grantedPermissions)\n    this.messageChannelFactory = messageChannelFactory\n    this.messageIdFactory = messageIdFactory\n    this.onAction = onAction\n    this.onDiagnostic = onDiagnostic\n    this.renderTimeoutMs = renderTimeoutMs\n    this.sessionId = this.messageIdFactory()\n    this.sessionTimeoutMs = sessionTimeoutMs\n    this.surface = surface\n    this.targetWindow = targetWindow\n    this.viewerId = viewerId\n    const channel = this.messageChannelFactory()\n    this.port = channel.port1\n    this.port.addEventListener('message', this.handlePluginMessage)\n    this.port.start()\n\n    const connect: PayloadViewerConnectMessageV1 = {\n      ...this.envelope(),\n      type: 'host.connect',\n      viewerId,\n    }\n    if (!validatePayloadViewerConnectMessageV1(connect).valid) {\n      throw new TypeError('Unable to construct a valid payload viewer session')\n    }\n    this.targetWindow.postMessage(connect, '*', [channel.port2])\n  }\n\n  start() {\n    this.assertActive()\n    this.startPromise ??= new Promise<void>((resolve, reject) => {\n      const timeout = setTimeout(() => {\n        const error = new PayloadViewerSandboxTimeoutError('Payload viewer session initialization timed out')\n        this.report({\n          code: 'session-timeout', error, message: error.message,\n        })\n        reject(error)\n        this.dispose()\n      }, this.sessionTimeoutMs)\n      const onReady = () => {\n        clearTimeout(timeout)\n        this.ready = true\n        resolve()\n      }\n      this.readyCallback = onReady\n      this.post({\n        ...this.envelope(),\n        environment: this.environment,\n        grantedPermissions: [...this.grantedPermissions],\n        surface: this.surface,\n        type: 'host.init',\n        viewerId: this.viewerId,\n      } satisfies HostInitMessageV1)\n    })\n    return this.startPromise\n  }\n\n  async render(payload: Record<string, JsonValue>): Promise<NativeViewerRenderResultV1> {\n    await this.start()\n    this.assertActive()\n    const requestId = this.messageIdFactory()\n    const promise = new Promise<NativeViewerRenderResultV1>((resolve, reject) => {\n      const timeout = setTimeout(() => {\n        this.pendingRenders.delete(requestId)\n        const error = new PayloadViewerSandboxTimeoutError('Payload viewer render timed out')\n        this.report({\n          code: 'render-timeout', error, message: error.message,\n        })\n        reject(error)\n        this.dispose()\n      }, this.renderTimeoutMs)\n      this.pendingRenders.set(requestId, {\n        reject, resolve, timeout,\n      })\n    })\n    this.post({\n      ...this.envelope(), payload, requestId, type: 'host.render',\n    } satisfies HostRenderMessageV1)\n    return await promise\n  }\n\n  updateEnvironment(environment: ViewerEnvironmentV1) {\n    this.environment = environment\n    if (!this.ready || this.disposed) return\n    this.post({\n      ...this.envelope(), environment, type: 'host.environment',\n    } satisfies HostEnvironmentMessageV1)\n  }\n\n  dispose() {\n    if (this.disposed) return\n    if (this.ready) {\n      this.post({ ...this.envelope(), type: 'host.dispose' } satisfies HostDisposeMessageV1)\n    }\n    this.disposed = true\n    this.port.close()\n    for (const pending of this.pendingRenders.values()) {\n      clearTimeout(pending.timeout)\n      pending.reject(new Error('Payload viewer session was disposed'))\n    }\n    this.pendingRenders.clear()\n  }\n\n  private readyCallback?: () => void\n\n  private readonly handlePluginMessage = (event: MessageEvent<unknown>) => {\n    const validation = validateProtocolMessageV1(event.data)\n    if (!validation.valid || !validation.value.type.startsWith('plugin.') || validation.value.sessionId !== this.sessionId) {\n      this.report({ code: 'message-rejected', message: 'Rejected invalid payload viewer plugin message' })\n      return\n    }\n    this.handleValidatedPluginMessage(validation.value as PluginToHostMessageV1)\n  }\n\n  private handleValidatedPluginMessage(message: PluginToHostMessageV1) {\n    switch (message.type) {\n      case 'plugin.ready': {\n        if (message.viewerId !== this.viewerId || this.readyCallback === undefined) {\n          this.report({ code: 'unexpected-message', message: 'Rejected unexpected viewer-ready message' })\n          return\n        }\n        const ready = this.readyCallback\n        this.readyCallback = undefined\n        ready()\n        break\n      }\n      case 'plugin.render': {\n        const pending = this.pendingRenders.get(message.requestId)\n        if (!pending) {\n          this.report({ code: 'unexpected-message', message: 'Rejected render response for an unknown request' })\n          return\n        }\n        clearTimeout(pending.timeout)\n        this.pendingRenders.delete(message.requestId)\n        pending.resolve({ requestId: message.requestId, tree: message.tree })\n        break\n      }\n      case 'plugin.error': {\n        this.report({ code: 'plugin-error', message: message.message })\n        if (message.requestId) {\n          const pending = this.pendingRenders.get(message.requestId)\n          if (pending) {\n            clearTimeout(pending.timeout)\n            this.pendingRenders.delete(message.requestId)\n            pending.reject(new Error(message.message))\n          }\n        }\n        break\n      }\n      case 'plugin.action': {\n        if (!this.grantedPermissions.has(message.intent)) {\n          this.report({ code: 'action-denied', message: `Viewer action is not permitted: ${message.intent}` })\n          return\n        }\n        this.onAction?.({\n          actionId: message.actionId,\n          intent: message.intent,\n          value: message.value,\n        })\n        break\n      }\n      case 'plugin.resize': {\n        this.report({ code: 'unexpected-message', message: 'Native-tree viewers cannot resize the sandbox iframe' })\n        break\n      }\n    }\n  }\n\n  private post(message: HostToPluginMessageV1) {\n    const validation = validateProtocolMessageV1(message)\n    if (!validation.valid || !validation.value.type.startsWith('host.')) {\n      throw new TypeError('Unable to construct a valid payload viewer host message')\n    }\n    this.port.postMessage(validation.value)\n  }\n\n  private envelope() {\n    return {\n      messageId: this.messageIdFactory(),\n      protocolVersion: HOST_API_VERSION_V1,\n      sessionId: this.sessionId,\n    } as const\n  }\n\n  private assertActive() {\n    if (this.disposed) throw new Error('Payload viewer session is disposed')\n  }\n\n  private report(diagnostic: PayloadViewerSandboxDiagnosticV1) {\n    this.onDiagnostic?.(diagnostic)\n  }\n}\n", "import {\n  Alert, AlertTitle, Box, Button, CircularProgress, Stack, Typography,\n} from '@mui/material'\nimport type {\n  JsonValue, ViewerEnvironmentV1, ViewerIdV1, ViewerNodeV1, ViewerPermissionV1, ViewerSurfaceV1,\n} from '@xyo-network/payload-viewer-protocol'\nimport type { FC } from 'react'\nimport {\n  useCallback, useEffect, useMemo, useRef, useState,\n} from 'react'\n\nimport { NativeViewerTree } from './NativeViewerTree.tsx'\nimport { PayloadViewerSandboxSessionV1 } from './PayloadViewerSandboxSession.ts'\nimport type { NativeViewerActionV1, PayloadViewerSandboxDiagnosticV1 } from './types.ts'\n\n/** Props for {@link SandboxedNativePayloadViewer}. */\nexport interface SandboxedNativePayloadViewerProps {\n  environment: ViewerEnvironmentV1\n  grantedPermissions: readonly ViewerPermissionV1[]\n  onAction?: (action: NativeViewerActionV1) => void\n  onDiagnostic?: (diagnostic: PayloadViewerSandboxDiagnosticV1) => void\n  onError?: (error: unknown) => void\n  payload: Record<string, JsonValue>\n  renderTimeoutMs?: number\n  runtimeUrl: string\n  sessionTimeoutMs?: number\n  surface: ViewerSurfaceV1\n  title: string\n  viewerId: ViewerIdV1\n}\n\ntype SandboxState = 'failed' | 'loading' | 'ready'\n\n/** Renders a selected untrusted native viewer through an opaque-origin iframe. */\nexport const SandboxedNativePayloadViewer: FC<SandboxedNativePayloadViewerProps> = ({\n  environment,\n  grantedPermissions,\n  onAction,\n  onDiagnostic,\n  onError,\n  payload,\n  renderTimeoutMs,\n  runtimeUrl,\n  sessionTimeoutMs,\n  surface,\n  title,\n  viewerId,\n}) => {\n  const containerRef = useRef<HTMLDivElement>(null)\n  const iframeRef = useRef<HTMLIFrameElement>(null)\n  const payloadRef = useRef(payload)\n  const sessionRef = useRef<PayloadViewerSandboxSessionV1>(undefined)\n  const [attempt, setAttempt] = useState(0)\n  const [container, setContainer] = useState(environment.container)\n  const [error, setError] = useState<unknown>()\n  const [sessionVersion, setSessionVersion] = useState(0)\n  const [state, setState] = useState<SandboxState>('loading')\n  const [tree, setTree] = useState<ViewerNodeV1>()\n  const resolvedEnvironment = useMemo(() => ({ ...environment, container }), [container, environment])\n  const payloadKey = useMemo(() => JSON.stringify(payload), [payload])\n  const environmentRef = useRef(resolvedEnvironment)\n  const permissionKey = grantedPermissions.join('|')\n\n  useEffect(() => {\n    payloadRef.current = payload\n  }, [payload])\n\n  useEffect(() => {\n    environmentRef.current = resolvedEnvironment\n  }, [resolvedEnvironment])\n\n  useEffect(() => {\n    const element = containerRef.current\n    if (!element) return\n    const observer = new ResizeObserver(([entry]) => {\n      if (!entry) return\n      setContainer({ height: entry.contentRect.height, width: entry.contentRect.width })\n    })\n    observer.observe(element)\n    return () => observer.disconnect()\n  }, [])\n\n  useEffect(() => sessionRef.current?.updateEnvironment(resolvedEnvironment), [resolvedEnvironment])\n\n  useEffect(() => () => sessionRef.current?.dispose(), [])\n\n  const fail = useCallback((failure: unknown) => {\n    setError(failure)\n    setState('failed')\n    onError?.(failure)\n  }, [onError])\n\n  const load = useCallback(() => {\n    const frameWindow = iframeRef.current?.contentWindow\n    if (!frameWindow) return\n    sessionRef.current?.dispose()\n    setError(undefined)\n    setState('loading')\n    setTree(undefined)\n\n    const runtimeOrigin = new URL(runtimeUrl, globalThis.location.href).origin\n    if (runtimeOrigin === globalThis.location.origin) {\n      const failure = new Error('Payload viewer runtime must use a dedicated origin')\n      onDiagnostic?.({\n        code: 'runtime-origin-rejected', error: failure, message: failure.message,\n      })\n      fail(failure)\n      return\n    }\n\n    const session = new PayloadViewerSandboxSessionV1({\n      environment: environmentRef.current,\n      grantedPermissions,\n      onAction,\n      onDiagnostic,\n      renderTimeoutMs,\n      sessionTimeoutMs,\n      surface,\n      targetWindow: frameWindow,\n      viewerId,\n    })\n    sessionRef.current = session\n    void session.start()\n      .then(() => {\n        if (sessionRef.current !== session) return\n        setSessionVersion(value => value + 1)\n      })\n      .catch(fail)\n  }, [fail, grantedPermissions, onAction, onDiagnostic, renderTimeoutMs, runtimeUrl, sessionTimeoutMs, surface, viewerId])\n\n  useEffect(() => {\n    const session = sessionRef.current\n    if (!session || sessionVersion === 0) return\n    // The selected session changed; reset the host-owned view before requesting its first tree.\n    // eslint-disable-next-line react-x/set-state-in-effect\n    setError(undefined)\n    // eslint-disable-next-line react-x/set-state-in-effect\n    setState('loading')\n    // eslint-disable-next-line react-x/set-state-in-effect\n    setTree(undefined)\n    void session.render(payloadRef.current)\n      .then((result) => {\n        if (sessionRef.current !== session) return\n        setTree(result.tree)\n        setState('ready')\n      })\n      .catch(fail)\n  }, [fail, payloadKey, sessionVersion])\n\n  const handleAction = useCallback((action: NativeViewerActionV1) => {\n    if (!grantedPermissions.includes(action.intent)) {\n      onDiagnostic?.({ code: 'action-denied', message: `Viewer action is not permitted: ${action.intent}` })\n      return\n    }\n    onAction?.(action)\n  }, [grantedPermissions, onAction, onDiagnostic])\n\n  return (\n    <Box ref={containerRef} data-payload-viewer-sandbox-state={state} data-viewer-id={viewerId} sx={{ minHeight: 72 }}>\n      <iframe\n        key={`${runtimeUrl}:${viewerId}:${permissionKey}:${attempt}`}\n        ref={iframeRef}\n        allow=\"\"\n        aria-hidden=\"true\"\n        onLoad={load}\n        referrerPolicy=\"no-referrer\"\n        sandbox=\"allow-scripts\"\n        src={runtimeUrl}\n        tabIndex={-1}\n        title={`${title} isolated runtime`}\n        style={{\n          border: 0, height: 0, position: 'absolute', width: 0,\n        }}\n      />\n      {state === 'loading'\n        ? (\n            <Stack direction=\"row\" spacing={1.5} sx={{ alignItems: 'center' }}>\n              <CircularProgress size={24} />\n              <Typography>{`Loading ${title}\u2026`}</Typography>\n            </Stack>\n          )\n        : null}\n      {state === 'failed'\n        ? (\n            <Alert\n              severity=\"error\"\n              action={<Button color=\"inherit\" onClick={() => setAttempt(value => value + 1)}>Retry</Button>}\n            >\n              <AlertTitle>Viewer unavailable</AlertTitle>\n              {error instanceof Error ? error.message : 'The sandboxed viewer failed.'}\n            </Alert>\n          )\n        : null}\n      {state === 'ready' && tree ? <NativeViewerTree node={tree} onAction={handleAction} /> : null}\n    </Box>\n  )\n}\n"],
  "mappings": "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",
  "names": ["Box", "Button", "Stack", "Typography", "jsx", "jsxs", "Box", "Stack", "Typography", "Button"]
}
