darabos commited on
Commit
af53b62
·
1 Parent(s): 2d72d5a

Partially hook up backend to visualization.

Browse files
main.py CHANGED
@@ -7,27 +7,24 @@ class Position(pydantic.BaseModel):
7
  x: float
8
  y: float
9
 
 
 
 
 
10
  class WorkspaceNode(pydantic.BaseModel):
11
  id: str
12
- title: str
13
  type: str
 
14
  position: Position
15
 
16
- class WorkspaceConnection(pydantic.BaseModel):
17
  id: str
18
- # Baklava.js calls it "from", but that's a reserved keyword in Python.
19
- src: str = pydantic.Field(None, alias='from')
20
- dst: str = pydantic.Field(None, alias='to')
21
-
22
- class WorkspaceGraph(pydantic.BaseModel):
23
- nodes: list[WorkspaceNode]
24
- connections: list[WorkspaceConnection]
25
- panning: Position
26
- scaling: float
27
- nodes: list[WorkspaceNode]
28
 
29
  class Workspace(pydantic.BaseModel):
30
- graph: WorkspaceGraph
 
31
 
32
 
33
  app = fastapi.FastAPI()
@@ -46,5 +43,5 @@ def read_item(item_id: int, q: Union[str, None] = None):
46
  @app.post("/api/save")
47
  def save(ws: Workspace):
48
  print(ws)
49
- G = nx.scale_free_graph(100)
50
  return {"graph": list(nx.to_edgelist(G))}
 
7
  x: float
8
  y: float
9
 
10
+ class WorkspaceNodeData(pydantic.BaseModel):
11
+ title: str
12
+ params: dict
13
+
14
  class WorkspaceNode(pydantic.BaseModel):
15
  id: str
 
16
  type: str
17
+ data: WorkspaceNodeData
18
  position: Position
19
 
20
+ class WorkspaceEdge(pydantic.BaseModel):
21
  id: str
22
+ source: str
23
+ target: str
 
 
 
 
 
 
 
 
24
 
25
  class Workspace(pydantic.BaseModel):
26
+ nodes: list[WorkspaceNode]
27
+ edges: list[WorkspaceEdge]
28
 
29
 
30
  app = fastapi.FastAPI()
 
43
  @app.post("/api/save")
44
  def save(ws: Workspace):
45
  print(ws)
46
+ G = nx.scale_free_graph(4)
47
  return {"graph": list(nx.to_edgelist(G))}
web/package-lock.json CHANGED
@@ -8,9 +8,11 @@
8
  "name": "vite-svelte-flow-template",
9
  "version": "0.0.0",
10
  "dependencies": {
11
- "@xyflow/svelte": "^0.0.40",
12
  "fuse.js": "^7.0.0",
13
  "graphology": "^0.25.4",
 
 
14
  "sigma": "^3.0.0-beta.17"
15
  },
16
  "devDependencies": {
@@ -482,9 +484,9 @@
482
  }
483
  },
484
  "node_modules/@rollup/rollup-android-arm-eabi": {
485
- "version": "4.14.0",
486
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.0.tgz",
487
- "integrity": "sha512-jwXtxYbRt1V+CdQSy6Z+uZti7JF5irRKF8hlKfEnF/xJpcNGuuiZMBvuoYM+x9sr9iWGnzrlM0+9hvQ1kgkf1w==",
488
  "cpu": [
489
  "arm"
490
  ],
@@ -495,9 +497,9 @@
495
  ]
496
  },
497
  "node_modules/@rollup/rollup-android-arm64": {
498
- "version": "4.14.0",
499
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.0.tgz",
500
- "integrity": "sha512-fI9nduZhCccjzlsA/OuAwtFGWocxA4gqXGTLvOyiF8d+8o0fZUeSztixkYjcGq1fGZY3Tkq4yRvHPFxU+jdZ9Q==",
501
  "cpu": [
502
  "arm64"
503
  ],
@@ -508,9 +510,9 @@
508
  ]
509
  },
510
  "node_modules/@rollup/rollup-darwin-arm64": {
511
- "version": "4.14.0",
512
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.0.tgz",
513
- "integrity": "sha512-BcnSPRM76/cD2gQC+rQNGBN6GStBs2pl/FpweW8JYuz5J/IEa0Fr4AtrPv766DB/6b2MZ/AfSIOSGw3nEIP8SA==",
514
  "cpu": [
515
  "arm64"
516
  ],
@@ -521,9 +523,9 @@
521
  ]
522
  },
523
  "node_modules/@rollup/rollup-darwin-x64": {
524
- "version": "4.14.0",
525
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.0.tgz",
526
- "integrity": "sha512-LDyFB9GRolGN7XI6955aFeI3wCdCUszFWumWU0deHA8VpR3nWRrjG6GtGjBrQxQKFevnUTHKCfPR4IvrW3kCgQ==",
527
  "cpu": [
528
  "x64"
529
  ],
@@ -534,9 +536,22 @@
534
  ]
535
  },
536
  "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
537
- "version": "4.14.0",
538
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.0.tgz",
539
- "integrity": "sha512-ygrGVhQP47mRh0AAD0zl6QqCbNsf0eTo+vgwkY6LunBcg0f2Jv365GXlDUECIyoXp1kKwL5WW6rsO429DBY/bA==",
 
 
 
 
 
 
 
 
 
 
 
 
 
540
  "cpu": [
541
  "arm"
542
  ],
@@ -547,9 +562,9 @@
547
  ]
548
  },
549
  "node_modules/@rollup/rollup-linux-arm64-gnu": {
550
- "version": "4.14.0",
551
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.0.tgz",
552
- "integrity": "sha512-x+uJ6MAYRlHGe9wi4HQjxpaKHPM3d3JjqqCkeC5gpnnI6OWovLdXTpfa8trjxPLnWKyBsSi5kne+146GAxFt4A==",
553
  "cpu": [
554
  "arm64"
555
  ],
@@ -560,9 +575,9 @@
560
  ]
561
  },
562
  "node_modules/@rollup/rollup-linux-arm64-musl": {
563
- "version": "4.14.0",
564
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.0.tgz",
565
- "integrity": "sha512-nrRw8ZTQKg6+Lttwqo6a2VxR9tOroa2m91XbdQ2sUUzHoedXlsyvY1fN4xWdqz8PKmf4orDwejxXHjh7YBGUCA==",
566
  "cpu": [
567
  "arm64"
568
  ],
@@ -573,11 +588,11 @@
573
  ]
574
  },
575
  "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
576
- "version": "4.14.0",
577
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.0.tgz",
578
- "integrity": "sha512-xV0d5jDb4aFu84XKr+lcUJ9y3qpIWhttO3Qev97z8DKLXR62LC3cXT/bMZXrjLF9X+P5oSmJTzAhqwUbY96PnA==",
579
  "cpu": [
580
- "ppc64le"
581
  ],
582
  "dev": true,
583
  "optional": true,
@@ -586,9 +601,9 @@
586
  ]
587
  },
588
  "node_modules/@rollup/rollup-linux-riscv64-gnu": {
589
- "version": "4.14.0",
590
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.0.tgz",
591
- "integrity": "sha512-SDDhBQwZX6LPRoPYjAZWyL27LbcBo7WdBFWJi5PI9RPCzU8ijzkQn7tt8NXiXRiFMJCVpkuMkBf4OxSxVMizAw==",
592
  "cpu": [
593
  "riscv64"
594
  ],
@@ -599,9 +614,9 @@
599
  ]
600
  },
601
  "node_modules/@rollup/rollup-linux-s390x-gnu": {
602
- "version": "4.14.0",
603
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.0.tgz",
604
- "integrity": "sha512-RxB/qez8zIDshNJDufYlTT0ZTVut5eCpAZ3bdXDU9yTxBzui3KhbGjROK2OYTTor7alM7XBhssgoO3CZ0XD3qA==",
605
  "cpu": [
606
  "s390x"
607
  ],
@@ -612,9 +627,9 @@
612
  ]
613
  },
614
  "node_modules/@rollup/rollup-linux-x64-gnu": {
615
- "version": "4.14.0",
616
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.0.tgz",
617
- "integrity": "sha512-C6y6z2eCNCfhZxT9u+jAM2Fup89ZjiG5pIzZIDycs1IwESviLxwkQcFRGLjnDrP+PT+v5i4YFvlcfAs+LnreXg==",
618
  "cpu": [
619
  "x64"
620
  ],
@@ -625,9 +640,9 @@
625
  ]
626
  },
627
  "node_modules/@rollup/rollup-linux-x64-musl": {
628
- "version": "4.14.0",
629
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.0.tgz",
630
- "integrity": "sha512-i0QwbHYfnOMYsBEyjxcwGu5SMIi9sImDVjDg087hpzXqhBSosxkE7gyIYFHgfFl4mr7RrXksIBZ4DoLoP4FhJg==",
631
  "cpu": [
632
  "x64"
633
  ],
@@ -638,9 +653,9 @@
638
  ]
639
  },
640
  "node_modules/@rollup/rollup-win32-arm64-msvc": {
641
- "version": "4.14.0",
642
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.0.tgz",
643
- "integrity": "sha512-Fq52EYb0riNHLBTAcL0cun+rRwyZ10S9vKzhGKKgeD+XbwunszSY0rVMco5KbOsTlwovP2rTOkiII/fQ4ih/zQ==",
644
  "cpu": [
645
  "arm64"
646
  ],
@@ -651,9 +666,9 @@
651
  ]
652
  },
653
  "node_modules/@rollup/rollup-win32-ia32-msvc": {
654
- "version": "4.14.0",
655
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.0.tgz",
656
- "integrity": "sha512-e/PBHxPdJ00O9p5Ui43+vixSgVf4NlLsmV6QneGERJ3lnjIua/kim6PRFe3iDueT1rQcgSkYP8ZBBXa/h4iPvw==",
657
  "cpu": [
658
  "ia32"
659
  ],
@@ -664,9 +679,9 @@
664
  ]
665
  },
666
  "node_modules/@rollup/rollup-win32-x64-msvc": {
667
- "version": "4.14.0",
668
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.0.tgz",
669
- "integrity": "sha512-aGg7iToJjdklmxlUlJh/PaPNa4PmqHfyRMLunbL3eaMO0gp656+q1zOKkpJ/CVe9CryJv6tAN1HDoR8cNGzkag==",
670
  "cpu": [
671
  "x64"
672
  ],
@@ -682,17 +697,17 @@
682
  "integrity": "sha512-EWMEDkZ0+O3yMhb9yrqe5UYisV9CNRKX6Pl/JW3x62t74CiN+3COu1L9NzZUG0omagc2Z3J14PZNYxs77IC9NA=="
683
  },
684
  "node_modules/@sveltejs/vite-plugin-svelte": {
685
- "version": "3.0.2",
686
- "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.0.2.tgz",
687
- "integrity": "sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==",
688
  "dev": true,
689
  "dependencies": {
690
  "@sveltejs/vite-plugin-svelte-inspector": "^2.0.0",
691
  "debug": "^4.3.4",
692
  "deepmerge": "^4.3.1",
693
  "kleur": "^4.1.5",
694
- "magic-string": "^0.30.5",
695
- "svelte-hmr": "^0.15.3",
696
  "vitefu": "^0.2.5"
697
  },
698
  "engines": {
@@ -704,9 +719,9 @@
704
  }
705
  },
706
  "node_modules/@sveltejs/vite-plugin-svelte-inspector": {
707
- "version": "2.0.0",
708
- "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.0.0.tgz",
709
- "integrity": "sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==",
710
  "dev": true,
711
  "dependencies": {
712
  "debug": "^4.3.4"
@@ -963,13 +978,21 @@
963
  "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz",
964
  "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA=="
965
  },
 
 
 
 
 
 
 
 
966
  "node_modules/@xyflow/svelte": {
967
- "version": "0.0.40",
968
- "resolved": "https://registry.npmjs.org/@xyflow/svelte/-/svelte-0.0.40.tgz",
969
- "integrity": "sha512-cDBaZgKm0oIX7t39HwJqHPZsLRqlNjzPEoh/Q9PvHinM77BDSPksZaQ72M1m7Vw/r6+HkPCNxQzqycSkTrwJNg==",
970
  "dependencies": {
971
  "@svelte-put/shortcut": "^3.1.0",
972
- "@xyflow/system": "0.0.21",
973
  "classcat": "^5.0.4",
974
  "svelte-preprocess": "^5.1.3"
975
  },
@@ -978,9 +1001,9 @@
978
  }
979
  },
