@fideus-labs/ngff-zarr 0.19.0 → 0.22.0

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.
Files changed (65) hide show
  1. package/README.md +1 -1
  2. package/esm/io/from_ngff_zarr-browser.d.ts +1 -1
  3. package/esm/io/from_ngff_zarr-browser.d.ts.map +1 -1
  4. package/esm/io/from_ngff_zarr-browser.js +33 -0
  5. package/esm/io/from_ngff_zarr-browser.js.map +1 -1
  6. package/esm/io/from_ngff_zarr.d.ts +1 -1
  7. package/esm/io/from_ngff_zarr.d.ts.map +1 -1
  8. package/esm/io/from_ngff_zarr.js +14 -6
  9. package/esm/io/from_ngff_zarr.js.map +1 -1
  10. package/esm/io/to_ngff_zarr-browser.d.ts +1 -5
  11. package/esm/io/to_ngff_zarr-browser.d.ts.map +1 -1
  12. package/esm/io/to_ngff_zarr-browser.js +55 -34
  13. package/esm/io/to_ngff_zarr-browser.js.map +1 -1
  14. package/esm/io/to_ngff_zarr.d.ts +2 -5
  15. package/esm/io/to_ngff_zarr.d.ts.map +1 -1
  16. package/esm/io/to_ngff_zarr.js +58 -37
  17. package/esm/io/to_ngff_zarr.js.map +1 -1
  18. package/esm/io/to_ngff_zarr_ozx_common.d.ts +8 -9
  19. package/esm/io/to_ngff_zarr_ozx_common.d.ts.map +1 -1
  20. package/esm/io/to_ngff_zarr_ozx_common.js +22 -18
  21. package/esm/io/to_ngff_zarr_ozx_common.js.map +1 -1
  22. package/esm/mod.d.ts +1 -1
  23. package/esm/mod.d.ts.map +1 -1
  24. package/esm/mod.js +1 -1
  25. package/esm/mod.js.map +1 -1
  26. package/esm/process/to_multiscales-shared.d.ts +9 -0
  27. package/esm/process/to_multiscales-shared.d.ts.map +1 -1
  28. package/esm/process/to_multiscales-shared.js +19 -3
  29. package/esm/process/to_multiscales-shared.js.map +1 -1
  30. package/esm/schemas/coordinate_systems.d.ts +2 -2
  31. package/esm/schemas/rfc4.d.ts +9 -9
  32. package/esm/schemas/rfc4.d.ts.map +1 -1
  33. package/esm/schemas/rfc4.js +6 -0
  34. package/esm/schemas/rfc4.js.map +1 -1
  35. package/esm/types/rfc4.d.ts +15 -5
  36. package/esm/types/rfc4.d.ts.map +1 -1
  37. package/esm/types/rfc4.js +37 -6
  38. package/esm/types/rfc4.js.map +1 -1
  39. package/esm/types/supported_versions.d.ts +23 -1
  40. package/esm/types/supported_versions.d.ts.map +1 -1
  41. package/esm/types/supported_versions.js +27 -1
  42. package/esm/types/supported_versions.js.map +1 -1
  43. package/esm/types/zarr_metadata.d.ts +93 -1
  44. package/esm/types/zarr_metadata.d.ts.map +1 -1
  45. package/esm/types/zarr_metadata.js +30 -0
  46. package/esm/types/zarr_metadata.js.map +1 -1
  47. package/esm/utils/from_zarr_attrs.d.ts +12 -0
  48. package/esm/utils/from_zarr_attrs.d.ts.map +1 -1
  49. package/esm/utils/from_zarr_attrs.js +239 -3
  50. package/esm/utils/from_zarr_attrs.js.map +1 -1
  51. package/esm/utils/parse_metadata.d.ts.map +1 -1
  52. package/esm/utils/parse_metadata.js +7 -1
  53. package/esm/utils/parse_metadata.js.map +1 -1
  54. package/esm/utils/rfc4_validation.d.ts.map +1 -1
  55. package/esm/utils/rfc4_validation.js +23 -1
  56. package/esm/utils/rfc4_validation.js.map +1 -1
  57. package/esm/utils/structural_validation.d.ts +46 -0
  58. package/esm/utils/structural_validation.d.ts.map +1 -1
  59. package/esm/utils/structural_validation.js +69 -0
  60. package/esm/utils/structural_validation.js.map +1 -1
  61. package/esm/utils/v06_metadata.d.ts +44 -0
  62. package/esm/utils/v06_metadata.d.ts.map +1 -0
  63. package/esm/utils/v06_metadata.js +293 -0
  64. package/esm/utils/v06_metadata.js.map +1 -0
  65. package/package.json +1 -1
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import * as zarr from "zarrita";
7
7
  import { SUPPORTED_DIMS } from "../types/zarr_metadata.js";
