@bubblydoo/uxp-puppeteer-transport
v0.0.4
Published
[](https://www.npmjs.com/package/@bubblydoo/uxp-puppeteer-transport)
Keywords
Readme
@bubblydoo/uxp-puppeteer-transport
Puppeteer ConnectionTransport adapter for Adobe UXP CDP endpoints.
Install
pnpm add @bubblydoo/uxp-puppeteer-transport puppeteer-coreUsage
import puppeteer from 'puppeteer-core';
import { createUxpPuppeteerTransport } from '@bubblydoo/uxp-puppeteer-transport';
const transport = await createUxpPuppeteerTransport(cdpUrl, executionContextId);
const browser = await puppeteer.connect({ transport, defaultViewport: null });
const [page] = await browser.pages();
const value = await page.evaluate(() => 1 + 1);Why this exists
Puppeteer expects a browser-level CDP target (Target.*, Browser.*), but Photoshop exposes a page-level UXP endpoint. This transport bridges that mismatch by emulating browser-target behavior and forwarding compatible runtime commands.
Unexpected but useful details
- Synthesizes
Target.targetCreated/Target.attachedToTargetand related browser-level responses sopuppeteer.connect()can succeed. - Includes a promise-resolution workaround for UXP CDP by polling
Runtime.getPropertieswhenawaitPromiseis unreliable. - Re-wraps forwarded responses with a synthetic
sessionIdso Puppeteer can route messages through a stable session.
