@playdrop/playdrop-cli 0.7.22 → 0.7.23
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/config/client-meta.json
CHANGED
|
@@ -65,6 +65,7 @@ const MIN_DIMENSION = 16;
|
|
|
65
65
|
const MAX_DIMENSION = 8192;
|
|
66
66
|
const MAX_FPS = 120;
|
|
67
67
|
const SUPPORTED_MACOS_PREFIX = '26.4';
|
|
68
|
+
const LISTING_CAPTURE_HOOK_TIMEOUT_MS = 60000;
|
|
68
69
|
function resolveListingCaptureRouteSegment(previewable) {
|
|
69
70
|
return previewable ? 'dev-preview' : 'dev';
|
|
70
71
|
}
|
|
@@ -172,9 +173,18 @@ async function ensureOutputPaths(appName, explicitOutputDir) {
|
|
|
172
173
|
finalVideoPath: (0, node_path_1.join)(outputDir, 'listing.mp4'),
|
|
173
174
|
};
|
|
174
175
|
}
|
|
175
|
-
async function
|
|
176
|
+
async function grantListingBrowserLocalNetworkAccess(context, origin) {
|
|
177
|
+
const grantPermissions = context.grantPermissions;
|
|
178
|
+
if (typeof grantPermissions !== 'function') {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
await grantPermissions.call(context, ['local-network-access'], { origin });
|
|
182
|
+
}
|
|
183
|
+
async function launchListingBrowser(initialViewport, automationOrigin) {
|
|
176
184
|
const playwright = await Promise.resolve().then(() => __importStar(require('playwright-core')));
|
|
177
185
|
const args = [
|
|
186
|
+
'--no-sandbox',
|
|
187
|
+
'--disable-web-security',
|
|
178
188
|
'--app=about:blank',
|
|
179
189
|
`--window-size=${initialViewport.width},${initialViewport.height}`,
|
|
180
190
|
'--autoplay-policy=no-user-gesture-required',
|
|
@@ -198,6 +208,7 @@ async function launchListingBrowser(initialViewport) {
|
|
|
198
208
|
}
|
|
199
209
|
const browser = await playwright.chromium.connect(server.wsEndpoint());
|
|
200
210
|
const context = await browser.newContext({ viewport: null });
|
|
211
|
+
await grantListingBrowserLocalNetworkAccess(context, automationOrigin);
|
|
201
212
|
const page = await context.newPage();
|
|
202
213
|
return {
|
|
203
214
|
browser,
|
|
@@ -310,11 +321,11 @@ async function waitForHostedGameFrame(page, timeoutMs) {
|
|
|
310
321
|
throw new Error('hosted_game_frame_missing');
|
|
311
322
|
}
|
|
312
323
|
async function prepareHostedListingScene(page, sceneId) {
|
|
313
|
-
const frame = await waitForHostedGameFrame(page,
|
|
324
|
+
const frame = await waitForHostedGameFrame(page, LISTING_CAPTURE_HOOK_TIMEOUT_MS);
|
|
314
325
|
await frame.waitForFunction(() => {
|
|
315
326
|
const captureWindow = window;
|
|
316
327
|
return typeof captureWindow.__listingCapture?.prepare === 'function';
|
|
317
|
-
}, undefined, { timeout:
|
|
328
|
+
}, undefined, { timeout: LISTING_CAPTURE_HOOK_TIMEOUT_MS });
|
|
318
329
|
await frame.evaluate(async (requestedSceneId) => {
|
|
319
330
|
const captureWindow = window;
|
|
320
331
|
const hook = captureWindow.__listingCapture;
|
|
@@ -797,13 +808,15 @@ async function captureListing(targetArg, options = {}) {
|
|
|
797
808
|
}
|
|
798
809
|
const webBase = envConfig.webBase ?? 'https://www.playdrop.ai';
|
|
799
810
|
const routeSegment = resolveListingCaptureRouteSegment(Boolean(registeredApp?.previewable));
|
|
800
|
-
const
|
|
811
|
+
const frameUrlObject = new URL(`${(0, appUrls_1.normalizePlaydropWebBase)(webBase)}/creators/${encodeURIComponent(currentUsername)}/apps/${appTypeSlug}/${encodeURIComponent(appName)}/${routeSegment}`);
|
|
812
|
+
frameUrlObject.searchParams.set('launchCheck', '1');
|
|
813
|
+
const frameUrl = frameUrlObject.toString();
|
|
801
814
|
const captureSceneId = resolveListingCaptureSceneId(parsedOptions.width, parsedOptions.height);
|
|
802
815
|
const shouldExportPreviewAudio = parsedOptions.audio && routeSegment === 'dev-preview';
|
|
803
816
|
browserHandle = await launchListingBrowser({
|
|
804
817
|
width: parsedOptions.width,
|
|
805
818
|
height: parsedOptions.height,
|
|
806
|
-
});
|
|
819
|
+
}, frameUrlObject.origin);
|
|
807
820
|
await browserHandle.page.goto(frameUrl, { waitUntil: 'domcontentloaded' });
|
|
808
821
|
await browserHandle.page.waitForTimeout(1000);
|
|
809
822
|
if (routeSegment === 'dev-preview') {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@playdrop/playdrop-cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.23",
|
|
4
4
|
"description": "Official Playdrop CLI for publishing browser games, creator apps, and AI-generated game assets on playdrop.ai",
|
|
5
5
|
"homepage": "https://www.playdrop.ai",
|
|
6
6
|
"repository": {
|