@fideus-labs/ngff-zarr 0.2.7 → 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 -1
  2. package/esm/browser-mod.d.ts.map +1 -1
  3. package/esm/browser-mod.js +3 -1
  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
@@ -0,0 +1,337 @@
1
+ // SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC
2
+ // SPDX-License-Identifier: MIT
3
+ /**
4
+ * RFC-9: Zipped OME-Zarr (.ozx) support
5
+ *
6
+ * This module provides utilities for writing OME-Zarr hierarchies
7
+ * to ZIP archives according to RFC-9 specification.
8
+ *
9
+ * @see https://ngff.openmicroscopy.org/rfc/9/index.html
10
+ */
11
+ import { zipSync } from "fflate";
12
+ /**
13
+ * Check if a path refers to a .ozx file.
14
+ *
15
+ * @param path - Path to check
16
+ * @returns True if path ends with .ozx extension
17
+ */
18
+ export function isOzxPath(path) {
19
+ return path.endsWith(".ozx");
20
+ }
21
+ /**
22
+ * Order files for RFC-9 compliance.
23
+ *
24
+ * According to RFC-9:
25
+ * - Root-level zarr.json must be the first entry
26
+ * - Other zarr.json files should follow in breadth-first order
27
+ * - Data files come after all zarr.json files
28
+ *
29
+ * @param keys - Array of file paths from the store
30
+ * @returns Ordered array of file paths
31
+ */
32
+ export function orderFilesForRfc9(keys) {
33
+ const zarrJsons = keys.filter((k) => k.endsWith("zarr.json"));
34
+ const others = keys.filter((k) => !k.endsWith("zarr.json"));
35
+ // Root zarr.json first
36
+ const rootIdx = zarrJsons.indexOf("zarr.json");
37
+ if (rootIdx > 0) {
38
+ zarrJsons.splice(rootIdx, 1);
39
+ zarrJsons.unshift("zarr.json");
40
+ }
41
+ // Sort by depth for breadth-first order
42
+ zarrJsons.sort((a, b) => {
43
+ if (a === "zarr.json")
44
+ return -1;
45
+ if (b === "zarr.json")
46
+ return 1;
47
+ return a.split("/").length - b.split("/").length;
48
+ });
49
+ return [...zarrJsons, ...others.sort()];
50
+ }
51
+ /**
52
+ * Add a ZIP comment to existing ZIP data.
53
+ *
54
+ * fflate doesn't support ZIP comments natively, so we manually
55
+ * modify the End of Central Directory (EOCD) record to add one.
56
+ *
57
+ * @param zipData - Original ZIP data
58
+ * @param comment - Comment string to add (UTF-8)
59
+ * @returns New ZIP data with comment
60
+ */
61
+ function addZipComment(zipData, comment) {
62
+ const commentBytes = new TextEncoder().encode(comment);
63
+ if (commentBytes.length > 65535) {
64
+ throw new Error("ZIP comment too long (max 65535 bytes)");
65
+ }
66
+ // Find EOCD signature (0x06054b50) searching from end
67
+ // EOCD is at least 22 bytes, so start searching from length - 22
68
+ let eocdOffset = -1;
69
+ for (let i = zipData.length - 22; i >= 0; i--) {
70
+ if (zipData[i] === 0x50 &&
71
+ zipData[i + 1] === 0x4b &&
72
+ zipData[i + 2] === 0x05 &&
73
+ zipData[i + 3] === 0x06) {
74
+ eocdOffset = i;
75
+ break;
76
+ }
77
+ }
78
+ if (eocdOffset === -1) {
79
+ throw new Error("Invalid ZIP: End of Central Directory not found");
80
+ }
81
+ // Note: We could read current comment length at EOCD + 20, but we
82
+ // always replace any existing comment, so we just need the EOCD position.
83
+ // Calculate the size of ZIP without the current comment
84
+ const zipWithoutComment = eocdOffset + 22;
85
+ // Create new array: ZIP without old comment + new comment
86
+ const result = new Uint8Array(zipWithoutComment + commentBytes.length);
87
+ // Copy ZIP data up to and including EOCD (excluding old comment)
88
+ result.set(zipData.subarray(0, zipWithoutComment));
89
+ // Update comment length field (little-endian at EOCD + 20)
90
+ result[eocdOffset + 20] = commentBytes.length & 0xff;
91
+ result[eocdOffset + 21] = (commentBytes.length >> 8) & 0xff;
92
+ // Append new comment
93
+ result.set(commentBytes, zipWithoutComment);
94
+ return result;
95
+ }
96
+ /**
97
+ * Read the OME-Zarr version from ZIP comment.
98
+ *
99
+ * @param zipData - ZIP file data
100
+ * @returns OME-Zarr version string if found, null otherwise
101
+ */
102
+ export function readOzxVersion(zipData) {
103
+ // Find EOCD signature searching from end
104
+ let eocdOffset = -1;
105
+ for (let i = zipData.length - 22; i >= 0; i--) {
106
+ if (zipData[i] === 0x50 &&
107
+ zipData[i + 1] === 0x4b &&
108
+ zipData[i + 2] === 0x05 &&
109
+ zipData[i + 3] === 0x06) {
110
+ eocdOffset = i;
111
+ break;
112
+ }
113
+ }
114
+ if (eocdOffset === -1) {
115
+ return null;
116
+ }
117
+ // Get comment length (little-endian uint16 at EOCD + 20)
118
+ const commentLength = zipData[eocdOffset + 20] |
119
+ (zipData[eocdOffset + 21] << 8);
120
+ if (commentLength === 0) {
121
+ return null;
122
+ }
123
+ // Extract comment bytes
124
+ const commentStart = eocdOffset + 22;
125
+ const commentBytes = zipData.subarray(commentStart, commentStart + commentLength);
126
+ try {
127
+ const commentStr = new TextDecoder("utf-8").decode(commentBytes);
128
+ const commentObj = JSON.parse(commentStr);
129
+ if (commentObj?.ome?.version) {
130
+ return commentObj.ome.version;
131
+ }
132
+ }
133
+ catch {
134
+ // Invalid JSON or encoding
135
+ }
136
+ return null;
137
+ }
138
+ /**
139
+ * Read the jsonFirst flag from ZIP comment.
140
+ *
141
+ * The jsonFirst flag indicates that zarr.json files are ordered
142
+ * breadth-first in the central directory and precede other content.
143
+ *
144
+ * @param zipData - ZIP file data
145
+ * @returns true if jsonFirst is set to true in the ZIP comment, false otherwise
146
+ */
147
+ export function readOzxJsonFirst(zipData) {
148
+ // Find EOCD signature searching from end
149
+ let eocdOffset = -1;
150
+ for (let i = zipData.length - 22; i >= 0; i--) {
151
+ if (zipData[i] === 0x50 &&
152
+ zipData[i + 1] === 0x4b &&
153
+ zipData[i + 2] === 0x05 &&
154
+ zipData[i + 3] === 0x06) {
155
+ eocdOffset = i;
156
+ break;
157
+ }
158
+ }
159
+ if (eocdOffset === -1) {
160
+ return false;
161
+ }
162
+ // Get comment length (little-endian uint16 at EOCD + 20)
163
+ const commentLength = zipData[eocdOffset + 20] |
164
+ (zipData[eocdOffset + 21] << 8);
165
+ if (commentLength === 0) {
166
+ return false;
167
+ }
168
+ // Extract comment bytes
169
+ const commentStart = eocdOffset + 22;
170
+ const commentBytes = zipData.subarray(commentStart, commentStart + commentLength);
171
+ try {
172
+ const commentStr = new TextDecoder("utf-8").decode(commentBytes);
173
+ const commentObj = JSON.parse(commentStr);
174
+ if (commentObj?.ome?.zipFile?.centralDirectory?.jsonFirst === true) {
175
+ return true;
176
+ }
177
+ }
178
+ catch {
179
+ // Invalid JSON or encoding
180
+ }
181
+ return false;
182
+ }
183
+ /**
184
+ * Check if a file in the ZIP uses compression.
185
+ *
186
+ * @param zipData - ZIP file data
187
+ * @param filename - Name of the file to check
188
+ * @returns Compression method (0 = stored, 8 = deflate, etc.)
189
+ */
190
+ export function getZipFileCompressionMethod(zipData, filename) {
191
+ // Search for local file header with matching filename
192
+ const filenameBytes = new TextEncoder().encode(filename);
193
+ let offset = 0;
194
+ while (offset < zipData.length - 30) {
195
+ // Check for local file header signature (0x04034b50)
196
+ if (zipData[offset] === 0x50 &&
197
+ zipData[offset + 1] === 0x4b &&
198
+ zipData[offset + 2] === 0x03 &&
199
+ zipData[offset + 3] === 0x04) {
200
+ // Get filename length (little-endian at offset + 26)
201
+ const nameLength = zipData[offset + 26] | (zipData[offset + 27] << 8);
202
+ // Get extra field length (little-endian at offset + 28)
203
+ const extraLength = zipData[offset + 28] | (zipData[offset + 29] << 8);
204
+ // Extract filename
205
+ const nameStart = offset + 30;
206
+ const nameEnd = nameStart + nameLength;
207
+ if (nameEnd <= zipData.length) {
208
+ const nameBytes = zipData.subarray(nameStart, nameEnd);
209
+ // Compare filenames
210
+ if (nameBytes.length === filenameBytes.length &&
211
+ nameBytes.every((b, i) => b === filenameBytes[i])) {
212
+ // Found the file, return compression method (at offset + 8)
213
+ return zipData[offset + 8] | (zipData[offset + 9] << 8);
214
+ }
215
+ }
216
+ // Get compressed size to skip to next header
217
+ const compressedSize = zipData[offset + 18] |
218
+ (zipData[offset + 19] << 8) |
219
+ (zipData[offset + 20] << 16) |
220
+ (zipData[offset + 21] << 24);
221
+ offset = nameEnd + extraLength + compressedSize;
222
+ }
223
+ else {
224
+ offset++;
225
+ }
226
+ }
227
+ return null;
228
+ }
229
+ /**
230
+ * Get the list of files in a ZIP archive in order.
231
+ *
232
+ * @param zipData - ZIP file data
233
+ * @returns Array of filenames in the order they appear in the central directory
234
+ */
235
+ export function getZipFileList(zipData) {
236
+ const files = [];
237
+ // Find EOCD to get central directory location
238
+ let eocdOffset = -1;
239
+ for (let i = zipData.length - 22; i >= 0; i--) {
240
+ if (zipData[i] === 0x50 &&
241
+ zipData[i + 1] === 0x4b &&
242
+ zipData[i + 2] === 0x05 &&
243
+ zipData[i + 3] === 0x06) {
244
+ eocdOffset = i;
245
+ break;
246
+ }
247
+ }
248
+ if (eocdOffset === -1) {
249
+ return files;
250
+ }
251
+ // Get central directory offset (little-endian uint32 at EOCD + 16)
252
+ let cdOffset = zipData[eocdOffset + 16] |
253
+ (zipData[eocdOffset + 17] << 8) |
254
+ (zipData[eocdOffset + 18] << 16) |
255
+ (zipData[eocdOffset + 19] << 24);
256
+ // Get number of entries (little-endian uint16 at EOCD + 10)
257
+ const numEntries = zipData[eocdOffset + 10] | (zipData[eocdOffset + 11] << 8);
258
+ // Parse central directory entries
259
+ for (let i = 0; i < numEntries && cdOffset < eocdOffset; i++) {
260
+ // Check for central directory file header signature (0x02014b50)
261
+ if (zipData[cdOffset] !== 0x50 ||
262
+ zipData[cdOffset + 1] !== 0x4b ||
263
+ zipData[cdOffset + 2] !== 0x01 ||
264
+ zipData[cdOffset + 3] !== 0x02) {
265
+ break;
266
+ }
267
+ // Get filename length (little-endian at offset + 28)
268
+ const nameLength = zipData[cdOffset + 28] | (zipData[cdOffset + 29] << 8);
269
+ // Get extra field length (little-endian at offset + 30)
270
+ const extraLength = zipData[cdOffset + 30] | (zipData[cdOffset + 31] << 8);
271
+ // Get comment length (little-endian at offset + 32)
272
+ const commentLength = zipData[cdOffset + 32] |
273
+ (zipData[cdOffset + 33] << 8);
274
+ // Extract filename
275
+ const nameStart = cdOffset + 46;
276
+ const nameEnd = nameStart + nameLength;
277
+ if (nameEnd <= zipData.length) {
278
+ const filename = new TextDecoder("utf-8").decode(zipData.subarray(nameStart, nameEnd));
279
+ files.push(filename);
280
+ }
281
+ // Move to next entry
282
+ cdOffset = nameEnd + extraLength + commentLength;
283
+ }
284
+ return files;
285
+ }
286
+ /**
287
+ * Normalize a store key by removing leading slashes.
288
+ * zarrita uses leading slashes (e.g., "/zarr.json") but ZIP files
289
+ * should use relative paths (e.g., "zarr.json").
290
+ */
291
+ function normalizeKey(key) {
292
+ return key.startsWith("/") ? key.slice(1) : key;
293
+ }
294
+ /**
295
+ * Convert a MemoryStore to ZIP data following RFC-9 specification.
296
+ *
297
+ * According to RFC-9:
298
+ * - Root-level zarr.json must be the first entry
299
+ * - Other zarr.json files should follow in breadth-first order
300
+ * - ZIP-level compression should be disabled (ZIP_STORED)
301
+ * - A comment with OME-Zarr version should be added
302
+ *
303
+ * @param store - MemoryStore containing zarr data
304
+ * @param options - Options for ZIP creation
305
+ * @returns ZIP file data as Uint8Array
306
+ */
307
+ export function memoryStoreToZip(store, options = {}) {
308
+ const version = options.version ?? "0.5";
309
+ // Get all keys, normalize them (remove leading slashes from zarrita),
310
+ // and order them for RFC-9 compliance
311
+ const keys = Array.from(store.keys()).map(normalizeKey);
312
+ const orderedKeys = orderFilesForRfc9(keys);
313
+ // Build files object in the correct order
314
+ // Note: JavaScript objects maintain insertion order for string keys
315
+ const files = {};
316
+ for (const key of orderedKeys) {
317
+ // Try both normalized and original key (with leading slash) for lookup
318
+ const data = store.get(key) ?? store.get("/" + key);
319
+ if (data) {
320
+ files[key] = data;
321
+ }
322
+ }
323
+ // Create ZIP with no compression (level: 0 = ZIP_STORED equivalent)
324
+ const zipData = zipSync(files, { level: 0 });
325
+ // Add OME-Zarr version comment as per RFC-9
326
+ // Include jsonFirst flag to indicate zarr.json files are ordered
327
+ // breadth-first and precede other content
328
+ const comment = JSON.stringify({
329
+ ome: {
330
+ version,
331
+ zipFile: { centralDirectory: { jsonFirst: true } },
332
+ },
333
+ });
334
+ const zipWithComment = addZipComment(zipData, comment);
335
+ return zipWithComment;
336
+ }
337
+ //# sourceMappingURL=rfc9_zip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rfc9_zip.js","sourceRoot":"","sources":["../../src/io/rfc9_zip.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,41 @@
1
1
  import * as zarr from "zarrita";