8
+ import { extractScaleTranslation, parseV06Transforms } from "./v06_metadata.js";
8
9
  import { NgffImage } from "../types/ngff_image.js";
9
10
  import { parseOmero } from "./parse_metadata.js";
10
11
  import { hasRfc4OrientationMetadata, validateRfc4Orientation, } from "./rfc4_validation.js";
@@ -32,6 +33,12 @@ const ORIENTATION_VALUE_MAP = {
32
33
  "caudal-to-cranial": AnatomicalOrientationValues.CaudalToCranial,
33
34
  "proximal-to-distal": AnatomicalOrientationValues.ProximalToDistal,
34
35
  "distal-to-proximal": AnatomicalOrientationValues.DistalToProximal,
36
+ "superficial-to-deep": AnatomicalOrientationValues.SuperficialToDeep,
37
+ "deep-to-superficial": AnatomicalOrientationValues.DeepToSuperficial,
38
+ "apical-to-basal": AnatomicalOrientationValues.ApicalToBasal,
39
+ "basal-to-apical": AnatomicalOrientationValues.BasalToApical,
40
+ "apex-to-base": AnatomicalOrientationValues.ApexToBase,
41
+ "base-to-apex": AnatomicalOrientationValues.BaseToApex,
35
42
  };
36
43
  /**
37
44
  * Extract anatomical orientations from axes metadata.
@@ -83,6 +90,26 @@ function isSpecVersionAtLeastV04(version) {
83
90
  // A NaN minor (e.g. "0.x") fails `minor >= 4`, so it needs no separate guard.
84
91
  return major > 0 || (major === 0 && minor >= 4);
85
92
  }
93
+ /**
94
+ * Recognized keys of a single `multiscales[]` entry. Any other key present in an
95
+ * entry is a leak -- a group-level `ome` / `multiscales` wrapper, a
96
+ * `zarr_format` byte that belongs on the enclosing Zarr v3 group, and so on --
97
+ * and is routed to `Metadata.extra` for the v0.5 namespacing rules to inspect.
98
+ * `omero` is absent on purpose: it is a sibling of `multiscales`, parsed
99
+ * separately, never a field of the entry. `@type` *is* recognized: the Python
100
+ * writer stamps the JSON-LD `@type` (`"ngff:Image"`) onto every entry, so it is
101
+ * a legitimate library-written key, not a leak.
102
+ */
103
+ const MULTISCALE_ENTRY_FIELDS = new Set([
104
+ "@type",
105
+ "version",
106
+ "name",
107
+ "axes",
108
+ "datasets",
109
+ "coordinateTransformations",
110
+ "type",
111
+ "metadata",
112
+ ]);
86
113
  /**
87
114
  * Parse Metadata and NgffImages from OME-Zarr v0.4 root attributes.
88
115
  *
@@ -298,13 +325,31 @@ export async function fromZarrAttrsV04(rootAttrs, store, validate = false) {
298
325
  });
299
326
  images.push(ngffImage);
300
327
  }
328
+ // Keys that a malformed or double-namespaced document leaked into the
329
+ // multiscale entry -- e.g. a group-level `ome` / `multiscales` wrapper, or a
330
+ // `zarr_format` byte that belongs on the enclosing Zarr v3 group, never on the
331
+ // entry. Captured verbatim so the v0.5 namespacing rules can flag them.
332
+ const extra = {};
333
+ for (const [key, value] of Object.entries(multiscalesMetadata)) {
334
+ if (!MULTISCALE_ENTRY_FIELDS.has(key)) {
335
+ extra[key] = value;
336
+ }
337
+ }
301
338
  // Build the metadata object - use spread to only include optional properties if defined
302
339
  const metadata = {
303
340
  axes,
304
341
  datasets,
305
342
  name: multiscalesMetadata.name ?? "image",
306
- version: multiscalesMetadata.version ?? "0.4",
343
+ // OME-Zarr v0.5 hoists the spec `version` to the group-level `ome`
344
+ // namespace; v0.4 carries it on each multiscale entry. Prefer the
345
+ // group-level value (which fromZarrAttrsV05 forwards as a top-level
346
+ // `version`) so the structural pass sees the true spec version -- which the
347
+ // v0.5 namespacing rules gate on. v0.4 has no top-level version, so this
348
+ // falls back to the entry's.
349
+ version: rootAttrs.version ??
350
+ multiscalesMetadata.version ?? "0.4",
307
351
  omero,
352
+ extra,
308
353
  coordinateTransformations: multiscalesMetadata.coordinateTransformations ??
309
354
  undefined,
310
355
  ...(multiscalesMetadata.type !== undefined &&
@@ -342,15 +387,25 @@ export async function fromZarrAttrsV05(rootAttrs, store, validate = false) {
342
387
  const omeData = rootAttrs.ome;
343
388
  let v04Attrs;
344
389
  if (omeData && "multiscales" in omeData) {
345
- // Standard v0.5 format with "ome" wrapper
390
+ // Standard v0.5 format with "ome" wrapper. Forward the hoisted
391
+ // `ome.version` as a top-level `version` so fromZarrAttrsV04 records the
392
+ // true spec version (v0.5), which the v0.5 namespacing rules gate on. This
393
+ // entry point definitionally handles v0.5, so default to "0.5" when
394
+ // `ome.version` is absent -- otherwise a malformed v0.5 store missing its
395
+ // version would fall back to "0.4" and skip the v0.5 namespacing rules
396
+ // during the structural pass (which runs before the version is corrected
397
+ // below).
346
398
  v04Attrs = {
399
+ version: omeData.version ?? "0.5",
347
400
  multiscales: omeData.multiscales,
348
401
  omero: omeData.omero ?? rootAttrs.omero,
349
402
  };
350
403
  }
351
404
  else if ("multiscales" in rootAttrs) {
352
- // Compatibility mode: multiscales at root level (as written by toNgffZarr)
405
+ // Compatibility mode: multiscales at root level (as written by toNgffZarr).
406
+ // Same v0.5 floor as the wrapped branch above.
353
407
  v04Attrs = {
408
+ version: rootAttrs.version ?? "0.5",
354
409
  multiscales: rootAttrs.multiscales,
355
410
  omero: rootAttrs.omero,
356
411
  };
@@ -363,4 +418,185 @@ export async function fromZarrAttrsV05(rootAttrs, store, validate = false) {
363
418
  result.metadata.version = "0.5";
364
419
  return result;
365
420
  }
421
+ /**
422
+ * Parse Metadata and NgffImages from OME-Zarr v0.6 (RFC 5) root attributes.
423
+ *
424
+ * Unlike v0.4/v0.5, a v0.6 multiscale entry carries `coordinateSystems` instead
425
+ * of a top-level `axes` list, and maps each dataset's array index space into the
426
+ * implicit "intrinsic" system through a `sequence` of scale + translation. This
427
+ * reader recovers the version-agnostic in-memory model (axes + per-dataset scale
428
+ * and translation) while preserving the coordinate systems and any top-level
429
+ * transformations for round-tripping. Mirrors the Python
430
+ * `v06.zarr_metadata.Metadata._from_zarr_attrs`.
431
+ */
432
+ export async function fromZarrAttrsV06(rootAttrs, store, validate = false) {
433
+ // v0.6 wraps the multiscales under the "ome" key; tolerate a root-level
434
+ // layout for symmetry with the v0.5 reader.
435
+ const omeData = rootAttrs.ome;
436
+ let entry;
437
+ let omeroRaw;
438
+ if (omeData && "multiscales" in omeData) {
439
+ const multiscales = omeData.multiscales;
440
+ if (!Array.isArray(multiscales) || multiscales.length === 0) {
441
+ throw new Error("No multiscales metadata found in root attributes");
442
+ }
443
+ entry = multiscales[0];
444
+ omeroRaw = omeData.omero ?? rootAttrs.omero;
445
+ }
446
+ else if ("multiscales" in rootAttrs) {
447
+ const multiscales = rootAttrs.multiscales;
448
+ if (!Array.isArray(multiscales) || multiscales.length === 0) {
449
+ throw new Error("No multiscales metadata found in root attributes");
450
+ }
451
+ entry = multiscales[0];
452
+ omeroRaw = rootAttrs.omero;
453
+ }
454
+ else {
455
+ throw new Error("No multiscales metadata found in root attributes for v0.6 format");
456
+ }
457
+ const coordinateSystemsRaw = entry.coordinateSystems;
458
+ if (!Array.isArray(coordinateSystemsRaw) || coordinateSystemsRaw.length === 0) {
459
+ throw new Error("Invalid OME-Zarr v0.6 metadata: missing 'coordinateSystems' in " +
460
+ "multiscales metadata.");
461
+ }
462
+ const coordinateSystems = coordinateSystemsRaw.map((cs, csIndex) => {
463
+ // Guard the untrusted-input boundary: a missing/non-array `axes` would
464
+ // otherwise surface as a generic `.map` TypeError rather than a clear
465
+ // metadata error. (Per-axis name/type are still coerced, mirroring the
466
+ // v0.4 reader's tolerance.)
467
+ if (!Array.isArray(cs.axes)) {
468
+ throw new Error("Invalid OME-Zarr v0.6 metadata: " +
469
+ `coordinateSystems[${csIndex}].axes must be an array.`);
470
+ }
471
+ return {
472
+ name: String(cs.name),
473
+ axes: cs.axes.map((axis) => ({
474
+ name: String(axis.name),
475
+ type: String(axis.type),
476
+ unit: axis.unit,
477
+ ...(axis.orientation !== undefined && axis.orientation !== null
478
+ ? { orientation: axis.orientation }
479
+ : {}),
480
+ })),
481
+ };
482
+ });
483
+ const coordinateSystemNames = coordinateSystems.map((cs) => cs.name);
484
+ // The intrinsic coordinate system (the first one) backs the multiscale image
485
+ // dimensions, units, and anatomical orientations.
486
+ const intrinsic = coordinateSystems[0];
487
+ const intrinsicRawAxes = coordinateSystemsRaw[0].axes;
488
+ const dims = intrinsic.axes.map((axis) => String(axis.name));
489
+ const units = {};
490
+ for (const axis of intrinsic.axes) {
491
+ if (axis.unit !== undefined && axis.unit !== null) {
492
+ units[axis.name] = axis.unit;
493
+ }
494
+ }
495
+ const axesOrientations = extractOrientationsFromAxes(intrinsicRawAxes);
496
+ // RFC 4 anatomical-orientation validation, mirroring the v0.4 reader.
497
+ if (validate) {
498
+ const axesDicts = intrinsicRawAxes.filter((axis) => typeof axis === "object" && axis !== null);
499
+ if (axesDicts.length > 0 && hasRfc4OrientationMetadata(axesDicts)) {
500
+ validateRfc4Orientation(axesDicts);
501
+ }
502
+ }
503
+ // Open root group for array access (reuse consolidated metadata if present).
504
+ let optimizedStore;
505
+ try {
506
+ const tryWithConsolidated = zarr.tryWithConsolidated;
507
+ optimizedStore = tryWithConsolidated
508
+ ? (await tryWithConsolidated(store))
509
+ : store;
510
+ }
511
+ catch {
512
+ optimizedStore = store;
513
+ }
514
+ const root = await zarr.open(optimizedStore, {
515
+ kind: "group",
516
+ });
517
+ const datasetsData = entry.datasets;
518
+ if (!Array.isArray(datasetsData) || datasetsData.length === 0) {
519
+ throw new Error("Invalid OME-Zarr metadata: 'datasets' must be a non-empty array");
520
+ }
521
+ const images = [];
522
+ const datasets = [];
523
+ for (const dataset of datasetsData) {
524
+ const path = String(dataset.path);
525
+ const zarrArray = (await zarr.open(root.resolve(path), {
526
+ kind: "array",
527
+ }));
528
+ let scaleValues = dims.map(() => 1.0);
529
+ let translationValues = dims.map(() => 0.0);
530
+ if ("coordinateTransformations" in dataset) {
531
+ if (!Array.isArray(dataset.coordinateTransformations)) {
532
+ throw new Error("Invalid OME-Zarr v0.6 metadata: " +
533
+ `dataset '${path}' coordinateTransformations must be an array.`);
534
+ }
535
+ const parsed = parseV06Transforms(dataset.coordinateTransformations, coordinateSystemNames);
536
+ const extracted = extractScaleTranslation(parsed, dims);
537
+ scaleValues = extracted.scale;
538
+ translationValues = extracted.translation;
539
+ }
540
+ const scale = {};
541
+ const translation = {};
542
+ dims.forEach((dim, i) => {
543
+ scale[dim] = i < scaleValues.length ? scaleValues[i] : 1.0;
544
+ translation[dim] = i < translationValues.length
545
+ ? translationValues[i]
546
+ : 0.0;
547
+ });
548
+ datasets.push({
549
+ path,
550
+ coordinateTransformations: [
551
+ { type: "scale", scale: scaleValues },
552
+ { type: "translation", translation: translationValues },
553
+ ],
554
+ });
555
+ images.push(new NgffImage({
556
+ data: zarrArray,
557
+ dims,
558
+ scale,
559
+ translation,
560
+ name: entry.name ?? "image",
561
+ axesUnits: Object.keys(units).length > 0 ? units : undefined,
562
+ axesOrientations,
563
+ computedCallbacks: undefined,
564
+ }));
565
+ }
566
+ let coordinateTransformations;
567
+ if ("coordinateTransformations" in entry) {
568
+ if (!Array.isArray(entry.coordinateTransformations)) {
569
+ throw new Error("Invalid OME-Zarr v0.6 metadata: multiscales " +
570
+ "coordinateTransformations must be an array.");
571
+ }
572
+ coordinateTransformations = parseV06Transforms(entry.coordinateTransformations, coordinateSystemNames);
573
+ }
574
+ const omero = parseOmero(omeroRaw);
575
+ const metadata = {
576
+ axes: intrinsic.axes,
577
+ datasets,
578
+ coordinateSystems,
579
+ coordinateTransformations,
580
+ name: entry.name ?? "image",
581
+ version: "0.6",
582
+ omero,
583
+ ...(entry.type !== undefined && entry.type !== null
584
+ ? { type: String(entry.type) }
585
+ : {}),
586
+ ...(entry.metadata !== undefined && entry.metadata !== null
587
+ ? {
588
+ metadata: entry.metadata,
589
+ }
590
+ : {}),
591
+ };
592
+ // Run the structural pass against the normalized metadata (axes + per-dataset
593
+ // scale/translation), matching the v0.4/v0.5 readers. The metadata is
594
+ // reconstructed into the same shape, so the same rules apply. Full RFC-5 wire
595
+ // validation (coordinate-system graphs, arbitrary transform chains) remains
596
+ // deferred.
597
+ if (validate) {
598
+ validateStructural(metadata, { level: ValidationLevel.Strict });
599
+ }
600
+ return { metadata, images };
601
+ }
366
602
  //# sourceMappingURL=from_zarr_attrs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"from_zarr_attrs.js","sourceRoot":"","sources":["../../src/utils/from_zarr_attrs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"from_zarr_attrs.js","sourceRoot":"","sources":["../../src/utils/from_zarr_attrs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse_metadata.d.ts","sourceRoot":"","sources":["../../src/utils/parse_metadata.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,OAAO,EAEL,WAAW,EACZ,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EAGN,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,oBAAoB,CA4BtB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GACpD,KAAK,GAAG,SAAS,CAmFnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,WAAW,CA0Bb"}
