import { readFileSync } from "node:fs"; import DZWFDeserializer from "./v1/io/deserialize/dzwf/DZWFDeserializer.js"; import CycleRemoveStep from "./v1/optimizer/siguiyama/CycleRemoveStep.js"; import LayerAssignmentStep from "./v1/optimizer/siguiyama/LayerAssignmentStep.js"; import SiguiyamaAlgorithm from "./v1/optimizer/siguiyama/SiguiyamaAlgorithm.js"; import NodeOrderingStep from "./v1/optimizer/siguiyama/NodeOrderingStep.js"; import CoordinateAssignmentStep from "./v1/optimizer/siguiyama/CoordinateAssignmentStep.js"; import DZWFJsonSerializer from "./v1/io/serialize/dzwf/JointJsonSerializer.js"; const deserializer = new DZWFDeserializer(); const { graph, dzwfData } = deserializer.deserialize(String(readFileSync("./data/bpmn.json"))); const optimizer = new SiguiyamaAlgorithm() .addStep(new CycleRemoveStep()) .addStep(new LayerAssignmentStep()) .addStep(new NodeOrderingStep(20)) .addStep(new CoordinateAssignmentStep()); optimizer.run(graph); const serializer = new DZWFJsonSerializer(dzwfData); serializer.serialize(graph);