diff --git a/CHANGELOG.md b/CHANGELOG.md index d19f3db..953ef8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [v0.1.2](https://github.com/silx-kit/vscode-h5web/compare/v0.1.1...v0.1.2) + +- 📂 Add **Blosc2** and **Bitshuffle** compression plugins. +- ✨ Bump H5Web from v10.1.0 to v11.0.0 + - `[H5WasmProvider]` Support lazy-loading Blosc2 and Bitshuffle compression + plugins + - `[H5WasmProvider]` Correctly parse the following advanced HDF5 types: + `H5T_OPAQUE`, `H5T_VLEN`, and `H5T_REFERENCE` so they no longer appear as + _Unknown_ in the metadata viewer. + - For the full list of changes, please refer to the release notes for + [v11.0.0](https://github.com/silx-kit/h5web/releases/tag/v11.0.0) + ## [v0.1.1](https://github.com/silx-kit/vscode-h5web/compare/v0.1.0...v0.1.1) - 🐛 Fix compression plugins failing to load under symlinked user directory. diff --git a/README.md b/README.md index 64dc703..c68f0f2 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,12 @@ follows: }, ``` +## Supported HDF5 compression plugins + +The extension supports reading datasets compressed with any of the plugins +available in +[h5wasm-plugins@0.0.3](https://github.com/h5wasm/h5wasm-plugins/tree/v0.0.3?tab=readme-ov-file#included-plugins). + ## Known limitations This extension uses [h5wasm](https://github.com/usnistgov/h5wasm) to read HDF5 @@ -53,5 +59,3 @@ files and therefore suffers from the following limitations: - Files bigger than 2GB cannot be read - External links cannot be resolved -- Datasets compressed with external filters (such as those of - [hdf5plugin](https://github.com/silx-kit/hdf5plugin)) cannot be read diff --git a/package.json b/package.json index fc104dd..be09fec 100644 --- a/package.json +++ b/package.json @@ -63,8 +63,8 @@ "pub": "pnpm dlx @vscode/vsce publish --no-dependencies" }, "dependencies": { - "@h5web/app": "10.1.0", - "@h5web/h5wasm": "10.1.0", + "@h5web/app": "11.0.0", + "@h5web/h5wasm": "11.0.0", "@react-hookz/web": "15.0.1", "axios": "0.27.2", "h5wasm-plugins": "0.0.3", @@ -81,7 +81,7 @@ "@types/vscode": "~1.86.0", "@types/vscode-webview": "~1.57.2", "@vitejs/plugin-react": "1.3.2", - "esbuild": "0.14.49", + "esbuild": "0.20.0", "prettier": "2.8.7", "typescript": "5.2.2", "vite": "2.9.13" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index df61978..caf33e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,11 +6,11 @@ settings: dependencies: '@h5web/app': - specifier: 10.1.0 - version: 10.1.0(@types/react@18.2.25)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) + specifier: 11.0.0 + version: 11.0.0(@types/react@18.2.25)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) '@h5web/h5wasm': - specifier: 10.1.0 - version: 10.1.0(@h5web/app@10.1.0)(react@18.2.0)(typescript@5.2.2) + specifier: 11.0.0 + version: 11.0.0(@h5web/app@11.0.0)(react@18.2.0)(typescript@5.2.2) '@react-hookz/web': specifier: 15.0.1 version: 15.0.1(react-dom@18.2.0)(react@18.2.0) @@ -56,8 +56,8 @@ devDependencies: specifier: 1.3.2 version: 1.3.2 esbuild: - specifier: 0.14.49 - version: 0.14.49 + specifier: 0.20.0 + version: 0.20.0 prettier: specifier: 2.8.7 version: 2.8.7 @@ -338,8 +338,215 @@ packages: to-fast-properties: 2.0.0 dev: true - /@h5web/app@10.1.0(@types/react@18.2.25)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2): - resolution: {integrity: sha512-M0PDOFeCikcC/BGMbr4opsd5vEQgAtj83Gc2egmhF1MVjTdFBvl9YipdaLRlLnDpmK/xMOXwuoE5vbxqCvBS6g==} + /@esbuild/aix-ppc64@0.20.0: + resolution: {integrity: sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.20.0: + resolution: {integrity: sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.20.0: + resolution: {integrity: sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.20.0: + resolution: {integrity: sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.20.0: + resolution: {integrity: sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.20.0: + resolution: {integrity: sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.20.0: + resolution: {integrity: sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.20.0: + resolution: {integrity: sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.20.0: + resolution: {integrity: sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.20.0: + resolution: {integrity: sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.20.0: + resolution: {integrity: sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.20.0: + resolution: {integrity: sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.20.0: + resolution: {integrity: sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.20.0: + resolution: {integrity: sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.20.0: + resolution: {integrity: sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.20.0: + resolution: {integrity: sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.20.0: + resolution: {integrity: sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.20.0: + resolution: {integrity: sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.20.0: + resolution: {integrity: sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.20.0: + resolution: {integrity: sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.20.0: + resolution: {integrity: sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.20.0: + resolution: {integrity: sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.20.0: + resolution: {integrity: sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@h5web/app@11.0.0(@types/react@18.2.25)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2): + resolution: {integrity: sha512-ubtbFtSYOHmBfCq5a/gjtJlDIDKm1YmxXD//Q7GWHYnuDeSc+tMGUai7Xd9+gGgWSgUqZ+o8uBvfbDwQ5MC1Ag==} peerDependencies: react: '>=18' react-dom: '>=18' @@ -348,24 +555,23 @@ packages: typescript: optional: true dependencies: - '@h5web/lib': 10.1.0(@react-three/fiber@8.15.12)(@types/react@18.2.25)(react-dom@18.2.0)(react@18.2.0)(three@0.159.0)(typescript@5.2.2) - '@react-hookz/web': 23.1.0(react-dom@18.2.0)(react@18.2.0) - '@react-three/fiber': 8.15.12(react-dom@18.2.0)(react@18.2.0)(three@0.159.0) - axios: 1.6.2 + '@h5web/lib': 11.0.0(@react-three/fiber@8.15.16)(@types/react@18.2.25)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)(typescript@5.2.2) + '@react-hookz/web': 24.0.4(react-dom@18.2.0)(react@18.2.0) + '@react-three/fiber': 8.15.16(react-dom@18.2.0)(react@18.2.0)(three@0.161.0) + axios: 1.6.7 d3-format: 3.1.0 - lodash: 4.17.21 ndarray: 1.0.19 ndarray-ops: 1.2.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-error-boundary: 4.0.11(react@18.2.0) - react-icons: 4.12.0(react@18.2.0) + react-error-boundary: 4.0.12(react@18.2.0) + react-icons: 5.0.1(react@18.2.0) react-reflex: 4.1.0(react-dom@18.2.0)(react@18.2.0) react-slider: 2.0.4(react@18.2.0) react-suspense-fetch: 0.4.1 - three: 0.159.0 + three: 0.161.0 typescript: 5.2.2 - zustand: 4.4.7(@types/react@18.2.25)(react@18.2.0) + zustand: 4.5.0(@types/react@18.2.25)(react@18.2.0) transitivePeerDependencies: - '@types/react' - debug @@ -378,25 +584,25 @@ packages: - react-native dev: false - /@h5web/h5wasm@10.1.0(@h5web/app@10.1.0)(react@18.2.0)(typescript@5.2.2): - resolution: {integrity: sha512-FiAuiGHKSGWW4x3kV7Ezrf5AICLpmw7WvGsY5JerKEb8YqyvbS1jB0mcHcKjYDsDWRVU0xqltRLflCKLGBIVPw==} + /@h5web/h5wasm@11.0.0(@h5web/app@11.0.0)(react@18.2.0)(typescript@5.2.2): + resolution: {integrity: sha512-wMJLHI1tJ14rg+MYzKbXOYW/VeoqEsg+1XDKaeq844mtMDwndCsJDQzNE8EyA/LfsJjab2a7ZWTvGbmodgIB9Q==} peerDependencies: - '@h5web/app': 10.1.0 + '@h5web/app': 11.0.0 react: '>=18' typescript: '>=4.5' peerDependenciesMeta: typescript: optional: true dependencies: - '@h5web/app': 10.1.0(@types/react@18.2.25)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) - h5wasm: 0.7.0 - nanoid: 5.0.4 + '@h5web/app': 11.0.0(@types/react@18.2.25)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) + h5wasm: 0.7.1 + nanoid: 5.0.5 react: 18.2.0 typescript: 5.2.2 dev: false - /@h5web/lib@10.1.0(@react-three/fiber@8.15.12)(@types/react@18.2.25)(react-dom@18.2.0)(react@18.2.0)(three@0.159.0)(typescript@5.2.2): - resolution: {integrity: sha512-wVZMknpeqjBGrKm8XbuDTkKhv1mNQot0DoPfQmHQWJXzwvL23acD9kCnWpswKkz6R9f2XAdQAYeFPMLmsW5u1g==} + /@h5web/lib@11.0.0(@react-three/fiber@8.15.16)(@types/react@18.2.25)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)(typescript@5.2.2): + resolution: {integrity: sha512-3ILudma+6Z/MTPU94dUTRLKh2sbsEzRH/i47irV4fxOo5WGH/hMjATUcyt6dnFYq2Ykenhi639/yu2M1c3bpOA==} peerDependencies: '@react-three/fiber': '>=8' react: '>=18' @@ -407,9 +613,9 @@ packages: typescript: optional: true dependencies: - '@react-hookz/web': 23.1.0(react-dom@18.2.0)(react@18.2.0) - '@react-three/fiber': 8.15.12(react-dom@18.2.0)(react@18.2.0)(three@0.159.0) - '@visx/axis': 3.5.0(react@18.2.0) + '@react-hookz/web': 24.0.4(react-dom@18.2.0)(react@18.2.0) + '@react-three/fiber': 8.15.16(react-dom@18.2.0)(react@18.2.0)(three@0.161.0) + '@visx/axis': 3.8.0(react@18.2.0) '@visx/drag': 3.3.0(react@18.2.0) '@visx/grid': 3.5.0(react@18.2.0) '@visx/scale': 3.5.0 @@ -421,20 +627,19 @@ packages: d3-interpolate: 3.0.1 d3-scale: 4.0.2 d3-scale-chromatic: 3.0.0 - lodash: 4.17.21 ndarray: 1.0.19 ndarray-ops: 1.2.2 react: 18.2.0 react-aria-menubutton: 7.0.3(react@18.2.0) react-dom: 18.2.0(react@18.2.0) - react-icons: 4.12.0(react@18.2.0) + react-icons: 5.0.1(react@18.2.0) react-keyed-flatten-children: 3.0.0(react@18.2.0) react-measure: 2.5.2(react-dom@18.2.0)(react@18.2.0) react-slider: 2.0.4(react@18.2.0) react-window: 1.8.10(react-dom@18.2.0)(react@18.2.0) - three: 0.159.0 + three: 0.161.0 typescript: 5.2.2 - zustand: 4.4.7(@types/react@18.2.25)(react@18.2.0) + zustand: 4.5.0(@types/react@18.2.25)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer @@ -502,8 +707,9 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@react-hookz/web@23.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-fvbURdsa1ukttbLR1ASE/XmqXP09vZ1PiCYppYeR1sNMzCrdkG0iBnjxniFSVjJ8gIw2fRs6nqMTbeBz2uAkuA==} + /@react-hookz/web@24.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-DcIM6JiZklDyHF6CRD1FTXzuggAkQ+3Ncq2Wln7Kdih8GV6ZIeN9JfS6ZaQxpQUxan8/4n0J2V/R7nMeiSrb2Q==} + engines: {node: '>=18.0.0'} peerDependencies: js-cookie: ^3.0.5 react: ^16.8 || ^17 || ^18 @@ -517,8 +723,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@react-three/fiber@8.15.12(react-dom@18.2.0)(react@18.2.0)(three@0.159.0): - resolution: {integrity: sha512-yg0CyXVHIdSbNjM/GAgDrGJnKLTsfTlaR5FoJGEh9IgVKptOoudnFZhBt/Cau4rzx2X6eLmB1+aWOm1dEHSUpg==} + /@react-three/fiber@8.15.16(react-dom@18.2.0)(react@18.2.0)(three@0.161.0): + resolution: {integrity: sha512-4f47K9e2mP8W/guNtu3e2J/Nt6GwKTsX/YP2dktPZRcpHYEsqfXCO8kSfvVMb+lQ8wR0HoFzggqdnGuhZaui0g==} peerDependencies: expo: '>=43.0' expo-asset: '>=8.4' @@ -554,7 +760,7 @@ packages: react-use-measure: 2.1.1(react-dom@18.2.0)(react@18.2.0) scheduler: 0.21.0 suspend-react: 0.1.3(react@18.2.0) - three: 0.159.0 + three: 0.161.0 zustand: 3.7.2(react@18.2.0) dev: false @@ -674,8 +880,8 @@ packages: resolution: {integrity: sha512-n3u5sqXQJhf1CS68mw3Wf16FQ4cRPNBBwdYLFzq3UddiADOim1Pn3Y6PBdDilz1vOJF3ybLxJ8ZEDlLIzrOQZg==} dev: false - /@visx/axis@3.5.0(react@18.2.0): - resolution: {integrity: sha512-vaY/CGk9+iQL1BFlHd5muIAuAjpPKLwtt6HwpITErW+cImjQJlNgYdgbwDCyuJMmJqXOlC9byWlmF+iI1dOPYg==} + /@visx/axis@3.8.0(react@18.2.0): + resolution: {integrity: sha512-CFIxPnRlIWIz8N+5n4DTSOQQ2Yb0D35YPylEkmk/c7J4haLCEhyI44JaOg6OYOk6ofCOsu9Fqe6dFAOP+MP1IQ==} peerDependencies: react: ^16.3.0-0 || ^17.0.0-0 || ^18.0.0-0 dependencies: @@ -875,10 +1081,10 @@ packages: - debug dev: false - /axios@1.6.2: - resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} + /axios@1.6.7: + resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} dependencies: - follow-redirects: 1.15.1 + follow-redirects: 1.15.5 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -1291,6 +1497,37 @@ packages: esbuild-windows-arm64: 0.14.49 dev: true + /esbuild@0.20.0: + resolution: {integrity: sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.0 + '@esbuild/android-arm': 0.20.0 + '@esbuild/android-arm64': 0.20.0 + '@esbuild/android-x64': 0.20.0 + '@esbuild/darwin-arm64': 0.20.0 + '@esbuild/darwin-x64': 0.20.0 + '@esbuild/freebsd-arm64': 0.20.0 + '@esbuild/freebsd-x64': 0.20.0 + '@esbuild/linux-arm': 0.20.0 + '@esbuild/linux-arm64': 0.20.0 + '@esbuild/linux-ia32': 0.20.0 + '@esbuild/linux-loong64': 0.20.0 + '@esbuild/linux-mips64el': 0.20.0 + '@esbuild/linux-ppc64': 0.20.0 + '@esbuild/linux-riscv64': 0.20.0 + '@esbuild/linux-s390x': 0.20.0 + '@esbuild/linux-x64': 0.20.0 + '@esbuild/netbsd-x64': 0.20.0 + '@esbuild/openbsd-x64': 0.20.0 + '@esbuild/sunos-x64': 0.20.0 + '@esbuild/win32-arm64': 0.20.0 + '@esbuild/win32-ia32': 0.20.0 + '@esbuild/win32-x64': 0.20.0 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -1319,6 +1556,16 @@ packages: optional: true dev: false + /follow-redirects@1.15.5: + resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -1364,8 +1611,8 @@ packages: resolution: {integrity: sha512-GxBWGVxBftyq67kAbS4WPmTH3a8hGKigdMm+IVJ7tLY7BHj+nqDTUKO9RmmPBHy6Pvq5uW1YpIJr/oGanw+RyQ==} dev: false - /h5wasm@0.7.0: - resolution: {integrity: sha512-5nFOpklF0HoYCS4Xd4lbYPl3UHolc1VxtW1nKz5BEYi5pingqVPjJVTwnNiIOqYDKuXmxzYBr2wsV3BxjdVZkw==} + /h5wasm@0.7.1: + resolution: {integrity: sha512-/mLmL35/vSJXgK6zPpHPINj8nxLYlqqnt4ScVZe2W8L9e1ZhVg+a1/4aBBmjfW8AiTbYsEn9Yu3nEOB+CuOyLw==} dev: false /has-flag@3.0.0: @@ -1472,8 +1719,8 @@ packages: hasBin: true dev: true - /nanoid@5.0.4: - resolution: {integrity: sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig==} + /nanoid@5.0.5: + resolution: {integrity: sha512-/Veqm+QKsyMY3kqi4faWplnY1u+VuKO3dD2binyPIybP31DRO29bPF+1mszgLnrR2KqSLceFLBNw0zmvDzN1QQ==} engines: {node: ^18 || >=20} hasBin: true dev: false @@ -1575,8 +1822,8 @@ packages: react: 18.2.0 dev: false - /react-error-boundary@4.0.11(react@18.2.0): - resolution: {integrity: sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw==} + /react-error-boundary@4.0.12(react@18.2.0): + resolution: {integrity: sha512-kJdxdEYlb7CPC1A0SeUY38cHpjuu6UkvzKiAmqmOFL21VRfMhOcWxTCBgLVCO0VEMh9JhFNcVaXlV4/BTpiwOA==} peerDependencies: react: '>=16.13.1' dependencies: @@ -1584,8 +1831,8 @@ packages: react: 18.2.0 dev: false - /react-icons@4.12.0(react@18.2.0): - resolution: {integrity: sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==} + /react-icons@5.0.1(react@18.2.0): + resolution: {integrity: sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==} peerDependencies: react: '*' dependencies: @@ -1798,8 +2045,8 @@ packages: resolution: {integrity: sha512-HnA3I2sxRQe/SZgQTQgQvvA17DhfzhBJ1LfSOXZ5VUTbxGLvnAqUef84ZGNNSEbk1ZMEIDeghTHZagJ7LifAgg==} dev: false - /three@0.159.0: - resolution: {integrity: sha512-eCmhlLGbBgucuo4VEA9IO3Qpc7dh8Bd4VKzr7WfW4+8hMcIfoAVi1ev0pJYN9PTTsCslbcKgBwr2wNZ1EvLInA==} + /three@0.161.0: + resolution: {integrity: sha512-LC28VFtjbOyEu5b93K0bNRLw1rQlMJ85lilKsYj6dgTu+7i17W+JCCEbvrpmNHF1F3NAUqDSWq50UD7w9H2xQw==} dev: false /to-fast-properties@2.0.0: @@ -1875,12 +2122,12 @@ packages: react: 18.2.0 dev: false - /zustand@4.4.7(@types/react@18.2.25)(react@18.2.0): - resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==} + /zustand@4.5.0(@types/react@18.2.25)(react@18.2.0): + resolution: {integrity: sha512-zlVFqS5TQ21nwijjhJlx4f9iGrXSL0o/+Dpy4txAP22miJ8Ti6c1Ol1RLNN98BMib83lmDH/2KmLwaNXpjrO1A==} engines: {node: '>=12.7.0'} peerDependencies: '@types/react': '>=16.8' - immer: '>=9.0' + immer: '>=9.0.6' react: '>=16.8' peerDependenciesMeta: '@types/react': diff --git a/src/models.ts b/src/models.ts index 0f783b1..a94ce15 100644 --- a/src/models.ts +++ b/src/models.ts @@ -1,4 +1,5 @@ import { ExportFormat } from '@h5web/app'; +import { Plugin } from '@h5web/h5wasm'; export type Message = | { type: MessageType.Ready } @@ -15,7 +16,7 @@ export interface FileInfo { uri: string; name: string; size: number; - supportedPlugins: Record; + supportedPlugins: Record; } export interface Export { diff --git a/src/plugins.ts b/src/plugins.ts index 71a46aa..79f77bf 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -1,4 +1,7 @@ +import { Plugin } from '@h5web/h5wasm'; +import bshuf from 'h5wasm-plugins/plugins/libH5Zbshuf.so'; import blosc from 'h5wasm-plugins/plugins/libH5Zblosc.so'; +import blosc2 from 'h5wasm-plugins/plugins/libH5Zblosc2.so'; import bz2 from 'h5wasm-plugins/plugins/libH5Zbz2.so'; import lz4 from 'h5wasm-plugins/plugins/libH5Zlz4.so'; import lzf from 'h5wasm-plugins/plugins/libH5Zlzf.so'; @@ -6,4 +9,14 @@ import szf from 'h5wasm-plugins/plugins/libH5Zszf.so'; import zfp from 'h5wasm-plugins/plugins/libH5Zzfp.so'; import zstd from 'h5wasm-plugins/plugins/libH5Zzstd.so'; -export const PLUGINS = { blosc, bz2, lz4, lzf, szf, zfp, zstd }; +export const PLUGINS = { + bshuf, + blosc, + blosc2, + bz2, + lz4, + lzf, + szf, + zfp, + zstd, +} satisfies Record;