From da97af031a903081a996e98d897fdace067f0bcf Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Fri, 5 Jun 2026 09:49:02 -0300 Subject: [PATCH 1/4] fix: re-enable THUMBNAIL images in the volume pyramid Removes the skipThumbnails workaround that was added to avoid annotation misplacement when a THUMBNAIL image is present (#318). The underlying cause was in dicom-microscopy-viewer, which rounded the per-level zoom factor and thereby mis-scaled THUMBNAIL levels. With that fixed upstream (ImagingDataCommons/dicom-microscopy-viewer#245), thumbnails can be part of the rendered pyramid again, restoring fast initial load without misplacing annotations. Requires dicom-microscopy-viewer >= 0.48.22 (the release containing the fix). Refs #318 --- src/components/SlideViewer/utils/viewerUtils.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/SlideViewer/utils/viewerUtils.ts b/src/components/SlideViewer/utils/viewerUtils.ts index cb91b127..1bf2c94b 100644 --- a/src/components/SlideViewer/utils/viewerUtils.ts +++ b/src/components/SlideViewer/utils/viewerUtils.ts @@ -39,7 +39,6 @@ export const constructViewers = ({ clientMapping: clients, metadata: slide.volumeImages, controls: ['overview', 'position'], - skipThumbnails: true, preload, annotationOptions: clusteringPixelSizeThreshold !== undefined From dadd3f609be3b3d716b9dbbceb351d41d31ee8b6 Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Fri, 5 Jun 2026 11:38:48 -0300 Subject: [PATCH 2/4] Add ol --- package.json | 1 + pnpm-lock.yaml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/package.json b/package.json index e52744ae..cbdaee10 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "detect-browser": "^5.2.1", "dicom-microscopy-viewer": "^0.48.21", "dicomweb-client": "0.10.3", + "ol": "^10.7.0", "oidc-client": "^1.11.5", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ade0035..03911632 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,6 +43,9 @@ importers: oidc-client: specifier: ^1.11.5 version: 1.11.5 + ol: + specifier: ^10.7.0 + version: 10.9.0 react: specifier: ^18.2.0 version: 18.3.1 From 3af2abc63657a0a02316e2739631eb3d0f2764a1 Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Fri, 5 Jun 2026 12:01:38 -0300 Subject: [PATCH 3/4] Fix linking --- README.md | 24 ++++++-- craco.config.js | 78 ++++++++++++++++++++++++- package.json | 5 +- pnpm-lock.yaml | 152 +----------------------------------------------- 4 files changed, 100 insertions(+), 159 deletions(-) diff --git a/README.md b/README.md index db806465..7c982aff 100644 --- a/README.md +++ b/README.md @@ -413,26 +413,40 @@ If you are developing features or fixing bugs that require changes in both Slim 3. **Link dicom-microscopy-viewer in Slim** In the root directory of your Slim project, run: ```sh - pnpm link --global dicom-microscopy-viewer + pnpm link dicom-microscopy-viewer + ``` + Do **not** run `pnpm link dicom-microscopy-viewer` inside the `dicom-microscopy-viewer` repo itself — only `pnpm link --global` belongs there. + + Verify the link points at your local clone (not the registry copy under `.pnpm`): + ```sh + node -e "console.log(require('fs').realpathSync('node_modules/dicom-microscopy-viewer'))" ``` 4. **Enable live rebuilding in dicom-microscopy-viewer** - To automatically rebuild `dicom-microscopy-viewer` when you make changes, run the following command in the `dicom-microscopy-viewer` directory: + In a separate terminal, in the `dicom-microscopy-viewer` directory, run: ```sh pnpm run webpack:dynamic-import:watch ``` - This will watch for file changes and rebuild the library, so Slim can immediately use the updated code. + Slim imports the **built** `dist/dynamic-import` bundle, not `src/` directly. Wait for DMV watch to report `[emitted] dicomMicroscopyViewer.min.js` after each change. 5. **Run Slim as usual** In the Slim directory, start the development server: ```sh pnpm run start ``` - Slim will now use your locally linked version of `dicom-microscopy-viewer`. + When linked, `craco.config.js` registers the DMV `dist/` folder as a webpack watch dependency so Slim rebuilds after DMV watch emits a new bundle. Restart Slim after linking or after changing `craco.config.js`. ### Notes -- If you want to unlink and return to the npm-published version, run `pnpm unlink --global dicom-microscopy-viewer` and `pnpm install` in the Slim directory. +- Running `pnpm install` in Slim removes the link — re-run step 3 afterward. +- Do not add `link:` overrides to `package.json`; the commands above are sufficient. +- Slim imports OpenLayers CSS directly (`ol/ol.css`), so `ol` is listed as a direct dependency. This keeps linked dev working when DMV's transitive dependencies are not hoisted into Slim's `node_modules`. +- If Slim still serves a stale DMV bundle, confirm step 3 (realpath must not contain `.pnpm`) and that DMV watch logged `[emitted] dicomMicroscopyViewer.min.js` for your change. +- To unlink and return to the npm-published version: + ```sh + pnpm unlink dicom-microscopy-viewer + pnpm install + ``` ## Citation diff --git a/craco.config.js b/craco.config.js index 1039d728..67eadbf9 100644 --- a/craco.config.js +++ b/craco.config.js @@ -1,6 +1,35 @@ +const fs = require('fs') +const path = require('path') const CracoLessPlugin = require('craco-less') const CopyWebpackPlugin = require('copy-webpack-plugin') +/** + * When dicom-microscopy-viewer is pnpm-linked, resolve the real repo path so + * webpack can watch DMV dist/ rebuilds. The import alias must stay under + * node_modules (CRA ModuleScopePlugin blocks absolute paths outside src/). + */ +function getLinkedDmvPaths() { + const dmvEntry = path.resolve( + __dirname, + 'node_modules/dicom-microscopy-viewer', + ) + let dmvRoot + try { + dmvRoot = fs.realpathSync(dmvEntry) + } catch { + return null + } + + const isLinked = !dmvRoot.includes(`${path.sep}.pnpm${path.sep}`) + if (!isLinked) { + return null + } + + const dmvDist = path.join(dmvRoot, 'dist/dynamic-import') + const dmvBundle = path.join(dmvDist, 'dicomMicroscopyViewer.min.js') + return { dmvRoot, dmvDist, dmvBundle } +} + module.exports = { plugins: [ { @@ -26,8 +55,17 @@ module.exports = { ], webpack: { configure: (config, { env, paths }) => { + const linkedDmv = + env === 'development' ? getLinkedDmvPaths() : null + const dmvDist = + './node_modules/dicom-microscopy-viewer/dist/dynamic-import' + const dmvAlias = + 'dicom-microscopy-viewer/dist/dynamic-import/dicomMicroscopyViewer.min.js' + config.resolve = { + ...config.resolve, fallback: { + ...config.resolve?.fallback, fs: false, path: false }, @@ -39,8 +77,8 @@ module.exports = { * for the viewer. */ alias: { - 'dicom-microscopy-viewer': - 'dicom-microscopy-viewer/dist/dynamic-import/dicomMicroscopyViewer.min.js' + ...config.resolve?.alias, + 'dicom-microscopy-viewer': dmvAlias } } config.plugins.push( @@ -48,7 +86,7 @@ module.exports = { new CopyWebpackPlugin({ patterns: [ { - from: './node_modules/dicom-microscopy-viewer/dist/dynamic-import', + from: dmvDist, to: './static/js' } ] @@ -58,6 +96,40 @@ module.exports = { config.experiments = { asyncWebAssembly: true } + + if (linkedDmv) { + config.watchOptions = { + ...config.watchOptions, + followSymlinks: true, + } + + config.snapshot = { + ...config.snapshot, + managedPaths: [ + /^(.+?[\\/]node_modules[\\/])(?!dicom-microscopy-viewer)/, + ], + } + + config.plugins.push({ + apply: (compiler) => { + compiler.hooks.afterCompile.tap('WatchLinkedDmvDist', (compilation) => { + compilation.contextDependencies.add(linkedDmv.dmvDist) + compilation.fileDependencies.add(linkedDmv.dmvBundle) + }) + }, + }) + + config.devServer = { + ...config.devServer, + watchFiles: { + paths: [`${linkedDmv.dmvDist}/**/*`], + options: { + followSymlinks: true, + }, + }, + } + } + return config } }, diff --git a/package.json b/package.json index cbdaee10..a6d68773 100644 --- a/package.json +++ b/package.json @@ -43,8 +43,8 @@ "detect-browser": "^5.2.1", "dicom-microscopy-viewer": "^0.48.21", "dicomweb-client": "0.10.3", - "ol": "^10.7.0", "oidc-client": "^1.11.5", + "ol": "^10.7.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-error-boundary": "^3.1.4", @@ -103,7 +103,8 @@ "semver": "7.5.2", "serialize-javascript": "7.0.5", "tar": "7.5.16", - "underscore": "1.13.8" + "underscore": "1.13.8", + "dicom-microscopy-viewer": "link:../../../../Library/pnpm/global/5/node_modules/dicom-microscopy-viewer" } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 03911632..587845e1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,7 @@ overrides: serialize-javascript: 7.0.5 tar: 7.5.16 underscore: 1.13.8 + dicom-microscopy-viewer: link:../../../../Library/pnpm/global/5/node_modules/dicom-microscopy-viewer importers: @@ -35,8 +36,8 @@ importers: specifier: ^5.2.1 version: 5.3.0 dicom-microscopy-viewer: - specifier: ^0.48.21 - version: 0.48.21 + specifier: link:../../../../Library/pnpm/global/5/node_modules/dicom-microscopy-viewer + version: link:../../../../Library/pnpm/global/5/node_modules/dicom-microscopy-viewer dicomweb-client: specifier: 0.10.3 version: 0.10.3 @@ -988,22 +989,6 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@cornerstonejs/codec-charls@1.2.3': - resolution: {integrity: sha512-qKUe6DN0dnGzhhfZLYhH9UZacMcudjxcaLXCrpxJImT/M/PQvZCT2rllu6VGJbWKJWG+dMVV2zmmleZcdJ7/cA==} - engines: {node: '>=0.14'} - - '@cornerstonejs/codec-libjpeg-turbo-8bit@1.2.2': - resolution: {integrity: sha512-aAUMK2958YNpOb/7G6e2/aG7hExTiFTASlMt/v90XA0pRHdWiNg5ny4S5SAju0FbIw4zcMnR0qfY+yW3VG2ivg==} - engines: {node: '>=0.14'} - - '@cornerstonejs/codec-openjpeg@1.3.0': - resolution: {integrity: sha512-hP8WAZ63AcaDYmHbBVTY04x424AglXsRHrI6VBdW4eTiJ76f0heWrEodT9Sb3sNwazzYuyMOIZNndJPeVSeHcw==} - engines: {node: '>=0.14'} - - '@cornerstonejs/codec-openjph@2.4.7': - resolution: {integrity: sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w==} - engines: {node: '>=0.14'} - '@craco/craco@6.4.5': resolution: {integrity: sha512-8F2rIAao8sEh0FPP52ViEvDM9GjJ7acq0knu1c8UgI+EuZMD5/ZB270ol6jV4iNY7it9Umg/RoGBvNRUNr8U8w==} engines: {node: '>=6'} @@ -1143,10 +1128,6 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead - '@imagingdatacommons/dicomicc@0.2.3': - resolution: {integrity: sha512-gHRHIct+5kyTqONASiuGgjlZVEaawpwqSxfBbltLwhTVYedcA7hs0TPYJk3uR1P5RvvC2fC1lPJ0c8jhkGxtNA==} - engines: {node: '>=0.14'} - '@istanbuljs/load-nyc-config@1.1.0': resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -2576,9 +2557,6 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - colormap@2.3.2: - resolution: {integrity: sha512-jDOjaoEEmA9AgA11B/jCSAvYE95r3wRoAyTf3LEHGiUVlNHJaL1mRkf5AyLSpQBVGfTEPwGEqCIzL+kgr2WgNA==} - combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2612,9 +2590,6 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - complex.js@2.4.3: - resolution: {integrity: sha512-UrQVSUur14tNX6tiP4y8T4w4FeJAX3bi2cIv0pu/DTLFNxoq7z2Yh83Vfzztj6Px3X/lubqQ9IrPp7Bpn6p4MQ==} - compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -2926,9 +2901,6 @@ packages: dcmjs@0.35.0: resolution: {integrity: sha512-kKOX4y0XoSQsDx7xYh9HJLfAWizrvYNJPU/d+DGOehdGz1frvimBZDEL0iaCK46Lhy7amAmtv4g5hkjcxVF+kg==} - dcmjs@0.41.0: - resolution: {integrity: sha512-kr46REomItFeWz+0ck4Wif4uS5VVDWVlwdh5GGaCtTYHWfNQmrcCSiQOkrShc7Dc5zP8vNKrHEdORlZXenlg3w==} - debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -3033,9 +3005,6 @@ packages: engines: {node: '>= 4.2.1'} hasBin: true - dicom-microscopy-viewer@0.48.21: - resolution: {integrity: sha512-hOtT0DWvGk9yCVwLBfWzh8oeK1UG0eZRA5mOXdebMQ49LrbqR82WQPb8DXGqHBgeS/znx2d6KNfOfJkhpeIg7Q==} - dicomweb-client@0.10.3: resolution: {integrity: sha512-/fHNEAYiz8j+9TNOrNJ0k+hYqirbOT85B7vM7I4VkY8DeDQb4BDUeL3RX6huDVtn6ZQlR91dI+2tejLc5c99wA==} @@ -3249,9 +3218,6 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-latex@1.2.0: - resolution: {integrity: sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -3546,10 +3512,6 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 - file-type@10.11.0: - resolution: {integrity: sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==} - engines: {node: '>=6'} - filelist@1.0.6: resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} @@ -3651,9 +3613,6 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - fraction.js@4.3.4: - resolution: {integrity: sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==} - fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} @@ -4031,10 +3990,6 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - image-type@4.1.0: - resolution: {integrity: sha512-CFJMJ8QK8lJvRlTCEgarL4ro6hfDQKif2HjSvYCdQZESaIPV4v9imrf7BQHK+sQeTeNeMpWciR9hyC/g8ybXEg==} - engines: {node: '>=6'} - immer@9.0.21: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} @@ -4353,9 +4308,6 @@ packages: resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} engines: {node: '>= 0.6.0'} - javascript-natural-sort@0.7.1: - resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} - jest-changed-files@27.5.1: resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4651,9 +4603,6 @@ packages: lerc@3.0.0: resolution: {integrity: sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==} - lerp@1.0.3: - resolution: {integrity: sha512-70Rh4rCkJDvwWiTsyZ1HmJGvnyfFah4m6iTux29XmasRiZPDBpT9Cfa4ai73+uLZxnlKruUS62jj2lb11wURiA==} - less-loader@7.3.0: resolution: {integrity: sha512-Mi8915g7NMaLlgi77mgTTQvK022xKRQBIVDSyfl3ErTuBhmZBQab0mjeJjNNqGbdR+qrfTleKXqbGI4uEFavxg==} engines: {node: '>= 10.13.0'} @@ -4828,11 +4777,6 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - mathjs@11.12.0: - resolution: {integrity: sha512-UGhVw8rS1AyedyI55DGz9q1qZ0p98kyKPyc9vherBkoueLntPfKtPBh14x+V4cdUWK0NZV2TBwqRFlvadscSuw==} - engines: {node: '>= 14'} - hasBin: true - mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} @@ -6613,9 +6557,6 @@ packages: scroll-into-view-if-needed@2.2.31: resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} - seedrandom@3.0.5: - resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} - select-hose@2.0.0: resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} @@ -7118,9 +7059,6 @@ packages: thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - tiny-emitter@2.1.0: - resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} - tinyglobby@0.2.17: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} @@ -7265,10 +7203,6 @@ packages: resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} engines: {node: '>= 0.4'} - typed-function@4.2.2: - resolution: {integrity: sha512-VwaXim9Gp1bngi/q3do8hgttYn2uC3MoT/gfuMWylnj1IeZBUAyPddHZlo1K05BDoj8DYPpMdiHqH1dDYdJf2A==} - engines: {node: '>= 18'} - typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -7391,11 +7325,6 @@ packages: deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). - hasBin: true - v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -8693,14 +8622,6 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@cornerstonejs/codec-charls@1.2.3': {} - - '@cornerstonejs/codec-libjpeg-turbo-8bit@1.2.2': {} - - '@cornerstonejs/codec-openjpeg@1.3.0': {} - - '@cornerstonejs/codec-openjph@2.4.7': {} - '@craco/craco@6.4.5(@types/node@14.18.63)(react-scripts@5.0.0(@babel/plugin-syntax-flow@7.29.7(@babel/core@7.29.7))(@babel/plugin-transform-react-jsx@7.29.7(@babel/core@7.29.7))(@types/babel__core@7.20.5)(eslint@8.57.1)(react@18.3.1)(ts-node@10.9.2(@types/node@14.18.63)(typescript@4.9.5))(type-fest@4.41.0)(typescript@4.9.5))(typescript@4.9.5)': dependencies: cosmiconfig: 7.1.0 @@ -8837,8 +8758,6 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} - '@imagingdatacommons/dicomicc@0.2.3': {} - '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 @@ -10701,10 +10620,6 @@ snapshots: colorette@2.0.20: {} - colormap@2.3.2: - dependencies: - lerp: 1.0.3 - combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -10728,8 +10643,6 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 - complex.js@2.4.3: {} - compressible@2.0.18: dependencies: mime-db: 1.54.0 @@ -11082,16 +10995,6 @@ snapshots: ndarray: 1.0.19 pako: 2.1.0 - dcmjs@0.41.0: - dependencies: - '@babel/runtime-corejs3': 7.29.7 - adm-zip: 0.5.17 - gl-matrix: 3.4.4 - lodash.clonedeep: 4.5.0 - loglevel: 1.9.2 - ndarray: 1.0.19 - pako: 2.1.0 - debug@2.6.9: dependencies: ms: 2.0.0 @@ -11183,21 +11086,6 @@ snapshots: transitivePeerDependencies: - supports-color - dicom-microscopy-viewer@0.48.21: - dependencies: - '@cornerstonejs/codec-charls': 1.2.3 - '@cornerstonejs/codec-libjpeg-turbo-8bit': 1.2.2 - '@cornerstonejs/codec-openjpeg': 1.3.0 - '@cornerstonejs/codec-openjph': 2.4.7 - '@imagingdatacommons/dicomicc': 0.2.3 - colormap: 2.3.2 - dcmjs: 0.41.0 - dicomweb-client: 0.10.3 - image-type: 4.1.0 - mathjs: 11.12.0 - ol: 10.9.0 - uuid: 9.0.1 - dicomweb-client@0.10.3: {} didyoumean@1.2.2: {} @@ -11467,8 +11355,6 @@ snapshots: escape-html@1.0.3: {} - escape-latex@1.2.0: {} - escape-string-regexp@1.0.5: {} escape-string-regexp@2.0.0: {} @@ -11905,8 +11791,6 @@ snapshots: schema-utils: 3.3.0 webpack: 5.107.2(postcss@8.5.15) - file-type@10.11.0: {} - filelist@1.0.6: dependencies: minimatch: 5.1.9 @@ -12024,8 +11908,6 @@ snapshots: forwarded@0.2.0: {} - fraction.js@4.3.4: {} - fraction.js@5.3.4: {} fresh@0.5.2: {} @@ -12449,10 +12331,6 @@ snapshots: image-size@0.5.5: optional: true - image-type@4.1.0: - dependencies: - file-type: 10.11.0 - immer@9.0.21: {} import-fresh@3.3.1: @@ -12749,8 +12627,6 @@ snapshots: java-properties@1.0.2: {} - javascript-natural-sort@0.7.1: {} - jest-changed-files@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -13308,8 +13184,6 @@ snapshots: lerc@3.0.0: {} - lerp@1.0.3: {} - less-loader@7.3.0(less@4.6.4)(webpack@5.107.2(postcss@8.5.15)): dependencies: klona: 2.0.6 @@ -13467,18 +13341,6 @@ snapshots: math-intrinsics@1.1.0: {} - mathjs@11.12.0: - dependencies: - '@babel/runtime': 7.29.7 - complex.js: 2.4.3 - decimal.js: 10.6.0 - escape-latex: 1.2.0 - fraction.js: 4.3.4 - javascript-natural-sort: 0.7.1 - seedrandom: 3.0.5 - tiny-emitter: 2.1.0 - typed-function: 4.2.2 - mdn-data@2.0.14: {} mdn-data@2.0.4: {} @@ -15317,8 +15179,6 @@ snapshots: dependencies: compute-scroll-into-view: 1.0.20 - seedrandom@3.0.5: {} - select-hose@2.0.0: {} selfsigned@2.4.1: @@ -15940,8 +15800,6 @@ snapshots: thunky@1.1.0: {} - tiny-emitter@2.1.0: {} - tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -16082,8 +15940,6 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typed-function@4.2.2: {} - typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 @@ -16177,8 +16033,6 @@ snapshots: uuid@8.3.2: {} - uuid@9.0.1: {} - v8-compile-cache-lib@3.0.1: {} v8-to-istanbul@8.1.1: From 35b6c28f5626ac95749f044ffa85ddc3601218be Mon Sep 17 00:00:00 2001 From: Igor Octaviano Date: Fri, 5 Jun 2026 12:05:39 -0300 Subject: [PATCH 4/4] Revert links --- package.json | 3 +- pnpm-lock.yaml | 152 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 150 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a6d68773..5926bd07 100644 --- a/package.json +++ b/package.json @@ -103,8 +103,7 @@ "semver": "7.5.2", "serialize-javascript": "7.0.5", "tar": "7.5.16", - "underscore": "1.13.8", - "dicom-microscopy-viewer": "link:../../../../Library/pnpm/global/5/node_modules/dicom-microscopy-viewer" + "underscore": "1.13.8" } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 587845e1..03911632 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,7 +17,6 @@ overrides: serialize-javascript: 7.0.5 tar: 7.5.16 underscore: 1.13.8 - dicom-microscopy-viewer: link:../../../../Library/pnpm/global/5/node_modules/dicom-microscopy-viewer importers: @@ -36,8 +35,8 @@ importers: specifier: ^5.2.1 version: 5.3.0 dicom-microscopy-viewer: - specifier: link:../../../../Library/pnpm/global/5/node_modules/dicom-microscopy-viewer - version: link:../../../../Library/pnpm/global/5/node_modules/dicom-microscopy-viewer + specifier: ^0.48.21 + version: 0.48.21 dicomweb-client: specifier: 0.10.3 version: 0.10.3 @@ -989,6 +988,22 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} + '@cornerstonejs/codec-charls@1.2.3': + resolution: {integrity: sha512-qKUe6DN0dnGzhhfZLYhH9UZacMcudjxcaLXCrpxJImT/M/PQvZCT2rllu6VGJbWKJWG+dMVV2zmmleZcdJ7/cA==} + engines: {node: '>=0.14'} + + '@cornerstonejs/codec-libjpeg-turbo-8bit@1.2.2': + resolution: {integrity: sha512-aAUMK2958YNpOb/7G6e2/aG7hExTiFTASlMt/v90XA0pRHdWiNg5ny4S5SAju0FbIw4zcMnR0qfY+yW3VG2ivg==} + engines: {node: '>=0.14'} + + '@cornerstonejs/codec-openjpeg@1.3.0': + resolution: {integrity: sha512-hP8WAZ63AcaDYmHbBVTY04x424AglXsRHrI6VBdW4eTiJ76f0heWrEodT9Sb3sNwazzYuyMOIZNndJPeVSeHcw==} + engines: {node: '>=0.14'} + + '@cornerstonejs/codec-openjph@2.4.7': + resolution: {integrity: sha512-qvP4q4JDib7mi9r7LqKOwqz7YZ8gjtDX4ZCezeYf8+eb7MBXCz5uXAMeVF3yz9Axw4XiIMdB/pqXkm8tqCl13w==} + engines: {node: '>=0.14'} + '@craco/craco@6.4.5': resolution: {integrity: sha512-8F2rIAao8sEh0FPP52ViEvDM9GjJ7acq0knu1c8UgI+EuZMD5/ZB270ol6jV4iNY7it9Umg/RoGBvNRUNr8U8w==} engines: {node: '>=6'} @@ -1128,6 +1143,10 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead + '@imagingdatacommons/dicomicc@0.2.3': + resolution: {integrity: sha512-gHRHIct+5kyTqONASiuGgjlZVEaawpwqSxfBbltLwhTVYedcA7hs0TPYJk3uR1P5RvvC2fC1lPJ0c8jhkGxtNA==} + engines: {node: '>=0.14'} + '@istanbuljs/load-nyc-config@1.1.0': resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -2557,6 +2576,9 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + colormap@2.3.2: + resolution: {integrity: sha512-jDOjaoEEmA9AgA11B/jCSAvYE95r3wRoAyTf3LEHGiUVlNHJaL1mRkf5AyLSpQBVGfTEPwGEqCIzL+kgr2WgNA==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2590,6 +2612,9 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + complex.js@2.4.3: + resolution: {integrity: sha512-UrQVSUur14tNX6tiP4y8T4w4FeJAX3bi2cIv0pu/DTLFNxoq7z2Yh83Vfzztj6Px3X/lubqQ9IrPp7Bpn6p4MQ==} + compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -2901,6 +2926,9 @@ packages: dcmjs@0.35.0: resolution: {integrity: sha512-kKOX4y0XoSQsDx7xYh9HJLfAWizrvYNJPU/d+DGOehdGz1frvimBZDEL0iaCK46Lhy7amAmtv4g5hkjcxVF+kg==} + dcmjs@0.41.0: + resolution: {integrity: sha512-kr46REomItFeWz+0ck4Wif4uS5VVDWVlwdh5GGaCtTYHWfNQmrcCSiQOkrShc7Dc5zP8vNKrHEdORlZXenlg3w==} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -3005,6 +3033,9 @@ packages: engines: {node: '>= 4.2.1'} hasBin: true + dicom-microscopy-viewer@0.48.21: + resolution: {integrity: sha512-hOtT0DWvGk9yCVwLBfWzh8oeK1UG0eZRA5mOXdebMQ49LrbqR82WQPb8DXGqHBgeS/znx2d6KNfOfJkhpeIg7Q==} + dicomweb-client@0.10.3: resolution: {integrity: sha512-/fHNEAYiz8j+9TNOrNJ0k+hYqirbOT85B7vM7I4VkY8DeDQb4BDUeL3RX6huDVtn6ZQlR91dI+2tejLc5c99wA==} @@ -3218,6 +3249,9 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-latex@1.2.0: + resolution: {integrity: sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==} + escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -3512,6 +3546,10 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 + file-type@10.11.0: + resolution: {integrity: sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==} + engines: {node: '>=6'} + filelist@1.0.6: resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} @@ -3613,6 +3651,9 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} + fraction.js@4.3.4: + resolution: {integrity: sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==} + fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} @@ -3990,6 +4031,10 @@ packages: engines: {node: '>=0.10.0'} hasBin: true + image-type@4.1.0: + resolution: {integrity: sha512-CFJMJ8QK8lJvRlTCEgarL4ro6hfDQKif2HjSvYCdQZESaIPV4v9imrf7BQHK+sQeTeNeMpWciR9hyC/g8ybXEg==} + engines: {node: '>=6'} + immer@9.0.21: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} @@ -4308,6 +4353,9 @@ packages: resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} engines: {node: '>= 0.6.0'} + javascript-natural-sort@0.7.1: + resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} + jest-changed-files@27.5.1: resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4603,6 +4651,9 @@ packages: lerc@3.0.0: resolution: {integrity: sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==} + lerp@1.0.3: + resolution: {integrity: sha512-70Rh4rCkJDvwWiTsyZ1HmJGvnyfFah4m6iTux29XmasRiZPDBpT9Cfa4ai73+uLZxnlKruUS62jj2lb11wURiA==} + less-loader@7.3.0: resolution: {integrity: sha512-Mi8915g7NMaLlgi77mgTTQvK022xKRQBIVDSyfl3ErTuBhmZBQab0mjeJjNNqGbdR+qrfTleKXqbGI4uEFavxg==} engines: {node: '>= 10.13.0'} @@ -4777,6 +4828,11 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} + mathjs@11.12.0: + resolution: {integrity: sha512-UGhVw8rS1AyedyI55DGz9q1qZ0p98kyKPyc9vherBkoueLntPfKtPBh14x+V4cdUWK0NZV2TBwqRFlvadscSuw==} + engines: {node: '>= 14'} + hasBin: true + mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} @@ -6557,6 +6613,9 @@ packages: scroll-into-view-if-needed@2.2.31: resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + seedrandom@3.0.5: + resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} + select-hose@2.0.0: resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} @@ -7059,6 +7118,9 @@ packages: thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + tiny-emitter@2.1.0: + resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} + tinyglobby@0.2.17: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} @@ -7203,6 +7265,10 @@ packages: resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} engines: {node: '>= 0.4'} + typed-function@4.2.2: + resolution: {integrity: sha512-VwaXim9Gp1bngi/q3do8hgttYn2uC3MoT/gfuMWylnj1IeZBUAyPddHZlo1K05BDoj8DYPpMdiHqH1dDYdJf2A==} + engines: {node: '>= 18'} + typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -7325,6 +7391,11 @@ packages: deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). + hasBin: true + v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -8622,6 +8693,14 @@ snapshots: '@colors/colors@1.5.0': optional: true + '@cornerstonejs/codec-charls@1.2.3': {} + + '@cornerstonejs/codec-libjpeg-turbo-8bit@1.2.2': {} + + '@cornerstonejs/codec-openjpeg@1.3.0': {} + + '@cornerstonejs/codec-openjph@2.4.7': {} + '@craco/craco@6.4.5(@types/node@14.18.63)(react-scripts@5.0.0(@babel/plugin-syntax-flow@7.29.7(@babel/core@7.29.7))(@babel/plugin-transform-react-jsx@7.29.7(@babel/core@7.29.7))(@types/babel__core@7.20.5)(eslint@8.57.1)(react@18.3.1)(ts-node@10.9.2(@types/node@14.18.63)(typescript@4.9.5))(type-fest@4.41.0)(typescript@4.9.5))(typescript@4.9.5)': dependencies: cosmiconfig: 7.1.0 @@ -8758,6 +8837,8 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} + '@imagingdatacommons/dicomicc@0.2.3': {} + '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 @@ -10620,6 +10701,10 @@ snapshots: colorette@2.0.20: {} + colormap@2.3.2: + dependencies: + lerp: 1.0.3 + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -10643,6 +10728,8 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 + complex.js@2.4.3: {} + compressible@2.0.18: dependencies: mime-db: 1.54.0 @@ -10995,6 +11082,16 @@ snapshots: ndarray: 1.0.19 pako: 2.1.0 + dcmjs@0.41.0: + dependencies: + '@babel/runtime-corejs3': 7.29.7 + adm-zip: 0.5.17 + gl-matrix: 3.4.4 + lodash.clonedeep: 4.5.0 + loglevel: 1.9.2 + ndarray: 1.0.19 + pako: 2.1.0 + debug@2.6.9: dependencies: ms: 2.0.0 @@ -11086,6 +11183,21 @@ snapshots: transitivePeerDependencies: - supports-color + dicom-microscopy-viewer@0.48.21: + dependencies: + '@cornerstonejs/codec-charls': 1.2.3 + '@cornerstonejs/codec-libjpeg-turbo-8bit': 1.2.2 + '@cornerstonejs/codec-openjpeg': 1.3.0 + '@cornerstonejs/codec-openjph': 2.4.7 + '@imagingdatacommons/dicomicc': 0.2.3 + colormap: 2.3.2 + dcmjs: 0.41.0 + dicomweb-client: 0.10.3 + image-type: 4.1.0 + mathjs: 11.12.0 + ol: 10.9.0 + uuid: 9.0.1 + dicomweb-client@0.10.3: {} didyoumean@1.2.2: {} @@ -11355,6 +11467,8 @@ snapshots: escape-html@1.0.3: {} + escape-latex@1.2.0: {} + escape-string-regexp@1.0.5: {} escape-string-regexp@2.0.0: {} @@ -11791,6 +11905,8 @@ snapshots: schema-utils: 3.3.0 webpack: 5.107.2(postcss@8.5.15) + file-type@10.11.0: {} + filelist@1.0.6: dependencies: minimatch: 5.1.9 @@ -11908,6 +12024,8 @@ snapshots: forwarded@0.2.0: {} + fraction.js@4.3.4: {} + fraction.js@5.3.4: {} fresh@0.5.2: {} @@ -12331,6 +12449,10 @@ snapshots: image-size@0.5.5: optional: true + image-type@4.1.0: + dependencies: + file-type: 10.11.0 + immer@9.0.21: {} import-fresh@3.3.1: @@ -12627,6 +12749,8 @@ snapshots: java-properties@1.0.2: {} + javascript-natural-sort@0.7.1: {} + jest-changed-files@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -13184,6 +13308,8 @@ snapshots: lerc@3.0.0: {} + lerp@1.0.3: {} + less-loader@7.3.0(less@4.6.4)(webpack@5.107.2(postcss@8.5.15)): dependencies: klona: 2.0.6 @@ -13341,6 +13467,18 @@ snapshots: math-intrinsics@1.1.0: {} + mathjs@11.12.0: + dependencies: + '@babel/runtime': 7.29.7 + complex.js: 2.4.3 + decimal.js: 10.6.0 + escape-latex: 1.2.0 + fraction.js: 4.3.4 + javascript-natural-sort: 0.7.1 + seedrandom: 3.0.5 + tiny-emitter: 2.1.0 + typed-function: 4.2.2 + mdn-data@2.0.14: {} mdn-data@2.0.4: {} @@ -15179,6 +15317,8 @@ snapshots: dependencies: compute-scroll-into-view: 1.0.20 + seedrandom@3.0.5: {} + select-hose@2.0.0: {} selfsigned@2.4.1: @@ -15800,6 +15940,8 @@ snapshots: thunky@1.1.0: {} + tiny-emitter@2.1.0: {} + tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -15940,6 +16082,8 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 + typed-function@4.2.2: {} + typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 @@ -16033,6 +16177,8 @@ snapshots: uuid@8.3.2: {} + uuid@9.0.1: {} + v8-compile-cache-lib@3.0.1: {} v8-to-istanbul@8.1.1: