@@ -146,7 +146,7 @@ export async function resultToAssetMap({
146146 dbg ( 'Runtime validation statuses by manifest label' , runtimeValidationStatuses ) ;
147147
148148 const activeManifestValidationResults =
149- manifestStore ?. validation_results ?. activeManifest ;
149+ manifestStore ?. validation_results ?. activeManifest ?? undefined ;
150150
151151 const rootValidationStatuses =
152152 runtimeValidationStatuses [ activeManifestLabel ] ?? [ ] ;
@@ -260,7 +260,7 @@ export async function resultToAssetMap({
260260 manifestData : await getManifestData ( manifest , rootValidationResult ) ,
261261 dataType : null ,
262262 validationResult : rootValidationResult ,
263- trustSource : ( manifest as Manifest & { trust_source ?: string } ) . trust_source || 'none' ,
263+ trustSource : ( ( manifest as Manifest & { trust_source ?: 'legacy' | 'none' | 'official' } ) . trust_source || 'none' ) as 'legacy' | 'none' | 'official ',
264264 } ;
265265
266266 if ( thumbnail ?. dispose ) {
@@ -288,7 +288,7 @@ export async function resultToAssetMap({
288288 ) ;
289289
290290 const activeManifestValidationResults =
291- ingredient . validation_results ?. activeManifest ;
291+ ingredient . validation_results ?. activeManifest ?? undefined ;
292292
293293 let validationResult = selectValidationResult (
294294 ingredient . validation_status || [ ] ,
@@ -318,7 +318,7 @@ export async function resultToAssetMap({
318318 manifestData : await getManifestData ( ingredientManifest , validationResult ) ,
319319 dataType : getIngredientDataType ( ingredient ) ,
320320 validationResult,
321- trustSource : ( ingredient as Ingredient & { trust_source ?: string } ) ?. trust_source || 'none' ,
321+ trustSource : ( ( ingredient as Ingredient & { trust_source ?: 'legacy' | 'none' | 'official' } ) ?. trust_source || 'none' ) as 'legacy' | 'none' | 'official ',
322322 } ;
323323
324324 if ( thumbnail ?. dispose ) {
@@ -338,9 +338,8 @@ export async function resultToAssetMap({
338338 return null ;
339339 }
340340
341- type ClaimGeneratorEntry = { name ?: string ; version ?: string | null ; icon ?: Thumbnail | null } ;
342-
343- function formattedGeneratorInfo ( claim_generator : ClaimGeneratorEntry ) : ClaimGeneratorEntry {
341+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
342+ function formattedGeneratorInfo ( claim_generator : any ) : any {
344343 const version = claim_generator ?. version ;
345344 claim_generator . version = version ?. replace ( / \( [ ^ ( ) ] * \) / g, '' ) ;
346345
@@ -384,9 +383,25 @@ export async function resultToAssetMap({
384383 ) ;
385384
386385 if ( editsAndActivity ) {
387- const actionsAssertion = manifest . assertions ?. [ 'c2pa.actions' ] as { data ?: { metadata ?: Record < string , unknown > } } | undefined ;
386+ const assertions = manifest . assertions ;
387+
388+ let actionsAssertion : unknown ;
389+
390+ if ( Array . isArray ( assertions ) ) {
391+ actionsAssertion = assertions . find (
392+ ( a ) : a is { label : string ; data : unknown } =>
393+ typeof a === 'object' &&
394+ a !== null &&
395+ 'label' in a &&
396+ typeof ( a as Record < string , unknown > ) [ 'label' ] === 'string' &&
397+ ( a as Record < string , unknown > ) [ 'label' ] === 'c2pa.actions'
398+ ) ;
399+ } else if ( assertions && typeof assertions === 'object' ) {
400+ actionsAssertion = ( assertions as Record < string , unknown > ) [ 'c2pa.actions' ] ;
401+ }
402+
388403 const hasInference =
389- ! ! actionsAssertion ?. data ?. metadata ?. [ 'com.adobe.inference' ] ;
404+ ! ! ( actionsAssertion as { data ?: { metadata ?: Record < string , unknown > } } ) ?. data ?. metadata ?. [ 'com.adobe.inference' ] ;
390405
391406 const filteredEditsAndActivity = editsAndActivity . filter (
392407 ( value ) => ! ! value . label ,
0 commit comments