980
  "node_modules/@xyflow/system": {
981
- "version": "0.0.21",
982
- "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.21.tgz",
983
- "integrity": "sha512-IvvJkC495u8mIA4Xm35dnQp0a5JUwzRm8eDBWKNyI3lAw93dOr85cKSrCNSuQ5M5SWNy2teFCFvnQEgVjwK3dg==",
984
  "dependencies": {
985
  "@types/d3": "^7.4.0",
986
  "@types/d3-drag": "^3.0.1",
@@ -991,6 +1014,11 @@
991
  "d3-zoom": "^3.0.0"
992
  }
993
  },
 
 
 
 
 
994
  "node_modules/acorn": {
995
  "version": "8.11.3",
996
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
@@ -1341,6 +1369,11 @@
1341
  "node": ">=0.8.x"
1342
  }
1343
  },
 
 
 
 
 
1344
  "node_modules/fast-glob": {
1345
  "version": "3.3.2",
1346
  "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
@@ -1453,6 +1486,279 @@
1453
  "graphology-types": ">=0.24.0"
1454
  }
1455
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1456
  "node_modules/graphology-types": {
1457
  "version": "0.24.7",
1458
  "resolved": "https://registry.npmjs.org/graphology-types/-/graphology-types-0.24.7.tgz",
@@ -1561,6 +1867,11 @@
1561
  "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
1562
  "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="
1563
  },
 
 
 
 
 
1564
  "node_modules/magic-string": {
1565
  "version": "0.30.9",
1566
  "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.9.tgz",
@@ -1637,6 +1948,14 @@
1637
  "mkdirp": "bin/cmd.js"
1638
  }
1639
  },
 
 
 
 
 
 
 
 
1640
  "node_modules/mri": {
1641
  "version": "1.2.0",
1642
  "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
@@ -1692,6 +2011,14 @@
1692
  "wrappy": "1"
1693
  }
1694
  },
 
 
 
 
 
 
 
 
1695
  "node_modules/parent-module": {
1696
  "version": "1.0.1",
1697
  "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -1831,9 +2158,9 @@
1831
  }
1832
  },
1833
  "node_modules/rollup": {
1834
- "version": "4.14.0",
1835
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.0.tgz",
1836
- "integrity": "sha512-Qe7w62TyawbDzB4yt32R0+AbIo6m1/sqO7UPzFS8Z/ksL5mrfhA0v4CavfdmFav3D+ub4QeAgsGEe84DoWe/nQ==",
1837
  "dev": true,
1838
  "dependencies": {
1839
  "@types/estree": "1.0.5"
@@ -1846,21 +2173,22 @@
1846
  "npm": ">=8.0.0"
1847
  },
1848
  "optionalDependencies": {
1849
- "@rollup/rollup-android-arm-eabi": "4.14.0",
1850
- "@rollup/rollup-android-arm64": "4.14.0",
1851
- "@rollup/rollup-darwin-arm64": "4.14.0",
1852
- "@rollup/rollup-darwin-x64": "4.14.0",
1853
- "@rollup/rollup-linux-arm-gnueabihf": "4.14.0",
1854
- "@rollup/rollup-linux-arm64-gnu": "4.14.0",
1855
- "@rollup/rollup-linux-arm64-musl": "4.14.0",
1856
- "@rollup/rollup-linux-powerpc64le-gnu": "4.14.0",
1857
- "@rollup/rollup-linux-riscv64-gnu": "4.14.0",
1858
- "@rollup/rollup-linux-s390x-gnu": "4.14.0",
1859
- "@rollup/rollup-linux-x64-gnu": "4.14.0",
1860
- "@rollup/rollup-linux-x64-musl": "4.14.0",
1861
- "@rollup/rollup-win32-arm64-msvc": "4.14.0",
1862
- "@rollup/rollup-win32-ia32-msvc": "4.14.0",
1863
- "@rollup/rollup-win32-x64-msvc": "4.14.0",
 
1864
  "fsevents": "~2.3.2"
1865
  }
1866
  },
@@ -1953,9 +2281,9 @@
1953
  }
1954
  },
1955
  "node_modules/svelte": {
1956
- "version": "4.2.12",
1957
- "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.12.tgz",
1958
- "integrity": "sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==",
1959
  "dependencies": {
1960
  "@ampproject/remapping": "^2.2.1",
1961
  "@jridgewell/sourcemap-codec": "^1.4.15",
@@ -1999,9 +2327,9 @@
1999
  }
2000
  },
2001
  "node_modules/svelte-hmr": {
2002
- "version": "0.15.3",
2003
- "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz",
2004
- "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==",
2005
  "dev": true,
2006
  "engines": {
2007
  "node": "^12.20 || ^14.13.1 || >= 16"
@@ -2091,9 +2419,9 @@
2091
  "dev": true
2092
  },
2093
  "node_modules/typescript": {
2094
- "version": "5.4.4",
2095
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz",
2096
- "integrity": "sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==",
2097
  "devOptional": true,
2098
  "bin": {
2099
  "tsc": "bin/tsc",
@@ -2176,6 +2504,14 @@
2176
  "version": "1.0.2",
2177
  "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2178
  "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
 
 
 
 
 
 
 
 
2179
  }
2180
  },
2181
  "dependencies": {
@@ -2410,107 +2746,114 @@
2410
  }
2411
  },
2412
  "@rollup/rollup-android-arm-eabi": {
2413
- "version": "4.14.0",
2414
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.0.tgz",
2415
- "integrity": "sha512-jwXtxYbRt1V+CdQSy6Z+uZti7JF5irRKF8hlKfEnF/xJpcNGuuiZMBvuoYM+x9sr9iWGnzrlM0+9hvQ1kgkf1w==",
2416
  "dev": true,
2417
  "optional": true
2418
  },
2419
  "@rollup/rollup-android-arm64": {
2420
- "version": "4.14.0",
2421
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.0.tgz",
2422
- "integrity": "sha512-fI9nduZhCccjzlsA/OuAwtFGWocxA4gqXGTLvOyiF8d+8o0fZUeSztixkYjcGq1fGZY3Tkq4yRvHPFxU+jdZ9Q==",
2423
  "dev": true,
2424
  "optional": true
2425
  },
2426
  "@rollup/rollup-darwin-arm64": {
2427
- "version": "4.14.0",
2428
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.0.tgz",
2429
- "integrity": "sha512-BcnSPRM76/cD2gQC+rQNGBN6GStBs2pl/FpweW8JYuz5J/IEa0Fr4AtrPv766DB/6b2MZ/AfSIOSGw3nEIP8SA==",
2430
  "dev": true,
2431
  "optional": true
2432
  },
2433
  "@rollup/rollup-darwin-x64": {
2434
- "version": "4.14.0",
2435
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.0.tgz",
2436
- "integrity": "sha512-LDyFB9GRolGN7XI6955aFeI3wCdCUszFWumWU0deHA8VpR3nWRrjG6GtGjBrQxQKFevnUTHKCfPR4IvrW3kCgQ==",
2437
  "dev": true,
2438
  "optional": true
2439
  },
2440
  "@rollup/rollup-linux-arm-gnueabihf": {
2441
- "version": "4.14.0",
2442
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.0.tgz",
2443
- "integrity": "sha512-ygrGVhQP47mRh0AAD0zl6QqCbNsf0eTo+vgwkY6LunBcg0f2Jv365GXlDUECIyoXp1kKwL5WW6rsO429DBY/bA==",
 
 
 
 
 
 
 
2444
  "dev": true,
2445
  "optional": true
2446
  },
2447
  "@rollup/rollup-linux-arm64-gnu": {
2448
- "version": "4.14.0",
2449
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.0.tgz",
2450
- "integrity": "sha512-x+uJ6MAYRlHGe9wi4HQjxpaKHPM3d3JjqqCkeC5gpnnI6OWovLdXTpfa8trjxPLnWKyBsSi5kne+146GAxFt4A==",
2451
  "dev": true,
2452
  "optional": true
2453
  },
2454
  "@rollup/rollup-linux-arm64-musl": {
2455
- "version": "4.14.0",
2456
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.0.tgz",
2457
- "integrity": "sha512-nrRw8ZTQKg6+Lttwqo6a2VxR9tOroa2m91XbdQ2sUUzHoedXlsyvY1fN4xWdqz8PKmf4orDwejxXHjh7YBGUCA==",
2458
  "dev": true,
2459
  "optional": true
2460
  },
2461
  "@rollup/rollup-linux-powerpc64le-gnu": {
2462
- "version": "4.14.0",
2463
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.0.tgz",
2464
- "integrity": "sha512-xV0d5jDb4aFu84XKr+lcUJ9y3qpIWhttO3Qev97z8DKLXR62LC3cXT/bMZXrjLF9X+P5oSmJTzAhqwUbY96PnA==",
2465
  "dev": true,
2466
  "optional": true
2467
  },
2468
  "@rollup/rollup-linux-riscv64-gnu": {
2469
- "version": "4.14.0",
2470
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.0.tgz",
2471
- "integrity": "sha512-SDDhBQwZX6LPRoPYjAZWyL27LbcBo7WdBFWJi5PI9RPCzU8ijzkQn7tt8NXiXRiFMJCVpkuMkBf4OxSxVMizAw==",
2472
  "dev": true,
2473
  "optional": true
2474
  },
2475
  "@rollup/rollup-linux-s390x-gnu": {
2476
- "version": "4.14.0",
2477
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.0.tgz",
2478
- "integrity": "sha512-RxB/qez8zIDshNJDufYlTT0ZTVut5eCpAZ3bdXDU9yTxBzui3KhbGjROK2OYTTor7alM7XBhssgoO3CZ0XD3qA==",
2479
  "dev": true,
2480
  "optional": true
2481
  },
2482
  "@rollup/rollup-linux-x64-gnu": {
2483
- "version": "4.14.0",
2484
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.0.tgz",
2485
- "integrity": "sha512-C6y6z2eCNCfhZxT9u+jAM2Fup89ZjiG5pIzZIDycs1IwESviLxwkQcFRGLjnDrP+PT+v5i4YFvlcfAs+LnreXg==",
2486
  "dev": true,
2487
  "optional": true
2488
  },
2489
  "@rollup/rollup-linux-x64-musl": {
2490
- "version": "4.14.0",
2491
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.0.tgz",
2492
- "integrity": "sha512-i0QwbHYfnOMYsBEyjxcwGu5SMIi9sImDVjDg087hpzXqhBSosxkE7gyIYFHgfFl4mr7RrXksIBZ4DoLoP4FhJg==",
2493
  "dev": true,
2494
  "optional": true
2495
  },
2496
  "@rollup/rollup-win32-arm64-msvc": {
2497
- "version": "4.14.0",
2498
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.0.tgz",
2499
- "integrity": "sha512-Fq52EYb0riNHLBTAcL0cun+rRwyZ10S9vKzhGKKgeD+XbwunszSY0rVMco5KbOsTlwovP2rTOkiII/fQ4ih/zQ==",
2500
  "dev": true,
2501
  "optional": true
2502
  },
2503
  "@rollup/rollup-win32-ia32-msvc": {
2504
- "version": "4.14.0",
2505
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.0.tgz",
2506
- "integrity": "sha512-e/PBHxPdJ00O9p5Ui43+vixSgVf4NlLsmV6QneGERJ3lnjIua/kim6PRFe3iDueT1rQcgSkYP8ZBBXa/h4iPvw==",
2507
  "dev": true,
2508
  "optional": true
2509
  },
2510
  "@rollup/rollup-win32-x64-msvc": {
2511
- "version": "4.14.0",
2512
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.0.tgz",
2513
- "integrity": "sha512-aGg7iToJjdklmxlUlJh/PaPNa4PmqHfyRMLunbL3eaMO0gp656+q1zOKkpJ/CVe9CryJv6tAN1HDoR8cNGzkag==",
2514
  "dev": true,
2515
  "optional": true
2516
  },
