diff --git a/apps/demo/src/Home.tsx b/apps/demo/src/Home.tsx
index 351c40ec1..f42ca8009 100644
--- a/apps/demo/src/Home.tsx
+++ b/apps/demo/src/Home.tsx
@@ -87,16 +87,22 @@ function Home() {
group (Argonne National Laboratory).
- grove.h5 - a file used
- to test the H5GroveProvider
provider; it contains
- datasets with NaN
, Infinity
, boolean
- and complex values, as well as RGB images and 4D stacks.
+ grove.h5 - a file
+ designed to demonstrate the capabilities of{' '}
+ H5GroveProvider
; it contains datasets with{' '}
+ NaN
, Infinity
, boolean and complex
+ values, as well as RGB images and 4D stacks.
links.h5 - a file with
external links, soft links and a virtual dataset to test link
resolution.
+
+ sample.h5 - the file
+ used to test H5GroveApi
and H5WasmApi
{' '}
+ internally.
+
tall.h5 - the demo file
of HSDS.
@@ -144,20 +150,24 @@ function Home() {
silx.org
:{' '}
- {['water_224.h5', 'epics.h5', 'grove.h5', 'tall.h5 '].map(
- (filename, index) => (
-
- {index > 0 && ', '}
-
- {filename}
-
-
- ),
- )}
+ {[
+ 'water_224.h5',
+ 'epics.h5',
+ 'grove.h5',
+ 'sample.h5',
+ 'tall.h5 ',
+ ].map((filename, index) => (
+
+ {index > 0 && ', '}
+
+ {filename}
+
+
+ ))}
diff --git a/packages/h5wasm/create_h5_sample.py b/create_h5_sample.py
similarity index 99%
rename from packages/h5wasm/create_h5_sample.py
rename to create_h5_sample.py
index 0bfaf49f1..4457a347a 100644
--- a/packages/h5wasm/create_h5_sample.py
+++ b/create_h5_sample.py
@@ -7,7 +7,7 @@
raise RuntimeError("Python 2 is not supported")
BASE_PATH = os.path.dirname(os.path.realpath(sys.argv[0]))
-DIST_PATH = os.path.join(BASE_PATH, "dist-h5")
+DIST_PATH = os.path.join(BASE_PATH, "dist")
os.makedirs(DIST_PATH, exist_ok=True)
h5py.get_config().track_order = True
diff --git a/packages/app/src/index.ts b/packages/app/src/index.ts
index dae25242d..ee982098d 100644
--- a/packages/app/src/index.ts
+++ b/packages/app/src/index.ts
@@ -22,5 +22,10 @@ export { assertEnvVar } from '@h5web/shared/guards';
export { default as DataProvider } from './providers/DataProvider';
export { DataProviderApi } from './providers/api';
export type { ValuesStoreParams } from './providers/models';
-export { flattenValue, getNameFromPath, sliceValue } from './providers/utils';
+export {
+ flattenValue,
+ getNameFromPath,
+ sliceValue,
+ getValueOrError,
+} from './providers/utils';
export { assertNonNull } from '@h5web/shared/guards';
diff --git a/packages/app/src/providers/h5grove/__snapshots__/h5grove-api.test.ts.snap b/packages/app/src/providers/h5grove/__snapshots__/h5grove-api.test.ts.snap
new file mode 100644
index 000000000..247c44bab
--- /dev/null
+++ b/packages/app/src/providers/h5grove/__snapshots__/h5grove-api.test.ts.snap
@@ -0,0 +1,1088 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`test file matches snapshot 1`] = `
+[
+ {
+ "name": "int8_scalar",
+ "rawType": "|i1",
+ "shape": [],
+ "type": {
+ "class": "Integer",
+ "endianness": "little-endian",
+ "size": 8,
+ },
+ "value": -128,
+ },
+ {
+ "name": "int8_2D",
+ "rawType": "|i1",
+ "shape": [
+ 2,
+ 3,
+ ],
+ "type": {
+ "class": "Integer",
+ "endianness": "little-endian",
+ "size": 8,
+ },
+ "value": Int8Array [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ ],
+ },
+ {
+ "name": "int16_scalar",
+ "rawType": "i4",
+ "shape": [],
+ "type": {
+ "class": "Integer",
+ "endianness": "big-endian",
+ "size": 32,
+ },
+ "value": 0,
+ },
+ {
+ "name": "int32_2D",
+ "rawType": "f4",
+ "shape": [],
+ "type": {
+ "class": "Float",
+ "endianness": "big-endian",
+ "size": 32,
+ },
+ "value": 0,
+ },
+ {
+ "name": "float32_2D",
+ "rawType": "