@@ -34,34 +34,42 @@ export function validateViewer(
3434 dataVersion = parseFloat ( metadata . multiscales [ 0 ] . version ) ;
3535 }
3636
37- if ( dataVersion !== null ) {
38- if (
39- ! viewer . capabilities . ome_zarr_versions ||
40- viewer . capabilities . ome_zarr_versions . length === 0
41- ) {
42- errors . push ( {
43- capability : 'ome_zarr_versions' ,
44- message : `Viewer does not specify OME-Zarr version support (data is v${ dataVersion } )` ,
45- required : dataVersion ,
46- found : [ ]
47- } ) ;
48- } else if ( ! viewer . capabilities . ome_zarr_versions . includes ( dataVersion ) ) {
49- errors . push ( {
50- capability : 'ome_zarr_versions' ,
51- message : `Viewer does not support OME-Zarr v${ dataVersion } (supports: ${ viewer . capabilities . ome_zarr_versions . join ( ', ' ) } )` ,
52- required : dataVersion ,
53- found : viewer . capabilities . ome_zarr_versions
54- } ) ;
55- }
37+ if ( dataVersion === null ) {
38+ errors . push ( {
39+ capability : 'ome_zarr_versions' ,
40+ message : 'Metadata does not specify an OME-Zarr version' ,
41+ required : 'version' ,
42+ found : null
43+ } ) ;
44+ } else if (
45+ ! viewer . capabilities . ome_zarr_versions ||
46+ viewer . capabilities . ome_zarr_versions . length === 0
47+ ) {
48+ errors . push ( {
49+ capability : 'ome_zarr_versions' ,
50+ message : `Viewer does not specify OME-Zarr version support (data is v${ dataVersion } )` ,
51+ required : dataVersion ,
52+ found : [ ]
53+ } ) ;
54+ } else if ( ! viewer . capabilities . ome_zarr_versions . includes ( dataVersion ) ) {
55+ errors . push ( {
56+ capability : 'ome_zarr_versions' ,
57+ message : `Viewer does not support OME-Zarr v${ dataVersion } (supports: ${ viewer . capabilities . ome_zarr_versions . join ( ', ' ) } )` ,
58+ required : dataVersion ,
59+ found : viewer . capabilities . ome_zarr_versions
60+ } ) ;
5661 }
5762
5863 // Check compression codecs
5964 if ( metadata . compressor ) {
6065 const codec = metadata . compressor . id || metadata . compressor ;
61- if (
62- viewer . capabilities . compression_codecs &&
63- ! viewer . capabilities . compression_codecs . includes ( codec )
64- ) {
66+ if ( ! viewer . capabilities . compression_codecs ) {
67+ // Viewer doesn't declare codec support - can't guarantee compatibility
68+ warnings . push ( {
69+ capability : 'compression_codecs' ,
70+ message : `Data uses codec '${ codec } ' but viewer doesn't declare codec support - compatibility unknown`
71+ } ) ;
72+ } else if ( ! viewer . capabilities . compression_codecs . includes ( codec ) ) {
6573 errors . push ( {
6674 capability : 'compression_codecs' ,
6775 message : `Viewer does not support compression codec: ${ codec } ` ,
0 commit comments