2
2
  import type { Multiscales } from "../types/multiscales.js";
3
3
  import type { MemoryStore } from "./from_ngff_zarr-browser.js";
4
+ export { isOzxPath } from "./rfc9_zip.js";
4
5
  export interface ToNgffZarrOptions {
5
6
  overwrite?: boolean;
6
7
  version?: "0.4" | "0.5";
7
8
  chunksPerShard?: number | number[] | Record<string, number>;
8
9
  }
10
+ /**
11
+ * Options for writing to .ozx (RFC-9) format.
12
+ * Note: chunksPerShard is NOT supported for .ozx files and will throw an error.
13
+ */
14
+ export interface ToNgffZarrOzxOptions {
15
+ /** List of RFC numbers to enable (e.g., [4] for RFC 4 anatomical orientation) */
16
+ enabledRfcs?: number[] | undefined;
17
+ }
9
18
  /**
10
19
  * Browser-compatible version of toNgffZarr.
11
20
  * Only supports MemoryStore (Map) for writing.
12
21
  * Does NOT support local file paths or HTTP URLs (use the full version in Node.js/Deno).
13
22
  */
14
23
  export declare function toNgffZarr(store: string | MemoryStore | zarr.FetchStore, multiscales: Multiscales, options?: ToNgffZarrOptions): Promise<void>;
