diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 8d78664..69263b7 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,6 +8,7 @@ "name": "microserviceanalysisplatform", "version": "0.1.0", "dependencies": { + "@caliorg/jointjs": "^3.1.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -16,8 +17,14 @@ "@types/node": "^18.13.0", "@types/react": "^18.0.27", "@types/react-dom": "^18.0.10", + "@xyflow/react": "^12.8.2", + "@xyflow/system": "^0.0.66", "d3-force-3d": "^3.0.5", + "dom-to-image-more": "^3.6.0", "file-saver": "^2.0.5", + "html-to-image": "^1.11.11", + "html2canvas": "^1.4.1", + "jointjs": "^3.7.7", "react": "^18.2.0", "react-dom": "^18.2.0", "react-force-graph": "^1.41.20", @@ -30,6 +37,7 @@ "web-vitals": "^2.1.4" }, "devDependencies": { + "@types/html2canvas": "^1.0.0", "@types/three": "^0.149.0", "tailwindcss": "^3.2.4" } @@ -1929,6 +1937,18 @@ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, + "node_modules/@caliorg/jointjs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@caliorg/jointjs/-/jointjs-3.1.1.tgz", + "integrity": "sha512-G2XuHE4MYtpSSRY1ubPgOIyRCLtV0qpS+YedgwQzOEqyF/tkipML7Y2meTihkLhAqc1egSV7l0hWK+5BfTwgxg==", + "dependencies": { + "backbone": "~1.4.0", + "dagre": "~0.8.4", + "graphlib": "~2.1.7", + "jquery": "~3.5.0", + "lodash": "~4.17.14" + } + }, "node_modules/@csstools/normalize.css": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", @@ -3506,30 +3526,24 @@ } }, "node_modules/@testing-library/dom": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.2.0.tgz", - "integrity": "sha512-xTEnpUKiV/bMyEsE5bT4oYA0x0Z/colMtxzUY8bKyPXBNLn/e0V4ZjBZkEhms0xE4pv9QsPfSRu9AWS4y5wGvA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", - "aria-query": "^5.0.0", + "aria-query": "5.3.0", "chalk": "^4.1.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "pretty-format": "^27.0.2" }, "engines": { - "node": ">=14" + "node": ">=18" } }, - "node_modules/@testing-library/dom/node_modules/@types/aria-query": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", - "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==", - "peer": true - }, "node_modules/@testing-library/dom/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -3582,15 +3596,6 @@ "node": ">=8" } }, - "node_modules/@testing-library/dom/node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "peer": true, - "bin": { - "lz-string": "bin/bin.js" - } - }, "node_modules/@testing-library/dom/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3715,11 +3720,6 @@ "node": ">=12" } }, - "node_modules/@testing-library/react/node_modules/@types/aria-query": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", - "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==" - }, "node_modules/@testing-library/react/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -3768,14 +3768,6 @@ "node": ">=8" } }, - "node_modules/@testing-library/react/node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "bin": { - "lz-string": "bin/bin.js" - } - }, "node_modules/@testing-library/react/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3818,6 +3810,11 @@ "node": ">=10.13.0" } }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + }, "node_modules/@types/babel__core": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", @@ -3889,6 +3886,49 @@ "@types/node": "*" } }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-selection": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz", + "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz", + "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, "node_modules/@types/eslint": { "version": "8.37.0", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", @@ -3938,7 +3978,63 @@ "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.5.tgz", "integrity": "sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==" }, - "node_modules/@types/istanbul-lib-report": {}, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/html2canvas": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/html2canvas/-/html2canvas-1.0.0.tgz", + "integrity": "sha512-BJpVf+FIN9UERmzhbtUgpXj6XBZpG67FMgBLLoj9HZKd9XifcCpSV+UnFcwTZfEyun4U/KmCrrVOG7829L589w==", + "deprecated": "This is a stub types definition. html2canvas provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "html2canvas": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, "node_modules/@types/jest": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.0.tgz", @@ -4003,17 +4099,41 @@ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, - "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" - }, "node_modules/@types/node": { "version": "18.15.11", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" }, - "node_modules/@types/prop-types": {}, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, "node_modules/@types/react": { "version": "18.0.35", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.35.tgz", @@ -4032,7 +4152,74 @@ "@types/react": "*" } }, - "node_modules/@types/scheduler": {}, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/send/node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, "node_modules/@types/testing-library__jest-dom": { "version": "5.14.5", "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", @@ -4050,10 +4237,516 @@ "@types/webxr": "*" } }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, "node_modules/@types/webxr": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.19.tgz", + "integrity": "sha512-4hxA+NwohSgImdTSlPXEqDqqFktNgmTXQ05ff1uWam05tNGroCMp4G+4XVl6qWm1p7GQ/9oD41kAYsSssF6Mzw==", "dev": true }, - "node_modules/@types/yargs-parser": {}, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/custom-elements": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/custom-elements/-/custom-elements-1.3.0.tgz", + "integrity": "sha512-f4q/s76+8nOy+fhrNHyetuoPDR01lmlZB5czfCG+OOnBw/Wf+x48DcCDPmMQY7oL8xYFL8qfenMoiS8DUkKBUw==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/@xyflow/react": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.8.2.tgz", + "integrity": "sha512-VifLpxOy74ck283NQOtBn1e8igmB7xo7ADDKxyBHkKd8IKpyr16TgaYOhzqVwNMdB4NT+m++zfkic530L+gEXw==", + "dependencies": { + "@xyflow/system": "0.0.66", + "classcat": "^5.0.3", + "zustand": "^4.4.0" + }, + "peerDependencies": { + "react": ">=17", + "react-dom": ">=17" + } + }, + "node_modules/@xyflow/system": { + "version": "0.0.66", + "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.66.tgz", + "integrity": "sha512-TTxESDwPsATnuDMUeYYtKe4wt9v8bRO29dgYBhR8HyhSCzipnAdIL/1CDfFd+WqS1srVreo24u6zZeVIDk4r3Q==", + "dependencies": { + "@types/d3-drag": "^3.0.7", + "@types/d3-interpolate": "^3.0.4", + "@types/d3-selection": "^3.0.10", + "@types/d3-transition": "^3.0.8", + "@types/d3-zoom": "^3.0.8", + "d3-drag": "^3.0.0", + "d3-interpolate": "^3.0.1", + "d3-selection": "^3.0.0", + "d3-zoom": "^3.0.0" + } + }, "node_modules/3d-force-graph": { "version": "1.71.2", "resolved": "https://registry.npmjs.org/3d-force-graph/-/3d-force-graph-1.71.2.tgz", @@ -4109,14 +4802,6 @@ "node": ">=12" } }, - "node_modules/3d-force-graph-ar/node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, "node_modules/3d-force-graph-ar/node_modules/d3-format": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", @@ -4125,17 +4810,6 @@ "node": ">=12" } }, - "node_modules/3d-force-graph-ar/node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/3d-force-graph-ar/node_modules/d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", @@ -4339,14 +5013,6 @@ "node": ">=12" } }, - "node_modules/3d-force-graph-vr/node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, "node_modules/3d-force-graph-vr/node_modules/d3-format": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", @@ -4355,17 +5021,6 @@ "node": ">=12" } }, - "node_modules/3d-force-graph-vr/node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/3d-force-graph-vr/node_modules/d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", @@ -4554,14 +5209,6 @@ "node": ">=12" } }, - "node_modules/3d-force-graph/node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, "node_modules/3d-force-graph/node_modules/d3-format": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", @@ -4570,17 +5217,6 @@ "node": ">=12" } }, - "node_modules/3d-force-graph/node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/3d-force-graph/node_modules/d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", @@ -5044,11 +5680,11 @@ } }, "node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dependencies": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "node_modules/array-buffer-byte-length": { @@ -5525,11 +6161,27 @@ "babel-plugin-transform-react-remove-prop-types": "^0.4.24" } }, + "node_modules/backbone": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.4.1.tgz", + "integrity": "sha512-ADy1ztN074YkWbHi8ojJVFe3vAanO/lrzMGZWUClIP7oDD/Pjy2vrASraUP+2EVCfIiTtCW4FChVow01XneivA==", + "dependencies": { + "underscore": ">=1.8.3" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -5958,6 +6610,11 @@ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" }, + "node_modules/classcat": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/classcat/-/classcat-5.0.5.tgz", + "integrity": "sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==" + }, "node_modules/clean-css": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", @@ -6298,6 +6955,14 @@ "postcss": "^8.4" } }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/css-loader": { "version": "6.7.3", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", @@ -6621,15 +7286,10 @@ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - }, - "node_modules/del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A==", + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dependencies": { "cssom": "~0.3.6" }, @@ -6652,6 +7312,144 @@ "resolved": "https://registry.npmjs.org/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz", "integrity": "sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w==" }, + "node_modules/d3-binarytree": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz", + "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==" + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force-3d": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.5.tgz", + "integrity": "sha512-tdwhAhoTYZY/a6eo9nR7HP3xSW/C6XvJTbeRpR92nlPzH6OiE+4MliN9feuSFd0tPtEUo+191qOhCTWx3NYifg==", + "dependencies": { + "d3-binarytree": "1", + "d3-dispatch": "1 - 3", + "d3-octree": "1", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-octree": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d3-octree/-/d3-octree-1.0.2.tgz", + "integrity": "sha512-Qxg4oirJrNXauiuC94uKMbgxwnhdda9xRLl9ihq45srlJ4Ga3CSgqGcAL8iW7N5CIv4Oz8x3E734ulxyvHPvwA==" + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dagre": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", + "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "dependencies": { + "graphlib": "^2.1.8", + "lodash": "^4.17.15" + } + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -6805,6 +7603,14 @@ "node": ">= 0.8" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -6938,6 +7744,11 @@ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, + "node_modules/dom-to-image-more": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-3.6.0.tgz", + "integrity": "sha512-0BB0M9gRRP7znKBNLRAvNyWnkDIzSgMSDcS7WdPDzPnWhW2YJqxUR/dCHiJ2HdCV3K2rVky5Vba8UF31mvrCuQ==" + }, "node_modules/dom-walk": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", @@ -8693,34 +9504,6 @@ "node": ">=12" } }, - "node_modules/force-graph/node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/force-graph/node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/force-graph/node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "engines": { - "node": ">=12" - } - }, "node_modules/force-graph/node_modules/d3-format": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", @@ -8729,17 +9512,6 @@ "node": ">=12" } }, - "node_modules/force-graph/node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/force-graph/node_modules/d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", @@ -8767,14 +9539,6 @@ "node": ">=12" } }, - "node_modules/force-graph/node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "engines": { - "node": ">=12" - } - }, "node_modules/force-graph/node_modules/d3-time": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", @@ -8797,39 +9561,6 @@ "node": ">=12" } }, - "node_modules/force-graph/node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "d3-selection": "2 - 3" - } - }, - "node_modules/force-graph/node_modules/d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/force-graph/node_modules/index-array-by": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/index-array-by/-/index-array-by-1.4.1.tgz", @@ -9334,6 +10065,19 @@ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "dependencies": { + "lodash": "^4.17.15" + } + }, "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", @@ -9527,6 +10271,11 @@ "node": ">=12" } }, + "node_modules/html-to-image": { + "version": "1.11.11", + "resolved": "https://registry.npmjs.org/html-to-image/-/html-to-image-1.11.11.tgz", + "integrity": "sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==" + }, "node_modules/html-webpack-plugin": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz", @@ -9549,6 +10298,18 @@ "webpack": "^5.20.0" } }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", @@ -12318,6 +13079,29 @@ "jiti": "bin/jiti.js" } }, + "node_modules/jointjs": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/jointjs/-/jointjs-3.7.7.tgz", + "integrity": "sha512-gwjyLfXIxovVCIHrg57WG0cyPt6dsJjgnGEGOt8gh2F2kp/T1x6z7kBf62eQqSnM7qn1XiheZV4Iopzd2doHlw==", + "deprecated": "This package has been deprecated in favor of '@joint/core'. The repository name has changed to improve organization and naming conventions. Please update your dependencies to use the new package name:\n\nnpm install @joint/core\n\nFor more information, visit the JointJS repository at: https://github.com/clientio/joint", + "dependencies": { + "backbone": "~1.4.1", + "dagre": "~0.8.5", + "graphlib": "~2.1.8", + "jquery": "~3.7.1", + "lodash": "~4.17.21" + } + }, + "node_modules/jointjs/node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + }, + "node_modules/jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, "node_modules/js-sdsl": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", @@ -12652,6 +13436,14 @@ "yallist": "^3.0.2" } }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, "node_modules/magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -17088,6 +17880,14 @@ "node": ">=8" } }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "dependencies": { + "utrie": "^1.0.2" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -17388,6 +18188,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/underscore": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==" + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -17516,6 +18321,14 @@ "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==" }, + "node_modules/use-sync-external-store": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -17548,6 +18361,14 @@ "node": ">= 0.4.0" } }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -18588,8 +19409,35 @@ "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zustand": { + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.7.tgz", + "integrity": "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==", + "dependencies": { + "use-sync-external-store": "^1.2.2" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } } } }, @@ -19868,6 +20716,18 @@ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, + "@caliorg/jointjs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@caliorg/jointjs/-/jointjs-3.1.1.tgz", + "integrity": "sha512-G2XuHE4MYtpSSRY1ubPgOIyRCLtV0qpS+YedgwQzOEqyF/tkipML7Y2meTihkLhAqc1egSV7l0hWK+5BfTwgxg==", + "requires": { + "backbone": "~1.4.0", + "dagre": "~0.8.4", + "graphlib": "~2.1.7", + "jquery": "~3.5.0", + "lodash": "~4.17.14" + } + }, "@csstools/normalize.css": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", @@ -20892,27 +21752,21 @@ } }, "@testing-library/dom": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.2.0.tgz", - "integrity": "sha512-xTEnpUKiV/bMyEsE5bT4oYA0x0Z/colMtxzUY8bKyPXBNLn/e0V4ZjBZkEhms0xE4pv9QsPfSRu9AWS4y5wGvA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "peer": true, "requires": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", - "aria-query": "^5.0.0", + "aria-query": "5.3.0", "chalk": "^4.1.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "pretty-format": "^27.0.2" }, "dependencies": { - "@types/aria-query": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", - "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==", - "peer": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -20947,12 +21801,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "peer": true }, - "lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "peer": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -21045,11 +21893,6 @@ "pretty-format": "^27.0.2" } }, - "@types/aria-query": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", - "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==" - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -21080,11 +21923,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==" - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -21113,6 +21951,11 @@ "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" }, + "@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + }, "@types/babel__core": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", @@ -21184,6 +22027,49 @@ "@types/node": "*" } }, + "@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==" + }, + "@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "requires": { + "@types/d3-color": "*" + } + }, + "@types/d3-selection": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz", + "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==" + }, + "@types/d3-transition": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz", + "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==", + "requires": { + "@types/d3-selection": "*" + } + }, + "@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "requires": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, "@types/eslint": { "version": "8.37.0", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", @@ -21233,7 +22119,62 @@ "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.5.tgz", "integrity": "sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==" }, - "@types/istanbul-lib-report": {}, + "@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "@types/html2canvas": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/html2canvas/-/html2canvas-1.0.0.tgz", + "integrity": "sha512-BJpVf+FIN9UERmzhbtUgpXj6XBZpG67FMgBLLoj9HZKd9XifcCpSV+UnFcwTZfEyun4U/KmCrrVOG7829L589w==", + "dev": true, + "requires": { + "html2canvas": "*" + } + }, + "@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, "@types/jest": { "version": "29.5.0", "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.0.tgz", @@ -21271,74 +22212,542 @@ "react-is": "^18.0.0" } }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" + }, + "@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" + }, + "@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + }, + "@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" + }, + "@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" + }, + "@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "@types/react": { + "version": "18.0.35", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.35.tgz", + "integrity": "sha512-6Laome31HpetaIUGFWl1VQ3mdSImwxtFZ39rh059a1MNnKGqBpC88J6NJ8n/Is3Qx7CefDGLgf/KhN/sYCf7ag==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", + "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "requires": { + "@types/react": "*" + } + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "requires": { + "@types/node": "*" + } + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "@types/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==" + }, + "@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + }, + "@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "requires": { + "@types/mime": "^1", + "@types/node": "*" + }, + "dependencies": { + "@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + } + } + }, + "@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "requires": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "requires": { + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "@types/testing-library__jest-dom": { + "version": "5.14.5", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", + "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", + "requires": { + "@types/jest": "*" + } + }, + "@types/three": { + "version": "0.149.0", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.149.0.tgz", + "integrity": "sha512-fgNBm9LWc65ER/W0cvoXdC0iMy7Ke9e2CONmEr6Jt8sDSY3sw4DgOubZfmdZ747dkPhbQrgRQAWwDEr2S/7IEg==", + "dev": true, + "requires": { + "@types/webxr": "*" + } + }, + "@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, + "@types/webxr": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.19.tgz", + "integrity": "sha512-4hxA+NwohSgImdTSlPXEqDqqFktNgmTXQ05ff1uWam05tNGroCMp4G+4XVl6qWm1p7GQ/9oD41kAYsSssF6Mzw==", + "dev": true + }, + "@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "requires": { + "@typescript-eslint/utils": "5.62.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "requires": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "requires": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "requires": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==" + }, + "@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "requires": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" } } }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + "@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "requires": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + } }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + "@ungap/custom-elements": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/custom-elements/-/custom-elements-1.3.0.tgz", + "integrity": "sha512-f4q/s76+8nOy+fhrNHyetuoPDR01lmlZB5czfCG+OOnBw/Wf+x48DcCDPmMQY7oL8xYFL8qfenMoiS8DUkKBUw==" }, - "@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" + "@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "requires": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } }, - "@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" }, - "@types/prop-types": {}, - "@types/react": { - "version": "18.0.35", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.35.tgz", - "integrity": "sha512-6Laome31HpetaIUGFWl1VQ3mdSImwxtFZ39rh059a1MNnKGqBpC88J6NJ8n/Is3Qx7CefDGLgf/KhN/sYCf7ag==", + "@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" } }, - "@types/react-dom": { - "version": "18.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", - "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "requires": { - "@types/react": "*" + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" } }, - "@types/scheduler": {}, - "@types/testing-library__jest-dom": { - "version": "5.14.5", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", - "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", + "@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "requires": { - "@types/jest": "*" + "@xtuc/ieee754": "^1.2.0" } }, - "@types/three": { - "version": "0.149.0", - "resolved": "https://registry.npmjs.org/@types/three/-/three-0.149.0.tgz", - "integrity": "sha512-fgNBm9LWc65ER/W0cvoXdC0iMy7Ke9e2CONmEr6Jt8sDSY3sw4DgOubZfmdZ747dkPhbQrgRQAWwDEr2S/7IEg==", - "dev": true, + "@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "requires": { - "@types/webxr": "*" + "@xtuc/long": "4.2.2" } }, - "@types/webxr": { - "dev": true + "@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "requires": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "@xyflow/react": { + "version": "12.8.2", + "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.8.2.tgz", + "integrity": "sha512-VifLpxOy74ck283NQOtBn1e8igmB7xo7ADDKxyBHkKd8IKpyr16TgaYOhzqVwNMdB4NT+m++zfkic530L+gEXw==", + "requires": { + "@xyflow/system": "0.0.66", + "classcat": "^5.0.3", + "zustand": "^4.4.0" + } + }, + "@xyflow/system": { + "version": "0.0.66", + "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.66.tgz", + "integrity": "sha512-TTxESDwPsATnuDMUeYYtKe4wt9v8bRO29dgYBhR8HyhSCzipnAdIL/1CDfFd+WqS1srVreo24u6zZeVIDk4r3Q==", + "requires": { + "@types/d3-drag": "^3.0.7", + "@types/d3-interpolate": "^3.0.4", + "@types/d3-selection": "^3.0.10", + "@types/d3-transition": "^3.0.8", + "@types/d3-zoom": "^3.0.8", + "d3-drag": "^3.0.0", + "d3-interpolate": "^3.0.1", + "d3-selection": "^3.0.0", + "d3-zoom": "^3.0.0" + } }, - "@types/yargs-parser": {}, "3d-force-graph": { "version": "1.71.2", "resolved": "https://registry.npmjs.org/3d-force-graph/-/3d-force-graph-1.71.2.tgz", @@ -21369,24 +22778,11 @@ "internmap": "1 - 2" } }, - "d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" - }, "d3-format": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" }, - "d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "requires": { - "d3-color": "1 - 3" - } - }, "d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", @@ -21557,24 +22953,11 @@ "internmap": "1 - 2" } }, - "d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" - }, "d3-format": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" }, - "d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "requires": { - "d3-color": "1 - 3" - } - }, "d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", @@ -21738,24 +23121,11 @@ "internmap": "1 - 2" } }, - "d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" - }, "d3-format": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" }, - "d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "requires": { - "d3-color": "1 - 3" - } - }, "d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", @@ -22100,11 +23470,11 @@ } }, "aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "requires": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "array-buffer-byte-length": { @@ -22451,11 +23821,24 @@ "babel-plugin-transform-react-remove-prop-types": "^0.4.24" } }, + "backbone": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.4.1.tgz", + "integrity": "sha512-ADy1ztN074YkWbHi8ojJVFe3vAanO/lrzMGZWUClIP7oDD/Pjy2vrASraUP+2EVCfIiTtCW4FChVow01XneivA==", + "requires": { + "underscore": ">=1.8.3" + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==" + }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -22749,6 +24132,11 @@ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" }, + "classcat": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/classcat/-/classcat-5.0.5.tgz", + "integrity": "sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==" + }, "clean-css": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", @@ -23009,6 +24397,14 @@ "postcss-selector-parser": "^6.0.9" } }, + "css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "requires": { + "utrie": "^1.0.2" + } + }, "css-loader": { "version": "6.7.3", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", @@ -23249,6 +24645,108 @@ "resolved": "https://registry.npmjs.org/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz", "integrity": "sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w==" }, + "d3-binarytree": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz", + "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==" + }, + "d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" + }, + "d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==" + }, + "d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "requires": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + } + }, + "d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==" + }, + "d3-force-3d": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.5.tgz", + "integrity": "sha512-tdwhAhoTYZY/a6eo9nR7HP3xSW/C6XvJTbeRpR92nlPzH6OiE+4MliN9feuSFd0tPtEUo+191qOhCTWx3NYifg==", + "requires": { + "d3-binarytree": "1", + "d3-dispatch": "1 - 3", + "d3-octree": "1", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + } + }, + "d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "requires": { + "d3-color": "1 - 3" + } + }, + "d3-octree": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d3-octree/-/d3-octree-1.0.2.tgz", + "integrity": "sha512-Qxg4oirJrNXauiuC94uKMbgxwnhdda9xRLl9ihq45srlJ4Ga3CSgqGcAL8iW7N5CIv4Oz8x3E734ulxyvHPvwA==" + }, + "d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==" + }, + "d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==" + }, + "d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" + }, + "d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "requires": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + } + }, + "d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "requires": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + } + }, + "dagre": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", + "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "requires": { + "graphlib": "^2.1.8", + "lodash": "^4.17.15" + } + }, "damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -23365,6 +24863,11 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" + }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -23471,6 +24974,11 @@ "entities": "^2.0.0" } }, + "dom-to-image-more": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-3.6.0.tgz", + "integrity": "sha512-0BB0M9gRRP7znKBNLRAvNyWnkDIzSgMSDcS7WdPDzPnWhW2YJqxUR/dCHiJ2HdCV3K2rVky5Vba8UF31mvrCuQ==" + }, "dom-walk": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", @@ -23763,39 +25271,15 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" - }, - "csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A==", - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "requires": { - "array-uniq": "^1.0.1" + "prelude-ls": "~1.1.2" } } } @@ -24803,38 +26287,11 @@ "internmap": "1 - 2" } }, - "d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" - }, - "d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "requires": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - } - }, - "d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==" - }, "d3-format": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" }, - "d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "requires": { - "d3-color": "1 - 3" - } - }, "d3-scale": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", @@ -24856,11 +26313,6 @@ "d3-interpolate": "1 - 3" } }, - "d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==" - }, "d3-time": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", @@ -24877,30 +26329,6 @@ "d3-time": "1 - 3" } }, - "d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "requires": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - } - }, - "d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "requires": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - } - }, "index-array-by": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/index-array-by/-/index-array-by-1.4.1.tgz", @@ -25252,6 +26680,19 @@ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "requires": { + "lodash": "^4.17.15" + } + }, "gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", @@ -25396,6 +26837,11 @@ "terser": "^5.10.0" } }, + "html-to-image": { + "version": "1.11.11", + "resolved": "https://registry.npmjs.org/html-to-image/-/html-to-image-1.11.11.tgz", + "integrity": "sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==" + }, "html-webpack-plugin": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.1.tgz", @@ -25408,6 +26854,15 @@ "tapable": "^2.0.0" } }, + "html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "requires": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + } + }, "htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", @@ -27366,6 +28821,30 @@ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==" }, + "jointjs": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/jointjs/-/jointjs-3.7.7.tgz", + "integrity": "sha512-gwjyLfXIxovVCIHrg57WG0cyPt6dsJjgnGEGOt8gh2F2kp/T1x6z7kBf62eQqSnM7qn1XiheZV4Iopzd2doHlw==", + "requires": { + "backbone": "~1.4.1", + "dagre": "~0.8.5", + "graphlib": "~2.1.8", + "jquery": "~3.7.1", + "lodash": "~4.17.21" + }, + "dependencies": { + "jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + } + } + }, + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, "js-sdsl": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", @@ -27632,6 +29111,11 @@ "yallist": "^3.0.2" } }, + "lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==" + }, "magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -30668,6 +32152,14 @@ "minimatch": "^3.0.4" } }, + "text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "requires": { + "utrie": "^1.0.2" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -30903,6 +32395,11 @@ "which-boxed-primitive": "^1.0.2" } }, + "underscore": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==" + }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -30986,6 +32483,12 @@ "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==" }, + "use-sync-external-store": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "requires": {} + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -31012,6 +32515,14 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, + "utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "requires": { + "base64-arraybuffer": "^1.0.2" + } + }, "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -31826,6 +33337,14 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "zustand": { + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.7.tgz", + "integrity": "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==", + "requires": { + "use-sync-external-store": "^1.2.2" + } } } } diff --git a/frontend/package.json b/frontend/package.json index c523f7d..446981e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "@caliorg/jointjs": "^3.1.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", @@ -11,8 +12,14 @@ "@types/node": "^18.13.0", "@types/react": "^18.0.27", "@types/react-dom": "^18.0.10", + "@xyflow/react": "^12.8.2", + "@xyflow/system": "^0.0.66", "d3-force-3d": "^3.0.5", + "dom-to-image-more": "^3.6.0", "file-saver": "^2.0.5", + "html-to-image": "^1.11.11", + "html2canvas": "^1.4.1", + "jointjs": "^3.7.7", "react": "^18.2.0", "react-dom": "^18.2.0", "react-force-graph": "^1.41.20", @@ -49,6 +56,7 @@ ] }, "devDependencies": { + "@types/html2canvas": "^1.0.0", "@types/three": "^0.149.0", "tailwindcss": "^3.2.4" } diff --git a/frontend/src/components/CommunicationGraph.tsx b/frontend/src/components/CommunicationGraph.tsx index ca361ea..8c3e091 100644 --- a/frontend/src/components/CommunicationGraph.tsx +++ b/frontend/src/components/CommunicationGraph.tsx @@ -1,4 +1,8 @@ -import React, { useCallback, useEffect, useState, useRef } from "react"; +/** + * Authors: Vsevolod Pokhvalenko, and the MicroGraal Development Team + */ + +import React, { useCallback, useEffect, useState } from "react"; import ForceGraph3D from "react-force-graph-3d"; import { ViewMode } from "../context/AppContext"; import * as THREE from "three"; @@ -14,25 +18,20 @@ type Props = { viewMode: ViewMode; }; //CONSTANTS FOR GRAPH -// const NODE_COLOR: string = "rgba(224, 219, 209, 1)"; const NODE_COLOR: string = "rgba(110, 110, 110, 1)"; -// const NODE_TEXT_COLOR: string = "rgba(255, 196, 84, 1)"; const NODE_TEXT_COLOR: string = "rgba(0,0,0, 1)"; const NODE_TEXT_BG_COLOR: string = "rgba(255, 255, 255,0)"; -// const NODE_TEXT_BG_COLOR: string = "rgba(0,0,0,1)"; -// const NODE_TEXT_BG_COLOR: string = "rgba(255, 255, 255,1)"; - const NODE_HOVER_COLOR: string = "rgba(31, 237, 230, 1)"; export const NODE_A_COLOR: string = "rgba(72, 205, 82, 1)"; export const NODE_B_COLOR: string = "rgba(238, 155, 80, 1)"; const LINK_HIGHLIGHT_COLOR: string = "rgba(255, 0, 252, 1)"; +const LINK_HIGHLIGHT_COLOR_WS: string = "rgb(17,255,0)"; // Red color for WS links +const LINK_HIGHLIGHT_COLOR_GRAPHQL: string = "rgb(255,124,0)"; // Red color for WS links const LINK_COMPARISON_CHANGED: string = "rgba(102, 0, 255, 1)"; -const LINK_COLOR: string = NODE_COLOR; const LINK_PARTICLE_COLOR: string = "rgba(255, 126, 126, 1)"; const LINK_ARROW_COLOR: string = LINK_HIGHLIGHT_COLOR; -// const BACKGOUND_COLOR: string = "rgba(20, 20, 20, 1)"; const BACKGOUND_COLOR: string = "rgba(255,255,255, 1)"; const LINK_WIDTH = 5; const PARTICLE_WIDTH = 6; @@ -133,7 +132,7 @@ const CommunicationGraph: React.FC = ({ }, [subContextNodes] ); - + const handleNodeClick = useCallback( (node: any, event?: any) => { @@ -222,7 +221,7 @@ const CommunicationGraph: React.FC = ({ document.addEventListener("closeBox", handleCloseBox); return () => document.removeEventListener("closeBox", handleCloseBox); }, []); - + return ( = ({ linkWidth={LINK_WIDTH} linkColor={(link) => { - let linkCol = LINK_COLOR; - if ("didChange" in link && link.didChange === true){ - linkCol = LINK_COMPARISON_CHANGED; + let linkCol = LINK_HIGHLIGHT_COLOR; + + // Priority for changed links + if ("didChange" in link && link.didChange === true) { + linkCol = LINK_COMPARISON_CHANGED; + } + + // Color based on request type even when not highlighted + const reqType = link.requests?.[0]?.type; + if (reqType === "WS") { + linkCol = LINK_HIGHLIGHT_COLOR_WS; + } else if (reqType === "QUERY" || reqType === "MUTATION") { + linkCol = LINK_HIGHLIGHT_COLOR_GRAPHQL; + } + + // Override with highlight color when selected/hovered + if (link === clickedLink || link === selectedLink) { + linkCol = LINK_HIGHLIGHT_COLOR; } if (link === clickedLink || link === selectedLink) { - linkCol = LINK_HIGHLIGHT_COLOR + linkCol = LINK_HIGHLIGHT_COLOR; + if (link.requests[0]?.type === "WS") { + linkCol = LINK_HIGHLIGHT_COLOR_WS; + } else if (link.requests[0]?.type === "QUERY" || link.requests[0]?.type === "MUTATION") { + linkCol = LINK_HIGHLIGHT_COLOR_GRAPHQL; + } } + return linkCol; }} + onNodeDragEnd={(node) => { if (node.x && node.y && node.z) { node.fx = node.x; diff --git a/frontend/src/components/ContextMap.tsx b/frontend/src/components/ContextMap.tsx index 5afd2e3..a3eda44 100644 --- a/frontend/src/components/ContextMap.tsx +++ b/frontend/src/components/ContextMap.tsx @@ -1,82 +1,92 @@ +/** + * Authors: Vsevolod Pokhvalenko, and the MicroGraal Development Team + */ + import React, { useCallback, useEffect, useState, useRef } from "react"; -import ForceGraph3D from "react-force-graph-3d"; -import {ViewMode} from "../context/AppContext"; -import * as THREE from "three"; -import { Group, WebGLRenderer, Renderer, Scene, Camera } from 'three'; +import ForceGraph2D from "react-force-graph-2d"; +import { ViewMode } from "../context/AppContext"; import { useAppContext } from "../context/AppContext"; -import { ForceGraph2D } from 'react-force-graph'; -import { CSS3DRenderer, CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer'; -import * as d3 from 'd3-force-3d'; type Props = { search: string; threshold: number; contextMap: any; graphRef: any; - // setInitCoords: any; setInitRotation: any; highCoupling: any; viewMode: ViewMode; - // antiPattern: any; - }; -//CONSTANTS FOR GRAPH + const NODE_COLOR: string = "rgba(224, 219, 209, 1)"; -const NODE_TEXT_COLOR: string = "rgba(255, 196, 84, 1)"; -const SECONDARY_NODE_TEXT_COLOR: string = "rgba(255, 45, 45, 1)"; -const NODE_TEXT_BG_COLOR: string = "rgba(0,0,0,1)"; -const NODE_HOVER_COLOR: string = "rgba(31, 237, 230, 1)"; -export const NODE_A_COLOR: string = "rgba(72, 205, 82, 1)"; -export const NODE_B_COLOR: string = "rgba(238, 155, 80, 1)"; const LINK_HIGHLIGHT_COLOR: string = "rgba(255, 0, 252, 1)"; const LINK_COLOR: string = NODE_COLOR; const LINK_PARTICLE_COLOR: string = "rgba(255, 126, 126, 1)"; const LINK_ARROW_COLOR: string = LINK_HIGHLIGHT_COLOR; -const BACKGOUND_COLOR: string = "rgba(20, 20, 20, 1)"; +const BACKGOUND_COLOR: string = "rgb(0,0,0)"; const LINK_WIDTH = 1.5; const PARTICLE_WIDTH = 6; const LINK_ARROW_LENGTH = 10; const LINK_PARTICLE_AMNT = 2; const ContextMap: React.FC = ({ - contextMap, - search, - threshold, - viewMode, - graphRef, - setInitRotation, - highCoupling -}) => { + contextMap, + search, + threshold, + viewMode, + graphRef, + setInitRotation, + highCoupling + }) => { const [highlightNodes, setHighlightNodes] = useState(new Set()); const [highlightLinks, setHighlightLinks] = useState(new Set()); const [hoverNode, setHoverNode] = useState(null); const [selectedLink, setSelectedLink] = useState(null); const [clickedNode, setClickedNode] = useState(null); const [clickedLink, setClickedLink] = useState(null); + const [filteredData, setFilteredData] = useState(contextMap); + const [interactionEnabled, setInteractionEnabled] = useState(true); + const [nodeDragEnabled, setNodeDragEnabled] = useState(true); const { setStateVar, selectedSearchValue } = useAppContext(); - const setSelectedSearchValue = (val: string) => setStateVar && setStateVar("selectedSearchValue", val) + const setSelectedSearchValue = (val: string) => setStateVar && setStateVar("selectedSearchValue", val); + + // Update search options to include only entities shown in the graph + const searchOptions = contextMap.nodes.map((node: any) => node.nodeName); + + useEffect(() => { + if (selectedSearchValue) { + const filteredNodes = contextMap.nodes.filter((node: any) => node.msName === selectedSearchValue); + const filteredLinks = contextMap.links.filter((link: any) => + filteredNodes.some((node: any) => node.id === link.source || node.id === link.target) + ); + setFilteredData({ nodes: filteredNodes, links: filteredLinks }); + // setInteractionEnabled(false); // Disable interaction after filtering + // setNodeDragEnabled(false); // Disable node dragging after filtering + } else { + setFilteredData(contextMap); + setInteractionEnabled(true); // Enable interaction when no filter is applied + setNodeDragEnabled(true); + } + }, [selectedSearchValue, contextMap]); const handleNodeHover = (node: any) => { + if (!interactionEnabled) return; // Return early if interaction is disabled clearHighlights(); - if (node) { highlightNodes.add(node); } - setHoverNode(node || null); updateHighlight(); }; const handleLinkHover = (link: any) => { + if (!interactionEnabled) return; // Return early if interaction is disabled clearHighlights(); - if (link) { highlightLinks.add(link); highlightNodes.add(link.source); highlightNodes.add(link.target); } - setSelectedLink(link || null); updateHighlight(); }; @@ -84,57 +94,18 @@ const ContextMap: React.FC = ({ const clearHighlights = () => { highlightLinks.clear(); highlightNodes.clear(); - } + }; + const updateHighlight = () => { setHighlightNodes(highlightNodes); setHighlightLinks(highlightLinks); }; - function handleNodeColor(node){ - let color = NODE_COLOR; - - // color: (highlightNodes.has(node) || node === clickedNode) ? NODE_HOVER_COLOR : NODE_COLOR, - if (node.version === "A"){ - color = NODE_A_COLOR; - }else if (node.version === "B"){ - color = NODE_B_COLOR; - } - if (highlightNodes.has(node) || node === clickedNode){ - color = NODE_HOVER_COLOR; - } - return color; - } - const handleNodeClick = useCallback( (node: any, event?: any) => { - + if (!interactionEnabled) return; // Return early if interaction is disabled event?.preventDefault(); - if (node) { - - const distance = 100; - - if (graphRef.current) { - const camera = graphRef.current.camera(); - const currentPosition = camera.position.clone(); - const nodePosition = new THREE.Vector3(node.x, node.y, node.z); - - // Calculate the vector from the camera to the node - const direction = nodePosition.clone().sub(currentPosition).normalize(); - - // Calculate the new camera position at the desired distance from the node - const targetPosition = nodePosition.clone().sub(direction.multiplyScalar(distance)); - - const transitionDuration = 1000; // Transition duration in ms - - // Move the camera closer to the node without changing the lookAt target - graphRef.current.cameraPosition( - targetPosition, // New camera position - nodePosition, - transitionDuration - ); - } - const event = new CustomEvent("nodeClick", { detail: { node }, }); @@ -142,10 +113,11 @@ const ContextMap: React.FC = ({ document.dispatchEvent(event); } }, - [graphRef] + [interactionEnabled] ); const handleLinkClick = useCallback((link: any, event: any) => { + if (!interactionEnabled) return; // Return early if interaction is disabled event.preventDefault(); if (link) { const event = new CustomEvent("linkClick", { @@ -153,136 +125,97 @@ const ContextMap: React.FC = ({ }); document.dispatchEvent(event); } - setClickedLink(link || null) + setClickedLink(link || null); updateHighlight(); - }, []); + }, [interactionEnabled]); useEffect(() => { - let { x, y, z } = graphRef.current.cameraPosition(); - // setInitCoords({x, y, z}); - setInitRotation(graphRef.current.camera().quaternion); - //old strength/distance is when I used the 2DCSSObject - //graphRef.current.d3Force('charge').strength((node: any) => { return -220; }) - //graphRef.current.d3Force('link').distance((link: any) => { return 50; }); - graphRef.current.d3Force('charge').strength((node: any) => { return -20; }) - graphRef.current.d3Force('link').distance((link: any) => { return 65; }); - const handleCloseBox = () => { setClickedLink(null); setClickedNode(null); setSelectedSearchValue(""); - } + }; document.addEventListener("closeBox", handleCloseBox); return () => { document.removeEventListener("closeBox", handleCloseBox); - } + }; }, []); - - /* Function to determine multiplicity for the label*/ + const getLinkLabel = (link: any) => { const { sourceMultiplicity, targetMultiplicity } = link; - if (sourceMultiplicity && targetMultiplicity) { - return `${sourceMultiplicity} to ${targetMultiplicity}`; + return `${sourceMultiplicity} to ${targetMultiplicity}`; } else if (sourceMultiplicity) { - return sourceMultiplicity; + return sourceMultiplicity; } else if (targetMultiplicity) { - return targetMultiplicity; + return targetMultiplicity; } return ""; - }; - - const extraRenderers: any = [new CSS3DRenderer()]; - + }; + return ( - { - const el = document.createElement('div'); - - // Node name in larger text - const nameEl = document.createElement('div'); - nameEl.style.fontWeight = 'bold'; - nameEl.style.fontSize = '16px'; - nameEl.style.textAlign = 'center'; - nameEl.style.display = 'block'; - nameEl.style.border = "2px solid grey"; - nameEl.style.backgroundColor = 'rgba(183,201,226)'; - nameEl.innerText = node.nodeName; - el.appendChild(nameEl); - - let heightValue = 20; // Accounting for 20 bc the name takes up 16px already - - if(node && node.fields) { - //only do this if the nodes have fields - node.fields.forEach((field) => { - const fieldEl = document.createElement('div'); - fieldEl.style.fontSize = '12px'; - fieldEl.innerText = `+${field.fieldType} ${field.fieldName}`; - el.appendChild(fieldEl); - heightValue += 30; + nodeCanvasObject={(node, ctx, globalScale) => { + const label = node.nodeName; + const fontSize = 12 / globalScale; + ctx.font = `${fontSize}px Sans-Serif`; + ctx.fillStyle = 'black'; + + // Calculate the width and height of the text + const textWidth = ctx.measureText(label).width; + const textHeight = fontSize * 1.2; // Approximate height + + // Calculate total height for the node label and additional data + const totalHeight = textHeight + (node.fields ? node.fields.length * textHeight : 0); + const maxWidth = Math.max(textWidth, ...(node.fields ? node.fields.map(field => ctx.measureText(`${field.fieldType} ${field.fieldName}`).width) : [])); + + // Draw background rectangle + ctx.fillStyle = 'rgba(255, 255, 255, 0.8)'; // Background color + ctx.fillRect(node.x - maxWidth / 2 - 2, node.y - textHeight / 2 - 2, maxWidth + 4, totalHeight + 4); + + // Draw text + ctx.fillStyle = 'black'; + ctx.fillText(label, node.x, node.y); + + // Display additional data + if (node.fields) { + node.fields.forEach((field, index) => { + const fieldText = `${field.fieldType} ${field.fieldName}`; + ctx.fillText(fieldText, node.x, node.y + (index + 1) * textHeight); }); } - - const heightPixels = heightValue + 'px'; - // Styling for the HTML element - el.style.width = '200px'; - el.style.height = heightPixels; - el.style.backgroundColor = 'rgba(183,201,226)'; - - - if ( - selectedSearchValue && - selectedSearchValue.length && - node.nodeName === selectedSearchValue && selectedSearchValue !== clickedNode?.nodeName) { - handleNodeClick(node) - } - const cssObject = new CSS3DObject(el); - cssObject.position.set(0,0,0); - cssObject.scale.set(0.1, 0.1, 0.1); - - // cssObject.element.addEventListener('click', (event) => { - // handleNodeClick(node, event); - // }); - - return cssObject; }} - nodeThreeObjectExtend={true} - linkLabel={getLinkLabel} linkDirectionalArrowLength={LINK_ARROW_LENGTH} linkDirectionalArrowRelPos={1} linkDirectionalArrowColor={(link) => LINK_ARROW_COLOR} - linkDirectionalParticles={LINK_PARTICLE_AMNT} linkDirectionalParticleWidth={link => (highlightLinks.has(link) || link === clickedLink) ? PARTICLE_WIDTH : 0} linkDirectionalParticleColor={() => LINK_PARTICLE_COLOR} - linkWidth={LINK_WIDTH} linkColor={(link) => { if (link === clickedLink || link === selectedLink) { - return LINK_HIGHLIGHT_COLOR + return LINK_HIGHLIGHT_COLOR; } return LINK_COLOR; }} onNodeDragEnd={(node) => { - if (node.x && node.y && node.z) { + if (node.x && node.y) { node.fx = node.x; node.fy = node.y; - node.fz = node.z; } }} onNodeClick={handleNodeClick} - // onLinkClick={handleLinkClick} onNodeHover={handleNodeHover} onLinkHover={handleLinkHover} /> ); }; -export default ContextMap; +export default ContextMap; \ No newline at end of file diff --git a/frontend/src/components/ContextMap2D.tsx b/frontend/src/components/ContextMap2D.tsx new file mode 100644 index 0000000..9f21385 --- /dev/null +++ b/frontend/src/components/ContextMap2D.tsx @@ -0,0 +1,140 @@ +/** + * Authors: Vsevolod Pokhvalenko + */ + +import React, { useEffect, useState } from "react"; +import { ViewMode } from "../context/AppContext"; +import { useAppContext } from "../context/AppContext"; +import { Background, Controls, Edge, ReactFlow, useEdgesState, useNodesState } from '@xyflow/react'; +import '@xyflow/react/dist/style.css'; +import CustomNode from "./CustomNode"; + +type Props = { + search: string; + threshold: number; + contextMap: any; + graphRef: any; + setInitRotation: any; + highCoupling: any; + viewMode: ViewMode; +}; + +const ContextMap: React.FC = ({ + contextMap, + graphRef + }) => { + // Local state to store filtered version of contextMap (if any filtering is applied) + const [filteredData, setFilteredData] = useState(contextMap); + + // Accessing shared state from context + const { setStateVar, selectedSearchValue, selectedSearchSecondValue } = useAppContext(); + + // React Flow state for managing nodes and edges + const [nodes, setNodes, onNodesChange] = useNodesState([]); + const [edges, setEdges, onEdgesChange] = useEdgesState([]); + + // Effect to initialize nodes and edges when contextMap changes + useEffect(() => { + if (contextMap && contextMap.nodes && contextMap.links) { + setNodes(convertNodes(contextMap.nodes)); + setEdges(convertLinks(contextMap.links)); + } + }, [contextMap]); + + // Custom node type definition for React Flow + const nodeTypes = { + customNode: CustomNode, + }; + + /** + * Converts nodes from input data into React Flow nodes, + * positioning them using a spherical spiral algorithm for even spacing. + */ + const convertNodes = (nodes) => { + const radius = 3000; // Controls the spacing of nodes + const phi = Math.PI * (3 - Math.sqrt(5)); // Golden angle in radians + + return nodes.map((node, i) => { + const y = 1 - (i / (nodes.length - 1)) * 2; // Distributes nodes from top to bottom + const radiusAtY = Math.sqrt(1 - y * y); // Radius of circle at given y + const theta = phi * i; // Golden angle progression + + // Convert to 2D coordinates for layout + const x = radius * Math.cos(theta) * radiusAtY; + const yPos = radius * Math.sin(theta) * radiusAtY; + + return { + id: node.nodeName, + data: { label: node.nodeFullName, fields: node.fields }, + position: { x, y: yPos }, + type: "customNode", + }; + }); + }; + + /** + * Converts links from input data into React Flow edges + */ + const convertLinks = (links) => { + return links.map((link) => ({ + id: `${link.source}-${link.target}`, + source: link.source, + target: link.target, + label: `${link.source} -> ${link.target}`, + animated: false, + type: "default", + })); + }; + + /** + * Effect to update the graph based on selected search values from context. + * Filters nodes and links accordingly. + */ + useEffect(() => { + if (selectedSearchValue) { + // Filter nodes by selected microservice name + const filteredNodes = contextMap.nodes.filter((node: any) => node.msName === selectedSearchValue); + // Filter links connected to the filtered nodes + const filteredLinks = contextMap.links.filter((link: any) => + filteredNodes.some((node: any) => node.id === link.source || node.id === link.target) + ); + setEdges(convertLinks(filteredLinks)); + setNodes(convertNodes(filteredNodes)); + setFilteredData({ nodes: filteredNodes, links: filteredLinks }); + + } else if (selectedSearchSecondValue) { + // Filter nodes by specific node name + const filteredNodes = contextMap.nodes.filter((node: any) => node.nodeName === selectedSearchSecondValue); + const filteredLinks = contextMap.links.filter((link: any) => + filteredNodes.some((node: any) => node.id === link.source || node.id === link.target) + ); + setEdges(convertLinks(filteredLinks)); + setNodes(convertNodes(filteredNodes)); + + } else { + // If no search filters are active, reset to full graph + setEdges(convertLinks(contextMap.links)); + setNodes(convertNodes(contextMap.nodes)); + setFilteredData(contextMap); + } + }, [selectedSearchValue, selectedSearchSecondValue, contextMap]); + + return ( +
+ + + + +
+ ); +}; + +export default ContextMap; diff --git a/frontend/src/components/CustomNode.tsx b/frontend/src/components/CustomNode.tsx new file mode 100644 index 0000000..e2f53a2 --- /dev/null +++ b/frontend/src/components/CustomNode.tsx @@ -0,0 +1,32 @@ +/** + * Authors: Vsevolod Pokhvalenko, and the MicroGraal Development Team + */ + +import React from 'react'; +import { Handle, Position } from '@xyflow/react'; + +const CustomNode = ({ data }) => { + const { label, fields } = data; + + return ( +
+ + {label} +
    + {fields && fields.length > 0 ? ( + fields.map((field, index) => ( +
  • + {field.fieldName}: {field.fieldType} +
  • + )) + ) : ( +
  • No Fields
  • + )} +
+ +
+ ); +}; + + +export default CustomNode; \ No newline at end of file diff --git a/frontend/src/components/GraphMenuButtons.tsx b/frontend/src/components/GraphMenuButtons.tsx index e786ef1..556eb29 100644 --- a/frontend/src/components/GraphMenuButtons.tsx +++ b/frontend/src/components/GraphMenuButtons.tsx @@ -1,5 +1,10 @@ +/** + * Authors: Vsevolod Pokhvalenko, and the MicroGraal Development Team + */ + import { saveAs } from "file-saver"; import React, { useState, useEffect, useRef } from "react"; +import { toPng } from 'html-to-image'; import { handleComparison, initCoords } from "../utils/GraphFunctions"; import GraphButton from "./GraphButton" import { NODE_A_COLOR, NODE_B_COLOR } from "./CommunicationGraph"; @@ -32,7 +37,7 @@ const GraphMenuButtons: React.FC = ({ B: null, B_Name: null } - + const [versions, setVersions] = useState(versionObj); const [isCompareOpen, setIsCompareOpen] = useState(false); const fileInputRef = useRef(null); @@ -57,7 +62,7 @@ const GraphMenuButtons: React.FC = ({ function exportToJsonFile(jsonData: any) { let dataStr = JSON.stringify( - Object.assign({}, jsonData, graphRef.current.cameraPosition()), + Object.assign({}, jsonData, graphRef.current?.cameraPosition()), replacer ); @@ -93,7 +98,7 @@ const GraphMenuButtons: React.FC = ({ let content = readerEvent.target.result; // this is the content! let parsedData = JSON.parse(content); setGraphData(parsedData); - graphRef.current.cameraPosition( + graphRef.current?.cameraPosition( { x: parsedData.x, y: parsedData.y, z: parsedData.z }, // new position { x: 0, y: 0, z: 0 }, //parsedData.lookAt, // lookAt ({ x, y, z }) 0 // ms transition duration @@ -110,26 +115,71 @@ const GraphMenuButtons: React.FC = ({ function forceReset() { graphRef.current.refresh(); console.log(graphRef); - graphRef.current.cameraPosition( + graphRef.current?.cameraPosition( initCoords, { x: 0, y: 0, z: 0 }, // lookAt ({ x, y, z }) 2000 // ms transition duration ); - + } - function screenshotGraph() { + async function screenshotGraph() { const now = new Date(); - window.requestAnimationFrame(() => { - window.cancelAnimationFrame(0); - graphRef.current.renderer().domElement.toBlob(function (blob: any) { - saveAs( - blob, - `3d_Visualizer_${now.toLocaleDateString()}-${numScreenshots}}` - ); + const graphInstance = graphRef.current; + + if (!graphInstance) return; + + // Check if it's a ForceGraph3D instance for 3D graph capture + if (typeof graphInstance.renderer === "function" && graphInstance.renderer().domElement) { + const canvas = graphInstance.renderer().domElement; + + // Upscale for higher quality screenshot + const originalWidth = canvas.width; + const originalHeight = canvas.height; + const scaleFactor = 2; + + canvas.width = originalWidth * scaleFactor; + canvas.height = originalHeight * scaleFactor; + graphInstance.renderer().setSize(canvas.width, canvas.height); + graphInstance.camera().updateProjectionMatrix(); + graphInstance.renderer().render(graphInstance.scene(), graphInstance.camera()); + + // Fill with a white background + const ctx = canvas.getContext('2d'); + if (ctx) { + ctx.globalCompositeOperation = 'destination-over'; + ctx.fillStyle = '#ffffff'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + } + + // Convert canvas to a blob and trigger download + canvas.toBlob((blob) => { + if (blob) { + saveAs(blob, `3D_Visualizer_${now.toLocaleDateString()}-${numScreenshots}.png`); + setNumScreenshots(numScreenshots + 1); + } + + // Reset canvas dimensions to original size + canvas.width = originalWidth; + canvas.height = originalHeight; + graphInstance.renderer().setSize(originalWidth, originalHeight); + graphInstance.camera().updateProjectionMatrix(); }); - setNumScreenshots(++numScreenshots); - }); + + } else if (graphInstance instanceof HTMLElement) { + // For 2D graphs, we use toPng to capture the graph + toPng(graphInstance, { backgroundColor: '#ffffff' }) + .then((dataUrl) => { + // Create a link and trigger the download of the captured image + const a = document.createElement('a'); + a.href = dataUrl; + a.download = `2D_Visualizer_${now.toLocaleDateString()}.png`; + a.click(); + }) + .catch((err) => { + console.error('Failed to capture graph:', err); + }); + } } function handleCompareClick() { @@ -172,7 +222,7 @@ const GraphMenuButtons: React.FC = ({ return (
- {viewMode === ViewMode.CommGraph && + {viewMode === ViewMode.CommGraph && //codeCoveragePossible is NOT-ed because if its true, disabled should be false, vice-verse } Import diff --git a/frontend/src/components/GraphWrapper.tsx b/frontend/src/components/GraphWrapper.tsx index 9c36ba2..c21df5f 100644 --- a/frontend/src/components/GraphWrapper.tsx +++ b/frontend/src/components/GraphWrapper.tsx @@ -1,7 +1,11 @@ +/** + * Authors: Vsevolod Pokhvalenko, and the MicroGraal Development Team + */ + import React, { useEffect, useState } from "react"; import CommunicationGraph from "./CommunicationGraph"; import { ViewMode, useAppContext } from "../context/AppContext"; -import ContextMap from "./ContextMap"; +import ContextMap from "./ContextMap2D"; import SubContextMap from "./SubContextMap"; type Props = { @@ -14,7 +18,7 @@ const VisualizationOptions: React.FC = ({ contextRef, }) => { - const { + const { subContextNodes, contextMap, search, @@ -24,7 +28,7 @@ const VisualizationOptions: React.FC = ({ viewSubContextMap, setStateVar } = useAppContext(); - + const setInitRotation = (rot: any) => setStateVar && setStateVar("initRotation", rot); const [filteredContextMap, setFilteredContextMap] = useState({}) @@ -49,7 +53,7 @@ const VisualizationOptions: React.FC = ({ return (
- {viewSubContextMap === true && + {viewSubContextMap === true && { - const { anchorPoint: nodeAnchor, show: nodeShow, name, type, dependents, setShow, dependencies } = useInfoBox(); - const { anchorPoint: linkAnchor, show: linkShow, setShow: linkSetShow, source, target, links } = useInfoBoxLink(); + const {anchorPoint: nodeAnchor, show: nodeShow, name, type, dependents, setShow, dependencies} = useInfoBox(); + const {anchorPoint: linkAnchor, show: linkShow, setShow: linkSetShow, source, target, links} = useInfoBoxLink(); if (nodeShow) { return (

    Name: {name}

    Type: {type}

    @@ -22,9 +26,9 @@ export const NodeInfoBox = () => { Dependents: {dependents}
); - } - else if (linkShow) { + } else if (linkShow) { return ( -
    -

    Source: {source}

    -

    Target: {target}

    -
      - Rest Calls: {links.map((link: any) =>{ - let textColor = "black"; - if (link.version === "A"){ - textColor = NODE_A_COLOR; - } - else if (link.version === "B"){ - textColor = NODE_B_COLOR; - } - return (
    • {link.type} {link.uri}
    • ) - }) - } -
    +

    Source: {source}

    +

    Target: {target}

    + +
    +

    Calls:

    +
      + {links.map((link: any) => { + let textColor = "text-black"; + if (link.version === "A") { + textColor = "text-blue-600"; + } else if (link.version === "B") { + textColor = "text-green-600"; + } + return ( +
    • + + {link.type} {link.uri} + + {link.document && ( +

      + Document: {link.document} +

      + )} + {link.arguments && ( +

      + Arguments: {link.arguments} +

      + )} +
    • + ); + })} +
    +
    + -
- ) +
+ ); + } return <>; }; diff --git a/frontend/src/components/Search.tsx b/frontend/src/components/Search.tsx index 8a7250a..3febc71 100644 --- a/frontend/src/components/Search.tsx +++ b/frontend/src/components/Search.tsx @@ -42,7 +42,7 @@ const SearchableDropdown = ({ const filterOpt = (options) => { const op = options.filter( - (option) => option[label].toLowerCase().indexOf(searchLocal.toLowerCase()) > -1 + (option) => option[label]?.toLowerCase().indexOf(searchLocal.toLowerCase()) > -1 ) return op } diff --git a/frontend/src/components/SearchWrapper.tsx b/frontend/src/components/SearchWrapper.tsx index 98d11b8..f1c8829 100644 --- a/frontend/src/components/SearchWrapper.tsx +++ b/frontend/src/components/SearchWrapper.tsx @@ -1,5 +1,10 @@ +/** + * Authors: Vsevolod Pokhvalenko, and the MicroGraal Development Team + */ + import React, { useState } from "react"; import SearchableDropdown from "./Search"; +import { SearchableDropdown as SecondSeach} from "./SecondSearch"; import { useAppContext } from "../context/AppContext"; type Props = { @@ -7,8 +12,9 @@ type Props = { }; const SearchWrapper: React.FC = ({}) => { - const { graphData, setStateVar } = useAppContext(); + const { graphData, contextMap, setStateVar } = useAppContext(); const setSelectedVal = (val: string) => setStateVar && setStateVar("selectedSearchValue", val); + const setSelectedSecondVal = (val: string) => setStateVar && setStateVar("selectedSearchSecondValue", val); return (
@@ -19,6 +25,13 @@ const SearchWrapper: React.FC = ({}) => { id="NodeSearchDropdownSearch" handleChange={(val) => setSelectedVal(val)} /> + + setSelectedSecondVal(val)} + />
); }; diff --git a/frontend/src/components/SecondSearch.tsx b/frontend/src/components/SecondSearch.tsx new file mode 100644 index 0000000..fef1305 --- /dev/null +++ b/frontend/src/components/SecondSearch.tsx @@ -0,0 +1,102 @@ +/** + * Authors: Vsevolod Pokhvalenko, and the MicroGraal Development Team + */ + +import React, {useState, useRef} from "react" +import {useAppContext} from "../context/AppContext"; + +export const SearchableDropdown = ({ + options, + label, + id, + handleChange + }) => { + + const {search, selectedSearchSecondValue, setStateVar} = useAppContext(); + + const setSearch = (s) => setStateVar && setStateVar("selectedSearchSecondValue", s); + const setSelectedSecondValue = (val) => setStateVar && setStateVar("selectedSearchSecondValue", val) + + const [searchLocal, setSearchLocal] = useState("") + + const [isOpen, setIsOpen] = useState(false); + const inputRef = useRef(null); + + const selectOption = (option) => { + // setSearch(option.nodeName) + setSearchLocal(option.nodeName) + handleChange(option[label]); + setIsOpen((isOpen) => !isOpen); + }; + + function toggle(e) { + + setIsOpen(e && e.target === inputRef.current); + if (isOpen) { + setIsOpen(false); + } + } + + const getDisplayValue = () => { + if (search) return search; + if (selectedSearchSecondValue) return selectedSearchSecondValue; + + // return ""; + }; + + const filterOpt = (options) => { + const op = options.filter( + (option) => option[label]?.toLowerCase().indexOf(searchLocal.toLowerCase()) > -1 + ) + return op + } + + return ( +
+
+
+ { + setSearch(e.target.value); + setSearchLocal(e.target.value) + setSelectedSecondValue(""); + handleChange(null); + }} + onClick={toggle} + /> +
+ +
+ +
+ {filterOpt(options).map((option, index) => ( +
selectOption(option)} + className={`option ${option[label] === selectedSearchSecondValue ? "selected" : ""} box-border text-gray-600 cursor-pointer block px-2.5 py-1 hover:bg-blue-200 ${option[label] === selectedSearchSecondValue ? "bg-blue-100 text-gray-900" : ""}`} + key={`${id}-${index}`} + > + {option[label]} +
+ ) + )} +
+
+ ); +}; + diff --git a/frontend/src/components/SubContextMap.tsx b/frontend/src/components/SubContextMap.tsx index 56c7b93..05c6cd3 100644 --- a/frontend/src/components/SubContextMap.tsx +++ b/frontend/src/components/SubContextMap.tsx @@ -1,7 +1,12 @@ +/** + * Authors: Vsevolod Pokhvalenko, and the MicroGraal Development Team + */ + import React, { useEffect, useState, useRef } from "react"; import { useAppContext, ViewMode } from "../context/AppContext"; import { CSS3DRenderer, CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer'; import ForceGraph3D from "react-force-graph-3d"; +import ForceGraph2D from "react-force-graph-2d"; type Props = { @@ -36,16 +41,15 @@ const LINK_ARROW_LENGTH = 10; const LINK_PARTICLE_AMNT = 2; const SubContextMap: React.FC = ({ - contextMap, - search, - threshold, - viewMode, - // graphRef, - setInitRotation, - highCoupling -}) => { + contextMap, + search, + threshold, + viewMode, + setInitRotation, + highCoupling + }) => { const graphRef = useRef() - const { viewSubContextMap, setStateVar, selectedSearchValue } = useAppContext(); + const { viewSubContextMap, setStateVar, selectedSearchValue, is3DView = false } = useAppContext(); const setSubContextNodes = (val: Map) => setStateVar && setStateVar("subContextNodes", val); const setViewSubContextMap = (val: boolean) => setStateVar && setStateVar("viewSubContextMap", val); const [highlightNodes, setHighlightNodes] = useState(new Set()); @@ -94,12 +98,9 @@ const SubContextMap: React.FC = ({ }; useEffect(() => { - // let { x, y, z } = graphRef.current.cameraPosition(); setInitRotation(graphRef.current.camera().quaternion); graphRef.current.d3Force('charge').strength((node: any) => { return -20; }) graphRef.current.d3Force('link').distance((link: any) => { return 85; }); - // graphRef.current.d3Force('charge').strength((node: any) => { return -220; }) - // graphRef.current.d3Force('link').distance((link: any) => { return 50; }); const handleCloseBox = () => { setClickedLink(null); @@ -110,25 +111,24 @@ const SubContextMap: React.FC = ({ document.addEventListener("closeBox", handleCloseBox); return () => { document.removeEventListener("closeBox", handleCloseBox); - } + } }, []); - const extraRenderers: any = [new CSS3DRenderer()]; const getLinkLabel = (link: any) => { const { sourceMultiplicity, targetMultiplicity } = link; - + if (sourceMultiplicity && targetMultiplicity) { - return `${sourceMultiplicity} to ${targetMultiplicity}`; + return `${sourceMultiplicity} to ${targetMultiplicity}`; } else if (sourceMultiplicity) { - return sourceMultiplicity; + return sourceMultiplicity; } else if (targetMultiplicity) { - return targetMultiplicity; + return targetMultiplicity; } return ""; }; - + return (
{viewSubContextMap && ( @@ -140,129 +140,70 @@ const SubContextMap: React.FC = ({ - - + +
- Microservice(s) selected: - {contextMap.nodes.filter((node, index, array) => array.findIndex(n => n.msName === node.msName) === index).map((node, index) => { - return ( - + Microservice(s) selected: + {contextMap.nodes.filter((node, index, array) => array.findIndex(n => n.msName === node.msName) === index).map((node, index) => { + return ( + {node.msName} - {(index + 1) % 2 === 0 ?
: null} + {(index + 1) % 2 === 0 ?
: null}
- ) - })} - Entity List: - {contextMap.nodes.map((node, index) => { - return ( - + ) + })} + Entity List: + {contextMap.nodes.map((node, index) => { + return ( + {node.nodeName} - {(index + 1) % 2 === 0 ?
: null} + {(index + 1) % 2 === 0 ?
: null}
- ) - })} + ) + })}
-
- { - - //trying to filter beforehand (old code) - // if (badNodes.some(badNode => badNode.nodeName === node.nodeName)) { - // return null; - // } - - const el = document.createElement('div'); - - // Node name in larger text - const nameEl = document.createElement('div'); - nameEl.style.fontWeight = 'bold'; - nameEl.style.fontSize = '16px'; - nameEl.style.textAlign = 'center'; - nameEl.style.display = 'block'; - nameEl.style.border = '2px solid grey'; - nameEl.style.color = 'black'; - nameEl.style.backgroundColor = 'rgba(183,201,226)'; - nameEl.innerText = node.nodeName; - el.appendChild(nameEl); - - let heightValue = 20; // Accounting for 20 bc the name takes up 16px already - - if(node && node.fields) { - //only do this if the nodes have fields - node.fields.forEach((field) => { - const fieldEl = document.createElement('div'); - fieldEl.style.fontSize = '12px'; - fieldEl.style.color = 'black'; - fieldEl.innerText = `+${field.fieldType} ${field.fieldName}`; - el.appendChild(fieldEl); - heightValue += 30; - }); - } - - - const heightPixels = heightValue + 'px'; - // Styling for the HTML element - el.style.width = '200px'; - el.style.height = heightPixels; - el.style.backgroundColor = 'rgba(183,201,226)'; - - // if ( - // selectedSearchValue && - // selectedSearchValue.length && - // node.nodeName === selectedSearchValue && selectedSearchValue !== clickedNode?.nodeName) { - // handleNodeClick(node) - // } - const cssObject = new CSS3DObject(el); - cssObject.position.set(0,0,0); - cssObject.scale.set(0.1, 0.1, 0.1); - - // FOR CAMERA LOOKING - // if (graphRef.current.camera().position) { - // cssObject.lookAt(graphRef.current.camera().position) - // } - - - // cssObject.element.style.zIndex = '1'; - - return cssObject; - }} - nodeThreeObjectExtend={true} - linkLabel={getLinkLabel} - - linkDirectionalArrowLength={LINK_ARROW_LENGTH} - linkDirectionalArrowRelPos={1} - linkDirectionalArrowColor={(link) => LINK_ARROW_COLOR} - - linkDirectionalParticles={LINK_PARTICLE_AMNT} - linkDirectionalParticleWidth={link => (highlightLinks.has(link) || link === clickedLink) ? PARTICLE_WIDTH : 0} - linkDirectionalParticleColor={() => LINK_PARTICLE_COLOR} - - linkWidth={LINK_WIDTH} - linkColor={(link) => { - if (link === clickedLink || link === selectedLink) { - return LINK_HIGHLIGHT_COLOR - } - return LINK_COLOR; - }} - onNodeDragEnd={(node) => { - if (node.x && node.y && node.z) { - node.fx = node.x; - node.fy = node.y; - node.fz = node.z; - } - }} - onNodeHover={handleNodeHover} - onLinkHover={handleLinkHover} - /> +
+ { + { + const label = node.nodeName; + const fontSize = 12 / globalScale; + ctx.font = `${fontSize}px Sans-Serif`; + ctx.fillStyle = 'black'; + ctx.fillText(label, node.x, node.y); + }} + linkLabel={getLinkLabel} + linkDirectionalArrowLength={LINK_ARROW_LENGTH} + linkDirectionalArrowRelPos={1} + linkDirectionalArrowColor={(link) => LINK_ARROW_COLOR} + linkDirectionalParticles={LINK_PARTICLE_AMNT} + linkDirectionalParticleWidth={link => (highlightLinks.has(link) || link === clickedLink) ? PARTICLE_WIDTH : 0} + linkDirectionalParticleColor={() => LINK_PARTICLE_COLOR} + linkWidth={LINK_WIDTH} + linkColor={(link) => { + if (link === clickedLink || link === selectedLink) { + return LINK_HIGHLIGHT_COLOR + } + return LINK_COLOR; + }} + onNodeDragEnd={(node) => { + if (node.x && node.y) { + node.fx = node.x; + node.fy = node.y; + } + }} + onNodeHover={handleNodeHover} + onLinkHover={handleLinkHover} + /> + } )} diff --git a/frontend/src/context/AppContext.tsx b/frontend/src/context/AppContext.tsx index 0d53e7a..80bace4 100644 --- a/frontend/src/context/AppContext.tsx +++ b/frontend/src/context/AppContext.tsx @@ -13,6 +13,7 @@ interface AppContextType { contextMap: typeof contextData, search: string, selectedSearchValue: string, + selectedSearchSecondValue: string, sliderValue: number, initCoords: any, initRotation: any, @@ -22,6 +23,10 @@ interface AppContextType { subContextNodes: Map, showCodeCoverage: boolean, codeCoveragePossible: boolean, + is3DView: boolean; + getNodes: () => any[]; + getEdges: () => any[]; + reactFlowInstance: any; setStateVar?: (field: keyof AppContextType, value: any) => void; } @@ -33,6 +38,7 @@ export function AppPageContext({ children }: any) { contextMap: contextData, search: "", selectedSearchValue: "", + selectedSearchSecondValue: "", sliderValue: 8, initCoords: null, initRotation: null, @@ -42,6 +48,10 @@ export function AppPageContext({ children }: any) { subContextNodes: new Map(), codeCoveragePossible: false, showCodeCoverage: false, + is3DView: true, + getNodes: () => [], + getEdges: () => [], + reactFlowInstance: null, }); const setStateVar = (field: keyof AppContextType, value: any) => { setState((prevState) => ({ diff --git a/frontend/src/data/communicationGraph.json b/frontend/src/data/communicationGraph.json deleted file mode 100644 index d4db9b0..0000000 --- a/frontend/src/data/communicationGraph.json +++ /dev/null @@ -1,1594 +0,0 @@ -{ - "nodes": [ - { - "nodeName": "ts-consign-price-service", - "nodeType": "service" - }, - { - "nodeName": "ts-consign-service", - "nodeType": "service" - }, - { - "nodeName": "ts-admin-user-service", - "nodeType": "service" - }, - { - "nodeName": "ts-train-service", - "nodeType": "service" - }, - { - "nodeName": "ts-route-service", - "nodeType": "service" - }, - { - "nodeName": "ts-admin-route-service", - "nodeType": "service" - }, - { - "nodeName": "ts-price-service", - "nodeType": "service" - }, - { - "nodeName": "ts-assurance-service", - "nodeType": "service" - }, - { - "nodeName": "ts-order-other-service", - "nodeType": "service" - }, - { - "nodeName": "ts-user-service", - "nodeType": "service" - }, - { - "nodeName": "ts-admin-basic-info-service", - "nodeType": "service" - }, - { - "nodeName": "ts-route-plan-service", - "nodeType": "service" - }, - { - "nodeName": "ts-preserve-service", - "nodeType": "service" - }, - { - "nodeName": "ts-food-service", - "nodeType": "service" - }, - { - "nodeName": "ts-payment-service", - "nodeType": "service" - }, - { - "nodeName": "ts-seat-service", - "nodeType": "service" - }, - { - "nodeName": "ts-travel-service", - "nodeType": "service" - }, - { - "nodeName": "ts-cancel-service", - "nodeType": "service" - }, - { - "nodeName": "ts-station-service", - "nodeType": "service" - }, - { - "nodeName": "ts-wait-order-service", - "nodeType": "service" - }, - { - "nodeName": "ts-admin-order-service", - "nodeType": "service" - }, - { - "nodeName": "ts-security-service", - "nodeType": "service" - }, - { - "nodeName": "ts-order-service", - "nodeType": "service" - }, - { - "nodeName": "ts-rebook-service", - "nodeType": "service" - }, - { - "nodeName": "ts-train-food-service", - "nodeType": "service" - }, - { - "nodeName": "ts-auth-service", - "nodeType": "service" - }, - { - "nodeName": "ts-travel-plan-service", - "nodeType": "service" - }, - { - "nodeName": "ts-preserve-other-service", - "nodeType": "service" - }, - { - "nodeName": "ts-inside-payment-service", - "nodeType": "service" - }, - { - "nodeName": "ts-basic-service", - "nodeType": "service" - }, - { - "nodeName": "ts-station-food-service", - "nodeType": "service" - }, - { - "nodeName": "ts-admin-travel-service", - "nodeType": "service" - }, - { - "nodeName": "ts-food-delivery-service", - "nodeType": "service" - }, - { - "nodeName": "ts-travel2-service", - "nodeType": "service" - }, - { - "nodeName": "ts-notification-service", - "nodeType": "service" - }, - { - "nodeName": "ts-config-service", - "nodeType": "service" - }, - { - "nodeName": "ts-contacts-service", - "nodeType": "service" - } - ], - "links": [ - { - "source": "ts-seat-service", - "target": "ts-order-service", - "requests": [ - { - "type": "POST", - "uri": "ts-order-service/api/v1/orderservice/order/tickets", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "order.controller.OrderController.getTicketListByDateAndTripId", - "endpointMsName": "ts-order-service", - "targetEndpointUri": "/api/v1/orderservice/order/tickets", - "isCollection": false, - "parentMethod": "seat.service.SeatServiceImpl.distributeSeat", - "msName": "ts-seat-service", - "restCallInClassName": "seat.service.SeatServiceImpl" - }, - { - "type": "POST", - "uri": "ts-order-service/api/v1/orderservice/order/tickets", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "order.controller.OrderController.getTicketListByDateAndTripId", - "endpointMsName": "ts-order-service", - "targetEndpointUri": "/api/v1/orderservice/order/tickets", - "isCollection": false, - "parentMethod": "seat.service.SeatServiceImpl.getLeftTicketOfInterval", - "msName": "ts-seat-service", - "restCallInClassName": "seat.service.SeatServiceImpl" - } - ] - }, - { - "source": "ts-seat-service", - "target": "ts-order-other-service", - "requests": [ - { - "type": "POST", - "uri": "ts-order-other-service/api/v1/orderOtherService/orderOther/tickets", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "other.controller.OrderOtherController.getTicketListByDateAndTripId", - "endpointMsName": "ts-order-other-service", - "targetEndpointUri": "/api/v1/orderOtherService/orderOther/tickets", - "isCollection": false, - "parentMethod": "seat.service.SeatServiceImpl.getLeftTicketOfInterval", - "msName": "ts-seat-service", - "restCallInClassName": "seat.service.SeatServiceImpl" - }, - { - "type": "POST", - "uri": "ts-order-other-service/api/v1/orderOtherService/orderOther/tickets", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "other.controller.OrderOtherController.getTicketListByDateAndTripId", - "endpointMsName": "ts-order-other-service", - "targetEndpointUri": "/api/v1/orderOtherService/orderOther/tickets", - "isCollection": false, - "parentMethod": "seat.service.SeatServiceImpl.distributeSeat", - "msName": "ts-seat-service", - "restCallInClassName": "seat.service.SeatServiceImpl" - } - ] - }, - { - "source": "ts-travel-service", - "target": "ts-seat-service", - "requests": [ - { - "type": "POST", - "uri": "ts-seat-service/api/v1/seatservice/seats/left_tickets", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "seat.controller.SeatController.getLeftTicketOfInterval", - "endpointMsName": "ts-seat-service", - "targetEndpointUri": "/api/v1/seatservice/seats/left_tickets", - "isCollection": false, - "parentMethod": "travel.service.TravelServiceImpl.getRestTicketNumber", - "msName": "ts-travel-service", - "restCallInClassName": "travel.service.TravelServiceImpl" - } - ] - }, - { - "source": "ts-travel-service", - "target": "ts-basic-service", - "requests": [ - { - "type": "POST", - "uri": "ts-basic-service/api/v1/basicservice/basic/travels", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.BasicController.queryForTravels", - "endpointMsName": "ts-basic-service", - "targetEndpointUri": "/api/v1/basicservice/basic/travels", - "isCollection": false, - "parentMethod": "travel.service.TravelServiceImpl.getTicketsByBatch", - "msName": "ts-travel-service", - "restCallInClassName": "travel.service.TravelServiceImpl" - }, - { - "type": "POST", - "uri": "ts-basic-service/api/v1/basicservice/basic/travel", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.BasicController.queryForTravel", - "endpointMsName": "ts-basic-service", - "targetEndpointUri": "/api/v1/basicservice/basic/travel", - "isCollection": false, - "parentMethod": "travel.service.TravelServiceImpl.getTickets", - "msName": "ts-travel-service", - "restCallInClassName": "travel.service.TravelServiceImpl" - } - ] - }, - { - "source": "ts-travel-service", - "target": "ts-route-service", - "requests": [ - { - "type": "GET", - "uri": "ts-route-service/api/v1/routeservice/routes/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "route.controller.RouteController.queryAll", - "endpointMsName": "ts-route-service", - "targetEndpointUri": "/api/v1/routeservice/routes", - "isCollection": false, - "parentMethod": "travel.service.TravelServiceImpl.getRouteByRouteId", - "msName": "ts-travel-service", - "restCallInClassName": "travel.service.TravelServiceImpl" - } - ] - }, - { - "source": "ts-travel-plan-service", - "target": "ts-route-plan-service", - "requests": [ - { - "type": "POST", - "uri": "ts-route-plan-service/api/v1/routeplanservice/routePlan/cheapestRoute", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "plan.controller.RoutePlanController.getCheapestRoutes", - "endpointMsName": "ts-route-plan-service", - "targetEndpointUri": "/api/v1/routeplanservice/routePlan/cheapestRoute", - "isCollection": false, - "parentMethod": "travelplan.service.TravelPlanServiceImpl.getRoutePlanResultCheapest", - "msName": "ts-travel-plan-service", - "restCallInClassName": "travelplan.service.TravelPlanServiceImpl" - }, - { - "type": "POST", - "uri": "ts-route-plan-service/api/v1/routeplanservice/routePlan/minStopStations", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "plan.controller.RoutePlanController.getMinStopStations", - "endpointMsName": "ts-route-plan-service", - "targetEndpointUri": "/api/v1/routeplanservice/routePlan/minStopStations", - "isCollection": false, - "parentMethod": "travelplan.service.TravelPlanServiceImpl.getRoutePlanResultMinStation", - "msName": "ts-travel-plan-service", - "restCallInClassName": "travelplan.service.TravelPlanServiceImpl" - }, - { - "type": "POST", - "uri": "ts-route-plan-service/api/v1/routeplanservice/routePlan/quickestRoute", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "plan.controller.RoutePlanController.getQuickestRoutes", - "endpointMsName": "ts-route-plan-service", - "targetEndpointUri": "/api/v1/routeplanservice/routePlan/quickestRoute", - "isCollection": false, - "parentMethod": "travelplan.service.TravelPlanServiceImpl.getRoutePlanResultQuickest", - "msName": "ts-travel-plan-service", - "restCallInClassName": "travelplan.service.TravelPlanServiceImpl" - } - ] - }, - { - "source": "ts-travel-plan-service", - "target": "ts-travel2-service", - "requests": [ - { - "type": "POST", - "uri": "ts-travel2-service/api/v1/travel2service/trips/left", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "travel2.controller.Travel2Controller.queryInfo", - "endpointMsName": "ts-travel2-service", - "targetEndpointUri": "/api/v1/travel2service/trips/left", - "isCollection": false, - "parentMethod": "travelplan.service.TravelPlanServiceImpl.tripsFromNormal", - "msName": "ts-travel-plan-service", - "restCallInClassName": "travelplan.service.TravelPlanServiceImpl" - } - ] - }, - { - "source": "ts-travel-plan-service", - "target": "ts-seat-service", - "requests": [ - { - "type": "POST", - "uri": "ts-seat-service/api/v1/seatservice/seats/left_tickets", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "seat.controller.SeatController.getLeftTicketOfInterval", - "endpointMsName": "ts-seat-service", - "targetEndpointUri": "/api/v1/seatservice/seats/left_tickets", - "isCollection": false, - "parentMethod": "travelplan.service.TravelPlanServiceImpl.getRestTicketNumber", - "msName": "ts-travel-plan-service", - "restCallInClassName": "travelplan.service.TravelPlanServiceImpl" - } - ] - }, - { - "source": "ts-travel-plan-service", - "target": "ts-travel-service", - "requests": [ - { - "type": "POST", - "uri": "ts-travel-service/api/v1/travelservice/trips/left", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "travel.controller.TravelController.queryInfo", - "endpointMsName": "ts-travel-service", - "targetEndpointUri": "/api/v1/travelservice/trips/left", - "isCollection": false, - "parentMethod": "travelplan.service.TravelPlanServiceImpl.tripsFromHighSpeed", - "msName": "ts-travel-plan-service", - "restCallInClassName": "travelplan.service.TravelPlanServiceImpl" - } - ] - }, - { - "source": "ts-food-delivery-service", - "target": "ts-station-food-service", - "requests": [ - { - "type": "GET", - "uri": "ts-station-food-service/api/v1/stationfoodservice/stationfoodstores/bystoreid/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "food.controller.StationFoodController.home", - "endpointMsName": "ts-station-food-service", - "targetEndpointUri": "/api/v1/stationfoodservice/stationfoodstores/welcome", - "isCollection": false, - "parentMethod": "food_delivery.service.FoodDeliveryServiceImpl.createFoodDeliveryOrder", - "msName": "ts-food-delivery-service", - "restCallInClassName": "food_delivery.service.FoodDeliveryServiceImpl" - } - ] - }, - { - "source": "ts-wait-order-service", - "target": "ts-preserve-service", - "requests": [ - { - "type": "POST", - "uri": "/api/v1/contactservice/preserve", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "preserve.controller.PreserveController.preserve", - "endpointMsName": "ts-preserve-service", - "targetEndpointUri": "/api/v1/preserveservice/preserve", - "isCollection": false, - "parentMethod": "waitorder.utils.PollThread.doPreserve", - "msName": "ts-wait-order-service", - "restCallInClassName": "waitorder.utils.PollThread" - } - ] - }, - { - "source": "ts-travel2-service", - "target": "ts-seat-service", - "requests": [ - { - "type": "POST", - "uri": "ts-seat-service/api/v1/seatservice/seats/left_tickets", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "seat.controller.SeatController.getLeftTicketOfInterval", - "endpointMsName": "ts-seat-service", - "targetEndpointUri": "/api/v1/seatservice/seats/left_tickets", - "isCollection": false, - "parentMethod": "travel2.service.TravelServiceImpl.getRestTicketNumber", - "msName": "ts-travel2-service", - "restCallInClassName": "travel2.service.TravelServiceImpl" - } - ] - }, - { - "source": "ts-travel2-service", - "target": "ts-basic-service", - "requests": [ - { - "type": "POST", - "uri": "ts-basic-service/api/v1/basicservice/basic/travel", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.BasicController.queryForTravel", - "endpointMsName": "ts-basic-service", - "targetEndpointUri": "/api/v1/basicservice/basic/travel", - "isCollection": false, - "parentMethod": "travel2.service.TravelServiceImpl.getTickets", - "msName": "ts-travel2-service", - "restCallInClassName": "travel2.service.TravelServiceImpl" - }, - { - "type": "POST", - "uri": "ts-basic-service/api/v1/basicservice/basic/travels", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.BasicController.queryForTravels", - "endpointMsName": "ts-basic-service", - "targetEndpointUri": "/api/v1/basicservice/basic/travels", - "isCollection": false, - "parentMethod": "travel2.service.TravelServiceImpl.getTicketsByBatch", - "msName": "ts-travel2-service", - "restCallInClassName": "travel2.service.TravelServiceImpl" - } - ] - }, - { - "source": "ts-travel2-service", - "target": "ts-route-service", - "requests": [ - { - "type": "GET", - "uri": "ts-route-service/api/v1/routeservice/routes/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "route.controller.RouteController.queryAll", - "endpointMsName": "ts-route-service", - "targetEndpointUri": "/api/v1/routeservice/routes", - "isCollection": false, - "parentMethod": "travel2.service.TravelServiceImpl.getRouteByRouteId", - "msName": "ts-travel2-service", - "restCallInClassName": "travel2.service.TravelServiceImpl" - } - ] - }, - { - "source": "ts-preserve-other-service", - "target": "ts-order-other-service", - "requests": [ - { - "type": "POST", - "uri": "ts-order-other-service/api/v1/orderOtherService/orderOther", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "other.controller.OrderOtherController.createNewOrder", - "endpointMsName": "ts-order-other-service", - "targetEndpointUri": "/api/v1/orderOtherService/orderOther", - "isCollection": false, - "parentMethod": "preserveOther.service.PreserveOtherServiceImpl.createOrder", - "msName": "ts-preserve-other-service", - "restCallInClassName": "preserveOther.service.PreserveOtherServiceImpl" - } - ] - }, - { - "source": "ts-preserve-other-service", - "target": "ts-food-service", - "requests": [ - { - "type": "POST", - "uri": "ts-food-service/api/v1/foodservice/orders", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "foodsearch.controller.FoodController.createFoodOrder", - "endpointMsName": "ts-food-service", - "targetEndpointUri": "/api/v1/foodservice/orders", - "isCollection": false, - "parentMethod": "preserveOther.service.PreserveOtherServiceImpl.createFoodOrder", - "msName": "ts-preserve-other-service", - "restCallInClassName": "preserveOther.service.PreserveOtherServiceImpl" - } - ] - }, - { - "source": "ts-preserve-other-service", - "target": "ts-travel2-service", - "requests": [ - { - "type": "POST", - "uri": "ts-travel2-service/api/v1/travel2service/trip_detail", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "travel2.controller.Travel2Controller.getTripAllDetailInfo", - "endpointMsName": "ts-travel2-service", - "targetEndpointUri": "/api/v1/travel2service/trip_detail", - "isCollection": false, - "parentMethod": "preserveOther.service.PreserveOtherServiceImpl.getTripAllDetailInformation", - "msName": "ts-preserve-other-service", - "restCallInClassName": "preserveOther.service.PreserveOtherServiceImpl" - } - ] - }, - { - "source": "ts-preserve-other-service", - "target": "ts-basic-service", - "requests": [ - { - "type": "POST", - "uri": "ts-basic-service/api/v1/basicservice/basic/travel", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.BasicController.queryForTravel", - "endpointMsName": "ts-basic-service", - "targetEndpointUri": "/api/v1/basicservice/basic/travel", - "isCollection": false, - "parentMethod": "preserveOther.service.PreserveOtherServiceImpl.preserve", - "msName": "ts-preserve-other-service", - "restCallInClassName": "preserveOther.service.PreserveOtherServiceImpl" - } - ] - }, - { - "source": "ts-preserve-other-service", - "target": "ts-security-service", - "requests": [ - { - "type": "GET", - "uri": "ts-security-service/api/v1/securityservice/securityConfigs/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "security.controller.SecurityController.findAllSecurityConfig", - "endpointMsName": "ts-security-service", - "targetEndpointUri": "/api/v1/securityservice/securityConfigs", - "isCollection": false, - "parentMethod": "preserveOther.service.PreserveOtherServiceImpl.checkSecurity", - "msName": "ts-preserve-other-service", - "restCallInClassName": "preserveOther.service.PreserveOtherServiceImpl" - } - ] - }, - { - "source": "ts-preserve-other-service", - "target": "ts-consign-service", - "requests": [ - { - "type": "POST", - "uri": "ts-consign-service/api/v1/consignservice/consigns", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "consign.controller.ConsignController.insertConsign", - "endpointMsName": "ts-consign-service", - "targetEndpointUri": "/api/v1/consignservice/consigns", - "isCollection": false, - "parentMethod": "preserveOther.service.PreserveOtherServiceImpl.createConsign", - "msName": "ts-preserve-other-service", - "restCallInClassName": "preserveOther.service.PreserveOtherServiceImpl" - } - ] - }, - { - "source": "ts-preserve-other-service", - "target": "ts-seat-service", - "requests": [ - { - "type": "POST", - "uri": "ts-seat-service/api/v1/seatservice/seats", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "seat.controller.SeatController.create", - "endpointMsName": "ts-seat-service", - "targetEndpointUri": "/api/v1/seatservice/seats", - "isCollection": false, - "parentMethod": "preserveOther.service.PreserveOtherServiceImpl.dipatchSeat", - "msName": "ts-preserve-other-service", - "restCallInClassName": "preserveOther.service.PreserveOtherServiceImpl" - } - ] - }, - { - "source": "ts-preserve-other-service", - "target": "ts-assurance-service", - "requests": [ - { - "type": "GET", - "uri": "ts-assurance-service/api/v1/assuranceservice/assurances//", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "assurance.controller.AssuranceController.getAllAssurances", - "endpointMsName": "ts-assurance-service", - "targetEndpointUri": "/api/v1/assuranceservice/assurances", - "isCollection": false, - "parentMethod": "preserveOther.service.PreserveOtherServiceImpl.addAssuranceForOrder", - "msName": "ts-preserve-other-service", - "restCallInClassName": "preserveOther.service.PreserveOtherServiceImpl" - } - ] - }, - { - "source": "ts-preserve-service", - "target": "ts-basic-service", - "requests": [ - { - "type": "POST", - "uri": "ts-basic-service/api/v1/basicservice/basic/travel", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.BasicController.queryForTravel", - "endpointMsName": "ts-basic-service", - "targetEndpointUri": "/api/v1/basicservice/basic/travel", - "isCollection": false, - "parentMethod": "preserve.service.PreserveServiceImpl.preserve", - "msName": "ts-preserve-service", - "restCallInClassName": "preserve.service.PreserveServiceImpl" - } - ] - }, - { - "source": "ts-preserve-service", - "target": "ts-security-service", - "requests": [ - { - "type": "GET", - "uri": "ts-security-service/api/v1/securityservice/securityConfigs/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "security.controller.SecurityController.findAllSecurityConfig", - "endpointMsName": "ts-security-service", - "targetEndpointUri": "/api/v1/securityservice/securityConfigs", - "isCollection": false, - "parentMethod": "preserve.service.PreserveServiceImpl.checkSecurity", - "msName": "ts-preserve-service", - "restCallInClassName": "preserve.service.PreserveServiceImpl" - } - ] - }, - { - "source": "ts-preserve-service", - "target": "ts-assurance-service", - "requests": [ - { - "type": "GET", - "uri": "ts-assurance-service/api/v1/assuranceservice/assurances//", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "assurance.controller.AssuranceController.getAllAssurances", - "endpointMsName": "ts-assurance-service", - "targetEndpointUri": "/api/v1/assuranceservice/assurances", - "isCollection": false, - "parentMethod": "preserve.service.PreserveServiceImpl.addAssuranceForOrder", - "msName": "ts-preserve-service", - "restCallInClassName": "preserve.service.PreserveServiceImpl" - } - ] - }, - { - "source": "ts-preserve-service", - "target": "ts-consign-service", - "requests": [ - { - "type": "POST", - "uri": "ts-consign-service/api/v1/consignservice/consigns", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "consign.controller.ConsignController.insertConsign", - "endpointMsName": "ts-consign-service", - "targetEndpointUri": "/api/v1/consignservice/consigns", - "isCollection": false, - "parentMethod": "preserve.service.PreserveServiceImpl.createConsign", - "msName": "ts-preserve-service", - "restCallInClassName": "preserve.service.PreserveServiceImpl" - } - ] - }, - { - "source": "ts-preserve-service", - "target": "ts-seat-service", - "requests": [ - { - "type": "POST", - "uri": "ts-seat-service/api/v1/seatservice/seats", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "seat.controller.SeatController.create", - "endpointMsName": "ts-seat-service", - "targetEndpointUri": "/api/v1/seatservice/seats", - "isCollection": false, - "parentMethod": "preserve.service.PreserveServiceImpl.dipatchSeat", - "msName": "ts-preserve-service", - "restCallInClassName": "preserve.service.PreserveServiceImpl" - } - ] - }, - { - "source": "ts-preserve-service", - "target": "ts-travel-service", - "requests": [ - { - "type": "POST", - "uri": "ts-travel-service/api/v1/travelservice/trip_detail", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "travel.controller.TravelController.getTripAllDetailInfo", - "endpointMsName": "ts-travel-service", - "targetEndpointUri": "/api/v1/travelservice/trip_detail", - "isCollection": false, - "parentMethod": "preserve.service.PreserveServiceImpl.getTripAllDetailInformation", - "msName": "ts-preserve-service", - "restCallInClassName": "preserve.service.PreserveServiceImpl" - } - ] - }, - { - "source": "ts-preserve-service", - "target": "ts-order-service", - "requests": [ - { - "type": "POST", - "uri": "ts-order-service/api/v1/orderservice/order", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "order.controller.OrderController.createNewOrder", - "endpointMsName": "ts-order-service", - "targetEndpointUri": "/api/v1/orderservice/order", - "isCollection": false, - "parentMethod": "preserve.service.PreserveServiceImpl.createOrder", - "msName": "ts-preserve-service", - "restCallInClassName": "preserve.service.PreserveServiceImpl" - } - ] - }, - { - "source": "ts-preserve-service", - "target": "ts-food-service", - "requests": [ - { - "type": "POST", - "uri": "ts-food-service/api/v1/foodservice/orders", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "foodsearch.controller.FoodController.createFoodOrder", - "endpointMsName": "ts-food-service", - "targetEndpointUri": "/api/v1/foodservice/orders", - "isCollection": false, - "parentMethod": "preserve.service.PreserveServiceImpl.createFoodOrder", - "msName": "ts-preserve-service", - "restCallInClassName": "preserve.service.PreserveServiceImpl" - } - ] - }, - { - "source": "ts-order-other-service", - "target": "ts-station-service", - "requests": [ - { - "type": "POST", - "uri": "ts-station-service/api/v1/stationservice/stations/namelist", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.StationController.queryForNameBatch", - "endpointMsName": "ts-station-service", - "targetEndpointUri": "/api/v1/stationservice/stations/namelist", - "isCollection": false, - "parentMethod": "other.service.OrderOtherServiceImpl.queryForStationId", - "msName": "ts-order-other-service", - "restCallInClassName": "other.service.OrderOtherServiceImpl" - } - ] - }, - { - "source": "ts-admin-user-service", - "target": "ts-user-service", - "requests": [ - { - "type": "POST", - "uri": "ts-user-service/api/v1/userservice/users/register", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "user.controller.UserController.registerUser", - "endpointMsName": "ts-user-service", - "targetEndpointUri": "/api/v1/userservice/users/register", - "isCollection": false, - "parentMethod": "adminuser.service.AdminUserServiceImpl.addUser", - "msName": "ts-admin-user-service", - "restCallInClassName": "adminuser.service.AdminUserServiceImpl" - }, - { - "type": "GET", - "uri": "ts-user-service/api/v1/userservice/users", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "user.controller.UserController.getAllUser", - "endpointMsName": "ts-user-service", - "targetEndpointUri": "/api/v1/userservice/users", - "isCollection": false, - "parentMethod": "adminuser.service.AdminUserServiceImpl.getAllUsers", - "msName": "ts-admin-user-service", - "restCallInClassName": "adminuser.service.AdminUserServiceImpl" - }, - { - "type": "PUT", - "uri": "ts-user-service/api/v1/userservice/users", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "user.controller.UserController.updateUser", - "endpointMsName": "ts-user-service", - "targetEndpointUri": "/api/v1/userservice/users", - "isCollection": false, - "parentMethod": "adminuser.service.AdminUserServiceImpl.updateUser", - "msName": "ts-admin-user-service", - "restCallInClassName": "adminuser.service.AdminUserServiceImpl" - } - ] - }, - { - "source": "ts-food-service", - "target": "ts-train-food-service", - "requests": [ - { - "type": "GET", - "uri": "ts-train-food-service/api/v1/trainfoodservice/trainfoods/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "trainFood.controller.TrainFoodController.getAllTrainFood", - "endpointMsName": "ts-train-food-service", - "targetEndpointUri": "/api/v1/trainfoodservice/trainfoods", - "isCollection": false, - "parentMethod": "foodsearch.service.FoodServiceImpl.getAllFood", - "msName": "ts-food-service", - "restCallInClassName": "foodsearch.service.FoodServiceImpl" - } - ] - }, - { - "source": "ts-food-service", - "target": "ts-station-food-service", - "requests": [ - { - "type": "POST", - "uri": "ts-station-food-service/api/v1/stationfoodservice/stationfoodstores", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "food.controller.StationFoodController.getFoodStoresByStationNames", - "endpointMsName": "ts-station-food-service", - "targetEndpointUri": "/api/v1/stationfoodservice/stationfoodstores", - "isCollection": false, - "parentMethod": "foodsearch.service.FoodServiceImpl.getAllFood", - "msName": "ts-food-service", - "restCallInClassName": "foodsearch.service.FoodServiceImpl" - } - ] - }, - { - "source": "ts-admin-route-service", - "target": "ts-route-service", - "requests": [ - { - "type": "POST", - "uri": "ts-route-service/api/v1/routeservice/routes", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "route.controller.RouteController.createAndModifyRoute", - "endpointMsName": "ts-route-service", - "targetEndpointUri": "/api/v1/routeservice/routes", - "isCollection": false, - "parentMethod": "adminroute.service.AdminRouteServiceImpl.createAndModifyRoute", - "msName": "ts-admin-route-service", - "restCallInClassName": "adminroute.service.AdminRouteServiceImpl" - }, - { - "type": "GET", - "uri": "ts-route-service/api/v1/routeservice/routes", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "route.controller.RouteController.queryAll", - "endpointMsName": "ts-route-service", - "targetEndpointUri": "/api/v1/routeservice/routes", - "isCollection": false, - "parentMethod": "adminroute.service.AdminRouteServiceImpl.getAllRoutes", - "msName": "ts-admin-route-service", - "restCallInClassName": "adminroute.service.AdminRouteServiceImpl" - } - ] - }, - { - "source": "ts-admin-route-service", - "target": "ts-station-service", - "requests": [ - { - "type": "POST", - "uri": "ts-station-service/api/v1/stationservice/stations/idlist", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.StationController.queryForIdBatch", - "endpointMsName": "ts-station-service", - "targetEndpointUri": "/api/v1/stationservice/stations/idlist", - "isCollection": false, - "parentMethod": "adminroute.service.AdminRouteServiceImpl.checkStationsExists", - "msName": "ts-admin-route-service", - "restCallInClassName": "adminroute.service.AdminRouteServiceImpl" - } - ] - }, - { - "source": "ts-admin-order-service", - "target": "ts-order-service", - "requests": [ - { - "type": "POST", - "uri": "ts-order-service/api/v1/orderservice/order/admin", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "order.controller.OrderController.addcreateNewOrder", - "endpointMsName": "ts-order-service", - "targetEndpointUri": "/api/v1/orderservice/order/admin", - "isCollection": false, - "parentMethod": "adminorder.service.AdminOrderServiceImpl.addOrder", - "msName": "ts-admin-order-service", - "restCallInClassName": "adminorder.service.AdminOrderServiceImpl" - }, - { - "type": "GET", - "uri": "ts-order-service/api/v1/orderservice/order", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "order.controller.OrderController.findAllOrder", - "endpointMsName": "ts-order-service", - "targetEndpointUri": "/api/v1/orderservice/order", - "isCollection": false, - "parentMethod": "adminorder.service.AdminOrderServiceImpl.getAllOrders", - "msName": "ts-admin-order-service", - "restCallInClassName": "adminorder.service.AdminOrderServiceImpl" - }, - { - "type": "PUT", - "uri": "ts-order-service/api/v1/orderservice/order/admin", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "order.controller.OrderController.updateOrder", - "endpointMsName": "ts-order-service", - "targetEndpointUri": "/api/v1/orderservice/order/admin", - "isCollection": false, - "parentMethod": "adminorder.service.AdminOrderServiceImpl.updateOrder", - "msName": "ts-admin-order-service", - "restCallInClassName": "adminorder.service.AdminOrderServiceImpl" - } - ] - }, - { - "source": "ts-admin-order-service", - "target": "ts-order-other-service", - "requests": [ - { - "type": "PUT", - "uri": "ts-order-other-service/api/v1/orderOtherService/orderOther/admin", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "other.controller.OrderOtherController.updateOrder", - "endpointMsName": "ts-order-other-service", - "targetEndpointUri": "/api/v1/orderOtherService/orderOther/admin", - "isCollection": false, - "parentMethod": "adminorder.service.AdminOrderServiceImpl.updateOrder", - "msName": "ts-admin-order-service", - "restCallInClassName": "adminorder.service.AdminOrderServiceImpl" - }, - { - "type": "POST", - "uri": "ts-order-other-service/api/v1/orderOtherService/orderOther/admin", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "other.controller.OrderOtherController.addcreateNewOrder", - "endpointMsName": "ts-order-other-service", - "targetEndpointUri": "/api/v1/orderOtherService/orderOther/admin", - "isCollection": false, - "parentMethod": "adminorder.service.AdminOrderServiceImpl.addOrder", - "msName": "ts-admin-order-service", - "restCallInClassName": "adminorder.service.AdminOrderServiceImpl" - }, - { - "type": "GET", - "uri": "ts-order-other-service/api/v1/orderOtherService/orderOther", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "other.controller.OrderOtherController.findAllOrder", - "endpointMsName": "ts-order-other-service", - "targetEndpointUri": "/api/v1/orderOtherService/orderOther", - "isCollection": false, - "parentMethod": "adminorder.service.AdminOrderServiceImpl.getAllOrders", - "msName": "ts-admin-order-service", - "restCallInClassName": "adminorder.service.AdminOrderServiceImpl" - } - ] - }, - { - "source": "ts-admin-travel-service", - "target": "ts-travel2-service", - "requests": [ - { - "type": "GET", - "uri": "ts-travel2-service/api/v1/travel2service/admin_trip", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "travel2.controller.Travel2Controller.adminQueryAll", - "endpointMsName": "ts-travel2-service", - "targetEndpointUri": "/api/v1/travel2service/admin_trip", - "isCollection": false, - "parentMethod": "admintravel.service.AdminTravelServiceImpl.getAllTravels", - "msName": "ts-admin-travel-service", - "restCallInClassName": "admintravel.service.AdminTravelServiceImpl" - } - ] - }, - { - "source": "ts-admin-travel-service", - "target": "ts-route-service", - "requests": [ - { - "type": "GET", - "uri": "ts-route-service/api/v1/routeservice/routes/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "route.controller.RouteController.queryAll", - "endpointMsName": "ts-route-service", - "targetEndpointUri": "/api/v1/routeservice/routes", - "isCollection": false, - "parentMethod": "admintravel.service.AdminTravelServiceImpl.getRouteByRouteId", - "msName": "ts-admin-travel-service", - "restCallInClassName": "admintravel.service.AdminTravelServiceImpl" - } - ] - }, - { - "source": "ts-admin-travel-service", - "target": "ts-travel-service", - "requests": [ - { - "type": "GET", - "uri": "ts-travel-service/api/v1/travelservice/admin_trip", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "travel.controller.TravelController.adminQueryAll", - "endpointMsName": "ts-travel-service", - "targetEndpointUri": "/api/v1/travelservice/admin_trip", - "isCollection": false, - "parentMethod": "admintravel.service.AdminTravelServiceImpl.getAllTravels", - "msName": "ts-admin-travel-service", - "restCallInClassName": "admintravel.service.AdminTravelServiceImpl" - } - ] - }, - { - "source": "ts-admin-travel-service", - "target": "ts-station-service", - "requests": [ - { - "type": "POST", - "uri": "ts-station-service/api/v1/stationservice/stations/idlist", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.StationController.queryForIdBatch", - "endpointMsName": "ts-station-service", - "targetEndpointUri": "/api/v1/stationservice/stations/idlist", - "isCollection": false, - "parentMethod": "admintravel.service.AdminTravelServiceImpl.checkStationsExists", - "msName": "ts-admin-travel-service", - "restCallInClassName": "admintravel.service.AdminTravelServiceImpl" - } - ] - }, - { - "source": "ts-cancel-service", - "target": "ts-order-service", - "requests": [ - { - "type": "PUT", - "uri": "ts-order-service/api/v1/orderservice/order", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "order.controller.OrderController.saveOrderInfo", - "endpointMsName": "ts-order-service", - "targetEndpointUri": "/api/v1/orderservice/order", - "isCollection": false, - "parentMethod": "cancel.service.CancelServiceImpl.cancelFromOrder", - "msName": "ts-cancel-service", - "restCallInClassName": "cancel.service.CancelServiceImpl" - }, - { - "type": "GET", - "uri": "ts-order-service/api/v1/orderservice/order/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "order.controller.OrderController.findAllOrder", - "endpointMsName": "ts-order-service", - "targetEndpointUri": "/api/v1/orderservice/order", - "isCollection": false, - "parentMethod": "cancel.service.CancelServiceImpl.getOrderByIdFromOrder", - "msName": "ts-cancel-service", - "restCallInClassName": "cancel.service.CancelServiceImpl" - } - ] - }, - { - "source": "ts-cancel-service", - "target": "ts-notification-service", - "requests": [ - { - "type": "POST", - "uri": "ts-notification-service/api/v1/notifyservice/notification/order_cancel_success", - "requestReturn": "java.lang.Boolean", - "endpointFunction": "notification.controller.NotificationController.order_cancel_success", - "endpointMsName": "ts-notification-service", - "targetEndpointUri": "/api/v1/notifyservice/notification/order_cancel_success", - "isCollection": false, - "parentMethod": "cancel.service.CancelServiceImpl.sendEmail", - "msName": "ts-cancel-service", - "restCallInClassName": "cancel.service.CancelServiceImpl" - } - ] - }, - { - "source": "ts-cancel-service", - "target": "ts-order-other-service", - "requests": [ - { - "type": "GET", - "uri": "ts-order-other-service/api/v1/orderOtherService/orderOther/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "other.controller.OrderOtherController.findAllOrder", - "endpointMsName": "ts-order-other-service", - "targetEndpointUri": "/api/v1/orderOtherService/orderOther", - "isCollection": false, - "parentMethod": "cancel.service.CancelServiceImpl.getOrderByIdFromOrderOther", - "msName": "ts-cancel-service", - "restCallInClassName": "cancel.service.CancelServiceImpl" - }, - { - "type": "PUT", - "uri": "ts-order-other-service/api/v1/orderOtherService/orderOther", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "other.controller.OrderOtherController.saveOrderInfo", - "endpointMsName": "ts-order-other-service", - "targetEndpointUri": "/api/v1/orderOtherService/orderOther", - "isCollection": false, - "parentMethod": "cancel.service.CancelServiceImpl.cancelFromOtherOrder", - "msName": "ts-cancel-service", - "restCallInClassName": "cancel.service.CancelServiceImpl" - } - ] - }, - { - "source": "ts-basic-service", - "target": "ts-station-service", - "requests": [ - { - "type": "POST", - "uri": "ts-station-service/api/v1/stationservice/stations/idlist", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.StationController.queryForIdBatch", - "endpointMsName": "ts-station-service", - "targetEndpointUri": "/api/v1/stationservice/stations/idlist", - "isCollection": false, - "parentMethod": "fdse.microservice.service.BasicServiceImpl.checkStationsExists", - "msName": "ts-basic-service", - "restCallInClassName": "fdse.microservice.service.BasicServiceImpl" - } - ] - }, - { - "source": "ts-basic-service", - "target": "ts-route-service", - "requests": [ - { - "type": "POST", - "uri": "ts-route-service/api/v1/routeservice/routes/byIds/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "route.controller.RouteController.queryByIds", - "endpointMsName": "ts-route-service", - "targetEndpointUri": "/api/v1/routeservice/routes/byIds", - "isCollection": false, - "parentMethod": "fdse.microservice.service.BasicServiceImpl.getRoutesByRouteIds", - "msName": "ts-basic-service", - "restCallInClassName": "fdse.microservice.service.BasicServiceImpl" - }, - { - "type": "GET", - "uri": "ts-route-service/api/v1/routeservice/routes/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "route.controller.RouteController.queryAll", - "endpointMsName": "ts-route-service", - "targetEndpointUri": "/api/v1/routeservice/routes", - "isCollection": false, - "parentMethod": "fdse.microservice.service.BasicServiceImpl.getRouteByRouteId", - "msName": "ts-basic-service", - "restCallInClassName": "fdse.microservice.service.BasicServiceImpl" - } - ] - }, - { - "source": "ts-basic-service", - "target": "ts-train-service", - "requests": [ - { - "type": "POST", - "uri": "ts-train-service/api/v1/trainservice/trains/byNames", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "train.controller.TrainController.retrieveByName", - "endpointMsName": "ts-train-service", - "targetEndpointUri": "/api/v1/trainservice/trains/byNames", - "isCollection": false, - "parentMethod": "fdse.microservice.service.BasicServiceImpl.queryTrainTypeByNames", - "msName": "ts-basic-service", - "restCallInClassName": "fdse.microservice.service.BasicServiceImpl" - } - ] - }, - { - "source": "ts-basic-service", - "target": "ts-price-service", - "requests": [ - { - "type": "POST", - "uri": "ts-price-service/api/v1/priceservice/prices/byRouteIdsAndTrainTypes", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "price.controller.PriceController.query", - "endpointMsName": "ts-price-service", - "targetEndpointUri": "/api/v1/priceservice/prices/byRouteIdsAndTrainTypes", - "isCollection": false, - "parentMethod": "fdse.microservice.service.BasicServiceImpl.queryPriceConfigByRouteIdsAndTrainTypes", - "msName": "ts-basic-service", - "restCallInClassName": "fdse.microservice.service.BasicServiceImpl" - } - ] - }, - { - "source": "ts-route-plan-service", - "target": "ts-travel2-service", - "requests": [ - { - "type": "POST", - "uri": "ts-travel2-service/api/v1/travel2service/trips/left", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "travel2.controller.Travel2Controller.queryInfo", - "endpointMsName": "ts-travel2-service", - "targetEndpointUri": "/api/v1/travel2service/trips/left", - "isCollection": false, - "parentMethod": "plan.service.RoutePlanServiceImpl.getTripFromNormalTrainTravelService", - "msName": "ts-route-plan-service", - "restCallInClassName": "plan.service.RoutePlanServiceImpl" - }, - { - "type": "POST", - "uri": "ts-travel2-service/api/v1/travel2service/trips/routes", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "travel2.controller.Travel2Controller.getTripsByRouteId", - "endpointMsName": "ts-travel2-service", - "targetEndpointUri": "/api/v1/travel2service/trips/routes", - "isCollection": false, - "parentMethod": "plan.service.RoutePlanServiceImpl.searchMinStopStations", - "msName": "ts-route-plan-service", - "restCallInClassName": "plan.service.RoutePlanServiceImpl" - } - ] - }, - { - "source": "ts-route-plan-service", - "target": "ts-travel-service", - "requests": [ - { - "type": "POST", - "uri": "ts-travel-service/api/v1/travelservice/trips/left", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "travel.controller.TravelController.queryInfo", - "endpointMsName": "ts-travel-service", - "targetEndpointUri": "/api/v1/travelservice/trips/left", - "isCollection": false, - "parentMethod": "plan.service.RoutePlanServiceImpl.getTripFromHighSpeedTravelServive", - "msName": "ts-route-plan-service", - "restCallInClassName": "plan.service.RoutePlanServiceImpl" - }, - { - "type": "POST", - "uri": "ts-travel-service/api/v1/travelservice/trips/routes", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "travel.controller.TravelController.getTripsByRouteId", - "endpointMsName": "ts-travel-service", - "targetEndpointUri": "/api/v1/travelservice/trips/routes", - "isCollection": false, - "parentMethod": "plan.service.RoutePlanServiceImpl.searchMinStopStations", - "msName": "ts-route-plan-service", - "restCallInClassName": "plan.service.RoutePlanServiceImpl" - } - ] - }, - { - "source": "ts-route-plan-service", - "target": "ts-route-service", - "requests": [ - { - "type": "GET", - "uri": "ts-route-service/api/v1/routeservice/routes/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "route.controller.RouteController.queryAll", - "endpointMsName": "ts-route-service", - "targetEndpointUri": "/api/v1/routeservice/routes", - "isCollection": false, - "parentMethod": "plan.service.RoutePlanServiceImpl.getRouteByRouteId", - "msName": "ts-route-plan-service", - "restCallInClassName": "plan.service.RoutePlanServiceImpl" - } - ] - }, - { - "source": "ts-rebook-service", - "target": "ts-inside-payment-service", - "requests": [ - { - "type": "POST", - "uri": "ts-inside-payment-service/api/v1/inside_pay_service/inside_payment/difference", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "inside_payment.controller.InsidePaymentController.payDifference", - "endpointMsName": "ts-inside-payment-service", - "targetEndpointUri": "/api/v1/inside_pay_service/inside_payment/difference", - "isCollection": false, - "parentMethod": "rebook.service.RebookServiceImpl.payDifferentMoney", - "msName": "ts-rebook-service", - "restCallInClassName": "rebook.service.RebookServiceImpl" - } - ] - }, - { - "source": "ts-rebook-service", - "target": "ts-route-service", - "requests": [ - { - "type": "GET", - "uri": "ts-route-service/api/v1/routeservice/routes/", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "route.controller.RouteController.queryAll", - "endpointMsName": "ts-route-service", - "targetEndpointUri": "/api/v1/routeservice/routes", - "isCollection": false, - "parentMethod": "rebook.service.RebookServiceImpl.getRouteByRouteId", - "msName": "ts-rebook-service", - "restCallInClassName": "rebook.service.RebookServiceImpl" - } - ] - }, - { - "source": "ts-rebook-service", - "target": "ts-seat-service", - "requests": [ - { - "type": "POST", - "uri": "ts-seat-service/api/v1/seatservice/seats", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "seat.controller.SeatController.create", - "endpointMsName": "ts-seat-service", - "targetEndpointUri": "/api/v1/seatservice/seats", - "isCollection": false, - "parentMethod": "rebook.service.RebookServiceImpl.dipatchSeat", - "msName": "ts-rebook-service", - "restCallInClassName": "rebook.service.RebookServiceImpl" - } - ] - }, - { - "source": "ts-inside-payment-service", - "target": "ts-payment-service", - "requests": [ - { - "type": "POST", - "uri": "ts-payment-service/api/v1/paymentservice/payment", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "com.trainticket.controller.PaymentController.pay", - "endpointMsName": "ts-payment-service", - "targetEndpointUri": "/api/v1/paymentservice/payment", - "isCollection": false, - "parentMethod": "inside_payment.service.InsidePaymentServiceImpl.payDifference", - "msName": "ts-inside-payment-service", - "restCallInClassName": "inside_payment.service.InsidePaymentServiceImpl" - }, - { - "type": "POST", - "uri": "ts-payment-service/api/v1/paymentservice/payment", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "com.trainticket.controller.PaymentController.pay", - "endpointMsName": "ts-payment-service", - "targetEndpointUri": "/api/v1/paymentservice/payment", - "isCollection": false, - "parentMethod": "inside_payment.service.InsidePaymentServiceImpl.pay", - "msName": "ts-inside-payment-service", - "restCallInClassName": "inside_payment.service.InsidePaymentServiceImpl" - } - ] - }, - { - "source": "ts-admin-basic-info-service", - "target": "ts-station-service", - "requests": [ - { - "type": "GET", - "uri": "ts-station-service/api/v1/stationservice/stations", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.StationController.query", - "endpointMsName": "ts-station-service", - "targetEndpointUri": "/api/v1/stationservice/stations", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.getAllStations", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - }, - { - "type": "POST", - "uri": "ts-station-service/api/v1/stationservice/stations", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.StationController.create", - "endpointMsName": "ts-station-service", - "targetEndpointUri": "/api/v1/stationservice/stations", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.addStation", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - }, - { - "type": "PUT", - "uri": "ts-station-service/api/v1/stationservice/stations", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.StationController.update", - "endpointMsName": "ts-station-service", - "targetEndpointUri": "/api/v1/stationservice/stations", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.modifyStation", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - } - ] - }, - { - "source": "ts-admin-basic-info-service", - "target": "ts-price-service", - "requests": [ - { - "type": "PUT", - "uri": "ts-price-service/api/v1/priceservice/prices", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "price.controller.PriceController.update", - "endpointMsName": "ts-price-service", - "targetEndpointUri": "/api/v1/priceservice/prices", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.modifyPrice", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - }, - { - "type": "GET", - "uri": "ts-price-service/api/v1/priceservice/prices", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "price.controller.PriceController.queryAll", - "endpointMsName": "ts-price-service", - "targetEndpointUri": "/api/v1/priceservice/prices", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.getAllPrices", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - }, - { - "type": "POST", - "uri": "ts-price-service/api/v1/priceservice/prices", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "price.controller.PriceController.create", - "endpointMsName": "ts-price-service", - "targetEndpointUri": "/api/v1/priceservice/prices", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.addPrice", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - } - ] - }, - { - "source": "ts-admin-basic-info-service", - "target": "ts-contacts-service", - "requests": [ - { - "type": "POST", - "uri": "ts-contacts-service/api/v1/contactservice/contacts/admin", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "contacts.controller.ContactsController.createNewContactsAdmin", - "endpointMsName": "ts-contacts-service", - "targetEndpointUri": "api/v1/contactservice/contacts/admin", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.addContact", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - } - ] - }, - { - "source": "ts-admin-basic-info-service", - "target": "ts-config-service", - "requests": [ - { - "type": "POST", - "uri": "ts-config-service/api/v1/configservice/configs", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "config.controller.ConfigController.createConfig", - "endpointMsName": "ts-config-service", - "targetEndpointUri": "api/v1/configservice/configs", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.addConfig", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - }, - { - "type": "PUT", - "uri": "ts-config-service/api/v1/configservice/configs", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "config.controller.ConfigController.updateConfig", - "endpointMsName": "ts-config-service", - "targetEndpointUri": "api/v1/configservice/configs", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.modifyConfig", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - }, - { - "type": "GET", - "uri": "ts-config-service/api/v1/configservice/configs", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "config.controller.ConfigController.queryAll", - "endpointMsName": "ts-config-service", - "targetEndpointUri": "api/v1/configservice/configs", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.getAllConfigs", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - } - ] - }, - { - "source": "ts-admin-basic-info-service", - "target": "ts-train-service", - "requests": [ - { - "type": "POST", - "uri": "ts-train-service/api/v1/trainservice/trains", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "train.controller.TrainController.create", - "endpointMsName": "ts-train-service", - "targetEndpointUri": "/api/v1/trainservice/trains", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.addTrain", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - }, - { - "type": "PUT", - "uri": "ts-train-service/api/v1/trainservice/trains", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "train.controller.TrainController.update", - "endpointMsName": "ts-train-service", - "targetEndpointUri": "/api/v1/trainservice/trains", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.modifyTrain", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - }, - { - "type": "GET", - "uri": "ts-train-service/api/v1/trainservice/trains", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "train.controller.TrainController.query", - "endpointMsName": "ts-train-service", - "targetEndpointUri": "/api/v1/trainservice/trains", - "isCollection": false, - "parentMethod": "adminbasic.service.AdminBasicInfoServiceImpl.getAllTrains", - "msName": "ts-admin-basic-info-service", - "restCallInClassName": "adminbasic.service.AdminBasicInfoServiceImpl" - } - ] - }, - { - "source": "ts-order-service", - "target": "ts-station-service", - "requests": [ - { - "type": "POST", - "uri": "ts-station-service/api/v1/stationservice/stations/namelist", - "requestReturn": "org.springframework.http.HttpEntity", - "endpointFunction": "fdse.microservice.controller.StationController.queryForNameBatch", - "endpointMsName": "ts-station-service", - "targetEndpointUri": "/api/v1/stationservice/stations/namelist", - "isCollection": false, - "parentMethod": "order.service.OrderServiceImpl.queryForStationId", - "msName": "ts-order-service", - "restCallInClassName": "order.service.OrderServiceImpl" - } - ] - } - ] -} \ No newline at end of file diff --git a/frontend/src/data/contextMap.json b/frontend/src/data/entities.json similarity index 90% rename from frontend/src/data/contextMap.json rename to frontend/src/data/entities.json index 49da76e..3411875 100644 --- a/frontend/src/data/contextMap.json +++ b/frontend/src/data/entities.json @@ -1,321 +1,315 @@ { "nodes": [ { - "msName": "ts-common", - "nodeName": "Account", - "nodeFullName": "Account", + "msName": "ts-cancel-service", + "nodeName": "GetOrderByIdInfo", + "nodeFullName": "GetOrderByIdInfo", "fields": [ + { + "fieldName": "orderId", + "fieldFullName": "orderId", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + } ] }, { - "msName": "ts-common", - "nodeName": "AdminTrip", - "nodeFullName": "AdminTrip", + "msName": "ts-cancel-service", + "nodeName": "GetAccountByIdResult", + "nodeFullName": "GetAccountByIdResult", "fields": [ + { + "fieldName": "message", + "fieldFullName": "message", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "status", + "fieldFullName": "status", + "fieldType": "boolean", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "account", + "fieldFullName": "account", + "fieldType": "Account", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "Account", + "isCollection": false + } ] }, { - "msName": "ts-common", - "nodeName": "Assurance", - "nodeFullName": "Assurance", + "msName": "ts-cancel-service", + "nodeName": "GetAccountByIdInfo", + "nodeFullName": "GetAccountByIdInfo", "fields": [ + { + "fieldName": "accountId", + "fieldFullName": "accountId", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + } ] - }, - { - "msName": "ts-common", - "nodeName": "AssuranceType", - "nodeFullName": "AssuranceType", + }, { + "msName": "ts-consign-service", + "nodeName": "ConsignRecord", + "nodeFullName": "ConsignRecord", "fields": [ + { + "fieldName": "accountId", + "fieldFullName": "accountId", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "phone", + "fieldFullName": "phone", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "handleDate", + "fieldFullName": "handleDate", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "consignee", + "fieldFullName": "consignee", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "id", + "fieldFullName": "id", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Id" + }, + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "orderId", + "fieldFullName": "orderId", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "weight", + "fieldFullName": "weight", + "fieldType": "double", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "targetDate", + "fieldFullName": "targetDate", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "price", + "fieldFullName": "price", + "fieldType": "double", + "fieldAnnotations": [ + { + "annotation": "@Column" + } + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "from", + "fieldFullName": "from", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "to", + "fieldFullName": "to", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + } ] }, { - "msName": "ts-common", - "nodeName": "Config", - "nodeFullName": "Config", + "msName": "ts-consign-service", + "nodeName": "InsertConsignRecordResult", + "nodeFullName": "InsertConsignRecordResult", "fields": [ + { + "fieldName": "message", + "fieldFullName": "message", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "status", + "fieldFullName": "status", + "fieldType": "boolean", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + } ] }, { - "msName": "ts-common", + "msName": "ts-consign-service", "nodeName": "Consign", "nodeFullName": "Consign", "fields": [ + { + "fieldName": "id", + "fieldFullName": "id", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Id" + }, + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + } ] }, { - "msName": "ts-common", - "nodeName": "Contacts", - "nodeFullName": "Contacts", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "DocumentType", - "nodeFullName": "DocumentType", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "Food", - "nodeFullName": "Food", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "FoodOrder", - "nodeFullName": "FoodOrder", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "Gender", - "nodeFullName": "Gender", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "LeftTicketInfo", - "nodeFullName": "LeftTicketInfo", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "NotifyInfo", - "nodeFullName": "NotifyInfo", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "Order", - "nodeFullName": "Order", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "OrderAlterInfo", - "nodeFullName": "OrderAlterInfo", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "OrderSecurity", - "nodeFullName": "OrderSecurity", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "OrderStatus", - "nodeFullName": "OrderStatus", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "OrderTicketsInfo", - "nodeFullName": "OrderTicketsInfo", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "PaymentDifferenceInfo", - "nodeFullName": "PaymentDifferenceInfo", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "PriceConfig", - "nodeFullName": "PriceConfig", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "Route", - "nodeFullName": "Route", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "RouteInfo", - "nodeFullName": "RouteInfo", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "RoutePlanInfo", - "nodeFullName": "RoutePlanInfo", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "RoutePlanResultUnit", - "nodeFullName": "RoutePlanResultUnit", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "Seat", - "nodeFullName": "Seat", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "SeatClass", - "nodeFullName": "SeatClass", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "SoldTicket", - "nodeFullName": "SoldTicket", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "Station", - "nodeFullName": "Station", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "StationFoodStore", - "nodeFullName": "StationFoodStore", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "Ticket", - "nodeFullName": "Ticket", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "TrainFood", - "nodeFullName": "TrainFood", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "TrainType", - "nodeFullName": "TrainType", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "Travel", - "nodeFullName": "Travel", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "TravelInfo", - "nodeFullName": "TravelInfo", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "TravelResult", - "nodeFullName": "TravelResult", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "Trip", - "nodeFullName": "Trip", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "TripAllDetail", - "nodeFullName": "TripAllDetail", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "TripAllDetailInfo", - "nodeFullName": "TripAllDetailInfo", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "TripId", - "nodeFullName": "TripId", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "TripInfo", - "nodeFullName": "TripInfo", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "TripResponse", - "nodeFullName": "TripResponse", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "Type", - "nodeFullName": "Type", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "User", - "nodeFullName": "User", - "fields": [ - ] - }, - { - "msName": "ts-common", - "nodeName": "VerifyResult", - "nodeFullName": "VerifyResult", + "msName": "ts-travel-plan-service", + "nodeName": "TransferTravelResult", + "nodeFullName": "TransferTravelResult", "fields": [ + { + "fieldName": "secondSectionResult", + "fieldFullName": "secondSectionResult", + "fieldType": "List", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "List", + "isCollection": true + }, + { + "fieldName": "firstSectionResult", + "fieldFullName": "firstSectionResult", + "fieldType": "List", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "List", + "isCollection": true + } ] }, { - "msName": "ts-auth-service", - "nodeName": "User", - "nodeFullName": "User", + "msName": "ts-travel-plan-service", + "nodeName": "TransferTravelInfo", + "nodeFullName": "TransferTravelInfo", "fields": [ { - "fieldName": "password", - "fieldFullName": "password", + "fieldName": "travelDate", + "fieldFullName": "travelDate", "fieldType": "String", "fieldAnnotations": [ @@ -325,45 +319,44 @@ "isCollection": false }, { - "fieldName": "roles", - "fieldFullName": "roles", - "fieldType": "Set", + "fieldName": "startStation", + "fieldFullName": "startStation", + "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@ElementCollection" - }, - { - "annotation": "@CollectionTable" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "Set", - "isCollection": true + "fieldEntityRefName": "String", + "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "viaStation", + "fieldFullName": "viaStation", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "username", - "fieldFullName": "username", + "fieldName": "endStation", + "fieldFullName": "endStation", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "trainType", + "fieldFullName": "trainType", + "fieldType": "String", + "fieldAnnotations": [ + ], "fieldIsReference": true, "fieldEntityRefName": "String", @@ -372,13 +365,13 @@ ] }, { - "msName": "ts-auth-service", - "nodeName": "TokenDto", - "nodeFullName": "TokenDto", + "msName": "ts-travel-plan-service", + "nodeName": "TravelAdvanceResultUnit", + "nodeFullName": "TravelAdvanceResultUnit", "fields": [ { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "priceForFirstClassSeat", + "fieldFullName": "priceForFirstClassSeat", "fieldType": "String", "fieldAnnotations": [ @@ -388,8 +381,8 @@ "isCollection": false }, { - "fieldName": "username", - "fieldFullName": "username", + "fieldName": "startStation", + "fieldFullName": "startStation", "fieldType": "String", "fieldAnnotations": [ @@ -399,8 +392,30 @@ "isCollection": false }, { - "fieldName": "token", - "fieldFullName": "token", + "fieldName": "stopStations", + "fieldFullName": "stopStations", + "fieldType": "List", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "List", + "isCollection": true + }, + { + "fieldName": "numberOfRestTicketSecondClass", + "fieldFullName": "numberOfRestTicketSecondClass", + "fieldType": "int", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "priceForSecondClassSeat", + "fieldFullName": "priceForSecondClassSeat", "fieldType": "String", "fieldAnnotations": [ @@ -408,17 +423,10 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-auth-service", - "nodeName": "BasicAuthDto", - "nodeFullName": "BasicAuthDto", - "fields": [ + }, { - "fieldName": "password", - "fieldFullName": "password", + "fieldName": "startTime", + "fieldFullName": "startTime", "fieldType": "String", "fieldAnnotations": [ @@ -428,8 +436,19 @@ "isCollection": false }, { - "fieldName": "verificationCode", - "fieldFullName": "verificationCode", + "fieldName": "numberOfRestTicketFirstClass", + "fieldFullName": "numberOfRestTicketFirstClass", + "fieldType": "int", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "endStation", + "fieldFullName": "endStation", "fieldType": "String", "fieldAnnotations": [ @@ -439,8 +458,30 @@ "isCollection": false }, { - "fieldName": "username", - "fieldFullName": "username", + "fieldName": "trainTypeId", + "fieldFullName": "trainTypeId", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "tripId", + "fieldFullName": "tripId", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "endTime", + "fieldFullName": "endTime", "fieldType": "String", "fieldAnnotations": [ @@ -452,13 +493,24 @@ ] }, { - "msName": "ts-auth-service", - "nodeName": "AuthDto", - "nodeFullName": "AuthDto", + "msName": "ts-admin-basic-info-service", + "nodeName": "PriceInfo", + "nodeFullName": "PriceInfo", "fields": [ { - "fieldName": "password", - "fieldFullName": "password", + "fieldName": "basicPriceRate", + "fieldFullName": "basicPriceRate", + "fieldType": "double", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "trainType", + "fieldFullName": "trainType", "fieldType": "String", "fieldAnnotations": [ @@ -468,8 +520,8 @@ "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "routeId", + "fieldFullName": "routeId", "fieldType": "String", "fieldAnnotations": [ @@ -479,8 +531,8 @@ "isCollection": false }, { - "fieldName": "userName", - "fieldFullName": "userName", + "fieldName": "id", + "fieldFullName": "id", "fieldType": "String", "fieldAnnotations": [ @@ -488,68 +540,100 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false + }, + { + "fieldName": "firstClassPriceRate", + "fieldFullName": "firstClassPriceRate", + "fieldType": "double", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false } ] }, { - "msName": "ts-travel-service", - "nodeName": "AdminTrip", - "nodeFullName": "AdminTrip", + "msName": "ts-order-service", + "nodeName": "OrderAlterInfo", + "nodeFullName": "OrderAlterInfo", "fields": [ { - "fieldName": "route", - "fieldFullName": "route", - "fieldType": "Route", + "fieldName": "loginToken", + "fieldFullName": "loginToken", + "fieldType": "String", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "Route", + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "trainType", - "fieldFullName": "trainType", - "fieldType": "TrainType", + "fieldName": "previousOrderId", + "fieldFullName": "previousOrderId", + "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, - "fieldEntityRefName": "TrainType", + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "trip", - "fieldFullName": "trip", - "fieldType": "Trip", + "fieldName": "accountId", + "fieldFullName": "accountId", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "newOrderInfo", + "fieldFullName": "newOrderInfo", + "fieldType": "Order", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "Trip", + "fieldEntityRefName": "Order", "isCollection": false } ] }, { - "msName": "ts-travel-service", - "nodeName": "Travel", - "nodeFullName": "Travel", + "msName": "ts-order-service", + "nodeName": "OrderInfo", + "nodeFullName": "OrderInfo", "fields": [ { - "fieldName": "trip", - "fieldFullName": "trip", - "fieldType": "Trip", + "fieldName": "travelDateStart", + "fieldFullName": "travelDateStart", + "fieldType": "String", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "Trip", + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "departureTime", - "fieldFullName": "departureTime", + "fieldName": "boughtDateEnd", + "fieldFullName": "boughtDateEnd", "fieldType": "String", "fieldAnnotations": [ @@ -559,8 +643,19 @@ "isCollection": false }, { - "fieldName": "startPlace", - "fieldFullName": "startPlace", + "fieldName": "enableBoughtDateQuery", + "fieldFullName": "enableBoughtDateQuery", + "fieldType": "boolean", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "travelDateEnd", + "fieldFullName": "travelDateEnd", "fieldType": "String", "fieldAnnotations": [ @@ -570,8 +665,8 @@ "isCollection": false }, { - "fieldName": "endPlace", - "fieldFullName": "endPlace", + "fieldName": "loginId", + "fieldFullName": "loginId", "fieldType": "String", "fieldAnnotations": [ @@ -579,30 +674,32 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-travel-service", - "nodeName": "Trip", - "nodeFullName": "Trip", - "fields": [ + }, { - "fieldName": "tripId", - "fieldFullName": "tripId", - "fieldType": "TripId", + "fieldName": "state", + "fieldFullName": "state", + "fieldType": "int", "fieldAnnotations": [ - { - "annotation": "@Embedded" - } + ], - "fieldIsReference": true, - "fieldEntityRefName": "TripId", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "terminalStationName", - "fieldFullName": "terminalStationName", + "fieldName": "enableTravelDateQuery", + "fieldFullName": "enableTravelDateQuery", + "fieldType": "boolean", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "boughtDateStart", + "fieldFullName": "boughtDateStart", "fieldType": "String", "fieldAnnotations": [ @@ -612,8 +709,26 @@ "isCollection": false }, { - "fieldName": "startTime", - "fieldFullName": "startTime", + "fieldName": "enableStateQuery", + "fieldFullName": "enableStateQuery", + "fieldType": "boolean", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + } + ] + }, + { + "msName": "ts-order-service", + "nodeName": "Order", + "nodeFullName": "Order", + "fields": [ + { + "fieldName": "contactsDocumentNumber", + "fieldFullName": "contactsDocumentNumber", "fieldType": "String", "fieldAnnotations": [ @@ -623,8 +738,8 @@ "isCollection": false }, { - "fieldName": "trainTypeName", - "fieldFullName": "trainTypeName", + "fieldName": "trainNumber", + "fieldFullName": "trainNumber", "fieldType": "String", "fieldAnnotations": [ @@ -634,8 +749,8 @@ "isCollection": false }, { - "fieldName": "startStationName", - "fieldFullName": "startStationName", + "fieldName": "seatNumber", + "fieldFullName": "seatNumber", "fieldType": "String", "fieldAnnotations": [ @@ -645,8 +760,8 @@ "isCollection": false }, { - "fieldName": "routeId", - "fieldFullName": "routeId", + "fieldName": "contactsName", + "fieldFullName": "contactsName", "fieldType": "String", "fieldAnnotations": [ @@ -656,8 +771,8 @@ "isCollection": false }, { - "fieldName": "stationsName", - "fieldFullName": "stationsName", + "fieldName": "travelTime", + "fieldFullName": "travelTime", "fieldType": "String", "fieldAnnotations": [ @@ -686,55 +801,45 @@ "isCollection": false }, { - "fieldName": "endTime", - "fieldFullName": "endTime", + "fieldName": "to", + "fieldFullName": "to", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-travel-service", - "nodeName": "TripAllDetail", - "nodeFullName": "TripAllDetail", - "fields": [ + }, { - "fieldName": "tripResponse", - "fieldFullName": "tripResponse", - "fieldType": "TripResponse", + "fieldName": "accountId", + "fieldFullName": "accountId", + "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, - "fieldEntityRefName": "TripResponse", + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "trip", - "fieldFullName": "trip", - "fieldType": "Trip", + "fieldName": "travelDate", + "fieldFullName": "travelDate", + "fieldType": "String", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "Trip", + "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-security-service", - "nodeName": "SecurityConfig", - "nodeFullName": "SecurityConfig", - "fields": [ + }, { - "fieldName": "description", - "fieldFullName": "description", + "fieldName": "price", + "fieldFullName": "price", "fieldType": "String", "fieldAnnotations": [ @@ -744,19 +849,30 @@ "isCollection": false }, { - "fieldName": "name", - "fieldFullName": "name", - "fieldType": "String", + "fieldName": "documentType", + "fieldFullName": "documentType", + "fieldType": "int", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "value", - "fieldFullName": "value", + "fieldName": "seatClass", + "fieldFullName": "seatClass", + "fieldType": "int", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "boughtDate", + "fieldFullName": "boughtDate", "fieldType": "String", "fieldAnnotations": [ @@ -766,16 +882,32 @@ "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "coachNumber", + "fieldFullName": "coachNumber", + "fieldType": "int", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "status", + "fieldFullName": "status", + "fieldType": "int", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "from", + "fieldFullName": "from", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, { "annotation": "@Column" } @@ -785,15 +917,14 @@ "isCollection": false } ] - }, - { - "msName": "ts-wait-order-service", - "nodeName": "WaitListOrderVO", - "nodeFullName": "WaitListOrderVO", + }, { + "msName": "ts-auth-service", + "nodeName": "User", + "nodeFullName": "User", "fields": [ { - "fieldName": "price", - "fieldFullName": "price", + "fieldName": "password", + "fieldFullName": "password", "fieldType": "String", "fieldAnnotations": [ @@ -803,52 +934,60 @@ "isCollection": false }, { - "fieldName": "contactsId", - "fieldFullName": "contactsId", - "fieldType": "String", + "fieldName": "roles", + "fieldFullName": "roles", + "fieldType": "Set", "fieldAnnotations": [ - + { + "annotation": "@ElementCollection" + }, + { + "annotation": "@CollectionTable" + } ], "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false + "fieldEntityRefName": "Set", + "isCollection": true }, { - "fieldName": "date", - "fieldFullName": "date", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, - { - "fieldName": "seatType", - "fieldFullName": "seatType", - "fieldType": "int", - "fieldAnnotations": [ - - ], - "fieldIsReference": false, - "fieldEntityRefName": "null", - "isCollection": false - }, - { - "fieldName": "to", - "fieldFullName": "to", + { + "fieldName": "username", + "fieldFullName": "username", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-auth-service", + "nodeName": "TokenDto", + "nodeFullName": "TokenDto", + "fields": [ { - "fieldName": "accountId", - "fieldFullName": "accountId", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ @@ -858,8 +997,8 @@ "isCollection": false }, { - "fieldName": "tripId", - "fieldFullName": "tripId", + "fieldName": "username", + "fieldFullName": "username", "fieldType": "String", "fieldAnnotations": [ @@ -869,8 +1008,8 @@ "isCollection": false }, { - "fieldName": "from", - "fieldFullName": "from", + "fieldName": "token", + "fieldFullName": "token", "fieldType": "String", "fieldAnnotations": [ @@ -882,13 +1021,13 @@ ] }, { - "msName": "ts-wait-order-service", - "nodeName": "WaitListOrder", - "nodeFullName": "WaitListOrder", + "msName": "ts-auth-service", + "nodeName": "BasicAuthDto", + "nodeFullName": "BasicAuthDto", "fields": [ { - "fieldName": "contactsDocumentNumber", - "fieldFullName": "contactsDocumentNumber", + "fieldName": "password", + "fieldFullName": "password", "fieldType": "String", "fieldAnnotations": [ @@ -898,8 +1037,8 @@ "isCollection": false }, { - "fieldName": "createdTime", - "fieldFullName": "createdTime", + "fieldName": "verificationCode", + "fieldFullName": "verificationCode", "fieldType": "String", "fieldAnnotations": [ @@ -909,8 +1048,8 @@ "isCollection": false }, { - "fieldName": "trainNumber", - "fieldFullName": "trainNumber", + "fieldName": "username", + "fieldFullName": "username", "fieldType": "String", "fieldAnnotations": [ @@ -918,10 +1057,17 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-auth-service", + "nodeName": "AuthDto", + "nodeFullName": "AuthDto", + "fields": [ { - "fieldName": "waitUtilTime", - "fieldFullName": "waitUtilTime", + "fieldName": "password", + "fieldFullName": "password", "fieldType": "String", "fieldAnnotations": [ @@ -931,8 +1077,8 @@ "isCollection": false }, { - "fieldName": "contactsName", - "fieldFullName": "contactsName", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ @@ -942,19 +1088,8 @@ "isCollection": false }, { - "fieldName": "seatType", - "fieldFullName": "seatType", - "fieldType": "int", - "fieldAnnotations": [ - - ], - "fieldIsReference": false, - "fieldEntityRefName": "null", - "isCollection": false - }, - { - "fieldName": "travelTime", - "fieldFullName": "travelTime", + "fieldName": "userName", + "fieldFullName": "userName", "fieldType": "String", "fieldAnnotations": [ @@ -962,55 +1097,49 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, { + "msName": "ts-food-delivery-service", + "nodeName": "StationFoodStoreInfo", + "nodeFullName": "StationFoodStoreInfo", + "fields": [ { - "fieldName": "id", - "fieldFullName": "id", - "fieldType": "String", + "fieldName": "foodList", + "fieldFullName": "foodList", + "fieldType": "List", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false + "fieldEntityRefName": "List", + "isCollection": true }, { - "fieldName": "to", - "fieldFullName": "to", + "fieldName": "storeName", + "fieldFullName": "storeName", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "accountId", - "fieldFullName": "accountId", + "fieldName": "businessTime", + "fieldFullName": "businessTime", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "price", - "fieldFullName": "price", + "fieldName": "stationId", + "fieldFullName": "stationId", "fieldType": "String", "fieldAnnotations": [ @@ -1020,8 +1149,8 @@ "isCollection": false }, { - "fieldName": "contactsId", - "fieldFullName": "contactsId", + "fieldName": "telephone", + "fieldFullName": "telephone", "fieldType": "String", "fieldAnnotations": [ @@ -1031,113 +1160,51 @@ "isCollection": false }, { - "fieldName": "contactsDocumentType", - "fieldFullName": "contactsDocumentType", - "fieldType": "int", + "fieldName": "id", + "fieldFullName": "id", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "status", - "fieldFullName": "status", - "fieldType": "int", + "fieldName": "deliveryFee", + "fieldFullName": "deliveryFee", + "fieldType": "double", "fieldAnnotations": [ ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false - }, - { - "fieldName": "from", - "fieldFullName": "from", - "fieldType": "String", - "fieldAnnotations": [ - { - "annotation": "@Column" - } - ], - "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false } ] }, { - "msName": "ts-train-service", - "nodeName": "TrainType", - "nodeFullName": "TrainType", + "msName": "ts-food-delivery-service", + "nodeName": "SeatInfo", + "nodeFullName": "SeatInfo", "fields": [ { - "fieldName": "name", - "fieldFullName": "name", - "fieldType": "String", - "fieldAnnotations": [ - { - "annotation": "@Column" - } - ], - "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false - }, - { - "fieldName": "averageSpeed", - "fieldFullName": "averageSpeed", - "fieldType": "int", - "fieldAnnotations": [ - { - "annotation": "@Column" - } - ], - "fieldIsReference": false, - "fieldEntityRefName": "null", - "isCollection": false - }, - { - "fieldName": "confortClass", - "fieldFullName": "confortClass", - "fieldType": "int", - "fieldAnnotations": [ - { - "annotation": "@Column" - } - ], - "fieldIsReference": false, - "fieldEntityRefName": "null", - "isCollection": false - }, - { - "fieldName": "economyClass", - "fieldFullName": "economyClass", + "fieldName": "seatNo", + "fieldFullName": "seatNo", "fieldType": "int", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "orderId", + "fieldFullName": "orderId", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", @@ -1146,75 +1213,64 @@ ] }, { - "msName": "ts-travel2-service", - "nodeName": "AdminTrip", - "nodeFullName": "AdminTrip", + "msName": "ts-food-delivery-service", + "nodeName": "TripOrderInfo", + "nodeFullName": "TripOrderInfo", "fields": [ { - "fieldName": "route", - "fieldFullName": "route", - "fieldType": "Route", - "fieldAnnotations": [ - - ], - "fieldIsReference": true, - "fieldEntityRefName": "Route", - "isCollection": false - }, - { - "fieldName": "trainType", - "fieldFullName": "trainType", - "fieldType": "TrainType", + "fieldName": "orderId", + "fieldFullName": "orderId", + "fieldType": "String", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "TrainType", + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "trip", - "fieldFullName": "trip", - "fieldType": "Trip", + "fieldName": "tripId", + "fieldFullName": "tripId", + "fieldType": "String", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "Trip", + "fieldEntityRefName": "String", "isCollection": false } ] }, { - "msName": "ts-travel2-service", - "nodeName": "Travel", - "nodeFullName": "Travel", + "msName": "ts-food-delivery-service", + "nodeName": "FoodDeliveryOrder", + "nodeFullName": "FoodDeliveryOrder", "fields": [ { - "fieldName": "trip", - "fieldFullName": "trip", - "fieldType": "Trip", + "fieldName": "createdTime", + "fieldFullName": "createdTime", + "fieldType": "String", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "Trip", + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "departureTime", - "fieldFullName": "departureTime", - "fieldType": "String", + "fieldName": "seatNo", + "fieldFullName": "seatNo", + "fieldType": "int", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "startPlace", - "fieldFullName": "startPlace", + "fieldName": "stationFoodStoreId", + "fieldFullName": "stationFoodStoreId", "fieldType": "String", "fieldAnnotations": [ @@ -1224,8 +1280,8 @@ "isCollection": false }, { - "fieldName": "endPlace", - "fieldFullName": "endPlace", + "fieldName": "deliveryTime", + "fieldFullName": "deliveryTime", "fieldType": "String", "fieldAnnotations": [ @@ -1233,30 +1289,23 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-travel2-service", - "nodeName": "Trip", - "nodeFullName": "Trip", - "fields": [ + }, { - "fieldName": "tripId", - "fieldFullName": "tripId", - "fieldType": "TripId", + "fieldName": "foodList", + "fieldFullName": "foodList", + "fieldType": "List", "fieldAnnotations": [ { - "annotation": "@Embedded" + "annotation": "@ElementCollection" } ], "fieldIsReference": true, - "fieldEntityRefName": "TripId", - "isCollection": false + "fieldEntityRefName": "List", + "isCollection": true }, { - "fieldName": "terminalStationName", - "fieldFullName": "terminalStationName", + "fieldName": "tripId", + "fieldFullName": "tripId", "fieldType": "String", "fieldAnnotations": [ @@ -1266,19 +1315,45 @@ "isCollection": false }, { - "fieldName": "startTime", - "fieldFullName": "startTime", - "fieldType": "String", + "fieldName": "deliveryFee", + "fieldFullName": "deliveryFee", + "fieldType": "double", "fieldAnnotations": [ + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "id", + "fieldFullName": "id", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Id" + }, + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-food-delivery-service", + "nodeName": "DeliveryInfo", + "nodeFullName": "DeliveryInfo", + "fields": [ { - "fieldName": "trainTypeName", - "fieldFullName": "trainTypeName", + "fieldName": "orderId", + "fieldFullName": "orderId", "fieldType": "String", "fieldAnnotations": [ @@ -1288,8 +1363,8 @@ "isCollection": false }, { - "fieldName": "startStationName", - "fieldFullName": "startStationName", + "fieldName": "deliveryTime", + "fieldFullName": "deliveryTime", "fieldType": "String", "fieldAnnotations": [ @@ -1297,40 +1372,59 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false + } + ] + }, + { + "msName": "ts-price-service", + "nodeName": "PriceConfig", + "nodeFullName": "PriceConfig", + "fields": [ + { + "fieldName": "id", + "fieldFullName": "id", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Id" + }, + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false }, { "fieldName": "routeId", "fieldFullName": "routeId", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "stationsName", - "fieldFullName": "stationsName", - "fieldType": "String", + "fieldName": "basicPriceRate", + "fieldFullName": "basicPriceRate", + "fieldType": "double", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "trainType", + "fieldFullName": "trainType", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, { "annotation": "@Column" } @@ -1340,26 +1434,26 @@ "isCollection": false }, { - "fieldName": "endTime", - "fieldFullName": "endTime", - "fieldType": "String", + "fieldName": "firstClassPriceRate", + "fieldFullName": "firstClassPriceRate", + "fieldType": "double", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false } ] }, { - "msName": "ts-notification-service", - "nodeName": "EmailProperties", - "nodeFullName": "EmailProperties", + "msName": "ts-rebook-service", + "nodeName": "RebookInfo", + "nodeFullName": "RebookInfo", "fields": [ { - "fieldName": "password", - "fieldFullName": "password", + "fieldName": "oldTripId", + "fieldFullName": "oldTripId", "fieldType": "String", "fieldAnnotations": [ @@ -1369,8 +1463,8 @@ "isCollection": false }, { - "fieldName": "port", - "fieldFullName": "port", + "fieldName": "date", + "fieldFullName": "date", "fieldType": "String", "fieldAnnotations": [ @@ -1380,8 +1474,19 @@ "isCollection": false }, { - "fieldName": "host", - "fieldFullName": "host", + "fieldName": "seatType", + "fieldFullName": "seatType", + "fieldType": "int", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "loginId", + "fieldFullName": "loginId", "fieldType": "String", "fieldAnnotations": [ @@ -1391,8 +1496,19 @@ "isCollection": false }, { - "fieldName": "username", - "fieldFullName": "username", + "fieldName": "orderId", + "fieldFullName": "orderId", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "tripId", + "fieldFullName": "tripId", "fieldType": "String", "fieldAnnotations": [ @@ -1404,13 +1520,13 @@ ] }, { - "msName": "ts-notification-service", - "nodeName": "NotifyInfo", - "nodeFullName": "NotifyInfo", + "msName": "ts-rebook-service", + "nodeName": "VerifyResult", + "nodeFullName": "VerifyResult", "fields": [ { - "fieldName": "price", - "fieldFullName": "price", + "fieldName": "message", + "fieldFullName": "message", "fieldType": "String", "fieldAnnotations": [ @@ -1420,58 +1536,72 @@ "isCollection": false }, { - "fieldName": "orderNumber", - "fieldFullName": "orderNumber", - "fieldType": "String", + "fieldName": "status", + "fieldFullName": "status", + "fieldType": "boolean", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false - }, + } + ] + }, { + "msName": "ts-train-service", + "nodeName": "TrainType", + "nodeFullName": "TrainType", + "fields": [ { - "fieldName": "startTime", - "fieldFullName": "startTime", + "fieldName": "name", + "fieldFullName": "name", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "seatNumber", - "fieldFullName": "seatNumber", - "fieldType": "String", + "fieldName": "averageSpeed", + "fieldFullName": "averageSpeed", + "fieldType": "int", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "date", - "fieldFullName": "date", - "fieldType": "String", + "fieldName": "confortClass", + "fieldFullName": "confortClass", + "fieldType": "int", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "sendStatus", - "fieldFullName": "sendStatus", - "fieldType": "Boolean", + "fieldName": "economyClass", + "fieldFullName": "economyClass", + "fieldType": "int", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], - "fieldIsReference": true, - "fieldEntityRefName": "Boolean", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { @@ -1482,6 +1612,9 @@ { "annotation": "@Id" }, + { + "annotation": "@GeneratedValue" + }, { "annotation": "@Column" } @@ -1489,10 +1622,17 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-inside-payment-service", + "nodeName": "Payment", + "nodeFullName": "Payment", + "fields": [ { - "fieldName": "email", - "fieldFullName": "email", + "fieldName": "price", + "fieldFullName": "price", "fieldType": "String", "fieldAnnotations": [ @@ -1502,70 +1642,73 @@ "isCollection": false }, { - "fieldName": "seatClass", - "fieldFullName": "seatClass", + "fieldName": "orderId", + "fieldFullName": "orderId", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "startPlace", - "fieldFullName": "startPlace", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "endPlace", - "fieldFullName": "endPlace", + "fieldName": "id", + "fieldFullName": "id", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + }, + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "username", - "fieldFullName": "username", - "fieldType": "String", + "fieldName": "type", + "fieldFullName": "type", + "fieldType": "PaymentType", "fieldAnnotations": [ - + { + "annotation": "@Enumerated" + } ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "PaymentType", "isCollection": false } ] }, { - "msName": "ts-notification-service", - "nodeName": "Mail", - "nodeFullName": "Mail", + "msName": "ts-inside-payment-service", + "nodeName": "Balance", + "nodeFullName": "Balance", "fields": [ { - "fieldName": "mailFrom", - "fieldFullName": "mailFrom", - "fieldType": "String", - "fieldAnnotations": [ - - ], - "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false - }, - { - "fieldName": "mailSubject", - "fieldFullName": "mailSubject", + "fieldName": "balance", + "fieldFullName": "balance", "fieldType": "String", "fieldAnnotations": [ @@ -1575,8 +1718,8 @@ "isCollection": false }, { - "fieldName": "mailContent", - "fieldFullName": "mailContent", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ @@ -1584,10 +1727,17 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-inside-payment-service", + "nodeName": "Money", + "nodeFullName": "Money", + "fields": [ { - "fieldName": "mailCc", - "fieldFullName": "mailCc", + "fieldName": "money", + "fieldFullName": "money", "fieldType": "String", "fieldAnnotations": [ @@ -1597,55 +1747,45 @@ "isCollection": false }, { - "fieldName": "attachments", - "fieldFullName": "attachments", - "fieldType": "List", - "fieldAnnotations": [ - - ], - "fieldIsReference": true, - "fieldEntityRefName": "List", - "isCollection": true - }, - { - "fieldName": "contentType", - "fieldFullName": "contentType", - "fieldType": "String", + "fieldName": "type", + "fieldFullName": "type", + "fieldType": "MoneyType", "fieldAnnotations": [ - + { + "annotation": "@Enumerated" + } ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "MoneyType", "isCollection": false }, { - "fieldName": "mailTo", - "fieldFullName": "mailTo", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "model", - "fieldFullName": "model", - "fieldType": "Map", - "fieldAnnotations": [ - - ], - "fieldIsReference": true, - "fieldEntityRefName": "Map", - "isCollection": true - }, - { - "fieldName": "mailBcc", - "fieldFullName": "mailBcc", + "fieldName": "id", + "fieldFullName": "id", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + }, + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", @@ -1654,13 +1794,13 @@ ] }, { - "msName": "ts-food-service", - "nodeName": "Delivery", - "nodeFullName": "Delivery", + "msName": "ts-inside-payment-service", + "nodeName": "PaymentInfo", + "nodeFullName": "PaymentInfo", "fields": [ { - "fieldName": "storeName", - "fieldFullName": "storeName", + "fieldName": "price", + "fieldFullName": "price", "fieldType": "String", "fieldAnnotations": [ @@ -1672,17 +1812,17 @@ { "fieldName": "orderId", "fieldFullName": "orderId", - "fieldType": "UUID", + "fieldType": "String", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "UUID", + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "stationName", - "fieldFullName": "stationName", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ @@ -1692,8 +1832,8 @@ "isCollection": false }, { - "fieldName": "foodName", - "fieldFullName": "foodName", + "fieldName": "tripId", + "fieldFullName": "tripId", "fieldType": "String", "fieldAnnotations": [ @@ -1705,13 +1845,13 @@ ] }, { - "msName": "ts-food-service", - "nodeName": "FoodOrder", - "nodeFullName": "FoodOrder", + "msName": "ts-inside-payment-service", + "nodeName": "PaymentType", + "nodeFullName": "PaymentType", "fields": [ { - "fieldName": "storeName", - "fieldFullName": "storeName", + "fieldName": "name", + "fieldFullName": "name", "fieldType": "String", "fieldAnnotations": [ @@ -1721,19 +1861,26 @@ "isCollection": false }, { - "fieldName": "stationName", - "fieldFullName": "stationName", - "fieldType": "String", + "fieldName": "index", + "fieldFullName": "index", + "fieldType": "int", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-inside-payment-service", + "nodeName": "MoneyType", + "nodeFullName": "MoneyType", + "fields": [ { - "fieldName": "orderId", - "fieldFullName": "orderId", + "fieldName": "name", + "fieldFullName": "name", "fieldType": "String", "fieldAnnotations": [ @@ -1743,52 +1890,51 @@ "isCollection": false }, { - "fieldName": "foodName", - "fieldFullName": "foodName", - "fieldType": "String", + "fieldName": "index", + "fieldFullName": "index", + "fieldType": "int", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-inside-payment-service", + "nodeName": "OutsidePaymentInfo", + "nodeFullName": "OutsidePaymentInfo", + "fields": [ { - "fieldName": "foodType", - "fieldFullName": "foodType", - "fieldType": "int", + "fieldName": "price", + "fieldFullName": "price", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "price", - "fieldFullName": "price", - "fieldType": "double", + "fieldName": "orderId", + "fieldFullName": "orderId", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", @@ -1797,55 +1943,42 @@ ] }, { - "msName": "ts-food-service", - "nodeName": "AllTripFood", - "nodeFullName": "AllTripFood", + "msName": "ts-inside-payment-service", + "nodeName": "AccountInfo", + "nodeFullName": "AccountInfo", "fields": [ { - "fieldName": "foodStoreListMap", - "fieldFullName": "foodStoreListMap", - "fieldType": "Map>", + "fieldName": "money", + "fieldFullName": "money", + "fieldType": "String", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "Map>", - "isCollection": true + "fieldEntityRefName": "String", + "isCollection": false }, { - "fieldName": "trainFoodList", - "fieldFullName": "trainFoodList", - "fieldType": "List", + "fieldName": "userId", + "fieldFullName": "userId", + "fieldType": "String", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "List", - "isCollection": true + "fieldEntityRefName": "String", + "isCollection": false } ] }, { - "msName": "ts-payment-service", - "nodeName": "Payment", - "nodeFullName": "Payment", + "msName": "ts-station-service", + "nodeName": "Station", + "nodeFullName": "Station", "fields": [ { - "fieldName": "orderId", - "fieldFullName": "orderId", - "fieldType": "String", - "fieldAnnotations": [ - { - "annotation": "@Column" - } - ], - "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false - }, - { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "name", + "fieldFullName": "name", "fieldType": "String", "fieldAnnotations": [ { @@ -1857,16 +1990,14 @@ "isCollection": false }, { - "fieldName": "price", - "fieldFullName": "price", - "fieldType": "String", + "fieldName": "stayTime", + "fieldFullName": "stayTime", + "fieldType": "int", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { @@ -1889,78 +2020,65 @@ "isCollection": false } ] - }, - { - "msName": "ts-payment-service", - "nodeName": "Money", - "nodeFullName": "Money", + }, { + "msName": "ts-travel2-service", + "nodeName": "AdminTrip", + "nodeFullName": "AdminTrip", "fields": [ { - "fieldName": "money", - "fieldFullName": "money", - "fieldType": "String", + "fieldName": "route", + "fieldFullName": "route", + "fieldType": "Route", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "Route", "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", - "fieldType": "String", + "fieldName": "trainType", + "fieldFullName": "trainType", + "fieldType": "TrainType", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "TrainType", "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", - "fieldType": "String", + "fieldName": "trip", + "fieldFullName": "trip", + "fieldType": "Trip", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "Trip", "isCollection": false } ] }, { - "msName": "ts-contacts-service", - "nodeName": "Contacts", - "nodeFullName": "Contacts", + "msName": "ts-travel2-service", + "nodeName": "Travel", + "nodeFullName": "Travel", "fields": [ { - "fieldName": "accountId", - "fieldFullName": "accountId", - "fieldType": "String", + "fieldName": "trip", + "fieldFullName": "trip", + "fieldType": "Trip", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "Trip", "isCollection": false }, { - "fieldName": "name", - "fieldFullName": "name", + "fieldName": "departureTime", + "fieldFullName": "departureTime", "fieldType": "String", "fieldAnnotations": [ @@ -1970,99 +2088,83 @@ "isCollection": false }, { - "fieldName": "phoneNumber", - "fieldFullName": "phoneNumber", + "fieldName": "startPlace", + "fieldFullName": "startPlace", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "endPlace", + "fieldFullName": "endPlace", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-travel2-service", + "nodeName": "Trip", + "nodeFullName": "Trip", + "fields": [ { - "fieldName": "documentType", - "fieldFullName": "documentType", - "fieldType": "int", + "fieldName": "tripId", + "fieldFullName": "tripId", + "fieldType": "TripId", "fieldAnnotations": [ { - "annotation": "@Column" + "annotation": "@Embedded" } ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "TripId", "isCollection": false }, { - "fieldName": "documentNumber", - "fieldFullName": "documentNumber", + "fieldName": "terminalStationName", + "fieldFullName": "terminalStationName", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-consign-service", - "nodeName": "ConsignRecord", - "nodeFullName": "ConsignRecord", - "fields": [ + }, { - "fieldName": "accountId", - "fieldFullName": "accountId", + "fieldName": "startTime", + "fieldFullName": "startTime", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "phone", - "fieldFullName": "phone", + "fieldName": "trainTypeName", + "fieldFullName": "trainTypeName", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "handleDate", - "fieldFullName": "handleDate", + "fieldName": "startStationName", + "fieldFullName": "startStationName", "fieldType": "String", "fieldAnnotations": [ @@ -2072,8 +2174,19 @@ "isCollection": false }, { - "fieldName": "consignee", - "fieldFullName": "consignee", + "fieldName": "routeId", + "fieldFullName": "routeId", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "stationsName", + "fieldFullName": "stationsName", "fieldType": "String", "fieldAnnotations": [ @@ -2090,6 +2203,9 @@ { "annotation": "@Id" }, + { + "annotation": "@GeneratedValue" + }, { "annotation": "@Column" } @@ -2099,8 +2215,8 @@ "isCollection": false }, { - "fieldName": "orderId", - "fieldFullName": "orderId", + "fieldName": "endTime", + "fieldFullName": "endTime", "fieldType": "String", "fieldAnnotations": [ @@ -2108,21 +2224,28 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-travel2-service", + "nodeName": "TripAllDetail", + "nodeFullName": "TripAllDetail", + "fields": [ { - "fieldName": "weight", - "fieldFullName": "weight", - "fieldType": "double", + "fieldName": "tripResponse", + "fieldFullName": "tripResponse", + "fieldType": "TripResponse", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "TripResponse", "isCollection": false }, { - "fieldName": "targetDate", - "fieldFullName": "targetDate", + "fieldName": "message", + "fieldFullName": "message", "fieldType": "String", "fieldAnnotations": [ @@ -2132,21 +2255,36 @@ "isCollection": false }, { - "fieldName": "price", - "fieldFullName": "price", - "fieldType": "double", + "fieldName": "trip", + "fieldFullName": "trip", + "fieldType": "Trip", "fieldAnnotations": [ - { - "annotation": "@Column" - } + + ], + "fieldIsReference": true, + "fieldEntityRefName": "Trip", + "isCollection": false + }, + { + "fieldName": "status", + "fieldFullName": "status", + "fieldType": "boolean", + "fieldAnnotations": [ + ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false - }, + } + ] + }, { + "msName": "ts-train-food-service", + "nodeName": "TrainFood", + "nodeFullName": "TrainFood", + "fields": [ { - "fieldName": "from", - "fieldFullName": "from", + "fieldName": "tripId", + "fieldFullName": "tripId", "fieldType": "String", "fieldAnnotations": [ { @@ -2158,25 +2296,21 @@ "isCollection": false }, { - "fieldName": "to", - "fieldFullName": "to", - "fieldType": "String", + "fieldName": "foodList", + "fieldFullName": "foodList", + "fieldType": "List", "fieldAnnotations": [ { - "annotation": "@Column" + "annotation": "@ElementCollection" + }, + { + "annotation": "@CollectionTable" } ], "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false - } - ] - }, - { - "msName": "ts-consign-service", - "nodeName": "Consign", - "nodeFullName": "Consign", - "fields": [ + "fieldEntityRefName": "List", + "isCollection": true + }, { "fieldName": "id", "fieldFullName": "id", @@ -2197,7 +2331,8 @@ "isCollection": false } ] - }, { + }, + { "msName": "ts-assurance-service", "nodeName": "AssuranceType", "nodeFullName": "AssuranceType", @@ -2388,25 +2523,124 @@ "isCollection": false } ] - }, { - "msName": "ts-admin-user-service", - "nodeName": "UserDto", - "nodeFullName": "UserDto", + }, + { + "msName": "ts-station-food-service", + "nodeName": "StationFoodStore", + "nodeFullName": "StationFoodStore", "fields": [ { - "fieldName": "documentType", - "fieldFullName": "documentType", - "fieldType": "int", + "fieldName": "storeName", + "fieldFullName": "storeName", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "businessTime", + "fieldFullName": "businessTime", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "id", + "fieldFullName": "id", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Id" + }, + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "stationName", + "fieldFullName": "stationName", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "telephone", + "fieldFullName": "telephone", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "foodList", + "fieldFullName": "foodList", + "fieldType": "List", + "fieldAnnotations": [ + { + "annotation": "@ElementCollection" + }, + { + "annotation": "@CollectionTable" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "List", + "isCollection": true + }, + { + "fieldName": "deliveryFee", + "fieldFullName": "deliveryFee", + "fieldType": "double", "fieldAnnotations": [ ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false + } + ] + }, + { + "msName": "ts-wait-order-service", + "nodeName": "WaitListOrderVO", + "nodeFullName": "WaitListOrderVO", + "fields": [ + { + "fieldName": "price", + "fieldFullName": "price", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false }, { - "fieldName": "password", - "fieldFullName": "password", + "fieldName": "contactsId", + "fieldFullName": "contactsId", "fieldType": "String", "fieldAnnotations": [ @@ -2416,8 +2650,8 @@ "isCollection": false }, { - "fieldName": "documentNum", - "fieldFullName": "documentNum", + "fieldName": "date", + "fieldFullName": "date", "fieldType": "String", "fieldAnnotations": [ @@ -2427,8 +2661,8 @@ "isCollection": false }, { - "fieldName": "gender", - "fieldFullName": "gender", + "fieldName": "seatType", + "fieldFullName": "seatType", "fieldType": "int", "fieldAnnotations": [ @@ -2438,8 +2672,8 @@ "isCollection": false }, { - "fieldName": "email", - "fieldFullName": "email", + "fieldName": "to", + "fieldFullName": "to", "fieldType": "String", "fieldAnnotations": [ @@ -2449,8 +2683,8 @@ "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "accountId", + "fieldFullName": "accountId", "fieldType": "String", "fieldAnnotations": [ @@ -2460,8 +2694,19 @@ "isCollection": false }, { - "fieldName": "userName", - "fieldFullName": "userName", + "fieldName": "tripId", + "fieldFullName": "tripId", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "from", + "fieldFullName": "from", "fieldType": "String", "fieldAnnotations": [ @@ -2473,13 +2718,13 @@ ] }, { - "msName": "ts-route-service", - "nodeName": "RouteInfo", - "nodeFullName": "RouteInfo", + "msName": "ts-wait-order-service", + "nodeName": "WaitListOrder", + "nodeFullName": "WaitListOrder", "fields": [ { - "fieldName": "distanceList", - "fieldFullName": "distanceList", + "fieldName": "contactsDocumentNumber", + "fieldFullName": "contactsDocumentNumber", "fieldType": "String", "fieldAnnotations": [ @@ -2489,8 +2734,8 @@ "isCollection": false }, { - "fieldName": "startStation", - "fieldFullName": "startStation", + "fieldName": "createdTime", + "fieldFullName": "createdTime", "fieldType": "String", "fieldAnnotations": [ @@ -2500,8 +2745,8 @@ "isCollection": false }, { - "fieldName": "endStation", - "fieldFullName": "endStation", + "fieldName": "trainNumber", + "fieldFullName": "trainNumber", "fieldType": "String", "fieldAnnotations": [ @@ -2511,8 +2756,8 @@ "isCollection": false }, { - "fieldName": "stationList", - "fieldFullName": "stationList", + "fieldName": "waitUtilTime", + "fieldFullName": "waitUtilTime", "fieldType": "String", "fieldAnnotations": [ @@ -2522,8 +2767,8 @@ "isCollection": false }, { - "fieldName": "Id", - "fieldFullName": "Id", + "fieldName": "contactsName", + "fieldFullName": "contactsName", "fieldType": "String", "fieldAnnotations": [ @@ -2531,40 +2776,28 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-route-service", - "nodeName": "Route", - "nodeFullName": "Route", - "fields": [ + }, { - "fieldName": "startStation", - "fieldFullName": "startStation", - "fieldType": "String", + "fieldName": "seatType", + "fieldFullName": "seatType", + "fieldType": "int", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "distances", - "fieldFullName": "distances", - "fieldType": "List", + "fieldName": "travelTime", + "fieldFullName": "travelTime", + "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@ElementCollection" - }, - { - "annotation": "@OrderColumn" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "List", - "isCollection": true + "fieldEntityRefName": "String", + "isCollection": false }, { "fieldName": "id", @@ -2574,6 +2807,9 @@ { "annotation": "@Id" }, + { + "annotation": "@GeneratedValue" + }, { "annotation": "@Column" } @@ -2583,53 +2819,34 @@ "isCollection": false }, { - "fieldName": "endStation", - "fieldFullName": "endStation", + "fieldName": "to", + "fieldFullName": "to", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "stations", - "fieldFullName": "stations", - "fieldType": "List", + "fieldName": "accountId", + "fieldFullName": "accountId", + "fieldType": "String", "fieldAnnotations": [ { - "annotation": "@ElementCollection" - }, - { - "annotation": "@OrderColumn" + "annotation": "@Column" } ], "fieldIsReference": true, - "fieldEntityRefName": "List", - "isCollection": true - } - ] - }, - { - "msName": "ts-user-service", - "nodeName": "UserDto", - "nodeFullName": "UserDto", - "fields": [ - { - "fieldName": "documentType", - "fieldFullName": "documentType", - "fieldType": "int", - "fieldAnnotations": [ - - ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "password", - "fieldFullName": "password", + "fieldName": "price", + "fieldFullName": "price", "fieldType": "String", "fieldAnnotations": [ @@ -2639,8 +2856,8 @@ "isCollection": false }, { - "fieldName": "documentNum", - "fieldFullName": "documentNum", + "fieldName": "contactsId", + "fieldFullName": "contactsId", "fieldType": "String", "fieldAnnotations": [ @@ -2650,8 +2867,8 @@ "isCollection": false }, { - "fieldName": "gender", - "fieldFullName": "gender", + "fieldName": "contactsDocumentType", + "fieldFullName": "contactsDocumentType", "fieldType": "int", "fieldAnnotations": [ @@ -2661,33 +2878,24 @@ "isCollection": false }, { - "fieldName": "email", - "fieldFullName": "email", - "fieldType": "String", - "fieldAnnotations": [ - - ], - "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false - }, - { - "fieldName": "userId", - "fieldFullName": "userId", - "fieldType": "String", + "fieldName": "status", + "fieldFullName": "status", + "fieldType": "int", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "userName", - "fieldFullName": "userName", + "fieldName": "from", + "fieldFullName": "from", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", @@ -2696,26 +2904,24 @@ ] }, { - "msName": "ts-user-service", - "nodeName": "User", - "nodeFullName": "User", + "msName": "ts-route-service", + "nodeName": "RouteInfo", + "nodeFullName": "RouteInfo", "fields": [ { - "fieldName": "documentNum", - "fieldFullName": "documentNum", + "fieldName": "distanceList", + "fieldFullName": "distanceList", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "password", - "fieldFullName": "password", + "fieldName": "startStation", + "fieldFullName": "startStation", "fieldType": "String", "fieldAnnotations": [ @@ -2725,19 +2931,19 @@ "isCollection": false }, { - "fieldName": "gender", - "fieldFullName": "gender", - "fieldType": "int", + "fieldName": "endStation", + "fieldFullName": "endStation", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "email", - "fieldFullName": "email", + "fieldName": "stationList", + "fieldFullName": "stationList", "fieldType": "String", "fieldAnnotations": [ @@ -2747,68 +2953,69 @@ "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "Id", + "fieldFullName": "Id", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-route-service", + "nodeName": "Route", + "nodeFullName": "Route", + "fields": [ { - "fieldName": "userName", - "fieldFullName": "userName", + "fieldName": "startStation", + "fieldFullName": "startStation", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "documentType", - "fieldFullName": "documentType", - "fieldType": "int", + "fieldName": "distances", + "fieldFullName": "distances", + "fieldType": "List", "fieldAnnotations": [ { - "annotation": "@Column" + "annotation": "@ElementCollection" + }, + { + "annotation": "@OrderColumn" } ], - "fieldIsReference": false, - "fieldEntityRefName": "null", - "isCollection": false - } - ] - }, - { - "msName": "ts-user-service", - "nodeName": "AuthDto", - "nodeFullName": "AuthDto", - "fields": [ + "fieldIsReference": true, + "fieldEntityRefName": "List", + "isCollection": true + }, { - "fieldName": "password", - "fieldFullName": "password", + "fieldName": "id", + "fieldFullName": "id", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "endStation", + "fieldFullName": "endStation", "fieldType": "String", "fieldAnnotations": [ @@ -2818,48 +3025,42 @@ "isCollection": false }, { - "fieldName": "userName", - "fieldFullName": "userName", - "fieldType": "String", + "fieldName": "stations", + "fieldFullName": "stations", + "fieldType": "List", "fieldAnnotations": [ - + { + "annotation": "@ElementCollection" + }, + { + "annotation": "@OrderColumn" + } ], "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false + "fieldEntityRefName": "List", + "isCollection": true } ] }, { - "msName": "ts-food-delivery-service", - "nodeName": "StationFoodStoreInfo", - "nodeFullName": "StationFoodStoreInfo", + "msName": "ts-user-service", + "nodeName": "UserDto", + "nodeFullName": "UserDto", "fields": [ { - "fieldName": "foodList", - "fieldFullName": "foodList", - "fieldType": "List", - "fieldAnnotations": [ - - ], - "fieldIsReference": true, - "fieldEntityRefName": "List", - "isCollection": true - }, - { - "fieldName": "storeName", - "fieldFullName": "storeName", - "fieldType": "String", + "fieldName": "documentType", + "fieldFullName": "documentType", + "fieldType": "int", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "businessTime", - "fieldFullName": "businessTime", + "fieldName": "password", + "fieldFullName": "password", "fieldType": "String", "fieldAnnotations": [ @@ -2869,8 +3070,8 @@ "isCollection": false }, { - "fieldName": "stationId", - "fieldFullName": "stationId", + "fieldName": "documentNum", + "fieldFullName": "documentNum", "fieldType": "String", "fieldAnnotations": [ @@ -2880,19 +3081,19 @@ "isCollection": false }, { - "fieldName": "telephone", - "fieldFullName": "telephone", - "fieldType": "String", + "fieldName": "gender", + "fieldFullName": "gender", + "fieldType": "int", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "email", + "fieldFullName": "email", "fieldType": "String", "fieldAnnotations": [ @@ -2902,37 +3103,19 @@ "isCollection": false }, { - "fieldName": "deliveryFee", - "fieldFullName": "deliveryFee", - "fieldType": "double", - "fieldAnnotations": [ - - ], - "fieldIsReference": false, - "fieldEntityRefName": "null", - "isCollection": false - } - ] - }, - { - "msName": "ts-food-delivery-service", - "nodeName": "SeatInfo", - "nodeFullName": "SeatInfo", - "fields": [ - { - "fieldName": "seatNo", - "fieldFullName": "seatNo", - "fieldType": "int", + "fieldName": "userId", + "fieldFullName": "userId", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "orderId", - "fieldFullName": "orderId", + "fieldName": "userName", + "fieldFullName": "userName", "fieldType": "String", "fieldAnnotations": [ @@ -2944,42 +3127,26 @@ ] }, { - "msName": "ts-food-delivery-service", - "nodeName": "TripOrderInfo", - "nodeFullName": "TripOrderInfo", + "msName": "ts-user-service", + "nodeName": "User", + "nodeFullName": "User", "fields": [ { - "fieldName": "orderId", - "fieldFullName": "orderId", + "fieldName": "documentNum", + "fieldFullName": "documentNum", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "tripId", - "fieldFullName": "tripId", - "fieldType": "String", - "fieldAnnotations": [ - - ], - "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false - } - ] - }, - { - "msName": "ts-food-delivery-service", - "nodeName": "FoodDeliveryOrder", - "nodeFullName": "FoodDeliveryOrder", - "fields": [ - { - "fieldName": "createdTime", - "fieldFullName": "createdTime", + "fieldName": "password", + "fieldFullName": "password", "fieldType": "String", "fieldAnnotations": [ @@ -2989,8 +3156,8 @@ "isCollection": false }, { - "fieldName": "seatNo", - "fieldFullName": "seatNo", + "fieldName": "gender", + "fieldFullName": "gender", "fieldType": "int", "fieldAnnotations": [ @@ -3000,8 +3167,8 @@ "isCollection": false }, { - "fieldName": "stationFoodStoreId", - "fieldFullName": "stationFoodStoreId", + "fieldName": "email", + "fieldFullName": "email", "fieldType": "String", "fieldAnnotations": [ @@ -3011,80 +3178,68 @@ "isCollection": false }, { - "fieldName": "deliveryTime", - "fieldFullName": "deliveryTime", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "foodList", - "fieldFullName": "foodList", - "fieldType": "List", + "fieldName": "userName", + "fieldFullName": "userName", + "fieldType": "String", "fieldAnnotations": [ { - "annotation": "@ElementCollection" + "annotation": "@Column" } - ], - "fieldIsReference": true, - "fieldEntityRefName": "List", - "isCollection": true - }, - { - "fieldName": "tripId", - "fieldFullName": "tripId", - "fieldType": "String", - "fieldAnnotations": [ - ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "deliveryFee", - "fieldFullName": "deliveryFee", - "fieldType": "double", + "fieldName": "documentType", + "fieldFullName": "documentType", + "fieldType": "int", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-user-service", + "nodeName": "AuthDto", + "nodeFullName": "AuthDto", + "fields": [ { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "password", + "fieldFullName": "password", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-food-delivery-service", - "nodeName": "DeliveryInfo", - "nodeFullName": "DeliveryInfo", - "fields": [ + }, { - "fieldName": "orderId", - "fieldFullName": "orderId", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ @@ -3094,8 +3249,8 @@ "isCollection": false }, { - "fieldName": "deliveryTime", - "fieldFullName": "deliveryTime", + "fieldName": "userName", + "fieldFullName": "userName", "fieldType": "String", "fieldAnnotations": [ @@ -3105,30 +3260,30 @@ "isCollection": false } ] - }, { - "msName": "ts-order-other-service", - "nodeName": "OrderAlterInfo", - "nodeFullName": "OrderAlterInfo", + }, + { + "msName": "ts-payment-service", + "nodeName": "Payment", + "nodeFullName": "Payment", "fields": [ { - "fieldName": "loginToken", - "fieldFullName": "loginToken", + "fieldName": "orderId", + "fieldFullName": "orderId", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "previousOrderId", - "fieldFullName": "previousOrderId", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@GeneratedValue" - }, { "annotation": "@Column" } @@ -3138,13 +3293,10 @@ "isCollection": false }, { - "fieldName": "accountId", - "fieldFullName": "accountId", + "fieldName": "price", + "fieldFullName": "price", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@GeneratedValue" - }, { "annotation": "@Column" } @@ -3154,48 +3306,84 @@ "isCollection": false }, { - "fieldName": "newOrderInfo", - "fieldFullName": "newOrderInfo", - "fieldType": "Order", + "fieldName": "id", + "fieldFullName": "id", + "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + }, + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, - "fieldEntityRefName": "Order", + "fieldEntityRefName": "String", "isCollection": false } ] }, { - "msName": "ts-order-other-service", - "nodeName": "Order", - "nodeFullName": "Order", + "msName": "ts-payment-service", + "nodeName": "Money", + "nodeFullName": "Money", "fields": [ { - "fieldName": "contactsDocumentNumber", - "fieldFullName": "contactsDocumentNumber", + "fieldName": "money", + "fieldFullName": "money", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "trainNumber", - "fieldFullName": "trainNumber", + "fieldName": "id", + "fieldFullName": "id", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + }, + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-security-service", + "nodeName": "SecurityConfig", + "nodeFullName": "SecurityConfig", + "fields": [ { - "fieldName": "seatNumber", - "fieldFullName": "seatNumber", + "fieldName": "description", + "fieldFullName": "description", "fieldType": "String", "fieldAnnotations": [ @@ -3205,8 +3393,8 @@ "isCollection": false }, { - "fieldName": "contactsName", - "fieldFullName": "contactsName", + "fieldName": "name", + "fieldFullName": "name", "fieldType": "String", "fieldAnnotations": [ @@ -3216,8 +3404,8 @@ "isCollection": false }, { - "fieldName": "travelTime", - "fieldFullName": "travelTime", + "fieldName": "value", + "fieldFullName": "value", "fieldType": "String", "fieldAnnotations": [ @@ -3244,12 +3432,33 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false + } + ] + }, + { + "msName": "ts-order-other-service", + "nodeName": "OrderAlterInfo", + "nodeFullName": "OrderAlterInfo", + "fields": [ + { + "fieldName": "loginToken", + "fieldFullName": "loginToken", + "fieldType": "String", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false }, { - "fieldName": "to", - "fieldFullName": "to", + "fieldName": "previousOrderId", + "fieldFullName": "previousOrderId", "fieldType": "String", "fieldAnnotations": [ + { + "annotation": "@GeneratedValue" + }, { "annotation": "@Column" } @@ -3263,6 +3472,9 @@ "fieldFullName": "accountId", "fieldType": "String", "fieldAnnotations": [ + { + "annotation": "@GeneratedValue" + }, { "annotation": "@Column" } @@ -3272,8 +3484,26 @@ "isCollection": false }, { - "fieldName": "travelDate", - "fieldFullName": "travelDate", + "fieldName": "newOrderInfo", + "fieldFullName": "newOrderInfo", + "fieldType": "Order", + "fieldAnnotations": [ + + ], + "fieldIsReference": true, + "fieldEntityRefName": "Order", + "isCollection": false + } + ] + }, + { + "msName": "ts-order-other-service", + "nodeName": "QueryInfo", + "nodeFullName": "QueryInfo", + "fields": [ + { + "fieldName": "travelDateStart", + "fieldFullName": "travelDateStart", "fieldType": "String", "fieldAnnotations": [ @@ -3283,8 +3513,8 @@ "isCollection": false }, { - "fieldName": "price", - "fieldFullName": "price", + "fieldName": "boughtDateEnd", + "fieldFullName": "boughtDateEnd", "fieldType": "String", "fieldAnnotations": [ @@ -3294,9 +3524,9 @@ "isCollection": false }, { - "fieldName": "documentType", - "fieldFullName": "documentType", - "fieldType": "int", + "fieldName": "enableBoughtDateQuery", + "fieldFullName": "enableBoughtDateQuery", + "fieldType": "boolean", "fieldAnnotations": [ ], @@ -3305,19 +3535,19 @@ "isCollection": false }, { - "fieldName": "seatClass", - "fieldFullName": "seatClass", - "fieldType": "int", + "fieldName": "travelDateEnd", + "fieldFullName": "travelDateEnd", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "boughtDate", - "fieldFullName": "boughtDate", + "fieldName": "loginId", + "fieldFullName": "loginId", "fieldType": "String", "fieldAnnotations": [ @@ -3327,8 +3557,8 @@ "isCollection": false }, { - "fieldName": "coachNumber", - "fieldFullName": "coachNumber", + "fieldName": "state", + "fieldFullName": "state", "fieldType": "int", "fieldAnnotations": [ @@ -3338,9 +3568,9 @@ "isCollection": false }, { - "fieldName": "status", - "fieldFullName": "status", - "fieldType": "int", + "fieldName": "enableTravelDateQuery", + "fieldFullName": "enableTravelDateQuery", + "fieldType": "boolean", "fieldAnnotations": [ ], @@ -3349,46 +3579,37 @@ "isCollection": false }, { - "fieldName": "from", - "fieldFullName": "from", + "fieldName": "boughtDateStart", + "fieldFullName": "boughtDateStart", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-cancel-service", - "nodeName": "GetOrderByIdInfo", - "nodeFullName": "GetOrderByIdInfo", - "fields": [ + }, { - "fieldName": "orderId", - "fieldFullName": "orderId", - "fieldType": "String", + "fieldName": "enableStateQuery", + "fieldFullName": "enableStateQuery", + "fieldType": "boolean", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false } ] }, { - "msName": "ts-cancel-service", - "nodeName": "GetAccountByIdInfo", - "nodeFullName": "GetAccountByIdInfo", + "msName": "ts-order-other-service", + "nodeName": "Order", + "nodeFullName": "Order", "fields": [ { - "fieldName": "accountId", - "fieldFullName": "accountId", + "fieldName": "contactsDocumentNumber", + "fieldFullName": "contactsDocumentNumber", "fieldType": "String", "fieldAnnotations": [ @@ -3396,16 +3617,10 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, { - "msName": "ts-rebook-service", - "nodeName": "RebookInfo", - "nodeFullName": "RebookInfo", - "fields": [ + }, { - "fieldName": "oldTripId", - "fieldFullName": "oldTripId", + "fieldName": "trainNumber", + "fieldFullName": "trainNumber", "fieldType": "String", "fieldAnnotations": [ @@ -3415,8 +3630,8 @@ "isCollection": false }, { - "fieldName": "date", - "fieldFullName": "date", + "fieldName": "seatNumber", + "fieldFullName": "seatNumber", "fieldType": "String", "fieldAnnotations": [ @@ -3426,19 +3641,19 @@ "isCollection": false }, { - "fieldName": "seatType", - "fieldFullName": "seatType", - "fieldType": "int", + "fieldName": "contactsName", + "fieldFullName": "contactsName", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "loginId", - "fieldFullName": "loginId", + "fieldName": "travelTime", + "fieldFullName": "travelTime", "fieldType": "String", "fieldAnnotations": [ @@ -3448,37 +3663,40 @@ "isCollection": false }, { - "fieldName": "orderId", - "fieldFullName": "orderId", + "fieldName": "id", + "fieldFullName": "id", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + }, + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "tripId", - "fieldFullName": "tripId", + "fieldName": "to", + "fieldFullName": "to", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-train-food-service", - "nodeName": "TrainFood", - "nodeFullName": "TrainFood", - "fields": [ + }, { - "fieldName": "tripId", - "fieldFullName": "tripId", + "fieldName": "accountId", + "fieldFullName": "accountId", "fieldType": "String", "fieldAnnotations": [ { @@ -3490,110 +3708,87 @@ "isCollection": false }, { - "fieldName": "foodList", - "fieldFullName": "foodList", - "fieldType": "List", + "fieldName": "travelDate", + "fieldFullName": "travelDate", + "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@ElementCollection" - }, - { - "annotation": "@CollectionTable" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "List", - "isCollection": true + "fieldEntityRefName": "String", + "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "price", + "fieldFullName": "price", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-consign-price-service", - "nodeName": "ConsignPrice", - "nodeFullName": "ConsignPrice", - "fields": [ + }, { - "fieldName": "initialPrice", - "fieldFullName": "initialPrice", - "fieldType": "double", + "fieldName": "documentType", + "fieldFullName": "documentType", + "fieldType": "int", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "withinPrice", - "fieldFullName": "withinPrice", - "fieldType": "double", + "fieldName": "seatClass", + "fieldFullName": "seatClass", + "fieldType": "int", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "beyondPrice", - "fieldFullName": "beyondPrice", - "fieldType": "double", + "fieldName": "boughtDate", + "fieldFullName": "boughtDate", + "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false + }, + { + "fieldName": "coachNumber", + "fieldFullName": "coachNumber", + "fieldType": "int", + "fieldAnnotations": [ + ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "index", - "fieldFullName": "index", + "fieldName": "status", + "fieldFullName": "status", "fieldType": "int", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "from", + "fieldFullName": "from", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, { "annotation": "@Column" } @@ -3601,40 +3796,39 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-admin-user-service", + "nodeName": "UserDto", + "nodeFullName": "UserDto", + "fields": [ { - "fieldName": "initialWeight", - "fieldFullName": "initialWeight", - "fieldType": "double", + "fieldName": "documentType", + "fieldFullName": "documentType", + "fieldType": "int", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false - } - ] - }, { - "msName": "ts-admin-basic-info-service", - "nodeName": "PriceInfo", - "nodeFullName": "PriceInfo", - "fields": [ + }, { - "fieldName": "basicPriceRate", - "fieldFullName": "basicPriceRate", - "fieldType": "double", + "fieldName": "password", + "fieldFullName": "password", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "trainType", - "fieldFullName": "trainType", + "fieldName": "documentNum", + "fieldFullName": "documentNum", "fieldType": "String", "fieldAnnotations": [ @@ -3644,8 +3838,19 @@ "isCollection": false }, { - "fieldName": "routeId", - "fieldFullName": "routeId", + "fieldName": "gender", + "fieldFullName": "gender", + "fieldType": "int", + "fieldAnnotations": [ + + ], + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false + }, + { + "fieldName": "email", + "fieldFullName": "email", "fieldType": "String", "fieldAnnotations": [ @@ -3655,8 +3860,8 @@ "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "userId", + "fieldFullName": "userId", "fieldType": "String", "fieldAnnotations": [ @@ -3666,171 +3871,132 @@ "isCollection": false }, { - "fieldName": "firstClassPriceRate", - "fieldFullName": "firstClassPriceRate", - "fieldType": "double", + "fieldName": "userName", + "fieldFullName": "userName", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false } ] }, { - "msName": "ts-price-service", - "nodeName": "PriceConfig", - "nodeFullName": "PriceConfig", + "msName": "ts-notification-service", + "nodeName": "EmailProperties", + "nodeFullName": "EmailProperties", "fields": [ { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "password", + "fieldFullName": "password", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "routeId", - "fieldFullName": "routeId", + "fieldName": "port", + "fieldFullName": "port", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "basicPriceRate", - "fieldFullName": "basicPriceRate", - "fieldType": "double", - "fieldAnnotations": [ - - ], - "fieldIsReference": false, - "fieldEntityRefName": "null", - "isCollection": false - }, - { - "fieldName": "trainType", - "fieldFullName": "trainType", + "fieldName": "host", + "fieldFullName": "host", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "firstClassPriceRate", - "fieldFullName": "firstClassPriceRate", - "fieldType": "double", + "fieldName": "username", + "fieldFullName": "username", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false } ] }, { - "msName": "ts-station-service", - "nodeName": "Station", - "nodeFullName": "Station", + "msName": "ts-notification-service", + "nodeName": "NotifyInfo", + "nodeFullName": "NotifyInfo", "fields": [ { - "fieldName": "name", - "fieldFullName": "name", + "fieldName": "orderNumber", + "fieldFullName": "orderNumber", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "stayTime", - "fieldFullName": "stayTime", - "fieldType": "int", + "fieldName": "startTime", + "fieldFullName": "startTime", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "seatNumber", + "fieldFullName": "seatNumber", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-config-service", - "nodeName": "Config", - "nodeFullName": "Config", - "fields": [ + }, { - "fieldName": "description", - "fieldFullName": "description", - "fieldType": "String", + "fieldName": "sendStatus", + "fieldFullName": "sendStatus", + "fieldType": "Boolean", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "Boolean", "isCollection": false }, { - "fieldName": "name", - "fieldFullName": "name", + "fieldName": "startPlace", + "fieldFullName": "startPlace", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "value", - "fieldFullName": "value", + "fieldName": "endPlace", + "fieldFullName": "endPlace", "fieldType": "String", "fieldAnnotations": [ @@ -3838,30 +4004,21 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-station-food-service", - "nodeName": "StationFoodStore", - "nodeFullName": "StationFoodStore", - "fields": [ + }, { - "fieldName": "storeName", - "fieldFullName": "storeName", + "fieldName": "price", + "fieldFullName": "price", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "businessTime", - "fieldFullName": "businessTime", + "fieldName": "date", + "fieldFullName": "date", "fieldType": "String", "fieldAnnotations": [ @@ -3887,21 +4044,19 @@ "isCollection": false }, { - "fieldName": "stationName", - "fieldFullName": "stationName", + "fieldName": "email", + "fieldFullName": "email", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "telephone", - "fieldFullName": "telephone", + "fieldName": "seatClass", + "fieldFullName": "seatClass", "fieldType": "String", "fieldAnnotations": [ @@ -3911,42 +4066,26 @@ "isCollection": false }, { - "fieldName": "foodList", - "fieldFullName": "foodList", - "fieldType": "List", - "fieldAnnotations": [ - { - "annotation": "@ElementCollection" - }, - { - "annotation": "@CollectionTable" - } - ], - "fieldIsReference": true, - "fieldEntityRefName": "List", - "isCollection": true - }, - { - "fieldName": "deliveryFee", - "fieldFullName": "deliveryFee", - "fieldType": "double", + "fieldName": "username", + "fieldFullName": "username", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false } ] }, { - "msName": "ts-order-service", - "nodeName": "OrderAlterInfo", - "nodeFullName": "OrderAlterInfo", + "msName": "ts-notification-service", + "nodeName": "Mail", + "nodeFullName": "Mail", "fields": [ { - "fieldName": "loginToken", - "fieldFullName": "loginToken", + "fieldName": "mailFrom", + "fieldFullName": "mailFrom", "fieldType": "String", "fieldAnnotations": [ @@ -3956,69 +4095,52 @@ "isCollection": false }, { - "fieldName": "previousOrderId", - "fieldFullName": "previousOrderId", + "fieldName": "mailSubject", + "fieldFullName": "mailSubject", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "accountId", - "fieldFullName": "accountId", + "fieldName": "mailContent", + "fieldFullName": "mailContent", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "newOrderInfo", - "fieldFullName": "newOrderInfo", - "fieldType": "Order", + "fieldName": "mailCc", + "fieldFullName": "mailCc", + "fieldType": "String", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "Order", + "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-order-service", - "nodeName": "Order", - "nodeFullName": "Order", - "fields": [ + }, { - "fieldName": "contactsDocumentNumber", - "fieldFullName": "contactsDocumentNumber", - "fieldType": "String", + "fieldName": "attachments", + "fieldFullName": "attachments", + "fieldType": "List", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false + "fieldEntityRefName": "List", + "isCollection": true }, { - "fieldName": "trainNumber", - "fieldFullName": "trainNumber", + "fieldName": "contentType", + "fieldFullName": "contentType", "fieldType": "String", "fieldAnnotations": [ @@ -4028,8 +4150,8 @@ "isCollection": false }, { - "fieldName": "seatNumber", - "fieldFullName": "seatNumber", + "fieldName": "mailTo", + "fieldFullName": "mailTo", "fieldType": "String", "fieldAnnotations": [ @@ -4039,19 +4161,19 @@ "isCollection": false }, { - "fieldName": "contactsName", - "fieldFullName": "contactsName", - "fieldType": "String", + "fieldName": "model", + "fieldFullName": "model", + "fieldType": "Map", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false + "fieldEntityRefName": "Map", + "isCollection": true }, { - "fieldName": "travelTime", - "fieldFullName": "travelTime", + "fieldName": "mailBcc", + "fieldFullName": "mailBcc", "fieldType": "String", "fieldAnnotations": [ @@ -4059,66 +4181,68 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-travel-service", + "nodeName": "AdminTrip", + "nodeFullName": "AdminTrip", + "fields": [ { - "fieldName": "id", - "fieldFullName": "id", - "fieldType": "String", + "fieldName": "route", + "fieldFullName": "route", + "fieldType": "Route", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "Route", "isCollection": false }, { - "fieldName": "to", - "fieldFullName": "to", - "fieldType": "String", + "fieldName": "trainType", + "fieldFullName": "trainType", + "fieldType": "TrainType", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "TrainType", "isCollection": false }, { - "fieldName": "accountId", - "fieldFullName": "accountId", - "fieldType": "String", + "fieldName": "trip", + "fieldFullName": "trip", + "fieldType": "Trip", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "Trip", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-travel-service", + "nodeName": "Travel", + "nodeFullName": "Travel", + "fields": [ { - "fieldName": "travelDate", - "fieldFullName": "travelDate", - "fieldType": "String", + "fieldName": "trip", + "fieldFullName": "trip", + "fieldType": "Trip", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "Trip", "isCollection": false }, { - "fieldName": "price", - "fieldFullName": "price", + "fieldName": "departureTime", + "fieldFullName": "departureTime", "fieldType": "String", "fieldAnnotations": [ @@ -4128,83 +4252,83 @@ "isCollection": false }, { - "fieldName": "documentType", - "fieldFullName": "documentType", - "fieldType": "int", + "fieldName": "startPlace", + "fieldFullName": "startPlace", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "seatClass", - "fieldFullName": "seatClass", - "fieldType": "int", + "fieldName": "endPlace", + "fieldFullName": "endPlace", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, + { + "msName": "ts-travel-service", + "nodeName": "Trip", + "nodeFullName": "Trip", + "fields": [ { - "fieldName": "boughtDate", - "fieldFullName": "boughtDate", - "fieldType": "String", + "fieldName": "tripId", + "fieldFullName": "tripId", + "fieldType": "TripId", "fieldAnnotations": [ - + { + "annotation": "@Embedded" + } ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "TripId", "isCollection": false }, { - "fieldName": "coachNumber", - "fieldFullName": "coachNumber", - "fieldType": "int", + "fieldName": "terminalStationName", + "fieldFullName": "terminalStationName", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "status", - "fieldFullName": "status", - "fieldType": "int", + "fieldName": "startTime", + "fieldFullName": "startTime", + "fieldType": "String", "fieldAnnotations": [ - ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "from", - "fieldFullName": "from", + "fieldName": "trainTypeName", + "fieldFullName": "trainTypeName", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-inside-payment-service", - "nodeName": "Payment", - "nodeFullName": "Payment", - "fields": [ + }, { - "fieldName": "price", - "fieldFullName": "price", + "fieldName": "startStationName", + "fieldFullName": "startStationName", "fieldType": "String", "fieldAnnotations": [ @@ -4214,26 +4338,22 @@ "isCollection": false }, { - "fieldName": "orderId", - "fieldFullName": "orderId", + "fieldName": "routeId", + "fieldFullName": "routeId", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "stationsName", + "fieldFullName": "stationsName", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", @@ -4259,57 +4379,55 @@ "isCollection": false }, { - "fieldName": "type", - "fieldFullName": "type", - "fieldType": "PaymentType", + "fieldName": "endTime", + "fieldFullName": "endTime", + "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Enumerated" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "PaymentType", + "fieldEntityRefName": "String", "isCollection": false } ] }, { - "msName": "ts-inside-payment-service", - "nodeName": "Balance", - "nodeFullName": "Balance", + "msName": "ts-travel-service", + "nodeName": "TripAllDetail", + "nodeFullName": "TripAllDetail", "fields": [ { - "fieldName": "balance", - "fieldFullName": "balance", - "fieldType": "String", + "fieldName": "tripResponse", + "fieldFullName": "tripResponse", + "fieldType": "TripResponse", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "TripResponse", "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", - "fieldType": "String", + "fieldName": "trip", + "fieldFullName": "trip", + "fieldType": "Trip", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "Trip", "isCollection": false } ] }, { - "msName": "ts-inside-payment-service", - "nodeName": "Money", - "nodeFullName": "Money", + "msName": "ts-food-service", + "nodeName": "Delivery", + "nodeFullName": "Delivery", "fields": [ { - "fieldName": "money", - "fieldFullName": "money", + "fieldName": "storeName", + "fieldFullName": "storeName", "fieldType": "String", "fieldAnnotations": [ @@ -4319,45 +4437,33 @@ "isCollection": false }, { - "fieldName": "type", - "fieldFullName": "type", - "fieldType": "MoneyType", + "fieldName": "orderId", + "fieldFullName": "orderId", + "fieldType": "UUID", "fieldAnnotations": [ - { - "annotation": "@Enumerated" - } + ], "fieldIsReference": true, - "fieldEntityRefName": "MoneyType", + "fieldEntityRefName": "UUID", "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "stationName", + "fieldFullName": "stationName", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "id", - "fieldFullName": "id", + "fieldName": "foodName", + "fieldFullName": "foodName", "fieldType": "String", "fieldAnnotations": [ - { - "annotation": "@Id" - }, - { - "annotation": "@GeneratedValue" - }, - { - "annotation": "@Column" - } + ], "fieldIsReference": true, "fieldEntityRefName": "String", @@ -4366,13 +4472,13 @@ ] }, { - "msName": "ts-inside-payment-service", - "nodeName": "PaymentInfo", - "nodeFullName": "PaymentInfo", + "msName": "ts-food-service", + "nodeName": "FoodOrder", + "nodeFullName": "FoodOrder", "fields": [ { - "fieldName": "price", - "fieldFullName": "price", + "fieldName": "storeName", + "fieldFullName": "storeName", "fieldType": "String", "fieldAnnotations": [ @@ -4382,8 +4488,8 @@ "isCollection": false }, { - "fieldName": "orderId", - "fieldFullName": "orderId", + "fieldName": "stationName", + "fieldFullName": "stationName", "fieldType": "String", "fieldAnnotations": [ @@ -4393,8 +4499,8 @@ "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "orderId", + "fieldFullName": "orderId", "fieldType": "String", "fieldAnnotations": [ @@ -4404,8 +4510,8 @@ "isCollection": false }, { - "fieldName": "tripId", - "fieldFullName": "tripId", + "fieldName": "foodName", + "fieldFullName": "foodName", "fieldType": "String", "fieldAnnotations": [ @@ -4413,75 +4519,87 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-inside-payment-service", - "nodeName": "PaymentType", - "nodeFullName": "PaymentType", - "fields": [ + }, { - "fieldName": "name", - "fieldFullName": "name", - "fieldType": "String", + "fieldName": "foodType", + "fieldFullName": "foodType", + "fieldType": "int", "fieldAnnotations": [ ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "index", - "fieldFullName": "index", - "fieldType": "int", + "fieldName": "price", + "fieldFullName": "price", + "fieldType": "double", "fieldAnnotations": [ ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false + }, + { + "fieldName": "id", + "fieldFullName": "id", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Id" + }, + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false } ] }, { - "msName": "ts-inside-payment-service", - "nodeName": "MoneyType", - "nodeFullName": "MoneyType", + "msName": "ts-food-service", + "nodeName": "AllTripFood", + "nodeFullName": "AllTripFood", "fields": [ { - "fieldName": "name", - "fieldFullName": "name", - "fieldType": "String", + "fieldName": "foodStoreListMap", + "fieldFullName": "foodStoreListMap", + "fieldType": "Map>", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "String", - "isCollection": false + "fieldEntityRefName": "Map>", + "isCollection": true }, { - "fieldName": "index", - "fieldFullName": "index", - "fieldType": "int", + "fieldName": "trainFoodList", + "fieldFullName": "trainFoodList", + "fieldType": "List", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", - "isCollection": false + "fieldIsReference": true, + "fieldEntityRefName": "List", + "isCollection": true } ] }, { - "msName": "ts-inside-payment-service", - "nodeName": "OutsidePaymentInfo", - "nodeFullName": "OutsidePaymentInfo", + "msName": "ts-delivery-service", + "nodeName": "Delivery", + "nodeFullName": "Delivery", "fields": [ { - "fieldName": "price", - "fieldFullName": "price", + "fieldName": "storeName", + "fieldFullName": "storeName", "fieldType": "String", "fieldAnnotations": [ @@ -4493,17 +4611,17 @@ { "fieldName": "orderId", "fieldFullName": "orderId", - "fieldType": "String", + "fieldType": "UUID", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "UUID", "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "stationName", + "fieldFullName": "stationName", "fieldType": "String", "fieldAnnotations": [ @@ -4511,17 +4629,10 @@ "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - } - ] - }, - { - "msName": "ts-inside-payment-service", - "nodeName": "AccountInfo", - "nodeFullName": "AccountInfo", - "fields": [ + }, { - "fieldName": "money", - "fieldFullName": "money", + "fieldName": "foodName", + "fieldFullName": "foodName", "fieldType": "String", "fieldAnnotations": [ @@ -4531,11 +4642,19 @@ "isCollection": false }, { - "fieldName": "userId", - "fieldFullName": "userId", + "fieldName": "id", + "fieldFullName": "id", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + }, + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", @@ -4544,115 +4663,115 @@ ] }, { - "msName": "ts-travel-plan-service", - "nodeName": "TransferTravelResult", - "nodeFullName": "TransferTravelResult", + "msName": "ts-consign-price-service", + "nodeName": "ConsignPrice", + "nodeFullName": "ConsignPrice", "fields": [ { - "fieldName": "secondSectionResult", - "fieldFullName": "secondSectionResult", - "fieldType": "List", + "fieldName": "initialPrice", + "fieldFullName": "initialPrice", + "fieldType": "double", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], - "fieldIsReference": true, - "fieldEntityRefName": "List", - "isCollection": true + "fieldIsReference": false, + "fieldEntityRefName": "null", + "isCollection": false }, { - "fieldName": "firstSectionResult", - "fieldFullName": "firstSectionResult", - "fieldType": "List", - "fieldAnnotations": [ - - ], - "fieldIsReference": true, - "fieldEntityRefName": "List", - "isCollection": true - } - ] - }, - { - "msName": "ts-travel-plan-service", - "nodeName": "TransferTravelInfo", - "nodeFullName": "TransferTravelInfo", - "fields": [ - { - "fieldName": "travelDate", - "fieldFullName": "travelDate", - "fieldType": "String", + "fieldName": "withinPrice", + "fieldFullName": "withinPrice", + "fieldType": "double", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "startStation", - "fieldFullName": "startStation", - "fieldType": "String", + "fieldName": "beyondPrice", + "fieldFullName": "beyondPrice", + "fieldType": "double", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "viaStation", - "fieldFullName": "viaStation", - "fieldType": "String", + "fieldName": "index", + "fieldFullName": "index", + "fieldType": "int", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "endStation", - "fieldFullName": "endStation", + "fieldName": "id", + "fieldFullName": "id", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + }, + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "trainType", - "fieldFullName": "trainType", - "fieldType": "String", + "fieldName": "initialWeight", + "fieldFullName": "initialWeight", + "fieldType": "double", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], - "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldIsReference": false, + "fieldEntityRefName": "null", "isCollection": false } ] }, { - "msName": "ts-travel-plan-service", - "nodeName": "TravelAdvanceResultUnit", - "nodeFullName": "TravelAdvanceResultUnit", + "msName": "ts-common", + "nodeName": "Response", + "nodeFullName": "Response", "fields": [ { - "fieldName": "priceForFirstClassSeat", - "fieldFullName": "priceForFirstClassSeat", - "fieldType": "String", + "fieldName": "status", + "fieldFullName": "status", + "fieldType": "Integer", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "String", + "fieldEntityRefName": "Integer", "isCollection": false }, { - "fieldName": "startStation", - "fieldFullName": "startStation", + "fieldName": "msg", + "fieldFullName": "msg", "fieldType": "String", "fieldAnnotations": [ @@ -4662,74 +4781,114 @@ "isCollection": false }, { - "fieldName": "stopStations", - "fieldFullName": "stopStations", - "fieldType": "List", + "fieldName": "data", + "fieldFullName": "data", + "fieldType": "Object", "fieldAnnotations": [ ], "fieldIsReference": true, - "fieldEntityRefName": "List", - "isCollection": true + "fieldEntityRefName": "Object", + "isCollection": false + } + ] + }, + { + "msName": "ts-contacts-service", + "nodeName": "Contacts", + "nodeFullName": "Contacts", + "fields": [ + { + "fieldName": "accountId", + "fieldFullName": "accountId", + "fieldType": "String", + "fieldAnnotations": [ + { + "annotation": "@Column" + } + ], + "fieldIsReference": true, + "fieldEntityRefName": "String", + "isCollection": false }, { - "fieldName": "numberOfRestTicketSecondClass", - "fieldFullName": "numberOfRestTicketSecondClass", - "fieldType": "int", + "fieldName": "name", + "fieldFullName": "name", + "fieldType": "String", "fieldAnnotations": [ ], - "fieldIsReference": false, - "fieldEntityRefName": "null", + "fieldIsReference": true, + "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "priceForSecondClassSeat", - "fieldFullName": "priceForSecondClassSeat", + "fieldName": "phoneNumber", + "fieldFullName": "phoneNumber", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "startTime", - "fieldFullName": "startTime", + "fieldName": "id", + "fieldFullName": "id", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + }, + { + "annotation": "@GeneratedValue" + }, + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "numberOfRestTicketFirstClass", - "fieldFullName": "numberOfRestTicketFirstClass", + "fieldName": "documentType", + "fieldFullName": "documentType", "fieldType": "int", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": false, "fieldEntityRefName": "null", "isCollection": false }, { - "fieldName": "endStation", - "fieldFullName": "endStation", + "fieldName": "documentNumber", + "fieldFullName": "documentNumber", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Column" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false - }, + } + ] + }, { + "msName": "ts-config-service", + "nodeName": "Config", + "nodeFullName": "Config", + "fields": [ { - "fieldName": "trainTypeId", - "fieldFullName": "trainTypeId", + "fieldName": "description", + "fieldFullName": "description", "fieldType": "String", "fieldAnnotations": [ @@ -4739,19 +4898,21 @@ "isCollection": false }, { - "fieldName": "tripId", - "fieldFullName": "tripId", + "fieldName": "name", + "fieldFullName": "name", "fieldType": "String", "fieldAnnotations": [ - + { + "annotation": "@Id" + } ], "fieldIsReference": true, "fieldEntityRefName": "String", "isCollection": false }, { - "fieldName": "endTime", - "fieldFullName": "endTime", + "fieldName": "value", + "fieldFullName": "value", "fieldType": "String", "fieldAnnotations": [ @@ -4776,7 +4937,7 @@ "target": "TripResponse", "msSource": "ts-travel-service", "msTarget": "ts-common", - "sourceMultiplicity": "1", + "sourceMultiplicity": "2", "targetMultiplicity": "0" }, { @@ -4790,7 +4951,7 @@ { "source": "AdminTrip", "target": "TrainType", - "msSource": "ts-travel2-service", + "msSource": "ts-travel-service", "msTarget": "ts-common", "sourceMultiplicity": "2", "targetMultiplicity": "0" @@ -4798,7 +4959,7 @@ { "source": "Trip", "target": "TripId", - "msSource": "ts-travel2-service", + "msSource": "ts-travel-service", "msTarget": "ts-common", "sourceMultiplicity": "2", "targetMultiplicity": "0" @@ -4812,17 +4973,17 @@ "targetMultiplicity": "0" }, { - "source": "AllTripFood", - "target": "Food", - "msSource": "ts-food-service", + "source": "TransferTravelResult", + "target": "TripResponse", + "msSource": "ts-travel-plan-service", "msTarget": "ts-common", "sourceMultiplicity": "0..*", "targetMultiplicity": "0" }, { - "source": "TransferTravelResult", - "target": "TripResponse", - "msSource": "ts-travel-plan-service", + "source": "AllTripFood", + "target": "Food", + "msSource": "ts-food-service", "msTarget": "ts-common", "sourceMultiplicity": "0..*", "targetMultiplicity": "0" @@ -4830,11 +4991,19 @@ { "source": "AdminTrip", "target": "Route", - "msSource": "ts-travel2-service", + "msSource": "ts-travel-service", "msTarget": "ts-common", "sourceMultiplicity": "2", "targetMultiplicity": "0" }, + { + "source": "GetAccountByIdResult", + "target": "Account", + "msSource": "ts-cancel-service", + "msTarget": "ts-common", + "sourceMultiplicity": "1", + "targetMultiplicity": "0" + }, { "source": "StationFoodStore", "target": "Food", @@ -4852,11 +5021,11 @@ "targetMultiplicity": "0" }, { - "source": "TripAllDetail", - "target": "Trip", - "msSource": "ts-travel-service", + "source": "OrderAlterInfo", + "target": "Order", + "msSource": "ts-order-other-service", "msTarget": "ts-common", - "sourceMultiplicity": "1", + "sourceMultiplicity": "2", "targetMultiplicity": "0" }, { @@ -4868,9 +5037,9 @@ "targetMultiplicity": "0" }, { - "source": "OrderAlterInfo", - "target": "Order", - "msSource": "ts-order-service", + "source": "TripAllDetail", + "target": "Trip", + "msSource": "ts-travel-service", "msTarget": "ts-common", "sourceMultiplicity": "2", "targetMultiplicity": "0" @@ -4878,7 +5047,7 @@ { "source": "AdminTrip", "target": "Trip", - "msSource": "ts-travel2-service", + "msSource": "ts-travel-service", "msTarget": "ts-common", "sourceMultiplicity": "2", "targetMultiplicity": "0" @@ -4886,7 +5055,7 @@ { "source": "Travel", "target": "Trip", - "msSource": "ts-travel2-service", + "msSource": "ts-travel-service", "msTarget": "ts-common", "sourceMultiplicity": "2", "targetMultiplicity": "0" diff --git a/frontend/src/utils/GraphFunctions.tsx b/frontend/src/utils/GraphFunctions.tsx index 2f4470b..abc691f 100644 --- a/frontend/src/utils/GraphFunctions.tsx +++ b/frontend/src/utils/GraphFunctions.tsx @@ -180,7 +180,7 @@ const getNodeOpacity = (node: any, search: any): number => { if (search === "") { return 0.75; } - if (node.nodeName.toLowerCase().includes(search.toLowerCase())) { + if (node.nodeName?.toLowerCase().includes(search?.toLowerCase())) { return 0.8; } else { return 0.1; @@ -199,7 +199,7 @@ function getSpriteColor( highCoupling: any, antipattern: any ) { - if (!node.nodeName.toLowerCase().includes(search.toLowerCase())) { + if (!node.nodeName?.toLowerCase().includes(search?.toLowerCase())) { return "rgba(255,255,255,0)"; } return getColor( @@ -235,8 +235,8 @@ function getLinkOpacity(link: any, search: any, threed: any) { return 0.8; } if ( - link.source.nodeName.toLowerCase().includes(search.toLowerCase()) || - link.target.nodeName.toLowerCase().includes(search.toLowerCase()) + link.source.nodeName?.toLowerCase().includes(search?.toLowerCase()) || + link.target.nodeName?.toLowerCase().includes(search?.toLowerCase()) ) { if (threed) { return 0.9;