@@ -2520,24 +2863,24 @@
2520
  "integrity": "sha512-EWMEDkZ0+O3yMhb9yrqe5UYisV9CNRKX6Pl/JW3x62t74CiN+3COu1L9NzZUG0omagc2Z3J14PZNYxs77IC9NA=="
2521
  },
2522
  "@sveltejs/vite-plugin-svelte": {
2523
- "version": "3.0.2",
2524
- "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.0.2.tgz",
2525
- "integrity": "sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==",
2526
  "dev": true,
2527
  "requires": {
2528
  "@sveltejs/vite-plugin-svelte-inspector": "^2.0.0",
2529
  "debug": "^4.3.4",
2530
  "deepmerge": "^4.3.1",
2531
  "kleur": "^4.1.5",
2532
- "magic-string": "^0.30.5",
2533
- "svelte-hmr": "^0.15.3",
2534
  "vitefu": "^0.2.5"
2535
  }
2536
  },
2537
  "@sveltejs/vite-plugin-svelte-inspector": {
2538
- "version": "2.0.0",
2539
- "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.0.0.tgz",
2540
- "integrity": "sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==",
2541
  "dev": true,
2542
  "requires": {
2543
  "debug": "^4.3.4"
@@ -2786,21 +3129,26 @@
2786
  "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz",
2787
  "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA=="
2788
  },
 
 
 
 
 
2789
  "@xyflow/svelte": {
2790
- "version": "0.0.40",
2791
- "resolved": "https://registry.npmjs.org/@xyflow/svelte/-/svelte-0.0.40.tgz",
2792
- "integrity": "sha512-cDBaZgKm0oIX7t39HwJqHPZsLRqlNjzPEoh/Q9PvHinM77BDSPksZaQ72M1m7Vw/r6+HkPCNxQzqycSkTrwJNg==",
2793
  "requires": {
2794
  "@svelte-put/shortcut": "^3.1.0",
2795
- "@xyflow/system": "0.0.21",
2796
  "classcat": "^5.0.4",
2797
  "svelte-preprocess": "^5.1.3"
2798
  }
2799
  },
2800
  "@xyflow/system": {
2801
- "version": "0.0.21",
2802
- "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.21.tgz",
2803
- "integrity": "sha512-IvvJkC495u8mIA4Xm35dnQp0a5JUwzRm8eDBWKNyI3lAw93dOr85cKSrCNSuQ5M5SWNy2teFCFvnQEgVjwK3dg==",
2804
  "requires": {
2805
  "@types/d3": "^7.4.0",
2806
  "@types/d3-drag": "^3.0.1",
@@ -2811,6 +3159,11 @@
2811
  "d3-zoom": "^3.0.0"
2812
  }
2813
  },
 
 
 
 
 
2814
  "acorn": {
2815
  "version": "8.11.3",
2816
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
@@ -3069,6 +3422,11 @@
3069
  "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
3070
  "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
3071
  },
 
 
 
 
 
3072
  "fast-glob": {
3073
  "version": "3.3.2",
3074
  "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
@@ -3153,6 +3511,221 @@
3153
  "obliterator": "^2.0.2"
3154
  }
3155
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3156
  "graphology-types": {
3157
  "version": "0.24.7",
3158
  "resolved": "https://registry.npmjs.org/graphology-types/-/graphology-types-0.24.7.tgz",
@@ -3238,6 +3811,11 @@
3238
  "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
3239
  "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="
3240
  },
 
 
 
 
 
3241
  "magic-string": {
3242
  "version": "0.30.9",
3243
  "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.9.tgz",
@@ -3293,6 +3871,14 @@
3293
  "minimist": "^1.2.6"
3294
  }
3295
  },
 
 
 
 
 
 
 
 
3296
  "mri": {
3297
  "version": "1.2.0",
3298
  "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
@@ -3330,6 +3916,14 @@
3330
  "wrappy": "1"
3331
  }
3332
  },
 
 
 
 
 
 
 
 
3333
  "parent-module": {
3334
  "version": "1.0.1",
3335
  "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -3413,26 +4007,27 @@
3413
  }
3414
  },
3415
  "rollup": {
3416
- "version": "4.14.0",
3417
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.0.tgz",
3418
- "integrity": "sha512-Qe7w62TyawbDzB4yt32R0+AbIo6m1/sqO7UPzFS8Z/ksL5mrfhA0v4CavfdmFav3D+ub4QeAgsGEe84DoWe/nQ==",
3419
- "dev": true,
3420
- "requires": {
3421
- "@rollup/rollup-android-arm-eabi": "4.14.0",
3422
- "@rollup/rollup-android-arm64": "4.14.0",
3423
- "@rollup/rollup-darwin-arm64": "4.14.0",
3424
- "@rollup/rollup-darwin-x64": "4.14.0",
3425
- "@rollup/rollup-linux-arm-gnueabihf": "4.14.0",
3426
- "@rollup/rollup-linux-arm64-gnu": "4.14.0",
3427
- "@rollup/rollup-linux-arm64-musl": "4.14.0",
3428
- "@rollup/rollup-linux-powerpc64le-gnu": "4.14.0",
3429
- "@rollup/rollup-linux-riscv64-gnu": "4.14.0",
3430
- "@rollup/rollup-linux-s390x-gnu": "4.14.0",
3431
- "@rollup/rollup-linux-x64-gnu": "4.14.0",
3432
- "@rollup/rollup-linux-x64-musl": "4.14.0",
3433
- "@rollup/rollup-win32-arm64-msvc": "4.14.0",
3434
- "@rollup/rollup-win32-ia32-msvc": "4.14.0",
3435
- "@rollup/rollup-win32-x64-msvc": "4.14.0",
 
3436
  "@types/estree": "1.0.5",
3437
  "fsevents": "~2.3.2"
3438
  }
@@ -3500,9 +4095,9 @@
3500
  }
3501
  },
3502
  "svelte": {
3503
- "version": "4.2.12",
3504
- "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.12.tgz",
3505
- "integrity": "sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==",
3506
  "requires": {
3507
  "@ampproject/remapping": "^2.2.1",
3508
  "@jridgewell/sourcemap-codec": "^1.4.15",
@@ -3537,9 +4132,9 @@
3537
  }
3538
  },
3539
  "svelte-hmr": {
3540
- "version": "0.15.3",
3541
- "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz",
3542
- "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==",
3543
  "dev": true,
3544
  "requires": {}
3545
  },
@@ -3571,9 +4166,9 @@
3571
  "dev": true
3572
  },
3573
  "typescript": {
3574
- "version": "5.4.4",
3575
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz",
3576
- "integrity": "sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==",
3577
  "devOptional": true
3578
  },
3579
  "vite": {
@@ -3599,6 +4194,11 @@
3599
  "version": "1.0.2",
3600
  "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3601
  "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
 
 
 
 
 
3602
  }
3603
  }
3604
  }
 
8
  "name": "vite-svelte-flow-template",
9
  "version": "0.0.0",
10
  "dependencies": {
11
+ "@xyflow/svelte": "^0.0.39",
12
  "fuse.js": "^7.0.0",
13
  "graphology": "^0.25.4",
14
+ "graphology-library": "^0.8.0",
15
+ "lodash": "^4.17.21",
16
  "sigma": "^3.0.0-beta.17"
17
  },
18
  "devDependencies": {
 
484
  }
485
  },
486
  "node_modules/@rollup/rollup-android-arm-eabi": {
487
+ "version": "4.14.3",
488
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz",
489
+ "integrity": "sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==",
490
  "cpu": [
491
  "arm"
492
  ],
 
497
  ]
498
  },
499
  "node_modules/@rollup/rollup-android-arm64": {
500
+ "version": "4.14.3",
501
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz",
502
+ "integrity": "sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==",
503
  "cpu": [
504
  "arm64"
505
  ],
 
510
  ]
511
  },
512
  "node_modules/@rollup/rollup-darwin-arm64": {
513
+ "version": "4.14.3",
514
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz",
515
+ "integrity": "sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==",
516
  "cpu": [
517
  "arm64"
518
  ],
 
523
  ]
524
  },
525
  "node_modules/@rollup/rollup-darwin-x64": {
526
+ "version": "4.14.3",
527
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz",
528
+ "integrity": "sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==",
529
  "cpu": [
530
  "x64"
531
  ],
 
536
  ]
537
  },
538
  "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
539
+ "version": "4.14.3",
540
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz",
541
+ "integrity": "sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==",
542
+ "cpu": [
543
+ "arm"
544
+ ],
545
+ "dev": true,
546
+ "optional": true,
547
+ "os": [
548
+ "linux"
549
+ ]
550
+ },
551
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
552
+ "version": "4.14.3",
553
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz",
554
+ "integrity": "sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==",
555
  "cpu": [
556
  "arm"
557
  ],
 
562
  ]
563
  },
564
  "node_modules/@rollup/rollup-linux-arm64-gnu": {
565
+ "version": "4.14.3",
566
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz",
567
+ "integrity": "sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==",
568
  "cpu": [
569
  "arm64"
570
  ],
 
575
  ]
576
  },
577
  "node_modules/@rollup/rollup-linux-arm64-musl": {
578
+ "version": "4.14.3",
579
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz",
580
+ "integrity": "sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==",
581
  "cpu": [
582
  "arm64"
583
  ],
 
588
  ]
589
  },
590
  "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
591
+ "version": "4.14.3",
592
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz",
593
+ "integrity": "sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==",
594
  "cpu": [
595
+ "ppc64"
596
  ],
597
  "dev": true,
598
  "optional": true,
 
601
  ]
602
  },
603
  "node_modules/@rollup/rollup-linux-riscv64-gnu": {
604
+ "version": "4.14.3",
605
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz",
606
+ "integrity": "sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==",
607
  "cpu": [
608
  "riscv64"
609
  ],
 
614
  ]
615
  },
616
  "node_modules/@rollup/rollup-linux-s390x-gnu": {
617
+ "version": "4.14.3",
618
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz",
619
+ "integrity": "sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==",
620
  "cpu": [
621
  "s390x"
622
  ],
 
627
  ]
628
  },
629
  "node_modules/@rollup/rollup-linux-x64-gnu": {
630
+ "version": "4.14.3",
631
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz",
632
+ "integrity": "sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==",
633
  "cpu": [
634
  "x64"
635
  ],
 
640
  ]
641
  },
642
  "node_modules/@rollup/rollup-linux-x64-musl": {
643
+ "version": "4.14.3",
644
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz",
645
+ "integrity": "sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==",
646
  "cpu": [
647
  "x64"
648
  ],
 
653
  ]
654
  },
655
  "node_modules/@rollup/rollup-win32-arm64-msvc": {
656
+ "version": "4.14.3",
657
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz",
658
+ "integrity": "sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==",
659
  "cpu": [
660
  "arm64"
661
  ],
 
666
  ]
667
  },
668
  "node_modules/@rollup/rollup-win32-ia32-msvc": {
669
+ "version": "4.14.3",
670
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz",
671
+ "integrity": "sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==",
672
  "cpu": [
673
  "ia32"
674
  ],
 
679
  ]
680
  },
681
  "node_modules/@rollup/rollup-win32-x64-msvc": {
682
+ "version": "4.14.3",
683
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz",
684
+ "integrity": "sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==",
685
  "cpu": [
686
  "x64"
687
  ],
 
697
  "integrity": "sha512-EWMEDkZ0+O3yMhb9yrqe5UYisV9CNRKX6Pl/JW3x62t74CiN+3COu1L9NzZUG0omagc2Z3J14PZNYxs77IC9NA=="
698
  },
699
  "node_modules/@sveltejs/vite-plugin-svelte": {
700
+ "version": "3.1.0",
701
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.0.tgz",
702
+ "integrity": "sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==",
703
  "dev": true,
704
  "dependencies": {
705
  "@sveltejs/vite-plugin-svelte-inspector": "^2.0.0",
706
  "debug": "^4.3.4",
707
  "deepmerge": "^4.3.1",
708
  "kleur": "^4.1.5",
709
+ "magic-string": "^0.30.9",
710
+ "svelte-hmr": "^0.16.0",
711
  "vitefu": "^0.2.5"
712
  },
713
  "engines": {
 
719
  }
720
  },
721
  "node_modules/@sveltejs/vite-plugin-svelte-inspector": {
722
+ "version": "2.1.0",
723
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz",
724
+ "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==",
725
  "dev": true,
726
  "dependencies": {
727
  "debug": "^4.3.4"
 
978
  "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz",
979
  "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA=="
980
  },
981
+ "node_modules/@xmldom/xmldom": {
982
+ "version": "0.8.10",
983
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
984
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
985
+ "engines": {
986
+ "node": ">=10.0.0"
987
+ }
988
+ },
989
  "node_modules/@xyflow/svelte": {
990
+ "version": "0.0.39",
991
+ "resolved": "https://registry.npmjs.org/@xyflow/svelte/-/svelte-0.0.39.tgz",
992
+ "integrity": "sha512-Kam9VMXIrKjIpBvalJLNrxqbI/ASHaYHj6ZRkdGsnAx3aYgB+de0McAqiJToKdlOeZyHoQtxzSRX9D+ZTSEVZw==",
993
  "dependencies": {
994
  "@svelte-put/shortcut": "^3.1.0",
995
+ "@xyflow/system": "0.0.20",
996
  "classcat": "^5.0.4",
997
  "svelte-preprocess": "^5.1.3"
998
  },
 
1001
  }
1002
  },
1003
  "node_modules/@xyflow/system": {
1004
+ "version": "0.0.20",
1005
+ "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.20.tgz",
1006
+ "integrity": "sha512-OQ9irX0HtZqAzOKtnNi7WpDT6SEp7VpR16VRatd7oImw5vahyjmggUSY7as9XvJnAz0D9H0g1qjRX99moabvQA==",
1007
  "dependencies": {
1008
  "@types/d3": "^7.4.0",
1009
  "@types/d3-drag": "^3.0.1",
 
1014
  "d3-zoom": "^3.0.0"
1015
  }
1016
  },
1017
+ "node_modules/@yomguithereal/helpers": {
1018
+ "version": "1.1.1",
1019
+ "resolved": "https://registry.npmjs.org/@yomguithereal/helpers/-/helpers-1.1.1.tgz",
1020
+ "integrity": "sha512-UYvAq/XCA7xoh1juWDYsq3W0WywOB+pz8cgVnE1b45ZfdMhBvHDrgmSFG3jXeZSr2tMTYLGHFHON+ekG05Jebg=="
1021
+ },
1022
  "node_modules/acorn": {
1023
  "version": "8.11.3",
1024
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
 
1369
  "node": ">=0.8.x"
1370
  }
1371
  },
1372
+ "node_modules/fast-deep-equal": {
1373
+ "version": "3.1.3",
1374
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1375
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
1376
+ },
1377
  "node_modules/fast-glob": {
1378
  "version": "3.3.2",
1379
  "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
 
1486
  "graphology-types": ">=0.24.0"
1487
  }
1488
  },
1489
+ "node_modules/graphology-assertions": {
1490
+ "version": "2.2.1",
1491
+ "resolved": "https://registry.npmjs.org/graphology-assertions/-/graphology-assertions-2.2.1.tgz",
1492
+ "integrity": "sha512-X6yvm8eYDepIyywDM/K0ud/NDD6I5aZj5+D459z4wZFEtb8B33A4NNPsMpjMNwjNdEo1q4VL1Gqp/usoItEP4g==",
1493
+ "dependencies": {
1494
+ "fast-deep-equal": "^3.1.3",
1495
+ "graphology-utils": "^2.1.2"
1496
+ },
1497
+ "peerDependencies": {
1498
+ "graphology-types": ">=0.19.0"
1499
+ }
1500
+ },
1501
+ "node_modules/graphology-canvas": {
1502
+ "version": "0.4.1",
1503
+ "resolved": "https://registry.npmjs.org/graphology-canvas/-/graphology-canvas-0.4.1.tgz",
1504
+ "integrity": "sha512-YWnE9UwEM5YHBta9q+YFBp2dTcP8dTFVNfR/0ZgDqZvdn9Qs05GdlXOdaTxS6ehOEPkSiMZSZwwp0obeMf3PEg==",
1505
+ "dependencies": {
1506
+ "graphology-layout": "0.6.0",
1507
+ "graphology-utils": "^2.0.0"
1508
+ },
1509
+ "peerDependencies": {
1510
+ "canvas": "^2.6.1",
1511
+ "graphology-types": ">=0.20.0"
1512
+ },
1513
+ "peerDependenciesMeta": {
1514
+ "canvas": {
1515
+ "optional": true
1516
+ }
1517
+ }
1518
+ },
1519
+ "node_modules/graphology-canvas/node_modules/graphology-layout": {
1520
+ "version": "0.6.0",
1521
+ "resolved": "https://registry.npmjs.org/graphology-layout/-/graphology-layout-0.6.0.tgz",
1522
+ "integrity": "sha512-QZIminJVOqOFHBOf6qEjcMp0m+BNP4/XqY1jrnJhH+fmUHFtNDdTPSXYhVa8Hr3AN5bOPP1Zte5oY1ZzOyzhvA==",
1523
+ "dependencies": {
1524
+ "graphology-utils": "^2.3.0",
1525
+ "pandemonium": "^1.5.0"
1526
+ },
1527
+ "peerDependencies": {
1528
+ "graphology-types": ">=0.19.0"
1529
+ }
1530
+ },
1531
+ "node_modules/graphology-canvas/node_modules/pandemonium": {
1532
+ "version": "1.5.0",
1533
+ "resolved": "https://registry.npmjs.org/pandemonium/-/pandemonium-1.5.0.tgz",
1534
+ "integrity": "sha512-9PU9fy93rJhZHLMjX+4M1RwZPEYl6g7DdWKGmGNhkgBZR5+tOBVExNZc00kzdEGMxbaAvWdQy9MqGAScGwYlcA=="
1535
+ },
1536
+ "node_modules/graphology-communities-louvain": {
1537
+ "version": "2.0.1",
1538
+ "resolved": "https://registry.npmjs.org/graphology-communities-louvain/-/graphology-communities-louvain-2.0.1.tgz",
1539
+ "integrity": "sha512-JxEH8uxao6FcWp3UXNDJIRjU3pamzp9aqIWgpfAqWE66aPwHeBIB39YnqTgbe4baUJRdpbcp1u8jJiYvojHGIQ==",
1540
+ "dependencies": {
1541
+ "graphology-indices": "^0.17.0",
1542
+ "graphology-utils": "^2.4.4",
1543
+ "mnemonist": "^0.39.0",
1544
+ "pandemonium": "^2.3.0"
1545
+ },
1546
+ "peerDependencies": {
1547
+ "graphology-types": ">=0.19.0"
1548
+ }
1549
+ },
1550
+ "node_modules/graphology-components": {
1551
+ "version": "1.5.4",
1552
+ "resolved": "https://registry.npmjs.org/graphology-components/-/graphology-components-1.5.4.tgz",
1553
+ "integrity": "sha512-O37vC226wgnN0C6FUWHNe4fbTzaF51CcQjwX3naId/QTzH/PkUtXaanCShj9ws5Vju+z4u3zvSeEZE84Bo9jlA==",
1554
+ "dependencies": {
1555
+ "graphology-indices": "^0.17.0",
1556
+ "graphology-utils": "^2.1.2"
1557
+ },
1558
+ "peerDependencies": {
1559
+ "graphology-types": ">=0.19.0"
1560
+ }
1561
+ },
1562
+ "node_modules/graphology-generators": {
1563
+ "version": "0.11.2",
1564
+ "resolved": "https://registry.npmjs.org/graphology-generators/-/graphology-generators-0.11.2.tgz",
1565
+ "integrity": "sha512-hx+F0OZRkVdoQ0B1tWrpxoakmHZNex0c6RAoR0PrqJ+6fz/gz6CQ88Qlw78C6yD9nlZVRgepIoDYhRTFV+bEHg==",
1566
+ "dependencies": {
1567
+ "graphology-metrics": "^2.0.0",
1568
+ "graphology-utils": "^2.3.0"
1569
+ },
1570
+ "peerDependencies": {
1571
+ "graphology-types": ">=0.19.0"
1572
+ }
1573
+ },
1574
+ "node_modules/graphology-gexf": {
1575
+ "version": "0.10.3",
1576
+ "resolved": "https://registry.npmjs.org/graphology-gexf/-/graphology-gexf-0.10.3.tgz",
1577
+ "integrity": "sha512-w5Hubf7NVwjQqWiiOw1bDzqZTvMulefJvatVknc/+V2A+WQvw2T2BVLkMbFpu7dB8+EMiUNKthzlE4dNRTNZCg==",
1578
+ "dependencies": {
1579
+ "@xmldom/xmldom": "^0.8.3",
1580
+ "graphology-operators": "^1.5.0",
1581
+ "graphology-utils": "^2.4.1",
1582
+ "xml-writer": "^1.7.0"
1583
+ },
1584
+ "peerDependencies": {
1585
+ "graphology-types": ">=0.20.0"
1586
+ }
1587
+ },
1588
+ "node_modules/graphology-graphml": {
1589
+ "version": "0.5.2",
1590
+ "resolved": "https://registry.npmjs.org/graphology-graphml/-/graphology-graphml-0.5.2.tgz",
1591
+ "integrity": "sha512-Z9m3amTxszia2dYdtdHJI9gHcbw2gSyCTWRmgsj2dAXMj8VwcoEEWnFPYykqMFw1sIuoQviZueadyE3H02wKOQ==",
1592
+ "dependencies": {
1593
+ "@xmldom/xmldom": "^0.8.3",
1594
+ "graphology-operators": "^1.5.0",
1595
+ "graphology-utils": "^2.4.1",
1596
+ "xml-writer": "^1.7.0"
1597
+ }
1598
+ },
1599
+ "node_modules/graphology-indices": {
1600
+ "version": "0.17.0",
1601
+ "resolved": "https://registry.npmjs.org/graphology-indices/-/graphology-indices-0.17.0.tgz",
1602
+ "integrity": "sha512-A7RXuKQvdqSWOpn7ZVQo4S33O0vCfPBnUSf7FwE0zNCasqwZVUaCXePuWo5HBpWw68KJcwObZDHpFk6HKH6MYQ==",
1603
+ "dependencies": {
1604
+ "graphology-utils": "^2.4.2",
1605
+ "mnemonist": "^0.39.0"
1606
+ },
1607
+ "peerDependencies": {
1608
+ "graphology-types": ">=0.20.0"
1609
+ }
1610
+ },
1611
+ "node_modules/graphology-layout": {
1612
+ "version": "0.6.1",
1613
+ "resolved": "https://registry.npmjs.org/graphology-layout/-/graphology-layout-0.6.1.tgz",
1614
+ "integrity": "sha512-m9aMvbd0uDPffUCFPng5ibRkb2pmfNvdKjQWeZrf71RS1aOoat5874+DcyNfMeCT4aQguKC7Lj9eCbqZj/h8Ag==",
1615
+ "dependencies": {
1616
+ "graphology-utils": "^2.3.0",
1617
+ "pandemonium": "^2.4.0"
1618
+ },
1619
+ "peerDependencies": {
1620
+ "graphology-types": ">=0.19.0"
1621
+ }
1622
+ },
1623
+ "node_modules/graphology-layout-force": {
1624
+ "version": "0.2.4",
1625
+ "resolved": "https://registry.npmjs.org/graphology-layout-force/-/graphology-layout-force-0.2.4.tgz",
1626
+ "integrity": "sha512-NYZz0YAnDkn5pkm30cvB0IScFoWGtbzJMrqaiH070dYlYJiag12Oc89dbVfaMaVR/w8DMIKxn/ix9Bqj+Umm9Q==",
1627
+ "dependencies": {
1628
+ "graphology-utils": "^2.4.2"
1629
+ },
1630
+ "peerDependencies": {
1631
+ "graphology-types": ">=0.19.0"
1632
+ }
1633
+ },
1634
+ "node_modules/graphology-layout-forceatlas2": {
1635
+ "version": "0.10.1",
1636
+ "resolved": "https://registry.npmjs.org/graphology-layout-forceatlas2/-/graphology-layout-forceatlas2-0.10.1.tgz",
1637
+ "integrity": "sha512-ogzBeF1FvWzjkikrIFwxhlZXvD2+wlY54lqhsrWprcdPjopM2J9HoMweUmIgwaTvY4bUYVimpSsOdvDv1gPRFQ==",
1638
+ "dependencies": {
1639
+ "graphology-utils": "^2.1.0"
1640
+ },
1641
+ "peerDependencies": {
1642
+ "graphology-types": ">=0.19.0"
1643
+ }
1644
+ },
1645
+ "node_modules/graphology-layout-noverlap": {
1646
+ "version": "0.4.2",
1647
+ "resolved": "https://registry.npmjs.org/graphology-layout-noverlap/-/graphology-layout-noverlap-0.4.2.tgz",
1648
+ "integrity": "sha512-13WwZSx96zim6l1dfZONcqLh3oqyRcjIBsqz2c2iJ3ohgs3605IDWjldH41Gnhh462xGB1j6VGmuGhZ2FKISXA==",
1649
+ "dependencies": {
1650
+ "graphology-utils": "^2.3.0"
1651
+ },
1652
+ "peerDependencies": {
1653
+ "graphology-types": ">=0.19.0"
1654
+ }
1655
+ },
1656
+ "node_modules/graphology-library": {
1657
+ "version": "0.8.0",
1658
+ "resolved": "https://registry.npmjs.org/graphology-library/-/graphology-library-0.8.0.tgz",
1659
+ "integrity": "sha512-mIzyL2AxUOAi+Q6pr8/xyadMCzCZ8bTZhcGYKR4gk+QIBZQqwiE1gAfCjCSqMj5q7kyBbdCVjrPHi6kAXvu0dw==",
1660
+ "dependencies": {
1661
+ "graphology-assertions": "~2.2.1",
1662
+ "graphology-canvas": "^0.4.1",
1663
+ "graphology-communities-louvain": "~2.0.1",
1664
+ "graphology-components": "~1.5.4",
1665
+ "graphology-generators": "~0.11.2",
1666
+ "graphology-gexf": "~0.10.3",
1667
+ "graphology-graphml": "^0.5.2",
1668
+ "graphology-layout": "~0.6.1",
1669
+ "graphology-layout-force": "~0.2.4",
1670
+ "graphology-layout-forceatlas2": "~0.10.1",
1671
+ "graphology-layout-noverlap": "^0.4.2",
1672
+ "graphology-metrics": "~2.1.0",
1673
+ "graphology-operators": "~1.6.0",
1674
+ "graphology-shortest-path": "~2.0.2",
1675
+ "graphology-simple-path": "^0.2.0",
1676
+ "graphology-svg": "^0.1.3",
1677
+ "graphology-traversal": "^0.3.1",
1678
+ "graphology-utils": "~2.5.2"
1679
+ },
1680
+ "peerDependencies": {
1681
+ "graphology-types": ">=0.23.0"
1682
+ }
1683
+ },
1684
+ "node_modules/graphology-metrics": {
1685
+ "version": "2.1.0",
1686
+ "resolved": "https://registry.npmjs.org/graphology-metrics/-/graphology-metrics-2.1.0.tgz",
1687
+ "integrity": "sha512-E+y4kgVGxhYl/+bPHEftJeWLS8LgVno4/Wvg+C7IoDIjY6OlIZghgMKDR8LKsxU6GC43mlx08FTZs229cvEkwQ==",
1688
+ "dependencies": {
1689
+ "graphology-shortest-path": "^2.0.0",
1690
+ "graphology-utils": "^2.4.4",
1691
+ "mnemonist": "^0.39.0"
1692
+ },
1693
+ "peerDependencies": {
1694
+ "graphology-types": ">=0.20.0"
1695
+ }
1696
+ },
1697
+ "node_modules/graphology-operators": {
1698
+ "version": "1.6.0",
1699
+ "resolved": "https://registry.npmjs.org/graphology-operators/-/graphology-operators-1.6.0.tgz",
1700
+ "integrity": "sha512-yfnVNsFd6plBw7r6Td4luGlNoQn9MKI56EZ/NcFcRmvu/D1R8eWHjpipNUdBjl5MVV8iSW8e/XuY8YsjRDnLoA==",
1701
+ "dependencies": {
1702
+ "graphology-utils": "^2.0.0"
1703
+ },
1704
+ "peerDependencies": {
1705
+ "graphology-types": ">=0.20.0"
1706
+ }
1707
+ },
1708
+ "node_modules/graphology-shortest-path": {
1709
+ "version": "2.0.2",
1710
+ "resolved": "https://registry.npmjs.org/graphology-shortest-path/-/graphology-shortest-path-2.0.2.tgz",
1711
+ "integrity": "sha512-hlGvh4Yb1Vmd2J7wT8Q8+t4RQ6Tx+9wRYm0/fZB9PZJ4uW3nml5kJ7yXZ2+JYWT+7wLLmY5mg3o9bLSAWmv/jQ==",
1712
+ "dependencies": {
1713
+ "@yomguithereal/helpers": "^1.1.1",
1714
+ "graphology-indices": "^0.17.0",
1715
+ "graphology-utils": "^2.4.3",
1716
+ "mnemonist": "^0.39.0"
1717
+ },
1718
+ "peerDependencies": {
1719
+ "graphology-types": ">=0.20.0"
1720
+ }
1721
+ },
1722
+ "node_modules/graphology-simple-path": {
1723
+ "version": "0.2.0",
1724
+ "resolved": "https://registry.npmjs.org/graphology-simple-path/-/graphology-simple-path-0.2.0.tgz",
1725
+ "integrity": "sha512-4cGMWbVuJM0zlKDUx6dS6JGGLddizDPe8PsTokXVz2eTeHYg07qa5TgwIco15ta2RMM05+xy8N1mFnpS85y0kw==",
1726
+ "dependencies": {
1727
+ "graphology-utils": "^1.8.0",
1728
+ "mnemonist": "^0.39.0"
1729
+ },
1730
+ "peerDependencies": {
1731
+ "graphology-types": ">=0.20.0"
1732
+ }
1733
+ },
1734
+ "node_modules/graphology-simple-path/node_modules/graphology-utils": {
1735
+ "version": "1.8.0",
1736
+ "resolved": "https://registry.npmjs.org/graphology-utils/-/graphology-utils-1.8.0.tgz",
1737
+ "integrity": "sha512-Pa7SW30OMm8fVtyH49b3GJ/uxlMHGfXly50wIhlcc7ZoX9ahZa7sPBz+obo4WZClrRV6wh3tIu0GJoI42eao1A==",
1738
+ "peerDependencies": {
1739
+ "graphology-types": ">=0.19.0"
1740
+ }
1741
+ },
1742
+ "node_modules/graphology-svg": {
1743
+ "version": "0.1.3",
1744
+ "resolved": "https://registry.npmjs.org/graphology-svg/-/graphology-svg-0.1.3.tgz",
1745
+ "integrity": "sha512-bvsLnL9pIElvWgr/nPYKsqLWE1VPqG6wTFolmS9DxkAr9256hqzlb1ATfDGn52iyljJb+HTu9z6XMHrfRJ4Ggg==",
1746
+ "dependencies": {
1747
+ "graphology-utils": "^2.3.0"
1748
+ }
1749
+ },
1750
+ "node_modules/graphology-traversal": {
1751
+ "version": "0.3.1",
1752
+ "resolved": "https://registry.npmjs.org/graphology-traversal/-/graphology-traversal-0.3.1.tgz",
1753
+ "integrity": "sha512-lGLrLKEDKtNgAKgHVhVftKf3cb/nuWwuVPQZHXRnN90JWn0RSjco/s+NB2ARSlMapEMlbnPgv6j++427yTnU3Q==",
1754
+ "dependencies": {
1755
+ "graphology-indices": "^0.17.0",
1756
+ "graphology-utils": "^2.0.0"
1757
+ },
1758
+ "peerDependencies": {
1759
+ "graphology-types": ">=0.20.0"
1760
+ }
1761
+ },
1762
  "node_modules/graphology-types": {
1763
  "version": "0.24.7",
1764
  "resolved": "https://registry.npmjs.org/graphology-types/-/graphology-types-0.24.7.tgz",
 
1867
  "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
1868
  "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="
1869
  },
