@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.
@@ -1,5 +1,6 @@
1
1
  {
2
- "version": "0.7.22",
2
+ "version": "0.7.23",
3
+ "runtimeSdkVersion": "0.7.21",
3
4
  "build": 1,
4
5
  "clients": {
5
6
  "all": {
@@ -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 launchListingBrowser(initialViewport) {
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, 20000);
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: 20000 });
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 frameUrl = `${webBase}/creators/${encodeURIComponent(currentUsername)}/apps/${appTypeSlug}/${encodeURIComponent(appName)}/${routeSegment}`;
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') {
@@ -1,5 +1,6 @@
1
1
  {
2
- "version": "0.7.22",
2
+ "version": "0.7.23",
3
+ "runtimeSdkVersion": "0.7.21",
3
4
  "build": 1,
4
5
  "clients": {
5
6
  "all": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playdrop/playdrop-cli",
3
- "version": "0.7.22",
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": {