Spaces:
Running
Running
Komalpreet Kaur commited on
feat: implement 3D knowledge graph visualization using react-force-graph-3d
Browse files- frontend/package-lock.json +1465 -729
- frontend/package.json +3 -1
- frontend/src/components/KnowledgeGraph.css +0 -11
- frontend/src/components/KnowledgeGraph.jsx +103 -550
frontend/package-lock.json
CHANGED
|
@@ -8,19 +8,21 @@
|
|
| 8 |
"name": "frontend",
|
| 9 |
"version": "0.0.0",
|
| 10 |
"dependencies": {
|
| 11 |
-
"react": "^
|
| 12 |
-
"react-dom": "^
|
|
|
|
|
|
|
| 13 |
},
|
| 14 |
"devDependencies": {
|
| 15 |
-
"@eslint/js": "^9.
|
| 16 |
-
"@types/react": "^
|
| 17 |
-
"@types/react-dom": "^
|
| 18 |
-
"@vitejs/plugin-react": "^
|
| 19 |
-
"eslint": "^9.
|
| 20 |
-
"eslint-plugin-react-hooks": "^
|
| 21 |
-
"eslint-plugin-react-refresh": "^0.
|
| 22 |
-
"globals": "^
|
| 23 |
-
"vite": "^
|
| 24 |
}
|
| 25 |
},
|
| 26 |
"node_modules/@babel/code-frame": {
|
|
@@ -156,6 +158,16 @@
|
|
| 156 |
"@babel/core": "^7.0.0"
|
| 157 |
}
|
| 158 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 159 |
"node_modules/@babel/helper-string-parser": {
|
| 160 |
"version": "7.27.1",
|
| 161 |
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
|
|
@@ -216,6 +228,47 @@
|
|
| 216 |
"node": ">=6.0.0"
|
| 217 |
}
|
| 218 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 219 |
"node_modules/@babel/template": {
|
| 220 |
"version": "7.28.6",
|
| 221 |
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
|
|
@@ -264,38 +317,446 @@
|
|
| 264 |
"node": ">=6.9.0"
|
| 265 |
}
|
| 266 |
},
|
| 267 |
-
"node_modules/@
|
| 268 |
-
"version": "
|
| 269 |
-
"resolved": "https://registry.npmjs.org/@
|
| 270 |
-
"integrity": "sha512-
|
|
|
|
|
|
|
|
|
|
| 271 |
"dev": true,
|
| 272 |
"license": "MIT",
|
| 273 |
"optional": true,
|
| 274 |
-
"
|
| 275 |
-
"
|
| 276 |
-
|
|
|
|
|
|
|
| 277 |
}
|
| 278 |
},
|
| 279 |
-
"node_modules/@
|
| 280 |
-
"version": "
|
| 281 |
-
"resolved": "https://registry.npmjs.org/@
|
| 282 |
-
"integrity": "sha512-
|
|
|
|
|
|
|
|
|
|
| 283 |
"dev": true,
|
| 284 |
"license": "MIT",
|
| 285 |
"optional": true,
|
| 286 |
-
"
|
| 287 |
-
"
|
|
|
|
|
|
|
|
|
|
| 288 |
}
|
| 289 |
},
|
| 290 |
-
"node_modules/@
|
| 291 |
-
"version": "
|
| 292 |
-
"resolved": "https://registry.npmjs.org/@
|
| 293 |
-
"integrity": "sha512-
|
|
|
|
|
|
|
|
|
|
| 294 |
"dev": true,
|
| 295 |
"license": "MIT",
|
| 296 |
"optional": true,
|
| 297 |
-
"
|
| 298 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 299 |
}
|
| 300 |
},
|
| 301 |
"node_modules/@eslint-community/eslint-utils": {
|
|
@@ -557,37 +1018,129 @@
|
|
| 557 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
| 558 |
}
|
| 559 |
},
|
| 560 |
-
"node_modules/@
|
| 561 |
-
"version": "1.
|
| 562 |
-
"resolved": "https://registry.npmjs.org/@
|
| 563 |
-
"integrity": "sha512-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 564 |
"dev": true,
|
| 565 |
"license": "MIT",
|
| 566 |
"optional": true,
|
| 567 |
-
"
|
| 568 |
-
"
|
| 569 |
-
|
| 570 |
-
"@tybys/wasm-util": "^0.10.1"
|
| 571 |
-
},
|
| 572 |
-
"funding": {
|
| 573 |
-
"type": "github",
|
| 574 |
-
"url": "https://github.com/sponsors/Brooooooklyn"
|
| 575 |
-
}
|
| 576 |
},
|
| 577 |
-
"node_modules/@
|
| 578 |
-
"version": "
|
| 579 |
-
"resolved": "https://registry.npmjs.org/@
|
| 580 |
-
"integrity": "sha512-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 581 |
"dev": true,
|
| 582 |
"license": "MIT",
|
| 583 |
-
"
|
| 584 |
-
|
| 585 |
-
|
|
|
|
| 586 |
},
|
| 587 |
-
"node_modules/@
|
| 588 |
-
"version": "
|
| 589 |
-
"resolved": "https://registry.npmjs.org/@
|
| 590 |
-
"integrity": "sha512-
|
| 591 |
"cpu": [
|
| 592 |
"arm64"
|
| 593 |
],
|
|
@@ -595,16 +1148,13 @@
|
|
| 595 |
"license": "MIT",
|
| 596 |
"optional": true,
|
| 597 |
"os": [
|
| 598 |
-
"
|
| 599 |
-
]
|
| 600 |
-
"engines": {
|
| 601 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 602 |
-
}
|
| 603 |
},
|
| 604 |
-
"node_modules/@
|
| 605 |
-
"version": "
|
| 606 |
-
"resolved": "https://registry.npmjs.org/@
|
| 607 |
-
"integrity": "sha512-
|
| 608 |
"cpu": [
|
| 609 |
"arm64"
|
| 610 |
],
|
|
@@ -612,118 +1162,97 @@
|
|
| 612 |
"license": "MIT",
|
| 613 |
"optional": true,
|
| 614 |
"os": [
|
| 615 |
-
"
|
| 616 |
-
]
|
| 617 |
-
"engines": {
|
| 618 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 619 |
-
}
|
| 620 |
},
|
| 621 |
-
"node_modules/@
|
| 622 |
-
"version": "
|
| 623 |
-
"resolved": "https://registry.npmjs.org/@
|
| 624 |
-
"integrity": "sha512-
|
| 625 |
"cpu": [
|
| 626 |
-
"
|
| 627 |
],
|
| 628 |
"dev": true,
|
| 629 |
"license": "MIT",
|
| 630 |
"optional": true,
|
| 631 |
"os": [
|
| 632 |
-
"
|
| 633 |
-
]
|
| 634 |
-
"engines": {
|
| 635 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 636 |
-
}
|
| 637 |
},
|
| 638 |
-
"node_modules/@
|
| 639 |
-
"version": "
|
| 640 |
-
"resolved": "https://registry.npmjs.org/@
|
| 641 |
-
"integrity": "sha512-
|
| 642 |
"cpu": [
|
| 643 |
-
"
|
| 644 |
],
|
| 645 |
"dev": true,
|
| 646 |
"license": "MIT",
|
| 647 |
"optional": true,
|
| 648 |
"os": [
|
| 649 |
-
"
|
| 650 |
-
]
|
| 651 |
-
"engines": {
|
| 652 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 653 |
-
}
|
| 654 |
},
|
| 655 |
-
"node_modules/@
|
| 656 |
-
"version": "
|
| 657 |
-
"resolved": "https://registry.npmjs.org/@
|
| 658 |
-
"integrity": "sha512-
|
| 659 |
"cpu": [
|
| 660 |
-
"
|
| 661 |
],
|
| 662 |
"dev": true,
|
| 663 |
"license": "MIT",
|
| 664 |
"optional": true,
|
| 665 |
"os": [
|
| 666 |
"linux"
|
| 667 |
-
]
|
| 668 |
-
"engines": {
|
| 669 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 670 |
-
}
|
| 671 |
},
|
| 672 |
-
"node_modules/@
|
| 673 |
-
"version": "
|
| 674 |
-
"resolved": "https://registry.npmjs.org/@
|
| 675 |
-
"integrity": "sha512-
|
| 676 |
"cpu": [
|
| 677 |
-
"
|
| 678 |
],
|
| 679 |
"dev": true,
|
| 680 |
"license": "MIT",
|
| 681 |
"optional": true,
|
| 682 |
"os": [
|
| 683 |
"linux"
|
| 684 |
-
]
|
| 685 |
-
"engines": {
|
| 686 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 687 |
-
}
|
| 688 |
},
|
| 689 |
-
"node_modules/@
|
| 690 |
-
"version": "
|
| 691 |
-
"resolved": "https://registry.npmjs.org/@
|
| 692 |
-
"integrity": "sha512-
|
| 693 |
"cpu": [
|
| 694 |
-
"
|
| 695 |
],
|
| 696 |
"dev": true,
|
| 697 |
"license": "MIT",
|
| 698 |
"optional": true,
|
| 699 |
"os": [
|
| 700 |
"linux"
|
| 701 |
-
]
|
| 702 |
-
"engines": {
|
| 703 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 704 |
-
}
|
| 705 |
},
|
| 706 |
-
"node_modules/@
|
| 707 |
-
"version": "
|
| 708 |
-
"resolved": "https://registry.npmjs.org/@
|
| 709 |
-
"integrity": "sha512-
|
| 710 |
"cpu": [
|
| 711 |
-
"
|
| 712 |
],
|
| 713 |
"dev": true,
|
| 714 |
"license": "MIT",
|
| 715 |
"optional": true,
|
| 716 |
"os": [
|
| 717 |
"linux"
|
| 718 |
-
]
|
| 719 |
-
"engines": {
|
| 720 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 721 |
-
}
|
| 722 |
},
|
| 723 |
-
"node_modules/@
|
| 724 |
-
"version": "
|
| 725 |
-
"resolved": "https://registry.npmjs.org/@
|
| 726 |
-
"integrity": "sha512-
|
| 727 |
"cpu": [
|
| 728 |
"s390x"
|
| 729 |
],
|
|
@@ -732,15 +1261,12 @@
|
|
| 732 |
"optional": true,
|
| 733 |
"os": [
|
| 734 |
"linux"
|
| 735 |
-
]
|
| 736 |
-
"engines": {
|
| 737 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 738 |
-
}
|
| 739 |
},
|
| 740 |
-
"node_modules/@
|
| 741 |
-
"version": "
|
| 742 |
-
"resolved": "https://registry.npmjs.org/@
|
| 743 |
-
"integrity": "sha512-
|
| 744 |
"cpu": [
|
| 745 |
"x64"
|
| 746 |
],
|
|
@@ -749,15 +1275,12 @@
|
|
| 749 |
"optional": true,
|
| 750 |
"os": [
|
| 751 |
"linux"
|
| 752 |
-
]
|
| 753 |
-
"engines": {
|
| 754 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 755 |
-
}
|
| 756 |
},
|
| 757 |
-
"node_modules/@
|
| 758 |
-
"version": "
|
| 759 |
-
"resolved": "https://registry.npmjs.org/@
|
| 760 |
-
"integrity": "sha512-
|
| 761 |
"cpu": [
|
| 762 |
"x64"
|
| 763 |
],
|
|
@@ -766,15 +1289,26 @@
|
|
| 766 |
"optional": true,
|
| 767 |
"os": [
|
| 768 |
"linux"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 769 |
],
|
| 770 |
-
"
|
| 771 |
-
|
| 772 |
-
|
|
|
|
|
|
|
|
|
|
| 773 |
},
|
| 774 |
-
"node_modules/@
|
| 775 |
-
"version": "
|
| 776 |
-
"resolved": "https://registry.npmjs.org/@
|
| 777 |
-
"integrity": "sha512-
|
| 778 |
"cpu": [
|
| 779 |
"arm64"
|
| 780 |
],
|
|
@@ -783,49 +1317,40 @@
|
|
| 783 |
"optional": true,
|
| 784 |
"os": [
|
| 785 |
"openharmony"
|
| 786 |
-
]
|
| 787 |
-
"engines": {
|
| 788 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 789 |
-
}
|
| 790 |
},
|
| 791 |
-
"node_modules/@
|
| 792 |
-
"version": "
|
| 793 |
-
"resolved": "https://registry.npmjs.org/@
|
| 794 |
-
"integrity": "sha512-
|
| 795 |
"cpu": [
|
| 796 |
-
"
|
| 797 |
],
|
| 798 |
"dev": true,
|
| 799 |
"license": "MIT",
|
| 800 |
"optional": true,
|
| 801 |
-
"
|
| 802 |
-
"
|
| 803 |
-
|
| 804 |
-
"engines": {
|
| 805 |
-
"node": ">=14.0.0"
|
| 806 |
-
}
|
| 807 |
},
|
| 808 |
-
"node_modules/@
|
| 809 |
-
"version": "
|
| 810 |
-
"resolved": "https://registry.npmjs.org/@
|
| 811 |
-
"integrity": "sha512-
|
| 812 |
"cpu": [
|
| 813 |
-
"
|
| 814 |
],
|
| 815 |
"dev": true,
|
| 816 |
"license": "MIT",
|
| 817 |
"optional": true,
|
| 818 |
"os": [
|
| 819 |
"win32"
|
| 820 |
-
]
|
| 821 |
-
"engines": {
|
| 822 |
-
"node": "^20.19.0 || >=22.12.0"
|
| 823 |
-
}
|
| 824 |
},
|
| 825 |
-
"node_modules/@
|
| 826 |
-
"version": "
|
| 827 |
-
"resolved": "https://registry.npmjs.org/@
|
| 828 |
-
"integrity": "sha512-
|
| 829 |
"cpu": [
|
| 830 |
"x64"
|
| 831 |
],
|
|
@@ -834,27 +1359,71 @@
|
|
| 834 |
"optional": true,
|
| 835 |
"os": [
|
| 836 |
"win32"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 837 |
],
|
| 838 |
-
"
|
| 839 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 840 |
}
|
| 841 |
},
|
| 842 |
-
"node_modules/@
|
| 843 |
-
"version": "
|
| 844 |
-
"resolved": "https://registry.npmjs.org/@
|
| 845 |
-
"integrity": "sha512-
|
| 846 |
"dev": true,
|
| 847 |
-
"license": "MIT"
|
|
|
|
|
|
|
|
|
|
| 848 |
},
|
| 849 |
-
"node_modules/@
|
| 850 |
-
"version": "
|
| 851 |
-
"resolved": "https://registry.npmjs.org/@
|
| 852 |
-
"integrity": "sha512-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 853 |
"dev": true,
|
| 854 |
"license": "MIT",
|
| 855 |
-
"optional": true,
|
| 856 |
"dependencies": {
|
| 857 |
-
"
|
| 858 |
}
|
| 859 |
},
|
| 860 |
"node_modules/@types/estree": {
|
|
@@ -871,51 +1440,79 @@
|
|
| 871 |
"dev": true,
|
| 872 |
"license": "MIT"
|
| 873 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 874 |
"node_modules/@types/react": {
|
| 875 |
-
"version": "
|
| 876 |
-
"resolved": "https://registry.npmjs.org/@types/react/-/react-
|
| 877 |
-
"integrity": "sha512-
|
| 878 |
"dev": true,
|
| 879 |
"license": "MIT",
|
| 880 |
"peer": true,
|
| 881 |
"dependencies": {
|
|
|
|
| 882 |
"csstype": "^3.2.2"
|
| 883 |
}
|
| 884 |
},
|
| 885 |
"node_modules/@types/react-dom": {
|
| 886 |
-
"version": "
|
| 887 |
-
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-
|
| 888 |
-
"integrity": "sha512-
|
| 889 |
"dev": true,
|
| 890 |
"license": "MIT",
|
| 891 |
"peerDependencies": {
|
| 892 |
-
"@types/react": "^
|
| 893 |
}
|
| 894 |
},
|
| 895 |
"node_modules/@vitejs/plugin-react": {
|
| 896 |
-
"version": "
|
| 897 |
-
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-
|
| 898 |
-
"integrity": "sha512-
|
| 899 |
"dev": true,
|
| 900 |
"license": "MIT",
|
| 901 |
"dependencies": {
|
| 902 |
-
"@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 903 |
},
|
| 904 |
"engines": {
|
| 905 |
-
"node": "^
|
| 906 |
},
|
| 907 |
"peerDependencies": {
|
| 908 |
-
"
|
| 909 |
-
|
| 910 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 911 |
},
|
| 912 |
-
"
|
| 913 |
-
"
|
| 914 |
-
|
| 915 |
-
|
| 916 |
-
|
| 917 |
-
|
| 918 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 919 |
}
|
| 920 |
},
|
| 921 |
"node_modules/acorn": {
|
|
@@ -1096,62 +1693,233 @@
|
|
| 1096 |
"url": "https://github.com/chalk/chalk?sponsor=1"
|
| 1097 |
}
|
| 1098 |
},
|
| 1099 |
-
"node_modules/color-convert": {
|
| 1100 |
-
"version": "2.0.1",
|
| 1101 |
-
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
| 1102 |
-
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
| 1103 |
-
"dev": true,
|
| 1104 |
-
"license": "MIT",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1105 |
"dependencies": {
|
| 1106 |
-
"
|
| 1107 |
},
|
| 1108 |
"engines": {
|
| 1109 |
-
"node": ">=
|
| 1110 |
}
|
| 1111 |
},
|
| 1112 |
-
"node_modules/
|
| 1113 |
-
"version": "
|
| 1114 |
-
"resolved": "https://registry.npmjs.org/
|
| 1115 |
-
"integrity": "sha512-
|
| 1116 |
-
"
|
| 1117 |
-
"
|
| 1118 |
-
|
| 1119 |
-
|
| 1120 |
-
"version": "0.0.1",
|
| 1121 |
-
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
| 1122 |
-
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
|
| 1123 |
-
"dev": true,
|
| 1124 |
-
"license": "MIT"
|
| 1125 |
-
},
|
| 1126 |
-
"node_modules/convert-source-map": {
|
| 1127 |
-
"version": "2.0.0",
|
| 1128 |
-
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
|
| 1129 |
-
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
| 1130 |
-
"dev": true,
|
| 1131 |
-
"license": "MIT"
|
| 1132 |
},
|
| 1133 |
-
"node_modules/
|
| 1134 |
-
"version": "
|
| 1135 |
-
"resolved": "https://registry.npmjs.org/
|
| 1136 |
-
"integrity": "sha512-
|
| 1137 |
-
"dev": true,
|
| 1138 |
"license": "MIT",
|
| 1139 |
"dependencies": {
|
| 1140 |
-
"
|
| 1141 |
-
"shebang-command": "^2.0.0",
|
| 1142 |
-
"which": "^2.0.1"
|
| 1143 |
},
|
| 1144 |
"engines": {
|
| 1145 |
-
"node": ">=
|
| 1146 |
}
|
| 1147 |
},
|
| 1148 |
-
"node_modules/csstype": {
|
| 1149 |
-
"version": "3.2.3",
|
| 1150 |
-
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
|
| 1151 |
-
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
|
| 1152 |
-
"dev": true,
|
| 1153 |
-
"license": "MIT"
|
| 1154 |
-
},
|
| 1155 |
"node_modules/debug": {
|
| 1156 |
"version": "4.4.3",
|
| 1157 |
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
|
|
@@ -1177,16 +1945,6 @@
|
|
| 1177 |
"dev": true,
|
| 1178 |
"license": "MIT"
|
| 1179 |
},
|
| 1180 |
-
"node_modules/detect-libc": {
|
| 1181 |
-
"version": "2.1.2",
|
| 1182 |
-
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
|
| 1183 |
-
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
|
| 1184 |
-
"dev": true,
|
| 1185 |
-
"license": "Apache-2.0",
|
| 1186 |
-
"engines": {
|
| 1187 |
-
"node": ">=8"
|
| 1188 |
-
}
|
| 1189 |
-
},
|
| 1190 |
"node_modules/electron-to-chromium": {
|
| 1191 |
"version": "1.5.321",
|
| 1192 |
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz",
|
|
@@ -1194,6 +1952,48 @@
|
|
| 1194 |
"dev": true,
|
| 1195 |
"license": "ISC"
|
| 1196 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1197 |
"node_modules/escalade": {
|
| 1198 |
"version": "3.2.0",
|
| 1199 |
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
|
@@ -1279,33 +2079,26 @@
|
|
| 1279 |
}
|
| 1280 |
},
|
| 1281 |
"node_modules/eslint-plugin-react-hooks": {
|
| 1282 |
-
"version": "
|
| 1283 |
-
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-
|
| 1284 |
-
"integrity": "sha512-
|
| 1285 |
"dev": true,
|
| 1286 |
"license": "MIT",
|
| 1287 |
-
"dependencies": {
|
| 1288 |
-
"@babel/core": "^7.24.4",
|
| 1289 |
-
"@babel/parser": "^7.24.4",
|
| 1290 |
-
"hermes-parser": "^0.25.1",
|
| 1291 |
-
"zod": "^3.25.0 || ^4.0.0",
|
| 1292 |
-
"zod-validation-error": "^3.5.0 || ^4.0.0"
|
| 1293 |
-
},
|
| 1294 |
"engines": {
|
| 1295 |
-
"node": ">=
|
| 1296 |
},
|
| 1297 |
"peerDependencies": {
|
| 1298 |
"eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
|
| 1299 |
}
|
| 1300 |
},
|
| 1301 |
"node_modules/eslint-plugin-react-refresh": {
|
| 1302 |
-
"version": "0.
|
| 1303 |
-
"resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.
|
| 1304 |
-
"integrity": "sha512-
|
| 1305 |
"dev": true,
|
| 1306 |
"license": "MIT",
|
| 1307 |
"peerDependencies": {
|
| 1308 |
-
"eslint": "
|
| 1309 |
}
|
| 1310 |
},
|
| 1311 |
"node_modules/eslint-scope": {
|
|
@@ -1492,6 +2285,20 @@
|
|
| 1492 |
"dev": true,
|
| 1493 |
"license": "ISC"
|
| 1494 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1495 |
"node_modules/fsevents": {
|
| 1496 |
"version": "2.3.3",
|
| 1497 |
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
|
@@ -1531,9 +2338,9 @@
|
|
| 1531 |
}
|
| 1532 |
},
|
| 1533 |
"node_modules/globals": {
|
| 1534 |
-
"version": "
|
| 1535 |
-
"resolved": "https://registry.npmjs.org/globals/-/globals-
|
| 1536 |
-
"integrity": "sha512-
|
| 1537 |
"dev": true,
|
| 1538 |
"license": "MIT",
|
| 1539 |
"engines": {
|
|
@@ -1553,23 +2360,6 @@
|
|
| 1553 |
"node": ">=8"
|
| 1554 |
}
|
| 1555 |
},
|
| 1556 |
-
"node_modules/hermes-estree": {
|
| 1557 |
-
"version": "0.25.1",
|
| 1558 |
-
"resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz",
|
| 1559 |
-
"integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==",
|
| 1560 |
-
"dev": true,
|
| 1561 |
-
"license": "MIT"
|
| 1562 |
-
},
|
| 1563 |
-
"node_modules/hermes-parser": {
|
| 1564 |
-
"version": "0.25.1",
|
| 1565 |
-
"resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz",
|
| 1566 |
-
"integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==",
|
| 1567 |
-
"dev": true,
|
| 1568 |
-
"license": "MIT",
|
| 1569 |
-
"dependencies": {
|
| 1570 |
-
"hermes-estree": "0.25.1"
|
| 1571 |
-
}
|
| 1572 |
-
},
|
| 1573 |
"node_modules/ignore": {
|
| 1574 |
"version": "5.3.2",
|
| 1575 |
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
|
@@ -1607,6 +2397,15 @@
|
|
| 1607 |
"node": ">=0.8.19"
|
| 1608 |
}
|
| 1609 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1610 |
"node_modules/is-extglob": {
|
| 1611 |
"version": "2.1.1",
|
| 1612 |
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
|
@@ -1637,11 +2436,19 @@
|
|
| 1637 |
"dev": true,
|
| 1638 |
"license": "ISC"
|
| 1639 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1640 |
"node_modules/js-tokens": {
|
| 1641 |
"version": "4.0.0",
|
| 1642 |
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
| 1643 |
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
|
| 1644 |
-
"dev": true,
|
| 1645 |
"license": "MIT"
|
| 1646 |
},
|
| 1647 |
"node_modules/js-yaml": {
|
|
@@ -1649,344 +2456,95 @@
|
|
| 1649 |
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
|
| 1650 |
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
|
| 1651 |
"dev": true,
|
| 1652 |
-
"license": "MIT",
|
| 1653 |
-
"dependencies": {
|
| 1654 |
-
"argparse": "^2.0.1"
|
| 1655 |
-
},
|
| 1656 |
-
"bin": {
|
| 1657 |
-
"js-yaml": "bin/js-yaml.js"
|
| 1658 |
-
}
|
| 1659 |
-
},
|
| 1660 |
-
"node_modules/jsesc": {
|
| 1661 |
-
"version": "3.1.0",
|
| 1662 |
-
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
|
| 1663 |
-
"integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
|
| 1664 |
-
"dev": true,
|
| 1665 |
-
"license": "MIT",
|
| 1666 |
-
"bin": {
|
| 1667 |
-
"jsesc": "bin/jsesc"
|
| 1668 |
-
},
|
| 1669 |
-
"engines": {
|
| 1670 |
-
"node": ">=6"
|
| 1671 |
-
}
|
| 1672 |
-
},
|
| 1673 |
-
"node_modules/json-buffer": {
|
| 1674 |
-
"version": "3.0.1",
|
| 1675 |
-
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
|
| 1676 |
-
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
|
| 1677 |
-
"dev": true,
|
| 1678 |
-
"license": "MIT"
|
| 1679 |
-
},
|
| 1680 |
-
"node_modules/json-schema-traverse": {
|
| 1681 |
-
"version": "0.4.1",
|
| 1682 |
-
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
| 1683 |
-
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
| 1684 |
-
"dev": true,
|
| 1685 |
-
"license": "MIT"
|
| 1686 |
-
},
|
| 1687 |
-
"node_modules/json-stable-stringify-without-jsonify": {
|
| 1688 |
-
"version": "1.0.1",
|
| 1689 |
-
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
|
| 1690 |
-
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
|
| 1691 |
-
"dev": true,
|
| 1692 |
-
"license": "MIT"
|
| 1693 |
-
},
|
| 1694 |
-
"node_modules/json5": {
|
| 1695 |
-
"version": "2.2.3",
|
| 1696 |
-
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
| 1697 |
-
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
|
| 1698 |
-
"dev": true,
|
| 1699 |
-
"license": "MIT",
|
| 1700 |
-
"bin": {
|
| 1701 |
-
"json5": "lib/cli.js"
|
| 1702 |
-
},
|
| 1703 |
-
"engines": {
|
| 1704 |
-
"node": ">=6"
|
| 1705 |
-
}
|
| 1706 |
-
},
|
| 1707 |
-
"node_modules/keyv": {
|
| 1708 |
-
"version": "4.5.4",
|
| 1709 |
-
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
|
| 1710 |
-
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
|
| 1711 |
-
"dev": true,
|
| 1712 |
-
"license": "MIT",
|
| 1713 |
-
"dependencies": {
|
| 1714 |
-
"json-buffer": "3.0.1"
|
| 1715 |
-
}
|
| 1716 |
-
},
|
| 1717 |
-
"node_modules/levn": {
|
| 1718 |
-
"version": "0.4.1",
|
| 1719 |
-
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
|
| 1720 |
-
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
|
| 1721 |
-
"dev": true,
|
| 1722 |
-
"license": "MIT",
|
| 1723 |
-
"dependencies": {
|
| 1724 |
-
"prelude-ls": "^1.2.1",
|
| 1725 |
-
"type-check": "~0.4.0"
|
| 1726 |
-
},
|
| 1727 |
-
"engines": {
|
| 1728 |
-
"node": ">= 0.8.0"
|
| 1729 |
-
}
|
| 1730 |
-
},
|
| 1731 |
-
"node_modules/lightningcss": {
|
| 1732 |
-
"version": "1.32.0",
|
| 1733 |
-
"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
|
| 1734 |
-
"integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
|
| 1735 |
-
"dev": true,
|
| 1736 |
-
"license": "MPL-2.0",
|
| 1737 |
-
"dependencies": {
|
| 1738 |
-
"detect-libc": "^2.0.3"
|
| 1739 |
-
},
|
| 1740 |
-
"engines": {
|
| 1741 |
-
"node": ">= 12.0.0"
|
| 1742 |
-
},
|
| 1743 |
-
"funding": {
|
| 1744 |
-
"type": "opencollective",
|
| 1745 |
-
"url": "https://opencollective.com/parcel"
|
| 1746 |
-
},
|
| 1747 |
-
"optionalDependencies": {
|
| 1748 |
-
"lightningcss-android-arm64": "1.32.0",
|
| 1749 |
-
"lightningcss-darwin-arm64": "1.32.0",
|
| 1750 |
-
"lightningcss-darwin-x64": "1.32.0",
|
| 1751 |
-
"lightningcss-freebsd-x64": "1.32.0",
|
| 1752 |
-
"lightningcss-linux-arm-gnueabihf": "1.32.0",
|
| 1753 |
-
"lightningcss-linux-arm64-gnu": "1.32.0",
|
| 1754 |
-
"lightningcss-linux-arm64-musl": "1.32.0",
|
| 1755 |
-
"lightningcss-linux-x64-gnu": "1.32.0",
|
| 1756 |
-
"lightningcss-linux-x64-musl": "1.32.0",
|
| 1757 |
-
"lightningcss-win32-arm64-msvc": "1.32.0",
|
| 1758 |
-
"lightningcss-win32-x64-msvc": "1.32.0"
|
| 1759 |
-
}
|
| 1760 |
-
},
|
| 1761 |
-
"node_modules/lightningcss-android-arm64": {
|
| 1762 |
-
"version": "1.32.0",
|
| 1763 |
-
"resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
|
| 1764 |
-
"integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
|
| 1765 |
-
"cpu": [
|
| 1766 |
-
"arm64"
|
| 1767 |
-
],
|
| 1768 |
-
"dev": true,
|
| 1769 |
-
"license": "MPL-2.0",
|
| 1770 |
-
"optional": true,
|
| 1771 |
-
"os": [
|
| 1772 |
-
"android"
|
| 1773 |
-
],
|
| 1774 |
-
"engines": {
|
| 1775 |
-
"node": ">= 12.0.0"
|
| 1776 |
-
},
|
| 1777 |
-
"funding": {
|
| 1778 |
-
"type": "opencollective",
|
| 1779 |
-
"url": "https://opencollective.com/parcel"
|
| 1780 |
-
}
|
| 1781 |
-
},
|
| 1782 |
-
"node_modules/lightningcss-darwin-arm64": {
|
| 1783 |
-
"version": "1.32.0",
|
| 1784 |
-
"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
|
| 1785 |
-
"integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
|
| 1786 |
-
"cpu": [
|
| 1787 |
-
"arm64"
|
| 1788 |
-
],
|
| 1789 |
-
"dev": true,
|
| 1790 |
-
"license": "MPL-2.0",
|
| 1791 |
-
"optional": true,
|
| 1792 |
-
"os": [
|
| 1793 |
-
"darwin"
|
| 1794 |
-
],
|
| 1795 |
-
"engines": {
|
| 1796 |
-
"node": ">= 12.0.0"
|
| 1797 |
-
},
|
| 1798 |
-
"funding": {
|
| 1799 |
-
"type": "opencollective",
|
| 1800 |
-
"url": "https://opencollective.com/parcel"
|
| 1801 |
-
}
|
| 1802 |
-
},
|
| 1803 |
-
"node_modules/lightningcss-darwin-x64": {
|
| 1804 |
-
"version": "1.32.0",
|
| 1805 |
-
"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
|
| 1806 |
-
"integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
|
| 1807 |
-
"cpu": [
|
| 1808 |
-
"x64"
|
| 1809 |
-
],
|
| 1810 |
-
"dev": true,
|
| 1811 |
-
"license": "MPL-2.0",
|
| 1812 |
-
"optional": true,
|
| 1813 |
-
"os": [
|
| 1814 |
-
"darwin"
|
| 1815 |
-
],
|
| 1816 |
-
"engines": {
|
| 1817 |
-
"node": ">= 12.0.0"
|
| 1818 |
-
},
|
| 1819 |
-
"funding": {
|
| 1820 |
-
"type": "opencollective",
|
| 1821 |
-
"url": "https://opencollective.com/parcel"
|
| 1822 |
-
}
|
| 1823 |
-
},
|
| 1824 |
-
"node_modules/lightningcss-freebsd-x64": {
|
| 1825 |
-
"version": "1.32.0",
|
| 1826 |
-
"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
|
| 1827 |
-
"integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
|
| 1828 |
-
"cpu": [
|
| 1829 |
-
"x64"
|
| 1830 |
-
],
|
| 1831 |
-
"dev": true,
|
| 1832 |
-
"license": "MPL-2.0",
|
| 1833 |
-
"optional": true,
|
| 1834 |
-
"os": [
|
| 1835 |
-
"freebsd"
|
| 1836 |
-
],
|
| 1837 |
-
"engines": {
|
| 1838 |
-
"node": ">= 12.0.0"
|
| 1839 |
-
},
|
| 1840 |
-
"funding": {
|
| 1841 |
-
"type": "opencollective",
|
| 1842 |
-
"url": "https://opencollective.com/parcel"
|
| 1843 |
-
}
|
| 1844 |
-
},
|
| 1845 |
-
"node_modules/lightningcss-linux-arm-gnueabihf": {
|
| 1846 |
-
"version": "1.32.0",
|
| 1847 |
-
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
|
| 1848 |
-
"integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
|
| 1849 |
-
"cpu": [
|
| 1850 |
-
"arm"
|
| 1851 |
-
],
|
| 1852 |
-
"dev": true,
|
| 1853 |
-
"license": "MPL-2.0",
|
| 1854 |
-
"optional": true,
|
| 1855 |
-
"os": [
|
| 1856 |
-
"linux"
|
| 1857 |
-
],
|
| 1858 |
-
"engines": {
|
| 1859 |
-
"node": ">= 12.0.0"
|
| 1860 |
},
|
| 1861 |
-
"
|
| 1862 |
-
"
|
| 1863 |
-
"url": "https://opencollective.com/parcel"
|
| 1864 |
}
|
| 1865 |
},
|
| 1866 |
-
"node_modules/
|
| 1867 |
-
"version": "1.
|
| 1868 |
-
"resolved": "https://registry.npmjs.org/
|
| 1869 |
-
"integrity": "sha512-
|
| 1870 |
-
"cpu": [
|
| 1871 |
-
"arm64"
|
| 1872 |
-
],
|
| 1873 |
"dev": true,
|
| 1874 |
-
"license": "
|
| 1875 |
-
"
|
| 1876 |
-
|
| 1877 |
-
"linux"
|
| 1878 |
-
],
|
| 1879 |
-
"engines": {
|
| 1880 |
-
"node": ">= 12.0.0"
|
| 1881 |
},
|
| 1882 |
-
"
|
| 1883 |
-
"
|
| 1884 |
-
"url": "https://opencollective.com/parcel"
|
| 1885 |
}
|
| 1886 |
},
|
| 1887 |
-
"node_modules/
|
| 1888 |
-
"version": "
|
| 1889 |
-
"resolved": "https://registry.npmjs.org/
|
| 1890 |
-
"integrity": "sha512-
|
| 1891 |
-
"cpu": [
|
| 1892 |
-
"arm64"
|
| 1893 |
-
],
|
| 1894 |
"dev": true,
|
| 1895 |
-
"license": "
|
| 1896 |
-
"optional": true,
|
| 1897 |
-
"os": [
|
| 1898 |
-
"linux"
|
| 1899 |
-
],
|
| 1900 |
-
"engines": {
|
| 1901 |
-
"node": ">= 12.0.0"
|
| 1902 |
-
},
|
| 1903 |
-
"funding": {
|
| 1904 |
-
"type": "opencollective",
|
| 1905 |
-
"url": "https://opencollective.com/parcel"
|
| 1906 |
-
}
|
| 1907 |
},
|
| 1908 |
-
"node_modules/
|
| 1909 |
-
"version": "
|
| 1910 |
-
"resolved": "https://registry.npmjs.org/
|
| 1911 |
-
"integrity": "sha512-
|
| 1912 |
-
"cpu": [
|
| 1913 |
-
"x64"
|
| 1914 |
-
],
|
| 1915 |
"dev": true,
|
| 1916 |
-
"license": "
|
| 1917 |
-
"optional": true,
|
| 1918 |
-
"os": [
|
| 1919 |
-
"linux"
|
| 1920 |
-
],
|
| 1921 |
-
"engines": {
|
| 1922 |
-
"node": ">= 12.0.0"
|
| 1923 |
-
},
|
| 1924 |
-
"funding": {
|
| 1925 |
-
"type": "opencollective",
|
| 1926 |
-
"url": "https://opencollective.com/parcel"
|
| 1927 |
-
}
|
| 1928 |
},
|
| 1929 |
-
"node_modules/
|
| 1930 |
-
"version": "1.
|
| 1931 |
-
"resolved": "https://registry.npmjs.org/
|
| 1932 |
-
"integrity": "sha512-
|
| 1933 |
-
"cpu": [
|
| 1934 |
-
"x64"
|
| 1935 |
-
],
|
| 1936 |
"dev": true,
|
| 1937 |
-
"license": "
|
| 1938 |
-
|
| 1939 |
-
|
| 1940 |
-
|
| 1941 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1942 |
"engines": {
|
| 1943 |
-
"node": ">=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1944 |
},
|
| 1945 |
-
"
|
| 1946 |
-
"
|
| 1947 |
-
"url": "https://opencollective.com/parcel"
|
| 1948 |
}
|
| 1949 |
},
|
| 1950 |
-
"node_modules/
|
| 1951 |
-
"version": "
|
| 1952 |
-
"resolved": "https://registry.npmjs.org/
|
| 1953 |
-
"integrity": "sha512-
|
| 1954 |
-
"cpu": [
|
| 1955 |
-
"arm64"
|
| 1956 |
-
],
|
| 1957 |
"dev": true,
|
| 1958 |
-
"license": "
|
| 1959 |
-
"
|
| 1960 |
-
|
| 1961 |
-
"win32"
|
| 1962 |
-
],
|
| 1963 |
-
"engines": {
|
| 1964 |
-
"node": ">= 12.0.0"
|
| 1965 |
-
},
|
| 1966 |
-
"funding": {
|
| 1967 |
-
"type": "opencollective",
|
| 1968 |
-
"url": "https://opencollective.com/parcel"
|
| 1969 |
}
|
| 1970 |
},
|
| 1971 |
-
"node_modules/
|
| 1972 |
-
"version": "
|
| 1973 |
-
"resolved": "https://registry.npmjs.org/
|
| 1974 |
-
"integrity": "sha512-
|
| 1975 |
-
"cpu": [
|
| 1976 |
-
"x64"
|
| 1977 |
-
],
|
| 1978 |
"dev": true,
|
| 1979 |
-
"license": "
|
| 1980 |
-
"
|
| 1981 |
-
|
| 1982 |
-
"
|
| 1983 |
-
],
|
| 1984 |
-
"engines": {
|
| 1985 |
-
"node": ">= 12.0.0"
|
| 1986 |
},
|
| 1987 |
-
"
|
| 1988 |
-
"
|
| 1989 |
-
"url": "https://opencollective.com/parcel"
|
| 1990 |
}
|
| 1991 |
},
|
| 1992 |
"node_modules/locate-path": {
|
|
@@ -2005,6 +2563,12 @@
|
|
| 2005 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 2006 |
}
|
| 2007 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2008 |
"node_modules/lodash.merge": {
|
| 2009 |
"version": "4.6.2",
|
| 2010 |
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
|
@@ -2012,6 +2576,18 @@
|
|
| 2012 |
"dev": true,
|
| 2013 |
"license": "MIT"
|
| 2014 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2015 |
"node_modules/lru-cache": {
|
| 2016 |
"version": "5.1.1",
|
| 2017 |
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
|
@@ -2068,6 +2644,44 @@
|
|
| 2068 |
"dev": true,
|
| 2069 |
"license": "MIT"
|
| 2070 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2071 |
"node_modules/node-releases": {
|
| 2072 |
"version": "2.0.36",
|
| 2073 |
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
|
|
@@ -2075,6 +2689,15 @@
|
|
| 2075 |
"dev": true,
|
| 2076 |
"license": "MIT"
|
| 2077 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2078 |
"node_modules/optionator": {
|
| 2079 |
"version": "0.9.4",
|
| 2080 |
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
|
|
@@ -2166,9 +2789,9 @@
|
|
| 2166 |
"license": "ISC"
|
| 2167 |
},
|
| 2168 |
"node_modules/picomatch": {
|
| 2169 |
-
"version": "4.0.
|
| 2170 |
-
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.
|
| 2171 |
-
"integrity": "sha512-
|
| 2172 |
"dev": true,
|
| 2173 |
"license": "MIT",
|
| 2174 |
"peer": true,
|
|
@@ -2179,10 +2802,22 @@
|
|
| 2179 |
"url": "https://github.com/sponsors/jonschlinkert"
|
| 2180 |
}
|
| 2181 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2182 |
"node_modules/postcss": {
|
| 2183 |
-
"version": "8.5.
|
| 2184 |
-
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.
|
| 2185 |
-
"integrity": "sha512-
|
| 2186 |
"dev": true,
|
| 2187 |
"funding": [
|
| 2188 |
{
|
|
@@ -2208,6 +2843,16 @@
|
|
| 2208 |
"node": "^10 || ^12 || >=14"
|
| 2209 |
}
|
| 2210 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2211 |
"node_modules/prelude-ls": {
|
| 2212 |
"version": "1.2.1",
|
| 2213 |
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
|
|
@@ -2218,6 +2863,17 @@
|
|
| 2218 |
"node": ">= 0.8.0"
|
| 2219 |
}
|
| 2220 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2221 |
"node_modules/punycode": {
|
| 2222 |
"version": "2.3.1",
|
| 2223 |
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
|
@@ -2229,25 +2885,77 @@
|
|
| 2229 |
}
|
| 2230 |
},
|
| 2231 |
"node_modules/react": {
|
| 2232 |
-
"version": "
|
| 2233 |
-
"resolved": "https://registry.npmjs.org/react/-/react-
|
| 2234 |
-
"integrity": "sha512-
|
| 2235 |
"license": "MIT",
|
| 2236 |
"peer": true,
|
|
|
|
|
|
|
|
|
|
| 2237 |
"engines": {
|
| 2238 |
"node": ">=0.10.0"
|
| 2239 |
}
|
| 2240 |
},
|
| 2241 |
"node_modules/react-dom": {
|
| 2242 |
-
"version": "
|
| 2243 |
-
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-
|
| 2244 |
-
"integrity": "sha512-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2245 |
"license": "MIT",
|
| 2246 |
"dependencies": {
|
| 2247 |
-
"
|
|
|
|
|
|
|
|
|
|
| 2248 |
},
|
| 2249 |
"peerDependencies": {
|
| 2250 |
-
"react": "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2251 |
}
|
| 2252 |
},
|
| 2253 |
"node_modules/resolve-from": {
|
|
@@ -2260,52 +2968,59 @@
|
|
| 2260 |
"node": ">=4"
|
| 2261 |
}
|
| 2262 |
},
|
| 2263 |
-
"node_modules/
|
| 2264 |
-
"version": "
|
| 2265 |
-
"resolved": "https://registry.npmjs.org/
|
| 2266 |
-
"integrity": "sha512-
|
| 2267 |
"dev": true,
|
| 2268 |
"license": "MIT",
|
| 2269 |
"dependencies": {
|
| 2270 |
-
"@
|
| 2271 |
-
"@rolldown/pluginutils": "1.0.0-rc.10"
|
| 2272 |
},
|
| 2273 |
"bin": {
|
| 2274 |
-
"
|
| 2275 |
},
|
| 2276 |
"engines": {
|
| 2277 |
-
"node": "
|
|
|
|
| 2278 |
},
|
| 2279 |
"optionalDependencies": {
|
| 2280 |
-
"@
|
| 2281 |
-
"@
|
| 2282 |
-
"@
|
| 2283 |
-
"@
|
| 2284 |
-
"@
|
| 2285 |
-
"@
|
| 2286 |
-
"@
|
| 2287 |
-
"@
|
| 2288 |
-
"@
|
| 2289 |
-
"@
|
| 2290 |
-
"@
|
| 2291 |
-
"@
|
| 2292 |
-
"@
|
| 2293 |
-
"@
|
| 2294 |
-
"@
|
| 2295 |
-
|
| 2296 |
-
|
| 2297 |
-
|
| 2298 |
-
|
| 2299 |
-
|
| 2300 |
-
|
| 2301 |
-
|
| 2302 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2303 |
},
|
| 2304 |
"node_modules/scheduler": {
|
| 2305 |
-
"version": "0.
|
| 2306 |
-
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.
|
| 2307 |
-
"integrity": "sha512-
|
| 2308 |
-
"license": "MIT"
|
|
|
|
|
|
|
|
|
|
| 2309 |
},
|
| 2310 |
"node_modules/semver": {
|
| 2311 |
"version": "6.3.1",
|
|
@@ -2376,15 +3091,71 @@
|
|
| 2376 |
"node": ">=8"
|
| 2377 |
}
|
| 2378 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2379 |
"node_modules/tinyglobby": {
|
| 2380 |
-
"version": "0.2.
|
| 2381 |
-
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.
|
| 2382 |
-
"integrity": "sha512-
|
| 2383 |
"dev": true,
|
| 2384 |
"license": "MIT",
|
| 2385 |
"dependencies": {
|
| 2386 |
"fdir": "^6.5.0",
|
| 2387 |
-
"picomatch": "^4.0.
|
| 2388 |
},
|
| 2389 |
"engines": {
|
| 2390 |
"node": ">=12.0.0"
|
|
@@ -2393,14 +3164,6 @@
|
|
| 2393 |
"url": "https://github.com/sponsors/SuperchupuDev"
|
| 2394 |
}
|
| 2395 |
},
|
| 2396 |
-
"node_modules/tslib": {
|
| 2397 |
-
"version": "2.8.1",
|
| 2398 |
-
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
| 2399 |
-
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
| 2400 |
-
"dev": true,
|
| 2401 |
-
"license": "0BSD",
|
| 2402 |
-
"optional": true
|
| 2403 |
-
},
|
| 2404 |
"node_modules/type-check": {
|
| 2405 |
"version": "0.4.0",
|
| 2406 |
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
|
|
@@ -2456,24 +3219,25 @@
|
|
| 2456 |
}
|
| 2457 |
},
|
| 2458 |
"node_modules/vite": {
|
| 2459 |
-
"version": "
|
| 2460 |
-
"resolved": "https://registry.npmjs.org/vite/-/vite-
|
| 2461 |
-
"integrity": "sha512-
|
| 2462 |
"dev": true,
|
| 2463 |
"license": "MIT",
|
| 2464 |
"peer": true,
|
| 2465 |
"dependencies": {
|
| 2466 |
-
"
|
| 2467 |
-
"
|
| 2468 |
-
"
|
| 2469 |
-
"
|
| 2470 |
-
"
|
|
|
|
| 2471 |
},
|
| 2472 |
"bin": {
|
| 2473 |
"vite": "bin/vite.js"
|
| 2474 |
},
|
| 2475 |
"engines": {
|
| 2476 |
-
"node": "^20.
|
| 2477 |
},
|
| 2478 |
"funding": {
|
| 2479 |
"url": "https://github.com/vitejs/vite?sponsor=1"
|
|
@@ -2482,15 +3246,14 @@
|
|
| 2482 |
"fsevents": "~2.3.3"
|
| 2483 |
},
|
| 2484 |
"peerDependencies": {
|
| 2485 |
-
"@types/node": "^20.
|
| 2486 |
-
"@vitejs/devtools": "^0.1.0",
|
| 2487 |
-
"esbuild": "^0.27.0",
|
| 2488 |
"jiti": ">=1.21.0",
|
| 2489 |
-
"less": "
|
| 2490 |
-
"
|
| 2491 |
-
"sass
|
| 2492 |
-
"
|
| 2493 |
-
"
|
|
|
|
| 2494 |
"terser": "^5.16.0",
|
| 2495 |
"tsx": "^4.8.1",
|
| 2496 |
"yaml": "^2.4.2"
|
|
@@ -2499,18 +3262,15 @@
|
|
| 2499 |
"@types/node": {
|
| 2500 |
"optional": true
|
| 2501 |
},
|
| 2502 |
-
"@vitejs/devtools": {
|
| 2503 |
-
"optional": true
|
| 2504 |
-
},
|
| 2505 |
-
"esbuild": {
|
| 2506 |
-
"optional": true
|
| 2507 |
-
},
|
| 2508 |
"jiti": {
|
| 2509 |
"optional": true
|
| 2510 |
},
|
| 2511 |
"less": {
|
| 2512 |
"optional": true
|
| 2513 |
},
|
|
|
|
|
|
|
|
|
|
| 2514 |
"sass": {
|
| 2515 |
"optional": true
|
| 2516 |
},
|
|
@@ -2579,30 +3339,6 @@
|
|
| 2579 |
"funding": {
|
| 2580 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 2581 |
}
|
| 2582 |
-
},
|
| 2583 |
-
"node_modules/zod": {
|
| 2584 |
-
"version": "4.3.6",
|
| 2585 |
-
"resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz",
|
| 2586 |
-
"integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==",
|
| 2587 |
-
"dev": true,
|
| 2588 |
-
"license": "MIT",
|
| 2589 |
-
"peer": true,
|
| 2590 |
-
"funding": {
|
| 2591 |
-
"url": "https://github.com/sponsors/colinhacks"
|
| 2592 |
-
}
|
| 2593 |
-
},
|
| 2594 |
-
"node_modules/zod-validation-error": {
|
| 2595 |
-
"version": "4.0.2",
|
| 2596 |
-
"resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz",
|
| 2597 |
-
"integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==",
|
| 2598 |
-
"dev": true,
|
| 2599 |
-
"license": "MIT",
|
| 2600 |
-
"engines": {
|
| 2601 |
-
"node": ">=18.0.0"
|
| 2602 |
-
},
|
| 2603 |
-
"peerDependencies": {
|
| 2604 |
-
"zod": "^3.25.0 || ^4.0.0"
|
| 2605 |
-
}
|
| 2606 |
}
|
| 2607 |
}
|
| 2608 |
}
|
|
|
|
| 8 |
"name": "frontend",
|
| 9 |
"version": "0.0.0",
|
| 10 |
"dependencies": {
|
| 11 |
+
"react": "^18.3.1",
|
| 12 |
+
"react-dom": "^18.3.1",
|
| 13 |
+
"react-force-graph-3d": "^1.29.1",
|
| 14 |
+
"three": "^0.183.2"
|
| 15 |
},
|
| 16 |
"devDependencies": {
|
| 17 |
+
"@eslint/js": "^9.15.0",
|
| 18 |
+
"@types/react": "^18.3.12",
|
| 19 |
+
"@types/react-dom": "^18.3.1",
|
| 20 |
+
"@vitejs/plugin-react": "^4.3.4",
|
| 21 |
+
"eslint": "^9.15.0",
|
| 22 |
+
"eslint-plugin-react-hooks": "^5.0.0",
|
| 23 |
+
"eslint-plugin-react-refresh": "^0.4.14",
|
| 24 |
+
"globals": "^15.12.0",
|
| 25 |
+
"vite": "^6.0.0"
|
| 26 |
}
|
| 27 |
},
|
| 28 |
"node_modules/@babel/code-frame": {
|
|
|
|
| 158 |
"@babel/core": "^7.0.0"
|
| 159 |
}
|
| 160 |
},
|
| 161 |
+
"node_modules/@babel/helper-plugin-utils": {
|
| 162 |
+
"version": "7.28.6",
|
| 163 |
+
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
|
| 164 |
+
"integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
|
| 165 |
+
"dev": true,
|
| 166 |
+
"license": "MIT",
|
| 167 |
+
"engines": {
|
| 168 |
+
"node": ">=6.9.0"
|
| 169 |
+
}
|
| 170 |
+
},
|
| 171 |
"node_modules/@babel/helper-string-parser": {
|
| 172 |
"version": "7.27.1",
|
| 173 |
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
|
|
|
|
| 228 |
"node": ">=6.0.0"
|
| 229 |
}
|
| 230 |
},
|
| 231 |
+
"node_modules/@babel/plugin-transform-react-jsx-self": {
|
| 232 |
+
"version": "7.27.1",
|
| 233 |
+
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
|
| 234 |
+
"integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
|
| 235 |
+
"dev": true,
|
| 236 |
+
"license": "MIT",
|
| 237 |
+
"dependencies": {
|
| 238 |
+
"@babel/helper-plugin-utils": "^7.27.1"
|
| 239 |
+
},
|
| 240 |
+
"engines": {
|
| 241 |
+
"node": ">=6.9.0"
|
| 242 |
+
},
|
| 243 |
+
"peerDependencies": {
|
| 244 |
+
"@babel/core": "^7.0.0-0"
|
| 245 |
+
}
|
| 246 |
+
},
|
| 247 |
+
"node_modules/@babel/plugin-transform-react-jsx-source": {
|
| 248 |
+
"version": "7.27.1",
|
| 249 |
+
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
|
| 250 |
+
"integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
|
| 251 |
+
"dev": true,
|
| 252 |
+
"license": "MIT",
|
| 253 |
+
"dependencies": {
|
| 254 |
+
"@babel/helper-plugin-utils": "^7.27.1"
|
| 255 |
+
},
|
| 256 |
+
"engines": {
|
| 257 |
+
"node": ">=6.9.0"
|
| 258 |
+
},
|
| 259 |
+
"peerDependencies": {
|
| 260 |
+
"@babel/core": "^7.0.0-0"
|
| 261 |
+
}
|
| 262 |
+
},
|
| 263 |
+
"node_modules/@babel/runtime": {
|
| 264 |
+
"version": "7.29.2",
|
| 265 |
+
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz",
|
| 266 |
+
"integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==",
|
| 267 |
+
"license": "MIT",
|
| 268 |
+
"engines": {
|
| 269 |
+
"node": ">=6.9.0"
|
| 270 |
+
}
|
| 271 |
+
},
|
| 272 |
"node_modules/@babel/template": {
|
| 273 |
"version": "7.28.6",
|
| 274 |
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
|
|
|
|
| 317 |
"node": ">=6.9.0"
|
| 318 |
}
|
| 319 |
},
|
| 320 |
+
"node_modules/@esbuild/aix-ppc64": {
|
| 321 |
+
"version": "0.25.12",
|
| 322 |
+
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
|
| 323 |
+
"integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
|
| 324 |
+
"cpu": [
|
| 325 |
+
"ppc64"
|
| 326 |
+
],
|
| 327 |
"dev": true,
|
| 328 |
"license": "MIT",
|
| 329 |
"optional": true,
|
| 330 |
+
"os": [
|
| 331 |
+
"aix"
|
| 332 |
+
],
|
| 333 |
+
"engines": {
|
| 334 |
+
"node": ">=18"
|
| 335 |
}
|
| 336 |
},
|
| 337 |
+
"node_modules/@esbuild/android-arm": {
|
| 338 |
+
"version": "0.25.12",
|
| 339 |
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
|
| 340 |
+
"integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
|
| 341 |
+
"cpu": [
|
| 342 |
+
"arm"
|
| 343 |
+
],
|
| 344 |
"dev": true,
|
| 345 |
"license": "MIT",
|
| 346 |
"optional": true,
|
| 347 |
+
"os": [
|
| 348 |
+
"android"
|
| 349 |
+
],
|
| 350 |
+
"engines": {
|
| 351 |
+
"node": ">=18"
|
| 352 |
}
|
| 353 |
},
|
| 354 |
+
"node_modules/@esbuild/android-arm64": {
|
| 355 |
+
"version": "0.25.12",
|
| 356 |
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
|
| 357 |
+
"integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
|
| 358 |
+
"cpu": [
|
| 359 |
+
"arm64"
|
| 360 |
+
],
|
| 361 |
"dev": true,
|
| 362 |
"license": "MIT",
|
| 363 |
"optional": true,
|
| 364 |
+
"os": [
|
| 365 |
+
"android"
|
| 366 |
+
],
|
| 367 |
+
"engines": {
|
| 368 |
+
"node": ">=18"
|
| 369 |
+
}
|
| 370 |
+
},
|
| 371 |
+
"node_modules/@esbuild/android-x64": {
|
| 372 |
+
"version": "0.25.12",
|
| 373 |
+
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
|
| 374 |
+
"integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
|
| 375 |
+
"cpu": [
|
| 376 |
+
"x64"
|
| 377 |
+
],
|
| 378 |
+
"dev": true,
|
| 379 |
+
"license": "MIT",
|
| 380 |
+
"optional": true,
|
| 381 |
+
"os": [
|
| 382 |
+
"android"
|
| 383 |
+
],
|
| 384 |
+
"engines": {
|
| 385 |
+
"node": ">=18"
|
| 386 |
+
}
|
| 387 |
+
},
|
| 388 |
+
"node_modules/@esbuild/darwin-arm64": {
|
| 389 |
+
"version": "0.25.12",
|
| 390 |
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
|
| 391 |
+
"integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
|
| 392 |
+
"cpu": [
|
| 393 |
+
"arm64"
|
| 394 |
+
],
|
| 395 |
+
"dev": true,
|
| 396 |
+
"license": "MIT",
|
| 397 |
+
"optional": true,
|
| 398 |
+
"os": [
|
| 399 |
+
"darwin"
|
| 400 |
+
],
|
| 401 |
+
"engines": {
|
| 402 |
+
"node": ">=18"
|
| 403 |
+
}
|
| 404 |
+
},
|
| 405 |
+
"node_modules/@esbuild/darwin-x64": {
|
| 406 |
+
"version": "0.25.12",
|
| 407 |
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
|
| 408 |
+
"integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
|
| 409 |
+
"cpu": [
|
| 410 |
+
"x64"
|
| 411 |
+
],
|
| 412 |
+
"dev": true,
|
| 413 |
+
"license": "MIT",
|
| 414 |
+
"optional": true,
|
| 415 |
+
"os": [
|
| 416 |
+
"darwin"
|
| 417 |
+
],
|
| 418 |
+
"engines": {
|
| 419 |
+
"node": ">=18"
|
| 420 |
+
}
|
| 421 |
+
},
|
| 422 |
+
"node_modules/@esbuild/freebsd-arm64": {
|
| 423 |
+
"version": "0.25.12",
|
| 424 |
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
|
| 425 |
+
"integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
|
| 426 |
+
"cpu": [
|
| 427 |
+
"arm64"
|
| 428 |
+
],
|
| 429 |
+
"dev": true,
|
| 430 |
+
"license": "MIT",
|
| 431 |
+
"optional": true,
|
| 432 |
+
"os": [
|
| 433 |
+
"freebsd"
|
| 434 |
+
],
|
| 435 |
+
"engines": {
|
| 436 |
+
"node": ">=18"
|
| 437 |
+
}
|
| 438 |
+
},
|
| 439 |
+
"node_modules/@esbuild/freebsd-x64": {
|
| 440 |
+
"version": "0.25.12",
|
| 441 |
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
|
| 442 |
+
"integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
|
| 443 |
+
"cpu": [
|
| 444 |
+
"x64"
|
| 445 |
+
],
|
| 446 |
+
"dev": true,
|
| 447 |
+
"license": "MIT",
|
| 448 |
+
"optional": true,
|
| 449 |
+
"os": [
|
| 450 |
+
"freebsd"
|
| 451 |
+
],
|
| 452 |
+
"engines": {
|
| 453 |
+
"node": ">=18"
|
| 454 |
+
}
|
| 455 |
+
},
|
| 456 |
+
"node_modules/@esbuild/linux-arm": {
|
| 457 |
+
"version": "0.25.12",
|
| 458 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
|
| 459 |
+
"integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
|
| 460 |
+
"cpu": [
|
| 461 |
+
"arm"
|
| 462 |
+
],
|
| 463 |
+
"dev": true,
|
| 464 |
+
"license": "MIT",
|
| 465 |
+
"optional": true,
|
| 466 |
+
"os": [
|
| 467 |
+
"linux"
|
| 468 |
+
],
|
| 469 |
+
"engines": {
|
| 470 |
+
"node": ">=18"
|
| 471 |
+
}
|
| 472 |
+
},
|
| 473 |
+
"node_modules/@esbuild/linux-arm64": {
|
| 474 |
+
"version": "0.25.12",
|
| 475 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
|
| 476 |
+
"integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
|
| 477 |
+
"cpu": [
|
| 478 |
+
"arm64"
|
| 479 |
+
],
|
| 480 |
+
"dev": true,
|
| 481 |
+
"license": "MIT",
|
| 482 |
+
"optional": true,
|
| 483 |
+
"os": [
|
| 484 |
+
"linux"
|
| 485 |
+
],
|
| 486 |
+
"engines": {
|
| 487 |
+
"node": ">=18"
|
| 488 |
+
}
|
| 489 |
+
},
|
| 490 |
+
"node_modules/@esbuild/linux-ia32": {
|
| 491 |
+
"version": "0.25.12",
|
| 492 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
|
| 493 |
+
"integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
|
| 494 |
+
"cpu": [
|
| 495 |
+
"ia32"
|
| 496 |
+
],
|
| 497 |
+
"dev": true,
|
| 498 |
+
"license": "MIT",
|
| 499 |
+
"optional": true,
|
| 500 |
+
"os": [
|
| 501 |
+
"linux"
|
| 502 |
+
],
|
| 503 |
+
"engines": {
|
| 504 |
+
"node": ">=18"
|
| 505 |
+
}
|
| 506 |
+
},
|
| 507 |
+
"node_modules/@esbuild/linux-loong64": {
|
| 508 |
+
"version": "0.25.12",
|
| 509 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
|
| 510 |
+
"integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
|
| 511 |
+
"cpu": [
|
| 512 |
+
"loong64"
|
| 513 |
+
],
|
| 514 |
+
"dev": true,
|
| 515 |
+
"license": "MIT",
|
| 516 |
+
"optional": true,
|
| 517 |
+
"os": [
|
| 518 |
+
"linux"
|
| 519 |
+
],
|
| 520 |
+
"engines": {
|
| 521 |
+
"node": ">=18"
|
| 522 |
+
}
|
| 523 |
+
},
|
| 524 |
+
"node_modules/@esbuild/linux-mips64el": {
|
| 525 |
+
"version": "0.25.12",
|
| 526 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
|
| 527 |
+
"integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
|
| 528 |
+
"cpu": [
|
| 529 |
+
"mips64el"
|
| 530 |
+
],
|
| 531 |
+
"dev": true,
|
| 532 |
+
"license": "MIT",
|
| 533 |
+
"optional": true,
|
| 534 |
+
"os": [
|
| 535 |
+
"linux"
|
| 536 |
+
],
|
| 537 |
+
"engines": {
|
| 538 |
+
"node": ">=18"
|
| 539 |
+
}
|
| 540 |
+
},
|
| 541 |
+
"node_modules/@esbuild/linux-ppc64": {
|
| 542 |
+
"version": "0.25.12",
|
| 543 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
|
| 544 |
+
"integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
|
| 545 |
+
"cpu": [
|
| 546 |
+
"ppc64"
|
| 547 |
+
],
|
| 548 |
+
"dev": true,
|
| 549 |
+
"license": "MIT",
|
| 550 |
+
"optional": true,
|
| 551 |
+
"os": [
|
| 552 |
+
"linux"
|
| 553 |
+
],
|
| 554 |
+
"engines": {
|
| 555 |
+
"node": ">=18"
|
| 556 |
+
}
|
| 557 |
+
},
|
| 558 |
+
"node_modules/@esbuild/linux-riscv64": {
|
| 559 |
+
"version": "0.25.12",
|
| 560 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
|
| 561 |
+
"integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
|
| 562 |
+
"cpu": [
|
| 563 |
+
"riscv64"
|
| 564 |
+
],
|
| 565 |
+
"dev": true,
|
| 566 |
+
"license": "MIT",
|
| 567 |
+
"optional": true,
|
| 568 |
+
"os": [
|
| 569 |
+
"linux"
|
| 570 |
+
],
|
| 571 |
+
"engines": {
|
| 572 |
+
"node": ">=18"
|
| 573 |
+
}
|
| 574 |
+
},
|
| 575 |
+
"node_modules/@esbuild/linux-s390x": {
|
| 576 |
+
"version": "0.25.12",
|
| 577 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
|
| 578 |
+
"integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
|
| 579 |
+
"cpu": [
|
| 580 |
+
"s390x"
|
| 581 |
+
],
|
| 582 |
+
"dev": true,
|
| 583 |
+
"license": "MIT",
|
| 584 |
+
"optional": true,
|
| 585 |
+
"os": [
|
| 586 |
+
"linux"
|
| 587 |
+
],
|
| 588 |
+
"engines": {
|
| 589 |
+
"node": ">=18"
|
| 590 |
+
}
|
| 591 |
+
},
|
| 592 |
+
"node_modules/@esbuild/linux-x64": {
|
| 593 |
+
"version": "0.25.12",
|
| 594 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
|
| 595 |
+
"integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
|
| 596 |
+
"cpu": [
|
| 597 |
+
"x64"
|
| 598 |
+
],
|
| 599 |
+
"dev": true,
|
| 600 |
+
"license": "MIT",
|
| 601 |
+
"optional": true,
|
| 602 |
+
"os": [
|
| 603 |
+
"linux"
|
| 604 |
+
],
|
| 605 |
+
"engines": {
|
| 606 |
+
"node": ">=18"
|
| 607 |
+
}
|
| 608 |
+
},
|
| 609 |
+
"node_modules/@esbuild/netbsd-arm64": {
|
| 610 |
+
"version": "0.25.12",
|
| 611 |
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
|
| 612 |
+
"integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
|
| 613 |
+
"cpu": [
|
| 614 |
+
"arm64"
|
| 615 |
+
],
|
| 616 |
+
"dev": true,
|
| 617 |
+
"license": "MIT",
|
| 618 |
+
"optional": true,
|
| 619 |
+
"os": [
|
| 620 |
+
"netbsd"
|
| 621 |
+
],
|
| 622 |
+
"engines": {
|
| 623 |
+
"node": ">=18"
|
| 624 |
+
}
|
| 625 |
+
},
|
| 626 |
+
"node_modules/@esbuild/netbsd-x64": {
|
| 627 |
+
"version": "0.25.12",
|
| 628 |
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
|
| 629 |
+
"integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
|
| 630 |
+
"cpu": [
|
| 631 |
+
"x64"
|
| 632 |
+
],
|
| 633 |
+
"dev": true,
|
| 634 |
+
"license": "MIT",
|
| 635 |
+
"optional": true,
|
| 636 |
+
"os": [
|
| 637 |
+
"netbsd"
|
| 638 |
+
],
|
| 639 |
+
"engines": {
|
| 640 |
+
"node": ">=18"
|
| 641 |
+
}
|
| 642 |
+
},
|
| 643 |
+
"node_modules/@esbuild/openbsd-arm64": {
|
| 644 |
+
"version": "0.25.12",
|
| 645 |
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
|
| 646 |
+
"integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
|
| 647 |
+
"cpu": [
|
| 648 |
+
"arm64"
|
| 649 |
+
],
|
| 650 |
+
"dev": true,
|
| 651 |
+
"license": "MIT",
|
| 652 |
+
"optional": true,
|
| 653 |
+
"os": [
|
| 654 |
+
"openbsd"
|
| 655 |
+
],
|
| 656 |
+
"engines": {
|
| 657 |
+
"node": ">=18"
|
| 658 |
+
}
|
| 659 |
+
},
|
| 660 |
+
"node_modules/@esbuild/openbsd-x64": {
|
| 661 |
+
"version": "0.25.12",
|
| 662 |
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
|
| 663 |
+
"integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
|
| 664 |
+
"cpu": [
|
| 665 |
+
"x64"
|
| 666 |
+
],
|
| 667 |
+
"dev": true,
|
| 668 |
+
"license": "MIT",
|
| 669 |
+
"optional": true,
|
| 670 |
+
"os": [
|
| 671 |
+
"openbsd"
|
| 672 |
+
],
|
| 673 |
+
"engines": {
|
| 674 |
+
"node": ">=18"
|
| 675 |
+
}
|
| 676 |
+
},
|
| 677 |
+
"node_modules/@esbuild/openharmony-arm64": {
|
| 678 |
+
"version": "0.25.12",
|
| 679 |
+
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
|
| 680 |
+
"integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
|
| 681 |
+
"cpu": [
|
| 682 |
+
"arm64"
|
| 683 |
+
],
|
| 684 |
+
"dev": true,
|
| 685 |
+
"license": "MIT",
|
| 686 |
+
"optional": true,
|
| 687 |
+
"os": [
|
| 688 |
+
"openharmony"
|
| 689 |
+
],
|
| 690 |
+
"engines": {
|
| 691 |
+
"node": ">=18"
|
| 692 |
+
}
|
| 693 |
+
},
|
| 694 |
+
"node_modules/@esbuild/sunos-x64": {
|
| 695 |
+
"version": "0.25.12",
|
| 696 |
+
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
|
| 697 |
+
"integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
|
| 698 |
+
"cpu": [
|
| 699 |
+
"x64"
|
| 700 |
+
],
|
| 701 |
+
"dev": true,
|
| 702 |
+
"license": "MIT",
|
| 703 |
+
"optional": true,
|
| 704 |
+
"os": [
|
| 705 |
+
"sunos"
|
| 706 |
+
],
|
| 707 |
+
"engines": {
|
| 708 |
+
"node": ">=18"
|
| 709 |
+
}
|
| 710 |
+
},
|
| 711 |
+
"node_modules/@esbuild/win32-arm64": {
|
| 712 |
+
"version": "0.25.12",
|
| 713 |
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
|
| 714 |
+
"integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
|
| 715 |
+
"cpu": [
|
| 716 |
+
"arm64"
|
| 717 |
+
],
|
| 718 |
+
"dev": true,
|
| 719 |
+
"license": "MIT",
|
| 720 |
+
"optional": true,
|
| 721 |
+
"os": [
|
| 722 |
+
"win32"
|
| 723 |
+
],
|
| 724 |
+
"engines": {
|
| 725 |
+
"node": ">=18"
|
| 726 |
+
}
|
| 727 |
+
},
|
| 728 |
+
"node_modules/@esbuild/win32-ia32": {
|
| 729 |
+
"version": "0.25.12",
|
| 730 |
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
|
| 731 |
+
"integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
|
| 732 |
+
"cpu": [
|
| 733 |
+
"ia32"
|
| 734 |
+
],
|
| 735 |
+
"dev": true,
|
| 736 |
+
"license": "MIT",
|
| 737 |
+
"optional": true,
|
| 738 |
+
"os": [
|
| 739 |
+
"win32"
|
| 740 |
+
],
|
| 741 |
+
"engines": {
|
| 742 |
+
"node": ">=18"
|
| 743 |
+
}
|
| 744 |
+
},
|
| 745 |
+
"node_modules/@esbuild/win32-x64": {
|
| 746 |
+
"version": "0.25.12",
|
| 747 |
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
|
| 748 |
+
"integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
|
| 749 |
+
"cpu": [
|
| 750 |
+
"x64"
|
| 751 |
+
],
|
| 752 |
+
"dev": true,
|
| 753 |
+
"license": "MIT",
|
| 754 |
+
"optional": true,
|
| 755 |
+
"os": [
|
| 756 |
+
"win32"
|
| 757 |
+
],
|
| 758 |
+
"engines": {
|
| 759 |
+
"node": ">=18"
|
| 760 |
}
|
| 761 |
},
|
| 762 |
"node_modules/@eslint-community/eslint-utils": {
|
|
|
|
| 1018 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
| 1019 |
}
|
| 1020 |
},
|
| 1021 |
+
"node_modules/@rolldown/pluginutils": {
|
| 1022 |
+
"version": "1.0.0-beta.27",
|
| 1023 |
+
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz",
|
| 1024 |
+
"integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==",
|
| 1025 |
+
"dev": true,
|
| 1026 |
+
"license": "MIT"
|
| 1027 |
+
},
|
| 1028 |
+
"node_modules/@rollup/rollup-android-arm-eabi": {
|
| 1029 |
+
"version": "4.60.1",
|
| 1030 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz",
|
| 1031 |
+
"integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==",
|
| 1032 |
+
"cpu": [
|
| 1033 |
+
"arm"
|
| 1034 |
+
],
|
| 1035 |
"dev": true,
|
| 1036 |
"license": "MIT",
|
| 1037 |
"optional": true,
|
| 1038 |
+
"os": [
|
| 1039 |
+
"android"
|
| 1040 |
+
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1041 |
},
|
| 1042 |
+
"node_modules/@rollup/rollup-android-arm64": {
|
| 1043 |
+
"version": "4.60.1",
|
| 1044 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz",
|
| 1045 |
+
"integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==",
|
| 1046 |
+
"cpu": [
|
| 1047 |
+
"arm64"
|
| 1048 |
+
],
|
| 1049 |
+
"dev": true,
|
| 1050 |
+
"license": "MIT",
|
| 1051 |
+
"optional": true,
|
| 1052 |
+
"os": [
|
| 1053 |
+
"android"
|
| 1054 |
+
]
|
| 1055 |
+
},
|
| 1056 |
+
"node_modules/@rollup/rollup-darwin-arm64": {
|
| 1057 |
+
"version": "4.60.1",
|
| 1058 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz",
|
| 1059 |
+
"integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==",
|
| 1060 |
+
"cpu": [
|
| 1061 |
+
"arm64"
|
| 1062 |
+
],
|
| 1063 |
+
"dev": true,
|
| 1064 |
+
"license": "MIT",
|
| 1065 |
+
"optional": true,
|
| 1066 |
+
"os": [
|
| 1067 |
+
"darwin"
|
| 1068 |
+
]
|
| 1069 |
+
},
|
| 1070 |
+
"node_modules/@rollup/rollup-darwin-x64": {
|
| 1071 |
+
"version": "4.60.1",
|
| 1072 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz",
|
| 1073 |
+
"integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==",
|
| 1074 |
+
"cpu": [
|
| 1075 |
+
"x64"
|
| 1076 |
+
],
|
| 1077 |
+
"dev": true,
|
| 1078 |
+
"license": "MIT",
|
| 1079 |
+
"optional": true,
|
| 1080 |
+
"os": [
|
| 1081 |
+
"darwin"
|
| 1082 |
+
]
|
| 1083 |
+
},
|
| 1084 |
+
"node_modules/@rollup/rollup-freebsd-arm64": {
|
| 1085 |
+
"version": "4.60.1",
|
| 1086 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz",
|
| 1087 |
+
"integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==",
|
| 1088 |
+
"cpu": [
|
| 1089 |
+
"arm64"
|
| 1090 |
+
],
|
| 1091 |
+
"dev": true,
|
| 1092 |
+
"license": "MIT",
|
| 1093 |
+
"optional": true,
|
| 1094 |
+
"os": [
|
| 1095 |
+
"freebsd"
|
| 1096 |
+
]
|
| 1097 |
+
},
|
| 1098 |
+
"node_modules/@rollup/rollup-freebsd-x64": {
|
| 1099 |
+
"version": "4.60.1",
|
| 1100 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz",
|
| 1101 |
+
"integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==",
|
| 1102 |
+
"cpu": [
|
| 1103 |
+
"x64"
|
| 1104 |
+
],
|
| 1105 |
+
"dev": true,
|
| 1106 |
+
"license": "MIT",
|
| 1107 |
+
"optional": true,
|
| 1108 |
+
"os": [
|
| 1109 |
+
"freebsd"
|
| 1110 |
+
]
|
| 1111 |
+
},
|
| 1112 |
+
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
| 1113 |
+
"version": "4.60.1",
|
| 1114 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz",
|
| 1115 |
+
"integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==",
|
| 1116 |
+
"cpu": [
|
| 1117 |
+
"arm"
|
| 1118 |
+
],
|
| 1119 |
+
"dev": true,
|
| 1120 |
+
"license": "MIT",
|
| 1121 |
+
"optional": true,
|
| 1122 |
+
"os": [
|
| 1123 |
+
"linux"
|
| 1124 |
+
]
|
| 1125 |
+
},
|
| 1126 |
+
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
| 1127 |
+
"version": "4.60.1",
|
| 1128 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz",
|
| 1129 |
+
"integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==",
|
| 1130 |
+
"cpu": [
|
| 1131 |
+
"arm"
|
| 1132 |
+
],
|
| 1133 |
"dev": true,
|
| 1134 |
"license": "MIT",
|
| 1135 |
+
"optional": true,
|
| 1136 |
+
"os": [
|
| 1137 |
+
"linux"
|
| 1138 |
+
]
|
| 1139 |
},
|
| 1140 |
+
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
| 1141 |
+
"version": "4.60.1",
|
| 1142 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz",
|
| 1143 |
+
"integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==",
|
| 1144 |
"cpu": [
|
| 1145 |
"arm64"
|
| 1146 |
],
|
|
|
|
| 1148 |
"license": "MIT",
|
| 1149 |
"optional": true,
|
| 1150 |
"os": [
|
| 1151 |
+
"linux"
|
| 1152 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1153 |
},
|
| 1154 |
+
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
| 1155 |
+
"version": "4.60.1",
|
| 1156 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz",
|
| 1157 |
+
"integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==",
|
| 1158 |
"cpu": [
|
| 1159 |
"arm64"
|
| 1160 |
],
|
|
|
|
| 1162 |
"license": "MIT",
|
| 1163 |
"optional": true,
|
| 1164 |
"os": [
|
| 1165 |
+
"linux"
|
| 1166 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1167 |
},
|
| 1168 |
+
"node_modules/@rollup/rollup-linux-loong64-gnu": {
|
| 1169 |
+
"version": "4.60.1",
|
| 1170 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz",
|
| 1171 |
+
"integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==",
|
| 1172 |
"cpu": [
|
| 1173 |
+
"loong64"
|
| 1174 |
],
|
| 1175 |
"dev": true,
|
| 1176 |
"license": "MIT",
|
| 1177 |
"optional": true,
|
| 1178 |
"os": [
|
| 1179 |
+
"linux"
|
| 1180 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1181 |
},
|
| 1182 |
+
"node_modules/@rollup/rollup-linux-loong64-musl": {
|
| 1183 |
+
"version": "4.60.1",
|
| 1184 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz",
|
| 1185 |
+
"integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==",
|
| 1186 |
"cpu": [
|
| 1187 |
+
"loong64"
|
| 1188 |
],
|
| 1189 |
"dev": true,
|
| 1190 |
"license": "MIT",
|
| 1191 |
"optional": true,
|
| 1192 |
"os": [
|
| 1193 |
+
"linux"
|
| 1194 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1195 |
},
|
| 1196 |
+
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
|
| 1197 |
+
"version": "4.60.1",
|
| 1198 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz",
|
| 1199 |
+
"integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==",
|
| 1200 |
"cpu": [
|
| 1201 |
+
"ppc64"
|
| 1202 |
],
|
| 1203 |
"dev": true,
|
| 1204 |
"license": "MIT",
|
| 1205 |
"optional": true,
|
| 1206 |
"os": [
|
| 1207 |
"linux"
|
| 1208 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1209 |
},
|
| 1210 |
+
"node_modules/@rollup/rollup-linux-ppc64-musl": {
|
| 1211 |
+
"version": "4.60.1",
|
| 1212 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz",
|
| 1213 |
+
"integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==",
|
| 1214 |
"cpu": [
|
| 1215 |
+
"ppc64"
|
| 1216 |
],
|
| 1217 |
"dev": true,
|
| 1218 |
"license": "MIT",
|
| 1219 |
"optional": true,
|
| 1220 |
"os": [
|
| 1221 |
"linux"
|
| 1222 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1223 |
},
|
| 1224 |
+
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
| 1225 |
+
"version": "4.60.1",
|
| 1226 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz",
|
| 1227 |
+
"integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==",
|
| 1228 |
"cpu": [
|
| 1229 |
+
"riscv64"
|
| 1230 |
],
|
| 1231 |
"dev": true,
|
| 1232 |
"license": "MIT",
|
| 1233 |
"optional": true,
|
| 1234 |
"os": [
|
| 1235 |
"linux"
|
| 1236 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1237 |
},
|
| 1238 |
+
"node_modules/@rollup/rollup-linux-riscv64-musl": {
|
| 1239 |
+
"version": "4.60.1",
|
| 1240 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz",
|
| 1241 |
+
"integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==",
|
| 1242 |
"cpu": [
|
| 1243 |
+
"riscv64"
|
| 1244 |
],
|
| 1245 |
"dev": true,
|
| 1246 |
"license": "MIT",
|
| 1247 |
"optional": true,
|
| 1248 |
"os": [
|
| 1249 |
"linux"
|
| 1250 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1251 |
},
|
| 1252 |
+
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
| 1253 |
+
"version": "4.60.1",
|
| 1254 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz",
|
| 1255 |
+
"integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==",
|
| 1256 |
"cpu": [
|
| 1257 |
"s390x"
|
| 1258 |
],
|
|
|
|
| 1261 |
"optional": true,
|
| 1262 |
"os": [
|
| 1263 |
"linux"
|
| 1264 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1265 |
},
|
| 1266 |
+
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
| 1267 |
+
"version": "4.60.1",
|
| 1268 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz",
|
| 1269 |
+
"integrity": "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==",
|
| 1270 |
"cpu": [
|
| 1271 |
"x64"
|
| 1272 |
],
|
|
|
|
| 1275 |
"optional": true,
|
| 1276 |
"os": [
|
| 1277 |
"linux"
|
| 1278 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1279 |
},
|
| 1280 |
+
"node_modules/@rollup/rollup-linux-x64-musl": {
|
| 1281 |
+
"version": "4.60.1",
|
| 1282 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz",
|
| 1283 |
+
"integrity": "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==",
|
| 1284 |
"cpu": [
|
| 1285 |
"x64"
|
| 1286 |
],
|
|
|
|
| 1289 |
"optional": true,
|
| 1290 |
"os": [
|
| 1291 |
"linux"
|
| 1292 |
+
]
|
| 1293 |
+
},
|
| 1294 |
+
"node_modules/@rollup/rollup-openbsd-x64": {
|
| 1295 |
+
"version": "4.60.1",
|
| 1296 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz",
|
| 1297 |
+
"integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==",
|
| 1298 |
+
"cpu": [
|
| 1299 |
+
"x64"
|
| 1300 |
],
|
| 1301 |
+
"dev": true,
|
| 1302 |
+
"license": "MIT",
|
| 1303 |
+
"optional": true,
|
| 1304 |
+
"os": [
|
| 1305 |
+
"openbsd"
|
| 1306 |
+
]
|
| 1307 |
},
|
| 1308 |
+
"node_modules/@rollup/rollup-openharmony-arm64": {
|
| 1309 |
+
"version": "4.60.1",
|
| 1310 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz",
|
| 1311 |
+
"integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==",
|
| 1312 |
"cpu": [
|
| 1313 |
"arm64"
|
| 1314 |
],
|
|
|
|
| 1317 |
"optional": true,
|
| 1318 |
"os": [
|
| 1319 |
"openharmony"
|
| 1320 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1321 |
},
|
| 1322 |
+
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
| 1323 |
+
"version": "4.60.1",
|
| 1324 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz",
|
| 1325 |
+
"integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==",
|
| 1326 |
"cpu": [
|
| 1327 |
+
"arm64"
|
| 1328 |
],
|
| 1329 |
"dev": true,
|
| 1330 |
"license": "MIT",
|
| 1331 |
"optional": true,
|
| 1332 |
+
"os": [
|
| 1333 |
+
"win32"
|
| 1334 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1335 |
},
|
| 1336 |
+
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
| 1337 |
+
"version": "4.60.1",
|
| 1338 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz",
|
| 1339 |
+
"integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==",
|
| 1340 |
"cpu": [
|
| 1341 |
+
"ia32"
|
| 1342 |
],
|
| 1343 |
"dev": true,
|
| 1344 |
"license": "MIT",
|
| 1345 |
"optional": true,
|
| 1346 |
"os": [
|
| 1347 |
"win32"
|
| 1348 |
+
]
|
|
|
|
|
|
|
|
|
|
| 1349 |
},
|
| 1350 |
+
"node_modules/@rollup/rollup-win32-x64-gnu": {
|
| 1351 |
+
"version": "4.60.1",
|
| 1352 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz",
|
| 1353 |
+
"integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==",
|
| 1354 |
"cpu": [
|
| 1355 |
"x64"
|
| 1356 |
],
|
|
|
|
| 1359 |
"optional": true,
|
| 1360 |
"os": [
|
| 1361 |
"win32"
|
| 1362 |
+
]
|
| 1363 |
+
},
|
| 1364 |
+
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
| 1365 |
+
"version": "4.60.1",
|
| 1366 |
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz",
|
| 1367 |
+
"integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==",
|
| 1368 |
+
"cpu": [
|
| 1369 |
+
"x64"
|
| 1370 |
],
|
| 1371 |
+
"dev": true,
|
| 1372 |
+
"license": "MIT",
|
| 1373 |
+
"optional": true,
|
| 1374 |
+
"os": [
|
| 1375 |
+
"win32"
|
| 1376 |
+
]
|
| 1377 |
+
},
|
| 1378 |
+
"node_modules/@tweenjs/tween.js": {
|
| 1379 |
+
"version": "25.0.0",
|
| 1380 |
+
"resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-25.0.0.tgz",
|
| 1381 |
+
"integrity": "sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==",
|
| 1382 |
+
"license": "MIT"
|
| 1383 |
+
},
|
| 1384 |
+
"node_modules/@types/babel__core": {
|
| 1385 |
+
"version": "7.20.5",
|
| 1386 |
+
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
|
| 1387 |
+
"integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
|
| 1388 |
+
"dev": true,
|
| 1389 |
+
"license": "MIT",
|
| 1390 |
+
"dependencies": {
|
| 1391 |
+
"@babel/parser": "^7.20.7",
|
| 1392 |
+
"@babel/types": "^7.20.7",
|
| 1393 |
+
"@types/babel__generator": "*",
|
| 1394 |
+
"@types/babel__template": "*",
|
| 1395 |
+
"@types/babel__traverse": "*"
|
| 1396 |
}
|
| 1397 |
},
|
| 1398 |
+
"node_modules/@types/babel__generator": {
|
| 1399 |
+
"version": "7.27.0",
|
| 1400 |
+
"resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
|
| 1401 |
+
"integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
|
| 1402 |
"dev": true,
|
| 1403 |
+
"license": "MIT",
|
| 1404 |
+
"dependencies": {
|
| 1405 |
+
"@babel/types": "^7.0.0"
|
| 1406 |
+
}
|
| 1407 |
},
|
| 1408 |
+
"node_modules/@types/babel__template": {
|
| 1409 |
+
"version": "7.4.4",
|
| 1410 |
+
"resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
|
| 1411 |
+
"integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
|
| 1412 |
+
"dev": true,
|
| 1413 |
+
"license": "MIT",
|
| 1414 |
+
"dependencies": {
|
| 1415 |
+
"@babel/parser": "^7.1.0",
|
| 1416 |
+
"@babel/types": "^7.0.0"
|
| 1417 |
+
}
|
| 1418 |
+
},
|
| 1419 |
+
"node_modules/@types/babel__traverse": {
|
| 1420 |
+
"version": "7.28.0",
|
| 1421 |
+
"resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
|
| 1422 |
+
"integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
|
| 1423 |
"dev": true,
|
| 1424 |
"license": "MIT",
|
|
|
|
| 1425 |
"dependencies": {
|
| 1426 |
+
"@babel/types": "^7.28.2"
|
| 1427 |
}
|
| 1428 |
},
|
| 1429 |
"node_modules/@types/estree": {
|
|
|
|
| 1440 |
"dev": true,
|
| 1441 |
"license": "MIT"
|
| 1442 |
},
|
| 1443 |
+
"node_modules/@types/prop-types": {
|
| 1444 |
+
"version": "15.7.15",
|
| 1445 |
+
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
|
| 1446 |
+
"integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
|
| 1447 |
+
"dev": true,
|
| 1448 |
+
"license": "MIT"
|
| 1449 |
+
},
|
| 1450 |
"node_modules/@types/react": {
|
| 1451 |
+
"version": "18.3.28",
|
| 1452 |
+
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz",
|
| 1453 |
+
"integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==",
|
| 1454 |
"dev": true,
|
| 1455 |
"license": "MIT",
|
| 1456 |
"peer": true,
|
| 1457 |
"dependencies": {
|
| 1458 |
+
"@types/prop-types": "*",
|
| 1459 |
"csstype": "^3.2.2"
|
| 1460 |
}
|
| 1461 |
},
|
| 1462 |
"node_modules/@types/react-dom": {
|
| 1463 |
+
"version": "18.3.7",
|
| 1464 |
+
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
|
| 1465 |
+
"integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
|
| 1466 |
"dev": true,
|
| 1467 |
"license": "MIT",
|
| 1468 |
"peerDependencies": {
|
| 1469 |
+
"@types/react": "^18.0.0"
|
| 1470 |
}
|
| 1471 |
},
|
| 1472 |
"node_modules/@vitejs/plugin-react": {
|
| 1473 |
+
"version": "4.7.0",
|
| 1474 |
+
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
|
| 1475 |
+
"integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==",
|
| 1476 |
"dev": true,
|
| 1477 |
"license": "MIT",
|
| 1478 |
"dependencies": {
|
| 1479 |
+
"@babel/core": "^7.28.0",
|
| 1480 |
+
"@babel/plugin-transform-react-jsx-self": "^7.27.1",
|
| 1481 |
+
"@babel/plugin-transform-react-jsx-source": "^7.27.1",
|
| 1482 |
+
"@rolldown/pluginutils": "1.0.0-beta.27",
|
| 1483 |
+
"@types/babel__core": "^7.20.5",
|
| 1484 |
+
"react-refresh": "^0.17.0"
|
| 1485 |
},
|
| 1486 |
"engines": {
|
| 1487 |
+
"node": "^14.18.0 || >=16.0.0"
|
| 1488 |
},
|
| 1489 |
"peerDependencies": {
|
| 1490 |
+
"vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
|
| 1491 |
+
}
|
| 1492 |
+
},
|
| 1493 |
+
"node_modules/3d-force-graph": {
|
| 1494 |
+
"version": "1.80.0",
|
| 1495 |
+
"resolved": "https://registry.npmjs.org/3d-force-graph/-/3d-force-graph-1.80.0.tgz",
|
| 1496 |
+
"integrity": "sha512-tzI353gW1nXPpnC7VTa3JjMg+3cp77qOLUFO0vucPTfF+q5R6sQsNsIqVTbRIb7RSypn14nBa4yfkOe9ThxASw==",
|
| 1497 |
+
"license": "MIT",
|
| 1498 |
+
"dependencies": {
|
| 1499 |
+
"accessor-fn": "1",
|
| 1500 |
+
"kapsule": "^1.16",
|
| 1501 |
+
"three": ">=0.179 <1",
|
| 1502 |
+
"three-forcegraph": "1",
|
| 1503 |
+
"three-render-objects": "^1.41"
|
| 1504 |
},
|
| 1505 |
+
"engines": {
|
| 1506 |
+
"node": ">=12"
|
| 1507 |
+
}
|
| 1508 |
+
},
|
| 1509 |
+
"node_modules/accessor-fn": {
|
| 1510 |
+
"version": "1.5.3",
|
| 1511 |
+
"resolved": "https://registry.npmjs.org/accessor-fn/-/accessor-fn-1.5.3.tgz",
|
| 1512 |
+
"integrity": "sha512-rkAofCwe/FvYFUlMB0v0gWmhqtfAtV1IUkdPbfhTUyYniu5LrC0A0UJkTH0Jv3S8SvwkmfuAlY+mQIJATdocMA==",
|
| 1513 |
+
"license": "MIT",
|
| 1514 |
+
"engines": {
|
| 1515 |
+
"node": ">=12"
|
| 1516 |
}
|
| 1517 |
},
|
| 1518 |
"node_modules/acorn": {
|
|
|
|
| 1693 |
"url": "https://github.com/chalk/chalk?sponsor=1"
|
| 1694 |
}
|
| 1695 |
},
|
| 1696 |
+
"node_modules/color-convert": {
|
| 1697 |
+
"version": "2.0.1",
|
| 1698 |
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
| 1699 |
+
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
| 1700 |
+
"dev": true,
|
| 1701 |
+
"license": "MIT",
|
| 1702 |
+
"dependencies": {
|
| 1703 |
+
"color-name": "~1.1.4"
|
| 1704 |
+
},
|
| 1705 |
+
"engines": {
|
| 1706 |
+
"node": ">=7.0.0"
|
| 1707 |
+
}
|
| 1708 |
+
},
|
| 1709 |
+
"node_modules/color-name": {
|
| 1710 |
+
"version": "1.1.4",
|
| 1711 |
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
| 1712 |
+
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
| 1713 |
+
"dev": true,
|
| 1714 |
+
"license": "MIT"
|
| 1715 |
+
},
|
| 1716 |
+
"node_modules/concat-map": {
|
| 1717 |
+
"version": "0.0.1",
|
| 1718 |
+
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
| 1719 |
+
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
|
| 1720 |
+
"dev": true,
|
| 1721 |
+
"license": "MIT"
|
| 1722 |
+
},
|
| 1723 |
+
"node_modules/convert-source-map": {
|
| 1724 |
+
"version": "2.0.0",
|
| 1725 |
+
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
|
| 1726 |
+
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
| 1727 |
+
"dev": true,
|
| 1728 |
+
"license": "MIT"
|
| 1729 |
+
},
|
| 1730 |
+
"node_modules/cross-spawn": {
|
| 1731 |
+
"version": "7.0.6",
|
| 1732 |
+
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
| 1733 |
+
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
|
| 1734 |
+
"dev": true,
|
| 1735 |
+
"license": "MIT",
|
| 1736 |
+
"dependencies": {
|
| 1737 |
+
"path-key": "^3.1.0",
|
| 1738 |
+
"shebang-command": "^2.0.0",
|
| 1739 |
+
"which": "^2.0.1"
|
| 1740 |
+
},
|
| 1741 |
+
"engines": {
|
| 1742 |
+
"node": ">= 8"
|
| 1743 |
+
}
|
| 1744 |
+
},
|
| 1745 |
+
"node_modules/csstype": {
|
| 1746 |
+
"version": "3.2.3",
|
| 1747 |
+
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
|
| 1748 |
+
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
|
| 1749 |
+
"dev": true,
|
| 1750 |
+
"license": "MIT"
|
| 1751 |
+
},
|
| 1752 |
+
"node_modules/d3-array": {
|
| 1753 |
+
"version": "3.2.4",
|
| 1754 |
+
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
|
| 1755 |
+
"integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
|
| 1756 |
+
"license": "ISC",
|
| 1757 |
+
"dependencies": {
|
| 1758 |
+
"internmap": "1 - 2"
|
| 1759 |
+
},
|
| 1760 |
+
"engines": {
|
| 1761 |
+
"node": ">=12"
|
| 1762 |
+
}
|
| 1763 |
+
},
|
| 1764 |
+
"node_modules/d3-binarytree": {
|
| 1765 |
+
"version": "1.0.2",
|
| 1766 |
+
"resolved": "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz",
|
| 1767 |
+
"integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==",
|
| 1768 |
+
"license": "MIT"
|
| 1769 |
+
},
|
| 1770 |
+
"node_modules/d3-color": {
|
| 1771 |
+
"version": "3.1.0",
|
| 1772 |
+
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
|
| 1773 |
+
"integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
|
| 1774 |
+
"license": "ISC",
|
| 1775 |
+
"engines": {
|
| 1776 |
+
"node": ">=12"
|
| 1777 |
+
}
|
| 1778 |
+
},
|
| 1779 |
+
"node_modules/d3-dispatch": {
|
| 1780 |
+
"version": "3.0.1",
|
| 1781 |
+
"resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
|
| 1782 |
+
"integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
|
| 1783 |
+
"license": "ISC",
|
| 1784 |
+
"engines": {
|
| 1785 |
+
"node": ">=12"
|
| 1786 |
+
}
|
| 1787 |
+
},
|
| 1788 |
+
"node_modules/d3-force-3d": {
|
| 1789 |
+
"version": "3.0.6",
|
| 1790 |
+
"resolved": "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.6.tgz",
|
| 1791 |
+
"integrity": "sha512-4tsKHUPLOVkyfEffZo1v6sFHvGFwAIIjt/W8IThbp08DYAsXZck+2pSHEG5W1+gQgEvFLdZkYvmJAbRM2EzMnA==",
|
| 1792 |
+
"license": "MIT",
|
| 1793 |
+
"dependencies": {
|
| 1794 |
+
"d3-binarytree": "1",
|
| 1795 |
+
"d3-dispatch": "1 - 3",
|
| 1796 |
+
"d3-octree": "1",
|
| 1797 |
+
"d3-quadtree": "1 - 3",
|
| 1798 |
+
"d3-timer": "1 - 3"
|
| 1799 |
+
},
|
| 1800 |
+
"engines": {
|
| 1801 |
+
"node": ">=12"
|
| 1802 |
+
}
|
| 1803 |
+
},
|
| 1804 |
+
"node_modules/d3-format": {
|
| 1805 |
+
"version": "3.1.2",
|
| 1806 |
+
"resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz",
|
| 1807 |
+
"integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==",
|
| 1808 |
+
"license": "ISC",
|
| 1809 |
+
"engines": {
|
| 1810 |
+
"node": ">=12"
|
| 1811 |
+
}
|
| 1812 |
+
},
|
| 1813 |
+
"node_modules/d3-interpolate": {
|
| 1814 |
+
"version": "3.0.1",
|
| 1815 |
+
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
|
| 1816 |
+
"integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
|
| 1817 |
+
"license": "ISC",
|
| 1818 |
+
"dependencies": {
|
| 1819 |
+
"d3-color": "1 - 3"
|
| 1820 |
+
},
|
| 1821 |
+
"engines": {
|
| 1822 |
+
"node": ">=12"
|
| 1823 |
+
}
|
| 1824 |
+
},
|
| 1825 |
+
"node_modules/d3-octree": {
|
| 1826 |
+
"version": "1.1.0",
|
| 1827 |
+
"resolved": "https://registry.npmjs.org/d3-octree/-/d3-octree-1.1.0.tgz",
|
| 1828 |
+
"integrity": "sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A==",
|
| 1829 |
+
"license": "MIT"
|
| 1830 |
+
},
|
| 1831 |
+
"node_modules/d3-quadtree": {
|
| 1832 |
+
"version": "3.0.1",
|
| 1833 |
+
"resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
|
| 1834 |
+
"integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
|
| 1835 |
+
"license": "ISC",
|
| 1836 |
+
"engines": {
|
| 1837 |
+
"node": ">=12"
|
| 1838 |
+
}
|
| 1839 |
+
},
|
| 1840 |
+
"node_modules/d3-scale": {
|
| 1841 |
+
"version": "4.0.2",
|
| 1842 |
+
"resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
|
| 1843 |
+
"integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
|
| 1844 |
+
"license": "ISC",
|
| 1845 |
+
"dependencies": {
|
| 1846 |
+
"d3-array": "2.10.0 - 3",
|
| 1847 |
+
"d3-format": "1 - 3",
|
| 1848 |
+
"d3-interpolate": "1.2.0 - 3",
|
| 1849 |
+
"d3-time": "2.1.1 - 3",
|
| 1850 |
+
"d3-time-format": "2 - 4"
|
| 1851 |
+
},
|
| 1852 |
+
"engines": {
|
| 1853 |
+
"node": ">=12"
|
| 1854 |
+
}
|
| 1855 |
+
},
|
| 1856 |
+
"node_modules/d3-scale-chromatic": {
|
| 1857 |
+
"version": "3.1.0",
|
| 1858 |
+
"resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
|
| 1859 |
+
"integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
|
| 1860 |
+
"license": "ISC",
|
| 1861 |
+
"dependencies": {
|
| 1862 |
+
"d3-color": "1 - 3",
|
| 1863 |
+
"d3-interpolate": "1 - 3"
|
| 1864 |
+
},
|
| 1865 |
+
"engines": {
|
| 1866 |
+
"node": ">=12"
|
| 1867 |
+
}
|
| 1868 |
+
},
|
| 1869 |
+
"node_modules/d3-selection": {
|
| 1870 |
+
"version": "3.0.0",
|
| 1871 |
+
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
|
| 1872 |
+
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
|
| 1873 |
+
"license": "ISC",
|
| 1874 |
+
"engines": {
|
| 1875 |
+
"node": ">=12"
|
| 1876 |
+
}
|
| 1877 |
+
},
|
| 1878 |
+
"node_modules/d3-time": {
|
| 1879 |
+
"version": "3.1.0",
|
| 1880 |
+
"resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
|
| 1881 |
+
"integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
|
| 1882 |
+
"license": "ISC",
|
| 1883 |
+
"dependencies": {
|
| 1884 |
+
"d3-array": "2 - 3"
|
| 1885 |
+
},
|
| 1886 |
+
"engines": {
|
| 1887 |
+
"node": ">=12"
|
| 1888 |
+
}
|
| 1889 |
+
},
|
| 1890 |
+
"node_modules/d3-time-format": {
|
| 1891 |
+
"version": "4.1.0",
|
| 1892 |
+
"resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
|
| 1893 |
+
"integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
|
| 1894 |
+
"license": "ISC",
|
| 1895 |
"dependencies": {
|
| 1896 |
+
"d3-time": "1 - 3"
|
| 1897 |
},
|
| 1898 |
"engines": {
|
| 1899 |
+
"node": ">=12"
|
| 1900 |
}
|
| 1901 |
},
|
| 1902 |
+
"node_modules/d3-timer": {
|
| 1903 |
+
"version": "3.0.1",
|
| 1904 |
+
"resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
|
| 1905 |
+
"integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
|
| 1906 |
+
"license": "ISC",
|
| 1907 |
+
"engines": {
|
| 1908 |
+
"node": ">=12"
|
| 1909 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1910 |
},
|
| 1911 |
+
"node_modules/data-bind-mapper": {
|
| 1912 |
+
"version": "1.0.3",
|
| 1913 |
+
"resolved": "https://registry.npmjs.org/data-bind-mapper/-/data-bind-mapper-1.0.3.tgz",
|
| 1914 |
+
"integrity": "sha512-QmU3lyEnbENQPo0M1F9BMu4s6cqNNp8iJA+b/HP2sSb7pf3dxwF3+EP1eO69rwBfH9kFJ1apmzrtogAmVt2/Xw==",
|
|
|
|
| 1915 |
"license": "MIT",
|
| 1916 |
"dependencies": {
|
| 1917 |
+
"accessor-fn": "1"
|
|
|
|
|
|
|
| 1918 |
},
|
| 1919 |
"engines": {
|
| 1920 |
+
"node": ">=12"
|
| 1921 |
}
|
| 1922 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1923 |
"node_modules/debug": {
|
| 1924 |
"version": "4.4.3",
|
| 1925 |
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
|
|
|
|
| 1945 |
"dev": true,
|
| 1946 |
"license": "MIT"
|
| 1947 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1948 |
"node_modules/electron-to-chromium": {
|
| 1949 |
"version": "1.5.321",
|
| 1950 |
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz",
|
|
|
|
| 1952 |
"dev": true,
|
| 1953 |
"license": "ISC"
|
| 1954 |
},
|
| 1955 |
+
"node_modules/esbuild": {
|
| 1956 |
+
"version": "0.25.12",
|
| 1957 |
+
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
|
| 1958 |
+
"integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
|
| 1959 |
+
"dev": true,
|
| 1960 |
+
"hasInstallScript": true,
|
| 1961 |
+
"license": "MIT",
|
| 1962 |
+
"bin": {
|
| 1963 |
+
"esbuild": "bin/esbuild"
|
| 1964 |
+
},
|
| 1965 |
+
"engines": {
|
| 1966 |
+
"node": ">=18"
|
| 1967 |
+
},
|
| 1968 |
+
"optionalDependencies": {
|
| 1969 |
+
"@esbuild/aix-ppc64": "0.25.12",
|
| 1970 |
+
"@esbuild/android-arm": "0.25.12",
|
| 1971 |
+
"@esbuild/android-arm64": "0.25.12",
|
| 1972 |
+
"@esbuild/android-x64": "0.25.12",
|
| 1973 |
+
"@esbuild/darwin-arm64": "0.25.12",
|
| 1974 |
+
"@esbuild/darwin-x64": "0.25.12",
|
| 1975 |
+
"@esbuild/freebsd-arm64": "0.25.12",
|
| 1976 |
+
"@esbuild/freebsd-x64": "0.25.12",
|
| 1977 |
+
"@esbuild/linux-arm": "0.25.12",
|
| 1978 |
+
"@esbuild/linux-arm64": "0.25.12",
|
| 1979 |
+
"@esbuild/linux-ia32": "0.25.12",
|
| 1980 |
+
"@esbuild/linux-loong64": "0.25.12",
|
| 1981 |
+
"@esbuild/linux-mips64el": "0.25.12",
|
| 1982 |
+
"@esbuild/linux-ppc64": "0.25.12",
|
| 1983 |
+
"@esbuild/linux-riscv64": "0.25.12",
|
| 1984 |
+
"@esbuild/linux-s390x": "0.25.12",
|
| 1985 |
+
"@esbuild/linux-x64": "0.25.12",
|
| 1986 |
+
"@esbuild/netbsd-arm64": "0.25.12",
|
| 1987 |
+
"@esbuild/netbsd-x64": "0.25.12",
|
| 1988 |
+
"@esbuild/openbsd-arm64": "0.25.12",
|
| 1989 |
+
"@esbuild/openbsd-x64": "0.25.12",
|
| 1990 |
+
"@esbuild/openharmony-arm64": "0.25.12",
|
| 1991 |
+
"@esbuild/sunos-x64": "0.25.12",
|
| 1992 |
+
"@esbuild/win32-arm64": "0.25.12",
|
| 1993 |
+
"@esbuild/win32-ia32": "0.25.12",
|
| 1994 |
+
"@esbuild/win32-x64": "0.25.12"
|
| 1995 |
+
}
|
| 1996 |
+
},
|
| 1997 |
"node_modules/escalade": {
|
| 1998 |
"version": "3.2.0",
|
| 1999 |
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
|
|
|
| 2079 |
}
|
| 2080 |
},
|
| 2081 |
"node_modules/eslint-plugin-react-hooks": {
|
| 2082 |
+
"version": "5.2.0",
|
| 2083 |
+
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz",
|
| 2084 |
+
"integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==",
|
| 2085 |
"dev": true,
|
| 2086 |
"license": "MIT",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2087 |
"engines": {
|
| 2088 |
+
"node": ">=10"
|
| 2089 |
},
|
| 2090 |
"peerDependencies": {
|
| 2091 |
"eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
|
| 2092 |
}
|
| 2093 |
},
|
| 2094 |
"node_modules/eslint-plugin-react-refresh": {
|
| 2095 |
+
"version": "0.4.26",
|
| 2096 |
+
"resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz",
|
| 2097 |
+
"integrity": "sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==",
|
| 2098 |
"dev": true,
|
| 2099 |
"license": "MIT",
|
| 2100 |
"peerDependencies": {
|
| 2101 |
+
"eslint": ">=8.40"
|
| 2102 |
}
|
| 2103 |
},
|
| 2104 |
"node_modules/eslint-scope": {
|
|
|
|
| 2285 |
"dev": true,
|
| 2286 |
"license": "ISC"
|
| 2287 |
},
|
| 2288 |
+
"node_modules/float-tooltip": {
|
| 2289 |
+
"version": "1.7.5",
|
| 2290 |
+
"resolved": "https://registry.npmjs.org/float-tooltip/-/float-tooltip-1.7.5.tgz",
|
| 2291 |
+
"integrity": "sha512-/kXzuDnnBqyyWyhDMH7+PfP8J/oXiAavGzcRxASOMRHFuReDtofizLLJsf7nnDLAfEaMW4pVWaXrAjtnglpEkg==",
|
| 2292 |
+
"license": "MIT",
|
| 2293 |
+
"dependencies": {
|
| 2294 |
+
"d3-selection": "2 - 3",
|
| 2295 |
+
"kapsule": "^1.16",
|
| 2296 |
+
"preact": "10"
|
| 2297 |
+
},
|
| 2298 |
+
"engines": {
|
| 2299 |
+
"node": ">=12"
|
| 2300 |
+
}
|
| 2301 |
+
},
|
| 2302 |
"node_modules/fsevents": {
|
| 2303 |
"version": "2.3.3",
|
| 2304 |
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
|
|
|
| 2338 |
}
|
| 2339 |
},
|
| 2340 |
"node_modules/globals": {
|
| 2341 |
+
"version": "15.15.0",
|
| 2342 |
+
"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
|
| 2343 |
+
"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
|
| 2344 |
"dev": true,
|
| 2345 |
"license": "MIT",
|
| 2346 |
"engines": {
|
|
|
|
| 2360 |
"node": ">=8"
|
| 2361 |
}
|
| 2362 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2363 |
"node_modules/ignore": {
|
| 2364 |
"version": "5.3.2",
|
| 2365 |
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
|
|
|
| 2397 |
"node": ">=0.8.19"
|
| 2398 |
}
|
| 2399 |
},
|
| 2400 |
+
"node_modules/internmap": {
|
| 2401 |
+
"version": "2.0.3",
|
| 2402 |
+
"resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
|
| 2403 |
+
"integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
|
| 2404 |
+
"license": "ISC",
|
| 2405 |
+
"engines": {
|
| 2406 |
+
"node": ">=12"
|
| 2407 |
+
}
|
| 2408 |
+
},
|
| 2409 |
"node_modules/is-extglob": {
|
| 2410 |
"version": "2.1.1",
|
| 2411 |
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
|
|
|
| 2436 |
"dev": true,
|
| 2437 |
"license": "ISC"
|
| 2438 |
},
|
| 2439 |
+
"node_modules/jerrypick": {
|
| 2440 |
+
"version": "1.1.2",
|
| 2441 |
+
"resolved": "https://registry.npmjs.org/jerrypick/-/jerrypick-1.1.2.tgz",
|
| 2442 |
+
"integrity": "sha512-YKnxXEekXKzhpf7CLYA0A+oDP8V0OhICNCr5lv96FvSsDEmrb0GKM776JgQvHTMjr7DTTPEVv/1Ciaw0uEWzBA==",
|
| 2443 |
+
"license": "MIT",
|
| 2444 |
+
"engines": {
|
| 2445 |
+
"node": ">=12"
|
| 2446 |
+
}
|
| 2447 |
+
},
|
| 2448 |
"node_modules/js-tokens": {
|
| 2449 |
"version": "4.0.0",
|
| 2450 |
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
| 2451 |
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
|
|
|
|
| 2452 |
"license": "MIT"
|
| 2453 |
},
|
| 2454 |
"node_modules/js-yaml": {
|
|
|
|
| 2456 |
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
|
| 2457 |
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
|
| 2458 |
"dev": true,
|
| 2459 |
+
"license": "MIT",
|
| 2460 |
+
"dependencies": {
|
| 2461 |
+
"argparse": "^2.0.1"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2462 |
},
|
| 2463 |
+
"bin": {
|
| 2464 |
+
"js-yaml": "bin/js-yaml.js"
|
|
|
|
| 2465 |
}
|
| 2466 |
},
|
| 2467 |
+
"node_modules/jsesc": {
|
| 2468 |
+
"version": "3.1.0",
|
| 2469 |
+
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
|
| 2470 |
+
"integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
|
|
|
|
|
|
|
|
|
|
| 2471 |
"dev": true,
|
| 2472 |
+
"license": "MIT",
|
| 2473 |
+
"bin": {
|
| 2474 |
+
"jsesc": "bin/jsesc"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2475 |
},
|
| 2476 |
+
"engines": {
|
| 2477 |
+
"node": ">=6"
|
|
|
|
| 2478 |
}
|
| 2479 |
},
|
| 2480 |
+
"node_modules/json-buffer": {
|
| 2481 |
+
"version": "3.0.1",
|
| 2482 |
+
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
|
| 2483 |
+
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
|
|
|
|
|
|
|
|
|
|
| 2484 |
"dev": true,
|
| 2485 |
+
"license": "MIT"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2486 |
},
|
| 2487 |
+
"node_modules/json-schema-traverse": {
|
| 2488 |
+
"version": "0.4.1",
|
| 2489 |
+
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
| 2490 |
+
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
|
|
|
|
|
|
|
|
|
| 2491 |
"dev": true,
|
| 2492 |
+
"license": "MIT"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2493 |
},
|
| 2494 |
+
"node_modules/json-stable-stringify-without-jsonify": {
|
| 2495 |
+
"version": "1.0.1",
|
| 2496 |
+
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
|
| 2497 |
+
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
|
|
|
|
|
|
|
|
|
|
| 2498 |
"dev": true,
|
| 2499 |
+
"license": "MIT"
|
| 2500 |
+
},
|
| 2501 |
+
"node_modules/json5": {
|
| 2502 |
+
"version": "2.2.3",
|
| 2503 |
+
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
| 2504 |
+
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
|
| 2505 |
+
"dev": true,
|
| 2506 |
+
"license": "MIT",
|
| 2507 |
+
"bin": {
|
| 2508 |
+
"json5": "lib/cli.js"
|
| 2509 |
+
},
|
| 2510 |
"engines": {
|
| 2511 |
+
"node": ">=6"
|
| 2512 |
+
}
|
| 2513 |
+
},
|
| 2514 |
+
"node_modules/kapsule": {
|
| 2515 |
+
"version": "1.16.3",
|
| 2516 |
+
"resolved": "https://registry.npmjs.org/kapsule/-/kapsule-1.16.3.tgz",
|
| 2517 |
+
"integrity": "sha512-4+5mNNf4vZDSwPhKprKwz3330iisPrb08JyMgbsdFrimBCKNHecua/WBwvVg3n7vwx0C1ARjfhwIpbrbd9n5wg==",
|
| 2518 |
+
"license": "MIT",
|
| 2519 |
+
"dependencies": {
|
| 2520 |
+
"lodash-es": "4"
|
| 2521 |
},
|
| 2522 |
+
"engines": {
|
| 2523 |
+
"node": ">=12"
|
|
|
|
| 2524 |
}
|
| 2525 |
},
|
| 2526 |
+
"node_modules/keyv": {
|
| 2527 |
+
"version": "4.5.4",
|
| 2528 |
+
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
|
| 2529 |
+
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
|
|
|
|
|
|
|
|
|
|
| 2530 |
"dev": true,
|
| 2531 |
+
"license": "MIT",
|
| 2532 |
+
"dependencies": {
|
| 2533 |
+
"json-buffer": "3.0.1"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2534 |
}
|
| 2535 |
},
|
| 2536 |
+
"node_modules/levn": {
|
| 2537 |
+
"version": "0.4.1",
|
| 2538 |
+
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
|
| 2539 |
+
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
|
|
|
|
|
|
|
|
|
|
| 2540 |
"dev": true,
|
| 2541 |
+
"license": "MIT",
|
| 2542 |
+
"dependencies": {
|
| 2543 |
+
"prelude-ls": "^1.2.1",
|
| 2544 |
+
"type-check": "~0.4.0"
|
|
|
|
|
|
|
|
|
|
| 2545 |
},
|
| 2546 |
+
"engines": {
|
| 2547 |
+
"node": ">= 0.8.0"
|
|
|
|
| 2548 |
}
|
| 2549 |
},
|
| 2550 |
"node_modules/locate-path": {
|
|
|
|
| 2563 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 2564 |
}
|
| 2565 |
},
|
| 2566 |
+
"node_modules/lodash-es": {
|
| 2567 |
+
"version": "4.18.1",
|
| 2568 |
+
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz",
|
| 2569 |
+
"integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==",
|
| 2570 |
+
"license": "MIT"
|
| 2571 |
+
},
|
| 2572 |
"node_modules/lodash.merge": {
|
| 2573 |
"version": "4.6.2",
|
| 2574 |
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
|
|
|
| 2576 |
"dev": true,
|
| 2577 |
"license": "MIT"
|
| 2578 |
},
|
| 2579 |
+
"node_modules/loose-envify": {
|
| 2580 |
+
"version": "1.4.0",
|
| 2581 |
+
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
|
| 2582 |
+
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
|
| 2583 |
+
"license": "MIT",
|
| 2584 |
+
"dependencies": {
|
| 2585 |
+
"js-tokens": "^3.0.0 || ^4.0.0"
|
| 2586 |
+
},
|
| 2587 |
+
"bin": {
|
| 2588 |
+
"loose-envify": "cli.js"
|
| 2589 |
+
}
|
| 2590 |
+
},
|
| 2591 |
"node_modules/lru-cache": {
|
| 2592 |
"version": "5.1.1",
|
| 2593 |
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
|
|
|
| 2644 |
"dev": true,
|
| 2645 |
"license": "MIT"
|
| 2646 |
},
|
| 2647 |
+
"node_modules/ngraph.events": {
|
| 2648 |
+
"version": "1.4.0",
|
| 2649 |
+
"resolved": "https://registry.npmjs.org/ngraph.events/-/ngraph.events-1.4.0.tgz",
|
| 2650 |
+
"integrity": "sha512-NeDGI4DSyjBNBRtA86222JoYietsmCXbs8CEB0dZ51Xeh4lhVl1y3wpWLumczvnha8sFQIW4E0vvVWwgmX2mGw==",
|
| 2651 |
+
"license": "BSD-3-Clause"
|
| 2652 |
+
},
|
| 2653 |
+
"node_modules/ngraph.forcelayout": {
|
| 2654 |
+
"version": "3.3.1",
|
| 2655 |
+
"resolved": "https://registry.npmjs.org/ngraph.forcelayout/-/ngraph.forcelayout-3.3.1.tgz",
|
| 2656 |
+
"integrity": "sha512-MKBuEh1wujyQHFTW57y5vd/uuEOK0XfXYxm3lC7kktjJLRdt/KEKEknyOlc6tjXflqBKEuYBBcu7Ax5VY+S6aw==",
|
| 2657 |
+
"license": "BSD-3-Clause",
|
| 2658 |
+
"dependencies": {
|
| 2659 |
+
"ngraph.events": "^1.0.0",
|
| 2660 |
+
"ngraph.merge": "^1.0.0",
|
| 2661 |
+
"ngraph.random": "^1.0.0"
|
| 2662 |
+
}
|
| 2663 |
+
},
|
| 2664 |
+
"node_modules/ngraph.graph": {
|
| 2665 |
+
"version": "20.1.2",
|
| 2666 |
+
"resolved": "https://registry.npmjs.org/ngraph.graph/-/ngraph.graph-20.1.2.tgz",
|
| 2667 |
+
"integrity": "sha512-W/G3GBR3Y5UxMLHTUCPP9v+pbtpzwuAEIqP5oZV+9IwgxAIEZwh+Foc60iPc1idlnK7Zxu0p3puxAyNmDvBd0Q==",
|
| 2668 |
+
"license": "BSD-3-Clause",
|
| 2669 |
+
"dependencies": {
|
| 2670 |
+
"ngraph.events": "^1.4.0"
|
| 2671 |
+
}
|
| 2672 |
+
},
|
| 2673 |
+
"node_modules/ngraph.merge": {
|
| 2674 |
+
"version": "1.0.0",
|
| 2675 |
+
"resolved": "https://registry.npmjs.org/ngraph.merge/-/ngraph.merge-1.0.0.tgz",
|
| 2676 |
+
"integrity": "sha512-5J8YjGITUJeapsomtTALYsw7rFveYkM+lBj3QiYZ79EymQcuri65Nw3knQtFxQBU1r5iOaVRXrSwMENUPK62Vg==",
|
| 2677 |
+
"license": "MIT"
|
| 2678 |
+
},
|
| 2679 |
+
"node_modules/ngraph.random": {
|
| 2680 |
+
"version": "1.2.0",
|
| 2681 |
+
"resolved": "https://registry.npmjs.org/ngraph.random/-/ngraph.random-1.2.0.tgz",
|
| 2682 |
+
"integrity": "sha512-4EUeAGbB2HWX9njd6bP6tciN6ByJfoaAvmVL9QTaZSeXrW46eNGA9GajiXiPBbvFqxUWFkEbyo6x5qsACUuVfA==",
|
| 2683 |
+
"license": "BSD-3-Clause"
|
| 2684 |
+
},
|
| 2685 |
"node_modules/node-releases": {
|
| 2686 |
"version": "2.0.36",
|
| 2687 |
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
|
|
|
|
| 2689 |
"dev": true,
|
| 2690 |
"license": "MIT"
|
| 2691 |
},
|
| 2692 |
+
"node_modules/object-assign": {
|
| 2693 |
+
"version": "4.1.1",
|
| 2694 |
+
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
| 2695 |
+
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
|
| 2696 |
+
"license": "MIT",
|
| 2697 |
+
"engines": {
|
| 2698 |
+
"node": ">=0.10.0"
|
| 2699 |
+
}
|
| 2700 |
+
},
|
| 2701 |
"node_modules/optionator": {
|
| 2702 |
"version": "0.9.4",
|
| 2703 |
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
|
|
|
|
| 2789 |
"license": "ISC"
|
| 2790 |
},
|
| 2791 |
"node_modules/picomatch": {
|
| 2792 |
+
"version": "4.0.4",
|
| 2793 |
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
|
| 2794 |
+
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
|
| 2795 |
"dev": true,
|
| 2796 |
"license": "MIT",
|
| 2797 |
"peer": true,
|
|
|
|
| 2802 |
"url": "https://github.com/sponsors/jonschlinkert"
|
| 2803 |
}
|
| 2804 |
},
|
| 2805 |
+
"node_modules/polished": {
|
| 2806 |
+
"version": "4.3.1",
|
| 2807 |
+
"resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz",
|
| 2808 |
+
"integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==",
|
| 2809 |
+
"license": "MIT",
|
| 2810 |
+
"dependencies": {
|
| 2811 |
+
"@babel/runtime": "^7.17.8"
|
| 2812 |
+
},
|
| 2813 |
+
"engines": {
|
| 2814 |
+
"node": ">=10"
|
| 2815 |
+
}
|
| 2816 |
+
},
|
| 2817 |
"node_modules/postcss": {
|
| 2818 |
+
"version": "8.5.9",
|
| 2819 |
+
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.9.tgz",
|
| 2820 |
+
"integrity": "sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==",
|
| 2821 |
"dev": true,
|
| 2822 |
"funding": [
|
| 2823 |
{
|
|
|
|
| 2843 |
"node": "^10 || ^12 || >=14"
|
| 2844 |
}
|
| 2845 |
},
|
| 2846 |
+
"node_modules/preact": {
|
| 2847 |
+
"version": "10.29.1",
|
| 2848 |
+
"resolved": "https://registry.npmjs.org/preact/-/preact-10.29.1.tgz",
|
| 2849 |
+
"integrity": "sha512-gQCLc/vWroE8lIpleXtdJhTFDogTdZG9AjMUpVkDf2iTCNwYNWA+u16dL41TqUDJO4gm2IgrcMv3uTpjd4Pwmg==",
|
| 2850 |
+
"license": "MIT",
|
| 2851 |
+
"funding": {
|
| 2852 |
+
"type": "opencollective",
|
| 2853 |
+
"url": "https://opencollective.com/preact"
|
| 2854 |
+
}
|
| 2855 |
+
},
|
| 2856 |
"node_modules/prelude-ls": {
|
| 2857 |
"version": "1.2.1",
|
| 2858 |
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
|
|
|
|
| 2863 |
"node": ">= 0.8.0"
|
| 2864 |
}
|
| 2865 |
},
|
| 2866 |
+
"node_modules/prop-types": {
|
| 2867 |
+
"version": "15.8.1",
|
| 2868 |
+
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
|
| 2869 |
+
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
|
| 2870 |
+
"license": "MIT",
|
| 2871 |
+
"dependencies": {
|
| 2872 |
+
"loose-envify": "^1.4.0",
|
| 2873 |
+
"object-assign": "^4.1.1",
|
| 2874 |
+
"react-is": "^16.13.1"
|
| 2875 |
+
}
|
| 2876 |
+
},
|
| 2877 |
"node_modules/punycode": {
|
| 2878 |
"version": "2.3.1",
|
| 2879 |
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
|
|
|
| 2885 |
}
|
| 2886 |
},
|
| 2887 |
"node_modules/react": {
|
| 2888 |
+
"version": "18.3.1",
|
| 2889 |
+
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
|
| 2890 |
+
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
|
| 2891 |
"license": "MIT",
|
| 2892 |
"peer": true,
|
| 2893 |
+
"dependencies": {
|
| 2894 |
+
"loose-envify": "^1.1.0"
|
| 2895 |
+
},
|
| 2896 |
"engines": {
|
| 2897 |
"node": ">=0.10.0"
|
| 2898 |
}
|
| 2899 |
},
|
| 2900 |
"node_modules/react-dom": {
|
| 2901 |
+
"version": "18.3.1",
|
| 2902 |
+
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
|
| 2903 |
+
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
|
| 2904 |
+
"license": "MIT",
|
| 2905 |
+
"dependencies": {
|
| 2906 |
+
"loose-envify": "^1.1.0",
|
| 2907 |
+
"scheduler": "^0.23.2"
|
| 2908 |
+
},
|
| 2909 |
+
"peerDependencies": {
|
| 2910 |
+
"react": "^18.3.1"
|
| 2911 |
+
}
|
| 2912 |
+
},
|
| 2913 |
+
"node_modules/react-force-graph-3d": {
|
| 2914 |
+
"version": "1.29.1",
|
| 2915 |
+
"resolved": "https://registry.npmjs.org/react-force-graph-3d/-/react-force-graph-3d-1.29.1.tgz",
|
| 2916 |
+
"integrity": "sha512-5Vp+PGpYnO+zLwgK2NvNqdXHvsWLrFzpDfJW1vUA1twjo9SPvXqfUYQrnRmAbD+K2tOxkZw1BkbH31l5b4TWHg==",
|
| 2917 |
+
"license": "MIT",
|
| 2918 |
+
"dependencies": {
|
| 2919 |
+
"3d-force-graph": "^1.79",
|
| 2920 |
+
"prop-types": "15",
|
| 2921 |
+
"react-kapsule": "^2.5"
|
| 2922 |
+
},
|
| 2923 |
+
"engines": {
|
| 2924 |
+
"node": ">=12"
|
| 2925 |
+
},
|
| 2926 |
+
"peerDependencies": {
|
| 2927 |
+
"react": "*"
|
| 2928 |
+
}
|
| 2929 |
+
},
|
| 2930 |
+
"node_modules/react-is": {
|
| 2931 |
+
"version": "16.13.1",
|
| 2932 |
+
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
|
| 2933 |
+
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
| 2934 |
+
"license": "MIT"
|
| 2935 |
+
},
|
| 2936 |
+
"node_modules/react-kapsule": {
|
| 2937 |
+
"version": "2.5.7",
|
| 2938 |
+
"resolved": "https://registry.npmjs.org/react-kapsule/-/react-kapsule-2.5.7.tgz",
|
| 2939 |
+
"integrity": "sha512-kifAF4ZPD77qZKc4CKLmozq6GY1sBzPEJTIJb0wWFK6HsePJatK3jXplZn2eeAt3x67CDozgi7/rO8fNQ/AL7A==",
|
| 2940 |
"license": "MIT",
|
| 2941 |
"dependencies": {
|
| 2942 |
+
"jerrypick": "^1.1.1"
|
| 2943 |
+
},
|
| 2944 |
+
"engines": {
|
| 2945 |
+
"node": ">=12"
|
| 2946 |
},
|
| 2947 |
"peerDependencies": {
|
| 2948 |
+
"react": ">=16.13.1"
|
| 2949 |
+
}
|
| 2950 |
+
},
|
| 2951 |
+
"node_modules/react-refresh": {
|
| 2952 |
+
"version": "0.17.0",
|
| 2953 |
+
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz",
|
| 2954 |
+
"integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==",
|
| 2955 |
+
"dev": true,
|
| 2956 |
+
"license": "MIT",
|
| 2957 |
+
"engines": {
|
| 2958 |
+
"node": ">=0.10.0"
|
| 2959 |
}
|
| 2960 |
},
|
| 2961 |
"node_modules/resolve-from": {
|
|
|
|
| 2968 |
"node": ">=4"
|
| 2969 |
}
|
| 2970 |
},
|
| 2971 |
+
"node_modules/rollup": {
|
| 2972 |
+
"version": "4.60.1",
|
| 2973 |
+
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz",
|
| 2974 |
+
"integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==",
|
| 2975 |
"dev": true,
|
| 2976 |
"license": "MIT",
|
| 2977 |
"dependencies": {
|
| 2978 |
+
"@types/estree": "1.0.8"
|
|
|
|
| 2979 |
},
|
| 2980 |
"bin": {
|
| 2981 |
+
"rollup": "dist/bin/rollup"
|
| 2982 |
},
|
| 2983 |
"engines": {
|
| 2984 |
+
"node": ">=18.0.0",
|
| 2985 |
+
"npm": ">=8.0.0"
|
| 2986 |
},
|
| 2987 |
"optionalDependencies": {
|
| 2988 |
+
"@rollup/rollup-android-arm-eabi": "4.60.1",
|
| 2989 |
+
"@rollup/rollup-android-arm64": "4.60.1",
|
| 2990 |
+
"@rollup/rollup-darwin-arm64": "4.60.1",
|
| 2991 |
+
"@rollup/rollup-darwin-x64": "4.60.1",
|
| 2992 |
+
"@rollup/rollup-freebsd-arm64": "4.60.1",
|
| 2993 |
+
"@rollup/rollup-freebsd-x64": "4.60.1",
|
| 2994 |
+
"@rollup/rollup-linux-arm-gnueabihf": "4.60.1",
|
| 2995 |
+
"@rollup/rollup-linux-arm-musleabihf": "4.60.1",
|
| 2996 |
+
"@rollup/rollup-linux-arm64-gnu": "4.60.1",
|
| 2997 |
+
"@rollup/rollup-linux-arm64-musl": "4.60.1",
|
| 2998 |
+
"@rollup/rollup-linux-loong64-gnu": "4.60.1",
|
| 2999 |
+
"@rollup/rollup-linux-loong64-musl": "4.60.1",
|
| 3000 |
+
"@rollup/rollup-linux-ppc64-gnu": "4.60.1",
|
| 3001 |
+
"@rollup/rollup-linux-ppc64-musl": "4.60.1",
|
| 3002 |
+
"@rollup/rollup-linux-riscv64-gnu": "4.60.1",
|
| 3003 |
+
"@rollup/rollup-linux-riscv64-musl": "4.60.1",
|
| 3004 |
+
"@rollup/rollup-linux-s390x-gnu": "4.60.1",
|
| 3005 |
+
"@rollup/rollup-linux-x64-gnu": "4.60.1",
|
| 3006 |
+
"@rollup/rollup-linux-x64-musl": "4.60.1",
|
| 3007 |
+
"@rollup/rollup-openbsd-x64": "4.60.1",
|
| 3008 |
+
"@rollup/rollup-openharmony-arm64": "4.60.1",
|
| 3009 |
+
"@rollup/rollup-win32-arm64-msvc": "4.60.1",
|
| 3010 |
+
"@rollup/rollup-win32-ia32-msvc": "4.60.1",
|
| 3011 |
+
"@rollup/rollup-win32-x64-gnu": "4.60.1",
|
| 3012 |
+
"@rollup/rollup-win32-x64-msvc": "4.60.1",
|
| 3013 |
+
"fsevents": "~2.3.2"
|
| 3014 |
+
}
|
| 3015 |
},
|
| 3016 |
"node_modules/scheduler": {
|
| 3017 |
+
"version": "0.23.2",
|
| 3018 |
+
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
|
| 3019 |
+
"integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
|
| 3020 |
+
"license": "MIT",
|
| 3021 |
+
"dependencies": {
|
| 3022 |
+
"loose-envify": "^1.1.0"
|
| 3023 |
+
}
|
| 3024 |
},
|
| 3025 |
"node_modules/semver": {
|
| 3026 |
"version": "6.3.1",
|
|
|
|
| 3091 |
"node": ">=8"
|
| 3092 |
}
|
| 3093 |
},
|
| 3094 |
+
"node_modules/three": {
|
| 3095 |
+
"version": "0.183.2",
|
| 3096 |
+
"resolved": "https://registry.npmjs.org/three/-/three-0.183.2.tgz",
|
| 3097 |
+
"integrity": "sha512-di3BsL2FEQ1PA7Hcvn4fyJOlxRRgFYBpMTcyOgkwJIaDOdJMebEFPA+t98EvjuljDx4hNulAGwF6KIjtwI5jgQ==",
|
| 3098 |
+
"license": "MIT",
|
| 3099 |
+
"peer": true
|
| 3100 |
+
},
|
| 3101 |
+
"node_modules/three-forcegraph": {
|
| 3102 |
+
"version": "1.43.2",
|
| 3103 |
+
"resolved": "https://registry.npmjs.org/three-forcegraph/-/three-forcegraph-1.43.2.tgz",
|
| 3104 |
+
"integrity": "sha512-KUlqDaWVsrYtKx0NVVi5M3NR46K5JQIiPEzZnTMvBq7EHVF2tJpWtgGiAT1mhaerrlJ7F4UGNS2rIVYHmVrzYw==",
|
| 3105 |
+
"license": "MIT",
|
| 3106 |
+
"dependencies": {
|
| 3107 |
+
"accessor-fn": "1",
|
| 3108 |
+
"d3-array": "1 - 3",
|
| 3109 |
+
"d3-force-3d": "2 - 3",
|
| 3110 |
+
"d3-scale": "1 - 4",
|
| 3111 |
+
"d3-scale-chromatic": "1 - 3",
|
| 3112 |
+
"data-bind-mapper": "1",
|
| 3113 |
+
"kapsule": "^1.16",
|
| 3114 |
+
"ngraph.forcelayout": "3",
|
| 3115 |
+
"ngraph.graph": "20",
|
| 3116 |
+
"tinycolor2": "1"
|
| 3117 |
+
},
|
| 3118 |
+
"engines": {
|
| 3119 |
+
"node": ">=12"
|
| 3120 |
+
},
|
| 3121 |
+
"peerDependencies": {
|
| 3122 |
+
"three": ">=0.118.3"
|
| 3123 |
+
}
|
| 3124 |
+
},
|
| 3125 |
+
"node_modules/three-render-objects": {
|
| 3126 |
+
"version": "1.41.1",
|
| 3127 |
+
"resolved": "https://registry.npmjs.org/three-render-objects/-/three-render-objects-1.41.1.tgz",
|
| 3128 |
+
"integrity": "sha512-0H7l7yREPVKfO3HL7RjPQ67T0phHgnyMeEc4ww/OCEfK6jbsm7psEcrR0SGFqGDyS/pDQTPi4DyPbS/xlHRJKw==",
|
| 3129 |
+
"license": "MIT",
|
| 3130 |
+
"dependencies": {
|
| 3131 |
+
"@tweenjs/tween.js": "18 - 25",
|
| 3132 |
+
"accessor-fn": "1",
|
| 3133 |
+
"float-tooltip": "^1.7",
|
| 3134 |
+
"kapsule": "^1.16",
|
| 3135 |
+
"polished": "4"
|
| 3136 |
+
},
|
| 3137 |
+
"engines": {
|
| 3138 |
+
"node": ">=12"
|
| 3139 |
+
},
|
| 3140 |
+
"peerDependencies": {
|
| 3141 |
+
"three": ">=0.179"
|
| 3142 |
+
}
|
| 3143 |
+
},
|
| 3144 |
+
"node_modules/tinycolor2": {
|
| 3145 |
+
"version": "1.6.0",
|
| 3146 |
+
"resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
|
| 3147 |
+
"integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==",
|
| 3148 |
+
"license": "MIT"
|
| 3149 |
+
},
|
| 3150 |
"node_modules/tinyglobby": {
|
| 3151 |
+
"version": "0.2.16",
|
| 3152 |
+
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
|
| 3153 |
+
"integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
|
| 3154 |
"dev": true,
|
| 3155 |
"license": "MIT",
|
| 3156 |
"dependencies": {
|
| 3157 |
"fdir": "^6.5.0",
|
| 3158 |
+
"picomatch": "^4.0.4"
|
| 3159 |
},
|
| 3160 |
"engines": {
|
| 3161 |
"node": ">=12.0.0"
|
|
|
|
| 3164 |
"url": "https://github.com/sponsors/SuperchupuDev"
|
| 3165 |
}
|
| 3166 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3167 |
"node_modules/type-check": {
|
| 3168 |
"version": "0.4.0",
|
| 3169 |
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
|
|
|
|
| 3219 |
}
|
| 3220 |
},
|
| 3221 |
"node_modules/vite": {
|
| 3222 |
+
"version": "6.4.2",
|
| 3223 |
+
"resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz",
|
| 3224 |
+
"integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==",
|
| 3225 |
"dev": true,
|
| 3226 |
"license": "MIT",
|
| 3227 |
"peer": true,
|
| 3228 |
"dependencies": {
|
| 3229 |
+
"esbuild": "^0.25.0",
|
| 3230 |
+
"fdir": "^6.4.4",
|
| 3231 |
+
"picomatch": "^4.0.2",
|
| 3232 |
+
"postcss": "^8.5.3",
|
| 3233 |
+
"rollup": "^4.34.9",
|
| 3234 |
+
"tinyglobby": "^0.2.13"
|
| 3235 |
},
|
| 3236 |
"bin": {
|
| 3237 |
"vite": "bin/vite.js"
|
| 3238 |
},
|
| 3239 |
"engines": {
|
| 3240 |
+
"node": "^18.0.0 || ^20.0.0 || >=22.0.0"
|
| 3241 |
},
|
| 3242 |
"funding": {
|
| 3243 |
"url": "https://github.com/vitejs/vite?sponsor=1"
|
|
|
|
| 3246 |
"fsevents": "~2.3.3"
|
| 3247 |
},
|
| 3248 |
"peerDependencies": {
|
| 3249 |
+
"@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
|
|
|
|
|
|
|
| 3250 |
"jiti": ">=1.21.0",
|
| 3251 |
+
"less": "*",
|
| 3252 |
+
"lightningcss": "^1.21.0",
|
| 3253 |
+
"sass": "*",
|
| 3254 |
+
"sass-embedded": "*",
|
| 3255 |
+
"stylus": "*",
|
| 3256 |
+
"sugarss": "*",
|
| 3257 |
"terser": "^5.16.0",
|
| 3258 |
"tsx": "^4.8.1",
|
| 3259 |
"yaml": "^2.4.2"
|
|
|
|
| 3262 |
"@types/node": {
|
| 3263 |
"optional": true
|
| 3264 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3265 |
"jiti": {
|
| 3266 |
"optional": true
|
| 3267 |
},
|
| 3268 |
"less": {
|
| 3269 |
"optional": true
|
| 3270 |
},
|
| 3271 |
+
"lightningcss": {
|
| 3272 |
+
"optional": true
|
| 3273 |
+
},
|
| 3274 |
"sass": {
|
| 3275 |
"optional": true
|
| 3276 |
},
|
|
|
|
| 3339 |
"funding": {
|
| 3340 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 3341 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3342 |
}
|
| 3343 |
}
|
| 3344 |
}
|
frontend/package.json
CHANGED
|
@@ -11,7 +11,9 @@
|
|
| 11 |
},
|
| 12 |
"dependencies": {
|
| 13 |
"react": "^18.3.1",
|
| 14 |
-
"react-dom": "^18.3.1"
|
|
|
|
|
|
|
| 15 |
},
|
| 16 |
"devDependencies": {
|
| 17 |
"@eslint/js": "^9.15.0",
|
|
|
|
| 11 |
},
|
| 12 |
"dependencies": {
|
| 13 |
"react": "^18.3.1",
|
| 14 |
+
"react-dom": "^18.3.1",
|
| 15 |
+
"react-force-graph-3d": "^1.29.1",
|
| 16 |
+
"three": "^0.183.2"
|
| 17 |
},
|
| 18 |
"devDependencies": {
|
| 19 |
"@eslint/js": "^9.15.0",
|
frontend/src/components/KnowledgeGraph.css
CHANGED
|
@@ -20,18 +20,7 @@
|
|
| 20 |
z-index: 0;
|
| 21 |
}
|
| 22 |
|
| 23 |
-
.graph-canvas {
|
| 24 |
-
display: block;
|
| 25 |
-
width: 100%;
|
| 26 |
-
height: 100%;
|
| 27 |
-
cursor: grab;
|
| 28 |
-
z-index: 1;
|
| 29 |
-
position: relative;
|
| 30 |
-
}
|
| 31 |
|
| 32 |
-
.graph-canvas:active {
|
| 33 |
-
cursor: grabbing;
|
| 34 |
-
}
|
| 35 |
|
| 36 |
/* ββ Header Bar ββ */
|
| 37 |
.graph-header {
|
|
|
|
| 20 |
z-index: 0;
|
| 21 |
}
|
| 22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
|
|
|
|
|
|
|
|
|
|
| 24 |
|
| 25 |
/* ββ Header Bar ββ */
|
| 26 |
.graph-header {
|
frontend/src/components/KnowledgeGraph.jsx
CHANGED
|
@@ -1,72 +1,36 @@
|
|
| 1 |
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
|
|
|
|
|
| 2 |
import './KnowledgeGraph.css';
|
| 3 |
|
| 4 |
-
/* ================================================================
|
| 5 |
-
KnowledgeGraph β Canvas-based Force-Directed Graph Visualizer
|
| 6 |
-
Zero external dependencies. Pure physics simulation on <canvas>.
|
| 7 |
-
================================================================ */
|
| 8 |
-
|
| 9 |
-
// ββ Physics Constants βββββββββββββββββββββββββββββββββββββββββββ
|
| 10 |
-
const REPULSION = 12000; // Coulomb repulsion between nodes
|
| 11 |
-
const ATTRACTION = 0.005; // Spring attraction along edges
|
| 12 |
-
const DAMPING = 0.90; // Velocity damping per frame
|
| 13 |
-
const CENTER_PULL = 0.004; // Gravity toward canvas center
|
| 14 |
-
const MIN_DIST = 90; // Min distance before repulsion caps
|
| 15 |
-
const DT = 0.8; // Simulation timestep
|
| 16 |
-
|
| 17 |
-
// ββ Visual Constants ββββββββββββββββββββββββββββββββββββββββββββ
|
| 18 |
-
const NODE_BASE_RADIUS = 6;
|
| 19 |
-
const NODE_SCALE_FACTOR = 2.5;
|
| 20 |
-
const NODE_MAX_RADIUS = 22;
|
| 21 |
-
const EDGE_WIDTH = 0.8;
|
| 22 |
-
const LABEL_FONT = '600 9px "JetBrains Mono", monospace';
|
| 23 |
-
const EDGE_LABEL_FONT = '500 7px "JetBrains Mono", monospace';
|
| 24 |
-
|
| 25 |
-
// ββ Color Palette βββββββββββββββββββββββββββββββββββββββββββββββ
|
| 26 |
-
const COLORS = {
|
| 27 |
-
nodeFill: 'rgba(71, 191, 255, 0.9)',
|
| 28 |
-
nodeGlow: 'rgba(71, 191, 255, 0.35)',
|
| 29 |
-
nodeStroke: 'rgba(71, 191, 255, 0.6)',
|
| 30 |
-
nodeHover: 'rgba(71, 191, 255, 1)',
|
| 31 |
-
nodeHoverGlow: 'rgba(71, 191, 255, 0.6)',
|
| 32 |
-
edgeLine: 'rgba(134, 59, 255, 0.25)',
|
| 33 |
-
edgeHover: 'rgba(134, 59, 255, 0.55)',
|
| 34 |
-
edgeLabel: 'rgba(134, 59, 255, 0.5)',
|
| 35 |
-
labelText: 'rgba(224, 224, 224, 0.85)',
|
| 36 |
-
labelDim: 'rgba(224, 224, 224, 0.4)',
|
| 37 |
-
bg: '#080808',
|
| 38 |
-
gridLine: 'rgba(255, 255, 255, 0.03)',
|
| 39 |
-
particleColor: 'rgba(71, 191, 255, 0.6)',
|
| 40 |
-
nodeHighlight: 'rgba(255, 215, 0, 0.8)',
|
| 41 |
-
nodeHighlightGlow: 'rgba(255, 215, 0, 0.3)',
|
| 42 |
-
};
|
| 43 |
-
|
| 44 |
-
|
| 45 |
function KnowledgeGraph({ highlightedNodes = [] }) {
|
| 46 |
-
const
|
| 47 |
-
const
|
| 48 |
-
const nodesRef = useRef([]);
|
| 49 |
-
const edgesRef = useRef([]);
|
| 50 |
-
const particlesRef = useRef([]);
|
| 51 |
-
const dragNodeRef = useRef(null);
|
| 52 |
-
const hoverNodeRef = useRef(null);
|
| 53 |
-
const panRef = useRef({ x: 0, y: 0 });
|
| 54 |
-
const zoomRef = useRef(1);
|
| 55 |
-
const mouseRef = useRef({ x: 0, y: 0, canvasX: 0, canvasY: 0 });
|
| 56 |
-
const isDraggingRef = useRef(false);
|
| 57 |
-
const isPanningRef = useRef(false);
|
| 58 |
-
const panStartRef = useRef({ x: 0, y: 0, panX: 0, panY: 0 });
|
| 59 |
-
const showLabelsRef = useRef(true);
|
| 60 |
-
const highlightedRef = useRef([]);
|
| 61 |
|
| 62 |
-
const [graphData, setGraphData]
|
| 63 |
-
const [loading, setLoading]
|
| 64 |
-
const [stats, setStats]
|
| 65 |
const [graphStatus, setGraphStatus] = useState('loading');
|
| 66 |
-
const [showLabels, setShowLabels]
|
|
|
|
| 67 |
const [tooltipData, setTooltipData] = useState(null);
|
| 68 |
|
| 69 |
-
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
const fetchGraph = useCallback(async () => {
|
| 71 |
setLoading(true);
|
| 72 |
setGraphStatus('loading');
|
|
@@ -76,483 +40,67 @@ function KnowledgeGraph({ highlightedNodes = [] }) {
|
|
| 76 |
|
| 77 |
if (data.status === 'offline') {
|
| 78 |
setGraphStatus('offline');
|
| 79 |
-
setGraphData({ nodes: [],
|
| 80 |
setStats({ nodes: 0, edges: 0 });
|
| 81 |
} else if (data.nodes.length === 0) {
|
| 82 |
setGraphStatus('empty');
|
| 83 |
-
setGraphData({ nodes: [],
|
| 84 |
setStats({ nodes: 0, edges: 0 });
|
| 85 |
} else {
|
| 86 |
setGraphStatus('online');
|
| 87 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 88 |
setStats({ nodes: data.nodes.length, edges: data.edges.length });
|
| 89 |
-
initializePhysics(data);
|
| 90 |
}
|
| 91 |
} catch (err) {
|
| 92 |
console.error('Failed to fetch graph:', err);
|
| 93 |
setGraphStatus('error');
|
| 94 |
-
setGraphData({ nodes: [],
|
| 95 |
}
|
| 96 |
setLoading(false);
|
| 97 |
}, []);
|
| 98 |
|
| 99 |
-
// ββ Initialize Physics Nodes ββββββββββββββββββββββββββββββββ
|
| 100 |
-
const initializePhysics = useCallback((data) => {
|
| 101 |
-
const canvas = canvasRef.current;
|
| 102 |
-
if (!canvas) return;
|
| 103 |
-
|
| 104 |
-
const cx = canvas.clientWidth / 2;
|
| 105 |
-
const cy = canvas.clientHeight / 2;
|
| 106 |
-
|
| 107 |
-
// Spread nodes in a circle around center
|
| 108 |
-
const angleStep = (2 * Math.PI) / Math.max(data.nodes.length, 1);
|
| 109 |
-
const spread = Math.min(cx, cy) * 0.5;
|
| 110 |
-
|
| 111 |
-
nodesRef.current = data.nodes.map((n, i) => ({
|
| 112 |
-
id: n.id,
|
| 113 |
-
label: n.label,
|
| 114 |
-
connections: n.connections || 0,
|
| 115 |
-
x: cx + Math.cos(angleStep * i) * spread * (0.5 + Math.random() * 0.5),
|
| 116 |
-
y: cy + Math.sin(angleStep * i) * spread * (0.5 + Math.random() * 0.5),
|
| 117 |
-
vx: 0,
|
| 118 |
-
vy: 0,
|
| 119 |
-
radius: Math.min(NODE_BASE_RADIUS + (n.connections || 0) * NODE_SCALE_FACTOR, NODE_MAX_RADIUS),
|
| 120 |
-
}));
|
| 121 |
-
|
| 122 |
-
edgesRef.current = data.edges.map(e => ({
|
| 123 |
-
source: e.source,
|
| 124 |
-
target: e.target,
|
| 125 |
-
label: e.label,
|
| 126 |
-
}));
|
| 127 |
-
|
| 128 |
-
// Initialize edge particles
|
| 129 |
-
particlesRef.current = edgesRef.current.map(() => ({
|
| 130 |
-
t: Math.random(), // position along edge [0, 1]
|
| 131 |
-
speed: 0.002 + Math.random() * 0.003,
|
| 132 |
-
}));
|
| 133 |
-
|
| 134 |
-
// Center the view
|
| 135 |
-
panRef.current = { x: 0, y: 0 };
|
| 136 |
-
zoomRef.current = 1;
|
| 137 |
-
}, []);
|
| 138 |
-
|
| 139 |
-
// ββ Physics Step ββββββββββββββββββββββββββββββββββββββββββββ
|
| 140 |
-
const physicsStep = useCallback(() => {
|
| 141 |
-
const nodes = nodesRef.current;
|
| 142 |
-
const edges = edgesRef.current;
|
| 143 |
-
const canvas = canvasRef.current;
|
| 144 |
-
if (!canvas || nodes.length === 0) return;
|
| 145 |
-
|
| 146 |
-
const cx = canvas.clientWidth / 2;
|
| 147 |
-
const cy = canvas.clientHeight / 2;
|
| 148 |
-
|
| 149 |
-
// Node-node repulsion
|
| 150 |
-
for (let i = 0; i < nodes.length; i++) {
|
| 151 |
-
for (let j = i + 1; j < nodes.length; j++) {
|
| 152 |
-
let dx = nodes[j].x - nodes[i].x;
|
| 153 |
-
let dy = nodes[j].y - nodes[i].y;
|
| 154 |
-
let dist = Math.sqrt(dx * dx + dy * dy);
|
| 155 |
-
if (dist < MIN_DIST) dist = MIN_DIST;
|
| 156 |
-
|
| 157 |
-
const force = REPULSION / (dist * dist);
|
| 158 |
-
const fx = (dx / dist) * force;
|
| 159 |
-
const fy = (dy / dist) * force;
|
| 160 |
-
|
| 161 |
-
nodes[i].vx -= fx * DT;
|
| 162 |
-
nodes[i].vy -= fy * DT;
|
| 163 |
-
nodes[j].vx += fx * DT;
|
| 164 |
-
nodes[j].vy += fy * DT;
|
| 165 |
-
}
|
| 166 |
-
}
|
| 167 |
-
|
| 168 |
-
// Edge attraction (spring)
|
| 169 |
-
const nodeMap = {};
|
| 170 |
-
nodes.forEach(n => { nodeMap[n.id] = n; });
|
| 171 |
-
|
| 172 |
-
for (const edge of edges) {
|
| 173 |
-
const src = nodeMap[edge.source];
|
| 174 |
-
const tgt = nodeMap[edge.target];
|
| 175 |
-
if (!src || !tgt) continue;
|
| 176 |
-
|
| 177 |
-
const dx = tgt.x - src.x;
|
| 178 |
-
const dy = tgt.y - src.y;
|
| 179 |
-
const dist = Math.sqrt(dx * dx + dy * dy);
|
| 180 |
-
if (dist < 1) continue;
|
| 181 |
-
|
| 182 |
-
const force = ATTRACTION * dist;
|
| 183 |
-
const fx = (dx / dist) * force;
|
| 184 |
-
const fy = (dy / dist) * force;
|
| 185 |
-
|
| 186 |
-
src.vx += fx * DT;
|
| 187 |
-
src.vy += fy * DT;
|
| 188 |
-
tgt.vx -= fx * DT;
|
| 189 |
-
tgt.vy -= fy * DT;
|
| 190 |
-
}
|
| 191 |
-
|
| 192 |
-
// Center gravity + velocity integration
|
| 193 |
-
for (const node of nodes) {
|
| 194 |
-
if (dragNodeRef.current && node.id === dragNodeRef.current.id) continue;
|
| 195 |
-
|
| 196 |
-
node.vx += (cx - node.x) * CENTER_PULL * DT;
|
| 197 |
-
node.vy += (cy - node.y) * CENTER_PULL * DT;
|
| 198 |
-
|
| 199 |
-
node.vx *= DAMPING;
|
| 200 |
-
node.vy *= DAMPING;
|
| 201 |
-
|
| 202 |
-
node.x += node.vx;
|
| 203 |
-
node.y += node.vy;
|
| 204 |
-
}
|
| 205 |
-
|
| 206 |
-
// Advance particles
|
| 207 |
-
particlesRef.current.forEach(p => {
|
| 208 |
-
p.t += p.speed;
|
| 209 |
-
if (p.t > 1) p.t -= 1;
|
| 210 |
-
});
|
| 211 |
-
}, []);
|
| 212 |
-
|
| 213 |
-
// ββ Render Frame ββββββββββββββββββββββββββββββββββββββββββββ
|
| 214 |
-
const render = useCallback(() => {
|
| 215 |
-
const canvas = canvasRef.current;
|
| 216 |
-
if (!canvas) return;
|
| 217 |
-
const ctx = canvas.getContext('2d');
|
| 218 |
-
const W = canvas.clientWidth;
|
| 219 |
-
const H = canvas.clientHeight;
|
| 220 |
-
const nodes = nodesRef.current;
|
| 221 |
-
const edges = edgesRef.current;
|
| 222 |
-
const particles = particlesRef.current;
|
| 223 |
-
const nodeMap = {};
|
| 224 |
-
nodes.forEach(n => { nodeMap[n.id] = n; });
|
| 225 |
-
|
| 226 |
-
const zoom = zoomRef.current;
|
| 227 |
-
const pan = panRef.current;
|
| 228 |
-
|
| 229 |
-
ctx.clearRect(0, 0, W, H);
|
| 230 |
-
ctx.fillStyle = COLORS.bg;
|
| 231 |
-
ctx.fillRect(0, 0, W, H);
|
| 232 |
-
|
| 233 |
-
// Draw subtle grid
|
| 234 |
-
ctx.save();
|
| 235 |
-
ctx.translate(pan.x, pan.y);
|
| 236 |
-
ctx.scale(zoom, zoom);
|
| 237 |
-
|
| 238 |
-
const gridSize = 40;
|
| 239 |
-
ctx.strokeStyle = COLORS.gridLine;
|
| 240 |
-
ctx.lineWidth = 0.5 / zoom;
|
| 241 |
-
const startX = -pan.x / zoom - 200;
|
| 242 |
-
const endX = (W - pan.x) / zoom + 200;
|
| 243 |
-
const startY = -pan.y / zoom - 200;
|
| 244 |
-
const endY = (H - pan.y) / zoom + 200;
|
| 245 |
-
|
| 246 |
-
for (let x = Math.floor(startX / gridSize) * gridSize; x < endX; x += gridSize) {
|
| 247 |
-
ctx.beginPath();
|
| 248 |
-
ctx.moveTo(x, startY);
|
| 249 |
-
ctx.lineTo(x, endY);
|
| 250 |
-
ctx.stroke();
|
| 251 |
-
}
|
| 252 |
-
for (let y = Math.floor(startY / gridSize) * gridSize; y < endY; y += gridSize) {
|
| 253 |
-
ctx.beginPath();
|
| 254 |
-
ctx.moveTo(startX, y);
|
| 255 |
-
ctx.lineTo(endX, y);
|
| 256 |
-
ctx.stroke();
|
| 257 |
-
}
|
| 258 |
-
|
| 259 |
-
// ββ Draw Edges ββββββββββββββββββββββββββββββββββββββ
|
| 260 |
-
edges.forEach((edge, idx) => {
|
| 261 |
-
const src = nodeMap[edge.source];
|
| 262 |
-
const tgt = nodeMap[edge.target];
|
| 263 |
-
if (!src || !tgt) return;
|
| 264 |
-
|
| 265 |
-
const isHovered = hoverNodeRef.current &&
|
| 266 |
-
(edge.source === hoverNodeRef.current.id || edge.target === hoverNodeRef.current.id);
|
| 267 |
-
|
| 268 |
-
// Edge line
|
| 269 |
-
const grad = ctx.createLinearGradient(src.x, src.y, tgt.x, tgt.y);
|
| 270 |
-
if (isHovered) {
|
| 271 |
-
grad.addColorStop(0, 'rgba(71, 191, 255, 0.5)');
|
| 272 |
-
grad.addColorStop(1, 'rgba(134, 59, 255, 0.5)');
|
| 273 |
-
} else {
|
| 274 |
-
grad.addColorStop(0, 'rgba(71, 191, 255, 0.12)');
|
| 275 |
-
grad.addColorStop(1, COLORS.edgeLine);
|
| 276 |
-
}
|
| 277 |
-
|
| 278 |
-
ctx.beginPath();
|
| 279 |
-
ctx.moveTo(src.x, src.y);
|
| 280 |
-
ctx.lineTo(tgt.x, tgt.y);
|
| 281 |
-
ctx.strokeStyle = grad;
|
| 282 |
-
ctx.lineWidth = isHovered ? 1.5 / zoom : EDGE_WIDTH / zoom;
|
| 283 |
-
ctx.stroke();
|
| 284 |
-
|
| 285 |
-
// Edge particle
|
| 286 |
-
if (particles[idx]) {
|
| 287 |
-
const p = particles[idx];
|
| 288 |
-
const px = src.x + (tgt.x - src.x) * p.t;
|
| 289 |
-
const py = src.y + (tgt.y - src.y) * p.t;
|
| 290 |
-
ctx.beginPath();
|
| 291 |
-
ctx.arc(px, py, (isHovered ? 2.5 : 1.5) / zoom, 0, Math.PI * 2);
|
| 292 |
-
ctx.fillStyle = COLORS.particleColor;
|
| 293 |
-
ctx.fill();
|
| 294 |
-
}
|
| 295 |
-
|
| 296 |
-
// Edge label (only when hovered or labels enabled)
|
| 297 |
-
if (isHovered && showLabelsRef.current) {
|
| 298 |
-
const mx = (src.x + tgt.x) / 2;
|
| 299 |
-
const my = (src.y + tgt.y) / 2;
|
| 300 |
-
ctx.font = EDGE_LABEL_FONT;
|
| 301 |
-
ctx.fillStyle = COLORS.edgeLabel;
|
| 302 |
-
ctx.textAlign = 'center';
|
| 303 |
-
ctx.textBaseline = 'bottom';
|
| 304 |
-
ctx.fillText(edge.label.replace(/_/g, ' '), mx, my - 4 / zoom);
|
| 305 |
-
}
|
| 306 |
-
});
|
| 307 |
-
|
| 308 |
-
// ββ Draw Nodes ββββββββββββββββββββββββββββββββββββββ
|
| 309 |
-
nodes.forEach(node => {
|
| 310 |
-
const isHovered = hoverNodeRef.current && hoverNodeRef.current.id === node.id;
|
| 311 |
-
const r = node.radius;
|
| 312 |
-
|
| 313 |
-
// Glow effect
|
| 314 |
-
const glowRadius = isHovered ? r * 3.5 : r * 2.5;
|
| 315 |
-
const glow = ctx.createRadialGradient(node.x, node.y, r * 0.5, node.x, node.y, glowRadius);
|
| 316 |
-
glow.addColorStop(0, isHovered ? COLORS.nodeHoverGlow : COLORS.nodeGlow);
|
| 317 |
-
glow.addColorStop(1, 'transparent');
|
| 318 |
-
ctx.beginPath();
|
| 319 |
-
ctx.arc(node.x, node.y, glowRadius, 0, Math.PI * 2);
|
| 320 |
-
ctx.fillStyle = glow;
|
| 321 |
-
ctx.fill();
|
| 322 |
-
|
| 323 |
-
// Node circle
|
| 324 |
-
const isHighlighted = highlightedRef.current.includes(node.id) || highlightedRef.current.includes(node.label);
|
| 325 |
-
|
| 326 |
-
// Node circle
|
| 327 |
-
ctx.beginPath();
|
| 328 |
-
ctx.arc(node.x, node.y, r, 0, Math.PI * 2);
|
| 329 |
-
|
| 330 |
-
if (isHighlighted) {
|
| 331 |
-
// High-intensity highlight
|
| 332 |
-
ctx.fillStyle = COLORS.nodeHighlight;
|
| 333 |
-
// Extra glow for highlighted nodes
|
| 334 |
-
const pulse = 1 + Math.sin(Date.now() / 150) * 0.2;
|
| 335 |
-
const hGlow = ctx.createRadialGradient(node.x, node.y, r * 0.5, node.x, node.y, r * 4 * pulse);
|
| 336 |
-
hGlow.addColorStop(0, COLORS.nodeHighlightGlow);
|
| 337 |
-
hGlow.addColorStop(1, 'transparent');
|
| 338 |
-
ctx.save();
|
| 339 |
-
ctx.globalCompositeOperation = 'screen';
|
| 340 |
-
ctx.fillStyle = hGlow;
|
| 341 |
-
ctx.beginPath();
|
| 342 |
-
ctx.arc(node.x, node.y, r * 4 * pulse, 0, Math.PI * 2);
|
| 343 |
-
ctx.fill();
|
| 344 |
-
ctx.restore();
|
| 345 |
-
|
| 346 |
-
ctx.fillStyle = COLORS.nodeHighlight;
|
| 347 |
-
} else {
|
| 348 |
-
ctx.fillStyle = isHovered ? COLORS.nodeHover : COLORS.nodeFill;
|
| 349 |
-
}
|
| 350 |
-
|
| 351 |
-
ctx.fill();
|
| 352 |
-
ctx.strokeStyle = isHighlighted ? COLORS.nodeHighlight : COLORS.nodeStroke;
|
| 353 |
-
ctx.lineWidth = (isHovered || isHighlighted ? 2 : 1) / zoom;
|
| 354 |
-
ctx.stroke();
|
| 355 |
-
|
| 356 |
-
// Inner highlight
|
| 357 |
-
ctx.beginPath();
|
| 358 |
-
ctx.arc(node.x - r * 0.2, node.y - r * 0.2, r * 0.35, 0, Math.PI * 2);
|
| 359 |
-
ctx.fillStyle = 'rgba(255, 255, 255, 0.15)';
|
| 360 |
-
ctx.fill();
|
| 361 |
-
|
| 362 |
-
// Label
|
| 363 |
-
if (showLabelsRef.current) {
|
| 364 |
-
ctx.font = LABEL_FONT;
|
| 365 |
-
ctx.fillStyle = isHovered ? COLORS.labelText : COLORS.labelDim;
|
| 366 |
-
ctx.textAlign = 'center';
|
| 367 |
-
ctx.textBaseline = 'top';
|
| 368 |
-
ctx.fillText(node.label, node.x, node.y + r + 6 / zoom);
|
| 369 |
-
}
|
| 370 |
-
});
|
| 371 |
-
|
| 372 |
-
ctx.restore();
|
| 373 |
-
}, []);
|
| 374 |
-
|
| 375 |
-
// ββ Animation Loop ββββββββββββββββββββββββββββββββββββββββββ
|
| 376 |
-
useEffect(() => {
|
| 377 |
-
const loop = () => {
|
| 378 |
-
physicsStep();
|
| 379 |
-
render();
|
| 380 |
-
animFrameRef.current = requestAnimationFrame(loop);
|
| 381 |
-
};
|
| 382 |
-
animFrameRef.current = requestAnimationFrame(loop);
|
| 383 |
-
return () => cancelAnimationFrame(animFrameRef.current);
|
| 384 |
-
}, [physicsStep, render]);
|
| 385 |
-
|
| 386 |
-
// ββ Canvas Resize βββββββββββββββββββββββββββββββββββββββββββ
|
| 387 |
-
useEffect(() => {
|
| 388 |
-
const resize = () => {
|
| 389 |
-
const canvas = canvasRef.current;
|
| 390 |
-
if (!canvas) return;
|
| 391 |
-
const parent = canvas.parentElement;
|
| 392 |
-
const dpr = window.devicePixelRatio || 1;
|
| 393 |
-
canvas.width = parent.clientWidth * dpr;
|
| 394 |
-
canvas.height = parent.clientHeight * dpr;
|
| 395 |
-
canvas.style.width = parent.clientWidth + 'px';
|
| 396 |
-
canvas.style.height = parent.clientHeight + 'px';
|
| 397 |
-
const ctx = canvas.getContext('2d');
|
| 398 |
-
ctx.scale(dpr, dpr);
|
| 399 |
-
// High-DPI context preserved.
|
| 400 |
-
};
|
| 401 |
-
resize();
|
| 402 |
-
window.addEventListener('resize', resize);
|
| 403 |
-
return () => window.removeEventListener('resize', resize);
|
| 404 |
-
}, []);
|
| 405 |
-
|
| 406 |
-
// ββ Fetch on mount ββββββββββββββββββββββββββββββββββββββββββ
|
| 407 |
useEffect(() => {
|
| 408 |
fetchGraph();
|
| 409 |
}, [fetchGraph]);
|
| 410 |
|
| 411 |
-
|
| 412 |
-
|
| 413 |
-
|
| 414 |
-
|
| 415 |
-
|
| 416 |
-
|
| 417 |
-
|
| 418 |
-
|
| 419 |
-
|
| 420 |
-
|
| 421 |
-
|
| 422 |
-
const n = nodes[i];
|
| 423 |
-
const dx = wx - n.x;
|
| 424 |
-
const dy = wy - n.y;
|
| 425 |
-
if (dx * dx + dy * dy < (n.radius + 6) * (n.radius + 6)) {
|
| 426 |
-
return n;
|
| 427 |
-
}
|
| 428 |
-
}
|
| 429 |
-
return null;
|
| 430 |
-
}, []);
|
| 431 |
-
|
| 432 |
-
// ββ Mouse Events ββββββββββββββββββββββββββββββββββββββββββββ
|
| 433 |
-
const handleMouseDown = useCallback((e) => {
|
| 434 |
-
const rect = canvasRef.current.getBoundingClientRect();
|
| 435 |
-
const sx = e.clientX - rect.left;
|
| 436 |
-
const sy = e.clientY - rect.top;
|
| 437 |
-
const { x: wx, y: wy } = screenToWorld(sx, sy);
|
| 438 |
-
|
| 439 |
-
const node = findNodeAt(wx, wy);
|
| 440 |
-
if (node) {
|
| 441 |
-
dragNodeRef.current = node;
|
| 442 |
-
isDraggingRef.current = true;
|
| 443 |
-
} else {
|
| 444 |
-
isPanningRef.current = true;
|
| 445 |
-
panStartRef.current = {
|
| 446 |
-
x: e.clientX,
|
| 447 |
-
y: e.clientY,
|
| 448 |
-
panX: panRef.current.x,
|
| 449 |
-
panY: panRef.current.y,
|
| 450 |
-
};
|
| 451 |
}
|
| 452 |
-
}, [
|
| 453 |
-
|
| 454 |
-
const handleMouseMove = useCallback((e) => {
|
| 455 |
-
const rect = canvasRef.current.getBoundingClientRect();
|
| 456 |
-
const sx = e.clientX - rect.left;
|
| 457 |
-
const sy = e.clientY - rect.top;
|
| 458 |
-
mouseRef.current = { x: e.clientX, y: e.clientY, canvasX: sx, canvasY: sy };
|
| 459 |
-
|
| 460 |
-
if (isDraggingRef.current && dragNodeRef.current) {
|
| 461 |
-
const { x: wx, y: wy } = screenToWorld(sx, sy);
|
| 462 |
-
dragNodeRef.current.x = wx;
|
| 463 |
-
dragNodeRef.current.y = wy;
|
| 464 |
-
dragNodeRef.current.vx = 0;
|
| 465 |
-
dragNodeRef.current.vy = 0;
|
| 466 |
-
return;
|
| 467 |
-
}
|
| 468 |
-
|
| 469 |
-
if (isPanningRef.current) {
|
| 470 |
-
panRef.current = {
|
| 471 |
-
x: panStartRef.current.panX + (e.clientX - panStartRef.current.x),
|
| 472 |
-
y: panStartRef.current.panY + (e.clientY - panStartRef.current.y),
|
| 473 |
-
};
|
| 474 |
-
return;
|
| 475 |
-
}
|
| 476 |
-
|
| 477 |
-
// Hover detection
|
| 478 |
-
const { x: wx, y: wy } = screenToWorld(sx, sy);
|
| 479 |
-
const node = findNodeAt(wx, wy);
|
| 480 |
-
hoverNodeRef.current = node;
|
| 481 |
-
|
| 482 |
-
if (node) {
|
| 483 |
-
// Build tooltip data with connected relations
|
| 484 |
-
const relations = edgesRef.current
|
| 485 |
-
.filter(e => e.source === node.id || e.target === node.id)
|
| 486 |
-
.slice(0, 5)
|
| 487 |
-
.map(e => ({
|
| 488 |
-
source: e.source,
|
| 489 |
-
target: e.target,
|
| 490 |
-
label: e.label.replace(/_/g, ' '),
|
| 491 |
-
}));
|
| 492 |
-
|
| 493 |
-
setTooltipData({
|
| 494 |
-
name: node.label,
|
| 495 |
-
connections: node.connections,
|
| 496 |
-
relations,
|
| 497 |
-
x: e.clientX,
|
| 498 |
-
y: e.clientY,
|
| 499 |
-
});
|
| 500 |
-
canvasRef.current.style.cursor = 'pointer';
|
| 501 |
-
} else {
|
| 502 |
-
setTooltipData(null);
|
| 503 |
-
canvasRef.current.style.cursor = isPanningRef.current ? 'grabbing' : 'grab';
|
| 504 |
-
}
|
| 505 |
-
}, [screenToWorld, findNodeAt]);
|
| 506 |
-
|
| 507 |
-
const handleMouseUp = useCallback(() => {
|
| 508 |
-
dragNodeRef.current = null;
|
| 509 |
-
isDraggingRef.current = false;
|
| 510 |
-
isPanningRef.current = false;
|
| 511 |
-
}, []);
|
| 512 |
-
|
| 513 |
-
const handleWheel = useCallback((e) => {
|
| 514 |
-
e.preventDefault();
|
| 515 |
-
const rect = canvasRef.current.getBoundingClientRect();
|
| 516 |
-
const sx = e.clientX - rect.left;
|
| 517 |
-
const sy = e.clientY - rect.top;
|
| 518 |
-
|
| 519 |
-
const zoomFactor = e.deltaY > 0 ? 0.92 : 1.08;
|
| 520 |
-
const newZoom = Math.max(0.2, Math.min(5, zoomRef.current * zoomFactor));
|
| 521 |
-
|
| 522 |
-
// Zoom toward cursor
|
| 523 |
-
const worldBefore = screenToWorld(sx, sy);
|
| 524 |
-
zoomRef.current = newZoom;
|
| 525 |
-
const worldAfter = screenToWorld(sx, sy);
|
| 526 |
-
|
| 527 |
-
panRef.current.x += (worldAfter.x - worldBefore.x) * newZoom;
|
| 528 |
-
panRef.current.y += (worldAfter.y - worldBefore.y) * newZoom;
|
| 529 |
-
}, [screenToWorld]);
|
| 530 |
-
|
| 531 |
-
// ββ Attach canvas events ββββββββββββββββββββββββββββββββββββ
|
| 532 |
-
useEffect(() => {
|
| 533 |
-
const canvas = canvasRef.current;
|
| 534 |
-
if (!canvas) return;
|
| 535 |
-
canvas.addEventListener('wheel', handleWheel, { passive: false });
|
| 536 |
-
return () => canvas.removeEventListener('wheel', handleWheel);
|
| 537 |
-
}, [handleWheel]);
|
| 538 |
-
|
| 539 |
-
// ββ Toggle labels sync βββββββββββββββββββββββββββββββββββββ
|
| 540 |
-
useEffect(() => {
|
| 541 |
-
showLabelsRef.current = showLabels;
|
| 542 |
-
}, [showLabels]);
|
| 543 |
-
|
| 544 |
-
useEffect(() => {
|
| 545 |
-
highlightedRef.current = highlightedNodes;
|
| 546 |
-
}, [highlightedNodes]);
|
| 547 |
|
| 548 |
// ββ Render ββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 549 |
return (
|
| 550 |
-
<div className="graph-container">
|
| 551 |
{/* Header Bar */}
|
| 552 |
<div className="graph-header">
|
| 553 |
<div className="graph-title">
|
| 554 |
<div className="pulse-ring" />
|
| 555 |
-
<h2>Neural Mesh Topology</h2>
|
| 556 |
<span className="label-mono" style={{ fontSize: '0.55rem' }}>
|
| 557 |
{graphStatus === 'online' ? 'LIVE' : graphStatus.toUpperCase()}
|
| 558 |
</span>
|
|
@@ -565,8 +113,9 @@ function KnowledgeGraph({ highlightedNodes = [] }) {
|
|
| 565 |
{showLabels ? 'Hide Labels' : 'Show Labels'}
|
| 566 |
</button>
|
| 567 |
<button className="graph-btn" onClick={() => {
|
| 568 |
-
|
| 569 |
-
|
|
|
|
| 570 |
}}>
|
| 571 |
Reset View
|
| 572 |
</button>
|
|
@@ -576,15 +125,44 @@ function KnowledgeGraph({ highlightedNodes = [] }) {
|
|
| 576 |
</div>
|
| 577 |
</div>
|
| 578 |
|
| 579 |
-
{/* Canvas */}
|
| 580 |
-
|
| 581 |
-
|
| 582 |
-
|
| 583 |
-
|
| 584 |
-
|
| 585 |
-
|
| 586 |
-
|
| 587 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 588 |
|
| 589 |
{/* Stats Overlay */}
|
| 590 |
{graphStatus === 'online' && (
|
|
@@ -610,38 +188,13 @@ function KnowledgeGraph({ highlightedNodes = [] }) {
|
|
| 610 |
<div className="graph-legend">
|
| 611 |
<div className="legend-title">Legend</div>
|
| 612 |
<div className="legend-item">
|
| 613 |
-
<div className="legend-dot primary" />
|
| 614 |
<span className="legend-label">Entity Node</span>
|
| 615 |
</div>
|
| 616 |
<div className="legend-item">
|
| 617 |
-
<div className="legend-dot secondary" />
|
| 618 |
-
<span className="legend-label">
|
| 619 |
-
</div>
|
| 620 |
-
</div>
|
| 621 |
-
)}
|
| 622 |
-
|
| 623 |
-
{/* Tooltip */}
|
| 624 |
-
{tooltipData && (
|
| 625 |
-
<div
|
| 626 |
-
className="graph-tooltip visible"
|
| 627 |
-
style={{
|
| 628 |
-
left: tooltipData.x + 16,
|
| 629 |
-
top: tooltipData.y - 10,
|
| 630 |
-
}}
|
| 631 |
-
>
|
| 632 |
-
<div className="tooltip-name">{tooltipData.name}</div>
|
| 633 |
-
<div className="tooltip-detail">
|
| 634 |
-
Connections: {tooltipData.connections}
|
| 635 |
</div>
|
| 636 |
-
{tooltipData.relations.length > 0 && (
|
| 637 |
-
<div className="tooltip-relations">
|
| 638 |
-
{tooltipData.relations.map((r, i) => (
|
| 639 |
-
<div key={i} className="tooltip-relation-item">
|
| 640 |
-
{r.source}<span className="rel-arrow">β</span>{r.label}<span className="rel-arrow">β</span>{r.target}
|
| 641 |
-
</div>
|
| 642 |
-
))}
|
| 643 |
-
</div>
|
| 644 |
-
)}
|
| 645 |
</div>
|
| 646 |
)}
|
| 647 |
|
|
|
|
| 1 |
import { useState, useRef, useEffect, useCallback } from 'react';
|
| 2 |
+
import ForceGraph3D from 'react-force-graph-3d';
|
| 3 |
+
import * as THREE from 'three';
|
| 4 |
import './KnowledgeGraph.css';
|
| 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
function KnowledgeGraph({ highlightedNodes = [] }) {
|
| 7 |
+
const fgRef = useRef();
|
| 8 |
+
const containerRef = useRef(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
|
| 10 |
+
const [graphData, setGraphData] = useState({ nodes: [], links: [] });
|
| 11 |
+
const [loading, setLoading] = useState(true);
|
| 12 |
+
const [stats, setStats] = useState({ nodes: 0, edges: 0 });
|
| 13 |
const [graphStatus, setGraphStatus] = useState('loading');
|
| 14 |
+
const [showLabels, setShowLabels] = useState(true);
|
| 15 |
+
const [dimensions, setDimensions] = useState({ width: 800, height: 600 });
|
| 16 |
const [tooltipData, setTooltipData] = useState(null);
|
| 17 |
|
| 18 |
+
// Handle Resize
|
| 19 |
+
useEffect(() => {
|
| 20 |
+
const handleResize = () => {
|
| 21 |
+
if (containerRef.current) {
|
| 22 |
+
setDimensions({
|
| 23 |
+
width: containerRef.current.clientWidth,
|
| 24 |
+
height: containerRef.current.clientHeight
|
| 25 |
+
});
|
| 26 |
+
}
|
| 27 |
+
};
|
| 28 |
+
handleResize();
|
| 29 |
+
window.addEventListener('resize', handleResize);
|
| 30 |
+
return () => window.removeEventListener('resize', handleResize);
|
| 31 |
+
}, []);
|
| 32 |
+
|
| 33 |
+
// Fetch Graph Data
|
| 34 |
const fetchGraph = useCallback(async () => {
|
| 35 |
setLoading(true);
|
| 36 |
setGraphStatus('loading');
|
|
|
|
| 40 |
|
| 41 |
if (data.status === 'offline') {
|
| 42 |
setGraphStatus('offline');
|
| 43 |
+
setGraphData({ nodes: [], links: [] });
|
| 44 |
setStats({ nodes: 0, edges: 0 });
|
| 45 |
} else if (data.nodes.length === 0) {
|
| 46 |
setGraphStatus('empty');
|
| 47 |
+
setGraphData({ nodes: [], links: [] });
|
| 48 |
setStats({ nodes: 0, edges: 0 });
|
| 49 |
} else {
|
| 50 |
setGraphStatus('online');
|
| 51 |
+
|
| 52 |
+
// Format for 3D Graph
|
| 53 |
+
const formattedData = {
|
| 54 |
+
nodes: data.nodes.map(n => ({
|
| 55 |
+
id: n.id,
|
| 56 |
+
label: n.label,
|
| 57 |
+
connections: n.connections || 0,
|
| 58 |
+
val: Math.max(1, (n.connections || 0) * 1.5) // Node visual size
|
| 59 |
+
})),
|
| 60 |
+
links: data.edges.map(e => ({
|
| 61 |
+
source: e.source,
|
| 62 |
+
target: e.target,
|
| 63 |
+
label: e.label
|
| 64 |
+
}))
|
| 65 |
+
};
|
| 66 |
+
|
| 67 |
+
setGraphData(formattedData);
|
| 68 |
setStats({ nodes: data.nodes.length, edges: data.edges.length });
|
|
|
|
| 69 |
}
|
| 70 |
} catch (err) {
|
| 71 |
console.error('Failed to fetch graph:', err);
|
| 72 |
setGraphStatus('error');
|
| 73 |
+
setGraphData({ nodes: [], links: [] });
|
| 74 |
}
|
| 75 |
setLoading(false);
|
| 76 |
}, []);
|
| 77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 78 |
useEffect(() => {
|
| 79 |
fetchGraph();
|
| 80 |
}, [fetchGraph]);
|
| 81 |
|
| 82 |
+
const handleNodeClick = useCallback(node => {
|
| 83 |
+
if (fgRef.current) {
|
| 84 |
+
// Aim at node from outside it
|
| 85 |
+
const distance = 80;
|
| 86 |
+
const distRatio = 1 + distance / Math.hypot(node.x, node.y, node.z);
|
| 87 |
+
|
| 88 |
+
fgRef.current.cameraPosition(
|
| 89 |
+
{ x: node.x * distRatio, y: node.y * distRatio, z: node.z * distRatio }, // new position
|
| 90 |
+
node, // lookAt ({ x, y, z })
|
| 91 |
+
1500 // ms transition duration
|
| 92 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 93 |
}
|
| 94 |
+
}, [fgRef]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 95 |
|
| 96 |
// ββ Render ββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 97 |
return (
|
| 98 |
+
<div className="graph-container" ref={containerRef}>
|
| 99 |
{/* Header Bar */}
|
| 100 |
<div className="graph-header">
|
| 101 |
<div className="graph-title">
|
| 102 |
<div className="pulse-ring" />
|
| 103 |
+
<h2>Neural Mesh Topology (3D)</h2>
|
| 104 |
<span className="label-mono" style={{ fontSize: '0.55rem' }}>
|
| 105 |
{graphStatus === 'online' ? 'LIVE' : graphStatus.toUpperCase()}
|
| 106 |
</span>
|
|
|
|
| 113 |
{showLabels ? 'Hide Labels' : 'Show Labels'}
|
| 114 |
</button>
|
| 115 |
<button className="graph-btn" onClick={() => {
|
| 116 |
+
if (fgRef.current) {
|
| 117 |
+
fgRef.current.cameraPosition({ x: 0, y: 0, z: 250 }, { x: 0, y: 0, z: 0 }, 1000);
|
| 118 |
+
}
|
| 119 |
}}>
|
| 120 |
Reset View
|
| 121 |
</button>
|
|
|
|
| 125 |
</div>
|
| 126 |
</div>
|
| 127 |
|
| 128 |
+
{/* 3D Canvas Container */}
|
| 129 |
+
{(graphStatus === 'online' || graphData.nodes.length > 0) && (
|
| 130 |
+
<div className="graph-canvas-3d" style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}>
|
| 131 |
+
<ForceGraph3D
|
| 132 |
+
ref={fgRef}
|
| 133 |
+
width={dimensions.width}
|
| 134 |
+
height={dimensions.height}
|
| 135 |
+
graphData={graphData}
|
| 136 |
+
backgroundColor="rgba(0,0,0,0)" // Transparent to show CSS background
|
| 137 |
+
|
| 138 |
+
// Nodes
|
| 139 |
+
nodeLabel={showLabels ? "label" : ""}
|
| 140 |
+
nodeColor={node => {
|
| 141 |
+
if (highlightedNodes.includes(node.id) || highlightedNodes.includes(node.label)) {
|
| 142 |
+
return 'rgba(255, 215, 0, 0.9)'; // Highlight Gold
|
| 143 |
+
}
|
| 144 |
+
return 'rgba(71, 191, 255, 0.8)'; // Default Cyan
|
| 145 |
+
}}
|
| 146 |
+
nodeRelSize={4}
|
| 147 |
+
nodeResolution={16}
|
| 148 |
+
|
| 149 |
+
// Edges (Synapses) -> Particles
|
| 150 |
+
linkDirectionalParticles={2}
|
| 151 |
+
linkDirectionalParticleSpeed={d => 0.005 + (0.002 * Math.random())} // Varying speed
|
| 152 |
+
linkDirectionalParticleWidth={2}
|
| 153 |
+
linkDirectionalParticleColor={() => 'rgba(134, 59, 255, 0.9)'} // Purple energy
|
| 154 |
+
|
| 155 |
+
// Edge line styling
|
| 156 |
+
linkColor={() => 'rgba(71, 191, 255, 0.2)'}
|
| 157 |
+
linkOpacity={0.4}
|
| 158 |
+
linkWidth={0.8}
|
| 159 |
+
|
| 160 |
+
// Interaction
|
| 161 |
+
onNodeClick={handleNodeClick}
|
| 162 |
+
enableNodeDrag={true}
|
| 163 |
+
/>
|
| 164 |
+
</div>
|
| 165 |
+
)}
|
| 166 |
|
| 167 |
{/* Stats Overlay */}
|
| 168 |
{graphStatus === 'online' && (
|
|
|
|
| 188 |
<div className="graph-legend">
|
| 189 |
<div className="legend-title">Legend</div>
|
| 190 |
<div className="legend-item">
|
| 191 |
+
<div className="legend-dot primary" style={{ background: 'rgba(71, 191, 255, 0.8)' }} />
|
| 192 |
<span className="legend-label">Entity Node</span>
|
| 193 |
</div>
|
| 194 |
<div className="legend-item">
|
| 195 |
+
<div className="legend-dot secondary" style={{ background: 'rgba(134, 59, 255, 0.8)' }} />
|
| 196 |
+
<span className="legend-label">Synaptic Flow (Particle)</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 197 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 198 |
</div>
|
| 199 |
)}
|
| 200 |
|