1870
+ "node_modules/lodash": {
1871
+ "version": "4.17.21",
1872
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1873
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
1874
+ },
1875
  "node_modules/magic-string": {
1876
  "version": "0.30.9",
1877
  "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.9.tgz",
 
1948
  "mkdirp": "bin/cmd.js"
1949
  }
1950
  },
1951
+ "node_modules/mnemonist": {
1952
+ "version": "0.39.8",
1953
+ "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.39.8.tgz",
1954
+ "integrity": "sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ==",
1955
+ "dependencies": {
1956
+ "obliterator": "^2.0.1"
1957
+ }
1958
+ },
1959
  "node_modules/mri": {
1960
  "version": "1.2.0",
1961
  "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
 
2011
  "wrappy": "1"
2012
  }
2013
  },
2014
+ "node_modules/pandemonium": {
2015
+ "version": "2.4.1",
2016
+ "resolved": "https://registry.npmjs.org/pandemonium/-/pandemonium-2.4.1.tgz",
2017
+ "integrity": "sha512-wRqjisUyiUfXowgm7MFH2rwJzKIr20rca5FsHXCMNm1W5YPP1hCtrZfgmQ62kP7OZ7Xt+cR858aB28lu5NX55g==",
2018
+ "dependencies": {
2019
+ "mnemonist": "^0.39.2"
2020
+ }
2021
+ },
2022
  "node_modules/parent-module": {
2023
  "version": "1.0.1",
2024
  "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
 
2158
  }
2159
  },
2160
  "node_modules/rollup": {
2161
+ "version": "4.14.3",
2162
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.3.tgz",
2163
+ "integrity": "sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==",
2164
  "dev": true,
2165
  "dependencies": {
2166
  "@types/estree": "1.0.5"
 
2173
  "npm": ">=8.0.0"
2174
  },
2175
  "optionalDependencies": {
2176
+ "@rollup/rollup-android-arm-eabi": "4.14.3",
2177
+ "@rollup/rollup-android-arm64": "4.14.3",
2178
+ "@rollup/rollup-darwin-arm64": "4.14.3",
2179
+ "@rollup/rollup-darwin-x64": "4.14.3",
2180
+ "@rollup/rollup-linux-arm-gnueabihf": "4.14.3",
2181
+ "@rollup/rollup-linux-arm-musleabihf": "4.14.3",
2182
+ "@rollup/rollup-linux-arm64-gnu": "4.14.3",
2183
+ "@rollup/rollup-linux-arm64-musl": "4.14.3",
2184
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.14.3",
2185
+ "@rollup/rollup-linux-riscv64-gnu": "4.14.3",
2186
+ "@rollup/rollup-linux-s390x-gnu": "4.14.3",
2187
+ "@rollup/rollup-linux-x64-gnu": "4.14.3",
2188
+ "@rollup/rollup-linux-x64-musl": "4.14.3",
2189
+ "@rollup/rollup-win32-arm64-msvc": "4.14.3",
2190
+ "@rollup/rollup-win32-ia32-msvc": "4.14.3",
2191
+ "@rollup/rollup-win32-x64-msvc": "4.14.3",
2192
  "fsevents": "~2.3.2"
2193
  }
2194
  },
 
2281
  }
2282
  },
2283
  "node_modules/svelte": {
2284
+ "version": "4.2.14",
2285
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.14.tgz",
2286
+ "integrity": "sha512-ry3+YlWqZpHxLy45MW4MZIxNdvB+Wl7p2nnstWKbOAewaJyNJuOtivSbRChcfIej6wFBjWqyKmf/NgK1uW2JAA==",
2287
  "dependencies": {
2288
  "@ampproject/remapping": "^2.2.1",
2289
  "@jridgewell/sourcemap-codec": "^1.4.15",
 
2327
  }
2328
  },
