@fideus-labs/ngff-zarr 0.2.8 → 0.3.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/esm/browser-mod.d.ts +3 -3
  2. package/esm/browser-mod.d.ts.map +1 -1
  3. package/esm/browser-mod.js +3 -4
  4. package/esm/browser-mod.js.map +1 -1
  5. package/esm/io/from_ngff_zarr.d.ts.map +1 -1
  6. package/esm/io/from_ngff_zarr.js +34 -116
  7. package/esm/io/from_ngff_zarr.js.map +1 -1
  8. package/esm/io/rfc9_zip.d.ts +80 -0
  9. package/esm/io/rfc9_zip.d.ts.map +1 -0
  10. package/esm/io/rfc9_zip.js +337 -0
  11. package/esm/io/rfc9_zip.js.map +1 -0
  12. package/esm/io/to_ngff_zarr-browser.d.ts +26 -0
  13. package/esm/io/to_ngff_zarr-browser.d.ts.map +1 -1
  14. package/esm/io/to_ngff_zarr-browser.js +37 -6
  15. package/esm/io/to_ngff_zarr-browser.js.map +1 -1
  16. package/esm/io/to_ngff_zarr.d.ts +76 -0
  17. package/esm/io/to_ngff_zarr.d.ts.map +1 -1
  18. package/esm/io/to_ngff_zarr.js +129 -7
  19. package/esm/io/to_ngff_zarr.js.map +1 -1
  20. package/esm/io/to_ngff_zarr_ozx_common.d.ts +51 -0
  21. package/esm/io/to_ngff_zarr_ozx_common.d.ts.map +1 -0
  22. package/esm/io/to_ngff_zarr_ozx_common.js +126 -0
  23. package/esm/io/to_ngff_zarr_ozx_common.js.map +1 -0
  24. package/esm/methods/itkwasm-browser.d.ts.map +1 -1
  25. package/esm/methods/itkwasm-browser.js +262 -4
  26. package/esm/methods/itkwasm-browser.js.map +1 -1
  27. package/esm/methods/itkwasm-node.d.ts.map +1 -1
  28. package/esm/methods/itkwasm-node.js +262 -4
  29. package/esm/methods/itkwasm-node.js.map +1 -1
  30. package/esm/methods/itkwasm-shared.d.ts +6 -0
  31. package/esm/methods/itkwasm-shared.d.ts.map +1 -1
  32. package/esm/methods/itkwasm-shared.js +6 -0
  33. package/esm/methods/itkwasm-shared.js.map +1 -1
  34. package/esm/mod.d.ts +5 -0
  35. package/esm/mod.d.ts.map +1 -1
  36. package/esm/mod.js +5 -0
  37. package/esm/mod.js.map +1 -1
  38. package/esm/process/to_multiscales-shared.d.ts.map +1 -1
  39. package/esm/process/to_multiscales-shared.js +3 -2
  40. package/esm/process/to_multiscales-shared.js.map +1 -1
  41. package/esm/types/supported_versions.d.ts +20 -0
  42. package/esm/types/supported_versions.d.ts.map +1 -0
  43. package/esm/types/supported_versions.js +31 -0
  44. package/esm/types/supported_versions.js.map +1 -0
  45. package/esm/types/zarr_metadata.d.ts +43 -1
  46. package/esm/types/zarr_metadata.d.ts.map +1 -1
  47. package/esm/types/zarr_metadata.js +40 -0
  48. package/esm/types/zarr_metadata.js.map +1 -1
  49. package/esm/utils/factory.d.ts +3 -2
  50. package/esm/utils/factory.d.ts.map +1 -1
  51. package/esm/utils/factory.js +6 -2
  52. package/esm/utils/factory.js.map +1 -1
  53. package/esm/utils/from_zarr_attrs.d.ts +21 -0
  54. package/esm/utils/from_zarr_attrs.d.ts.map +1 -0
  55. package/esm/utils/from_zarr_attrs.js +326 -0
  56. package/esm/utils/from_zarr_attrs.js.map +1 -0
  57. package/esm/utils/parse_metadata.d.ts +27 -0
  58. package/esm/utils/parse_metadata.d.ts.map +1 -0
  59. package/esm/utils/parse_metadata.js +138 -0
  60. package/esm/utils/parse_metadata.js.map +1 -0
  61. package/esm/utils/rfc4_validation.d.ts +20 -0
  62. package/esm/utils/rfc4_validation.d.ts.map +1 -0
  63. package/esm/utils/rfc4_validation.js +98 -0
  64. package/esm/utils/rfc4_validation.js.map +1 -0
  65. package/package.json +2 -2
