@@ -294,5 +294,31 @@ export function extension(buddy: CLI): void {
294294 log . success ( options . validateOnly
295295 ? `Validated Safari ${ result . artifacts . map ( artifact => artifact . platform ) . join ( ' + ' ) } archives (build ${ result . buildNumber } )`
296296 : `Uploaded and selected Safari ${ result . attachments . map ( attachment => attachment . platform ) . join ( ' + ' ) } build ${ result . buildNumber } in App Store Connect` )
297+ if ( result . appStoreSubmission ?. reviewSubmissionIds . length )
298+ log . success ( `Submitted ${ result . appStoreSubmission . reviewSubmissionIds . length } Safari version(s) to App Review` )
299+ } )
300+
301+ buddy
302+ . command ( 'extension:safari:submit' , 'Synchronize metadata and submit an existing Safari version to App Review' )
303+ . option ( '--version <version>' , 'Marketing version to submit (defaults to package.json)' )
304+ . option ( '--api-key-id <id>' , 'App Store Connect API key ID' )
305+ . option ( '--api-issuer-id <id>' , 'App Store Connect API issuer ID' )
306+ . option ( '--api-key-path <path>' , 'Path to the App Store Connect AuthKey_*.p8 file' )
307+ . option ( '--platform <platform>' , 'Submit macos, ios, or all (defaults to config safariPlatforms)' )
308+ . option ( '--prepare-only' , 'Synchronize the listing without submitting it for review' )
309+ . action ( async ( options : { version ?: string , apiKeyId ?: string , apiIssuerId ?: string , apiKeyPath ?: string , platform ?: string , prepareOnly ?: boolean } ) => {
310+ const { submitSafariAppStore } = await import ( '@stacksjs/browser-extension' )
311+ const { config, version } = await load ( )
312+ const result = await submitSafariAppStore ( config , {
313+ version : options . version ?? version ,
314+ keyId : options . apiKeyId ,
315+ issuerId : options . apiIssuerId ,
316+ keyPath : options . apiKeyPath ,
317+ platforms : parseSafariPlatforms ( options . platform ) ,
318+ submit : ! options . prepareOnly ,
319+ } )
320+ log . success ( `Synchronized ${ result . versions . map ( item => item . platform ) . join ( ' + ' ) } App Store listings` )
321+ if ( result . reviewSubmissionIds . length )
322+ log . success ( `Submitted ${ result . reviewSubmissionIds . length } Safari version(s) to App Review` )
297323 } )
298324}
0 commit comments