diff --git a/css/prsm.css b/css/prsm.css index 504917c..e567d08 100644 --- a/css/prsm.css +++ b/css/prsm.css @@ -16,7 +16,6 @@ --modal-header-color: rgb(13, 38, 68); --tab-color: rgb(220, 220, 220); --tutorial-highlight-color: rgb(211, 47, 47); - --chat-message-header-color: rgb(162, 162, 162); --map-title-color: rgb(255, 193, 7); --sample-selected-color: rgb(173, 216, 230); --notes-background-color: rgb(255, 253, 231); @@ -567,14 +566,15 @@ nav button .pressed { #copy-map-button { display: none; } -#saveFile { +#saveFile, +#openFile { margin: auto 0; padding: 1px 0; } .dropdown-wrapper { position: relative; display: inline-block; - padding: 0px; + padding: 0 4px 0 0; color: white; z-index: 2050; } @@ -836,6 +836,45 @@ nav button .pressed { font-size: 12px; } +/* -----Merge modal dialog ------------------------------------------------------------------- */ + +#mergeDialog::backdrop { + opacity: 0.4; + background-color: grey; +} +#mergeDialog { + position: absolute; + top: 90px; + margin: 0 auto; + border-radius: 20px; + padding: 0 10px 10px 10px; + box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px; +} +#mergeDialog #mergeClose { + float: right; + font-weight: bold; + background-color: white; + padding: 10px; + border: none; + font-size: 2em; +} +#mergeDialog h2 { + font-size: 1.5em; + font-weight: bold; + padding: 10px; +} +#mergeDialog #mergedRoom { + width: 300px; +} +#mergeDialog #merge { + float: right; + padding: 6px; + border-radius: 6px; + border: 1px solid black; + width: 7em; + user-select: none; +} + /* ---- Styles for the right hand side panel ------------------------------------------------- */ .panelHeader { diff --git a/doc/help/docs/manual/Cloning.mdx b/doc/help/docs/manual/Cloning.mdx index 369a7b5..1de777e 100644 --- a/doc/help/docs/manual/Cloning.mdx +++ b/doc/help/docs/manual/Cloning.mdx @@ -7,9 +7,9 @@ import { normalizeImagePath } from 'rspress/runtime'; If you click on the **Sharing** button in the top navigation bar, the sharing dialog opens. There are three buttons on the right. If you click the **Clone map** button, a new browser tab will open with the same map but in a new room - any changes made to this new map will _not_ appear in the original room. You can then send the web address to others, confident that they will not disturb the original map. Share Dialog ## Read-only maps @@ -17,17 +17,17 @@ If you click on the **Sharing** button in the top navigation bar, the sharing di If you click the **Read only** button, a copy of the map will be made in a new browser tab, but without any of the buttons for modifying the map. It does however include a **Search** button so that users can search the factors and links in the read only map. You can use the web link of this map to distribute it to people whom you want to look at the map, but not change it. Navigation Bar for a Read Only Map You may not want users to be able to change this read-only map, but nevertheless be able to clone the map to another that they *can* edit. For example, you might want to put the read only map (or a link to it) on a public website in read only mode, so that users cannot mess with it, but also allow users to create and then modify their own versions of the map. This can be achieved by checking the box under the **Read only** button before you create the read only copy. The read only copy will be created in a new tab, as before, but its navigation bar will include a **Copy Map** button, as well as the **Search** button. Clicking on this **Copy Map** button puts the map in a new browser tab in editable mode in a new room. Copy Map Button ## Linking one map to another @@ -40,9 +40,9 @@ You may have several related maps that you would like to navigate between. For e In each of these examples, it might be useful to switch from one map to another with just a click. This can be achieved by adding **Portal** factors to the maps. A portal factor If you click on a portal factor, a browser tab holding the destination map is opened and revealed. @@ -50,13 +50,33 @@ If you click on a portal factor, a browser tab holding the destination map is op A portal factor is just like an ordinary factor, except that the _shape_ is `Portal` and there is an extra field that holds the room name of the destination map. To create a portal factor, add an ordinary factor, giving it a suitable name. Then double click the new factor to open the factor's Edit dialog. Select `Portal` from the `Shape...` menu and fill in the Map field that appears with the room name of the destination map. Press `Save` to create the portal. Editing a portal ## Merging maps -It is possible to merge two maps to make a map that includes all the factors and links from both. If the identical factor or link occurs in both maps, only one copy is included in the merged map. +It is possible to merge two maps to make a map that includes all the factors and links from both. If the identical factor or link occurs in both maps, only one copy is included in the merged map. This can be very useful if two or more groups start with clones of the same map and each group makes changes to their own map. You may then want to integrate all the changes into one map. This can be done by merging the clones. -[Details coming soon...] +To merge two maps, follow these steps (repeat them to merge additional maps): + +1. Open one of the maps. The other map will be merged into this one. It is a good idea to save a copy of this map to your computer before starting to merge. +2. Open a copy of the other map in another browser tab. Click on the **Share** button and copy the map's web link to the clipboard (click on the 'Copy to Clipboard' button). +3. Return to the first map and hover with the mouse pointer over the small downward facing triangle next to the **Open** button. Select **Merge** from the menu. +4. A dialog will appear. Paste in the web link of the other map and click on the **Merge** button. + +Map merging dialog + +Let's call the map that is receiving the merge, map A, and the map that is being merged into it, map B. The merge will: + +* Add any factors in map B that are not in map A into map A +* Add any links in map B that are not in map A into map A +* If a factor in map A is also in map B, but has had its label changed, a new factor with the new label is added to map A, outlined in red. Any links to the factor in map A are also duplicated, linked to the new factor and coloured red. +* If a factor is deleted from map A but retained in map B, it will reappear in map A after the merge. + +All the changes made to map A are recorded in its [History](/manual/Styling#network-tab). diff --git a/doc/help/docs/public/images/MergeMapsDialog.png b/doc/help/docs/public/images/MergeMapsDialog.png new file mode 100644 index 0000000..395e7c2 Binary files /dev/null and b/doc/help/docs/public/images/MergeMapsDialog.png differ diff --git a/doc/help/package-lock.json b/doc/help/package-lock.json index a497aed..42744fe 100644 --- a/doc/help/package-lock.json +++ b/doc/help/package-lock.json @@ -15,9 +15,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", - "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -26,9 +26,9 @@ } }, "node_modules/@bufbuild/protobuf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.1.0.tgz", - "integrity": "sha512-+2Mx67Y3skJ4NCD/qNSdBJNWtu6x6Qr53jeNg+QcwiL6mt0wK+3jwHH2x1p7xaYH6Ve2JKOVn0OxU35WsmqI9A==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.2.2.tgz", + "integrity": "sha512-UNtPCbrwrenpmrXuRwn9jYpPoweNXj8X5sMvYgsqYyaH8jQ6LfUJSk3dJLnBK+6sfYPrF4iAIo5sd5HQ+tg75A==" }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", @@ -169,9 +169,9 @@ } }, "node_modules/@modern-js/utils": { - "version": "2.60.1", - "resolved": "https://registry.npmjs.org/@modern-js/utils/-/utils-2.60.1.tgz", - "integrity": "sha512-Xu/xumI2xnkB6BXqHfqD5cDrMhxAW1/QsrHXWHcvEW1hSbtviw77PUwXs90NgPKGtV5wwdA319kUPxswe4TCUA==", + "version": "2.60.6", + "resolved": "https://registry.npmjs.org/@modern-js/utils/-/utils-2.60.6.tgz", + "integrity": "sha512-rAeqAHiUUnStwBTkP1tdQSz29o/Qtoc2OUfz6TEAtEPoAxcFSc44+hwux7mQkSxXSzBjkbev5RMkwVwuM2FWtw==", "dependencies": { "@swc/helpers": "0.5.13", "caniuse-lite": "^1.0.30001520", @@ -211,22 +211,21 @@ } }, "node_modules/@remix-run/router": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.2.tgz", - "integrity": "sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.20.0.tgz", + "integrity": "sha512-mUnk8rPJBI9loFDZ+YzPGdeniYK+FTmRD1TMCz7ev2SNIozyKKpnGgsxO34u6Z4z/t0ITuu7voi/AshfsGsgFg==", "engines": { "node": ">=14.0.0" } }, "node_modules/@rsbuild/core": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@rsbuild/core/-/core-1.0.5.tgz", - "integrity": "sha512-yUWs4k9X9C661P0kwe3Om1GMJKAxliXDMnBV5hHoaEuAovdp/pOG3pk2fVsRrxcwMn3i6FyMGSVB7g0WmQpeHA==", + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/@rsbuild/core/-/core-1.0.19.tgz", + "integrity": "sha512-63DAPvYfRBoUrb51BUPb4Xoqx48MHQ0yLcmnCiqZGpMeKYtTWzD+lyx5va4cr9qvdnIFTAX2BMuYC/j5iSrtTA==", "dependencies": { - "@rspack/core": "~1.0.5", - "@rspack/lite-tapable": "~1.0.0", + "@rspack/core": "~1.0.14", + "@rspack/lite-tapable": "~1.0.1", "@swc/helpers": "^0.5.13", - "caniuse-lite": "^1.0.30001660", "core-js": "~3.38.1" }, "bin": { @@ -240,9 +239,9 @@ } }, "node_modules/@rsbuild/plugin-less": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rsbuild/plugin-less/-/plugin-less-1.0.1.tgz", - "integrity": "sha512-bXjPDII9b0MCdYxkoNUtf1z11lQVQDPqgC6Iu90s6X5lnfJd7uwxQC7Sr/cHKYDPKVKQZIvbmXHFJxnd8bsCLg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@rsbuild/plugin-less/-/plugin-less-1.0.3.tgz", + "integrity": "sha512-lz/u0C7Cj/sUO0WuwxJR976BLUxFy/mzT9fZOK/G6ceTuhUd1rEQw4FAPuOefhgkDxfqpJ4ZjliVfpm+n4CjyQ==", "dependencies": { "deepmerge": "^4.3.1", "reduce-configs": "^1.0.0" @@ -252,52 +251,52 @@ } }, "node_modules/@rsbuild/plugin-react": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@rsbuild/plugin-react/-/plugin-react-1.0.2.tgz", - "integrity": "sha512-8Sa4AJ43/ift7ZW1iNMA38ZIEDXNINPa8rGI38u7b42yBgMUWBan8yDjFYAC0Gkg3lh8vCWYVQYZp0RyIS7lqA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@rsbuild/plugin-react/-/plugin-react-1.0.6.tgz", + "integrity": "sha512-k2VS7nvNm74DlVQROK+w+Ua1j60n3qSnVFva8zjmj6uakLCxxp85aRwfEHzaVP/YdDLffweypROuQPYvTZ57ew==", "dependencies": { - "@rspack/plugin-react-refresh": "1.0.0", + "@rspack/plugin-react-refresh": "~1.0.0", "react-refresh": "^0.14.2" }, "peerDependencies": { - "@rsbuild/core": "1.x || ^1.0.1-rc.0" + "@rsbuild/core": "1.x" } }, "node_modules/@rsbuild/plugin-sass": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rsbuild/plugin-sass/-/plugin-sass-1.0.1.tgz", - "integrity": "sha512-gybEWXc5kUAc3eur7LJRfWiG9tA5sdDUNo++Fy2pSRhVdYRMLUtKq4YOTmLCYHQ8b7vWRbmv8keqX34ynBm8Bg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@rsbuild/plugin-sass/-/plugin-sass-1.0.4.tgz", + "integrity": "sha512-0eTVOgglTBf440ykuZWJQmh44S3hj/MT95K+P5XwEU8gU72MrEGTrQlZciOqFW8tVkEVmtUlHPx7YEipXhplSQ==", "dependencies": { "deepmerge": "^4.3.1", "loader-utils": "^2.0.4", - "postcss": "^8.4.45", + "postcss": "^8.4.47", "reduce-configs": "^1.0.0", - "sass-embedded": "^1.78.0" + "sass-embedded": "^1.80.3" }, "peerDependencies": { "@rsbuild/core": "1.x || ^1.0.1-rc.0" } }, "node_modules/@rspack/binding": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.0.8.tgz", - "integrity": "sha512-abRirbrjobcllLAamyeiWxT6Rb0wELUnITynQdqRbSweWm2lvnhm9YBv4BcOjvJBzhJtvRJo5JBtbKXjDTarug==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.0.14.tgz", + "integrity": "sha512-0wWqFvr9hkF4LgNPgWfkTU0hhkZAMvOytoCs2p+wDX1Up1E/SgJ1U1JAsCxsl1XtUKm7mRvdWHzJmHbza3y89Q==", "optionalDependencies": { - "@rspack/binding-darwin-arm64": "1.0.8", - "@rspack/binding-darwin-x64": "1.0.8", - "@rspack/binding-linux-arm64-gnu": "1.0.8", - "@rspack/binding-linux-arm64-musl": "1.0.8", - "@rspack/binding-linux-x64-gnu": "1.0.8", - "@rspack/binding-linux-x64-musl": "1.0.8", - "@rspack/binding-win32-arm64-msvc": "1.0.8", - "@rspack/binding-win32-ia32-msvc": "1.0.8", - "@rspack/binding-win32-x64-msvc": "1.0.8" + "@rspack/binding-darwin-arm64": "1.0.14", + "@rspack/binding-darwin-x64": "1.0.14", + "@rspack/binding-linux-arm64-gnu": "1.0.14", + "@rspack/binding-linux-arm64-musl": "1.0.14", + "@rspack/binding-linux-x64-gnu": "1.0.14", + "@rspack/binding-linux-x64-musl": "1.0.14", + "@rspack/binding-win32-arm64-msvc": "1.0.14", + "@rspack/binding-win32-ia32-msvc": "1.0.14", + "@rspack/binding-win32-x64-msvc": "1.0.14" } }, "node_modules/@rspack/binding-darwin-arm64": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.0.8.tgz", - "integrity": "sha512-1l8/eg3HNz53DHQO3fy5O5QKdYh8hSMZaWGtm3NR5IfdrTm2TaLL9tuR8oL2iHHtd87LEvVKHXdjlcuLV5IPNQ==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.0.14.tgz", + "integrity": "sha512-dHvlF6T6ctThGDIdvkSdacroA1xlCxfteuppBj8BX/UxzLPr4xsaEtNilfJmFfd2/J02UQyTQauN/9EBuA+YkA==", "cpu": [ "arm64" ], @@ -307,9 +306,9 @@ ] }, "node_modules/@rspack/binding-darwin-x64": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.0.8.tgz", - "integrity": "sha512-7BbG8gXVWjtqJegDpsObzM/B90Eig1piEtcahvPdvlC92uZz3/IwtKPpMaywGBrf5RSI3U0nQMSekwz0cO1SOw==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.0.14.tgz", + "integrity": "sha512-q4Da1Bn/4xTLhhnOkT+fjP2STsSCfp4z03/J/h8tCVG/UYz56Ud3q1UEOK33c5Fxw1C4GlhEh5yYOlSAdxFQLQ==", "cpu": [ "x64" ], @@ -319,9 +318,9 @@ ] }, "node_modules/@rspack/binding-linux-arm64-gnu": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.8.tgz", - "integrity": "sha512-QnqCL0wmwYqT/IFx5q0aw7DsIOr8oYUa4+7JI8iiqRf3RuuRJExesVW9VuWr0jS2UvChKgmb8PvRtDy/0tshFw==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.14.tgz", + "integrity": "sha512-JogYtL3VQS9wJ3p3FNhDqinm7avrMsdwz4erP7YCjD7idob93GYAE7dPrHUzSNVnCBYXRaHJYZHDQs7lKVcYZw==", "cpu": [ "arm64" ], @@ -331,9 +330,9 @@ ] }, "node_modules/@rspack/binding-linux-arm64-musl": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.8.tgz", - "integrity": "sha512-Ns9TsE7zdUjimW5HURRW08BaMyAh16MDh97PPsGEMeRPx9plnRO9aXvuUG6t+0gy4KwlQdeq3BvUsbBpIo5Tow==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.14.tgz", + "integrity": "sha512-qgybhxI/nnoa8CUz7zKTC0Oh37NZt9uRxsSV7+ZYrfxqbrVCoNVuutPpY724uUHy1M6W34kVEm1uT1N4Ka5cZg==", "cpu": [ "arm64" ], @@ -343,9 +342,9 @@ ] }, "node_modules/@rspack/binding-linux-x64-gnu": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.8.tgz", - "integrity": "sha512-lfqUuKCoyRN/gGeokhX/oNYqB6OpbtgQb57b0QuD8IaiH2a1ee0TtEVvRbyQNEDwht6lW4RTNg0RfMYu52LgXg==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.14.tgz", + "integrity": "sha512-5vzaDRw3/sGKo3ax/1cU3/cxqNjajwlt2LU288vXNe1/n8oe/pcDfYcTugpOe/A1DqzadanudJszLpFcKsaFtQ==", "cpu": [ "x64" ], @@ -355,9 +354,9 @@ ] }, "node_modules/@rspack/binding-linux-x64-musl": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.8.tgz", - "integrity": "sha512-MgbHJWV5utVa1/U9skrXClydZ/eZw001++v4B6nb8myU6Ck1D02aMl9ESefb/sSA8TatLLxEXQ2VENG9stnPwQ==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.14.tgz", + "integrity": "sha512-4U6QD9xVS1eGme52DuJr6Fg/KdcUfJ+iKwH49Up460dZ/fLvGylnVGA+V0mzPlKi8gfy7NwFuYXZdu3Pwi1YYg==", "cpu": [ "x64" ], @@ -367,9 +366,9 @@ ] }, "node_modules/@rspack/binding-win32-arm64-msvc": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.8.tgz", - "integrity": "sha512-3NN5VisnSOzhgqX77O/7NvcjPUueg1oIdMKoc5vElJCEu5FEXPqDhwZmr1PpBovaXshAcgExF3j54+20pwdg5g==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.14.tgz", + "integrity": "sha512-SjeYw7qqRHYZ5RPClu+ffKZsShQdU3amA1OwC3M0AS6dbfEcji8482St3Y8Z+QSzYRapCEZij9LMM/9ypEhISg==", "cpu": [ "arm64" ], @@ -379,9 +378,9 @@ ] }, "node_modules/@rspack/binding-win32-ia32-msvc": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.8.tgz", - "integrity": "sha512-17VQNC7PSygzsipSVoukDM/SOcVueVNsk9bZiB0Swl20BaqrlBts2Dvlmo+L+ZGsxOYI97WvA/zomMDv860usg==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.14.tgz", + "integrity": "sha512-m1gUiVyz3Z3VYIK/Ayo5CVHBjnEeRk9a+KIpKSsq1yhZItnMgjtr4bKabU9vjxalO4UoaSmVzODJI8lJBlnn5Q==", "cpu": [ "ia32" ], @@ -391,9 +390,9 @@ ] }, "node_modules/@rspack/binding-win32-x64-msvc": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.8.tgz", - "integrity": "sha512-Vtjt74Soh09XUsV5Nw0YjZVSk/qtsjtPnzbSZluncSAVUs8l+X1ALcM6n1Jrt3TLTfcqf7a+VIsWOXAMqkCGUg==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.14.tgz", + "integrity": "sha512-Gbeg+bayMF9VP9xmlxySL/TC2XrS6/LZM/pqcNOTLHx6LMG/VXCcmKB0rOZo8MzLXEt8D/lQmQ/B6g7pSaAw0g==", "cpu": [ "x64" ], @@ -403,12 +402,12 @@ ] }, "node_modules/@rspack/core": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.0.8.tgz", - "integrity": "sha512-pbXwXYb4WQwb0l35P5v3l/NpDJXy1WiVE4IcQ/6LxZYU5NyZuqtsK0trR88xIVRZb9qU0JUeCdQq7Xa6Q+c3Xw==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.0.14.tgz", + "integrity": "sha512-xHl23lxJZNjItGc5YuE9alz3yjb56y7EgJmAcBMPHMqgjtUt8rBu4xd/cSUjbr9/lLF9N4hdyoJiPJOFs9LEjw==", "dependencies": { "@module-federation/runtime-tools": "0.5.1", - "@rspack/binding": "1.0.8", + "@rspack/binding": "1.0.14", "@rspack/lite-tapable": "1.0.1", "caniuse-lite": "^1.0.30001616" }, @@ -450,27 +449,27 @@ } }, "node_modules/@rspress/core": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@rspress/core/-/core-1.31.1.tgz", - "integrity": "sha512-pkFVvrvJaW4GaMoEvtVdFgAo7OAc0CbYu+0TlDPiWmqt05cMDL0uR5lgYb85gXp5qimXiVIIddpgUXe0T7R9/Q==", + "version": "1.35.3", + "resolved": "https://registry.npmjs.org/@rspress/core/-/core-1.35.3.tgz", + "integrity": "sha512-sT+0t2UJ/qxahPDlFVDKl/n8ACZvmxL5r57AZF923VvKpdkgE729bZ8xlZQku5sl9KCcwo4+87V7AOUIEC4JHw==", "dependencies": { "@loadable/component": "5.16.4", "@mdx-js/loader": "2.3.0", "@mdx-js/mdx": "2.3.0", "@mdx-js/react": "2.3.0", - "@modern-js/utils": "2.60.1", - "@rsbuild/core": "1.0.5", - "@rsbuild/plugin-less": "1.0.1", - "@rsbuild/plugin-react": "1.0.2", - "@rsbuild/plugin-sass": "1.0.1", - "@rspress/mdx-rs": "0.5.7", - "@rspress/plugin-auto-nav-sidebar": "1.31.1", - "@rspress/plugin-container-syntax": "1.31.1", - "@rspress/plugin-last-updated": "1.31.1", - "@rspress/plugin-medium-zoom": "1.31.1", - "@rspress/runtime": "1.31.1", - "@rspress/shared": "1.31.1", - "@rspress/theme-default": "1.31.1", + "@modern-js/utils": "2.60.6", + "@rsbuild/core": "~1.0.18", + "@rsbuild/plugin-less": "~1.0.3", + "@rsbuild/plugin-react": "~1.0.5", + "@rsbuild/plugin-sass": "~1.0.4", + "@rspress/mdx-rs": "0.6.1", + "@rspress/plugin-auto-nav-sidebar": "1.35.3", + "@rspress/plugin-container-syntax": "1.35.3", + "@rspress/plugin-last-updated": "1.35.3", + "@rspress/plugin-medium-zoom": "1.35.3", + "@rspress/runtime": "1.35.3", + "@rspress/shared": "1.35.3", + "@rspress/theme-default": "1.35.3", "body-scroll-lock": "4.0.0-beta.0", "copy-to-clipboard": "^3.3.3", "enhanced-resolve": "5.17.1", @@ -509,27 +508,27 @@ } }, "node_modules/@rspress/mdx-rs": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@rspress/mdx-rs/-/mdx-rs-0.5.7.tgz", - "integrity": "sha512-Ie9TqTeMF7yCBqKAOxyLD1W2cDhRZkMsIFD4UJ9nAJTuV4zMj1aXoaKL94phsnl6ImDykF/dohTeuBUrwch08g==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@rspress/mdx-rs/-/mdx-rs-0.6.1.tgz", + "integrity": "sha512-hAZH2dZPueRACh2dL6EuKzNSxPShq0zd0BCat1IaOpJ8mX73IRvTAQib/26gTM1IRikjMY7R7Bs6/RDZrjM+dQ==", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@rspress/mdx-rs-darwin-arm64": "0.5.7", - "@rspress/mdx-rs-darwin-x64": "0.5.7", - "@rspress/mdx-rs-linux-arm64-gnu": "0.5.7", - "@rspress/mdx-rs-linux-arm64-musl": "0.5.7", - "@rspress/mdx-rs-linux-x64-gnu": "0.5.7", - "@rspress/mdx-rs-linux-x64-musl": "0.5.7", - "@rspress/mdx-rs-win32-arm64-msvc": "0.5.7", - "@rspress/mdx-rs-win32-x64-msvc": "0.5.7" + "@rspress/mdx-rs-darwin-arm64": "0.6.1", + "@rspress/mdx-rs-darwin-x64": "0.6.1", + "@rspress/mdx-rs-linux-arm64-gnu": "0.6.1", + "@rspress/mdx-rs-linux-arm64-musl": "0.6.1", + "@rspress/mdx-rs-linux-x64-gnu": "0.6.1", + "@rspress/mdx-rs-linux-x64-musl": "0.6.1", + "@rspress/mdx-rs-win32-arm64-msvc": "0.6.1", + "@rspress/mdx-rs-win32-x64-msvc": "0.6.1" } }, "node_modules/@rspress/mdx-rs-darwin-arm64": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-darwin-arm64/-/mdx-rs-darwin-arm64-0.5.7.tgz", - "integrity": "sha512-8zU3nCA1ot2mKpaQsWyEUgpMqBXj/0aWFzsXdxyHojKAkRxgY9pTTKSolUx/Nt3iDeJwhfMBRmoD1d34rZemEQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-darwin-arm64/-/mdx-rs-darwin-arm64-0.6.1.tgz", + "integrity": "sha512-XV/meKCyAbuhv4u1iC2Y0l6bwspiqAwmSA55wG5r1L88DG5kD1sntiIB5seKkr7oUXcDJ/QbRy76GZuHuYdBzA==", "cpu": [ "arm64" ], @@ -542,9 +541,9 @@ } }, "node_modules/@rspress/mdx-rs-darwin-x64": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-darwin-x64/-/mdx-rs-darwin-x64-0.5.7.tgz", - "integrity": "sha512-nNiEKvuWWBL2OUvGGZS8v83fXHhyQKy6CTwZ9vwamVZrslvN63W/11TxX23wumvhnwgfbi3+1gy2sEF4b/F5ew==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-darwin-x64/-/mdx-rs-darwin-x64-0.6.1.tgz", + "integrity": "sha512-29G3RfWSyfQOuNLnI4XC6uOwCf6tFtigcBDYFFY+JmYltUetRNRBCnn9xOyLd3RUKFaoc97oKRzwWBzpKougYw==", "cpu": [ "x64" ], @@ -557,9 +556,9 @@ } }, "node_modules/@rspress/mdx-rs-linux-arm64-gnu": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-linux-arm64-gnu/-/mdx-rs-linux-arm64-gnu-0.5.7.tgz", - "integrity": "sha512-vaNgtx2VX5289JfobXpNekFchM9kzBkqglDeujA9LHiokvr373seHsm+TEJ2XZiY2ELyRi1PS1MX5soIasbyfg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-linux-arm64-gnu/-/mdx-rs-linux-arm64-gnu-0.6.1.tgz", + "integrity": "sha512-SHPlnghHBBx+yU+HyP1pZEeC6aKtx654kfKXx9YMauGvmA2XbTU7FRIio8rYK+e310F67vAZH7SRcTeczhSlyA==", "cpu": [ "arm64" ], @@ -572,9 +571,9 @@ } }, "node_modules/@rspress/mdx-rs-linux-arm64-musl": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-linux-arm64-musl/-/mdx-rs-linux-arm64-musl-0.5.7.tgz", - "integrity": "sha512-/bQilCaEK3HJ2fkCU37ioazcY0NJ6QeYLNQBnXLM3cFL7a+iCq1+AVXz6DFNQdE/bE1AzUySrLFFFQaMhrx06w==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-linux-arm64-musl/-/mdx-rs-linux-arm64-musl-0.6.1.tgz", + "integrity": "sha512-8o+V3LZ/OvT/0kky56GVM9uqCWbfi5m/RlCE2pS7DqZYvQZcMVeZc14eEWLtLcZd2dsZlqmT/fekbEkoP+pu5Q==", "cpu": [ "arm64" ], @@ -587,9 +586,9 @@ } }, "node_modules/@rspress/mdx-rs-linux-x64-gnu": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-linux-x64-gnu/-/mdx-rs-linux-x64-gnu-0.5.7.tgz", - "integrity": "sha512-t4Zevz9wVt2HAj7WVGS/w388yV8jE0WgYK7TE9Dv86t/L/ko+qNTfjm+t5k7r/CKPUaXrLzxsTsRzqBWoDF8bQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-linux-x64-gnu/-/mdx-rs-linux-x64-gnu-0.6.1.tgz", + "integrity": "sha512-v4ZIscNR7AyeQE/8Hcy5Sceh2sbc481GfAUV7LMTcaAiAdHvVQXdWxeoUA/x23uAXmfP+dveZcmhfoGMe/y4rQ==", "cpu": [ "x64" ], @@ -602,9 +601,9 @@ } }, "node_modules/@rspress/mdx-rs-linux-x64-musl": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-linux-x64-musl/-/mdx-rs-linux-x64-musl-0.5.7.tgz", - "integrity": "sha512-4hZhb9MN/o1QaT+eQtVxcf/RZnDw5dVFA/AQWfsmuJRNp1jkzF3DIdyIVaJpQdWt5XXnWNqXrhN43qsHy8nZMQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-linux-x64-musl/-/mdx-rs-linux-x64-musl-0.6.1.tgz", + "integrity": "sha512-cbBIf6q73n/aB/0ctIW0FHkpBxSUXFazwXJ3nv4YISZP5/1ytE1RXsOPo47Zko3Ta41bNxLYvi5PLOz8cdIejw==", "cpu": [ "x64" ], @@ -617,9 +616,9 @@ } }, "node_modules/@rspress/mdx-rs-win32-arm64-msvc": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-win32-arm64-msvc/-/mdx-rs-win32-arm64-msvc-0.5.7.tgz", - "integrity": "sha512-IIwUiJ35fnpG7Z9c0Doqaxw3XSVgahX0rHsOdFc21RPfUqHGNlTUCdDaK00oXwaxSCzNyw1zRN7qynpR0RsPvQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-win32-arm64-msvc/-/mdx-rs-win32-arm64-msvc-0.6.1.tgz", + "integrity": "sha512-x3kujsuzl3kzsL9kBQy/5QdEO6Ga9+nyG3+lbLbGHKfberT0+ZbgOMTwpQ8hetv0qs/bFZWcMhNbZ6+KwKSUYg==", "cpu": [ "arm64" ], @@ -632,9 +631,9 @@ } }, "node_modules/@rspress/mdx-rs-win32-x64-msvc": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-win32-x64-msvc/-/mdx-rs-win32-x64-msvc-0.5.7.tgz", - "integrity": "sha512-W7hbIJ3Zro8/ML3mZPdhFhmDh8VXcRM8jiMdfnXPUG+vSFmj8N6kfV/FO539foUoUKI1+4VGPxYO2vKXs3iDDQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@rspress/mdx-rs-win32-x64-msvc/-/mdx-rs-win32-x64-msvc-0.6.1.tgz", + "integrity": "sha512-14YQOlV8YBHYNEzNZ4tXuSCWvnWpwuGI2WgXJMEBvhAFLOEpDAzof3KrcfExvBF0gxlUsC/loIorBT4RzoFn4g==", "cpu": [ "x64" ], @@ -647,42 +646,42 @@ } }, "node_modules/@rspress/plugin-auto-nav-sidebar": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@rspress/plugin-auto-nav-sidebar/-/plugin-auto-nav-sidebar-1.31.1.tgz", - "integrity": "sha512-VzhkygoM9A3cvBfOAiayjBdyn1MJmTa9iOjZrOGno6Iw8T5f6Vhk1qkjyOU6MlbHR+WVFTcNx8WTTTGcNu2NwA==", + "version": "1.35.3", + "resolved": "https://registry.npmjs.org/@rspress/plugin-auto-nav-sidebar/-/plugin-auto-nav-sidebar-1.35.3.tgz", + "integrity": "sha512-ooLJzhkRSx8BKTcG9WLxuV7eXtqs/RG5IAew3wWK0D5ogy36/JYG2DZssmmrvPWN4wTySjlJCYpEyJWAwaGOBg==", "dependencies": { - "@rspress/shared": "1.31.1" + "@rspress/shared": "1.35.3" }, "engines": { "node": ">=14.17.6" } }, "node_modules/@rspress/plugin-container-syntax": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@rspress/plugin-container-syntax/-/plugin-container-syntax-1.31.1.tgz", - "integrity": "sha512-vk/W4N/HQLzydviqPTZBPlJdguGfVwSUM+aciNJHC6qi4Afk06sLeAoVhJZF6vzOdZjRP9ODwlNO0PkpkUB13Q==", + "version": "1.35.3", + "resolved": "https://registry.npmjs.org/@rspress/plugin-container-syntax/-/plugin-container-syntax-1.35.3.tgz", + "integrity": "sha512-YPtnBfvlAfbwlOKtR2vj4SwV7Kk04Kt2cWkjnKQRZph1Sj6fHWgaT620ES6gbkYLz7pLmQtpFc/VSLZurDkDvw==", "dependencies": { - "@rspress/shared": "1.31.1" + "@rspress/shared": "1.35.3" }, "engines": { "node": ">=14.17.6" } }, "node_modules/@rspress/plugin-last-updated": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@rspress/plugin-last-updated/-/plugin-last-updated-1.31.1.tgz", - "integrity": "sha512-cWleN7NT73pfs1nnutSPNXQAAbT1jH1bnZkXUlAMWBmWLRIFm78ylgM45btw+8obqkzZZybsmm7wGMNjr1geQA==", + "version": "1.35.3", + "resolved": "https://registry.npmjs.org/@rspress/plugin-last-updated/-/plugin-last-updated-1.35.3.tgz", + "integrity": "sha512-yPUTGLC9e+4Vz0GsX2gobKcR7qYyoe/dcood4dSi8ByO29qLSxnbiO8kb3e0jc7aBHeoUQyjswRaPzftcgcZUA==", "dependencies": { - "@rspress/shared": "1.31.1" + "@rspress/shared": "1.35.3" }, "engines": { "node": ">=14.17.6" } }, "node_modules/@rspress/plugin-medium-zoom": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@rspress/plugin-medium-zoom/-/plugin-medium-zoom-1.31.1.tgz", - "integrity": "sha512-e02RK1BSdjN8fXUVh90pAuIjxLjMPDY2r90FjTECB7DU9HlkyQTZclAhGIinbNC72hYBe+n8Tuaaz0sIIdq5lg==", + "version": "1.35.3", + "resolved": "https://registry.npmjs.org/@rspress/plugin-medium-zoom/-/plugin-medium-zoom-1.35.3.tgz", + "integrity": "sha512-IBM0CH5/SjPEjd0sBgqxhjmCJwurSvwVfwvmZG/3OFkMx65MoejII+PWJColSarKDKwU+VN9CMrULkNDw+a8gg==", "dependencies": { "medium-zoom": "1.1.0" }, @@ -690,30 +689,30 @@ "node": ">=14.17.6" }, "peerDependencies": { - "@rspress/runtime": "^1.31.1" + "@rspress/runtime": "^1.35.3" } }, "node_modules/@rspress/runtime": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@rspress/runtime/-/runtime-1.31.1.tgz", - "integrity": "sha512-UrDXGnbYrhxi9O1SC9kM7IScJHpTj55MxqHAJF/E3ECdaKKiMtcldgaBhZfbCpUquzV9K92Og3ukjpsqg/swhw==", + "version": "1.35.3", + "resolved": "https://registry.npmjs.org/@rspress/runtime/-/runtime-1.35.3.tgz", + "integrity": "sha512-JyjQuiV4E2l2BpGbh8Gkoc3tb/OO5Y6xYd7yff/14tFvsWwxpPp7VbAMH7CcV4zz/D6VSpr5nlZloyTfC9arhA==", "dependencies": { - "@rspress/shared": "1.31.1", + "@rspress/shared": "1.35.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-helmet-async": "^1.3.0", - "react-router-dom": "^6.8.1" + "react-router-dom": "^6.27.0" }, "engines": { "node": ">=14.17.6" } }, "node_modules/@rspress/shared": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@rspress/shared/-/shared-1.31.1.tgz", - "integrity": "sha512-v+bihsmqnyLodh58pKuqVQGZxYEYkml4wcx+1IkcPaU6fbPGw6aIAzjyAPs/jahoC8XeCJ3zvkJ7kqHi1UG6uA==", + "version": "1.35.3", + "resolved": "https://registry.npmjs.org/@rspress/shared/-/shared-1.35.3.tgz", + "integrity": "sha512-vrcM/CP/Ji2qf4Of+JQMLr9pwygtjcICdtVRL+ch97CaFCoX9JfqY3hHMuCHFsZ7FNenWxOolJeLW06sYBcPdQ==", "dependencies": { - "@rsbuild/core": "1.0.5", + "@rsbuild/core": "~1.0.18", "chalk": "5.3.0", "execa": "5.1.1", "fs-extra": "11.2.0", @@ -722,13 +721,13 @@ } }, "node_modules/@rspress/theme-default": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@rspress/theme-default/-/theme-default-1.31.1.tgz", - "integrity": "sha512-4iOWkPG8IRyG5/wz8GF5jTzNIAAOeaOMtoB6lVMuhrktpMShsCBl8RD0IdswfubzpH0cW2amsV6+B1RZ75nnkQ==", + "version": "1.35.3", + "resolved": "https://registry.npmjs.org/@rspress/theme-default/-/theme-default-1.35.3.tgz", + "integrity": "sha512-VfHmr6IzJ0JR17w/Fv6f6vPXS6VCMjx1oq7SJ8qkpQyhhCXeMOLRZ9QevvDqrOISREKZBR0XWe0nVT5d8FbgPA==", "dependencies": { "@mdx-js/react": "2.3.0", - "@rspress/runtime": "1.31.1", - "@rspress/shared": "1.31.1", + "@rspress/runtime": "1.35.3", + "@rspress/shared": "1.35.3", "body-scroll-lock": "4.0.0-beta.0", "copy-to-clipboard": "^3.3.3", "flexsearch": "0.7.43", @@ -786,6 +785,26 @@ "@types/ms": "*" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -837,9 +856,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "16.18.112", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.112.tgz", - "integrity": "sha512-EKrbKUGJROm17+dY/gMi31aJlGLJ75e1IkTojt9n6u+hnaTBDs+M1bIdOawpk2m6YUAXq/R2W0SxCng1tndHCg==" + "version": "16.18.118", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.118.tgz", + "integrity": "sha512-YgPbVGrf+mL4Qp8KTcd18OXfIsm1QYwHkldmWTNIR8aZH2EYSPNyLFFZHEXZIGYvYrwnW++xGoWyt4w279QDrQ==" }, "node_modules/@types/parse5": { "version": "6.0.3", @@ -852,9 +871,9 @@ "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==" }, "node_modules/@types/react": { - "version": "18.3.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", - "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -1024,9 +1043,9 @@ "peer": true }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "bin": { "acorn": "bin/acorn" }, @@ -1034,15 +1053,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "peer": true, - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -1149,9 +1159,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -1167,10 +1177,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -1199,9 +1209,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001667", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", - "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "version": "1.0.30001676", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001676.tgz", + "integrity": "sha512-Qz6zwGCiPghQXGJvgQAem79esjitvJ+CxSbSQkW9H/UX5hg8XM88d4lp2W+MEQ81j+Hip58Il+jGVdazk1z9cw==", "funding": [ { "type": "opencollective", @@ -1494,9 +1504,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.32", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.32.tgz", - "integrity": "sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==" + "version": "1.5.50", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz", + "integrity": "sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==" }, "node_modules/emojis-list": { "version": "3.0.0", @@ -2279,6 +2289,11 @@ "node": "*" } }, + "node_modules/highlightjs-vue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/highlightjs-vue/-/highlightjs-vue-1.0.0.tgz", + "integrity": "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==" + }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -2790,9 +2805,9 @@ } }, "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4171,11 +4186,11 @@ } }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "dependencies": { - "entities": "^4.4.0" + "entities": "^4.5.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -4220,9 +4235,9 @@ } }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -4370,11 +4385,11 @@ } }, "node_modules/react-router": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz", - "integrity": "sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==", + "version": "6.27.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.27.0.tgz", + "integrity": "sha512-YA+HGZXz4jaAkVoYBE98VQl+nVzI+cVI2Oj/06F5ZM+0u3TgedN9Y9kmMRo2mnkSK2nCpNQn0DVob4HCsY/WLw==", "dependencies": { - "@remix-run/router": "1.19.2" + "@remix-run/router": "1.20.0" }, "engines": { "node": ">=14.0.0" @@ -4384,12 +4399,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.2.tgz", - "integrity": "sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==", + "version": "6.27.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.27.0.tgz", + "integrity": "sha512-+bvtFWMC0DgAFrfKXKG9Fc+BcXWRUO1aJIihbB79xaeq0v5UzfvnM5houGUm1Y461WVRcgAQ+Clh5rdb1eCx4g==", "dependencies": { - "@remix-run/router": "1.19.2", - "react-router": "6.26.2" + "@remix-run/router": "1.20.0", + "react-router": "6.27.0" }, "engines": { "node": ">=14.0.0" @@ -4400,12 +4415,13 @@ } }, "node_modules/react-syntax-highlighter": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz", - "integrity": "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==", + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.6.1.tgz", + "integrity": "sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==", "dependencies": { "@babel/runtime": "^7.3.1", "highlight.js": "^10.4.1", + "highlightjs-vue": "^1.0.0", "lowlight": "^1.17.0", "prismjs": "^1.27.0", "refractor": "^3.6.0" @@ -4733,13 +4749,13 @@ } }, "node_modules/rspress": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/rspress/-/rspress-1.31.1.tgz", - "integrity": "sha512-GNCR8b4NY87/97jyXitfaQS8ysAeAVrlw3nNus4ZqRrUTFPl6sdfsn1fhnTsUzJlvvXAfzrGQ7MFgzwSDXGzZw==", + "version": "1.35.3", + "resolved": "https://registry.npmjs.org/rspress/-/rspress-1.35.3.tgz", + "integrity": "sha512-yaPWVsSB5ULxi3AGZANE9CowCnVe53d8Ga6Ia3IDyIgfeqCQ4tyOVZkrKevXY/TGzuKurBizRzLgw3vilwqvyg==", "dependencies": { - "@rsbuild/core": "1.0.5", - "@rspress/core": "1.31.1", - "@rspress/shared": "1.31.1", + "@rsbuild/core": "~1.0.18", + "@rspress/core": "1.35.3", + "@rspress/shared": "1.35.3", "cac": "^6.7.14", "chalk": "5.3.0", "chokidar": "^3.6.0" @@ -4788,9 +4804,9 @@ "peer": true }, "node_modules/sass-embedded": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.79.4.tgz", - "integrity": "sha512-3AATrtStMgxYjkit02/Ix8vx/P7qderYG6DHjmehfk5jiw53OaWVScmcGJSwp/d77kAkxDQ+Y0r+79VynGmrkw==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.80.6.tgz", + "integrity": "sha512-Og4aqBnaA3oJfIpHaLuNATAqzBRgUJDYJy2X15V59cot2wYOtiT/ciPnyuq1o7vpDEeOkHhEd+mSviSlXoETug==", "dependencies": { "@bufbuild/protobuf": "^2.0.0", "buffer-builder": "^0.2.0", @@ -4807,32 +4823,32 @@ "node": ">=16.0.0" }, "optionalDependencies": { - "sass-embedded-android-arm": "1.79.4", - "sass-embedded-android-arm64": "1.79.4", - "sass-embedded-android-ia32": "1.79.4", - "sass-embedded-android-riscv64": "1.79.4", - "sass-embedded-android-x64": "1.79.4", - "sass-embedded-darwin-arm64": "1.79.4", - "sass-embedded-darwin-x64": "1.79.4", - "sass-embedded-linux-arm": "1.79.4", - "sass-embedded-linux-arm64": "1.79.4", - "sass-embedded-linux-ia32": "1.79.4", - "sass-embedded-linux-musl-arm": "1.79.4", - "sass-embedded-linux-musl-arm64": "1.79.4", - "sass-embedded-linux-musl-ia32": "1.79.4", - "sass-embedded-linux-musl-riscv64": "1.79.4", - "sass-embedded-linux-musl-x64": "1.79.4", - "sass-embedded-linux-riscv64": "1.79.4", - "sass-embedded-linux-x64": "1.79.4", - "sass-embedded-win32-arm64": "1.79.4", - "sass-embedded-win32-ia32": "1.79.4", - "sass-embedded-win32-x64": "1.79.4" + "sass-embedded-android-arm": "1.80.6", + "sass-embedded-android-arm64": "1.80.6", + "sass-embedded-android-ia32": "1.80.6", + "sass-embedded-android-riscv64": "1.80.6", + "sass-embedded-android-x64": "1.80.6", + "sass-embedded-darwin-arm64": "1.80.6", + "sass-embedded-darwin-x64": "1.80.6", + "sass-embedded-linux-arm": "1.80.6", + "sass-embedded-linux-arm64": "1.80.6", + "sass-embedded-linux-ia32": "1.80.6", + "sass-embedded-linux-musl-arm": "1.80.6", + "sass-embedded-linux-musl-arm64": "1.80.6", + "sass-embedded-linux-musl-ia32": "1.80.6", + "sass-embedded-linux-musl-riscv64": "1.80.6", + "sass-embedded-linux-musl-x64": "1.80.6", + "sass-embedded-linux-riscv64": "1.80.6", + "sass-embedded-linux-x64": "1.80.6", + "sass-embedded-win32-arm64": "1.80.6", + "sass-embedded-win32-ia32": "1.80.6", + "sass-embedded-win32-x64": "1.80.6" } }, "node_modules/sass-embedded-android-arm": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.79.4.tgz", - "integrity": "sha512-YOVpDGDcwWUQvktpJhYo4zOkknDpdX6ALpaeHDTX6GBUvnZfx+Widh76v+QFUhiJQ/I/hndXg1jv/PKilOHRrw==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.80.6.tgz", + "integrity": "sha512-UeUKMTRsnz4/dh7IzvhjONxa4/jmVp539CHDd8VZOsqg9M3HcNJNIkUzQWbuwZ+nSlWrTuo7Tvn3XlypopCBzw==", "cpu": [ "arm" ], @@ -4845,9 +4861,9 @@ } }, "node_modules/sass-embedded-android-arm64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.79.4.tgz", - "integrity": "sha512-0JAZ8TtXYv9yI3Yasaq03xvo7DLJOmD+Exb30oJKxXcWTAV9TB0ZWKoIRsFxbCyPxyn7ouxkaCEXQtaTRKrmfw==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.80.6.tgz", + "integrity": "sha512-4rC4ZGM/k4ENVjLXnK3JTst8e8FI9MHSol2Fl7dCdYyJ3KLnlt4qL4AEYfU8zq1tcBb7CBOSZVR+CzCKubnXdg==", "cpu": [ "arm64" ], @@ -4860,9 +4876,9 @@ } }, "node_modules/sass-embedded-android-ia32": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.79.4.tgz", - "integrity": "sha512-IjO3RoyvNN84ZyfAR5s/a8TIdNPfClb7CLGrswB3BN/NElYIJUJMVHD6+Y8W9QwBIZ8DrK1IdLFSTV8nn82xMA==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.80.6.tgz", + "integrity": "sha512-Lxz2SXE2KdHnynuHF+D6flDvrd55/zaEAWUeka9MxEr6FmR66d8UBOIy5ETwCSUd//S/SE5Jl6oTnHppgD1zNA==", "cpu": [ "ia32" ], @@ -4875,9 +4891,9 @@ } }, "node_modules/sass-embedded-android-riscv64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.79.4.tgz", - "integrity": "sha512-uOT8nXmKxSwuIdcqvElVWBFcm/+YcIvmwfoKbpuuSOSxUe9eqFzxo+fk7ILhynzf6FBlvRUH5DcjGj+sXtCc3w==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.80.6.tgz", + "integrity": "sha512-hKdxY/oOqB+JJhSoBTDM5DJO1j/xtxQgayh2cLCCUx37IQQe3SEdc3V2JFf/4mIo5peaS4cjqwwSATF+l2zaXg==", "cpu": [ "riscv64" ], @@ -4890,9 +4906,9 @@ } }, "node_modules/sass-embedded-android-x64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.79.4.tgz", - "integrity": "sha512-W2FQoj3Z2J2DirNs3xSBVvrhMuqLnsqvOPulxOkhL/074+faKOZZnPx2tZ5zsHbY97SonciiU0SV0mm98xI42w==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.80.6.tgz", + "integrity": "sha512-Eap2Fi3kTx/rVLBsOnOp5RYPr5+lFjTZ652zR24dmYFe9/sDgasakJIOPjOvD2bRuL9z0uWEY1AXVeeOPeZKrg==", "cpu": [ "x64" ], @@ -4905,9 +4921,9 @@ } }, "node_modules/sass-embedded-darwin-arm64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.79.4.tgz", - "integrity": "sha512-pcYtbN1VUAAcfgyHeX8ySndDWGjIvcq6rldduktPbGGuAlEWFDfnwjTbv0hS945ggdzZ6TFnaFlLEDr0SjKzBA==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.80.6.tgz", + "integrity": "sha512-0mnAx8Vq6Gxj3PQt3imgITfK33hhqrSKpyHSuab71gZZni5opsdtoggq2JawW+1taRFTEZwbZJLKZ0MBDbwCCA==", "cpu": [ "arm64" ], @@ -4920,9 +4936,9 @@ } }, "node_modules/sass-embedded-darwin-x64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.79.4.tgz", - "integrity": "sha512-ir8CFTfc4JLx/qCP8LK1/3pWv35nRyAQkUK7lBIKM6hWzztt64gcno9rZIk4SpHr7Z/Bp1IYWWRS4ZT+4HmsbA==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.80.6.tgz", + "integrity": "sha512-Ib20yNZFOrJ7YVT+ltoe+JQNKPcRclM3iLAK69XZZYcSeFM/72SCoQBAaVGIpT23dxDp7FXiE4lO602c3xTRwQ==", "cpu": [ "x64" ], @@ -4935,9 +4951,9 @@ } }, "node_modules/sass-embedded-linux-arm": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.79.4.tgz", - "integrity": "sha512-H/XEE3rY7c+tY0qDaELjPjC6VheAhBo1tPJQ6UHoBEf8xrbT/RT3dWiIS8grp9Vk54RCn05BEB/+POaljvvKGA==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.80.6.tgz", + "integrity": "sha512-QR0Q6TZox/ThuU2r9c0s3fKCgU2rXAEocpitdgxFp6tta+GsQlMFV3oON2unAa8Bwnuxkmf0YOaK0Oy/TwzkXw==", "cpu": [ "arm" ], @@ -4950,9 +4966,9 @@ } }, "node_modules/sass-embedded-linux-arm64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.79.4.tgz", - "integrity": "sha512-XIVn2mCuA422SR2kmKjF6jhjMs1Vrt1DbZ/ktSp+eR0sU4ugu2htg45GajiUFSKKRj7Sc+cBdThq1zPPsDLf1w==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.80.6.tgz", + "integrity": "sha512-n5r98pBXawrQQKaxIYCMM1zDpnngsqxTkOrmvsYLFiAMCSbR0lWf/7sBB33k/Pm0D6dsbp3jpHilCoQNKI3jIw==", "cpu": [ "arm64" ], @@ -4965,9 +4981,9 @@ } }, "node_modules/sass-embedded-linux-ia32": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.79.4.tgz", - "integrity": "sha512-3nqZxV4nuUTb1ahLexVl4hsnx1KKwiGdHEf1xHWTZai6fYFMcwyNPrHySCQzFHqb5xiqSpPzzrKjuDhF6+guuQ==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.80.6.tgz", + "integrity": "sha512-O6dWZdcOkryRdDCxVMGOeVowgblpDgVcAuRtZ1F1X7XfbpDriTQm64D+9vVZIrywYSPoJfQMJJ662cr0wUs9IQ==", "cpu": [ "ia32" ], @@ -4980,9 +4996,9 @@ } }, "node_modules/sass-embedded-linux-musl-arm": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.79.4.tgz", - "integrity": "sha512-HnbU1DEiQdUayioNzxh2WlbTEgQRBPTgIIvof8J63QLmVItUqE7EkWYkSUy4RhO+8NsuN9wzGmGTzFBvTImU7g==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.80.6.tgz", + "integrity": "sha512-X9FC8s8fvQGRiXc+eATlZ57N44Iq3nNa0M0ugi3ysdJwkaNYvOeS4QzBHKQAaw3QiTqdxTnLUHHVBkyzdCi9pw==", "cpu": [ "arm" ], @@ -4995,9 +5011,9 @@ } }, "node_modules/sass-embedded-linux-musl-arm64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.79.4.tgz", - "integrity": "sha512-C6qX06waPEfDgOHR8jXoYxl0EtIXOyBDyyonrLO3StRjWjGx7XMQj2hA/KXSsV+Hr71fBOsaViosqWXPzTbEiQ==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.80.6.tgz", + "integrity": "sha512-VeUSHUi3MAsvOlg9QI4X/2j04h1659aE+7qKP/282CYBTrGkjFGSXZhIki9WKWDgIpDiSInRYXfQQRWhPhjCDg==", "cpu": [ "arm64" ], @@ -5010,9 +5026,9 @@ } }, "node_modules/sass-embedded-linux-musl-ia32": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.79.4.tgz", - "integrity": "sha512-y5b0fdOPWyhj4c+mc88GvQiC5onRH1V0iNaWNjsiZ+L4hHje6T98nDLrCJn0fz5GQnXjyLCLZduMWbfV0QjHGg==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.80.6.tgz", + "integrity": "sha512-GqitS2Nab8ah0+wfCqaxW1hnI1piC08FimL6+lM9YWK5DbCOOF82IapbvJOy0feUmd/wNnHmyNTgE9h0zVMFdQ==", "cpu": [ "ia32" ], @@ -5025,9 +5041,9 @@ } }, "node_modules/sass-embedded-linux-musl-riscv64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.79.4.tgz", - "integrity": "sha512-G2M5ADMV9SqnkwpM0S+UzDz7xR2njCOhofku/sDMZABzAjQQWTsAykKoGmzlT98fTw2HbNhb6u74umf2WLhCfw==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.80.6.tgz", + "integrity": "sha512-ySs15z7QSRRQK/aByEEqaJLYW/sTpfynefNPZCtsVNVEzNRwy+DRpxNChtxo+QjKq97ocXETbdG5KLik7QOTJg==", "cpu": [ "riscv64" ], @@ -5040,9 +5056,9 @@ } }, "node_modules/sass-embedded-linux-musl-x64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.79.4.tgz", - "integrity": "sha512-kQm8dCU3DXf7DtUGWYPiPs03KJYKvFeiZJHhSx993DCM8D2b0wCXWky0S0Z46gf1sEur0SN4Lvnt1WczTqxIBw==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.80.6.tgz", + "integrity": "sha512-DzeNqU/SN0mWFznoOH4RtVGcrg3Eoa41pUQhKMtrhNbCmIE1zNDunUiAEVTNpdHJF4nxf7ELUPXWmStM31CbUQ==", "cpu": [ "x64" ], @@ -5055,9 +5071,9 @@ } }, "node_modules/sass-embedded-linux-riscv64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.79.4.tgz", - "integrity": "sha512-GaTI/mXYWYSzG5wxtM4H2cozLpATyh+4l+rO9FFKOL8e1sUOLAzTeRdU2nSBYCuRqsxRuTZIwCXhSz9Q3NRuNA==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.80.6.tgz", + "integrity": "sha512-AyoHJ3icV9xuJjq1YzJqpEj2XfiC/KBkVYTUrCELKiXP0DN1gi/BpUwZNCAgCM3CyEdMef4LQM/ztCYJxYzdyg==", "cpu": [ "riscv64" ], @@ -5070,9 +5086,9 @@ } }, "node_modules/sass-embedded-linux-x64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.79.4.tgz", - "integrity": "sha512-f9laGkqHgC01h99Qt4LsOV+OLMffjvUcTu14hYWqMS9QVX5a4ihMwpf1NoAtTUytb7cVF3rYY/NVGuXt6G3ppQ==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.80.6.tgz", + "integrity": "sha512-EohsE9CEqx0ycylnsEj/0DNPG99Tb0qAVZspiAs5xHFCJjXOFfp3cRQu0BRf+lZ1b72IhPFXymzVtojvzUHb7g==", "cpu": [ "x64" ], @@ -5085,9 +5101,9 @@ } }, "node_modules/sass-embedded-win32-arm64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.79.4.tgz", - "integrity": "sha512-cidBvtaA2cJ6dNlwQEa8qak+ezypurzKs0h0QAHLH324+j/6Jum7LCnQhZRPYJBFjHl+WYd7KwzPnJ2X5USWnQ==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.80.6.tgz", + "integrity": "sha512-29wETQi1ykeVvpd4zMVokpQKFSOZskGJzZawuuNCdo7BHjHKIRDsqbz8YT1CewHPBshI0hfD21fenmjxYjGXPQ==", "cpu": [ "arm64" ], @@ -5100,9 +5116,9 @@ } }, "node_modules/sass-embedded-win32-ia32": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.79.4.tgz", - "integrity": "sha512-hexdmNTIZGTKNTzlMcdvEXzYuxOJcY89zqgsf45aQ2YMy4y2M8dTOxRI/Vz7p4iRxVp1Jow6LCtaLHrNI2Ordg==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.80.6.tgz", + "integrity": "sha512-1s3OpK2iTIfIL/a91QhAQnffsbuWfnsM8Lx4Fxt0f7ErnxjCV6q8MUFTV/UhcLtLyTFnPCA62DLjp2KGCjMI9A==", "cpu": [ "ia32" ], @@ -5115,9 +5131,9 @@ } }, "node_modules/sass-embedded-win32-x64": { - "version": "1.79.4", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.79.4.tgz", - "integrity": "sha512-73yrpiWIbti6DkxhWURklkgSLYKfU9itDmvHxB+oYSb4vQveIApqTwSyTOuIUb/6Da/EsgEpdJ4Lbj4sLaMZWA==", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.80.6.tgz", + "integrity": "sha512-0pH4Zr9silHkcmLPC0ghnD3DI0vMsjA7dKvGR32/RbbjOSvHV5cDQRLiuVJAPp34dfMA7kJd1ysSchRdH0igAQ==", "cpu": [ "x64" ], @@ -5339,9 +5355,9 @@ } }, "node_modules/terser": { - "version": "5.34.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", - "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -5425,9 +5441,9 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "node_modules/unified": { "version": "10.1.2", @@ -5779,18 +5795,18 @@ } }, "node_modules/webpack": { - "version": "5.95.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", - "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", "peer": true, "dependencies": { - "@types/estree": "^1.0.5", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", diff --git a/html/3d.html b/html/3d.html.orig similarity index 100% rename from html/3d.html rename to html/3d.html.orig diff --git a/html/prsm.html b/html/prsm.html index d05087f..615c80e 100644 --- a/html/prsm.html +++ b/html/prsm.html @@ -245,7 +245,7 @@ Share the map using a web link
-
Open a map file +
Share the network with other participants
(users will be able to see the map, but will not be able to modify it)
- Allow users to make an editable copy
of the read-only map + Allow users to make an editable copy
of the read-only map +
@@ -1298,6 +1330,19 @@

What's new

+ + + +

Merge maps

+
    +
  1. Open the map you want to merge in another browser tab
  2. +
  3. Click on the Share button in that tab and copy the link to the clipboard
  4. +
  5. Paste the link below and click on Merge
  6. +
+ + + +
diff --git a/js/3d.js b/js/3d.js.orig similarity index 100% rename from js/3d.js rename to js/3d.js.orig diff --git a/js/merge.js b/js/merge.js index dfb6ee0..4982e07 100644 --- a/js/merge.js +++ b/js/merge.js @@ -4,10 +4,10 @@ */ import * as Y from 'yjs' -import {WebsocketProvider} from 'y-websocket' -import {DataSet} from 'vis-data/peer' -import {doc, websocket, data, logHistory, room} from './prsm.js' -import {uuidv4, deepCopy} from './utils.js' +import { WebsocketProvider } from 'y-websocket' +import { DataSet } from 'vis-data/peer' +import { doc, websocket, data, logHistory, room } from './prsm.js' +import { uuidv4, deepCopy, alertMsg } from './utils.js' /* --------------------------------- Merge maps ----------------------------- */ /* * Evaluate mergeRoom(string: room code) e.g. mergeRoom('WBI-CRD-ROB-XDK') @@ -57,11 +57,13 @@ function mergeMaps() { let sameLabelNodes = data.nodes .get() .filter((an) => an.label.replace(/\s/g, '') === BNode.label.replace(/\s/g, '')) - if (sameLabelNodes.length > 1) + if (sameLabelNodes.length > 1) { console.log( `%cMatching factors by label ('${BNode.label}'), but there are two or more factors with this label in this map`, 'color: red' ) + alertMsg(`Matching factors by label ('${BNode.label}'), but there are two or more factors with this label in the map`, 'warn') + } ANode = sameLabelNodes[0] if (ANode) { // map works both ways - OK since ids are unique @@ -74,7 +76,7 @@ function mergeMaps() { if (ANode.label.replace(/\s/g, '') !== BNode.label.replace(/\s/g, '')) { // if not, make a clone of the other node with a new id logMerge( - `existing Factor label: '${ANode.label}' does not match new label: '${BNode.label}'. Factor with new label added.` + `'${ANode.label}' Factor in this map does not match Factor from other map with new label: '${BNode.label}'. Factor with new label added.` ) // generate a new id for BNode. change border to dashed red. Add it to the map let newNode = deepCopy(BNode) @@ -93,7 +95,7 @@ function mergeMaps() { } else if (ANode.grp !== BNode.grp) // label is the same, but style is not - just report this logMerge( - `existing style: '${ANode.grp}' does not match new style: '${BNode.grp}' for Factor: '${ANode.label}. Existing style retained.` + `Style: '${ANode.grp}' does not match style: '${BNode.grp}' from other map for Factor: '${ANode.label}. Existing style retained.` ) } else { // the node is on the other map, but not on this one - add it. @@ -101,6 +103,7 @@ function mergeMaps() { logMerge(`added new Factor: '${BNode.label}'`) } } + data.nodes.update(nodesToAdd) bdata.edges.get().forEach((BEdge) => { // Some edges on the other map may have been going to/from nodes that have been cloned and given a new id. @@ -126,8 +129,7 @@ function mergeMaps() { newEdge.color.color = 'rgb(255, 0, 0)' edgesToAdd.push(newEdge) logMerge( - `added Link between new Factor(s): '${data.nodes.get(newEdge.from).label}' to '${ - data.nodes.get(newEdge.to).label + `added Link between new Factor(s): '${data.nodes.get(newEdge.from).label}' to '${data.nodes.get(newEdge.to).label }'` ) } @@ -153,11 +155,11 @@ function mergeMaps() { AEdge.label !== BEdge.label ) logMerge( - `existing Link label: '${AEdge.label}' does not match new label: '${BEdge.label}'. Existing label retained.` + `Link with label: '${AEdge.label}' does not match link from other map with label: '${BEdge.label}'. Existing label retained.` ) else if (AEdge.grp !== BEdge.grp) logMerge( - `existing Link style: '${AEdge.grp}' does not match new style: '${BEdge.grp}' for link '${edgeName}'. Existing style retained.` + `Link with style: '${AEdge.grp}' does not match style: '${BEdge.grp}' from other map for link '${edgeName}'. Existing style retained.` ) } else { // if BEdge's from or to nodes have been substituted for a node in the A map @@ -179,12 +181,6 @@ function mergeMaps() { let sameEdges = bdata.edges.get().filter((e) => e.from === from && e.to === to) if (sameEdges) BEdge = sameEdges[0] } - if (!BEdge) { - let edgeName = - (AEdge.label && AEdge.label.trim() !== '') || - `from [${data.nodes.get(AEdge.from).label}] to [${data.nodes.get(AEdge.to).label}]` - logMerge(`existing link: ${edgeName}' is not in the other map. Existing link retained.`) - } }) data.nodes.update(nodesToAdd) data.edges.update(edgesToAdd) @@ -259,8 +255,7 @@ function diffMaps() { } else if (ANode.grp !== BNode.grp) // label is the same, but style is not - just report this console.log( - `Factor style in map A : ${ANode.grp} does not match style in map B: ${ - BNode.grp + `Factor style in map A : ${ANode.grp} does not match style in map B: ${BNode.grp } for Factor: [%c${inline(ANode.label)}%c]. `, 'color:green', 'color:black' @@ -298,8 +293,7 @@ function diffMaps() { ) else if (AEdge.grp !== BEdge.grp) console.log( - `Link style: '${AEdge.grp}' in map A does not match style: '${ - BEdge.grp + `Link style: '${AEdge.grp}' in map A does not match style: '${BEdge.grp }' in map B for link [%c${inline(edgeName)}%c]. `, 'color:green', 'color:black' diff --git a/js/prsm.js b/js/prsm.js index 6668be5..222700c 100644 --- a/js/prsm.js +++ b/js/prsm.js @@ -243,7 +243,11 @@ function addEventListeners() { listen('undo', 'click', undo) listen('redo', 'click', redo) listen('fileInput', 'change', readSingleFile) - listen('openMap', 'click', openFile) + listen('openFile', 'click', openFile) + listen('replaceMap', 'click', openFile) + listen('mergeMap', 'click', mergeMap) + listen('merge', 'click', doMerge) + listen('mergeClose', 'click', () => elem('mergeDialog').close()) listen('saveFile', 'click', savePRSMfile) listen('exportPRSM', 'click', savePRSMfile) listen('exportImage', 'click', exportPNGfile) @@ -3324,6 +3328,29 @@ function doClone(onlyView) { logHistory(`made a ${onlyView ? 'read-only copy' : 'clone'} of the map in room: ${clonedRoom}`) } +function mergeMap() { + elem('mergedRoom').value = '' + elem('mergeDialog').showModal() +} +function doMerge() { + let path = elem('mergedRoom').value + if (!path) { + alertMsg('No map given to merge', 'error') + return + } + try { + let url = new URL(path) + let roomToMerge = url.searchParams.get('room') + console.log('merging ', roomToMerge) + mergeRoom(roomToMerge) + logHistory(`merged map from room: ${roomToMerge}`) + } + catch (e) { + alertMsg('Invalid map URL', 'error') + return + } + elem('mergeDialog').close() +} /* ----------------------------------------------------------- Search ------------------------------------------------------*/ /** * Open an input for user to type label of node to search for and generate suggestions when user starts typing diff --git a/package-lock.json b/package-lock.json index 2b614c0..7ffedb8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "participatory-system-mapper", - "version": "2.3.3", + "version": "2.3.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "participatory-system-mapper", - "version": "2.3.3", + "version": "2.3.5", "license": "GPL-3.0-or-later", "dependencies": { "@egjs/hammerjs": "^2.0.17", @@ -22,6 +22,7 @@ "quill-delta-to-html": "^0.12.1", "quill-to-word": "^1.3.0", "tabulator-tables": "^5.4.4", + "three": "^0.170.0", "three-spritetext": "^1.8.0", "uuid": "^8.3.2", "vis-data": "^7.1.4", @@ -49,12 +50,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", - "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -62,116 +64,30 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", - "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", - "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", - "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", - "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "dependencies": { - "@babel/types": "^7.25.7" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -181,9 +97,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", - "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -197,14 +113,13 @@ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/@babel/types": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", - "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -222,24 +137,27 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", - "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -397,9 +315,9 @@ } }, "node_modules/@lezer/common": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.2.tgz", - "integrity": "sha512-Z+R3hN6kXbgBWAuejUNPihylAL1Z5CaFqnIe0nTX8Ej+XlIy3EGtXxn6WtLMO+os2hRkQvm2yvaGMYliUzlJaw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz", + "integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==", "dev": true }, "node_modules/@lezer/lr": { @@ -2183,14 +2101,14 @@ } }, "node_modules/@swc/core": { - "version": "1.7.26", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.26.tgz", - "integrity": "sha512-f5uYFf+TmMQyYIoxkn/evWhNGuUzC730dFwAKGwBVHHVoPyak1/GvJUm6i1SKl+2Hrj9oN0i3WSoWWZ4pgI8lw==", + "version": "1.7.42", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.42.tgz", + "integrity": "sha512-iQrRk3SKndQZ4ptJv1rzeQSiCYQIhMjiO97QXOlCcCoaazOLKPnLnXzU4Kv0FuBFyYfG2FE94BoR0XI2BN02qw==", "dev": true, "hasInstallScript": true, "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.12" + "@swc/types": "^0.1.13" }, "engines": { "node": ">=10" @@ -2200,16 +2118,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.7.26", - "@swc/core-darwin-x64": "1.7.26", - "@swc/core-linux-arm-gnueabihf": "1.7.26", - "@swc/core-linux-arm64-gnu": "1.7.26", - "@swc/core-linux-arm64-musl": "1.7.26", - "@swc/core-linux-x64-gnu": "1.7.26", - "@swc/core-linux-x64-musl": "1.7.26", - "@swc/core-win32-arm64-msvc": "1.7.26", - "@swc/core-win32-ia32-msvc": "1.7.26", - "@swc/core-win32-x64-msvc": "1.7.26" + "@swc/core-darwin-arm64": "1.7.42", + "@swc/core-darwin-x64": "1.7.42", + "@swc/core-linux-arm-gnueabihf": "1.7.42", + "@swc/core-linux-arm64-gnu": "1.7.42", + "@swc/core-linux-arm64-musl": "1.7.42", + "@swc/core-linux-x64-gnu": "1.7.42", + "@swc/core-linux-x64-musl": "1.7.42", + "@swc/core-win32-arm64-msvc": "1.7.42", + "@swc/core-win32-ia32-msvc": "1.7.42", + "@swc/core-win32-x64-msvc": "1.7.42" }, "peerDependencies": { "@swc/helpers": "*" @@ -2221,9 +2139,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.7.26", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.26.tgz", - "integrity": "sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==", + "version": "1.7.42", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.42.tgz", + "integrity": "sha512-fWhaCs2+8GDRIcjExVDEIfbptVrxDqG8oHkESnXgymmvqTWzWei5SOnPNMS8Q+MYsn/b++Y2bDxkcwmq35Bvxg==", "cpu": [ "arm64" ], @@ -2237,9 +2155,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.7.26", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.26.tgz", - "integrity": "sha512-az3cibZdsay2HNKmc4bjf62QVukuiMRh5sfM5kHR/JMTrLyS6vSw7Ihs3UTkZjUxkLTT8ro54LI6sV6sUQUbLQ==", + "version": "1.7.42", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.42.tgz", + "integrity": "sha512-ZaVHD2bijrlkCyD7NDzLmSK849Jgcx+6DdL4x1dScoz1slJ8GTvLtEu0JOUaaScQwA+cVlhmrmlmi9ssjbRLGQ==", "cpu": [ "x64" ], @@ -2253,9 +2171,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.7.26", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.26.tgz", - "integrity": "sha512-VYPFVJDO5zT5U3RpCdHE5v1gz4mmR8BfHecUZTmD2v1JeFY6fv9KArJUpjrHEEsjK/ucXkQFmJ0jaiWXmpOV9Q==", + "version": "1.7.42", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.42.tgz", + "integrity": "sha512-iF0BJj7hVTbY/vmbvyzVTh/0W80+Q4fbOYschdUM3Bsud39TA+lSaPOefOHywkNH58EQ1z3EAxYcJOWNES7GFQ==", "cpu": [ "arm" ], @@ -2269,9 +2187,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.7.26", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.26.tgz", - "integrity": "sha512-YKevOV7abpjcAzXrhsl+W48Z9mZvgoVs2eP5nY+uoMAdP2b3GxC0Df1Co0I90o2lkzO4jYBpTMcZlmUXLdXn+Q==", + "version": "1.7.42", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.42.tgz", + "integrity": "sha512-xGu8j+DOLYTLkVmsfZPJbNPW1EkiWgSucT0nOlz77bLxImukt/0+HVm2hOwHSKuArQ8C3cjahAMY3b/s4VH2ww==", "cpu": [ "arm64" ], @@ -2285,9 +2203,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.7.26", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.26.tgz", - "integrity": "sha512-3w8iZICMkQQON0uIcvz7+Q1MPOW6hJ4O5ETjA0LSP/tuKqx30hIniCGOgPDnv3UTMruLUnQbtBwVCZTBKR3Rkg==", + "version": "1.7.42", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.42.tgz", + "integrity": "sha512-qtW3JNO7i1yHEko59xxz+jY38+tYmB96JGzj6XzygMbYJYZDYbrOpXQvKbMGNG3YeTDan7Fp2jD0dlKf7NgDPA==", "cpu": [ "arm64" ], @@ -2301,9 +2219,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.7.26", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.26.tgz", - "integrity": "sha512-c+pp9Zkk2lqb06bNGkR2Looxrs7FtGDMA4/aHjZcCqATgp348hOKH5WPvNLBl+yPrISuWjbKDVn3NgAvfvpH4w==", + "version": "1.7.42", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.42.tgz", + "integrity": "sha512-F9WY1TN+hhhtiEzZjRQziNLt36M5YprMeOBHjsLVNqwgflzleSI7ulgnlQECS8c8zESaXj3ksGduAoJYtPC1cA==", "cpu": [ "x64" ], @@ -2317,9 +2235,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.7.26", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.26.tgz", - "integrity": "sha512-PgtyfHBF6xG87dUSSdTJHwZ3/8vWZfNIXQV2GlwEpslrOkGqy+WaiiyE7Of7z9AvDILfBBBcJvJ/r8u980wAfQ==", + "version": "1.7.42", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.42.tgz", + "integrity": "sha512-7YMdOaYKLMQ8JGfnmRDwidpLFs/6ka+80zekeM0iCVO48yLrJR36G0QGXzMjKsXI0BPhq+mboZRRENK4JfQnEA==", "cpu": [ "x64" ], @@ -2333,9 +2251,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.7.26", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.26.tgz", - "integrity": "sha512-9TNXPIJqFynlAOrRD6tUQjMq7KApSklK3R/tXgIxc7Qx+lWu8hlDQ/kVPLpU7PWvMMwC/3hKBW+p5f+Tms1hmA==", + "version": "1.7.42", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.42.tgz", + "integrity": "sha512-C5CYWaIZEyqPl5W/EwcJ/mLBJFHVoUEa/IwWi0b4q2fCXcSCktQGwKXOQ+d67GneiZoiq0HasgcdMmMpGS9YRQ==", "cpu": [ "arm64" ], @@ -2349,9 +2267,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.7.26", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.26.tgz", - "integrity": "sha512-9YngxNcG3177GYdsTum4V98Re+TlCeJEP4kEwEg9EagT5s3YejYdKwVAkAsJszzkXuyRDdnHUpYbTrPG6FiXrQ==", + "version": "1.7.42", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.42.tgz", + "integrity": "sha512-3j47seZ5pO62mbrqvPe1iwhe2BXnM5q7iB+n2xgA38PCGYt0mnaJafqmpCXm/uYZOCMqSNynaoOWCMMZm4sqtA==", "cpu": [ "ia32" ], @@ -2365,9 +2283,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.7.26", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.26.tgz", - "integrity": "sha512-VR+hzg9XqucgLjXxA13MtV5O3C0bK0ywtLIBw/+a+O+Oc6mxFWHtdUeXDbIi5AiPbn0fjgVJMqYnyjGyyX8u0w==", + "version": "1.7.42", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.42.tgz", + "integrity": "sha512-FXl9MdeUogZLGDcLr6QIRdDVkpG0dkN4MLM4dwQ5kcAk+XfKPrQibX6M2kcfhsCx+jtBqtK7hRFReRXPWJZGbA==", "cpu": [ "x64" ], @@ -2396,9 +2314,9 @@ } }, "node_modules/@swc/types": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.12.tgz", - "integrity": "sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.13.tgz", + "integrity": "sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==", "dev": true, "dependencies": { "@swc/counter": "^0.1.3" @@ -2428,9 +2346,9 @@ "integrity": "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==" }, "node_modules/@types/hammerjs": { - "version": "2.0.45", - "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.45.tgz", - "integrity": "sha512-qkcUlZmX6c4J8q45taBKTL3p+LbITgyx7qhlPYOdOHZB7B31K0mXbP5YA7i7SgDeEGuI9MnumiKPEMrxg8j3KQ==" + "version": "2.0.46", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.46.tgz", + "integrity": "sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==" }, "node_modules/@types/jszip": { "version": "3.4.1", @@ -2475,9 +2393,9 @@ "dev": true }, "node_modules/3d-force-graph": { - "version": "1.73.4", - "resolved": "https://registry.npmjs.org/3d-force-graph/-/3d-force-graph-1.73.4.tgz", - "integrity": "sha512-eMHZ1LVzh9APLv+An0AXz2dVPwasJlqAnJ61ABlb1qaO6DYuqIUTTErh0DN/24nIWJu1jCim2WiVujzz7slnWQ==", + "version": "1.73.5", + "resolved": "https://registry.npmjs.org/3d-force-graph/-/3d-force-graph-1.73.5.tgz", + "integrity": "sha512-kpN9ImjHzHnI8paAS/6IdWh/WPHN4AILxReEHGKom3iev8v1YiXX+pzEPsQA0w2AhsJo9/qnuB5v4Be2dsEAGA==", "dependencies": { "accessor-fn": "1", "kapsule": "1", @@ -2539,9 +2457,9 @@ } }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "devOptional": true, "bin": { "acorn": "bin/acorn" @@ -2785,9 +2703,9 @@ "optional": true }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -2804,10 +2722,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -2856,9 +2774,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001667", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", - "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "version": "1.0.30001677", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz", + "integrity": "sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==", "dev": true, "funding": [ { @@ -3633,9 +3551,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.5.32", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.32.tgz", - "integrity": "sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==", + "version": "1.5.50", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz", + "integrity": "sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw==", "dev": true }, "node_modules/emoji-regex": { @@ -3756,6 +3674,7 @@ "version": "8.57.1", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", @@ -4064,9 +3983,9 @@ "dev": true }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "optional": true, "dependencies": { "asynckit": "^0.4.0", @@ -4564,9 +4483,9 @@ } }, "node_modules/jsdoc": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.3.tgz", - "integrity": "sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.4.tgz", + "integrity": "sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw==", "dev": true, "dependencies": { "@babel/parser": "^7.20.15", @@ -5482,9 +5401,9 @@ "devOptional": true }, "node_modules/msgpackr": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.0.tgz", - "integrity": "sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", + "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", "dev": true, "optionalDependencies": { "msgpackr-extract": "^3.0.2" @@ -5538,9 +5457,9 @@ } }, "node_modules/nan": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", - "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", + "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", "optional": true }, "node_modules/nanoid": { @@ -5600,9 +5519,9 @@ "integrity": "sha512-h25UdUN/g8U7y29TzQtRm/GvGr70lK37yQPvPKXXuVfs7gCm82WipYFZcksQfeKumtOemAzBIcT7lzzyK/edLw==" }, "node_modules/node-abi": { - "version": "3.68.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.68.0.tgz", - "integrity": "sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A==", + "version": "3.71.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", + "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", "dev": true, "dependencies": { "semver": "^7.3.5" @@ -5787,9 +5706,9 @@ } }, "node_modules/ordered-binary": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.2.tgz", - "integrity": "sha512-JTo+4+4Fw7FreyAvlSLjb1BBVaxEQAacmjD3jjuyPZclpbEghTvQZbXBb2qPd2LeIMxiHwXBZUcpmG2Gl/mDEA==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", + "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", "dev": true }, "node_modules/p-limit": { @@ -5943,9 +5862,9 @@ } }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "node_modules/picomatch": { @@ -6027,9 +5946,9 @@ } }, "node_modules/preact": { - "version": "10.24.2", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.2.tgz", - "integrity": "sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==", + "version": "10.24.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz", + "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -6862,9 +6781,9 @@ } }, "node_modules/terser": { - "version": "5.34.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", - "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -6892,14 +6811,14 @@ "dev": true }, "node_modules/three": { - "version": "0.169.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.169.0.tgz", - "integrity": "sha512-Ed906MA3dR4TS5riErd4QBsRGPcx+HBDX2O5yYE5GqJeFQTPU+M56Va/f/Oph9X7uZo3W3o4l2ZhBZ6f6qUv0w==" + "version": "0.170.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.170.0.tgz", + "integrity": "sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ==" }, "node_modules/three-forcegraph": { - "version": "1.41.14", - "resolved": "https://registry.npmjs.org/three-forcegraph/-/three-forcegraph-1.41.14.tgz", - "integrity": "sha512-W/cZElLXO0l6ffdMmDakh4bUGSYuSv/YxInOHMN9KAQgDwJ8904SOBh8qkTnGu7UPsi0mAsrUgkfViW8heloTA==", + "version": "1.42.2", + "resolved": "https://registry.npmjs.org/three-forcegraph/-/three-forcegraph-1.42.2.tgz", + "integrity": "sha512-HUgF1wELe6f6p5WxupRCkkpBCL2SBgoDu5vdwJqfF0pNA9VqErQD31hrpCNKcLXxD/G6UDl+cqouzpQ3xgD9+A==", "dependencies": { "accessor-fn": "1", "d3-array": "1 - 3", @@ -6920,9 +6839,9 @@ } }, "node_modules/three-render-objects": { - "version": "1.29.5", - "resolved": "https://registry.npmjs.org/three-render-objects/-/three-render-objects-1.29.5.tgz", - "integrity": "sha512-OLtETrjF184NuaaI/vpRlIP9FxVNAgBBCgWYXhGFUDnPdl/2iX8rialUPGA1gEXvOTiKyepArVgm1LUkJw15rQ==", + "version": "1.31.0", + "resolved": "https://registry.npmjs.org/three-render-objects/-/three-render-objects-1.31.0.tgz", + "integrity": "sha512-of54HTCHatV9OwhrBAKF6A2xtWxBQ47+u5WITTaTbGW6Px9mqLxw7L61dYDHqeQVuvlWMG8VQwyXmkeVsWx4Wg==", "dependencies": { "@tweenjs/tween.js": "18 - 25", "accessor-fn": "1", @@ -6933,13 +6852,13 @@ "node": ">=12" }, "peerDependencies": { - "three": "*" + "three": ">=0.168" } }, "node_modules/three-spritetext": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/three-spritetext/-/three-spritetext-1.8.2.tgz", - "integrity": "sha512-OYjyAhWnQ6+7CPKjnpq3JQM+Lpr6cSOppCtbOOzF1IbCauGkoDFvbAnxYd0LVxEsIO2RALXXScg2eX+R6CAfyA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/three-spritetext/-/three-spritetext-1.9.0.tgz", + "integrity": "sha512-+dMrxBsxTu5OviykIg5jTMry5TQ8u5yuS9zKH0mWElyldoFGdegEkIm71kDk34bxBp/NQhRLW+iom1b/GMTioA==", "engines": { "node": ">=12" }, @@ -6958,15 +6877,6 @@ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -7007,9 +6917,9 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true }, "node_modules/tunnel-agent": { @@ -7455,11 +7365,11 @@ "optional": true }, "node_modules/yjs": { - "version": "13.6.19", - "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.19.tgz", - "integrity": "sha512-GNKw4mEUn5yWU2QPHRx8jppxmCm9KzbBhB4qJLUJFiiYD0g/tDVgXQ7aPkyh01YO28kbs2J/BEbWBagjuWyejw==", + "version": "13.6.20", + "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.20.tgz", + "integrity": "sha512-Z2YZI+SYqK7XdWlloI3lhMiKnCdFCVC4PchpdO+mCYwtiTwncjUbnRK9R1JmkNfdmHyDXuWN3ibJAt0wsqTbLQ==", "dependencies": { - "lib0": "^0.2.86" + "lib0": "^0.2.98" }, "engines": { "node": ">=16.0.0", diff --git a/package.json b/package.json index 426ac98..2828f62 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "quill-delta-to-html": "^0.12.1", "quill-to-word": "^1.3.0", "tabulator-tables": "^5.4.4", + "three": "^0.170.0", "three-spritetext": "^1.8.0", "uuid": "^8.3.2", "vis-data": "^7.1.4",