@@ -13,8 +13,8 @@ export { isValidDimension, isValidUnit, validateMetadata, } from "./utils/valida
13
13
  export { createAxis, createDataset, createMetadata, createMultiscales, createNgffImage, } from "./utils/factory.js";
14
14
  export { getMethodMetadata } from "./utils/method_metadata.js";
15
15
  export { fromNgffZarr, type FromNgffZarrOptions, type MemoryStore, } from "./io/from_ngff_zarr-browser.js";
16
- export { toNgffZarr, type ToNgffZarrOptions, } from "./io/to_ngff_zarr-browser.js";
16
+ export { isOzxPath, toNgffZarr, type ToNgffZarrOptions, toNgffZarrOzx, type ToNgffZarrOzxOptions, } from "./io/to_ngff_zarr-browser.js";
17
+ export { getZipFileCompressionMethod, getZipFileList, memoryStoreToZip, orderFilesForRfc9, readOzxVersion, } from "./io/rfc9_zip.js";
18
+ export type { MemoryStoreToZipOptions } from "./io/rfc9_zip.js";
17
19
  export * from "./process/to_multiscales-browser.js";
18
- export { ngffImageToItkImage } from "./io/ngff_image_to_itk_image.js";
19
- export { itkImageToNgffImage } from "./io/itk_image_to_ngff_image.js";
20
20
  //# sourceMappingURL=browser-mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-mod.d.ts","sourceRoot":"","sources":["../src/browser-mod.ts"],"names":[],"mappings":"AAOA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AAEzC,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,WAAW,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,GACvB,MAAM,8BAA8B,CAAC;AAGtC,cAAc,qCAAqC,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"browser-mod.d.ts","sourceRoot":"","sources":["../src/browser-mod.ts"],"names":[],"mappings":"AAOA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AAEzC,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAK/D,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,WAAW,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,SAAS,EACT,UAAU,EACV,KAAK,iBAAiB,EACtB,aAAa,EACb,KAAK,oBAAoB,GAC1B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,cAAc,qCAAqC,CAAC"}
@@ -23,10 +23,9 @@ export { getMethodMetadata } from "./utils/method_metadata.js";
23
23
  // Note: Uses browser-specific versions that don't import @zarrita/storage
24
24
  // (which contains Node.js-specific modules like node:fs, node:buffer, node:path)
25
25
  export { fromNgffZarr, } from "./io/from_ngff_zarr-browser.js";
26
- export { toNgffZarr, } from "./io/to_ngff_zarr-browser.js";
26
+ export { isOzxPath, toNgffZarr, toNgffZarrOzx, } from "./io/to_ngff_zarr-browser.js";
27
+ // RFC-9 exports
28
+ export { getZipFileCompressionMethod, getZipFileList, memoryStoreToZip, orderFilesForRfc9, readOzxVersion, } from "./io/rfc9_zip.js";
27
29
  // Browser-compatible processing modules
28
30
  export * from "./process/to_multiscales-browser.js";
29
- // ITK conversions (browser-compatible)
30
- export { ngffImageToItkImage } from "./io/ngff_image_to_itk_image.js";
31
- export { itkImageToNgffImage } from "./io/itk_image_to_ngff_image.js";
32
31
  //# sourceMappingURL=browser-mod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-mod.js","sourceRoot":"","sources":["../src/browser-mod.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+BAA+B;AAC/B,oCAAoC;AACpC,wEAAwE;AACxE,EAAE;AACF,kFAAkF;AAClF,yEAAyE;AACzE,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AAEzC,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,iCAAiC;AACjC,0EAA0E;AAC1E,iFAAiF;AACjF,OAAO,EACL,YAAY,GAGb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,UAAU,GAEX,MAAM,8BAA8B,CAAC;AAEtC,wCAAwC;AACxC,cAAc,qCAAqC,CAAC;AAEpD,uCAAuC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"browser-mod.js","sourceRoot":"","sources":["../src/browser-mod.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+BAA+B;AAC/B,oCAAoC;AACpC,wEAAwE;AACxE,EAAE;AACF,kFAAkF;AAClF,yEAAyE;AACzE,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AAEzC,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,iCAAiC;AACjC,0EAA0E;AAC1E,iFAAiF;AACjF,OAAO,EACL,YAAY,GAGb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,SAAS,EACT,UAAU,EAEV,aAAa,GAEd,MAAM,8BAA8B,CAAC;AAEtC,gBAAgB;AAChB,OAAO,EACL,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,wCAAwC;AACxC,cAAc,qCAAqC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"from_ngff_zarr.d.ts","sourceRoot":"","sources":["../../src/io/from_ngff_zarr.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAMtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAElD,wBAAsB,YAAY,CAEhC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC,UAAU,EAC7C,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,WAAW,CAAC,CA+NtB;AAED,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAC5B,OAAO,CAAC,OAAO,CAAC,CAmClB"}
