diff --git a/web/package-lock.json b/web/package-lock.json index 6b42290a39d..e6128b5e316 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -9,6 +9,7 @@ "@ant-design/icons": "^5.2.6", "@ant-design/pro-components": "^2.6.46", "@ant-design/pro-layout": "^7.17.16", + "@antv/g6": "^5.0.10", "@js-preview/excel": "^1.7.8", "@tanstack/react-query": "^5.40.0", "@tanstack/react-query-devtools": "^5.51.5", @@ -29,6 +30,7 @@ "mammoth": "^1.7.2", "rc-tween-one": "^3.0.6", "react-copy-to-clipboard": "^5.1.0", + "react-force-graph": "^1.44.4", "react-i18next": "^14.0.0", "react-markdown": "^9.0.1", "react-pdf-highlighter": "^6.1.0", @@ -468,6 +470,257 @@ "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.8.tgz", "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==" }, + "node_modules/@antv/component": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/@antv/component/-/component-2.0.1.tgz", + "integrity": "sha512-VldsSv2O/JNjZYenFIzmtLeC+KD2RcpNARsCLKpi04Iz26joQ3uMtnwxM5W4bd/SCJYKp+eeQeMHMAbwaNR1pw==", + "dependencies": { + "@antv/g": "^6.0.5", + "@antv/scale": "^0.4.3", + "@antv/util": "^3.3.5", + "svg-path-parser": "^1.1.0" + } + }, + "node_modules/@antv/event-emitter": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz", + "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==" + }, + "node_modules/@antv/g": { + "version": "6.0.11", + "resolved": "https://registry.npmmirror.com/@antv/g/-/g-6.0.11.tgz", + "integrity": "sha512-Ag7HPuI8Rku4oJE830M4c3WlqoJTicgbMAVNE7NIiTmFOFxuoJs+3KgzxvynDa11IZNt6ErVeEcMUsZGWKed3Q==", + "dependencies": { + "@antv/g-camera-api": "2.0.10", + "@antv/g-dom-mutation-observer-api": "2.0.7", + "@antv/g-lite": "2.0.7", + "@antv/g-web-animations-api": "2.0.8" + } + }, + "node_modules/@antv/g-camera-api": { + "version": "2.0.10", + "resolved": "https://registry.npmmirror.com/@antv/g-camera-api/-/g-camera-api-2.0.10.tgz", + "integrity": "sha512-iV3obJe0Fpij4JBCp80aOOigNdBQzSCtMGeDPj4uXN3hnmDf8lQEhx/w0owBHH1fWEpEUBLjySGhR/psg+KsZw==", + "dependencies": { + "@antv/g-lite": "2.0.7", + "@antv/util": "^3.3.5", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-canvas": { + "version": "2.0.9", + "resolved": "https://registry.npmmirror.com/@antv/g-canvas/-/g-canvas-2.0.9.tgz", + "integrity": "sha512-VLrGoeb2rjcXLZIC/pDYUtk9BdpILHmuZvUkTu14Afd3uyLxjD1GyVwbtgm/33gR1QB7O5rW8Ln5tecamIGWUg==", + "dependencies": { + "@antv/g-lite": "2.0.7", + "@antv/g-plugin-canvas-path-generator": "2.0.7", + "@antv/g-plugin-canvas-picker": "2.0.8", + "@antv/g-plugin-canvas-renderer": "2.0.8", + "@antv/g-plugin-dom-interaction": "2.0.7", + "@antv/g-plugin-html-renderer": "2.0.8", + "@antv/g-plugin-image-loader": "2.0.7", + "@antv/util": "^3.3.5", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-dom-mutation-observer-api": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/@antv/g-dom-mutation-observer-api/-/g-dom-mutation-observer-api-2.0.7.tgz", + "integrity": "sha512-+lgWzhoyhKMBcXWx9zBV++gnpICrobGSC0VmTmLsd2spsrf9zJ45HCCsNQsF/W09W8aIEqA8MfuYlTJ269oagg==", + "dependencies": { + "@antv/g-lite": "2.0.7" + } + }, + "node_modules/@antv/g-lite": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/@antv/g-lite/-/g-lite-2.0.7.tgz", + "integrity": "sha512-PqweHYwZz1oQDRDAmpceoOz1Wzxs7mhldaIkRnvox+3XJB1SehB0sperFcQoQgy0xKlQ0l7ydLOO7zZPZmhWcA==", + "dependencies": { + "@antv/g-math": "3.0.0", + "@antv/util": "^3.3.5", + "d3-color": "^3.1.0", + "eventemitter3": "^5.0.1", + "gl-matrix": "^3.4.3", + "rbush": "^3.0.1", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-lite/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/@antv/g-math": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/@antv/g-math/-/g-math-3.0.0.tgz", + "integrity": "sha512-AkmiNIEL1vgqTPeGY2wtsMdBBqKFwF7SKSgs+D1iOS/rqYMsXdhp/HvtuQ5tx/HdawE/ZzTiicIYopc520ADZw==", + "dependencies": { + "@antv/util": "^3.3.5", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-plugin-canvas-path-generator": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-path-generator/-/g-plugin-canvas-path-generator-2.0.7.tgz", + "integrity": "sha512-KHtze9UsPNgVr3OpxdVvquh7Q3aLMZcbGqL34l2ZmOIzn57N9BQej4bRc1VHcIxb8NetsKiQnQnFCI+QfbjiRg==", + "dependencies": { + "@antv/g-lite": "2.0.7", + "@antv/g-math": "3.0.0", + "@antv/util": "^3.3.5", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-plugin-canvas-picker": { + "version": "2.0.8", + "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-picker/-/g-plugin-canvas-picker-2.0.8.tgz", + "integrity": "sha512-40yBY0hEsdw8cXhQ4LBoVB4fyG1uLa/2dZnBTdAHM7BqnzpVl+EliVxyw8+ROz/4sI4MwwxtO3tP9YxLmQilhA==", + "dependencies": { + "@antv/g-lite": "2.0.7", + "@antv/g-math": "3.0.0", + "@antv/g-plugin-canvas-path-generator": "2.0.7", + "@antv/g-plugin-canvas-renderer": "2.0.8", + "@antv/util": "^3.3.5", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-plugin-canvas-renderer": { + "version": "2.0.8", + "resolved": "https://registry.npmmirror.com/@antv/g-plugin-canvas-renderer/-/g-plugin-canvas-renderer-2.0.8.tgz", + "integrity": "sha512-PaKJW2QBQkK06Sar6ZSwjE/O31yWZUb3fewMoKVjxLlFG/4WNgvDoTAP1a8ZAzqYSqxV9W+nAq+qHd7DJCr6CQ==", + "dependencies": { + "@antv/g-lite": "2.0.7", + "@antv/g-math": "3.0.0", + "@antv/g-plugin-canvas-path-generator": "2.0.7", + "@antv/g-plugin-image-loader": "2.0.7", + "@antv/util": "^3.3.5", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-plugin-dom-interaction": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/@antv/g-plugin-dom-interaction/-/g-plugin-dom-interaction-2.0.7.tgz", + "integrity": "sha512-THIZuPV3B7AMNRv8qAzR1aB/tAO/ueRYJ6w/aYyVnIR3JRh0Ngxm+nclqFBuau4Xq5gx8cEkZWxmMsvEwZIGUg==", + "dependencies": { + "@antv/g-lite": "2.0.7", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-plugin-dragndrop": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/@antv/g-plugin-dragndrop/-/g-plugin-dragndrop-2.0.7.tgz", + "integrity": "sha512-pkntpawykEYAWssyxY2vaYoQG0fLtmlXXPNxXGb2HohJcy1IWfb7CB8Ym1+ECMDMrUeW8ydIgANjWyFbtzcTHg==", + "dependencies": { + "@antv/g-lite": "2.0.7", + "@antv/util": "^3.3.5", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-plugin-html-renderer": { + "version": "2.0.8", + "resolved": "https://registry.npmmirror.com/@antv/g-plugin-html-renderer/-/g-plugin-html-renderer-2.0.8.tgz", + "integrity": "sha512-C89R/FWCtHmaU997J2T+5bu5OstBT8hUhilbcb/boGM7QrzxJPHzH9KK/CEtQhUU3bcQkJF+IlLQ8X07qcEndw==", + "dependencies": { + "@antv/g-lite": "2.0.7", + "@antv/util": "^3.3.5", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-plugin-image-loader": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/@antv/g-plugin-image-loader/-/g-plugin-image-loader-2.0.7.tgz", + "integrity": "sha512-c4sImX0nfuemBapZzH08q2Xko5tRtTqgDVyxhuoNv2AT14krmt4ar4rxEOq6O6sbIcohoy81hY8V8siR9ng5ow==", + "dependencies": { + "@antv/g-lite": "2.0.7", + "@antv/util": "^3.3.5", + "gl-matrix": "^3.4.3", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g-web-animations-api": { + "version": "2.0.8", + "resolved": "https://registry.npmmirror.com/@antv/g-web-animations-api/-/g-web-animations-api-2.0.8.tgz", + "integrity": "sha512-85BmmXzFcQCxe3LrwgPxlZGeybkgiLYSa+mX8M1ZCQS0JYZyhvqFxffbif0yiQU5UeD+9Wrg3iZ4qOhcLeHhuw==", + "dependencies": { + "@antv/g-lite": "2.0.7", + "@antv/util": "^3.3.5", + "tslib": "^2.5.3" + } + }, + "node_modules/@antv/g6": { + "version": "5.0.10", + "resolved": "https://registry.npmmirror.com/@antv/g6/-/g6-5.0.10.tgz", + "integrity": "sha512-VXNIDLCLedWqXtoMes/0tnqfDvZX7JAUfu44cxhrICumGXoKb5Nr8x6aU+WChFQbRArSk1NFrTPF7s/GCZLWLQ==", + "dependencies": { + "@antv/component": "^2.0.1", + "@antv/event-emitter": "^0.1.3", + "@antv/g": "^6.0.10", + "@antv/g-canvas": "^2.0.8", + "@antv/g-plugin-dragndrop": "^2.0.6", + "@antv/graphlib": "^2.0.3", + "@antv/hierarchy": "^0.6.12", + "@antv/layout": "^1.2.14-beta.5", + "@antv/util": "^3.3.7", + "bubblesets-js": "^2.3.3", + "hull.js": "^1.0.6" + } + }, + "node_modules/@antv/graphlib": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/@antv/graphlib/-/graphlib-2.0.3.tgz", + "integrity": "sha512-EtQR+DIfsYy28tumTnH560v7yIzXZq0nSgFBZh76mMiV1oHEN1L4p6JKu7IMtILH14mDqzmYYYFetYoAODoQUw==", + "dependencies": { + "@antv/event-emitter": "^0.1.3" + } + }, + "node_modules/@antv/hierarchy": { + "version": "0.6.12", + "resolved": "https://registry.npmmirror.com/@antv/hierarchy/-/hierarchy-0.6.12.tgz", + "integrity": "sha512-WvWT9WYtm2SvYunm1HtzrHazvOozeP4cPFDhJWsnLzmTGMX/tNhsoCD3O+DDB3aeDY8fyM+wfZDvLv7+/4lIeA==" + }, + "node_modules/@antv/layout": { + "version": "1.2.14-beta.5", + "resolved": "https://registry.npmmirror.com/@antv/layout/-/layout-1.2.14-beta.5.tgz", + "integrity": "sha512-r/twRLE2kql+jawu/qp5+7rcUH3ul6RFlLg5MGi3B/83WktMNyqOOYYHbk6T89/KWUUSPDCdvrb56BVfvLFqRQ==", + "dependencies": { + "@antv/event-emitter": "^0.1.3", + "@antv/graphlib": "^2.0.0", + "@antv/util": "^3.3.2", + "@naoak/workerize-transferable": "^0.1.0", + "comlink": "^4.4.1", + "d3-force": "^3.0.0", + "d3-force-3d": "^3.0.5", + "d3-octree": "^1.0.2", + "d3-quadtree": "^3.0.1", + "dagre": "^0.8.5", + "ml-matrix": "^6.10.4", + "tslib": "^2.5.0" + } + }, + "node_modules/@antv/scale": { + "version": "0.4.16", + "resolved": "https://registry.npmmirror.com/@antv/scale/-/scale-0.4.16.tgz", + "integrity": "sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==", + "dependencies": { + "@antv/util": "^3.3.7", + "color-string": "^1.5.5", + "fecha": "^4.2.1" + } + }, + "node_modules/@antv/util": { + "version": "3.3.7", + "resolved": "https://registry.npmmirror.com/@antv/util/-/util-3.3.7.tgz", + "integrity": "sha512-qqPg7rIPCsJyl7N56jAC25v/99mJ3ApVkgBsGijhiWrEeKvzXBPk1r5P77Pm9nCljpnn+hH8Z3t5AivbEoTJMg==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "gl-matrix": "^3.3.0", + "tslib": "^2.3.1" + } + }, "node_modules/@babel/code-frame": { "version": "7.24.6", "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.6.tgz", @@ -3604,6 +3857,14 @@ "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", "dev": true }, + "node_modules/@naoak/workerize-transferable": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/@naoak/workerize-transferable/-/workerize-transferable-0.1.0.tgz", + "integrity": "sha512-fDLfuP71IPNP5+zSfxFb52OHgtjZvauRJWbVnpzQ7G7BjcbLjTny0OW1d3ZO806XKpLWNKmeeW3MhE0sy8iwYQ==", + "peerDependencies": { + "workerize-loader": "*" + } + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -4030,6 +4291,14 @@ "resolved": "https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz", "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/@sinonjs/commons": { "version": "3.0.1", "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-3.0.1.tgz", @@ -4238,6 +4507,17 @@ "tslib": "^2.4.0" } }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@tanstack/match-sorter-utils": { "version": "8.11.3", "resolved": "https://registry.npmmirror.com/@tanstack/match-sorter-utils/-/match-sorter-utils-8.11.3.tgz", @@ -4600,6 +4880,11 @@ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", "dev": true }, + "node_modules/@tweenjs/tween.js": { + "version": "23.1.3", + "resolved": "https://registry.npmmirror.com/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", + "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==" + }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmmirror.com/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -7284,6 +7569,49 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "peer": true }, + "node_modules/3d-force-graph": { + "version": "1.73.3", + "resolved": "https://registry.npmmirror.com/3d-force-graph/-/3d-force-graph-1.73.3.tgz", + "integrity": "sha512-azb65Lwn2yr/fJ4+qrxjmstVxogjzwJIZL/fdboCKBg6ph/FLW+xdvYFEBZW92XxBn1C8yRKS3d2VkVT3BzLSw==", + "dependencies": { + "accessor-fn": "1", + "kapsule": "1", + "three": ">=0.118 <1", + "three-forcegraph": "1", + "three-render-objects": "^1.29" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/3d-force-graph-ar": { + "version": "1.8.4", + "resolved": "https://registry.npmmirror.com/3d-force-graph-ar/-/3d-force-graph-ar-1.8.4.tgz", + "integrity": "sha512-GnggtrFODQqEfkFTJeQnPvwQVcYtJ81cE5/lsFdDumLkPWB2WoHSbs5k2tSNCZVGIUsKQs5kkEGCbNDeOhueiw==", + "dependencies": { + "aframe-forcegraph-component": "3", + "kapsule": "1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/3d-force-graph-vr": { + "version": "2.2.5", + "resolved": "https://registry.npmmirror.com/3d-force-graph-vr/-/3d-force-graph-vr-2.2.5.tgz", + "integrity": "sha512-Lq31Ido+QQE0iWZNmyKVcsY2rmyMJaBzRgqG/4zZUY2nOBOmf/8TQF7kHSsW564UaZtx4FvjamHyVSkenPy9BA==", + "dependencies": { + "accessor-fn": "1", + "aframe": "^1.5", + "aframe-extras": "^7.2", + "aframe-forcegraph-component": "3", + "kapsule": "1", + "polished": "4" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz", @@ -7303,6 +7631,14 @@ "node": ">= 0.6" } }, + "node_modules/accessor-fn": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/accessor-fn/-/accessor-fn-1.5.1.tgz", + "integrity": "sha512-zZpFYBqIL1Aqg+f2qmYHJ8+yIZF7/tP6PUGx2/QM0uGPSO5UegpinmkNwDohxWtOj586BpMPVRUjce2HI6xB3A==", + "engines": { + "node": ">=12" + } + }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", @@ -7368,6 +7704,78 @@ "node": ">= 10.0.0" } }, + "node_modules/aframe": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/aframe/-/aframe-1.6.0.tgz", + "integrity": "sha512-+P1n2xKGZQbCNW4lTwfue9in2KmfAwYD/BZOU5uXKrJCTegPyUZZX/haJRR9Rb33ij+KPj3vFdwT5ALaucXTNA==", + "dependencies": { + "buffer": "^6.0.3", + "debug": "^4.3.4", + "deep-assign": "^2.0.0", + "load-bmfont": "^1.2.3", + "super-animejs": "^3.1.0", + "three": "npm:super-three@0.164.0", + "three-bmfont-text": "github:dmarcos/three-bmfont-text#eed4878795be9b3e38cf6aec6b903f56acd1f695", + "webvr-polyfill": "^0.10.12" + }, + "engines": { + "node": ">= 4.6.0", + "npm": ">= 2.15.9" + } + }, + "node_modules/aframe-extras": { + "version": "7.5.0", + "resolved": "https://registry.npmmirror.com/aframe-extras/-/aframe-extras-7.5.0.tgz", + "integrity": "sha512-9GmDfjfq6qCzSSkvkzf82hqVkEqGVPyCU81ttlfk0yL9+mepLFmVC+Wda8DCP25jZGoY7wm33vs0QadDelnxTg==", + "dependencies": { + "nipplejs": "^0.10.2", + "three": "^0.164.0", + "three-pathfinding": "^1.3.0" + } + }, + "node_modules/aframe-extras/node_modules/three": { + "version": "0.164.1", + "resolved": "https://registry.npmmirror.com/three/-/three-0.164.1.tgz", + "integrity": "sha512-iC/hUBbl1vzFny7f5GtqzVXYjMJKaTPxiCxXfrvVdBi1Sf+jhd1CAkitiFwC7mIBFCo3MrDLJG97yisoaWig0w==" + }, + "node_modules/aframe-forcegraph-component": { + "version": "3.0.8", + "resolved": "https://registry.npmmirror.com/aframe-forcegraph-component/-/aframe-forcegraph-component-3.0.8.tgz", + "integrity": "sha512-ir1SzOYWYVQ4wtG18QwZRR/aVeZlZDXDbcRgFxSIc8A1YB6Mz3Mh0f0zMFKE3jAq481xNgpktxMvsWGZTPi63Q==", + "dependencies": { + "accessor-fn": "1", + "three-forcegraph": "1" + } + }, + "node_modules/aframe/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/aframe/node_modules/three": { + "name": "super-three", + "version": "0.164.0", + "resolved": "https://registry.npmmirror.com/super-three/-/super-three-0.164.0.tgz", + "integrity": "sha512-yMtOkw2hSXfIvGlwcghCbhHGsKRAmh8ksDeOo/0HI7KlEVoIYKHiYLYe9GF6QBViNwzKGpMIz77XUDRveZ4XJg==" + }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", @@ -7433,6 +7841,11 @@ "ajv": "^6.9.1" } }, + "node_modules/an-array": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/an-array/-/an-array-1.0.0.tgz", + "integrity": "sha512-M175GYI7RmsYu24Ok383yZQa3eveDfNnmhTe3OQ3bm70bEovz2gWenH+ST/n32M8lrwLWk74hcPds5CDRPe2wg==" + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -7659,6 +8072,14 @@ "node": ">= 0.4" } }, + "node_modules/array-shuffle": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/array-shuffle/-/array-shuffle-1.0.1.tgz", + "integrity": "sha512-PBqgo1Y2XWSksBzq3GFPEb798ZrW2snAcmr4drbVeF/6MT/5aBlkGJEvu5A/CzXHf4EjbHOj/ZowatjlIiVidA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array-tree-filter": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz", @@ -7773,6 +8194,11 @@ "node": ">=0.10.0" } }, + "node_modules/as-number": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/as-number/-/as-number-1.0.0.tgz", + "integrity": "sha512-HkI/zLo2AbSRO4fqVkmyf3hms0bJDs3iboHqTrNuwTiCRvdYXM7HFhfhB6Dk51anV2LM/IMB83mtK9mHw4FlAg==" + }, "node_modules/asn1.js": { "version": "4.10.1", "resolved": "https://registry.npmmirror.com/asn1.js/-/asn1.js-4.10.1.tgz", @@ -8146,6 +8572,15 @@ "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, + "node_modules/bezier-js": { + "version": "6.1.4", + "resolved": "https://registry.npmmirror.com/bezier-js/-/bezier-js-6.1.4.tgz", + "integrity": "sha512-PA0FW9ZpcHbojUCMu28z9Vg/fNkwTj5YhusSAjHHDfHDGLxJ6YUKrAN2vk1fP2MMOxVw4Oko16FMlRGVBGqLKg==", + "funding": { + "type": "individual", + "url": "https://github.com/Pomax/bezierjs/blob/master/FUNDING.md" + } + }, "node_modules/big-integer": { "version": "1.6.52", "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz", @@ -8420,6 +8855,11 @@ "node-int64": "^0.4.0" } }, + "node_modules/bubblesets-js": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/bubblesets-js/-/bubblesets-js-2.3.3.tgz", + "integrity": "sha512-7++8/mcahpmJyIGY+YSPG5o2FnTIeNgVx17eoFyEjzcTblpcMd8SSUtt67MlKYlj8mIh9/aYpY+1GvPoy6pViQ==" + }, "node_modules/buffer": { "version": "4.9.2", "resolved": "https://registry.npmmirror.com/buffer/-/buffer-4.9.2.tgz", @@ -8430,6 +8870,14 @@ "isarray": "^1.0.0" } }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", @@ -8504,6 +8952,58 @@ "node": ">=0.10.0" } }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "node_modules/cacheable-request/node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.7.tgz", @@ -8584,11 +9084,40 @@ "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001618.tgz", "integrity": "sha512-p407+D1tIkDvsEAPS22lJxLQQaG8OTBEqo0KhzfABGk0TU4juBNDSfH0hyAp/HRyx+M8L17z/ltyhxh27FTfQg==" }, + "node_modules/canvas-color-tracker": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/canvas-color-tracker/-/canvas-color-tracker-1.2.2.tgz", + "integrity": "sha512-r+u/Ft2ka4Rj274Ts4L9bhYZLuMvbuJ/yL4seP0s+Pi+i9CM0caD+Sd//yseS5EVBJ2SKSmq36h2mNYUCdmTfA==", + "dependencies": { + "tinycolor2": "^1.6.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cardboard-vr-display": { + "version": "1.0.19", + "resolved": "https://registry.npmmirror.com/cardboard-vr-display/-/cardboard-vr-display-1.0.19.tgz", + "integrity": "sha512-+MjcnWKAkb95p68elqZLDPzoiF/dGncQilLGvPBM5ZorABp/ao3lCs7nnRcYBckmuNkg1V/5rdGDKoUaCVsHzQ==", + "dependencies": { + "gl-preserve-state": "^1.0.0", + "nosleep.js": "^0.7.0", + "webvr-polyfill-dpdb": "^1.0.17" + } + }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/ccount/-/ccount-2.0.1.tgz", "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" }, + "node_modules/centra": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/centra/-/centra-2.7.0.tgz", + "integrity": "sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==", + "dependencies": { + "follow-redirects": "^1.15.6" + } + }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", @@ -8913,6 +9442,17 @@ "node": ">=12" } }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/clsx": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/clsx/-/clsx-2.1.0.tgz", @@ -8977,6 +9517,15 @@ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz", @@ -9000,6 +9549,11 @@ "node": ">= 0.8" } }, + "node_modules/comlink": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/comlink/-/comlink-4.4.1.tgz", + "integrity": "sha512-+1dlx0aY5Jo1vHy/tSsIGpSkN4tS9rZSW8FIhG0JH/crs9wwweswIo/POr451r7bZww3hFbPAKnTpimzL/mm4Q==" + }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -9968,6 +10522,11 @@ "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz", "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" }, + "node_modules/d3-binarytree": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/d3-binarytree/-/d3-binarytree-1.0.2.tgz", + "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==" + }, "node_modules/d3-color": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz", @@ -10004,6 +10563,34 @@ "node": ">=12" } }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force-3d": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/d3-force-3d/-/d3-force-3d-3.0.5.tgz", + "integrity": "sha512-tdwhAhoTYZY/a6eo9nR7HP3xSW/C6XvJTbeRpR92nlPzH6OiE+4MliN9feuSFd0tPtEUo+191qOhCTWx3NYifg==", + "dependencies": { + "d3-binarytree": "1", + "d3-dispatch": "1 - 3", + "d3-octree": "1", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/d3-format": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-3.1.0.tgz", @@ -10023,6 +10610,11 @@ "node": ">=12" } }, + "node_modules/d3-octree": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/d3-octree/-/d3-octree-1.0.2.tgz", + "integrity": "sha512-Qxg4oirJrNXauiuC94uKMbgxwnhdda9xRLl9ihq45srlJ4Ga3CSgqGcAL8iW7N5CIv4Oz8x3E734ulxyvHPvwA==" + }, "node_modules/d3-path": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz", @@ -10036,6 +10628,14 @@ "resolved": "https://registry.npmmirror.com/d3-polygon/-/d3-polygon-1.0.6.tgz", "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } + }, "node_modules/d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-4.0.2.tgz", @@ -10051,6 +10651,18 @@ "node": ">=12" } }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/d3-scale/node_modules/d3-array": { "version": "3.2.4", "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz", @@ -10155,6 +10767,26 @@ "node": ">=12" } }, + "node_modules/dagre": { + "version": "0.8.5", + "resolved": "https://registry.npmmirror.com/dagre/-/dagre-0.8.5.tgz", + "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "dependencies": { + "graphlib": "^2.1.8", + "lodash": "^4.17.15" + } + }, + "node_modules/data-joint": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/data-joint/-/data-joint-1.3.1.tgz", + "integrity": "sha512-tMK0m4OVGqiA3zkn8JmO6YAqD8UwJqIAx4AAwFl1SKTtKAqcXePuT+n2aayiX9uITtlN3DFtKKTOxJRUc2+HvQ==", + "dependencies": { + "index-array-by": "^1.4.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", @@ -10295,6 +10927,17 @@ "node": ">=0.10" } }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/dedent": { "version": "1.5.3", "resolved": "https://registry.npmmirror.com/dedent/-/dedent-1.5.3.tgz", @@ -10309,6 +10952,17 @@ } } }, + "node_modules/deep-assign": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/deep-assign/-/deep-assign-2.0.0.tgz", + "integrity": "sha512-2QhG3Kxulu4XIF3WL5C5x0sc/S17JLgm1SfvDfIRsR/5m7ZGmcejII7fZ2RyWhN0UWIJm0TNM/eKow6LAn3evQ==", + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", @@ -10430,6 +11084,11 @@ "node": ">=12" } }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.4.tgz", @@ -10693,8 +11352,7 @@ "node_modules/dom-walk": { "version": "0.1.2", "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, "node_modules/domain-browser": { "version": "1.2.0", @@ -10765,6 +11423,14 @@ "tslib": "^2.0.3" } }, + "node_modules/dtype": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/dtype/-/dtype-2.0.0.tgz", + "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/duck": { "version": "0.1.12", "resolved": "https://registry.npmmirror.com/duck/-/duck-0.1.12.tgz", @@ -10779,6 +11445,11 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, "node_modules/duplexify": { "version": "4.1.2", "resolved": "https://registry.npmmirror.com/duplexify/-/duplexify-4.1.2.tgz", @@ -12330,6 +13001,11 @@ "bser": "2.1.1" } }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" + }, "node_modules/fetch-blob": { "version": "3.2.0", "resolved": "https://registry.npmmirror.com/fetch-blob/-/fetch-blob-3.2.0.tgz", @@ -12505,6 +13181,30 @@ "node": ">=0.10.0" } }, + "node_modules/force-graph": { + "version": "1.43.5", + "resolved": "https://registry.npmmirror.com/force-graph/-/force-graph-1.43.5.tgz", + "integrity": "sha512-HveLELh9yhZXO/QOfaFS38vlwJZ/3sKu+jarfXzRmbmihSOH/BbRWnUvmg8wLFiYy6h4HlH4lkRfZRccHYmXgA==", + "dependencies": { + "@tweenjs/tween.js": "18 - 23", + "accessor-fn": "1", + "bezier-js": "3 - 6", + "canvas-color-tracker": "1", + "d3-array": "1 - 3", + "d3-drag": "2 - 3", + "d3-force-3d": "2 - 3", + "d3-scale": "1 - 4", + "d3-scale-chromatic": "1 - 3", + "d3-selection": "2 - 3", + "d3-zoom": "2 - 3", + "index-array-by": "1", + "kapsule": "^1.14", + "lodash-es": "4" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.1.1.tgz", @@ -12689,6 +13389,25 @@ "node": ">= 0.6" } }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz", @@ -12852,6 +13571,16 @@ "resolved": "https://registry.npmmirror.com/git-hooks-list/-/git-hooks-list-3.1.0.tgz", "integrity": "sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==" }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "node_modules/gl-preserve-state": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/gl-preserve-state/-/gl-preserve-state-1.0.0.tgz", + "integrity": "sha512-zQZ25l3haD4hvgJZ6C9+s0ebdkW9y+7U2qxvGu1uWOJh8a4RU+jURIKEQhf8elIlFpMH6CrAY2tH0mYrRjet3Q==" + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", @@ -12889,7 +13618,6 @@ "version": "4.4.0", "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz", "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, "dependencies": { "min-document": "^2.19.0", "process": "^0.11.10" @@ -12979,6 +13707,38 @@ "get-intrinsic": "^1.1.3" } }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -12989,6 +13749,14 @@ "resolved": "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" }, + "node_modules/graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmmirror.com/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "dependencies": { + "lodash": "^4.17.15" + } + }, "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz", @@ -13495,6 +14263,11 @@ "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -13547,6 +14320,12 @@ "node": ">= 6" } }, + "node_modules/hull.js": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/hull.js/-/hull.js-1.0.6.tgz", + "integrity": "sha512-TC7e9sHYOaCVms0sn2hN7buxnaGfcl9h5EPVoVX9DTPoMpqQiS9bf3tmGDgiNaMVHBD91RAvWjCxrJ5Jx8BI5A==", + "deprecated": "This package is not maintained anymore on npmjs.com, please use GitHub URL to fetch the latest version. See the package homepage for instructions." + }, "node_modules/human-id": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/human-id/-/human-id-4.1.1.tgz", @@ -13742,6 +14521,14 @@ "node": ">=8" } }, + "node_modules/index-array-by": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/index-array-by/-/index-array-by-1.4.2.tgz", + "integrity": "sha512-SP23P27OUKzXWEC/TOyWlwLviofQkCSCKONnc62eItjp69yCZZPqDQtr3Pw5gJDnPeUMqExmKydNZaJO0FU9pw==", + "engines": { + "node": ">=12" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", @@ -13872,6 +14659,11 @@ "is-decimal": "^2.0.0" } }, + "node_modules/is-any-array": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/is-any-array/-/is-any-array-2.0.1.tgz", + "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==" + }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz", @@ -13957,8 +14749,7 @@ "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/is-callable": { "version": "1.2.7", @@ -14107,6 +14898,11 @@ "node": ">=8" } }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, "node_modules/is-generator-fn": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz", @@ -14200,6 +14996,14 @@ "node": ">= 0.4" } }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -14563,6 +15367,14 @@ "resolved": "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz", "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==" }, + "node_modules/jerrypick": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/jerrypick/-/jerrypick-1.1.1.tgz", + "integrity": "sha512-XTtedPYEyVp4t6hJrXuRKr/jHj8SC4z+4K0b396PMkov6muL+i8IIamJIvZWe3jUspgIJak0P+BaWKawMYNBLg==", + "engines": { + "node": ">=12" + } + }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmmirror.com/jest/-/jest-29.7.0.tgz", @@ -17115,6 +17927,17 @@ "node": ">=8" } }, + "node_modules/kapsule": { + "version": "1.14.5", + "resolved": "https://registry.npmmirror.com/kapsule/-/kapsule-1.14.5.tgz", + "integrity": "sha512-H0iSpTynUzZw3tgraDmReprpFRmH5oP5GPmaNsurSwLx2H5iCpOMIkp5q+sfhB4Tz/UJd1E1IbEE9Z6ksnJ6RA==", + "dependencies": { + "lodash-es": "4" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", @@ -17152,6 +17975,16 @@ "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==" }, + "node_modules/layout-bmfont-text": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/layout-bmfont-text/-/layout-bmfont-text-1.3.4.tgz", + "integrity": "sha512-mceomHZ8W7pSKQhTdLvOe1Im4n37u8xa5Gr0J3KPCHRMO/9o7+goWIOzZcUUd+Xgzy3+22bvoIQ0OaN3LRtgaw==", + "dependencies": { + "as-number": "^1.0.0", + "word-wrapper": "^1.0.7", + "xtend": "^4.0.0" + } + }, "node_modules/less": { "version": "4.1.3", "resolved": "https://registry.npmmirror.com/less/-/less-4.1.3.tgz", @@ -17706,6 +18539,21 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/load-bmfont": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/load-bmfont/-/load-bmfont-1.4.2.tgz", + "integrity": "sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==", + "dependencies": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^3.7.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz", @@ -17755,9 +18603,7 @@ "node_modules/lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true, - "peer": true + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", @@ -17998,6 +18844,14 @@ "tslib": "^2.0.3" } }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/lowlight": { "version": "1.20.0", "resolved": "https://registry.npmmirror.com/lowlight/-/lowlight-1.20.0.tgz", @@ -18092,6 +18946,22 @@ "node": ">=0.10.0" } }, + "node_modules/map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/map-limit/node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmmirror.com/once/-/once-1.3.3.tgz", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/map-obj": { "version": "4.3.0", "resolved": "https://registry.npmmirror.com/map-obj/-/map-obj-4.3.0.tgz", @@ -18774,11 +19644,18 @@ "node": ">=6" } }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, "node_modules/min-document": { "version": "2.19.0", "resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz", "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "dev": true, "dependencies": { "dom-walk": "^0.1.0" } @@ -18815,8 +19692,7 @@ "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "node_modules/minimist-options": { "version": "4.1.0", @@ -18874,6 +19750,41 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/ml-array-max": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/ml-array-max/-/ml-array-max-1.2.4.tgz", + "integrity": "sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==", + "dependencies": { + "is-any-array": "^2.0.0" + } + }, + "node_modules/ml-array-min": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/ml-array-min/-/ml-array-min-1.2.3.tgz", + "integrity": "sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==", + "dependencies": { + "is-any-array": "^2.0.0" + } + }, + "node_modules/ml-array-rescale": { + "version": "1.3.7", + "resolved": "https://registry.npmmirror.com/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz", + "integrity": "sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==", + "dependencies": { + "is-any-array": "^2.0.0", + "ml-array-max": "^1.2.4", + "ml-array-min": "^1.2.3" + } + }, + "node_modules/ml-matrix": { + "version": "6.11.1", + "resolved": "https://registry.npmmirror.com/ml-matrix/-/ml-matrix-6.11.1.tgz", + "integrity": "sha512-Fvp1xF1O07tt6Ux9NcnEQTei5UlqbRpvvaFZGs7l3Ij+nOaEDcmbSVtxwNa8V4IfdyFI1NLNUteroMJ1S6vcEg==", + "dependencies": { + "is-any-array": "^2.0.1", + "ml-array-rescale": "^1.3.7" + } + }, "node_modules/moment": { "version": "2.30.1", "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz", @@ -18967,12 +19878,69 @@ "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==", "dev": true }, + "node_modules/new-array": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/new-array/-/new-array-1.0.0.tgz", + "integrity": "sha512-K5AyFYbuHZ4e/ti52y7k18q8UHsS78FlRd85w2Fmsd6AkuLipDihPflKC0p3PN5i8II7+uHxo+CtkLiJDfmS5A==" + }, "node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz", "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "dev": true }, + "node_modules/ngraph.events": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/ngraph.events/-/ngraph.events-1.2.2.tgz", + "integrity": "sha512-JsUbEOzANskax+WSYiAPETemLWYXmixuPAlmZmhIbIj6FH/WDgEGCGnRwUQBK0GjOnVm8Ui+e5IJ+5VZ4e32eQ==" + }, + "node_modules/ngraph.forcelayout": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/ngraph.forcelayout/-/ngraph.forcelayout-3.3.1.tgz", + "integrity": "sha512-MKBuEh1wujyQHFTW57y5vd/uuEOK0XfXYxm3lC7kktjJLRdt/KEKEknyOlc6tjXflqBKEuYBBcu7Ax5VY+S6aw==", + "dependencies": { + "ngraph.events": "^1.0.0", + "ngraph.merge": "^1.0.0", + "ngraph.random": "^1.0.0" + } + }, + "node_modules/ngraph.graph": { + "version": "20.0.1", + "resolved": "https://registry.npmmirror.com/ngraph.graph/-/ngraph.graph-20.0.1.tgz", + "integrity": "sha512-VFsQ+EMkT+7lcJO1QP8Ik3w64WbHJl27Q53EO9hiFU9CRyxJ8HfcXtfWz/U8okuoYKDctbciL6pX3vG5dt1rYA==", + "dependencies": { + "ngraph.events": "^1.2.1" + } + }, + "node_modules/ngraph.merge": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/ngraph.merge/-/ngraph.merge-1.0.0.tgz", + "integrity": "sha512-5J8YjGITUJeapsomtTALYsw7rFveYkM+lBj3QiYZ79EymQcuri65Nw3knQtFxQBU1r5iOaVRXrSwMENUPK62Vg==" + }, + "node_modules/ngraph.random": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/ngraph.random/-/ngraph.random-1.1.0.tgz", + "integrity": "sha512-h25UdUN/g8U7y29TzQtRm/GvGr70lK37yQPvPKXXuVfs7gCm82WipYFZcksQfeKumtOemAzBIcT7lzzyK/edLw==" + }, + "node_modules/nice-color-palettes": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/nice-color-palettes/-/nice-color-palettes-3.0.0.tgz", + "integrity": "sha512-lL4AjabAAFi313tjrtmgm/bxCRzp4l3vCshojfV/ij3IPdtnRqv6Chcw+SqJUhbe7g3o3BecaqCJYUNLswGBhQ==", + "dependencies": { + "got": "^9.2.2", + "map-limit": "0.0.1", + "minimist": "^1.2.0", + "new-array": "^1.0.0" + }, + "bin": { + "nice-color-palettes": "bin/index.js" + } + }, + "node_modules/nipplejs": { + "version": "0.10.2", + "resolved": "https://registry.npmmirror.com/nipplejs/-/nipplejs-0.10.2.tgz", + "integrity": "sha512-XGxFY8C2DOtobf1fK+MXINTzkkXJLjZDDpfQhOUZf4TSytbc9s4bmA0lB9eKKM8iDivdr9NQkO7DpIQfsST+9g==" + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz", @@ -19206,6 +20174,19 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/nosleep.js": { + "version": "0.7.0", + "resolved": "https://registry.npmmirror.com/nosleep.js/-/nosleep.js-0.7.0.tgz", + "integrity": "sha512-Z4B1HgvzR+en62ghwZf6BwAR6x4/pjezsiMcbF9KMLh7xoscpoYhaSXfY3lLkqC68AtW+/qLJ1lzvBIj0FGaTA==" + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -19533,6 +20514,14 @@ "node": ">=6" } }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, "node_modules/p-event": { "version": "4.2.0", "resolved": "https://registry.npmmirror.com/p-event/-/p-event-4.2.0.tgz", @@ -19670,6 +20659,25 @@ "node": ">= 0.10" } }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.5.0" + } + }, "node_modules/parse-entities": { "version": "4.0.1", "resolved": "https://registry.npmmirror.com/parse-entities/-/parse-entities-4.0.1.tgz", @@ -19690,6 +20698,11 @@ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.10.tgz", "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", @@ -19840,6 +20853,17 @@ "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, + "node_modules/phin": { + "version": "3.7.1", + "resolved": "https://registry.npmmirror.com/phin/-/phin-3.7.1.tgz", + "integrity": "sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==", + "dependencies": { + "centra": "^2.7.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", @@ -20056,6 +21080,17 @@ "resolved": "https://registry.npmmirror.com/point-in-polygon/-/point-in-polygon-1.1.0.tgz", "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" }, + "node_modules/polished": { + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/polished/-/polished-4.3.1.tgz", + "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==", + "dependencies": { + "@babel/runtime": "^7.17.8" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -20629,6 +21664,14 @@ "node": ">= 0.8.0" } }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, "node_modules/prettier": { "version": "3.2.4", "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.2.4.tgz", @@ -20829,6 +21872,15 @@ "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz", @@ -20886,6 +21938,16 @@ "node": ">=0.6" } }, + "node_modules/quad-indices": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/quad-indices/-/quad-indices-2.0.1.tgz", + "integrity": "sha512-6jtmCsEbGAh5npThXrBaubbTjPcF0rMbn57XCJVI7LkW8PUT56V+uIrRCCWCn85PSgJC9v8Pm5tnJDwmOBewvA==", + "dependencies": { + "an-array": "^1.0.0", + "dtype": "^2.0.0", + "is-buffer": "^1.0.2" + } + }, "node_modules/query-string": { "version": "6.14.1", "resolved": "https://registry.npmmirror.com/query-string/-/query-string-6.14.1.tgz", @@ -20933,6 +21995,11 @@ "node": ">=8" } }, + "node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, "node_modules/raf": { "version": "3.4.1", "resolved": "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz", @@ -21005,6 +22072,14 @@ "node": ">=0.10.0" } }, + "node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "dependencies": { + "quickselect": "^2.0.0" + } + }, "node_modules/rc-cascader": { "version": "3.20.0", "resolved": "https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.20.0.tgz", @@ -21950,6 +23025,25 @@ "resolved": "https://registry.npmmirror.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz", "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" }, + "node_modules/react-force-graph": { + "version": "1.44.4", + "resolved": "https://registry.npmmirror.com/react-force-graph/-/react-force-graph-1.44.4.tgz", + "integrity": "sha512-mi/jRKssT++kl2R1YonFi/2hpK+a1omz6AvJ/oQa++HbXrRGtxg/xo1skO04tGZ/dUbR6SqJcpoUPYHzEle9mA==", + "dependencies": { + "3d-force-graph": "1", + "3d-force-graph-ar": "1", + "3d-force-graph-vr": "2", + "force-graph": "1", + "prop-types": "15", + "react-kapsule": "2" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-helmet-async": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz", @@ -21992,6 +23086,21 @@ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, + "node_modules/react-kapsule": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/react-kapsule/-/react-kapsule-2.4.0.tgz", + "integrity": "sha512-w4Yv9CgWdj8kWGQEPNWFGJJ08dYEZHZpiaFR/DgZjCMBNqv9wus2Gy1qvHVJmJbzvAZbq6jdvFC+NYzEqAlNhQ==", + "dependencies": { + "fromentries": "^1.3.2", + "jerrypick": "^1.1.1" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, "node_modules/react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmmirror.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", @@ -22821,6 +23930,14 @@ "node": ">=10" } }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, "node_modules/restore-cursor": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-4.0.0.tgz", @@ -22998,8 +24115,7 @@ "node_modules/sax": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "optional": true + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "node_modules/saxes": { "version": "6.0.0", @@ -23266,6 +24382,19 @@ "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, "node_modules/single-spa": { "version": "5.9.5", "resolved": "https://registry.npmmirror.com/single-spa/-/single-spa-5.9.5.tgz", @@ -24181,6 +25310,11 @@ "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.1.tgz", "integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==" }, + "node_modules/super-animejs": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/super-animejs/-/super-animejs-3.1.0.tgz", + "integrity": "sha512-6MFAFJDRuvwkovxQZPruuyHinTa4rgj4hNLOndjcYYhZLckoXtVRY9rJPuq8p6c/tgZJrFYEAYAfJ2/hhNtUCA==" + }, "node_modules/superjson": { "version": "1.13.3", "resolved": "https://registry.npmmirror.com/superjson/-/superjson-1.13.3.tgz", @@ -24272,6 +25406,11 @@ "resolved": "https://registry.npmmirror.com/svg-parser/-/svg-parser-2.0.4.tgz", "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" }, + "node_modules/svg-path-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/svg-path-parser/-/svg-path-parser-1.1.0.tgz", + "integrity": "sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A==" + }, "node_modules/svg-path-properties": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/svg-path-properties/-/svg-path-properties-1.3.0.tgz", @@ -24517,6 +25656,71 @@ "real-require": "^0.1.0" } }, + "node_modules/three": { + "version": "0.167.0", + "resolved": "https://registry.npmmirror.com/three/-/three-0.167.0.tgz", + "integrity": "sha512-9Y1a66fpjqF3rhq7ivKTaKtjQLZ97Hj/lZ00DmZWaKHaQFH4uzYT1znwRDWQOcgMmCcOloQzo61gDmqO8l9xmA==" + }, + "node_modules/three-bmfont-text": { + "version": "3.0.0", + "resolved": "git+ssh://git@github.com/dmarcos/three-bmfont-text.git#eed4878795be9b3e38cf6aec6b903f56acd1f695", + "integrity": "sha512-5KULChxHm4qAQZx1MfEF5ADC+2PEX5Gvo2eiEiF9N4RyTNPpHPBRSpW5n8LyD8gOwC0TAdWwafoOGrqPCR1sUA==", + "license": "MIT", + "dependencies": { + "array-shuffle": "^1.0.1", + "layout-bmfont-text": "^1.2.0", + "nice-color-palettes": "^3.0.0", + "quad-indices": "^2.0.1" + } + }, + "node_modules/three-forcegraph": { + "version": "1.41.14", + "resolved": "https://registry.npmmirror.com/three-forcegraph/-/three-forcegraph-1.41.14.tgz", + "integrity": "sha512-W/cZElLXO0l6ffdMmDakh4bUGSYuSv/YxInOHMN9KAQgDwJ8904SOBh8qkTnGu7UPsi0mAsrUgkfViW8heloTA==", + "dependencies": { + "accessor-fn": "1", + "d3-array": "1 - 3", + "d3-force-3d": "2 - 3", + "d3-scale": "1 - 4", + "d3-scale-chromatic": "1 - 3", + "data-joint": "1", + "kapsule": "1", + "ngraph.forcelayout": "3", + "ngraph.graph": "20", + "tinycolor2": "1" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "three": ">=0.118.3" + } + }, + "node_modules/three-pathfinding": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/three-pathfinding/-/three-pathfinding-1.3.0.tgz", + "integrity": "sha512-LKxMI3/YqdMYvt6AdE2vB6s5ueDFczt/DWoxhtPNgRsH6E0D8LMYQxz+eIrmKo0MQpDvMVzXYUMBk+b86+k97w==", + "peerDependencies": { + "three": "0.x.x" + } + }, + "node_modules/three-render-objects": { + "version": "1.29.4", + "resolved": "https://registry.npmmirror.com/three-render-objects/-/three-render-objects-1.29.4.tgz", + "integrity": "sha512-E6YwTN5zNsaMjo/5rosgnK44b1aq//3YJGJ5BxG9t7+euRm7ZAmNX3NIqFkoDhKtFC5WLoOxZjyNoq8Uc49gaA==", + "dependencies": { + "@tweenjs/tween.js": "18 - 23", + "accessor-fn": "1", + "kapsule": "1", + "polished": "4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "three": "*" + } + }, "node_modules/throttle-debounce": { "version": "5.0.0", "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz", @@ -24603,6 +25807,14 @@ "node": ">=0.10.0" } }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/to-regex": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz", @@ -25387,6 +26599,17 @@ "requires-port": "^1.0.0" } }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz", @@ -26189,6 +27412,19 @@ "node": ">=10.13.0" } }, + "node_modules/webvr-polyfill": { + "version": "0.10.12", + "resolved": "https://registry.npmmirror.com/webvr-polyfill/-/webvr-polyfill-0.10.12.tgz", + "integrity": "sha512-trDJEVUQnRIVAnmImjEQ0BlL1NfuWl8+eaEdu+bs4g59c7OtETi/5tFkgEFDRaWEYwHntXs/uFF3OXZuutNGGA==", + "dependencies": { + "cardboard-vr-display": "^1.0.19" + } + }, + "node_modules/webvr-polyfill-dpdb": { + "version": "1.0.18", + "resolved": "https://registry.npmmirror.com/webvr-polyfill-dpdb/-/webvr-polyfill-dpdb-1.0.18.tgz", + "integrity": "sha512-O0S1ZGEWyPvyZEkS2VbyV7mtir/NM9MNK3EuhbHPoJ8EHTky2pTXehjIl+IiDPr+Lldgx129QGt3NGly7rwRPw==" + }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -26302,6 +27538,23 @@ "node": ">= 0.4" } }, + "node_modules/word-wrapper": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/word-wrapper/-/word-wrapper-1.0.7.tgz", + "integrity": "sha512-VOPBFCm9b6FyYKQYfn9AVn2dQvdR/YOVFV6IBRA1TBMJWKffvhEX1af6FMGrttILs2Q9ikCRhLqkbY2weW6dOQ==" + }, + "node_modules/workerize-loader": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/workerize-loader/-/workerize-loader-2.0.2.tgz", + "integrity": "sha512-HoZ6XY4sHWxA2w0WpzgBwUiR3dv1oo7bS+oCwIpb6n54MclQ/7KXdXsVIChTCygyuHtVuGBO1+i3HzTt699UJQ==", + "peer": true, + "dependencies": { + "loader-utils": "^2.0.0" + }, + "peerDependencies": { + "webpack": "*" + } + }, "node_modules/workerpool": { "version": "9.1.1", "resolved": "https://registry.npmmirror.com/workerpool/-/workerpool-9.1.1.tgz", @@ -26426,6 +27679,17 @@ } } }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -26435,6 +27699,31 @@ "node": ">=12" } }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==" + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, "node_modules/xmlbuilder": { "version": "10.1.1", "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-10.1.1.tgz", diff --git a/web/package.json b/web/package.json index d3553ebb8e2..4f792a9f75c 100644 --- a/web/package.json +++ b/web/package.json @@ -20,6 +20,7 @@ "@ant-design/icons": "^5.2.6", "@ant-design/pro-components": "^2.6.46", "@ant-design/pro-layout": "^7.17.16", + "@antv/g6": "^5.0.10", "@js-preview/excel": "^1.7.8", "@tanstack/react-query": "^5.40.0", "@tanstack/react-query-devtools": "^5.51.5", @@ -40,6 +41,7 @@ "mammoth": "^1.7.2", "rc-tween-one": "^3.0.6", "react-copy-to-clipboard": "^5.1.0", + "react-force-graph": "^1.44.4", "react-i18next": "^14.0.0", "react-markdown": "^9.0.1", "react-pdf-highlighter": "^6.1.0", diff --git a/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx b/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx index 351f3f6683c..23d8900b14a 100644 --- a/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx +++ b/web/src/pages/add-knowledge/components/knowledge-chunk/index.tsx @@ -182,15 +182,14 @@ const Chunk = () => { /> - - { + {isPdf && (
- } + )} {chunkUpdatingVisible && ( diff --git a/web/src/pages/force-graph.tsx b/web/src/pages/force-graph.tsx deleted file mode 100644 index c3285abf3c0..00000000000 --- a/web/src/pages/force-graph.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { memo, useState } from 'react'; - -function compare(oldProps, newProps) { - return true; -} - -const Greeting = memo(function Greeting({ name }) { - console.log('Greeting was rendered at', new Date().toLocaleTimeString()); - return ( -

- Hello{name && ', '} - {name}! -

- ); -}, compare); - -export default function MyApp() { - const [name, setName] = useState(''); - const [address, setAddress] = useState(''); - return ( - <> - - - - - ); -} diff --git a/web/src/pages/force-graph/constant.ts b/web/src/pages/force-graph/constant.ts new file mode 100644 index 00000000000..fc7d3561f8d --- /dev/null +++ b/web/src/pages/force-graph/constant.ts @@ -0,0 +1,241 @@ +const nodes = [ + { + type: '"ORGANIZATION"', + description: + '"厦门象屿是一家公司,其营业收入和市场占有率在2018年至2022年间有所变化。"', + source_id: '0', + id: '"厦门象屿"', + }, + { + type: '"EVENT"', + description: + '"2018年是一个时间点,标志着厦门象屿营业收入和市场占有率的记录开始。"', + source_id: '0', + entity_type: '"EVENT"', + id: '"2018"', + }, + { + type: '"EVENT"', + description: + '"2019年是一个时间点,厦门象屿的营业收入和市场占有率在此期间有所变化。"', + source_id: '0', + entity_type: '"EVENT"', + id: '"2019"', + }, + { + type: '"EVENT"', + description: + '"2020年是一个时间点,厦门象屿的营业收入和市场占有率在此期间有所变化。"', + source_id: '0', + entity_type: '"EVENT"', + id: '"2020"', + }, + { + type: '"EVENT"', + description: + '"2021年是一个时间点,厦门象屿的营业收入和市场占有率在此期间有所变化。"', + source_id: '0', + entity_type: '"EVENT"', + id: '"2021"', + }, + { + type: '"EVENT"', + description: + '"2022年是一个时间点,厦门象屿的营业收入和市场占有率在此期间有所变化。"', + source_id: '0', + entity_type: '"EVENT"', + id: '"2022"', + }, + { + type: '"ORGANIZATION"', + description: + '"厦门象屿股份有限公司是一家公司,中文简称为厦门象屿,外文名称为Xiamen Xiangyu Co.,Ltd.,外文名称缩写为Xiangyu,法定代表人为邓启东。"', + source_id: '1', + id: '"厦门象屿股份有限公司"', + }, + { + type: '"PERSON"', + description: '"邓启东是厦门象屿股份有限公司的法定代表人。"', + source_id: '1', + entity_type: '"PERSON"', + id: '"邓启东"', + }, + { + type: '"GEO"', + description: '"厦门是一个地理位置,与厦门象屿股份有限公司相关。"', + source_id: '1', + entity_type: '"GEO"', + id: '"厦门"', + }, + { + type: '"PERSON"', + description: + '"廖杰 is the Board Secretary, responsible for handling board-related matters and communications."', + source_id: '2', + id: '"廖杰"', + }, + { + type: '"PERSON"', + description: + '"史经洋 is the Securities Affairs Representative, responsible for handling securities-related matters and communications."', + source_id: '2', + entity_type: '"PERSON"', + id: '"史经洋"', + }, + { + type: '"GEO"', + description: + '"A geographic location in Xiamen, specifically in the Free Trade Zone, where the company\'s office is situated."', + source_id: '2', + entity_type: '"GEO"', + id: '"厦门市湖里区自由贸易试验区厦门片区"', + }, + { + type: '"GEO"', + description: + '"The building where the company\'s office is located, situated at Xiangyu Road, Xiamen."', + source_id: '2', + entity_type: '"GEO"', + id: '"象屿集团大厦"', + }, + { + type: '"EVENT"', + description: + '"Refers to the year 2021, used for comparing financial metrics with the year 2022."', + source_id: '3', + id: '"2021年"', + }, + { + type: '"EVENT"', + description: + '"Refers to the year 2022, used for presenting current financial metrics and comparing them with the year 2021."', + source_id: '3', + entity_type: '"EVENT"', + id: '"2022年"', + }, + { + type: '"EVENT"', + description: + '"Indicates the focus on key financial metrics in the table, such as weighted averages and percentages."', + source_id: '3', + entity_type: '"EVENT"', + id: '"主要财务指标"', + }, +].map(({ type, ...x }) => ({ ...x })); + +const edges = [ + { + weight: 2.0, + description: '"厦门象屿在2018年的营业收入和市场占有率被记录。"', + source_id: '0', + source: '"厦门象屿"', + target: '"2018"', + }, + { + weight: 2.0, + description: '"厦门象屿在2019年的营业收入和市场占有率有所变化。"', + source_id: '0', + source: '"厦门象屿"', + target: '"2019"', + }, + { + weight: 2.0, + description: '"厦门象屿在2020年的营业收入和市场占有率有所变化。"', + source_id: '0', + source: '"厦门象屿"', + target: '"2020"', + }, + { + weight: 2.0, + description: '"厦门象屿在2021年的营业收入和市场占有率有所变化。"', + source_id: '0', + source: '"厦门象屿"', + target: '"2021"', + }, + { + weight: 2.0, + description: '"厦门象屿在2022年的营业收入和市场占有率有所变化。"', + source_id: '0', + source: '"厦门象屿"', + target: '"2022"', + }, + { + weight: 2.0, + description: '"厦门象屿股份有限公司的法定代表人是邓启东。"', + source_id: '1', + source: '"厦门象屿股份有限公司"', + target: '"邓启东"', + }, + { + weight: 2.0, + description: '"厦门象屿股份有限公司位于厦门。"', + source_id: '1', + source: '"厦门象屿股份有限公司"', + target: '"厦门"', + }, + { + weight: 2.0, + description: + '"廖杰\'s office is located in the Xiangyu Group Building, indicating his workplace."', + source_id: '2', + source: '"廖杰"', + target: '"象屿集团大厦"', + }, + { + weight: 2.0, + description: + '"廖杰 works in the Xiamen Free Trade Zone, a specific area within Xiamen."', + source_id: '2', + source: '"廖杰"', + target: '"厦门市湖里区自由贸易试验区厦门片区"', + }, + { + weight: 2.0, + description: + '"史经洋\'s office is also located in the Xiangyu Group Building, indicating his workplace."', + source_id: '2', + source: '"史经洋"', + target: '"象屿集团大厦"', + }, + { + weight: 2.0, + description: + '"史经洋 works in the Xiamen Free Trade Zone, a specific area within Xiamen."', + source_id: '2', + source: '"史经洋"', + target: '"厦门市湖里区自由贸易试验区厦门片区"', + }, + { + weight: 2.0, + description: + '"The years 2021 and 2022 are related as they are used for comparing financial metrics, showing changes and adjustments over time."', + source_id: '3', + source: '"2021年"', + target: '"2022年"', + }, + { + weight: 2.0, + description: + '"The \'主要财务指标\' is related to the year 2021 as it provides the basis for financial comparisons and adjustments."', + source_id: '3', + source: '"2021年"', + target: '"主要财务指标"', + }, + { + weight: 2.0, + description: + '"The \'主要财务指标\' is related to the year 2022 as it presents the current financial metrics and their changes compared to 2021."', + source_id: '3', + source: '"2022年"', + target: '"主要财务指标"', + }, +]; + +export const graphData = { + directed: false, + multigraph: false, + graph: {}, + nodes, + edges, + combos: [], +}; diff --git a/web/src/pages/force-graph/index.less b/web/src/pages/force-graph/index.less new file mode 100644 index 00000000000..cbe226cbcd5 --- /dev/null +++ b/web/src/pages/force-graph/index.less @@ -0,0 +1,4 @@ +.container { + width: 100%; + height: 100%; +} diff --git a/web/src/pages/force-graph/index.tsx b/web/src/pages/force-graph/index.tsx new file mode 100644 index 00000000000..ae3470cd62f --- /dev/null +++ b/web/src/pages/force-graph/index.tsx @@ -0,0 +1,86 @@ +import { Graph } from '@antv/g6'; +import { useSize } from 'ahooks'; +import { useEffect, useRef } from 'react'; +import { graphData } from './constant'; + +import styles from './index.less'; +import { Converter } from './util'; + +const converter = new Converter(); + +const nextData = converter.buildNodesAndCombos( + graphData.nodes, + graphData.edges, +); +console.log('🚀 ~ nextData:', nextData); + +const finalData = { ...graphData, ...nextData }; + +const ForceGraph = () => { + const containerRef = useRef(null); + const size = useSize(containerRef); + + const render = () => { + const graph = new Graph({ + container: containerRef.current!, + autoFit: 'view', + behaviors: ['drag-element', 'drag-canvas', 'zoom-canvas'], + plugins: [ + { + type: 'tooltip', + getContent: (e, items) => { + if (items.every((x) => x?.description)) { + let result = ``; + items.forEach((item) => { + if (item?.description) { + result += `

${item?.description}

`; + } + }); + return result; + } + return undefined; + }, + }, + ], + layout: { + type: 'combo-combined', + comboPadding: 2, + }, + node: { + style: { + size: 20, + labelText: (d) => d.id, + labelPadding: 20, + // labelOffsetX: 20, + labelOffsetY: 5, + }, + palette: { + type: 'group', + field: (d) => d.combo, + }, + }, + edge: { + style: (model) => { + const { size, color } = model.data; + return { + stroke: color || '#99ADD1', + lineWidth: size || 1, + }; + }, + }, + // data: graphData, + }); + + graph.setData(finalData); + + graph.render(); + }; + + useEffect(() => { + render(); + }, []); + + return
; +}; + +export default ForceGraph; diff --git a/web/src/pages/force-graph/next.tsx b/web/src/pages/force-graph/next.tsx new file mode 100644 index 00000000000..cd0de88a1e4 --- /dev/null +++ b/web/src/pages/force-graph/next.tsx @@ -0,0 +1,37 @@ +import { useEffect, useRef } from 'react'; +import { ForceGraph2D } from 'react-force-graph'; +import { graphData } from './constant'; + +const Next = () => { + const graphRef = useRef(); + + useEffect(() => { + graphRef.current.d3Force('cluster'); + }, []); + + return ( +
+ { + return node.id; + }} + // nodeVal={(node) => { + // return
xxx
; + // }} + // nodeVal={(node) => 100 / (node.level + 1)} + linkAutoColorBy={'type'} + nodeCanvasObjectMode={() => 'after'} + nodeCanvasObject={(node, ctx) => { + console.info(ctx); + return ctx.canvas; + }} + // nodeVal={'id'} + /> +
+ ); +}; + +export default Next; diff --git a/web/src/pages/force-graph/util.ts b/web/src/pages/force-graph/util.ts new file mode 100644 index 00000000000..24cd1522e84 --- /dev/null +++ b/web/src/pages/force-graph/util.ts @@ -0,0 +1,55 @@ +class KeyGenerator { + idx = 0; + chars: string[] = []; + constructor() { + const chars = Array(26) + .fill(1) + .map((x, idx) => String.fromCharCode(97 + idx)); // 26 char + this.chars = chars; + } + generateKey() { + const key = this.chars[this.idx]; + this.idx++; + return key; + } +} + +// Classify nodes based on edge relationships +export class Converter { + keyGenerator; + dict: Record = {}; // key is node id, value is combo + constructor() { + this.keyGenerator = new KeyGenerator(); + } + buildDict(edges: { source: string; target: string }[]) { + edges.forEach((x) => { + if (this.dict[x.source] && !this.dict[x.target]) { + this.dict[x.target] = this.dict[x.source]; + } else if (!this.dict[x.source] && this.dict[x.target]) { + this.dict[x.source] = this.dict[x.target]; + } else if (!this.dict[x.source] && !this.dict[x.target]) { + this.dict[x.source] = this.dict[x.target] = + this.keyGenerator.generateKey(); + } + }); + return this.dict; + } + buildNodesAndCombos(nodes: any[], edges: any[]) { + this.buildDict(edges); + const nextNodes = nodes.map((x) => ({ ...x, combo: this.dict[x.id] })); + + const combos = Object.values(this.dict).reduce((pre, cur) => { + if (pre.every((x) => x.id !== cur)) { + pre.push({ + id: cur, + data: { + label: `Combo ${cur}`, + }, + }); + } + return pre; + }, []); + + return { nodes: nextNodes, combos }; + } +}