1
+ {"version":3,"file":"parse_metadata.d.ts","sourceRoot":"","sources":["../../src/utils/parse_metadata.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,OAAO,EAGL,WAAW,EACZ,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EAGN,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,oBAAoB,CA4BtB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GACpD,KAAK,GAAG,SAAS,CAmFnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,WAAW,CAiCb"}
@@ -3,7 +3,7 @@
3
3
  /**
4
4
  * Utilities for parsing OME-Zarr metadata from zarr attributes.
5
5
  */
6
- import { isSupportedVersion, } from "../types/supported_versions.js";
6
+ import { isSupportedVersion, isV06Version, NgffVersion, } from "../types/supported_versions.js";
7
7
  import { methodsValues } from "../types/methods.js";
8
8
  /**
9
9
  * Extract method type and convert to Methods enum.
@@ -130,6 +130,12 @@ export function detectVersion(rootAttrs) {
130
130
  if (versionStr === undefined) {
131
131
  throw new Error("Could not detect NGFF version from root attributes.");
132
132
  }
133
+ // Any 0.6-family version, including draft development tags such as
134
+ // `0.6.dev4`, is read as v0.6. Mirrors the Python port's
135
+ // `version.startswith("0.6")` read check so dev releases remain readable.
136
+ if (isV06Version(versionStr)) {
137
+ return NgffVersion.V06;
138
+ }
133
139
  if (!isSupportedVersion(versionStr)) {
134
140
  throw new Error(`Unsupported NGFF version: ${versionStr}`);
135
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse_metadata.js","sourceRoot":"","sources":["../../src/utils/parse_metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse_metadata.js","sourceRoot":"","sources":["../../src/utils/parse_metadata.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+BAA+B;AAE/B;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,WAAW,GACZ,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAiBpD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAAqC;IAErC,IAAI,MAAM,GAAwB,SAAS,CAAC;IAC5C,IAAI,UAAU,GAAuB,SAAS,CAAC;IAC/C,IAAI,cAAc,GAA+B,SAAS,CAAC;IAE3D,IAAI,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrD,IAAI,MAAM,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACzD,UAAU,GAAG,YAAY,CAAC,IAAc,CAAC;YACzC,sCAAsC;YACtC,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAqB,CAAC,EAAE,CAAC;gBAClD,MAAM,GAAG,UAAqB,CAAC;YACjC,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,IAAI,UAAU,IAAI,YAAY,IAAI,YAAY,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAmC,CAAC;YAClE,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC7C,cAAc,GAAG;oBACf,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;oBAC/C,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;oBACrC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;iBACxC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,SAAqD;IAErD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAA0C,EAAE,CAAC;QAC3E,IACE,CAAC,OAAO;YACR,OAAO,OAAO,KAAK,QAAQ;YAC3B,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC;YACtB,CAAC,OAAO,CAAC,MAAM,EACf,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAiC,CAAC;QAC7D,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,SAAS;QACX,CAAC;QAED,0DAA0D;QAC1D,gFAAgF;QAChF,IAAI,KAAa,CAAC;QAClB,IAAI,GAAW,CAAC;QAChB,IAAI,MAAc,CAAC;QACnB,IAAI,MAAc,CAAC;QAEnB,IAAI,OAAO,IAAI,UAAU,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;YACjD,4BAA4B;YAC5B,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7B,0CAA0C;YAC1C,MAAM,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAChE,MAAM,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAChE,CAAC;aAAM,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;YACtD,+BAA+B;YAC/B,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAChC,sDAAsD;YACtD,KAAK,GAAG,MAAM,CAAC;YACf,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAgB;YAC1B,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,GAAG;SACT,CAAC;QAEF,MAAM,YAAY,GAAiB;YACjC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5B,MAAM;YACN,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI;gBACvD,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAClC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;gBAC5B,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,QAAQ;QACR,GAAG,CAAC,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;YACvC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;YAChC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,SAAkC;IAElC,IAAI,UAAU,GAAuB,SAAS,CAAC;IAE/C,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,SAAS,CAAC,GAA8B,CAAC;QACrD,UAAU,GAAG,GAAG,CAAC,OAA6B,CAAC;IACjD,CAAC;IAED,uDAAuD;IACvD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,SAAS,CAAC,WAAwB,CAAC;QACvD,IAAI,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAA4B,CAAC;YAClE,UAAU,GAAI,eAAe,CAAC,OAAkB,IAAI,KAAK,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,mEAAmE;IACnE,yDAAyD;IACzD,0EAA0E;IAC1E,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,WAAW,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,UAAyB,CAAC;AACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rfc4_validation.d.ts","sourceRoot":"","sources":["../../src/utils/rfc4_validation.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AA2BH;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACnC,OAAO,CAYT;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACnC,IAAI,CA4DN"}
1
+ {"version":3,"file":"rfc4_validation.d.ts","sourceRoot":"","sources":["../../src/utils/rfc4_validation.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAiCH;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACnC,OAAO,CAgBT;AAeD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACnC,IAAI,CA4DN"}
@@ -27,6 +27,12 @@ const VALID_ORIENTATION_VALUES = new Set([
27
27
  "caudal-to-cranial",
28
28
  "proximal-to-distal",
29
29
  "distal-to-proximal",
30
+ "superficial-to-deep",
31
+ "deep-to-superficial",
32
+ "apical-to-basal",
33
+ "basal-to-apical",
34
+ "apex-to-base",
35
+ "base-to-apex",
30
36
  ]);
31
37
  /**
32
38
  * Check if the axes contain RFC 4 anatomical orientation metadata.
@@ -39,12 +45,28 @@ export function hasRfc4OrientationMetadata(axes) {
39
45
  if (typeof axis === "object" &&
40
46
  axis !== null &&
41
47
  axis.type === "space" &&
42
- "orientation" in axis) {
48
+ "orientation" in axis &&
49
+ // Orientation value has to be non-empty for it to count as orientation
50
+ // metadata, mirroring the Python `if axis['orientation']:` guard (null,
51
+ // {}, and "" are all treated as "no orientation").
52
+ isNonEmptyOrientation(axis.orientation)) {
43
53
  return true;
44
54
  }
45
55
  }
46
56
  return false;
47
57
  }
58
+ function isNonEmptyOrientation(orientation) {
59
+ if (orientation === null || orientation === undefined) {
60
+ return false;
61
+ }
62
+ if (typeof orientation === "object") {
63
+ return Object.keys(orientation).length > 0;
64
+ }
65
+ if (typeof orientation === "string") {
66
+ return orientation.length > 0;
67
+ }
68
+ return Boolean(orientation);
69
+ }
48
70
  /**
49
71
  * Validate RFC 4 anatomical orientation metadata.
50
72
  *
@@ -1 +1 @@
1
- {"version":3,"file":"rfc4_validation.js","sourceRoot":"","sources":["../../src/utils/rfc4_validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rfc4_validation.js","sourceRoot":"","sources":["../../src/utils/rfc4_validation.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,10 @@ export declare const SpecRule: {
50
50
  readonly AxisOrientationConsistentType: "axis-orientation-consistent-type";
51
51
  /** If any spatial axis declares an orientation, all spatial axes do. */
52
52
  readonly AxisOrientationCompleteness: "axis-orientation-completeness";
53
+ /** A v0.5 entry implies a Zarr v3 store: a leaked `zarr_format` must be 3. */
54
+ readonly ZarrFormat: "zarr-format";
55
+ /** A v0.5 entry must not retain a group-level `ome`/`multiscales` wrapper. */
56
+ readonly OmeNamespace: "ome-namespace";
53
57
  /** Each well's rowIndex/columnIndex agrees with the row/column in its path. */
54
58
  readonly PlateRowIndexConsistency: "plate-row-index-consistency";
55
59
  /** Each well image references an acquisition when the plate declares many. */
@@ -251,6 +255,43 @@ export declare function validateOmeroColorHex(metadata: Metadata): void;
251
255
  * -- propagates unchanged.
252
256
  */
253
257
  export declare function validateAxisOrientation(metadata: Metadata): void;
258
+ /**
259
+ * Validate that a v0.5 multiscales entry implies a Zarr v3 store.
260
+ *
261
+ * OME-Zarr v0.5 metadata MUST be backed by a Zarr v3 store
262
+ * (`zarr_format === 3`). A v0.4 dataset is always Zarr v2 and carries no
263
+ * `zarr_format`, so this rule is inert below v0.5. The parsed {@link Metadata}
264
+ * does not surface the group's `zarr_format` byte -- its authoritative on-disk
265
+ * verification is a store-backed concern -- but a `zarr_format` mis-embedded
266
+ * *inside* the multiscale entry (captured in {@link Metadata.extra}) is
267
+ * reachable here: it belongs on the enclosing Zarr v3 group, never on the entry,
268
+ * and any value other than `3` is incompatible with v0.5.
269
+ *
270
+ * @param metadata - The parsed multiscales metadata to validate.
271
+ * @throws {ValidationError} With {@link SpecRule.ZarrFormat} when v0.5 metadata
272
+ * carries a `zarr_format` other than `3` in its `extra` passthrough; location
273
+ * `multiscales[0]`.
274
+ */
275
+ export declare function validateZarrFormatForVersion(metadata: Metadata): void;
276
+ /**
277
+ * Validate that a v0.5 multiscales entry is not double-namespaced.
278
+ *
279
+ * At v0.5 the multiscales metadata lives under the top-level `ome` namespace key
280
+ * of the group's `zarr.json` attributes, with the spec `version` hoisted to
281
+ * `ome.version`. The reader unwraps that namespace into this {@link Metadata}, so
282
+ * the group-level wrapper keys -- `ome` itself and the `multiscales` array --
283
+ * must never reappear *inside* a multiscale entry. A surviving wrapper key
284
+ * (captured in {@link Metadata.extra}) means the document is double-namespaced,
285
+ * was not unwrapped, or is otherwise malformed with respect to the v0.5 `ome`
286
+ * namespacing. A v0.4 store keeps multiscales at the `.zattrs` top level with no
287
+ * `ome` wrapper, so this rule is inert below v0.5.
288
+ *
289
+ * @param metadata - The parsed multiscales metadata to validate.
290
+ * @throws {ValidationError} With {@link SpecRule.OmeNamespace} when v0.5 metadata
291
+ * retains a group-level `ome` or `multiscales` key in its `extra` passthrough;
292
+ * location `multiscales[0]`.
293
+ */
294
+ export declare function validateOmeNamespace(metadata: Metadata): void;
254
295
  /**
255
296
  * Validate each plate well's recorded indices against its `path`.
256
297
  *
@@ -303,6 +344,11 @@ export declare function validateWellAcquisition(plate: PlateMetadata, well: Well
303
344
  * 8. {@link validateDatasetOrder}
304
345
  * 9. {@link validateOmeroColorHex}
305
346
  * 10. {@link validateAxisOrientation}
347
+ * 11. {@link validateZarrFormatForVersion}
348
+ * 12. {@link validateOmeNamespace}
349
+ *
350
+ * Rules 11 and 12 are the OME-Zarr v0.5 namespacing checks; they fire only for
351
+ * v0.5 metadata and are inert (a no-op) for v0.4.
306
352
  *
307
353
  * Under {@link ValidationLevel.SchemaOnly} this function returns immediately
308
354
  * without running any structural rule -- shape/schema validation is the
@@ -1 +1 @@
1
- {"version":3,"file":"structural_validation.d.ts","sourceRoot":"","sources":["../../src/utils/structural_validation.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAGL,KAAK,QAAQ,EAGd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOnE;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ;IACnB,0DAA0D;;IAE1D,8DAA8D;;IAE9D,wEAAwE;;IAExE,mEAAmE;;IAEnE,mEAAmE;;IAEnE,0EAA0E;;IAE1E,kEAAkE;;IAElE,4DAA4D;;IAE5D,wEAAwE;;IAExE,+EAA+E;;IAE/E,8EAA8E;;CAEtE,CAAC;AAEX,mDAAmD;AACnD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;IAC1B,iEAAiE;;IAEjE,iEAAiE;;CAEzD,CAAC;AAEX,0DAA0D;AAC1D,MAAM,MAAM,eAAe,GACzB,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEf,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;CAQ/D;AAqFD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAS1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAkBzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAoB1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CA0BjE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAerE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAmC5D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAkB/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAiC7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAgB9D;AA+BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAqChE;AAsBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAqD5E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,YAAY,GACjB,IAAI,CAgBN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,eAAe,GACxB,IAAI,CAkBN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE,eAAe,GACxB,IAAI,CASN;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,eAAe,GACxB,IAAI,CASN"}
1
+ {"version":3,"file":"structural_validation.d.ts","sourceRoot":"","sources":["../../src/utils/structural_validation.ts"],"names":[],"mappings":"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"}