1
+ {"version":3,"file":"from_ngff_zarr.d.ts","sourceRoot":"","sources":["../../src/io/from_ngff_zarr.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAWtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAElD,wBAAsB,YAAY,CAEhC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC,UAAU,EAC7C,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,WAAW,CAAC,CAsHtB;AAED,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAC5B,OAAO,CAAC,OAAO,CAAC,CAmClB"}
@@ -2,13 +2,14 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  import * as zarr from "zarrita";
4
4
  import { Multiscales } from "../types/multiscales.js";
5
- import { NgffImage } from "../types/ngff_image.js";
6
- import { MetadataSchema } from "../schemas/zarr_metadata.js";
5
+ import { NgffVersion } from "../types/supported_versions.js";
6
+ import { detectVersion, extractMethodMetadata, } from "../utils/parse_metadata.js";
7
+ import { fromZarrAttrsV04, fromZarrAttrsV05, } from "../utils/from_zarr_attrs.js";
7
8
  export async function fromNgffZarr(
8
9
  // Also accepts FileSystemStore, ZipFileStore objects in Node.js/Deno
9
10
  store, options = {}) {
10
11
  const validate = options.validate ?? false;
11
- const version = options.version;
12
+ const requestedVersion = options.version;
12
13
  try {
13
14
  // Determine the appropriate store type based on the path
14
15
  let resolvedStore;
@@ -56,131 +57,48 @@ store, options = {}) {
56
57
  kind: "group",
57
58
  });
58
59
  const attrs = root.attrs;
59
- // Handle both 0.4 (multiscales at root) and 0.5 (multiscales under ome) formats
60
- let multiscalesArray;
61
- let detectedVersion;
62
- if (attrs && typeof attrs === "object" && "ome" in attrs) {
63
- // OME-Zarr 0.5 format: metadata is under the 'ome' property
64
- const omeAttrs = attrs.ome;
65
- if (!omeAttrs || !omeAttrs.multiscales) {
66
- throw new Error("No multiscales metadata found in OME-Zarr 0.5 store");
60
+ const rootAttrs = attrs;
61
+ // Handle both v0.4 (multiscales at root) and v0.5 (multiscales under "ome")
62
+ const hasOmeWrapper = "ome" in rootAttrs;
63
+ const multiscalesSource = hasOmeWrapper
64
+ ? rootAttrs.ome
65
+ : rootAttrs;
66
+ if (!multiscalesSource.multiscales) {
67
+ throw new Error("No multiscales metadata found in Zarr store");
68
+ }
69
+ // Detect version from attributes
70
+ const detectedVersion = detectVersion(rootAttrs);
71
+ // Validate version if requested
72
+ if (validate && requestedVersion) {
73
+ if (detectedVersion !== requestedVersion) {
74
+ throw new Error(`Expected OME-Zarr version ${requestedVersion}, but found ${detectedVersion}`);
67
75
  }
68
- multiscalesArray = omeAttrs.multiscales;
69
- detectedVersion = omeAttrs.version;
70
76
  }
71
- else if (attrs && typeof attrs === "object" && "multiscales" in attrs) {
72
- // OME-Zarr 0.4 format: metadata is at root
73
- multiscalesArray = attrs
74
- .multiscales;
77
+ // Parse metadata using version-specific function
78
+ let result;
79
+ if (detectedVersion === NgffVersion.V05) {
80
+ result = await fromZarrAttrsV05(rootAttrs, resolvedStore, validate);
75
81
  }
76
82
  else {
77
- throw new Error("No multiscales metadata found in Zarr store");
78
- }
79
- if (!Array.isArray(multiscalesArray) || multiscalesArray.length === 0) {
80
- throw new Error("No multiscales metadata found in Zarr store");
83
+ result = await fromZarrAttrsV04(rootAttrs, resolvedStore, validate);
81
84
  }
85
+ const { metadata, images } = result;
86
+ // Extract method metadata from the multiscales metadata
87
+ const multiscalesArray = multiscalesSource.multiscales;
82
88
  const multiscalesMetadata = multiscalesArray[0];
83
- if (validate) {
84
- const result = MetadataSchema.safeParse(multiscalesMetadata);
85
- if (!result.success) {
86
- throw new Error(`Invalid OME-Zarr metadata: ${result.error.message}`);
87
- }
88
- // Check version compatibility if specified
89
- if (version) {
90
- const metadataWithVersion = multiscalesMetadata;
91
- const actualVersion = metadataWithVersion.version || detectedVersion;
92
- if (actualVersion !== version) {
93
- throw new Error(`Expected OME-Zarr version ${version}, but found ${actualVersion || "unknown"}`);
94
- }
95
- }
96
- }
97
- const metadata = multiscalesMetadata;
98
- // Extract omero metadata from root attributes if present
99
- if (attrs.omero) {
100
- const omeroData = attrs.omero;
101
- // Handle backward compatibility for OMERO window metadata
102
- if (omeroData.channels && Array.isArray(omeroData.channels)) {
103
- for (const channel of omeroData.channels) {
104
- if (channel.window && typeof channel.window === "object") {
105
- const window = channel.window;
106
- // Ensure both min/max and start/end are present for compatibility
107
- if (window.min !== undefined && window.max !== undefined) {
108
- // If only min/max present, use them for start/end
109
- if (window.start === undefined) {
110
- window.start = window.min;
111
- }
112
- if (window.end === undefined) {
113
- window.end = window.max;
114
- }
115
- }
116
- else if (window.start !== undefined && window.end !== undefined) {
117
- // If only start/end present, use them for min/max
118
- if (window.min === undefined) {
119
- window.min = window.start;
120
- }
121
- if (window.max === undefined) {
122
- window.max = window.end;
123
- }
124
- }
125
- }
126
- }
127
- }
128
- metadata.omero = omeroData;
89
+ const { method, methodType, methodMetadata } = extractMethodMetadata(multiscalesMetadata);
90
+ // Update metadata with method information
91
+ if (methodType) {
92
+ metadata.type = methodType;
129
93
  }
130
- const images = [];
131
- for (const dataset of metadata.datasets) {
132
- const arrayPath = dataset.path;
133
- const zarrArray = (await zarr.open(root.resolve(arrayPath), {
134
- kind: "array",
135
- }));
136
- // Verify we have an array with the expected properties
137
- if (!zarrArray ||
138
- !("shape" in zarrArray) ||
139
- !("dtype" in zarrArray) ||
140
- !("chunks" in zarrArray)) {
141
- throw new Error(`Invalid zarr array at path ${arrayPath}: missing shape property`);
142
- }
143
- const scale = {};
144
- const translation = {};
145
- for (const transform of dataset.coordinateTransformations) {
146
- if (transform.type === "scale") {
147
- metadata.axes.forEach((axis, i) => {
148
- if (i < transform.scale.length) {
149
- scale[axis.name] = transform.scale[i];
150
- }
151
- });
152
- }
153
- else if (transform.type === "translation") {
154
- metadata.axes.forEach((axis, i) => {
155
- if (i < transform.translation.length) {
156
- translation[axis.name] = transform.translation[i];
157
- }
158
- });
159
- }
160
- }
161
- const dims = metadata.axes.map((axis) => axis.name);
162
- const axesUnits = metadata.axes.reduce((acc, axis) => {
163
- if (axis.unit) {
164
- acc[axis.name] = axis.unit;
165
- }
166
- return acc;
167
- }, {});
168
- const ngffImage = new NgffImage({
169
- data: zarrArray,
170
- dims,
171
- scale,
172
- translation,
173
- name: metadata.name,
174
- axesUnits: Object.keys(axesUnits).length > 0 ? axesUnits : undefined,
175
- computedCallbacks: undefined,
176
- });
177
- images.push(ngffImage);
94
+ if (methodMetadata) {
95
+ metadata.metadata = methodMetadata;
178
96
  }
179
97
  return new Multiscales({
180
98
  images,
181
99
  metadata,
182
100
  scaleFactors: undefined,
183
- method: undefined,
101
+ method,
184
102
  chunks: undefined,
185
103
  });
186
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"from_ngff_zarr.js","sourceRoot":"","sources":["../../src/io/from_ngff_zarr.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+BAA+B;AAC/B,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAU7D,MAAM,CAAC,KAAK,UAAU,YAAY;AAChC,qEAAqE;AACrE,KAA6C,EAC7C,UAA+B,EAAE;IAEjC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,IAAI,CAAC;QACH,yDAAyD;QACzD,IAAI,aAA4C,CAAC;QACjD,IAAI,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7D,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACvE,qCAAqC;YACrC,aAAa,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;YACJ,CAAC;YAED,oFAAoF;YACpF,IAAI,CAAC;gBACH,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CACpD,kBAAkB,CACnB,CAAC;gBACF,mCAAmC;gBACnC,IAAI,KAAK,YAAY,eAAe,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;oBACtE,mCAAmC;oBACnC,aAAa,GAAG,KAAK,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,sDAAsD;oBACtD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;oBAC7D,mCAAmC;oBACnC,aAAa,GAAG,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,mCAAmC,KAAK,kDAAkD,CAC3F,CAAC;YACJ,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,IAAI,cAAc,CAAC;QACnB,IAAI,CAAC;YACH,yCAAyC;YACzC,cAAc,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,cAAc,GAAG,aAAa,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAA+B,EAAE;YAC5D,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgB,CAAC;QAEpC,gFAAgF;QAChF,IAAI,gBAA2B,CAAC;QAChC,IAAI,eAAmC,CAAC;QAExC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACzD,4DAA4D;YAC5D,MAAM,QAAQ,GAAI,KAAiC,CAAC,GAGnD,CAAC;YACF,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;YACD,gBAAgB,GAAG,QAAQ,CAAC,WAAwB,CAAC;YACrD,eAAe,GAAG,QAAQ,CAAC,OAA6B,CAAC;QAC3D,CAAC;aAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;YACxE,2CAA2C;YAC3C,gBAAgB,GAAI,KAAiC;iBAClD,WAAwB,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,CAAY,CAAC;QAE3D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,2CAA2C;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,mBAAmB,GAAG,mBAA2C,CAAC;gBACxE,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,IAAI,eAAe,CAAC;gBACrE,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CACb,6BAA6B,OAAO,eAClC,aAAa,IAAI,SACnB,EAAE,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,mBAA+B,CAAC;QAEjD,yDAAyD;QACzD,IAAK,KAAiC,CAAC,KAAK,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAI,KAAiC,CAAC,KAGpD,CAAC;YAEF,0DAA0D;YAC1D,IAAI,SAAS,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,KACE,MAAM,OAAO,IAAI,SAAS,CAAC,QAE1B,EACD,CAAC;oBACD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAA4C,CAAC;wBAEpE,kEAAkE;wBAClE,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;4BACzD,kDAAkD;4BAClD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gCAC/B,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;4BAC5B,CAAC;4BACD,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gCAC7B,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;4BAC1B,CAAC;wBACH,CAAC;6BAAM,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;4BAClE,kDAAkD;4BAClD,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gCAC7B,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;4BAC5B,CAAC;4BACD,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gCAC7B,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;4BAC1B,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,KAAK,GAAG,SAA6B,CAAC;QACjD,CAAC;QAED,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YAE/B,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC1D,IAAI,EAAE,OAAO;aACd,CAAC,CAA6C,CAAC;YAEhD,uDAAuD;YACvD,IACE,CAAC,SAAS;gBACV,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC;gBACvB,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC;gBACvB,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,EACxB,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,8BAA8B,SAAS,0BAA0B,CAClE,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,MAAM,WAAW,GAA2B,EAAE,CAAC;YAE/C,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,yBAAyB,EAAE,CAAC;gBAC1D,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC/B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;wBAChC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;4BAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC5C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;wBAChC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;4BACrC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;wBACpD,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACnD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC7B,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAA2B,CAAC,CAAC;YAEhC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;gBAC9B,IAAI,EAAE,SAAS;gBACf,IAAI;gBACJ,KAAK;gBACL,WAAW;gBACX,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;gBACpE,iBAAiB,EAAE,SAAS;aAC7B,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,WAAW,CAAC;YACrB,MAAM;YACN,QAAQ;YACR,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,4BACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,SAAiB,EACjB,SAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9B,sDAAsD;QACtD,IAAI,SAAS,CAAC;QACd,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBACtD,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;oBACtD,IAAI,EAAE,OAAO;iBACd,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,OAAO,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,6BAA6B,SAAS,yCAAyC,OAAO,eAAe,OAAO,EAAE,CAC/G,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,8BACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"from_ngff_zarr.js","sourceRoot":"","sources":["../../src/io/from_ngff_zarr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * RFC-9: Zipped OME-Zarr (.ozx) support
3
+ *
4
+ * This module provides utilities for writing OME-Zarr hierarchies
5
+ * to ZIP archives according to RFC-9 specification.
6
+ *
7
+ * @see https://ngff.openmicroscopy.org/rfc/9/index.html
8
+ */
9
+ /** MemoryStore type for zarr data */
10
+ export type MemoryStore = Map<string, Uint8Array>;
11
+ /**
12
+ * Check if a path refers to a .ozx file.
13
+ *
14
+ * @param path - Path to check
15
+ * @returns True if path ends with .ozx extension
16
+ */
17
+ export declare function isOzxPath(path: string): boolean;
18
+ /**
19
+ * Order files for RFC-9 compliance.
20
+ *
21
+ * According to RFC-9:
22
+ * - Root-level zarr.json must be the first entry
23
+ * - Other zarr.json files should follow in breadth-first order
24
+ * - Data files come after all zarr.json files
25
+ *
26
+ * @param keys - Array of file paths from the store
27
+ * @returns Ordered array of file paths
28
+ */
29
+ export declare function orderFilesForRfc9(keys: string[]): string[];
30
+ /**
31
+ * Read the OME-Zarr version from ZIP comment.
32
+ *
33
+ * @param zipData - ZIP file data
34
+ * @returns OME-Zarr version string if found, null otherwise
35
+ */
36
+ export declare function readOzxVersion(zipData: Uint8Array): string | null;
37
+ /**
38
+ * Read the jsonFirst flag from ZIP comment.
39
+ *
40
+ * The jsonFirst flag indicates that zarr.json files are ordered
41
+ * breadth-first in the central directory and precede other content.
42
+ *
43
+ * @param zipData - ZIP file data
44
+ * @returns true if jsonFirst is set to true in the ZIP comment, false otherwise
45
+ */
46
+ export declare function readOzxJsonFirst(zipData: Uint8Array): boolean;
47
+ /**
48
+ * Check if a file in the ZIP uses compression.
49
+ *
50
+ * @param zipData - ZIP file data
51
+ * @param filename - Name of the file to check
52
+ * @returns Compression method (0 = stored, 8 = deflate, etc.)
53
+ */
54
+ export declare function getZipFileCompressionMethod(zipData: Uint8Array, filename: string): number | null;
55
+ /**
56
+ * Get the list of files in a ZIP archive in order.
57
+ *
58
+ * @param zipData - ZIP file data
59
+ * @returns Array of filenames in the order they appear in the central directory
60
+ */
61
+ export declare function getZipFileList(zipData: Uint8Array): string[];
62
+ export interface MemoryStoreToZipOptions {
63
+ /** OME-Zarr version string (default: "0.5") */
64
+ version?: string;
65
+ }
66
+ /**
67
+ * Convert a MemoryStore to ZIP data following RFC-9 specification.
68
+ *
69
+ * According to RFC-9:
70
+ * - Root-level zarr.json must be the first entry
71
+ * - Other zarr.json files should follow in breadth-first order
72
+ * - ZIP-level compression should be disabled (ZIP_STORED)
73
+ * - A comment with OME-Zarr version should be added
74
+ *
75
+ * @param store - MemoryStore containing zarr data
76
+ * @param options - Options for ZIP creation
77
+ * @returns ZIP file data as Uint8Array
78
+ */
79
+ export declare function memoryStoreToZip(store: MemoryStore, options?: MemoryStoreToZipOptions): Uint8Array;
80
+ //# sourceMappingURL=rfc9_zip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rfc9_zip.d.ts","sourceRoot":"","sources":["../../src/io/rfc9_zip.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAIH,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAmB1D;AA4DD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CA8CjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CA8C7D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAiDf;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,CAoE5D;AAED,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,uBAA4B,GACpC,UAAU,CAkCZ"}