// Read-only: the production releases waiting in Publishing overview (managed publishing), from the tracks and the public store page. import type { ShipConfig } from '../lib/config'; import { need } from '../lib/ctx'; import { type ReadyChange, readyToPublish, readyUndetermined } from '../lib/play-publish'; import { playPublicPage } from '../lib/play-public'; import { playClient } from './client'; export async function readyFromApi(root: string, config: ShipConfig): Promise { const pkg = need(config.play?.packageName, 'play.packageName'); const play = await playClient(root, pkg); let out: ReadyChange[] & { undetermined?: boolean } = []; await play.read(async id => { const tracks = (await play.call<{ tracks?: unknown[] }>('GET', `${play.API}/edits/${id}/tracks`)).tracks ?? []; const publicPage = await playPublicPage(play.packageName); const data = { tracks, publicPage, managedPublishing: config.play?.managedPublishing ?? null }; out = readyToPublish(data); out.undetermined = !out.length && readyUndetermined(data); }); return out; }