24
+ /**
25
+ * Create OME-Zarr .ozx ZIP data (RFC-9) - Browser version.
26
+ *
27
+ * This function creates an OME-Zarr hierarchy in memory and returns
28
+ * the ZIP data as a Uint8Array. This is the browser-compatible version
29
+ * that returns the raw ZIP data for download or further processing.
30
+ *
31
+ * Note: Sharding is NOT supported because zarrita does not currently
32
+ * support writing shards. If you need sharding, use the Python implementation.
33
+ *
34
+ * @param multiscales - Multiscales data to write
35
+ * @param options - Options for writing
36
+ * @returns ZIP file data as Uint8Array
37
+ *
38
+ * @see https://ngff.openmicroscopy.org/rfc/9/index.html
39
+ */
40
+ export declare function toNgffZarrOzx(multiscales: Multiscales, _options?: ToNgffZarrOzxOptions): Promise<Uint8Array>;
15
41
  //# sourceMappingURL=to_ngff_zarr-browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"to_ngff_zarr-browser.d.ts","sourceRoot":"","sources":["../../src/io/to_ngff_zarr-browser.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7D;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC,UAAU,EAC7C,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAwFf"}
1
+ {"version":3,"file":"to_ngff_zarr-browser.d.ts","sourceRoot":"","sources":["../../src/io/to_ngff_zarr-browser.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI/D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7D;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC,UAAU,EAC7C,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAyFf;AAsVD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,WAAW,EACxB,QAAQ,GAAE,oBAAyB,GAClC,OAAO,CAAC,UAAU,CAAC,CAkBrB"}
@@ -4,6 +4,9 @@
4
4
  // (which contains Node.js-specific modules like node:fs, node:buffer, node:path)
5
5
  import * as zarr from "zarrita";
6
6
  import { createQueue } from "../utils/create_queue.js";
7
+ import { memoryStoreToZip } from "./rfc9_zip.js";
8
+ import { writeMultiscalesToMemoryStore } from "./to_ngff_zarr_ozx_common.js";
9
+ export { isOzxPath } from "./rfc9_zip.js";
7
10
  /**
8
11
  * Browser-compatible version of toNgffZarr.
9
12
  * Only supports MemoryStore (Map) for writing.
@@ -47,22 +50,24 @@ export async function toNgffZarr(store, multiscales, options = {}) {
47
50
  }),
48
51
  };
49
52
  // Create the root group with OME-Zarr metadata
50
- // For version 0.5, wrap metadata under "ome" property
51
- // For version 0.4, place multiscales directly at root
53
+ // For version 0.5, wrap metadata under "ome" property (including omero)
54
+ // For version 0.4, place multiscales and omero directly at root
52
55
  const attributes = _version === "0.5"
53
56
  ? {
54
57
  ome: {
55
58
  version: _version,
56
59
  multiscales: [multiscalesMetadata],
60
+ ...(multiscales.metadata.omero && {
61
+ omero: multiscales.metadata.omero,
62
+ }),
57
63
  },
58
64
  }
59
65
  : {
60
66
  multiscales: [multiscalesMetadata],
67
+ ...(multiscales.metadata.omero && {
68
+ omero: multiscales.metadata.omero,
69
+ }),
61
70
  };
62
- // Add OMERO metadata at root level if present (both versions)
63
- if (multiscales.metadata.omero) {
64
- attributes.omero = multiscales.metadata.omero;
65
- }
66
71
  const rootGroup = await zarr.create(root, { attributes });
67
72
  // Write each image in the multiscales
68
73
  for (let i = 0; i < multiscales.images.length; i++) {
@@ -321,4 +326,30 @@ function calculateChunkStride(chunkShape) {
321
326
  }
322
327
  return stride;
323
328
  }
329
+ /**
330
+ * Create OME-Zarr .ozx ZIP data (RFC-9) - Browser version.
331
+ *
332
+ * This function creates an OME-Zarr hierarchy in memory and returns
333
+ * the ZIP data as a Uint8Array. This is the browser-compatible version
334
+ * that returns the raw ZIP data for download or further processing.
335
+ *
336
+ * Note: Sharding is NOT supported because zarrita does not currently
337
+ * support writing shards. If you need sharding, use the Python implementation.
338
+ *
339
+ * @param multiscales - Multiscales data to write
340
+ * @param options - Options for writing
341
+ * @returns ZIP file data as Uint8Array
342
+ *
343
+ * @see https://ngff.openmicroscopy.org/rfc/9/index.html
344
+ */
345
+ export async function toNgffZarrOzx(multiscales, _options = {}) {
346
+ const enabledRfcs = _options.enabledRfcs;
347
+ // Create a memory store to hold the zarr data
348
+ const memoryStore = new Map();
349
+ // Use the shared write function
350
+ await writeMultiscalesToMemoryStore(memoryStore, multiscales, enabledRfcs, _writeImage);
351
+ // Convert the memory store to ZIP data
352
+ const zipData = memoryStoreToZip(memoryStore, { version: "0.5" });
353
+ return zipData;
354
+ }
324
355
  //# sourceMappingURL=to_ngff_zarr-browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"to_ngff_zarr-browser.js","sourceRoot":"","sources":["../../src/io/to_ngff_zarr-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"to_ngff_zarr-browser.js","sourceRoot":"","sources":["../../src/io/to_ngff_zarr-browser.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,84 @@ import type { Multiscales } from "../types/multiscales.js";
3
3
  import type { MemoryStore } from "./from_ngff_zarr.js";
4
4
  export interface ToNgffZarrOptions {
5
5
  overwrite?: boolean;
6
+ /**
7
+ * OME-Zarr version to write. Defaults to "0.4" for regular Zarr files.
8
+ * For .ozx files (RFC-9), this must be version 0.5. If omitted for .ozx files,
9
+ * it defaults to 0.5. If explicitly set to any other value for .ozx files,
10
+ * an error will be thrown.
11
+ */
6
12
  version?: "0.4" | "0.5";
7
13
  chunksPerShard?: number | number[] | Record<string, number>;
14
+ /** List of RFC numbers to enable (e.g., [4] for RFC 4 anatomical orientation) */
15
+ enabledRfcs?: number[];
8
16
  }
17
+ /**
18
+ * Options for writing to .ozx (RFC-9) format.
19
+ * Note: chunksPerShard is NOT supported for .ozx files and will throw an error.
20
+ */
21
+ export interface ToNgffZarrOzxOptions {
22
+ /** List of RFC numbers to enable (e.g., [4] for RFC 4 anatomical orientation) */
23
+ enabledRfcs?: number[] | undefined;
24
+ }
25
+ /**
26
+ * Write multiscales data to an OME-Zarr store.
27
+ *
28
+ * This function automatically detects .ozx paths (RFC-9 zipped OME-Zarr format)
29
+ * and handles them appropriately. For .ozx files:
30
+ * - Version 0.5 is always used when the version option is omitted (undefined)
31
+ * - Sharding (chunksPerShard) is not supported
32
+ * - An error is thrown if you explicitly specify a version other than "0.5"
33
+ *
34
+ * @param store - File path, MemoryStore, or FetchStore to write to
35
+ * @param multiscales - Multiscales data to write
36
+ * @param options - Writing options
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // Writing to .ozx file - version 0.5 is used automatically
41
+ * await toNgffZarr("output.ozx", multiscales);
42
+ *
43
+ * // Writing to regular zarr with version 0.4 (default)
44
+ * await toNgffZarr("output.zarr", multiscales);
45
+ *
46
+ * // Writing to regular zarr with version 0.5
47
+ * await toNgffZarr("output.zarr", multiscales, { version: "0.5" });
48
+ * ```
49
+ */
9
50
  export declare function toNgffZarr(store: string | MemoryStore | zarr.FetchStore, multiscales: Multiscales, options?: ToNgffZarrOptions): Promise<void>;
51
+ /**
52
+ * Write OME-Zarr to .ozx ZIP file (RFC-9).
53
+ *
54
+ * This function creates an OME-Zarr hierarchy in memory and then writes it
55
+ * to a ZIP file following RFC-9 specification:
56
+ * - Root-level zarr.json is the first entry
57
+ * - Other zarr.json files follow in breadth-first order
58
+ * - ZIP-level compression is disabled (ZIP_STORED)
59
+ * - A comment with OME-Zarr version is added
60
+ *
61
+ * Note: Sharding is NOT supported because zarrita does not currently
62
+ * support writing shards. If you need sharding, use the Python implementation.
63
+ *
64
+ * @param path - Output .ozx file path
65
+ * @param multiscales - Multiscales data to write
66
+ * @param options - Options for writing
67
+ * @throws Error if called in a browser environment (use toNgffZarrOzxData instead)
68
+ *
69
+ * @see https://ngff.openmicroscopy.org/rfc/9/index.html
70
+ */
71
+ export declare function toNgffZarrOzx(path: string, multiscales: Multiscales, options?: ToNgffZarrOzxOptions): Promise<void>;
72
+ /**
73
+ * Create OME-Zarr .ozx ZIP data (RFC-9).
74
+ *
75
+ * This function creates an OME-Zarr hierarchy in memory and returns
76
+ * the ZIP data as a Uint8Array. Useful for browser environments or
77
+ * when you need the raw ZIP data.
78
+ *
79
+ * @param multiscales - Multiscales data to write
80
+ * @param options - Options for writing
81
+ * @returns ZIP file data as Uint8Array
82
+ *
83
+ * @see https://ngff.openmicroscopy.org/rfc/9/index.html
84
+ */
85
+ export declare function toNgffZarrOzxData(multiscales: Multiscales, options?: ToNgffZarrOzxOptions): Promise<Uint8Array>;
10
86
  //# sourceMappingURL=to_ngff_zarr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"to_ngff_zarr.d.ts","sourceRoot":"","sources":["../../src/io/to_ngff_zarr.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7D;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC,UAAU,EAC7C,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAsGf"}
1
+ {"version":3,"file":"to_ngff_zarr.d.ts","sourceRoot":"","sources":["../../src/io/to_ngff_zarr.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQvD,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5D,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC,UAAU,EAC7C,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAwIf;AAsVD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,UAAU,CAAC,CAerB"}