2329
  "node_modules/svelte-hmr": {
2330
+ "version": "0.16.0",
2331
+ "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz",
2332
+ "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==",
2333
  "dev": true,
2334
  "engines": {
2335
  "node": "^12.20 || ^14.13.1 || >= 16"
 
2419
  "dev": true
2420
  },
2421
  "node_modules/typescript": {
2422
+ "version": "5.4.5",
2423
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
2424
+ "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
2425
  "devOptional": true,
2426
  "bin": {
2427
  "tsc": "bin/tsc",
 
2504
  "version": "1.0.2",
2505
  "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2506
  "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
2507
+ },
2508
+ "node_modules/xml-writer": {
2509
+ "version": "1.7.0",
2510
+ "resolved": "https://registry.npmjs.org/xml-writer/-/xml-writer-1.7.0.tgz",
2511
+ "integrity": "sha512-elFVMRiV5jb59fbc87zzVa0C01QLBEWP909mRuWqFqrYC5wNTH5QW4AaKMNv7d6zAsuOulkD7wnztZNLQW0Nfg==",
2512
+ "engines": {
2513
+ "node": ">=0.4.0"
2514
+ }
2515
  }
2516
  },
2517
  "dependencies": {
 
2746
  }
2747
  },
2748
  "@rollup/rollup-android-arm-eabi": {
2749
+ "version": "4.14.3",
2750
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz",
2751
+ "integrity": "sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==",
2752
  "dev": true,
2753
  "optional": true
2754
  },
2755
  "@rollup/rollup-android-arm64": {
2756
+ "version": "4.14.3",
2757
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz",
2758
+ "integrity": "sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==",
2759
  "dev": true,
2760
  "optional": true
2761
  },
2762
  "@rollup/rollup-darwin-arm64": {
2763
+ "version": "4.14.3",
2764
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz",
2765
+ "integrity": "sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==",
2766
  "dev": true,
2767
  "optional": true
2768
  },
2769
  "@rollup/rollup-darwin-x64": {
2770
+ "version": "4.14.3",
2771
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz",
2772
+ "integrity": "sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==",
2773
  "dev": true,
2774
  "optional": true
2775
  },
2776
  "@rollup/rollup-linux-arm-gnueabihf": {
2777
+ "version": "4.14.3",
2778
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz",
2779
+ "integrity": "sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==",
2780
+ "dev": true,
2781
+ "optional": true
2782
+ },
2783
+ "@rollup/rollup-linux-arm-musleabihf": {
2784
+ "version": "4.14.3",
2785
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz",
2786
+ "integrity": "sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==",
2787
  "dev": true,
2788
  "optional": true
2789
  },
2790
  "@rollup/rollup-linux-arm64-gnu": {
2791
+ "version": "4.14.3",
2792
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz",
2793
+ "integrity": "sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==",
2794
  "dev": true,
2795
  "optional": true
2796
  },
2797
  "@rollup/rollup-linux-arm64-musl": {
2798
+ "version": "4.14.3",
2799
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz",
2800
+ "integrity": "sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==",
2801
  "dev": true,
2802
  "optional": true
2803
  },
2804
  "@rollup/rollup-linux-powerpc64le-gnu": {
2805
+ "version": "4.14.3",
2806
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz",
2807
+ "integrity": "sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==",
2808
  "dev": true,
2809
  "optional": true
2810
  },
2811
  "@rollup/rollup-linux-riscv64-gnu": {
2812
+ "version": "4.14.3",
2813
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz",
2814
+ "integrity": "sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==",
2815
  "dev": true,
2816
  "optional": true
2817
  },
2818
  "@rollup/rollup-linux-s390x-gnu": {
2819
+ "version": "4.14.3",
2820
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz",
2821
+ "integrity": "sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==",
2822
  "dev": true,
2823
  "optional": true
2824
  },
2825
  "@rollup/rollup-linux-x64-gnu": {
2826
+ "version": "4.14.3",
2827
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz",
2828
+ "integrity": "sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==",
2829
  "dev": true,
2830
  "optional": true
2831
  },
2832
  "@rollup/rollup-linux-x64-musl": {
2833
+ "version": "4.14.3",
2834
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz",
2835
+ "integrity": "sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==",
2836
  "dev": true,
2837
  "optional": true
2838
  },
2839
  "@rollup/rollup-win32-arm64-msvc": {
2840
+ "version": "4.14.3",
2841
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz",
2842
+ "integrity": "sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==",
2843
  "dev": true,
2844
  "optional": true
2845
  },
2846
  "@rollup/rollup-win32-ia32-msvc": {
2847
+ "version": "4.14.3",
2848
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz",
2849
+ "integrity": "sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==",
2850
  "dev": true,
2851
  "optional": true
2852
  },
2853
  "@rollup/rollup-win32-x64-msvc": {
2854
+ "version": "4.14.3",
2855
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz",
2856
+ "integrity": "sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==",
2857
  "dev": true,
2858
  "optional": true
2859
  },
 
2863
  "integrity": "sha512-EWMEDkZ0+O3yMhb9yrqe5UYisV9CNRKX6Pl/JW3x62t74CiN+3COu1L9NzZUG0omagc2Z3J14PZNYxs77IC9NA=="
2864
  },
2865
  "@sveltejs/vite-plugin-svelte": {
2866
+ "version": "3.1.0",
2867
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.0.tgz",
2868
+ "integrity": "sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==",
2869
  "dev": true,
2870
  "requires": {
2871
  "@sveltejs/vite-plugin-svelte-inspector": "^2.0.0",
2872
  "debug": "^4.3.4",
2873
  "deepmerge": "^4.3.1",
2874
  "kleur": "^4.1.5",
2875
+ "magic-string": "^0.30.9",
2876
+ "svelte-hmr": "^0.16.0",
2877
  "vitefu": "^0.2.5"
2878
  }
2879
  },
2880
  "@sveltejs/vite-plugin-svelte-inspector": {
2881
+ "version": "2.1.0",
2882
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz",
2883
+ "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==",
2884
  "dev": true,
2885
  "requires": {
2886
  "debug": "^4.3.4"
 
3129
  "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz",
3130
  "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA=="
3131
  },
3132
+ "@xmldom/xmldom": {
3133
+ "version": "0.8.10",
3134
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
3135
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw=="
3136
+ },
3137
  "@xyflow/svelte": {
3138
+ "version": "0.0.39",
3139
+ "resolved": "https://registry.npmjs.org/@xyflow/svelte/-/svelte-0.0.39.tgz",
3140
+ "integrity": "sha512-Kam9VMXIrKjIpBvalJLNrxqbI/ASHaYHj6ZRkdGsnAx3aYgB+de0McAqiJToKdlOeZyHoQtxzSRX9D+ZTSEVZw==",
3141
  "requires": {
3142
  "@svelte-put/shortcut": "^3.1.0",
3143
+ "@xyflow/system": "0.0.20",
3144
  "classcat": "^5.0.4",
3145
  "svelte-preprocess": "^5.1.3"
3146
  }
3147
  },
3148
  "@xyflow/system": {
3149
+ "version": "0.0.20",
3150
+ "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.20.tgz",
3151
+ "integrity": "sha512-OQ9irX0HtZqAzOKtnNi7WpDT6SEp7VpR16VRatd7oImw5vahyjmggUSY7as9XvJnAz0D9H0g1qjRX99moabvQA==",
3152
  "requires": {
3153
  "@types/d3": "^7.4.0",
3154
  "@types/d3-drag": "^3.0.1",
 
3159
  "d3-zoom": "^3.0.0"
3160
  }
3161
  },
3162
+ "@yomguithereal/helpers": {
3163
+ "version": "1.1.1",
3164
+ "resolved": "https://registry.npmjs.org/@yomguithereal/helpers/-/helpers-1.1.1.tgz",
3165
+ "integrity": "sha512-UYvAq/XCA7xoh1juWDYsq3W0WywOB+pz8cgVnE1b45ZfdMhBvHDrgmSFG3jXeZSr2tMTYLGHFHON+ekG05Jebg=="
3166
+ },
3167
  "acorn": {
3168
  "version": "8.11.3",
3169
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
 
3422
  "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
3423
  "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
3424
  },
3425
+ "fast-deep-equal": {
3426
+ "version": "3.1.3",
3427
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
3428
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
3429
+ },
3430
  "fast-glob": {
3431
  "version": "3.3.2",
3432
  "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
 
3511
  "obliterator": "^2.0.2"
3512
  }
3513
  },
