feat: mpr doing

This commit is contained in:
mozzie 2023-12-20 17:02:33 +08:00
parent 5008849d82
commit c73fdb6a6d
15 changed files with 514 additions and 36 deletions

View File

@ -29,10 +29,11 @@
"pako": "2.1.0",
"@kitware/vtk.js": "29.2.0",
"@cornerstonejs/dicom-image-loader": "1.41.0",
"cornerstone-wado-image-loader": "4.13.2",
"@cornerstonejs/core": "1.41.0",
"dcmjs": "0.30.0",
"dicomweb-client": "0.10.3"
"dicomweb-client": "0.10.3",
"@cornerstonejs/tools": "3.0.2",
"@cornerstonejs/streaming-image-volume-loader": "1.41.0"
},
"devDependencies": {
"@babel/core": "^7.21.8",

View File

@ -0,0 +1,10 @@
import { initCornerstoneDICOMImageLoader } from "./initCornerstoneDicomImageLoader";
import initVolumeLoader from "./initVolumeLoader";
import { init as csRenderInit } from "@cornerstonejs/core";
// 入口
export const initCornerstone = async () => {
initCornerstoneDICOMImageLoader();
initVolumeLoader();
await csRenderInit();
};

View File

@ -1,9 +1,8 @@
import { init as csRenderInit } from "@cornerstonejs/core";
import dicomParser from "dicom-parser";
import * as cornerstone from "@cornerstonejs/core";
import cornerstoneDICOMImageLoader from "@cornerstonejs/dicom-image-loader";
const initCornerstoneDICOMImageLoader = () => {
export const initCornerstoneDICOMImageLoader = () => {
const { preferSizeOverAccuracy, useNorm16Texture } =
cornerstone.getConfiguration().rendering;
@ -30,8 +29,3 @@ const initCornerstoneDICOMImageLoader = () => {
cornerstoneDICOMImageLoader.webWorkerManager.initialize(config);
};
export const initCornerstone = async () => {
initCornerstoneDICOMImageLoader();
await csRenderInit();
};

View File

@ -0,0 +1,17 @@
import * as cornerstone from "@cornerstonejs/core";
import ptScalingMetaDataProvider from "./ptScalingMetaDataProvider";
const { calibratedPixelSpacingMetadataProvider } = cornerstone.utilities;
export default function initProviders() {
cornerstone.metaData.addProvider(
ptScalingMetaDataProvider.get.bind(ptScalingMetaDataProvider),
10000
);
cornerstone.metaData.addProvider(
calibratedPixelSpacingMetadataProvider.get.bind(
calibratedPixelSpacingMetadataProvider
),
11000
);
}

View File

@ -0,0 +1,19 @@
import { volumeLoader } from "@cornerstonejs/core";
import {
cornerstoneStreamingImageVolumeLoader,
cornerstoneStreamingDynamicImageVolumeLoader,
} from "@cornerstonejs/streaming-image-volume-loader";
export default function initVolumeLoader() {
volumeLoader.registerUnknownVolumeLoader(
cornerstoneStreamingImageVolumeLoader
);
volumeLoader.registerVolumeLoader(
"cornerstoneStreamingImageVolume",
cornerstoneStreamingImageVolumeLoader
);
volumeLoader.registerVolumeLoader(
"cornerstoneStreamingDynamicImageVolume",
cornerstoneStreamingDynamicImageVolumeLoader
);
}

View File

@ -0,0 +1,17 @@
import { utilities as csUtils } from "@cornerstonejs/core";
const scalingPerImageId = {};
function addInstance(imageId, scalingMetaData) {
const imageURI = csUtils.imageIdToURI(imageId);
scalingPerImageId[imageURI] = scalingMetaData;
}
function get(type, imageId) {
if (type === "scalingModule") {
const imageURI = csUtils.imageIdToURI(imageId);
return scalingPerImageId[imageURI];
}
}
export default { addInstance, get };

View File

@ -0,0 +1,146 @@
import {
Enums,
RenderingEngine,
setVolumesForViewports,
volumeLoader,
} from "@cornerstonejs/core";
import { createImageIdsAndCacheMetaData } from "../CornerstoneDicomLoader/createImageIdsAndCacheMetaData";
import { initCornerstone } from "../CornerstoneDicomLoader/init";
import { useEffect, useRef } from "react";
import * as cornerstoneTools from "@cornerstonejs/tools";
import { PublicViewportInput } from "@cornerstonejs/core/dist/types/types";
import { setCtTransferFunctionForVolumeActor } from "./setCtTransferFunctionForVolumeActor";
interface CorsshairProps {
children?: JSX.Element;
}
const {
ToolGroupManager,
Enums: csToolsEnums,
CrosshairsTool,
StackScrollMouseWheelTool,
} = cornerstoneTools;
const toolGroupId = "MY_TOOLGROUP_ID";
const volumeName = "CT_VOLUME_ID"; // Id of the volume less loader prefix
const volumeLoaderScheme = "cornerstoneStreamingImageVolume"; // Loader id which defines which volume loader to use
const volumeId = `${volumeLoaderScheme}:${volumeName}`; // VolumeId with loader id + volume id
const renderingEngineId = "myRenderingEngine";
const viewportA = "CT_AXIAL";
const viewportB = "CT_SAGITTAL";
const viewportC = "CT_CORONAL";
const viewportColors = {
[viewportA]: "rgb(200, 0, 0)",
[viewportB]: "rgb(200, 200, 0)",
[viewportC]: "rgb(0, 200, 0)",
};
const { ViewportType } = Enums;
const StudyInstanceUID =
"1.2.840.113564.345049290535.9692.637552042156233117.433089";
const SeriesInstanceUID =
"1.3.12.2.1107.5.1.4.76315.30000021042706150001900118311";
export const Corsshair = (props: CorsshairProps) => {
const viewportA = useRef(null);
const viewportB = useRef(null);
const viewportC = useRef(null);
const run = async () => {
await initCornerstone();
// Get Cornerstone imageIds and fetch metadata into RAM
const imageIds = await createImageIdsAndCacheMetaData({
StudyInstanceUID,
SeriesInstanceUID,
wadoRsRoot: "/dicom-web",
});
const volume = await volumeLoader.createAndCacheVolume(volumeId, {
imageIds,
});
console.log(volume)
// Instantiate a rendering engine
// const renderingEngine = new RenderingEngine(renderingEngineId);
// if (viewportA.current && viewportB.current && viewportC.current) {
// // Create the viewports
// const viewportInputArray: PublicViewportInput[] = [
// {
// viewportId: viewportA.current,
// type: ViewportType.ORTHOGRAPHIC,
// element: viewportA.current,
// defaultOptions: {
// orientation: Enums.OrientationAxis.AXIAL,
// background: [0, 0, 0],
// },
// },
// {
// viewportId: viewportB.current,
// type: ViewportType.ORTHOGRAPHIC,
// element: viewportB.current,
// defaultOptions: {
// orientation: Enums.OrientationAxis.SAGITTAL,
// background: [0, 0, 0],
// },
// },
// {
// viewportId: viewportC.current,
// type: ViewportType.ORTHOGRAPHIC,
// element: viewportC.current,
// defaultOptions: {
// orientation: Enums.OrientationAxis.CORONAL,
// background: [0, 0, 0],
// },
// },
// ];
// renderingEngine.setViewports(viewportInputArray);
// volume.load();
// await setVolumesForViewports(
// renderingEngine,
// [
// {
// volumeId,
// callback: () => setCtTransferFunctionForVolumeActor,
// },
// ],
// [viewportA.current!, viewportB.current!, viewportC.current!]
// );
// // Render the image
// renderingEngine.renderViewports([
// viewportA.current!,
// viewportB.current!,
// viewportC.current!,
// ]);
// }
};
useEffect(() => {
run();
}, []);
return (
<div
style={{
display: "flex",
justifyContent: "space-evenly",
gap: 20,
height: 300,
}}
>
<div ref={viewportA}></div>
<div ref={viewportB}></div>
<div ref={viewportC}></div>
</div>
);
};

View File

@ -0,0 +1,20 @@
import { VolumeActor } from "@cornerstonejs/core/dist/types/types";
const windowWidth = 400;
const windowCenter = 40;
const lower = windowCenter - windowWidth / 2.0;
const upper = windowCenter + windowWidth / 2.0;
export const ctVoiRange = { lower, upper };
export const setCtTransferFunctionForVolumeActor = ({
volumeActor,
}: {
volumeActor: VolumeActor;
}) => {
volumeActor
.getProperty()
.getRGBTransferFunction(0)
.setMappingRange(lower, upper);
};

View File

@ -1,7 +1,7 @@
import { useEffect, useRef } from "react";
import { Enums, RenderingEngine, cache } from "@cornerstonejs/core";
import { initCornerstone } from "./initCornerstoneDicomImageLoader";
import { createImageIdsAndCacheMetaData } from "./createImageIdsAndCacheMetaData";
import { initCornerstone } from "../CornerstoneDicomLoader/initCornerstoneDicomImageLoader";
import { createImageIdsAndCacheMetaData } from "../CornerstoneDicomLoader/createImageIdsAndCacheMetaData";
import {
IStackViewport,
PublicViewportInput,

View File

@ -1,3 +1,4 @@
import { Corsshair } from "./Crosshair";
import { DiffViewer } from "./DiffViewer";
import { MprViewer } from "./MprViewer";
import { VolumeViewer } from "./VolumeViewer";
@ -9,7 +10,7 @@ interface RootViewerProps {
export const RootViewer = (props: RootViewerProps) => {
return (
<div>
<VolumeViewer />
<Corsshair />
</div>
);
};

View File

@ -20,6 +20,12 @@ importers:
'@cornerstonejs/dicom-image-loader':
specifier: 1.41.0
version: 192.168.4.201+4873/@cornerstonejs/dicom-image-loader@1.41.0(@babel/preset-env@7.21.5)(autoprefixer@10.4.15)(webpack@5.75.0)(wslink@1.11.4)
'@cornerstonejs/streaming-image-volume-loader':
specifier: 1.41.0
version: 1.41.0(@babel/preset-env@7.21.5)(autoprefixer@10.4.15)(webpack@5.75.0)(wslink@1.11.4)
'@cornerstonejs/tools':
specifier: 3.0.2
version: 3.0.2
'@kitware/vtk.js':
specifier: 29.2.0
version: 192.168.4.201+4873/@kitware/vtk.js@29.2.0(@babel/preset-env@7.21.5)(autoprefixer@10.4.15)(webpack@5.75.0)(wslink@1.11.4)
@ -2966,6 +2972,19 @@ packages:
regenerator-runtime: 0.14.0
dev: false
/@babel/runtime@7.1.2:
resolution: {integrity: sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==, tarball: http://192.168.4.201:4873/@babel%2fruntime/-/runtime-7.1.2.tgz}
dependencies:
regenerator-runtime: 0.12.1
dev: false
/@babel/runtime@7.17.9:
resolution: {integrity: sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==, tarball: http://192.168.4.201:4873/@babel%2fruntime/-/runtime-7.17.9.tgz}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.13.11
dev: false
/@babel/runtime@7.22.15:
resolution: {integrity: sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==}
engines: {node: '>=6.9.0'}
@ -3202,6 +3221,41 @@ packages:
dev: true
optional: true
/@cornerstonejs/core@1.41.0(@babel/preset-env@7.21.5)(autoprefixer@10.4.15)(webpack@5.75.0)(wslink@1.11.4):
resolution: {integrity: sha512-bAHLDGixOgenDPQee+LaB7N7TSDix9RLAwVDFpXWVglFadYxWBtupWg3b6+lMGZGUL2PLfBI9z7nnGQOCV4pgw==, tarball: http://192.168.4.201:4873/@cornerstonejs%2fcore/-/core-1.41.0.tgz}
dependencies:
'@kitware/vtk.js': 27.3.1(@babel/preset-env@7.21.5)(autoprefixer@10.4.15)(webpack@5.75.0)(wslink@1.11.4)
comlink: 4.4.1
detect-gpu: 5.0.37
gl-matrix: 3.4.3
lodash.clonedeep: 4.5.0
transitivePeerDependencies:
- '@babel/preset-env'
- autoprefixer
- webpack
- wslink
dev: false
/@cornerstonejs/streaming-image-volume-loader@1.41.0(@babel/preset-env@7.21.5)(autoprefixer@10.4.15)(webpack@5.75.0)(wslink@1.11.4):
resolution: {integrity: sha512-k86onbU0uRq9ZTlGXlYJKXCfnqKscLJJlGV0HNqQO84rHgr+dOxceTevYU573xs5+a3L+eNZU8SpeJmVO+WA6g==, tarball: http://192.168.4.201:4873/@cornerstonejs%2fstreaming-image-volume-loader/-/streaming-image-volume-loader-1.41.0.tgz}
dependencies:
'@cornerstonejs/core': 1.41.0(@babel/preset-env@7.21.5)(autoprefixer@10.4.15)(webpack@5.75.0)(wslink@1.11.4)
comlink: 4.4.1
transitivePeerDependencies:
- '@babel/preset-env'
- autoprefixer
- webpack
- wslink
dev: false
/@cornerstonejs/tools@3.0.2:
resolution: {integrity: sha512-RgPQbRey8gMIjvGUgEdMQ4E6kOxXZzqwFzmmY6YgwVc1YPubeODoESgPDhlIfasTN7DWAxcmoFRyHMQgcvu2lg==, tarball: http://192.168.4.201:4873/@cornerstonejs%2ftools/-/tools-3.0.2.tgz}
deprecated: Use cornerstone-tools instead if you are looking for cornerstone legacy, this package name will be reused for cornerstone3d tools soon
dependencies:
'@babel/runtime': 7.1.2
cornerstone-math: 0.1.10
dev: false
/@cspotcode/source-map-support@0.8.1:
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
@ -3538,6 +3592,36 @@ packages:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
/@kitware/vtk.js@27.3.1(@babel/preset-env@7.21.5)(autoprefixer@10.4.15)(webpack@5.75.0)(wslink@1.11.4):
resolution: {integrity: sha512-GvAXdOKtDDbkaSdO+UhKnDST4CW1C3fHgaDvA0wn1ZWTLm/6SFAMzarTjpzsVGYCPoEYIhCAAlBQ7K7aDcu3Vg==, tarball: http://192.168.4.201:4873/@kitware%2fvtk.js/-/vtk.js-27.3.1.tgz}
hasBin: true
peerDependencies:
'@babel/preset-env': ^7.17.10
autoprefixer: ^10.4.7
wslink: ^1.1.0
dependencies:
'@babel/preset-env': 7.21.5(@babel/core@7.21.8)
'@babel/runtime': 7.17.9
autoprefixer: 10.4.15(postcss@8.4.29)
commander: 9.2.0
d3-scale: 4.0.2
fast-deep-equal: 3.1.3
fflate: 0.7.3
gl-matrix: 3.4.3
globalthis: 1.0.3
seedrandom: 3.0.5
shader-loader: 1.3.1
shelljs: 0.8.5
spark-md5: 3.0.2
stream-browserify: 3.0.0
webworker-promise: 0.5.0
worker-loader: 3.0.8(webpack@5.75.0)
wslink: 1.11.4
xmlbuilder2: 3.0.2
transitivePeerDependencies:
- webpack
dev: false
/@leichtgewicht/ip-codec@2.0.4:
resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==}
@ -3548,7 +3632,7 @@ packages:
/@manypkg/find-root@1.1.0:
resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
dependencies:
'@babel/runtime': 192.168.4.201+4873/@babel/runtime@7.22.15
'@babel/runtime': 7.22.15
'@types/node': 12.20.55
find-up: 4.1.0
fs-extra: 8.1.0
@ -4091,6 +4175,35 @@ packages:
transitivePeerDependencies:
- encoding
/@oozcitak/dom@1.15.10:
resolution: {integrity: sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==, tarball: http://192.168.4.201:4873/@oozcitak%2fdom/-/dom-1.15.10.tgz}
engines: {node: '>=8.0'}
dependencies:
'@oozcitak/infra': 1.0.8
'@oozcitak/url': 1.0.4
'@oozcitak/util': 8.3.8
dev: false
/@oozcitak/infra@1.0.8:
resolution: {integrity: sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==, tarball: http://192.168.4.201:4873/@oozcitak%2finfra/-/infra-1.0.8.tgz}
engines: {node: '>=6.0'}
dependencies:
'@oozcitak/util': 8.3.8
dev: false
/@oozcitak/url@1.0.4:
resolution: {integrity: sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==, tarball: http://192.168.4.201:4873/@oozcitak%2furl/-/url-1.0.4.tgz}
engines: {node: '>=8.0'}
dependencies:
'@oozcitak/infra': 1.0.8
'@oozcitak/util': 8.3.8
dev: false
/@oozcitak/util@8.3.8:
resolution: {integrity: sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==, tarball: http://192.168.4.201:4873/@oozcitak%2futil/-/util-8.3.8.tgz}
engines: {node: '>=8.0'}
dev: false
/@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.14.0)(webpack-dev-server@4.13.3)(webpack@5.75.0):
resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==}
engines: {node: '>= 10.13'}
@ -4168,7 +4281,7 @@ packages:
react: '>=16.9.0'
react-dom: '>=16.9.0'
dependencies:
'@babel/runtime': 192.168.4.201+4873/@babel/runtime@7.22.15
'@babel/runtime': 7.22.15
rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -4178,7 +4291,7 @@ packages:
resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==}
engines: {node: '>=8.x'}
dependencies:
'@babel/runtime': 192.168.4.201+4873/@babel/runtime@7.22.15
'@babel/runtime': 7.22.15
dev: false
/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0):
@ -4202,7 +4315,7 @@ packages:
react: '>=16.9.0'
react-dom: '>=16.9.0'
dependencies:
'@babel/runtime': 192.168.4.201+4873/@babel/runtime@7.22.15
'@babel/runtime': 7.22.15
classnames: 2.3.2
rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
@ -5538,7 +5651,6 @@ packages:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
dependencies:
sprintf-js: 1.0.3
dev: true
/argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@ -5752,7 +5864,6 @@ packages:
/big.js@5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
dev: true
/binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
@ -6015,11 +6126,11 @@ packages:
engines: {node: '>=10.0.0'}
requiresBuild: true
dependencies:
'@babel/runtime': 192.168.4.201+4873/@babel/runtime@7.22.15
'@babel/runtime': 7.22.15
'@types/raf': 3.4.0
core-js: 3.30.1
raf: 3.4.1
regenerator-runtime: 192.168.4.201+4873/regenerator-runtime@0.13.11
regenerator-runtime: 0.13.11
rgbcolor: 1.0.1
stackblur-canvas: 2.6.0
svg-pathdata: 6.0.3
@ -6292,6 +6403,10 @@ packages:
dependencies:
delayed-stream: 1.0.0
/comlink@4.4.1:
resolution: {integrity: sha512-+1dlx0aY5Jo1vHy/tSsIGpSkN4tS9rZSW8FIhG0JH/crs9wwweswIo/POr451r7bZww3hFbPAKnTpimzL/mm4Q==, tarball: http://192.168.4.201:4873/comlink/-/comlink-4.4.1.tgz}
dev: false
/commander@10.0.1:
resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
engines: {node: '>=14'}
@ -6313,6 +6428,11 @@ packages:
engines: {node: '>= 12'}
dev: true
/commander@9.2.0:
resolution: {integrity: sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==, tarball: http://192.168.4.201:4873/commander/-/commander-9.2.0.tgz}
engines: {node: ^12.20.0 || >=14}
dev: false
/commander@9.5.0:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
engines: {node: ^12.20.0 || >=14}
@ -6484,6 +6604,10 @@ packages:
/core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
/cornerstone-math@0.1.10:
resolution: {integrity: sha512-23XSAyP7t70ANvhFyqwvva+zFd1bQ2d5GL7tg9qKE932WmImjA2Y9tiy5n0iTtnf51W/78Png8Lia2o4dCdJaQ==, tarball: http://192.168.4.201:4873/cornerstone-math/-/cornerstone-math-0.1.10.tgz}
dev: false
/cors@2.8.5:
resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
engines: {node: '>= 0.10'}
@ -6756,11 +6880,60 @@ packages:
stream-transform: 2.1.3
dev: true
/d3-array@3.2.4:
resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==, tarball: http://192.168.4.201:4873/d3-array/-/d3-array-3.2.4.tgz}
engines: {node: '>=12'}
dependencies:
internmap: 2.0.3
dev: false
/d3-color@3.1.0:
resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==, tarball: http://192.168.4.201:4873/d3-color/-/d3-color-3.1.0.tgz}
engines: {node: '>=12'}
dev: false
/d3-format@3.1.0:
resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==, tarball: http://192.168.4.201:4873/d3-format/-/d3-format-3.1.0.tgz}
engines: {node: '>=12'}
dev: false
/d3-interpolate@3.0.1:
resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==, tarball: http://192.168.4.201:4873/d3-interpolate/-/d3-interpolate-3.0.1.tgz}
engines: {node: '>=12'}
dependencies:
d3-color: 3.1.0
dev: false
/d3-scale@4.0.2:
resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==, tarball: http://192.168.4.201:4873/d3-scale/-/d3-scale-4.0.2.tgz}
engines: {node: '>=12'}
dependencies:
d3-array: 3.2.4
d3-format: 3.1.0
d3-interpolate: 3.0.1
d3-time: 3.1.0
d3-time-format: 4.1.0
dev: false
/d3-time-format@4.1.0:
resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==, tarball: http://192.168.4.201:4873/d3-time-format/-/d3-time-format-4.1.0.tgz}
engines: {node: '>=12'}
dependencies:
d3-time: 3.1.0
dev: false
/d3-time@3.1.0:
resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==, tarball: http://192.168.4.201:4873/d3-time/-/d3-time-3.1.0.tgz}
engines: {node: '>=12'}
dependencies:
d3-array: 3.2.4
dev: false
/date-fns@2.30.0:
resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
engines: {node: '>=0.11'}
dependencies:
'@babel/runtime': 192.168.4.201+4873/@babel/runtime@7.22.15
'@babel/runtime': 7.22.15
dev: false
/dayjs@1.11.9:
@ -6870,7 +7043,6 @@ packages:
dependencies:
has-property-descriptors: 1.0.0
object-keys: 1.1.1
dev: true
/delayed-stream@1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
@ -6892,6 +7064,12 @@ packages:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
/detect-gpu@5.0.37:
resolution: {integrity: sha512-EraWs84faI4iskB4qvE39bevMIazEvd1RpoyGLOBesRLbiz6eMeJqqRPHjEFClfRByYZzi9IzU35rBXIO76oDw==, tarball: http://192.168.4.201:4873/detect-gpu/-/detect-gpu-5.0.37.tgz}
dependencies:
webgl-constants: 1.1.1
dev: false
/detect-indent@6.1.0:
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
engines: {node: '>=8'}
@ -7083,7 +7261,6 @@ packages:
/emojis-list@3.0.0:
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines: {node: '>= 4'}
dev: true
/encodeurl@1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
@ -7391,7 +7568,6 @@ packages:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
dev: true
/esquery@1.5.0:
resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
@ -7625,6 +7801,10 @@ packages:
resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==}
dev: true
/fflate@0.7.3:
resolution: {integrity: sha512-0Zz1jOzJWERhyhsimS54VTqOteCNwRtIlh8isdL0AXLo0g7xNTfTL7oWrkmCnPhZGocKIkWHBistBrrpoNH3aw==, tarball: http://192.168.4.201:4873/fflate/-/fflate-0.7.3.tgz}
dev: false
/figures@3.2.0:
resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
engines: {node: '>=8'}
@ -7989,7 +8169,6 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
define-properties: 1.2.0
dev: true
/globby@11.1.0:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
@ -8071,7 +8250,6 @@ packages:
resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
dependencies:
get-intrinsic: 1.2.1
dev: true
/has-proto@1.0.1:
resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
@ -8411,10 +8589,14 @@ packages:
side-channel: 1.0.4
dev: true
/internmap@2.0.3:
resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==, tarball: http://192.168.4.201:4873/internmap/-/internmap-2.0.3.tgz}
engines: {node: '>=12'}
dev: false
/interpret@1.4.0:
resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
engines: {node: '>= 0.10'}
dev: true
/interpret@3.1.1:
resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==}
@ -8784,6 +8966,14 @@ packages:
/js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
/js-yaml@3.14.0:
resolution: {integrity: sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==, tarball: http://192.168.4.201:4873/js-yaml/-/js-yaml-3.14.0.tgz}
hasBin: true
dependencies:
argparse: 1.0.10
esprima: 4.0.1
dev: false
/js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
@ -8841,7 +9031,6 @@ packages:
hasBin: true
dependencies:
minimist: 1.2.8
dev: true
/json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
@ -9014,6 +9203,15 @@ packages:
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
engines: {node: '>=6.11.5'}
/loader-utils@1.4.2:
resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==, tarball: http://192.168.4.201:4873/loader-utils/-/loader-utils-1.4.2.tgz}
engines: {node: '>=4.0.0'}
dependencies:
big.js: 5.2.2
emojis-list: 3.0.0
json5: 1.0.2
dev: false
/loader-utils@2.0.4:
resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
engines: {node: '>=8.9.0'}
@ -9021,7 +9219,6 @@ packages:
big.js: 5.2.2
emojis-list: 3.0.0
json5: 2.2.3
dev: true
/locate-path@5.0.0:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
@ -9770,7 +9967,6 @@ packages:
/object-keys@1.1.1:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
dev: true
/object.assign@4.1.4:
resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
@ -10627,7 +10823,7 @@ packages:
react: '>=16.9.0'
react-dom: '>=16.9.0'
dependencies:
'@babel/runtime': 192.168.4.201+4873/@babel/runtime@7.22.15
'@babel/runtime': 7.22.15
classnames: 2.3.2
dom-align: 1.12.4
rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
@ -10954,7 +11150,7 @@ packages:
react: '>=16.9.0'
react-dom: '>=16.9.0'
dependencies:
'@babel/runtime': 192.168.4.201+4873/@babel/runtime@7.22.15
'@babel/runtime': 7.22.15
classnames: 2.3.2
rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
@ -11367,7 +11563,7 @@ packages:
react: '*'
react-dom: '*'
dependencies:
'@babel/runtime': 192.168.4.201+4873/@babel/runtime@7.22.15
'@babel/runtime': 7.22.15
classnames: 2.3.2
rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0)
@ -11575,7 +11771,6 @@ packages:
engines: {node: '>= 0.10'}
dependencies:
resolve: 1.22.4
dev: true
/rechoir@0.8.0:
resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
@ -11613,6 +11808,15 @@ packages:
/regenerate@1.4.2:
resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
/regenerator-runtime@0.12.1:
resolution: {integrity: sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==, tarball: http://192.168.4.201:4873/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz}
dev: false
/regenerator-runtime@0.13.11:
resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, tarball: http://192.168.4.201:4873/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz}
requiresBuild: true
dev: false
/regenerator-runtime@0.14.0:
resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
@ -11936,6 +12140,10 @@ packages:
is-type-of: 1.4.0
dev: false
/seedrandom@3.0.5:
resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==, tarball: http://192.168.4.201:4873/seedrandom/-/seedrandom-3.0.5.tgz}
dev: false
/select-hose@2.0.0:
resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==}
@ -12082,6 +12290,12 @@ packages:
safe-buffer: 5.2.1
dev: false
/shader-loader@1.3.1:
resolution: {integrity: sha512-dt8F9K0x4rjmaFyHh7rNDfpt4LUiR64zhNIEwp2WbE99B3z4ALuvvmhftkElg93dUD6sTmv/aXa/z9SJiEddcA==, tarball: http://192.168.4.201:4873/shader-loader/-/shader-loader-1.3.1.tgz}
dependencies:
loader-utils: 1.4.2
dev: false
/shallow-clone@3.0.1:
resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
engines: {node: '>=8'}
@ -12121,7 +12335,6 @@ packages:
glob: 7.2.3
interpret: 1.4.0
rechoir: 0.6.2
dev: true
/side-channel@1.0.4:
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
@ -12217,6 +12430,10 @@ packages:
deprecated: Please use @jridgewell/sourcemap-codec instead
dev: true
/spark-md5@3.0.2:
resolution: {integrity: sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==, tarball: http://192.168.4.201:4873/spark-md5/-/spark-md5-3.0.2.tgz}
dev: false
/sparse-bitfield@3.0.3:
resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==}
requiresBuild: true
@ -12295,7 +12512,6 @@ packages:
/sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
dev: true
/sqlstring@2.3.3:
resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==}
@ -12328,6 +12544,13 @@ packages:
resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==}
dev: true
/stream-browserify@3.0.0:
resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==, tarball: http://192.168.4.201:4873/stream-browserify/-/stream-browserify-3.0.0.tgz}
dependencies:
inherits: 2.0.4
readable-stream: 3.6.2
dev: false
/stream-transform@2.1.3:
resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==}
dependencies:
@ -13525,6 +13748,10 @@ packages:
'@zxing/text-encoding': 0.9.0
dev: false
/webgl-constants@1.1.1:
resolution: {integrity: sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==, tarball: http://192.168.4.201:4873/webgl-constants/-/webgl-constants-1.1.1.tgz}
dev: false
/webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
@ -13811,6 +14038,10 @@ packages:
resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==}
engines: {node: '>=0.8.0'}
/webworker-promise@0.5.0:
resolution: {integrity: sha512-14iR79jHAV7ozwvbfif+3wCaApT3I1g8Lo0rJZrwAu6wxZGx/08Y8KXz6as6ZLNUEEufeiEBBYrqyDBClXOsEw==, tarball: http://192.168.4.201:4873/webworker-promise/-/webworker-promise-0.5.0.tgz}
dev: false
/whatwg-url@11.0.0:
resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
engines: {node: '>=12'}
@ -13895,6 +14126,17 @@ packages:
execa: 4.1.0
dev: true
/worker-loader@3.0.8(webpack@5.75.0):
resolution: {integrity: sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g==, tarball: http://192.168.4.201:4873/worker-loader/-/worker-loader-3.0.8.tgz}
engines: {node: '>= 10.13.0'}
peerDependencies:
webpack: ^4.0.0 || ^5.0.0
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
webpack: 5.75.0(webpack-cli@5.0.2)
dev: false
/wrap-ansi@6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
@ -13966,6 +14208,17 @@ packages:
resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==}
dev: false
/xmlbuilder2@3.0.2:
resolution: {integrity: sha512-h4MUawGY21CTdhV4xm3DG9dgsqyhDkZvVJBx88beqX8wJs3VgyGQgAn5VreHuae6unTQxh115aMK5InCVmOIKw==, tarball: http://192.168.4.201:4873/xmlbuilder2/-/xmlbuilder2-3.0.2.tgz}
engines: {node: '>=12.0'}
dependencies:
'@oozcitak/dom': 1.15.10
'@oozcitak/infra': 1.0.8
'@oozcitak/util': 8.3.8
'@types/node': 20.3.3
js-yaml: 3.14.0
dev: false
/xmlbuilder@11.0.1:
resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
engines: {node: '>=4.0'}