3514
+ "graphology-assertions": {
3515
+ "version": "2.2.1",
3516
+ "resolved": "https://registry.npmjs.org/graphology-assertions/-/graphology-assertions-2.2.1.tgz",
3517
+ "integrity": "sha512-X6yvm8eYDepIyywDM/K0ud/NDD6I5aZj5+D459z4wZFEtb8B33A4NNPsMpjMNwjNdEo1q4VL1Gqp/usoItEP4g==",
3518
+ "requires": {
3519
+ "fast-deep-equal": "^3.1.3",
3520
+ "graphology-utils": "^2.1.2"
3521
+ }
3522
+ },
3523
+ "graphology-canvas": {
3524
+ "version": "0.4.1",
3525
+ "resolved": "https://registry.npmjs.org/graphology-canvas/-/graphology-canvas-0.4.1.tgz",
3526
+ "integrity": "sha512-YWnE9UwEM5YHBta9q+YFBp2dTcP8dTFVNfR/0ZgDqZvdn9Qs05GdlXOdaTxS6ehOEPkSiMZSZwwp0obeMf3PEg==",
3527
+ "requires": {
3528
+ "graphology-layout": "0.6.0",
3529
+ "graphology-utils": "^2.0.0"
3530
+ },
3531
+ "dependencies": {
3532
+ "graphology-layout": {
3533
+ "version": "0.6.0",
3534
+ "resolved": "https://registry.npmjs.org/graphology-layout/-/graphology-layout-0.6.0.tgz",
3535
+ "integrity": "sha512-QZIminJVOqOFHBOf6qEjcMp0m+BNP4/XqY1jrnJhH+fmUHFtNDdTPSXYhVa8Hr3AN5bOPP1Zte5oY1ZzOyzhvA==",
3536
+ "requires": {
3537
+ "graphology-utils": "^2.3.0",
3538
+ "pandemonium": "^1.5.0"
3539
+ }
3540
+ },
3541
+ "pandemonium": {
3542
+ "version": "1.5.0",
3543
+ "resolved": "https://registry.npmjs.org/pandemonium/-/pandemonium-1.5.0.tgz",
3544
+ "integrity": "sha512-9PU9fy93rJhZHLMjX+4M1RwZPEYl6g7DdWKGmGNhkgBZR5+tOBVExNZc00kzdEGMxbaAvWdQy9MqGAScGwYlcA=="
3545
+ }
3546
+ }
3547
+ },
3548
+ "graphology-communities-louvain": {
3549
+ "version": "2.0.1",
3550
+ "resolved": "https://registry.npmjs.org/graphology-communities-louvain/-/graphology-communities-louvain-2.0.1.tgz",
3551
+ "integrity": "sha512-JxEH8uxao6FcWp3UXNDJIRjU3pamzp9aqIWgpfAqWE66aPwHeBIB39YnqTgbe4baUJRdpbcp1u8jJiYvojHGIQ==",
3552
+ "requires": {
3553
+ "graphology-indices": "^0.17.0",
3554
+ "graphology-utils": "^2.4.4",
3555
+ "mnemonist": "^0.39.0",
3556
+ "pandemonium": "^2.3.0"
3557
+ }
3558
+ },
3559
+ "graphology-components": {
3560
+ "version": "1.5.4",
3561
+ "resolved": "https://registry.npmjs.org/graphology-components/-/graphology-components-1.5.4.tgz",
3562
+ "integrity": "sha512-O37vC226wgnN0C6FUWHNe4fbTzaF51CcQjwX3naId/QTzH/PkUtXaanCShj9ws5Vju+z4u3zvSeEZE84Bo9jlA==",
3563
+ "requires": {
3564
+ "graphology-indices": "^0.17.0",
3565
+ "graphology-utils": "^2.1.2"
3566
+ }
3567
+ },
3568
+ "graphology-generators": {
3569
+ "version": "0.11.2",
3570
+ "resolved": "https://registry.npmjs.org/graphology-generators/-/graphology-generators-0.11.2.tgz",
3571
+ "integrity": "sha512-hx+F0OZRkVdoQ0B1tWrpxoakmHZNex0c6RAoR0PrqJ+6fz/gz6CQ88Qlw78C6yD9nlZVRgepIoDYhRTFV+bEHg==",
3572
+ "requires": {
3573
+ "graphology-metrics": "^2.0.0",
3574
+ "graphology-utils": "^2.3.0"
3575
+ }
3576
+ },
3577
+ "graphology-gexf": {
3578
+ "version": "0.10.3",
3579
+ "resolved": "https://registry.npmjs.org/graphology-gexf/-/graphology-gexf-0.10.3.tgz",
3580
+ "integrity": "sha512-w5Hubf7NVwjQqWiiOw1bDzqZTvMulefJvatVknc/+V2A+WQvw2T2BVLkMbFpu7dB8+EMiUNKthzlE4dNRTNZCg==",
3581
+ "requires": {
3582
+ "@xmldom/xmldom": "^0.8.3",
3583
+ "graphology-operators": "^1.5.0",
3584
+ "graphology-utils": "^2.4.1",
3585
+ "xml-writer": "^1.7.0"
3586
+ }
3587
+ },
3588
+ "graphology-graphml": {
3589
+ "version": "0.5.2",
3590
+ "resolved": "https://registry.npmjs.org/graphology-graphml/-/graphology-graphml-0.5.2.tgz",
3591
+ "integrity": "sha512-Z9m3amTxszia2dYdtdHJI9gHcbw2gSyCTWRmgsj2dAXMj8VwcoEEWnFPYykqMFw1sIuoQviZueadyE3H02wKOQ==",
3592
+ "requires": {
3593
+ "@xmldom/xmldom": "^0.8.3",
3594
+ "graphology-operators": "^1.5.0",
3595
+ "graphology-utils": "^2.4.1",
3596
+ "xml-writer": "^1.7.0"
3597
+ }
3598
+ },
3599
+ "graphology-indices": {
3600
+ "version": "0.17.0",
3601
+ "resolved": "https://registry.npmjs.org/graphology-indices/-/graphology-indices-0.17.0.tgz",
3602
+ "integrity": "sha512-A7RXuKQvdqSWOpn7ZVQo4S33O0vCfPBnUSf7FwE0zNCasqwZVUaCXePuWo5HBpWw68KJcwObZDHpFk6HKH6MYQ==",
3603
+ "requires": {
3604
+ "graphology-utils": "^2.4.2",
3605
+ "mnemonist": "^0.39.0"
3606
+ }
3607
+ },
3608
+ "graphology-layout": {
3609
+ "version": "0.6.1",
3610
+ "resolved": "https://registry.npmjs.org/graphology-layout/-/graphology-layout-0.6.1.tgz",
3611
+ "integrity": "sha512-m9aMvbd0uDPffUCFPng5ibRkb2pmfNvdKjQWeZrf71RS1aOoat5874+DcyNfMeCT4aQguKC7Lj9eCbqZj/h8Ag==",
3612
+ "requires": {
3613
+ "graphology-utils": "^2.3.0",
3614
+ "pandemonium": "^2.4.0"
3615
+ }
3616
+ },
3617
+ "graphology-layout-force": {
3618
+ "version": "0.2.4",
3619
+ "resolved": "https://registry.npmjs.org/graphology-layout-force/-/graphology-layout-force-0.2.4.tgz",
3620
+ "integrity": "sha512-NYZz0YAnDkn5pkm30cvB0IScFoWGtbzJMrqaiH070dYlYJiag12Oc89dbVfaMaVR/w8DMIKxn/ix9Bqj+Umm9Q==",
3621
+ "requires": {
3622
+ "graphology-utils": "^2.4.2"
3623
+ }
3624
+ },
3625
+ "graphology-layout-forceatlas2": {
3626
+ "version": "0.10.1",
3627
+ "resolved": "https://registry.npmjs.org/graphology-layout-forceatlas2/-/graphology-layout-forceatlas2-0.10.1.tgz",
3628
+ "integrity": "sha512-ogzBeF1FvWzjkikrIFwxhlZXvD2+wlY54lqhsrWprcdPjopM2J9HoMweUmIgwaTvY4bUYVimpSsOdvDv1gPRFQ==",
3629
+ "requires": {
3630
+ "graphology-utils": "^2.1.0"
3631
+ }
3632
+ },
3633
+ "graphology-layout-noverlap": {
3634
+ "version": "0.4.2",
3635
+ "resolved": "https://registry.npmjs.org/graphology-layout-noverlap/-/graphology-layout-noverlap-0.4.2.tgz",
3636
+ "integrity": "sha512-13WwZSx96zim6l1dfZONcqLh3oqyRcjIBsqz2c2iJ3ohgs3605IDWjldH41Gnhh462xGB1j6VGmuGhZ2FKISXA==",
3637
+ "requires": {
3638
+ "graphology-utils": "^2.3.0"
3639
+ }
3640
+ },
3641
+ "graphology-library": {
3642
+ "version": "0.8.0",
3643
+ "resolved": "https://registry.npmjs.org/graphology-library/-/graphology-library-0.8.0.tgz",
3644
+ "integrity": "sha512-mIzyL2AxUOAi+Q6pr8/xyadMCzCZ8bTZhcGYKR4gk+QIBZQqwiE1gAfCjCSqMj5q7kyBbdCVjrPHi6kAXvu0dw==",
3645
+ "requires": {
3646
+ "graphology-assertions": "~2.2.1",
3647
+ "graphology-canvas": "^0.4.1",
3648
+ "graphology-communities-louvain": "~2.0.1",
3649
+ "graphology-components": "~1.5.4",
3650
+ "graphology-generators": "~0.11.2",
3651
+ "graphology-gexf": "~0.10.3",
3652
+ "graphology-graphml": "^0.5.2",
3653
+ "graphology-layout": "~0.6.1",
3654
+ "graphology-layout-force": "~0.2.4",
3655
+ "graphology-layout-forceatlas2": "~0.10.1",
3656
+ "graphology-layout-noverlap": "^0.4.2",
3657
+ "graphology-metrics": "~2.1.0",
3658
+ "graphology-operators": "~1.6.0",
3659
+ "graphology-shortest-path": "~2.0.2",
3660
+ "graphology-simple-path": "^0.2.0",
3661
+ "graphology-svg": "^0.1.3",
3662
+ "graphology-traversal": "^0.3.1",
3663
+ "graphology-utils": "~2.5.2"
3664
+ }
3665
+ },
3666
+ "graphology-metrics": {
3667
+ "version": "2.1.0",
3668
+ "resolved": "https://registry.npmjs.org/graphology-metrics/-/graphology-metrics-2.1.0.tgz",
3669
+ "integrity": "sha512-E+y4kgVGxhYl/+bPHEftJeWLS8LgVno4/Wvg+C7IoDIjY6OlIZghgMKDR8LKsxU6GC43mlx08FTZs229cvEkwQ==",
3670
+ "requires": {
3671
+ "graphology-shortest-path": "^2.0.0",
3672
+ "graphology-utils": "^2.4.4",
3673
+ "mnemonist": "^0.39.0"
3674
+ }
3675
+ },
3676
+ "graphology-operators": {
3677
+ "version": "1.6.0",
3678
+ "resolved": "https://registry.npmjs.org/graphology-operators/-/graphology-operators-1.6.0.tgz",
3679
+ "integrity": "sha512-yfnVNsFd6plBw7r6Td4luGlNoQn9MKI56EZ/NcFcRmvu/D1R8eWHjpipNUdBjl5MVV8iSW8e/XuY8YsjRDnLoA==",
3680
+ "requires": {
3681
+ "graphology-utils": "^2.0.0"
3682
+ }
3683
+ },
3684
+ "graphology-shortest-path": {
3685
+ "version": "2.0.2",
3686
+ "resolved": "https://registry.npmjs.org/graphology-shortest-path/-/graphology-shortest-path-2.0.2.tgz",
3687
+ "integrity": "sha512-hlGvh4Yb1Vmd2J7wT8Q8+t4RQ6Tx+9wRYm0/fZB9PZJ4uW3nml5kJ7yXZ2+JYWT+7wLLmY5mg3o9bLSAWmv/jQ==",
3688
+ "requires": {
3689
+ "@yomguithereal/helpers": "^1.1.1",
3690
+ "graphology-indices": "^0.17.0",
3691
+ "graphology-utils": "^2.4.3",
3692
+ "mnemonist": "^0.39.0"
3693
+ }
3694
+ },
3695
+ "graphology-simple-path": {
3696
+ "version": "0.2.0",
3697
+ "resolved": "https://registry.npmjs.org/graphology-simple-path/-/graphology-simple-path-0.2.0.tgz",
3698
+ "integrity": "sha512-4cGMWbVuJM0zlKDUx6dS6JGGLddizDPe8PsTokXVz2eTeHYg07qa5TgwIco15ta2RMM05+xy8N1mFnpS85y0kw==",
3699
+ "requires": {
3700
+ "graphology-utils": "^1.8.0",
3701
+ "mnemonist": "^0.39.0"
3702
+ },
3703
+ "dependencies": {
3704
+ "graphology-utils": {
3705
+ "version": "1.8.0",
3706
+ "resolved": "https://registry.npmjs.org/graphology-utils/-/graphology-utils-1.8.0.tgz",
3707
+ "integrity": "sha512-Pa7SW30OMm8fVtyH49b3GJ/uxlMHGfXly50wIhlcc7ZoX9ahZa7sPBz+obo4WZClrRV6wh3tIu0GJoI42eao1A==",
3708
+ "requires": {}
3709
+ }
3710
+ }
3711
+ },
3712
+ "graphology-svg": {
3713
+ "version": "0.1.3",
3714
+ "resolved": "https://registry.npmjs.org/graphology-svg/-/graphology-svg-0.1.3.tgz",
3715
+ "integrity": "sha512-bvsLnL9pIElvWgr/nPYKsqLWE1VPqG6wTFolmS9DxkAr9256hqzlb1ATfDGn52iyljJb+HTu9z6XMHrfRJ4Ggg==",
3716
+ "requires": {
3717
+ "graphology-utils": "^2.3.0"
3718
+ }
3719
+ },
3720
+ "graphology-traversal": {
3721
+ "version": "0.3.1",
3722
+ "resolved": "https://registry.npmjs.org/graphology-traversal/-/graphology-traversal-0.3.1.tgz",
3723
+ "integrity": "sha512-lGLrLKEDKtNgAKgHVhVftKf3cb/nuWwuVPQZHXRnN90JWn0RSjco/s+NB2ARSlMapEMlbnPgv6j++427yTnU3Q==",
3724
+ "requires": {
3725
+ "graphology-indices": "^0.17.0",
3726
+ "graphology-utils": "^2.0.0"
3727
+ }
3728
+ },
3729
  "graphology-types": {
3730
  "version": "0.24.7",
3731
  "resolved": "https://registry.npmjs.org/graphology-types/-/graphology-types-0.24.7.tgz",
 
3811
  "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
3812
  "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="
3813
  },
3814
+ "lodash": {
3815
+ "version": "4.17.21",
3816
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
3817
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
3818
+ },
3819
  "magic-string": {
3820
  "version": "0.30.9",
3821
  "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.9.tgz",
 
3871
  "minimist": "^1.2.6"
3872
  }
3873
  },
3874
+ "mnemonist": {
3875
+ "version": "0.39.8",
3876
+ "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.39.8.tgz",
3877
+ "integrity": "sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ==",
3878
+ "requires": {
3879
+ "obliterator": "^2.0.1"
3880
+ }
3881
+ },
3882
  "mri": {
3883
  "version": "1.2.0",
3884
  "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
 
3916
  "wrappy": "1"
3917
  }
3918
  },
3919
+ "pandemonium": {
3920
+ "version": "2.4.1",
3921
+ "resolved": "https://registry.npmjs.org/pandemonium/-/pandemonium-2.4.1.tgz",
3922
+ "integrity": "sha512-wRqjisUyiUfXowgm7MFH2rwJzKIr20rca5FsHXCMNm1W5YPP1hCtrZfgmQ62kP7OZ7Xt+cR858aB28lu5NX55g==",
3923
+ "requires": {
3924
+ "mnemonist": "^0.39.2"
3925
+ }
3926
+ },
3927
  "parent-module": {
3928
  "version": "1.0.1",
3929
  "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
 
4007
  }
4008
  },
4009
  "rollup": {
4010
+ "version": "4.14.3",
4011
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.3.tgz",
4012
+ "integrity": "sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==",
4013
+ "dev": true,
4014
+ "requires": {
4015
+ "@rollup/rollup-android-arm-eabi": "4.14.3",
4016
+ "@rollup/rollup-android-arm64": "4.14.3",
4017
+ "@rollup/rollup-darwin-arm64": "4.14.3",
4018
+ "@rollup/rollup-darwin-x64": "4.14.3",
4019
+ "@rollup/rollup-linux-arm-gnueabihf": "4.14.3",
4020
+ "@rollup/rollup-linux-arm-musleabihf": "4.14.3",
4021
+ "@rollup/rollup-linux-arm64-gnu": "4.14.3",
4022
+ "@rollup/rollup-linux-arm64-musl": "4.14.3",
4023
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.14.3",
4024
+ "@rollup/rollup-linux-riscv64-gnu": "4.14.3",
4025
+ "@rollup/rollup-linux-s390x-gnu": "4.14.3",
4026
+ "@rollup/rollup-linux-x64-gnu": "4.14.3",
4027
+ "@rollup/rollup-linux-x64-musl": "4.14.3",
4028
+ "@rollup/rollup-win32-arm64-msvc": "4.14.3",
4029
+ "@rollup/rollup-win32-ia32-msvc": "4.14.3",
4030
+ "@rollup/rollup-win32-x64-msvc": "4.14.3",
4031
  "@types/estree": "1.0.5",
4032
  "fsevents": "~2.3.2"
4033
  }
 
4095
  }
4096
  },
4097
  "svelte": {
4098
+ "version": "4.2.14",
4099
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.14.tgz",
4100
+ "integrity": "sha512-ry3+YlWqZpHxLy45MW4MZIxNdvB+Wl7p2nnstWKbOAewaJyNJuOtivSbRChcfIej6wFBjWqyKmf/NgK1uW2JAA==",
4101
  "requires": {
4102
  "@ampproject/remapping": "^2.2.1",
4103
  "@jridgewell/sourcemap-codec": "^1.4.15",
 
4132
  }
4133
  },
4134
  "svelte-hmr": {
4135
+ "version": "0.16.0",
4136
+ "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz",
4137
+ "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==",
4138
  "dev": true,
4139
  "requires": {}
4140
  },
 
4166
  "dev": true
4167
  },
4168
  "typescript": {
4169
+ "version": "5.4.5",
4170
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
4171
+ "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
4172
  "devOptional": true
4173
  },
4174
  "vite": {
 
4194
  "version": "1.0.2",
4195
  "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4196
  "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
4197
+ },
4198
+ "xml-writer": {
4199
+ "version": "1.7.0",
4200
+ "resolved": "https://registry.npmjs.org/xml-writer/-/xml-writer-1.7.0.tgz",
4201
+ "integrity": "sha512-elFVMRiV5jb59fbc87zzVa0C01QLBEWP909mRuWqFqrYC5wNTH5QW4AaKMNv7d6zAsuOulkD7wnztZNLQW0Nfg=="
4202
  }
4203
  }
4204
  }
web/package.json CHANGED
@@ -19,9 +19,11 @@
19
  "vite": "^5.2.8"
20
  },
21
  "dependencies": {
22
- "@xyflow/svelte": "^0.0.40",
23
  "fuse.js": "^7.0.0",
24
  "graphology": "^0.25.4",
 
 
25
  "sigma": "^3.0.0-beta.17"
26
  }
27
  }
 
19
  "vite": "^5.2.8"
20
  },
21
  "dependencies": {
22
+ "@xyflow/svelte": "^0.0.39",
23
  "fuse.js": "^7.0.0",
24
  "graphology": "^0.25.4",
25
+ "graphology-library": "^0.8.0",
26
+ "lodash": "^4.17.21",
27
  "sigma": "^3.0.0-beta.17"
28
  }
29
  }
web/src/LynxKiteFlow.svelte CHANGED
@@ -1,5 +1,5 @@
1
  <script lang="ts">
2
- import { writable } from 'svelte/store';
3
  import {
4
  SvelteFlow,
5
  Controls,
@@ -18,6 +18,7 @@
18
  import '@xyflow/svelte/dist/style.css';
19
 
20
  const { screenToFlowPosition } = useSvelteFlow();
 
21
  const nodeTypes: NodeTypes = {
22
  basic: NodeWithParams,
23
  graphviz: NodeWithGraphVisualization,
@@ -129,7 +130,32 @@
129
  },
130
  ];
131
 
132
- let nodeSearchPos: XYPosition | undefined = undefined
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  </script>
134
 
135
  <div style:height="100vh">
 
1
  <script lang="ts">
2
+ import { writable, derived } from 'svelte/store';
3
  import {
4
  SvelteFlow,
5
  Controls,
 
18
  import '@xyflow/svelte/dist/style.css';
19
 
20
  const { screenToFlowPosition } = useSvelteFlow();
21
+
22
  const nodeTypes: NodeTypes = {
23
  basic: NodeWithParams,
24
  graphviz: NodeWithGraphVisualization,
 
130
  },
131
  ];
132
 
133
+ let nodeSearchPos: XYPosition | undefined = undefined;
134
+
135
+ const graph = derived([nodes, edges], ([nodes, edges]) => ({ nodes, edges }));
136
+ let backendWorkspace;
137
+ graph.subscribe(async (g) => {
138
+ const dragging = g.nodes.find((n) => n.dragging);
139
+ if (dragging) return;
140
+ g = JSON.parse(JSON.stringify(g));
141
+ for (const node of g.nodes) {
142
+ delete node.computed;
143
+ }
144
+ const ws = JSON.stringify(g);
145
+ if (ws === backendWorkspace) return;
146
+ backendWorkspace = ws;
147
+ const res = await fetch('/api/save', {
148
+ method: 'POST',
149
+ headers: {
150
+ 'Content-Type': 'application/json',
151
+ },
152
+ body: JSON.stringify(g),
153
+ });
154
+ const j = await res.json();
155
+ g.nodes[2].data.graph = j.graph;
156
+ backendWorkspace = JSON.stringify(g);
157
+ nodes.set(g.nodes);
158
+ });
159
  </script>
160
 
161
  <div style:height="100vh">
web/src/LynxKiteNode.svelte CHANGED
@@ -1,9 +1,9 @@
1
  <script lang="ts">
2
- import { Handle, type NodeProps, useSvelteFlow } from '@xyflow/svelte';
3
 
4
  type $$Props = NodeProps;
5
 
6
- export let id: $$Props['id'];
7
  export let data: $$Props['data'];
8
  export let dragHandle: $$Props['dragHandle'] = undefined; dragHandle;
9
  export let type: $$Props['type'] = undefined; type;
@@ -18,8 +18,6 @@
18
  export let positionAbsoluteX: $$Props['positionAbsoluteX'] = undefined; positionAbsoluteX;
19
  export let positionAbsoluteY: $$Props['positionAbsoluteY'] = undefined; positionAbsoluteY;
20
 
21
- const { updateNodeData } = useSvelteFlow();
22
-
23
  let expanded = true;
24
  function titleClicked() {
25
  expanded = !expanded;
 
1
  <script lang="ts">
2
+ import { Handle, type NodeProps } from '@xyflow/svelte';
3
 
4
  type $$Props = NodeProps;
5
 
6
+ export let id: $$Props['id']; id;
7
  export let data: $$Props['data'];
8
  export let dragHandle: $$Props['dragHandle'] = undefined; dragHandle;
9
  export let type: $$Props['type'] = undefined; type;
 
18
  export let positionAbsoluteX: $$Props['positionAbsoluteX'] = undefined; positionAbsoluteX;
19
  export let positionAbsoluteY: $$Props['positionAbsoluteY'] = undefined; positionAbsoluteY;
20
 
 
 
21
  let expanded = true;
22
  function titleClicked() {
23
  expanded = !expanded;
web/src/NodeWithGraphVisualization.svelte CHANGED
@@ -1,8 +1,9 @@
1
  <script lang="ts">
2
  import { onMount } from 'svelte';
3
- import { Handle, type NodeProps, useSvelteFlow } from '@xyflow/svelte';
4
  import Sigma from 'sigma';
5
  import * as graphology from 'graphology';
 
6
  import LynxKiteNode from './LynxKiteNode.svelte';
7
  type $$Props = NodeProps;
8
  export let id: $$Props['id'];
@@ -10,10 +11,31 @@
10
  let sigmaCanvas: HTMLElement;
11
  let sigmaInstance: Sigma;
12
 
13
- const graph = new graphology.Graph();
14
- graph.addNode("1", { label: "Node 1", x: 0, y: 0, size: 10, color: "blue" });
15
- graph.addNode("2", { label: "Node 2", x: 1, y: 1, size: 20, color: "red" });
16
- graph.addEdge("1", "2", { size: 5, color: "purple" });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  onMount(async () => {
19
  sigmaInstance = new Sigma(graph, sigmaCanvas);
 
1
  <script lang="ts">
2
  import { onMount } from 'svelte';
3
+ import { type NodeProps } from '@xyflow/svelte';
4
  import Sigma from 'sigma';
5
  import * as graphology from 'graphology';
6
+ import * as graphologyLibrary from 'graphology-library';
7
  import LynxKiteNode from './LynxKiteNode.svelte';
8
  type $$Props = NodeProps;
9
  export let id: $$Props['id'];
 
11
  let sigmaCanvas: HTMLElement;
12
  let sigmaInstance: Sigma;
13
 
14
+ const graph = graphology.Graph.from({
15
+ attributes: {
16
+ name: 'My Graph'
17
+ },
18
+ options: {
19
+ allowSelfLoops: true,
20
+ multi: false,
21
+ type: 'mixed'
22
+ },
23
+ nodes: [
24
+ {key: 'Thomas'},
25
+ {key: 'Eric'}
26
+ ],
27
+ edges: [
28
+ {
29
+ key: 'T->E',
30
+ source: 'Thomas',
31
+ target: 'Eric',
32
+ }
33
+ ]
34
+ });
35
+ graphologyLibrary.layout.random.assign(graph);
36
+ const settings = graphologyLibrary.layoutForceAtlas2.inferSettings(graph);
37
+ graphologyLibrary.layoutForceAtlas2.assign(graph, { iterations: 10, settings });
38
+ graphologyLibrary.layoutNoverlap.assign(graph, { settings: { ratio: 3 } });
39
 
40
  onMount(async () => {
41
  sigmaInstance = new Sigma(graph, sigmaCanvas);
web/src/NodeWithParams.svelte CHANGED
@@ -1,5 +1,5 @@
1
  <script lang="ts">
2
- import { Handle, type NodeProps, useSvelteFlow } from '@xyflow/svelte';
3
  import LynxKiteNode from './LynxKiteNode.svelte';
4
  type $$Props = NodeProps;
5
  export let id: $$Props['id'];
 
1
  <script lang="ts">
2
+ import { type NodeProps, useSvelteFlow } from '@xyflow/svelte';
3
  import LynxKiteNode from './LynxKiteNode.svelte';
4
  type $$Props = NodeProps;
5
  export let id: $$Props['id'];
web/vite.config.ts CHANGED
@@ -4,4 +4,7 @@ import { svelte } from '@sveltejs/vite-plugin-svelte'
4
  // https://vitejs.dev/config/
5
  export default defineConfig({
6
  plugins: [svelte()],
 
 
 
7
  })
 
4
  // https://vitejs.dev/config/
5
  export default defineConfig({
6
  plugins: [svelte()],
7
+ server: {
8
+ proxy: { '/api': 'http://127.0.0.1:8000' },
9
+ },
10
  })