From b1fe96fef8db011cd2642f625dc87d5818ea24d4 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Thu, 6 Jul 2023 11:40:01 +0200 Subject: [PATCH 001/126] add branch to ci --- .github/workflows/docker-CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-CI.yml b/.github/workflows/docker-CI.yml index 16ab9f68..c614a117 100644 --- a/.github/workflows/docker-CI.yml +++ b/.github/workflows/docker-CI.yml @@ -2,7 +2,7 @@ name: Docker Build and Push on: push: - branches: [ master, develop, cleaning] + branches: [ master, develop, ma-lakhoune] jobs: build: From 867914d38ba9da3992fe5634729651f7c067e9d7 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Thu, 6 Jul 2023 13:36:07 +0200 Subject: [PATCH 002/126] update docker-compose --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 2c67e9d2..fc7bbfe6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: DATABASE_PORT: ${DATABASE_PORT:-3306} DATABASE_USER: ${DATABASE_USER:-root} DATABASE_PASSWORD: ${DATABASE_PASSWORD:-root} - ADDRESS: ${ADDRESS:-127.0.0.1:8080} + WEBCONNECTOR_URL: ${WEBCONNECTOR_URL:-127.0.0.1:8080} MONGO_HOST: ${MONGO_HOST:-mongo:8080} MONGO_DB: ${MONGO_DB:-sbf} MONGO_USER: ${MONGO_USER:-admin} From 0dd5070e5e39ee28fd3c2809b732e3d190f8b4b2 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Thu, 6 Jul 2023 14:24:16 +0200 Subject: [PATCH 003/126] adds option to specify the base href in docker container --- docker-entrypoint.sh | 6 ++++++ index.html | 1 + runImageStandardConf.sh | 2 -- 3 files changed, 7 insertions(+), 2 deletions(-) delete mode 100755 runImageStandardConf.sh diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 7e5ad410..3fe64108 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -28,6 +28,7 @@ export OIDC_CLIENT_ID=${OIDC_CLIENT_ID:-localtestclient} export RASA_NLU=${RASA_NLU:-http://localhost:5005} export SBF_MANAGER=${SBF_MANAGER:-http://localhost:8080} export CONTACT_SERVICE_URL=${CONTACT_SERVICE_URL:-http://localhost:8080} +export BASE_HREF=${BASE_HREF:-/} cp config.json.sample config.json @@ -40,5 +41,10 @@ sed -i "s==$CONTACT_SERVICE_URL=g" config.json sed -i "s==$RASA_NLU=g" config.json sed -i "s==$SBF_MANAGER=g" config.json +# find and replace with the value of BASE_HREF +if [[ -n "$BASE_HREF" ]]; then + sed -i "s===g" dist/index.html +fi + npm run build:prod npm run node:prod diff --git a/index.html b/index.html index 221db1b1..bb36c435 100644 --- a/index.html +++ b/index.html @@ -9,6 +9,7 @@ name="description" content="An intuitive approach to social bot modeling" /> + diff --git a/runImageStandardConf.sh b/runImageStandardConf.sh deleted file mode 100755 index 543f5e28..00000000 --- a/runImageStandardConf.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -docker run -it --rm -p 1234:1234 -p 8073:8073 -p 8080:8080 -p 3000:3000 -p 9011:9011 -p 4200:4200 -p 8081:8081 --name sbf sbf From 4899bb54ba74238a9f750c90763c9ba155ccb86f Mon Sep 17 00:00:00 2001 From: lakhoune Date: Thu, 6 Jul 2023 14:24:24 +0200 Subject: [PATCH 004/126] use my image --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index fc7bbfe6..3807262c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,7 +15,7 @@ services: depends_on: - social-bot-manager social-bot-manager: - image: registry.tech4comp.dbis.rwth-aachen.de/rwthacis/social-bot-manager:master + image: registry.tech4comp.dbis.rwth-aachen.de/rwthacis/social-bot-manager:ma-lakhoune environment: DATABASE_NAME: ${DATABASE_NAME:-SBF} DATABASE_HOST: db From 1ce6d472cbe05ed5406bec0f32b6af4668f02c81 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Thu, 6 Jul 2023 14:43:39 +0200 Subject: [PATCH 005/126] set base href before bundle --- docker-entrypoint.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 3fe64108..546b8330 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -28,7 +28,6 @@ export OIDC_CLIENT_ID=${OIDC_CLIENT_ID:-localtestclient} export RASA_NLU=${RASA_NLU:-http://localhost:5005} export SBF_MANAGER=${SBF_MANAGER:-http://localhost:8080} export CONTACT_SERVICE_URL=${CONTACT_SERVICE_URL:-http://localhost:8080} -export BASE_HREF=${BASE_HREF:-/} cp config.json.sample config.json @@ -43,7 +42,7 @@ sed -i "s==$SBF_MANAGER=g" config.json # find and replace with the value of BASE_HREF if [[ -n "$BASE_HREF" ]]; then - sed -i "s===g" dist/index.html + sed -i "s===g" index.html fi npm run build:prod From bce2dab902a89fd9f975327d89a6047284fc502e Mon Sep 17 00:00:00 2001 From: lakhoune Date: Thu, 6 Jul 2023 14:58:27 +0200 Subject: [PATCH 006/126] debug --- docker-entrypoint.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 546b8330..521176f5 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -40,10 +40,18 @@ sed -i "s==$CONTACT_SERVICE_URL=g" config.json sed -i "s==$RASA_NLU=g" config.json sed -i "s==$SBF_MANAGER=g" config.json -# find and replace with the value of BASE_HREF -if [[ -n "$BASE_HREF" ]]; then - sed -i "s===g" index.html + + + + +# if BASE_HREF then append it to the index.html head tag +if [ -n "$BASE_HREF" ]; then + file="index.html" + tag="head" + line_to_add="" + sed -i "/<$tag>/a $line_to_add" "$file" fi + npm run build:prod npm run node:prod From a004b2549c5d62d578570b545a945e7b32473e90 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Thu, 6 Jul 2023 15:03:23 +0200 Subject: [PATCH 007/126] fix bas_href --- docker-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 521176f5..a280069a 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -48,7 +48,7 @@ sed -i "s==$SBF_MANAGER=g" config.json if [ -n "$BASE_HREF" ]; then file="index.html" tag="head" - line_to_add="" + line_to_add="" sed -i "/<$tag>/a $line_to_add" "$file" fi From 73efcb17c951353bd8be61a9fa7bd86fbf4fb037 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Sun, 30 Jul 2023 18:11:15 +0200 Subject: [PATCH 008/126] update image --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3807262c..1cc22cf3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -37,7 +37,7 @@ services: - db yjs: - image: lakhoune/y-websocket:latest + image: registry.tech4comp.dbis.rwth-aachen.de/rwthacis/y-websocket:master ports: - "1234:1234" From 65a9d00861b9d9bd80e576ece92de3c74c8678b4 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Sun, 13 Aug 2023 22:09:30 +0200 Subject: [PATCH 009/126] update submit model --- src/bot.manager.widget.js | 61 +++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 22 deletions(-) diff --git a/src/bot.manager.widget.js b/src/bot.manager.widget.js index a27a35c0..817152d2 100644 --- a/src/bot.manager.widget.js +++ b/src/bot.manager.widget.js @@ -185,39 +185,56 @@ class BotManagerWidget extends LitElement { } submitModel() { - var sendStatus = $("#sendStatus"); + const sendStatus = $("#sendStatus"); const spinner = $("#sendStatusSpinner"); const btn = $("#submit-model"); - var endpoint = y.getText("sbfManager").toString(); - var model = y.getMap("data").get("model"); + const endpoint = y.getText("sbfManager").toString(); + const model = y.getMap("data").get("model"); + sendStatus.text("Sending..."); spinner.show(); btn.prop("disabled", true); - var xhr = new XMLHttpRequest(); - xhr.onload = function () { - if (xhr.status == 200) { - sendStatus.text("Successfully sent."); - alert("The bot has been successfully sent and is now available."); - } else { - if (xhr.response != undefined) { - alert( - "There is something wrong with your bot model: " + xhr.response - ); + const timeout = 10000; // 10 seconds + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), timeout); + + fetch(endpoint + "/bots", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(model), + signal: controller.signal, + }) + .then((response) => { + clearTimeout(timeoutId); + if (response.ok) { + sendStatus.text("Successfully sent."); + alert("The bot has been successfully sent and is now available."); + } else { + response.text().then((errorMessage) => { + alert( + `There is something wrong with your bot model: ${errorMessage}` + ); + }); + } + }) + .catch((error) => { + clearTimeout(timeoutId); + if (error.name === "AbortError") { + alert("The request timed out. Please try again later."); } else { alert( "The bot could not be sent. Please make sure that: the Social Bot Manager is running, your endpoint is correct, your bot model is correct." ); } - } - spinner.hide(); - btn.prop("disabled", false); - // cleanStatus("sendStatus"); - }; - - xhr.open("POST", endpoint + "/bots"); - xhr.setRequestHeader("Content-Type", "application/json"); - xhr.send(JSON.stringify(model)); + }) + .finally(() => { + spinner.hide(); + btn.prop("disabled", false); + // cleanStatus("sendStatus"); + }); } deleteModel() { From 42200bdc635f99ecd0cf8c3c398e893c4611be63 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Sat, 19 Aug 2023 18:48:23 +0200 Subject: [PATCH 010/126] styling --- src/model-training.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/model-training.js b/src/model-training.js index 14cd6938..f755e7c2 100644 --- a/src/model-training.js +++ b/src/model-training.js @@ -121,13 +121,6 @@ class ModelTraining extends LitElement {
- + +
+
+ +
`; } diff --git a/src/static-app.js b/src/static-app.js index 67733c6f..938ba477 100644 --- a/src/static-app.js +++ b/src/static-app.js @@ -81,7 +81,7 @@ class StaticApp extends LitElement { type="button" role="tab" aria-controls="bot-modeling" - @click="${()=>this.goToModeling('bot-modeling')}" + @click="${() => this.goToModeling("bot-modeling")}" >
@@ -90,7 +90,7 @@ class StaticApp extends LitElement { - + +
diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index e69de29b..ec1079f5 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -0,0 +1,83 @@ +import { LitElement, html } from "lit"; +import config from "../../config.json"; +import { Common } from "../common.js"; +import { getInstance } from "@rwth-acis/syncmeta-widgets/src/es6/lib/yjs-sync"; + +/** + * @customElement + * + */ +class BotStats extends LitElement { + static properties = { + loading: { type: Boolean, value: true }, + }; + + createRenderRoot() { + return this; + } + + constructor() { + super(); + } + + render() { + return html`
+ bruh +
`; + } + async firstUpdated() { + const instance = getInstance({ + host: config.yjs_host, + port: config.yjs_port, + protocol: config.yjs_socket_protocol, + spaceTitle: Common.getYjsRoom(), + }); + const y = await instance.connect(); + this.y = y; + super.firstUpdated(); + + setTimeout(() => { + const botManagerEndpoint = y.getText("sbfManager").toString(); + + const botModel = y.getMap("data").get("model"); + if (botModel) { + const botElement = Object.values(botModel.nodes).find((node) => { + return node.type === "Bot"; + }); + if (botElement) { + const botName = botElement.label.value.value; + this.fetchStatistics(botName, botManagerEndpoint); + } + } + }, 300); + } + async fetchStatistics(botName, botManagerEndpoint) { + botManagerEndpoint = "http://social-bot-manager:8080/SBFManager"; + const url = `${config.pm4botsEndpoint}/bot/${botName}/enhanced-model?bot-manager-url=${botManagerEndpoint}`; + console.log(url); + try { + const response = await fetch(url, { + timeout: 10000, + headers: { + "Access-Control-Allow-Origin": "*", + "Content-Type": "application/json", + Accept: "application/json", + }, + }); + console.log(response); + if (!response.ok) { + this.loading = false; + return; + } + + const statistics = await response.json(); + console.log(statistics); + this.loading = false; + this.statistics = statistics; + } catch (error) { + console.error(error); + } + } +} + +window.customElements.define("bot-statistics", BotStats); diff --git a/src/statistics/canvas-overlay.js b/src/statistics/canvas-overlay.js index faa5c717..7989be1a 100644 --- a/src/statistics/canvas-overlay.js +++ b/src/statistics/canvas-overlay.js @@ -32,11 +32,12 @@ class CanvasStatsOverlay extends LitElement { spaceTitle: Common.getYjsRoom(), }); const y = await instance.connect(); + this.y = y; super.firstUpdated(); - const botManagerEndpoint = y.getText("sbfManager").toString(); setTimeout(() => { - const botModel = y.getMap("data").get("model"); + const botManagerEndpoint = y.getText("sbfManager").toString(); + const botModel = y.getMap("data").get("model"); if (botModel) { const botElement = Object.values(botModel.nodes).find((node) => { return node.type === "Bot"; @@ -50,7 +51,8 @@ class CanvasStatsOverlay extends LitElement { } async fetchStatistics(botName, botManagerEndpoint) { - const url = `${config.pm4botsEndpoint}/bot/${botName}/enhanced-model`; + // botManagerEndpoint = "http://social-bot-manager:8080/SBFManager" + const url = `${config.pm4botsEndpoint}/bot/${botName}/enhanced-model?bot-manager-url=${botManagerEndpoint}`; console.log(url); try { const response = await fetch(url, { @@ -71,10 +73,24 @@ class CanvasStatsOverlay extends LitElement { console.log(statistics); this.loading = false; this.statistics = statistics; + this.addMissingNodesAndEdges(statistics); } catch (error) { console.error(error); } } + + addMissingNodesAndEdges(statistics) { + // Add missing edges to bot model as overlay + const botModel = this.y.getMap("data").get("model"); + const botModelEdges = botModel.edges; + const botModelNodes = botModel.nodes; + for (const nodeId of statistics.graph.nodes) { + if (!botModelNodes[nodeId]) { + console.log("newNode", nodeId); + botModelNodes[nodeId] = node; + } + } + } } window.customElements.define("canvas-statistics-overlay", CanvasStatsOverlay); From 1c4956961676296f3c848594e243b1932e90be75 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Sat, 16 Sep 2023 14:11:37 +0200 Subject: [PATCH 024/126] wip --- src/statistics/bot-statistics.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index ec1079f5..ab77287c 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -2,7 +2,7 @@ import { LitElement, html } from "lit"; import config from "../../config.json"; import { Common } from "../common.js"; import { getInstance } from "@rwth-acis/syncmeta-widgets/src/es6/lib/yjs-sync"; - +import "pm4js/dist/pm4js_latest_w.js"; /** * @customElement * @@ -21,9 +21,7 @@ class BotStats extends LitElement { } render() { - return html`
- bruh -
`; + return html`
Bot statistics works
`; } async firstUpdated() { const instance = getInstance({ From ab3c7e30988fc92fa4932b98e7d6e9a033058d6d Mon Sep 17 00:00:00 2001 From: lakhoune Date: Sun, 17 Sep 2023 12:44:24 +0200 Subject: [PATCH 025/126] adds draggable petri net view --- package-lock.json | 23 +++++--- package.json | 1 + src/statistics/bot-statistics.js | 97 ++++++++++++++++++++++++++++---- 3 files changed, 102 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1c43db87..3e6ea03a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@vaadin/router": "^1.7.4", "@webcomponents/webcomponentsjs": "^2.0.0", "express": "^4.17.1", + "interactjs": "^1.10.18", "las2peer-frontend-statusbar": "github:rwth-acis/las2peer-frontend-statusbar#0.4.0", "lit": "^2.0.2", "pm4js": "^0.0.28", @@ -43,8 +44,9 @@ } }, "node_modules/@interactjs/types": { - "version": "1.10.17", - "license": "MIT" + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@interactjs/types/-/types-1.10.18.tgz", + "integrity": "sha512-3a+2Kx6PhA60ekxImRQJl+EyT4lD0/kd3/PveyaLtgfNxkxnSWdUq7Ixo3Y/t1lon4EqVGZQgp+qj/QNaEs6qA==" }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", @@ -1800,10 +1802,11 @@ "license": "ISC" }, "node_modules/interactjs": { - "version": "1.10.17", - "license": "MIT", + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/interactjs/-/interactjs-1.10.18.tgz", + "integrity": "sha512-ho+Qgr5U3b3oz23Iv7MkIZGoWaTsSCRnrCL34Dtjzs5eFghwpESJeiPj9RhYKc/SgRJL9anR+2OQxFsCg4PmLA==", "dependencies": { - "@interactjs/types": "1.10.17" + "@interactjs/types": "1.10.18" } }, "node_modules/ipaddr.js": { @@ -3812,7 +3815,9 @@ "optional": true }, "@interactjs/types": { - "version": "1.10.17" + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/@interactjs/types/-/types-1.10.18.tgz", + "integrity": "sha512-3a+2Kx6PhA60ekxImRQJl+EyT4lD0/kd3/PveyaLtgfNxkxnSWdUq7Ixo3Y/t1lon4EqVGZQgp+qj/QNaEs6qA==" }, "@jridgewell/gen-mapping": { "version": "0.3.3", @@ -4993,9 +4998,11 @@ "version": "2.0.4" }, "interactjs": { - "version": "1.10.17", + "version": "1.10.18", + "resolved": "https://registry.npmjs.org/interactjs/-/interactjs-1.10.18.tgz", + "integrity": "sha512-ho+Qgr5U3b3oz23Iv7MkIZGoWaTsSCRnrCL34Dtjzs5eFghwpESJeiPj9RhYKc/SgRJL9anR+2OQxFsCg4PmLA==", "requires": { - "@interactjs/types": "1.10.17" + "@interactjs/types": "1.10.18" } }, "ipaddr.js": { diff --git a/package.json b/package.json index 59c64de9..b698eb5b 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@vaadin/router": "^1.7.4", "@webcomponents/webcomponentsjs": "^2.0.0", "express": "^4.17.1", + "interactjs": "^1.10.18", "las2peer-frontend-statusbar": "github:rwth-acis/las2peer-frontend-statusbar#0.4.0", "lit": "^2.0.2", "pm4js": "^0.0.28", diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index ab77287c..e45db94a 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -2,7 +2,7 @@ import { LitElement, html } from "lit"; import config from "../../config.json"; import { Common } from "../common.js"; import { getInstance } from "@rwth-acis/syncmeta-widgets/src/es6/lib/yjs-sync"; -import "pm4js/dist/pm4js_latest_w.js"; +import interact from "interactjs"; /** * @customElement * @@ -21,7 +21,25 @@ class BotStats extends LitElement { } render() { - return html`
Bot statistics works
`; + return html`
+
+
+
+ Loading... +
+
+
Bot statistics works
+
+
`; } async firstUpdated() { const instance = getInstance({ @@ -50,32 +68,89 @@ class BotStats extends LitElement { }, 300); } async fetchStatistics(botName, botManagerEndpoint) { - botManagerEndpoint = "http://social-bot-manager:8080/SBFManager"; - const url = `${config.pm4botsEndpoint}/bot/${botName}/enhanced-model?bot-manager-url=${botManagerEndpoint}`; + // botManagerEndpoint = "http://social-bot-manager:8080/SBFManager"; + const url = `${config.pm4botsEndpoint}/bot/${botName}/petri-net?bot-manager-url=${botManagerEndpoint}`; console.log(url); try { const response = await fetch(url, { timeout: 10000, headers: { "Access-Control-Allow-Origin": "*", - "Content-Type": "application/json", - Accept: "application/json", + Accept: "text/html", }, }); - console.log(response); if (!response.ok) { this.loading = false; return; } + const element = document.getElementById("pm-res"); - const statistics = await response.json(); - console.log(statistics); - this.loading = false; - this.statistics = statistics; + document.getElementById("pm-res").innerHTML = await response.text(); + const svg = document.getElementById("pm-res").querySelector("svg"); + svg.style.position = "absolute"; + // set height and width of svg to that of the child + svg.width.baseVal.value = svg.getBBox().width; + svg.height.baseVal.value = svg.getBBox().height; + this.centerElement(svg); + // zoom on scroll + svg.parentElement.addEventListener("wheel", (e) => { + e.preventDefault(); + if (e.deltaY < 0) { + this.zoomIn(element); + } + if (e.deltaY > 0) { + this.zoomOut(element); + } + }); + // set z index of parent frame above the svg + svg.parentElement.style.zIndex = 1; + this.makeDraggable(svg); } catch (error) { console.error(error); } } + centerElement(element) { + const bbox = element.getBBox(); + element.parentElement.scrollTo( + bbox.x + bbox.width / 2, + bbox.y + bbox.height / 2 + ); + } + + zoomIn(element) { + const svg = element.querySelector("svg"); + svg.width.baseVal.value = svg.width.baseVal.value * 1.1; + svg.height.baseVal.value = svg.height.baseVal.value * 1.1; + } + zoomOut(element) { + const svg = element.querySelector("svg"); + svg.width.baseVal.value = svg.width.baseVal.value * 0.9; + svg.height.baseVal.value = svg.height.baseVal.value * 0.9; + } + makeDraggable(element) { + interact(element).draggable({ + onmove: function (event) { + const target = event.target; + // keep the dragged position in the data-x/data-y attributes + const x = (parseFloat(target.getAttribute("data-x")) || 0) + event.dx; + const y = (parseFloat(target.getAttribute("data-y")) || 0) + event.dy; + + // translate the element + target.style.transform = "translate(" + x + "px, " + y + "px)"; + + // update the posiion attributes + target.setAttribute("data-x", x); + target.setAttribute("data-y", y); + }, + + // 'xy' by default - any direction + startAxis: "xy", + + lockAxis: "xy", + + max: 1, + }); + } } window.customElements.define("bot-statistics", BotStats); From d2b85b0ab124340ce01974c74df30fa4c3058c8e Mon Sep 17 00:00:00 2001 From: lakhoune Date: Mon, 18 Sep 2023 08:51:26 +0200 Subject: [PATCH 026/126] cors --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 9edec744..787635fb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -109,6 +109,7 @@ services: - MYSQL_DATABASE=LAS2PEERMON - SOCIAL_BOT_MANAGER_ENDPOINT=http://social-bot-manager:8080/SBFmanager - EVENT_LOG_GENERATOR_ENDPOINT=http://event-log-generator:8087 + - CORS_ORIGIN=http://localhost:8082 # Needed to prevent CORS errors ports: - "8088:8088" depends_on: From 43a32a1408a9e61720528c3f4ca8688d35fe2c9f Mon Sep 17 00:00:00 2001 From: lakhoune Date: Mon, 2 Oct 2023 12:09:49 +0200 Subject: [PATCH 027/126] add env --- docker-compose.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 787635fb..13b5dfdb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -107,10 +107,14 @@ services: - MYSQL_HOST=db - MYSQL_PORT=3306 - MYSQL_DATABASE=LAS2PEERMON + - SUCCESS_MODEL_ENDPOINT=${SUCCESS_MODEL_ENDPOINT:-http://localhost:8088} - SOCIAL_BOT_MANAGER_ENDPOINT=http://social-bot-manager:8080/SBFmanager - - EVENT_LOG_GENERATOR_ENDPOINT=http://event-log-generator:8087 + - EVENT_LOG_ENDPOINT=http://event-log-generator:8087 - CORS_ORIGIN=http://localhost:8082 # Needed to prevent CORS errors + - DEFAULT_BOT_PASSWORD = actingAgent + - DEVELOPMENT_MODE = true ports: - "8088:8088" depends_on: - db + From 97aaa8a21e166fac00dac238b5f5a21d7815a98c Mon Sep 17 00:00:00 2001 From: lakhoune Date: Mon, 2 Oct 2023 12:10:06 +0200 Subject: [PATCH 028/126] wip --- src/statistics/bot-statistics.js | 56 +++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index e45db94a..ef630d11 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -37,7 +37,41 @@ class BotStats extends LitElement { Loading...
-
Bot statistics works
+ +
+
+

Bot statistics works

+
+
+

Community statistics

+
+ + +
+
+ + +
+
+
`; } @@ -63,10 +97,30 @@ class BotStats extends LitElement { if (botElement) { const botName = botElement.label.value.value; this.fetchStatistics(botName, botManagerEndpoint); + const groupId = document.getElementById("groupId").value; + const serviceId = document.getElementById("serviceId").value; + this.fetchSuccessModel(botName, groupId, serviceId); } } }, 300); } + + async fetchSuccessModel(botName, groupID, serviceId) { + const url = `${config.pm4botsEndpoint}/bot/${botName}/success-model?group-id=${groupID}&service-id=${serviceId}`; + const res = await fetch(url, { + method: "GET", + headers: { + "Content-Type": "application/json", + }, + }); + const successModelXMl = await res.json().xml; + console.log(successModelXMl); + } + + async getSuccessMeasureList(botName, groupID, serviceId) { + const xml = await this.fetchSuccessModel(botName, groupID, serviceId); + } + async fetchStatistics(botName, botManagerEndpoint) { // botManagerEndpoint = "http://social-bot-manager:8080/SBFManager"; const url = `${config.pm4botsEndpoint}/bot/${botName}/petri-net?bot-manager-url=${botManagerEndpoint}`; From 85512b3aab5c4b85e4ad43f6eca564d63c4bf2cd Mon Sep 17 00:00:00 2001 From: lakhoune Date: Mon, 2 Oct 2023 12:35:04 +0200 Subject: [PATCH 029/126] wip --- src/statistics/bot-statistics.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index ef630d11..bdcb873b 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -45,27 +45,23 @@ class BotStats extends LitElement {

Community statistics

- +
- + From c277bd112809cec98043ad284fea5e28336cfaa3 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Mon, 2 Oct 2023 12:48:10 +0200 Subject: [PATCH 030/126] measure list --- src/statistics/bot-statistics.js | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index bdcb873b..074e1c87 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -40,7 +40,7 @@ class BotStats extends LitElement {
-

Bot statistics works

+

Bot statistics

Community statistics

@@ -66,6 +66,8 @@ class BotStats extends LitElement { disabled />
+ +
    @@ -95,13 +97,14 @@ class BotStats extends LitElement { this.fetchStatistics(botName, botManagerEndpoint); const groupId = document.getElementById("groupId").value; const serviceId = document.getElementById("serviceId").value; - this.fetchSuccessModel(botName, groupId, serviceId); + this.getSuccessMeasureList(botName, groupId, serviceId); } } }, 300); } async fetchSuccessModel(botName, groupID, serviceId) { + // const url = `https://mobsos.tech4comp.dbis.rwth-aachen.de/mobsos-success-modeling/apiv2/models/${groupID}/${serviceId}`; const url = `${config.pm4botsEndpoint}/bot/${botName}/success-model?group-id=${groupID}&service-id=${serviceId}`; const res = await fetch(url, { method: "GET", @@ -111,10 +114,30 @@ class BotStats extends LitElement { }); const successModelXMl = await res.json().xml; console.log(successModelXMl); + return successModelXMl; + } + + async fetchMeasureCatalog(groupId){ + } async getSuccessMeasureList(botName, groupID, serviceId) { - const xml = await this.fetchSuccessModel(botName, groupID, serviceId); + const res = await this.fetchSuccessModel(botName, groupID, serviceId); + const xmlString = res.xml; + const parser = new DOMParser(); + const xmlDoc = parser.parseFromString(xmlString, "text/xml"); + + const measureNames = Array.from(xmlDoc.getElementsByTagName("measure")).map( + (measure) => measure.getAttribute("name") + ); + // add them to the list + const list = document.getElementById("measure-list"); + measureNames.forEach((measureName) => { + const option = document.createElement("option"); + option.value = measureName; + option.classList.add("list-group-item"); + list.appendChild(option); + }); } async fetchStatistics(botName, botManagerEndpoint) { From f86b1afe12e585d177749912173c8be0c10c18e7 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Mon, 2 Oct 2023 15:24:54 +0200 Subject: [PATCH 031/126] wip --- src/statistics/bot-statistics.js | 100 +++++++++++++++++-------------- 1 file changed, 54 insertions(+), 46 deletions(-) diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index 074e1c87..84c915a7 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -21,57 +21,65 @@ class BotStats extends LitElement { } render() { - return html`
    -
    -
    + return html` +
    +
    - Loading... +
    + Loading... +
    -
    -
    -
    -

    Bot statistics

    -
    -
    -

    Community statistics

    -
    - - +
    +
    +

    Bot statistics

    -
    - - +
    +

    Community statistics

    +
    + + +
    +
    + + +
    + +
      - -
        -
        -
        `; +
        `; } async firstUpdated() { const instance = getInstance({ @@ -112,8 +120,7 @@ class BotStats extends LitElement { "Content-Type": "application/json", }, }); - const successModelXMl = await res.json().xml; - console.log(successModelXMl); + const successModelXMl = await res.text(); return successModelXMl; } @@ -123,7 +130,7 @@ class BotStats extends LitElement { async getSuccessMeasureList(botName, groupID, serviceId) { const res = await this.fetchSuccessModel(botName, groupID, serviceId); - const xmlString = res.xml; + const xmlString = res; const parser = new DOMParser(); const xmlDoc = parser.parseFromString(xmlString, "text/xml"); @@ -136,6 +143,7 @@ class BotStats extends LitElement { const option = document.createElement("option"); option.value = measureName; option.classList.add("list-group-item"); + option.innerText = measureName; list.appendChild(option); }); } From 19547a8becedcf2db98fc5414d2d67a7709094c9 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Mon, 2 Oct 2023 15:46:54 +0200 Subject: [PATCH 032/126] wip --- src/statistics/bot-statistics.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index 84c915a7..a8b69035 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -46,11 +46,11 @@ class BotStats extends LitElement {
        -
        -
        +
        +

        Bot statistics

        -
        +

        Community statistics

        From 3123cbe28e82f8e2c76cc9c7c5664fdefaf70a72 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Fri, 6 Oct 2023 10:59:50 +0200 Subject: [PATCH 033/126] add a configuration pane for pm4bots using yjs --- src/bot.manager.widget.js | 1 - src/main.js | 1 - src/statistics/bot-statistics.js | 87 ++++++++----- src/statistics/config-pane.js | 207 +++++++++++++++++++++++++++++++ 4 files changed, 264 insertions(+), 32 deletions(-) create mode 100644 src/statistics/config-pane.js diff --git a/src/bot.manager.widget.js b/src/bot.manager.widget.js index fd63ffa4..6418d7eb 100644 --- a/src/bot.manager.widget.js +++ b/src/bot.manager.widget.js @@ -1,5 +1,4 @@ import { html, LitElement } from "lit"; -import _ from "lodash-es"; import { getGuidanceModeling } from "@rwth-acis/syncmeta-widgets/src/es6/Guidancemodel"; import { getInstance } from "@rwth-acis/syncmeta-widgets/src/es6/lib/yjs-sync"; import { Text as YText, Map as YMap } from "yjs"; diff --git a/src/main.js b/src/main.js index ec6a425f..c8d7ef31 100644 --- a/src/main.js +++ b/src/main.js @@ -11,7 +11,6 @@ import "./statistics/bot-statistics.js"; class MainPage extends LitElement { static properties = {}; - static styles = css``; constructor() { super(); } diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index a8b69035..0297cf7c 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -3,6 +3,7 @@ import config from "../../config.json"; import { Common } from "../common.js"; import { getInstance } from "@rwth-acis/syncmeta-widgets/src/es6/lib/yjs-sync"; import interact from "interactjs"; +import "./config-pane.js"; /** * @customElement * @@ -11,6 +12,7 @@ class BotStats extends LitElement { static properties = { loading: { type: Boolean, value: true }, }; + configModal = null; createRenderRoot() { return this; @@ -21,7 +23,8 @@ class BotStats extends LitElement { } render() { - return html` -
        +
        +
        + +

        Community statistics

        -
        - - -
        -
        - - -
          -
          `; +
          + + + `; } async firstUpdated() { + this.configModal = new bootstrap.Modal("#configModal"); + const instance = getInstance({ host: config.yjs_host, port: config.yjs_port, @@ -93,6 +113,7 @@ class BotStats extends LitElement { super.firstUpdated(); setTimeout(() => { + this.configMap = y.getMap("pm4bots-config"); const botManagerEndpoint = y.getText("sbfManager").toString(); const botModel = y.getMap("data").get("model"); @@ -103,8 +124,8 @@ class BotStats extends LitElement { if (botElement) { const botName = botElement.label.value.value; this.fetchStatistics(botName, botManagerEndpoint); - const groupId = document.getElementById("groupId").value; - const serviceId = document.getElementById("serviceId").value; + const groupId = this.configMap.get("group-id").toString(); + const serviceId = this.configMap.get("service-name").toString(); this.getSuccessMeasureList(botName, groupId, serviceId); } } @@ -124,11 +145,10 @@ class BotStats extends LitElement { return successModelXMl; } - async fetchMeasureCatalog(groupId){ - - } + async fetchMeasureCatalog(groupId) {} async getSuccessMeasureList(botName, groupID, serviceId) { + if (!groupID || !serviceId) return; const res = await this.fetchSuccessModel(botName, groupID, serviceId); const xmlString = res; const parser = new DOMParser(); @@ -232,6 +252,13 @@ class BotStats extends LitElement { max: 1, }); } + + showConfigDialog() { + this.configModal.show(); + } + hideConfigDialog() { + this.configModal.hide(); + } } window.customElements.define("bot-statistics", BotStats); diff --git a/src/statistics/config-pane.js b/src/statistics/config-pane.js new file mode 100644 index 00000000..9b2ce4d8 --- /dev/null +++ b/src/statistics/config-pane.js @@ -0,0 +1,207 @@ +import { LitElement, html } from "lit-element"; +import { getInstance } from "@rwth-acis/syncmeta-widgets/src/es6/lib/yjs-sync"; +import { Common } from "../common.js"; +import config from "../../config.json"; +import Quill from "quill"; +import { QuillBinding } from "y-quill"; +import { Text as YText } from "yjs"; + +const keyboardEnterPrevent = { + bindings: { + shift_enter: { + key: 13, + shiftKey: true, + handler: () => {}, + }, + enter: { + key: 13, + handler: () => {}, + }, + }, +}; + +class Pm4BotsConfig extends LitElement { + static get properties() { + return { + message: { type: String }, + }; + } + + constructor() { + super(); + } + + render() { + return html` + + + +
          +
          + +
          +
          +
          +
          + +
          +
          +
          + +
          +
          +
          + +
          +
          +
          + +
          +
          +
          + +
          +
          +
          +
          + `; + } + async firstUpdated() { + super.firstUpdated(); + const instance = getInstance({ + host: config.yjs_host, + port: config.yjs_port, + protocol: config.yjs_socket_protocol, + spaceTitle: Common.getYjsRoom(), + }); + const doc = await instance.connect(); + await new Promise((resolve) => setTimeout(resolve, 100)); + + this.initConfigMap(doc.getMap("pm4bots-config")); + } + + initConfigMap(configMap) { + this.configMap = configMap; + + this.eventLogEndpoint = new Quill( + this.shadowRoot.getElementById("event-log-endpoint"), + { + modules: { + toolbar: false, // toolbar options + keyboard: keyboardEnterPrevent, + }, + cursors: false, + placeholder: "https://event-log-endpoint", + theme: "snow", // or 'bubble' + } + ); + this.pm4botsEndpoint = new Quill( + this.shadowRoot.getElementById("pm4bots-endpoint"), + { + modules: { + toolbar: false, // toolbar options + keyboard: keyboardEnterPrevent, + }, + cursors: false, + placeholder: "https://pm4bots-endpoint", + theme: "snow", // or 'bubble' + } + ); + + this.successModelingEndpoint = new Quill( + this.shadowRoot.getElementById("success-modeling-endpoint"), + { + modules: { + toolbar: false, // toolbar options + keyboard: keyboardEnterPrevent, + }, + cursors: false, + placeholder: "https://success-modeling-endpoint", + theme: "snow", // or 'bubble' + } + ); + + this.queryVizEndpoint = new Quill( + this.shadowRoot.getElementById("query-viz-endpoint"), + { + modules: { + toolbar: false, // toolbar options + keyboard: keyboardEnterPrevent, + }, + cursors: false, + placeholder: "https://query-viz-endpoint", + theme: "snow", // or 'bubble' + } + ); + this.serviceName = new Quill( + this.shadowRoot.getElementById("service-name"), + { + modules: { + toolbar: false, // toolbar options + keyboard: keyboardEnterPrevent, + }, + cursors: false, + placeholder: "i5.las2peer.services.mensaService.MensaService", + theme: "snow", // or 'bubble' + } + ); + this.groupId = new Quill(this.shadowRoot.getElementById("group-id"), { + modules: { + toolbar: false, // toolbar options + keyboard: keyboardEnterPrevent, + }, + cursors: false, + placeholder: + "343da947a6db1296fadb5eca3... (you can find it using the contact service)", + theme: "snow", // or 'bubble' + }); + if (!this.configMap.has("pm4bots-endpoint")) { + this.configMap.set("pm4bots-endpoint", new YText()); + } + if (!this.configMap.has("event-log-endpoint")) { + this.configMap.set("event-log-endpoint", new YText()); + } + if (!this.configMap.has("success-modeling-endpoint")) { + this.configMap.set("success-modeling-endpoint", new YText()); + } + if (!this.configMap.has("query-viz-endpoint")) { + this.configMap.set("query-viz-endpoint", new YText()); + } + if (!this.configMap.has("service-name")) { + this.configMap.set("service-name", new YText()); + } + if (!this.configMap.has("group-id")) { + this.configMap.set("group-id", new YText()); + } + new QuillBinding( + this.configMap.get("pm4bots-endpoint"), + this.pm4botsEndpoint + ); + new QuillBinding( + this.configMap.get("event-log-endpoint"), + this.eventLogEndpoint + ); + new QuillBinding( + this.configMap.get("success-modeling-endpoint"), + this.successModelingEndpoint + ); + new QuillBinding( + this.configMap.get("query-viz-endpoint"), + this.queryVizEndpoint + ); + new QuillBinding(this.configMap.get("service-name"), this.serviceName); + new QuillBinding(this.configMap.get("group-id"), this.groupId); + } +} + +customElements.define("pm4bots-config", Pm4BotsConfig); From f1baaad504c12722f40a1d0d6420cc6fd2a57864 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Sat, 7 Oct 2023 12:09:07 +0200 Subject: [PATCH 034/126] dynamic form for config --- src/statistics/config-pane.js | 179 ++++++++++------------------------ 1 file changed, 49 insertions(+), 130 deletions(-) diff --git a/src/statistics/config-pane.js b/src/statistics/config-pane.js index 9b2ce4d8..df6591e8 100644 --- a/src/statistics/config-pane.js +++ b/src/statistics/config-pane.js @@ -27,6 +27,36 @@ class Pm4BotsConfig extends LitElement { }; } + configOptions = [ + { + id: "pm4bots-endpoint", + label: "Pm4Bots Endpoint", + placeholder: "https://pm4bots-endpoint", + }, + { + id: "sbm-endpoint", + label: "Social Bot Manager Endpoint", + placeholder: "https://sbm-endpoint", + }, + { + id: "event-log-endpoint", + label: "Event Log Endpoint", + placeholder: "https://event-log-endpoint", + }, + { + id: "success-modeling-endpoint", + label: "Success Modeling Endpoint", + placeholder: "https://success-modeling-endpoint", + }, + { + id: "query-viz-endpoint", + label: "Query Visualization Endpoint", + placeholder: "https://query-viz-endpoint", + }, + { id: "service-name", label: "Service name", placeholder: "My Service" }, + { id: "group-id", label: "Group Id", placeholder: "123456" }, + ]; + constructor() { super(); } @@ -45,34 +75,14 @@ class Pm4BotsConfig extends LitElement { />
          -
          - -
          -
          -
          -
          - -
          -
          -
          - -
          -
          -
          - -
          -
          -
          - -
          -
          -
          - -
          -
          -
          + ${this.configOptions.map( + (item) => html` +
          + +
          +
          + ` + )}
          `; } @@ -85,7 +95,7 @@ class Pm4BotsConfig extends LitElement { spaceTitle: Common.getYjsRoom(), }); const doc = await instance.connect(); - await new Promise((resolve) => setTimeout(resolve, 100)); + await new Promise((resolve) => setTimeout(resolve, 400)); this.initConfigMap(doc.getMap("pm4bots-config")); } @@ -93,114 +103,23 @@ class Pm4BotsConfig extends LitElement { initConfigMap(configMap) { this.configMap = configMap; - this.eventLogEndpoint = new Quill( - this.shadowRoot.getElementById("event-log-endpoint"), - { - modules: { - toolbar: false, // toolbar options - keyboard: keyboardEnterPrevent, - }, - cursors: false, - placeholder: "https://event-log-endpoint", - theme: "snow", // or 'bubble' - } - ); - this.pm4botsEndpoint = new Quill( - this.shadowRoot.getElementById("pm4bots-endpoint"), - { - modules: { - toolbar: false, // toolbar options - keyboard: keyboardEnterPrevent, - }, - cursors: false, - placeholder: "https://pm4bots-endpoint", - theme: "snow", // or 'bubble' - } - ); + for (const value of this.configOptions) { + const key = value.id; - this.successModelingEndpoint = new Quill( - this.shadowRoot.getElementById("success-modeling-endpoint"), - { + const editor = new Quill(this.shadowRoot.getElementById(key), { modules: { - toolbar: false, // toolbar options + toolbar: false, keyboard: keyboardEnterPrevent, }, cursors: false, - placeholder: "https://success-modeling-endpoint", - theme: "snow", // or 'bubble' + placeholder: value.placeholder, + theme: "snow", + }); + if (!this.configMap.has(key)) { + this.configMap.set(key, new YText()); } - ); - - this.queryVizEndpoint = new Quill( - this.shadowRoot.getElementById("query-viz-endpoint"), - { - modules: { - toolbar: false, // toolbar options - keyboard: keyboardEnterPrevent, - }, - cursors: false, - placeholder: "https://query-viz-endpoint", - theme: "snow", // or 'bubble' - } - ); - this.serviceName = new Quill( - this.shadowRoot.getElementById("service-name"), - { - modules: { - toolbar: false, // toolbar options - keyboard: keyboardEnterPrevent, - }, - cursors: false, - placeholder: "i5.las2peer.services.mensaService.MensaService", - theme: "snow", // or 'bubble' - } - ); - this.groupId = new Quill(this.shadowRoot.getElementById("group-id"), { - modules: { - toolbar: false, // toolbar options - keyboard: keyboardEnterPrevent, - }, - cursors: false, - placeholder: - "343da947a6db1296fadb5eca3... (you can find it using the contact service)", - theme: "snow", // or 'bubble' - }); - if (!this.configMap.has("pm4bots-endpoint")) { - this.configMap.set("pm4bots-endpoint", new YText()); - } - if (!this.configMap.has("event-log-endpoint")) { - this.configMap.set("event-log-endpoint", new YText()); - } - if (!this.configMap.has("success-modeling-endpoint")) { - this.configMap.set("success-modeling-endpoint", new YText()); - } - if (!this.configMap.has("query-viz-endpoint")) { - this.configMap.set("query-viz-endpoint", new YText()); - } - if (!this.configMap.has("service-name")) { - this.configMap.set("service-name", new YText()); - } - if (!this.configMap.has("group-id")) { - this.configMap.set("group-id", new YText()); + new QuillBinding(this.configMap.get(key), editor); } - new QuillBinding( - this.configMap.get("pm4bots-endpoint"), - this.pm4botsEndpoint - ); - new QuillBinding( - this.configMap.get("event-log-endpoint"), - this.eventLogEndpoint - ); - new QuillBinding( - this.configMap.get("success-modeling-endpoint"), - this.successModelingEndpoint - ); - new QuillBinding( - this.configMap.get("query-viz-endpoint"), - this.queryVizEndpoint - ); - new QuillBinding(this.configMap.get("service-name"), this.serviceName); - new QuillBinding(this.configMap.get("group-id"), this.groupId); } } From 1204c3cca9539c54d1d7580e07f38262fb9d0951 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Sat, 7 Oct 2023 12:09:21 +0200 Subject: [PATCH 035/126] search measures --- src/statistics/bot-statistics.js | 90 +++++++++++++++++++++++++++----- 1 file changed, 78 insertions(+), 12 deletions(-) diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index 0297cf7c..d647f508 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -27,6 +27,9 @@ class BotStats extends LitElement { + `; } async firstUpdated() { super.firstUpdated(); @@ -318,6 +318,7 @@ function addMissingNode(node, boundingBox) { let bgClass = "bg-dark"; if (!node.label || node.label === "empty" || node.label === "empty_intent") { bgClass = "bg-secondary"; + return; } else if (node.label === "unrecognizedIntent") { bgClass = "bg-warning"; } From 9c6edaedfa7649a7784e5789f5e3847cbf1826c9 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Thu, 30 Nov 2023 17:01:35 +0100 Subject: [PATCH 110/126] fix copy to clipboard --- src/statistics/recommender/custom-improvements.js | 10 +++------- src/statistics/recommender/general-improvements.js | 9 ++------- src/statistics/recommender/intent-improvements.js | 9 ++------- 3 files changed, 7 insertions(+), 21 deletions(-) diff --git a/src/statistics/recommender/custom-improvements.js b/src/statistics/recommender/custom-improvements.js index e6bdf7a7..44734a72 100644 --- a/src/statistics/recommender/custom-improvements.js +++ b/src/statistics/recommender/custom-improvements.js @@ -215,14 +215,10 @@ class IntentImprovement extends LitElement { this.shadowRoot.querySelector("#askGPTButton").disabled = false; } } + copyToClipboard() { - const copyText = this.shadowRoot.querySelector("#chatgptRes"); - const textArea = document.createElement("textarea"); - textArea.value = copyText.textContent; - document.body.appendChild(textArea); - textArea.select(); - document.execCommand("Copy"); - textArea.remove(); + const resDiv = this.shadowRoot.querySelector("#chatgptRes"); + navigator.clipboard.writeText(resDiv.innerText); } } diff --git a/src/statistics/recommender/general-improvements.js b/src/statistics/recommender/general-improvements.js index b1745f05..3c36fc3f 100644 --- a/src/statistics/recommender/general-improvements.js +++ b/src/statistics/recommender/general-improvements.js @@ -74,13 +74,8 @@ class GeneralImprovement extends LitElement { } copyToClipboard() { - const copyText = this.shadowRoot.querySelector("#chatgptRes"); - const textArea = document.createElement("textarea"); - textArea.value = copyText.textContent; - document.body.appendChild(textArea); - textArea.select(); - document.execCommand("Copy"); - textArea.remove(); + const resDiv = this.shadowRoot.querySelector("#chatgptRes"); + navigator.clipboard.writeText(resDiv.innerText); } async firstUpdated() { diff --git a/src/statistics/recommender/intent-improvements.js b/src/statistics/recommender/intent-improvements.js index 1a8cd758..38d12631 100644 --- a/src/statistics/recommender/intent-improvements.js +++ b/src/statistics/recommender/intent-improvements.js @@ -91,13 +91,8 @@ class IntentImprovement extends LitElement { } copyToClipboard() { - const copyText = this.shadowRoot.querySelector("#chatgptRes"); - const textArea = document.createElement("textarea"); - textArea.value = copyText.textContent; - document.body.appendChild(textArea); - textArea.select(); - document.execCommand("Copy"); - textArea.remove(); + const resDiv = this.shadowRoot.querySelector("#chatgptRes"); + navigator.clipboard.writeText(resDiv.innerText); } async askGPT() { From ad68566ce533574afd5a56c71fb5678a3d4ef69b Mon Sep 17 00:00:00 2001 From: lakhoune Date: Thu, 30 Nov 2023 17:10:42 +0100 Subject: [PATCH 111/126] fix copy to clipboard --- .../recommender/custom-improvements.js | 15 ++++++++++++++- .../recommender/general-improvements.js | 16 +++++++++++++++- .../recommender/intent-improvements.js | 15 ++++++++++++++- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/src/statistics/recommender/custom-improvements.js b/src/statistics/recommender/custom-improvements.js index 44734a72..8235f8ef 100644 --- a/src/statistics/recommender/custom-improvements.js +++ b/src/statistics/recommender/custom-improvements.js @@ -218,7 +218,20 @@ class IntentImprovement extends LitElement { copyToClipboard() { const resDiv = this.shadowRoot.querySelector("#chatgptRes"); - navigator.clipboard.writeText(resDiv.innerText); + const clipBoardBtn = this.shadowRoot.querySelector( + "#copyToClipboardButton" + ); + try { + navigator.clipboard.writeText(resDiv.innerText); + clipBoardBtn.classList.remove("btn-outline-secondary"); + clipBoardBtn.classList.add("btn-success"); + setTimeout(() => { + clipBoardBtn.classList.remove("btn-success"); + clipBoardBtn.classList.add("btn-outline-secondary"); + }, 1000); + } catch (error) { + console.error(error); + } } } diff --git a/src/statistics/recommender/general-improvements.js b/src/statistics/recommender/general-improvements.js index 3c36fc3f..a0411624 100644 --- a/src/statistics/recommender/general-improvements.js +++ b/src/statistics/recommender/general-improvements.js @@ -56,6 +56,7 @@ class GeneralImprovement extends LitElement {
          From ace2e3d1f0de59a478862d9bc8896324fd532dca Mon Sep 17 00:00:00 2001 From: lakhoune Date: Fri, 5 Jan 2024 17:03:38 +0100 Subject: [PATCH 119/126] newline --- src/statistics/bot-statistics.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index 9a8611f9..02584f90 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -122,6 +122,7 @@ class BotStats extends LitElement {
          Average conversation length: ${this.statistics?.averageConversationLength} +
          ${this.statistics?.conformance?.fitness?.averageFitness != null From 4bd47715e91e9544aa70fc697619829d7a6e368b Mon Sep 17 00:00:00 2001 From: lakhoune Date: Tue, 30 Jan 2024 11:54:33 +0100 Subject: [PATCH 120/126] adds option to enhance the model, default is without --- src/statistics/bot-statistics.js | 130 ++++++++++++++++++++----------- 1 file changed, 85 insertions(+), 45 deletions(-) diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index 02584f90..d9b4fc6f 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -15,8 +15,10 @@ class BotStats extends LitElement { loading: { type: Boolean, value: true }, alertMessage: { type: String }, statistics: { type: Object }, - selectedMeasure: { type: Object, state: true , value: null}, + selectedMeasure: { type: Object, state: true, value: null }, successModelLoaded: { type: Boolean, state: true }, + enhance: { type: Boolean, state: true, value: false }, + selectedModel: { type: String, state: true, value: "petri-net" }, }; configModal = null; @@ -60,20 +62,22 @@ class BotStats extends LitElement {
          - ${this.alertMessage - ? html`` - : ""} + ${ + this.alertMessage + ? html`` + : "" + }
          Loading...
          - +
          + + +
          +
          +
          @@ -124,21 +154,23 @@ class BotStats extends LitElement { ${this.statistics?.averageConversationLength}
          - ${this.statistics?.conformance?.fitness?.averageFitness != - null - ? html` Deviating conversations: - - ${Math.round( - 100 * - (1 - - this.statistics?.conformance?.fitness - ?.averageFitness) * - 100 - ) / 100} - % -
          ` - : ""} + ${ + this.statistics?.conformance?.fitness?.averageFitness != + null + ? html` Deviating conversations: + + ${Math.round( + 100 * + (1 - + this.statistics?.conformance?.fitness + ?.averageFitness) * + 100 + ) / 100} + % +
          ` + : "" + }
          @@ -161,8 +193,9 @@ class BotStats extends LitElement { class="spinner-border position-absolute" role="status" style="top:50%;left:50%;" - ?hidden="${this.successModelLoaded || - this.alertMessage != null}" + ?hidden="${ + this.successModelLoaded || this.alertMessage != null + }" > Loading...
          @@ -217,6 +250,7 @@ class BotStats extends LitElement { `; } firstUpdated() { + this.selectedModel = "petri-net"; // listen for the router to change to #bot-statistics window.addEventListener("hashchange", async () => { this.init = false; @@ -225,13 +259,19 @@ class BotStats extends LitElement { }); this.runInit(); } - changeView(e) { - if (e.target.value === "petri-net") { + changeView() { + if (this.selectedModel === "petri-net") { this.loading = true; - this.fetchConversationModel(this.configMap.get("bot-name")?.toString()); + this.fetchConversationModel( + this.configMap.get("bot-name")?.toString(), + this.enhance + ); } else { this.loading = true; - this.fetchBPMNModel(this.configMap.get("bot-name")?.toString()); + this.fetchBPMNModel( + this.configMap.get("bot-name")?.toString(), + this.enhance + ); } } @@ -385,7 +425,7 @@ class BotStats extends LitElement { } } - async fetchBPMNModel(botName) { + async fetchBPMNModel(botName, enhance = false) { if (!botName) { return; } @@ -413,7 +453,7 @@ class BotStats extends LitElement { let url = joinAbsoluteUrlPath(pm4botsEndpointInput, "bot", botName, "bpmn"); url += `?bot-manager-url=${botManagerEndpointInput}`; url += `&event-log-url=${eventLogEndpointInput}`; - url += `&enhance=${true}`; + url += `&enhance=${enhance}`; try { const response = await fetch(url, { @@ -473,7 +513,7 @@ class BotStats extends LitElement { } } - async fetchConversationModel(botName) { + async fetchConversationModel(botName, enhance = false) { if (!botName) { return; } @@ -505,7 +545,7 @@ class BotStats extends LitElement { ); url += `?bot-manager-url=${botManagerEndpointInput}`; url += `&event-log-url=${eventLogEndpointInput}`; - url += `&enhance=${true}`; + url += `&enhance=${enhance}`; try { const response = await fetch(url, { From cfc20e15eda80ed0c70c4fe9e97ee97db26f35f6 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Tue, 30 Jan 2024 12:14:48 +0100 Subject: [PATCH 121/126] hide missingNodes for now --- src/statistics/canvas-overlay.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/statistics/canvas-overlay.js b/src/statistics/canvas-overlay.js index 66b7f622..3c7f1049 100644 --- a/src/statistics/canvas-overlay.js +++ b/src/statistics/canvas-overlay.js @@ -189,7 +189,7 @@ class CanvasStatsOverlay extends LitElement { // add missing nodes to canvas for (const node of statistics.graph.nodes) { if (!botModelNodes[node.id] && !addedNodes.includes(node.id)) { - addMissingNode(node, boundingBox); + // addMissingNode(node, boundingBox); addedNodes.push(node.id); } } From 5ee3d8b1d3b7ae33380a6559759dc9a7f5898ae5 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Sun, 4 Feb 2024 12:28:52 +0100 Subject: [PATCH 122/126] use post --- src/statistics/bot-statistics.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/statistics/bot-statistics.js b/src/statistics/bot-statistics.js index d9b4fc6f..1b112ee1 100644 --- a/src/statistics/bot-statistics.js +++ b/src/statistics/bot-statistics.js @@ -441,6 +441,8 @@ class BotStats extends LitElement { .get("event-log-endpoint") .toString(); + const botModel = this.y.getMap("data").get('model') + if ( !botManagerEndpointInput || !pm4botsEndpointInput || @@ -457,13 +459,17 @@ class BotStats extends LitElement { try { const response = await fetch(url, { + method: "POST", timeout: 10000, headers: { "Access-Control-Allow-Origin": "*", Accept: "text/html", + "Content-Type": "application/json", }, + body: JSON.stringify({ + "bot-model": botModel, + }), }); - if (!response.ok) { try { const body = await response.json(); @@ -528,6 +534,8 @@ class BotStats extends LitElement { .get("event-log-endpoint") .toString(); + const botModel = this.y.getMap("data").get('model') + if ( !botManagerEndpointInput || !pm4botsEndpointInput || @@ -549,11 +557,17 @@ class BotStats extends LitElement { try { const response = await fetch(url, { + method: "POST", timeout: 10000, headers: { "Access-Control-Allow-Origin": "*", Accept: "text/html", + 'Content-type': 'application/json' }, + + body: JSON.stringify({ + "bot-model": botModel, + }), }); if (!response.ok) { From 6e07a5f021fc744ef4039a396781572062a71d41 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Thu, 8 Feb 2024 12:08:48 +0100 Subject: [PATCH 123/126] fix for new version --- src/statistics/canvas-overlay.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/statistics/canvas-overlay.js b/src/statistics/canvas-overlay.js index 3c7f1049..948539f2 100644 --- a/src/statistics/canvas-overlay.js +++ b/src/statistics/canvas-overlay.js @@ -116,14 +116,14 @@ class CanvasStatsOverlay extends LitElement { let currFrequencyMax = 0; let currFrequencyMin = Infinity; for (const edge of statistics.graph.edges) { - if (edge.performance?.mean > currDurationMax) { - currDurationMax = edge.performance?.mean; + if (edge.performance > currDurationMax) { + currDurationMax = edge.performance; } if (edge.frequency > currFrequencyMax) { currFrequencyMax = edge.frequency; } - if (edge.performance?.mean < currDurationMin) { - currDurationMin = edge.performance?.mean; + if (edge.performance < currDurationMin) { + currDurationMin = edge.performance; } if (edge.frequency < currFrequencyMin) { currFrequencyMin = edge.frequency; @@ -153,16 +153,19 @@ class CanvasStatsOverlay extends LitElement { ); return; } + const botModel = this.y.getMap("data").get("model"); const url = `${pm4botsEndpointInput}/bot/${botName}/enhanced-model?bot-manager-url=${botManagerEndpointInput}&event-log-url=${eventLogEndpointInput}`; try { const response = await fetch(url, { + method: "POST", timeout: 10000, headers: { "Access-Control-Allow-Origin": "*", "Content-Type": "application/json", Accept: "application/json", }, + body: JSON.stringify({'bot-model':botModel}), }); this.loading = false; @@ -214,11 +217,11 @@ class CanvasStatsOverlay extends LitElement { addOverlayToExistingEdge( sourceNode, targetNode, - edge.performance?.mean, + edge.performance, this ); } else if (!findEdgeInAddedEdges(addedEdges, sourceId, targetId)) { - addMissingEdge(sourceNode, targetNode, edge.performance?.mean, this); + addMissingEdge(sourceNode, targetNode, edge.performance, this); addedEdges.push({ sourceId, targetId }); } } @@ -283,14 +286,14 @@ class CanvasStatsOverlay extends LitElement { } else { const label = type === "duration" - ? edge.performance?.mean - ? edge.performance?.mean.toFixed(2) + "s" + ? edge.performance + ? edge.performance.toFixed(2) + "s" : "" : edge.frequency; const metric = type === "duration" - ? edge.performance?.mean - ? edge.performance?.mean.toFixed(2) + ? edge.performance + ? edge.performance.toFixed(2) : 0 : edge.frequency; updateOverlay(sourceNode, targetNode, label, type, this, metric); From e6997152eba6eeb2567b1fde91b654bf8a76bb32 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Tue, 27 Feb 2024 14:29:03 +0100 Subject: [PATCH 124/126] update env --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index c853b8e6..82124cdc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -106,7 +106,7 @@ services: - MYSQL_PASSWORD=root - MYSQL_HOST=db - MYSQL_PORT=3306 - - MYSQL_DATABASE=LAS2PEERMON + - MYSQL_EVENTS_DB=LAS2PEERMON - CORS_ORIGIN=http://localhost:8082 # Needed to prevent CORS errors - DEFAULT_BOT_PASSWORD = actingAgent - DEVELOPMENT_MODE = true From 682b4f6e6dc2ae9d8e77d66aaa2c568fca04049f Mon Sep 17 00:00:00 2001 From: lakhoune Date: Sun, 3 Mar 2024 14:43:32 +0100 Subject: [PATCH 125/126] improve dropdowns --- src/bot-modeling.js | 2 +- src/bot.manager.widget.js | 24 +++ .../improvements-recommender.js | 6 +- .../recommender/custom-improvements.js | 6 +- .../recommender/general-improvements.js | 10 +- .../recommender/intent-improvements.js | 6 +- src/statistics/bot-statistics.js | 183 ++++-------------- 7 files changed, 83 insertions(+), 154 deletions(-) rename src/{statistics => }/improvements-recommender.js (98%) rename src/{statistics => }/recommender/custom-improvements.js (98%) rename src/{statistics => }/recommender/general-improvements.js (96%) rename src/{statistics => }/recommender/intent-improvements.js (98%) diff --git a/src/bot-modeling.js b/src/bot-modeling.js index e85bffed..982092fe 100644 --- a/src/bot-modeling.js +++ b/src/bot-modeling.js @@ -5,7 +5,7 @@ import config from "../config.json"; import { Common } from "./common.js"; import { getInstance } from "@rwth-acis/syncmeta-widgets/src/es6/lib/yjs-sync"; import { ifDefined } from "lit/directives/if-defined.js"; -import "./statistics/improvements-recommender.js"; +import "./improvements-recommender.js"; /** * @customElement * diff --git a/src/bot.manager.widget.js b/src/bot.manager.widget.js index a7bc4117..f92b3629 100644 --- a/src/bot.manager.widget.js +++ b/src/bot.manager.widget.js @@ -83,6 +83,30 @@ class BotManagerWidget extends LitElement { .catch((error) => { console.error("Error while fetching models:", error); }); + + const bots = await this.fetchCurrentBotIDsFromBotManager( + endpoint + ); + y.getMap("data").set("bots", bots); + } + + async fetchCurrentBotIDsFromBotManager(botManagerUrl) { + const response = await fetch(botManagerUrl + "/bots"); + + if (response.ok) { + const json = await response.json(); + const result = {}; + for (const [id, botDefinition] of Object.entries(json)) { + if (botDefinition.name in result) { + result[botDefinition.name].push(id); + } else { + result[botDefinition.name] = [id]; + } + } + return result; + } else { + throw new Error("Failed to fetch bots."); + } } loadModel() { diff --git a/src/statistics/improvements-recommender.js b/src/improvements-recommender.js similarity index 98% rename from src/statistics/improvements-recommender.js rename to src/improvements-recommender.js index 40c05f49..e0405ca2 100644 --- a/src/statistics/improvements-recommender.js +++ b/src/improvements-recommender.js @@ -1,6 +1,6 @@ import { LitElement, html, css } from "lit"; -import config from "../../config.json"; -import { Common } from "../common.js"; +import config from "../config.json"; +import { Common } from "./common.js"; import { getInstance } from "@rwth-acis/syncmeta-widgets/src/es6/lib/yjs-sync"; import "./recommender/general-improvements.js"; import "./recommender/intent-improvements.js"; @@ -61,7 +61,7 @@ class ImprovementRec extends LitElement {
          -
          - + + + + + + -
          - - -
          -
          + + @@ -260,19 +255,11 @@ class BotStats extends LitElement { this.runInit(); } changeView() { - if (this.selectedModel === "petri-net") { - this.loading = true; - this.fetchConversationModel( - this.configMap.get("bot-name")?.toString(), - this.enhance - ); - } else { - this.loading = true; - this.fetchBPMNModel( - this.configMap.get("bot-name")?.toString(), - this.enhance - ); - } + this.fetchAndReplaceModel( + this.configMap.get("bot-name")?.toString(), + this.modelType, + this.selectedModel + ); } async runInit() { @@ -299,7 +286,7 @@ class BotStats extends LitElement { }); if (botElement) { const botName = botElement.label.value.value; - this.fetchConversationModel(botName); + this.fetchAndReplaceModel(botName); this.getSuccessMeasureList(botName); this.fetchMeasureCatalog(botName); this.fetchBotStatistics(botName); @@ -425,11 +412,14 @@ class BotStats extends LitElement { } } - async fetchBPMNModel(botName, enhance = false) { + async fetchAndReplaceModel( + botName, + modelType = "de-jure", + kind = "petri-net" + ) { if (!botName) { return; } - document.getElementById("pm-res").querySelector("svg")?.remove(); const botManagerEndpointInput = this.configMap .get("sbm-endpoint") @@ -440,8 +430,7 @@ class BotStats extends LitElement { const eventLogEndpointInput = this.configMap .get("event-log-endpoint") .toString(); - - const botModel = this.y.getMap("data").get('model') + const botModel = this.y.getMap("data").get("model"); if ( !botManagerEndpointInput || @@ -452,108 +441,20 @@ class BotStats extends LitElement { "Make sure to configure the endpoints using the button on the top right"; return; } - let url = joinAbsoluteUrlPath(pm4botsEndpointInput, "bot", botName, "bpmn"); - url += `?bot-manager-url=${botManagerEndpointInput}`; - url += `&event-log-url=${eventLogEndpointInput}`; - url += `&enhance=${enhance}`; - - try { - const response = await fetch(url, { - method: "POST", - timeout: 10000, - headers: { - "Access-Control-Allow-Origin": "*", - Accept: "text/html", - "Content-Type": "application/json", - }, - body: JSON.stringify({ - "bot-model": botModel, - }), - }); - if (!response.ok) { - try { - const body = await response.json(); - this.alertMessage = `${body.error}`; - } catch (error) { - this.alertMessage = `An unknown Error occurred (${response.status})`; - } - return; - } - const responseText = await response.text(); - if (isErrorResponse(responseText)) { - this.alertMessage = `Error from server`; - return; - } - - this.loading = false; - const element = document.getElementById("pm-res"); - - // create a new div and insert the svg into it - const div = document.createElement("div"); - div.innerHTML = responseText; - - document.getElementById("pm-res").appendChild(div); - - const svg = document.getElementById("pm-res").querySelector("svg"); - svg.style.position = "absolute"; - // set height and width of svg to that of the child - svg.width.baseVal.value = svg.getBBox().width; - svg.height.baseVal.value = svg.getBBox().height; - this.centerElement(svg); - // zoom on scroll - svg.parentElement.addEventListener("wheel", (e) => { - e.preventDefault(); - if (e.deltaY < 0) { - this.zoomIn(element); - } - if (e.deltaY > 0) { - this.zoomOut(element); - } - }); - // set z index of parent frame above the svg - svg.parentElement.style.zIndex = 1; - this.makeDraggable(svg); - } catch (error) { - this.alertMessage = `Server not reachable. Reason: ${error?.message}`; - console.error(error); - } - } - - async fetchConversationModel(botName, enhance = false) { - if (!botName) { - return; - } + this.loading = true; document.getElementById("pm-res").querySelector("svg")?.remove(); - const botManagerEndpointInput = this.configMap - .get("sbm-endpoint") - .toString(); - const pm4botsEndpointInput = this.configMap - .get("pm4bots-endpoint") - .toString(); - const eventLogEndpointInput = this.configMap - .get("event-log-endpoint") - .toString(); - const botModel = this.y.getMap("data").get('model') - - if ( - !botManagerEndpointInput || - !pm4botsEndpointInput || - !eventLogEndpointInput - ) { - this.alertMessage = - "Make sure to configure the endpoints using the button on the top right"; - return; - } - let url = joinAbsoluteUrlPath( - pm4botsEndpointInput, - "bot", - botName, - "petri-net" - ); + let url = joinAbsoluteUrlPath(pm4botsEndpointInput, "bot", botName, kind); url += `?bot-manager-url=${botManagerEndpointInput}`; url += `&event-log-url=${eventLogEndpointInput}`; - url += `&enhance=${enhance}`; + switch (modelType) { + case "de-facto": + url += `&discover=true`; + break; + case "enhanced": + url += `&enhance=true`; + break; + } try { const response = await fetch(url, { @@ -562,7 +463,7 @@ class BotStats extends LitElement { headers: { "Access-Control-Allow-Origin": "*", Accept: "text/html", - 'Content-type': 'application/json' + "Content-type": "application/json", }, body: JSON.stringify({ From 81504a7d08f3692c77455ca9ad6efe0c55aa4dd7 Mon Sep 17 00:00:00 2001 From: lakhoune Date: Mon, 4 Mar 2024 11:04:02 +0100 Subject: [PATCH 126/126] bump version --- package-lock.json | 1043 ++++++++++++++++++++++++--------------------- package.json | 3 +- 2 files changed, 555 insertions(+), 491 deletions(-) diff --git a/package-lock.json b/package-lock.json index d9375edb..b0987a84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "social-bot-framework", - "version": "1.3.3", + "version": "1.4.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "social-bot-framework", - "version": "1.3.3", + "version": "1.4.0", "dependencies": { "@rwth-acis/syncmeta-widgets": "^2.4.9", "@vaadin/router": "^1.7.4", @@ -15,7 +15,6 @@ "interactjs": "^1.10.18", "las2peer-frontend-statusbar": "github:rwth-acis/las2peer-frontend-statusbar#0.4.0", "lit": "^2.0.2", - "pm4js": "^0.0.28", "quill": "^1.3.7", "vite": "^4.1.0", "y-quill": "^0.1.5", @@ -29,12 +28,328 @@ "@web/rollup-plugin-html": "^1.11.0" } }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.19", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", "cpu": [ "x64" ], - "license": "MIT", "optional": true, "os": [ "win32" @@ -499,9 +814,9 @@ } }, "node_modules/@rwth-acis/syncmeta-widgets": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@rwth-acis/syncmeta-widgets/-/syncmeta-widgets-2.4.9.tgz", - "integrity": "sha512-4m0GxNTJ0QJqjCk0ssRG9KdisHJuZ2fw/FIdTdKjHWsPTjFOnOrNs4lXomZz54FXmndjBWPasm/XwX6AekYBVg==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@rwth-acis/syncmeta-widgets/-/syncmeta-widgets-2.4.10.tgz", + "integrity": "sha512-M9/lzogxNAK1JaHDus8KjUKIoIn8l/97hxGakmvQLX/og75HnE0Psicfd2I+fkR+5xS6gau6uEIIQQDguJNtZw==", "dependencies": { "@jsplumb/browser-ui": "^6.0.5", "dagre": "^0.8.5", @@ -531,42 +846,23 @@ "node": ">=10.13.0" } }, - "node_modules/@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.1", "dev": true, "license": "MIT" }, - "node_modules/@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/node": { "version": "20.6.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.2.tgz", - "integrity": "sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==" + "integrity": "sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==", + "optional": true, + "peer": true }, "node_modules/@types/parse5": { "version": "6.0.3", "dev": true, "license": "MIT" }, - "node_modules/@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==" - }, "node_modules/@types/resolve": { "version": "1.20.2", "dev": true, @@ -692,21 +988,11 @@ "version": "1.1.1", "license": "MIT" }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, "node_modules/async-limiter": { "version": "1.0.1", "license": "MIT", "optional": true }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, "node_modules/balanced-match": { "version": "1.0.2", "license": "MIT" @@ -814,6 +1100,7 @@ }, "node_modules/buffer-from": { "version": "1.1.2", + "devOptional": true, "license": "MIT" }, "node_modules/builtin-modules": { @@ -882,11 +1169,6 @@ ], "license": "CC-BY-4.0" }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, "node_modules/chalk": { "version": "4.1.2", "license": "MIT", @@ -937,17 +1219,6 @@ "version": "2.9.3", "license": "MIT" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "10.0.1", "dev": true, @@ -960,20 +1231,6 @@ "version": "0.0.1", "license": "MIT" }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "node_modules/concat-with-sourcemaps": { "version": "1.1.0", "license": "ISC", @@ -1216,14 +1473,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/depd": { "version": "2.0.0", "license": "MIT", @@ -1354,9 +1603,10 @@ } }, "node_modules/esbuild": { - "version": "0.17.19", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -1364,28 +1614,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" } }, "node_modules/escalade": { @@ -1483,19 +1733,6 @@ "node": ">= 0.8" } }, - "node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/forwarded": { "version": "0.2.0", "license": "MIT", @@ -1559,14 +1796,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "engines": { - "node": ">=4" - } - }, "node_modules/glob": { "version": "7.2.3", "dev": true, @@ -1680,20 +1909,6 @@ "node": "^14.13.1 || >=16.0.0" } }, - "node_modules/http-basic": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", - "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", - "dependencies": { - "caseless": "^0.12.0", - "concat-stream": "^1.6.2", - "http-response-object": "^3.0.1", - "parse-cache-control": "^1.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/http-errors": { "version": "2.0.0", "license": "MIT", @@ -1708,19 +1923,6 @@ "node": ">= 0.8" } }, - "node_modules/http-response-object": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", - "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", - "dependencies": { - "@types/node": "^10.0.3" - } - }, - "node_modules/http-response-object/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, "node_modules/iconv-lite": { "version": "0.4.24", "license": "MIT", @@ -2266,14 +2468,15 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.6", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -2434,11 +2637,6 @@ "version": "1.1.4", "license": "BSD-3-Clause" }, - "node_modules/parse-cache-control": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" - }, "node_modules/parse5": { "version": "6.0.1", "dev": true, @@ -2501,18 +2699,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pm4js": { - "version": "0.0.28", - "resolved": "https://registry.npmjs.org/pm4js/-/pm4js-0.0.28.tgz", - "integrity": "sha512-JMzIIuPWorr7docWPUE9ylYFhkjdumM3GrVk5G7noyrC9O7I7ilSVF1750GVVyruyf6vzRoDhvqZBk/SXziYTA==", - "dependencies": { - "retus": "^1.1.2", - "xmldom": "^0.6.0", - "xmlserializer": "^0.6.1" - } - }, "node_modules/postcss": { - "version": "8.4.23", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "funding": [ { "type": "opencollective", @@ -2527,9 +2717,8 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -3028,14 +3217,6 @@ "version": "2.0.1", "license": "MIT" }, - "node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "dependencies": { - "asap": "~2.0.6" - } - }, "node_modules/promise.series": { "version": "0.2.0", "license": "MIT", @@ -3186,20 +3367,10 @@ "node": ">=8" } }, - "node_modules/retus": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/retus/-/retus-1.1.2.tgz", - "integrity": "sha512-h6ftSca4FmSNJ4j6b0OL2+7Yt7d0uOUKeazIqnp3Snvohe43XlFIGUubLZWKP/LKf2VCpBwqOEnrmi4R7fP9ew==", - "dependencies": { - "sync-request": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/rollup": { - "version": "3.23.0", - "license": "MIT", + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "bin": { "rollup": "dist/bin/rollup" }, @@ -3476,27 +3647,6 @@ "node": ">= 10" } }, - "node_modules/sync-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", - "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", - "dependencies": { - "http-response-object": "^3.0.1", - "sync-rpc": "^1.2.1", - "then-request": "^6.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", - "dependencies": { - "get-port": "^3.1.0" - } - }, "node_modules/terser": { "version": "5.17.6", "devOptional": true, @@ -3519,32 +3669,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/then-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", - "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", - "dependencies": { - "@types/concat-stream": "^1.6.0", - "@types/form-data": "0.0.33", - "@types/node": "^8.0.0", - "@types/qs": "^6.2.31", - "caseless": "~0.12.0", - "concat-stream": "^1.6.0", - "form-data": "^2.2.0", - "http-basic": "^8.1.1", - "http-response-object": "^3.0.1", - "promise": "^8.0.0", - "qs": "^6.4.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/then-request/node_modules/@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" - }, "node_modules/toidentifier": { "version": "1.0.1", "license": "MIT", @@ -3567,11 +3691,6 @@ "node": ">= 0.6" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, "node_modules/typescript": { "version": "4.9.5", "license": "Apache-2.0", @@ -3637,12 +3756,13 @@ } }, "node_modules/vite": { - "version": "4.3.9", - "license": "MIT", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", + "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.23", - "rollup": "^3.21.0" + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" }, "bin": { "vite": "bin/vite.js" @@ -3650,12 +3770,16 @@ "engines": { "node": "^14.18.0 || >=16.0.0" }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", @@ -3668,6 +3792,9 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, @@ -3695,19 +3822,6 @@ "async-limiter": "~1.0.0" } }, - "node_modules/xmldom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", - "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/xmlserializer": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/xmlserializer/-/xmlserializer-0.6.1.tgz", - "integrity": "sha512-FNb0eEqqUUbnuvxuHqNuKH8qCGKqxu+558Zi8UzOoQk8Z9LdvpONK+v7m3gpKVHrk5Aq+0nNLsKxu/6OYh7Umw==" - }, "node_modules/xtend": { "version": "4.0.2", "license": "MIT", @@ -3810,8 +3924,136 @@ } }, "dependencies": { + "@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "optional": true + }, "@esbuild/win32-x64": { - "version": "0.17.19", + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", "optional": true }, "@interactjs/types": { @@ -4171,9 +4413,9 @@ } }, "@rwth-acis/syncmeta-widgets": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@rwth-acis/syncmeta-widgets/-/syncmeta-widgets-2.4.9.tgz", - "integrity": "sha512-4m0GxNTJ0QJqjCk0ssRG9KdisHJuZ2fw/FIdTdKjHWsPTjFOnOrNs4lXomZz54FXmndjBWPasm/XwX6AekYBVg==", + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@rwth-acis/syncmeta-widgets/-/syncmeta-widgets-2.4.10.tgz", + "integrity": "sha512-M9/lzogxNAK1JaHDus8KjUKIoIn8l/97hxGakmvQLX/og75HnE0Psicfd2I+fkR+5xS6gau6uEIIQQDguJNtZw==", "requires": { "@jsplumb/browser-ui": "^6.0.5", "dagre": "^0.8.5", @@ -4196,40 +4438,21 @@ "@trysound/sax": { "version": "0.2.0" }, - "@types/concat-stream": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", - "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", - "requires": { - "@types/node": "*" - } - }, "@types/estree": { "version": "1.0.1", "dev": true }, - "@types/form-data": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", - "integrity": "sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==", - "requires": { - "@types/node": "*" - } - }, "@types/node": { "version": "20.6.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.2.tgz", - "integrity": "sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==" + "integrity": "sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==", + "optional": true, + "peer": true }, "@types/parse5": { "version": "6.0.3", "dev": true }, - "@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==" - }, "@types/resolve": { "version": "1.20.2", "dev": true @@ -4314,20 +4537,10 @@ "array-flatten": { "version": "1.1.1" }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, "async-limiter": { "version": "1.0.1", "optional": true }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, "balanced-match": { "version": "1.0.2" }, @@ -4379,7 +4592,8 @@ } }, "buffer-from": { - "version": "1.1.2" + "version": "1.1.2", + "devOptional": true }, "builtin-modules": { "version": "3.3.0", @@ -4415,11 +4629,6 @@ "caniuse-lite": { "version": "1.0.30001489" }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, "chalk": { "version": "4.1.2", "requires": { @@ -4449,14 +4658,6 @@ "colord": { "version": "2.9.3" }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, "commander": { "version": "10.0.1", "dev": true @@ -4464,17 +4665,6 @@ "concat-map": { "version": "0.0.1" }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "concat-with-sourcemaps": { "version": "1.1.0", "requires": { @@ -4624,11 +4814,6 @@ "object-keys": "^1.1.1" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, "depd": { "version": "2.0.0" }, @@ -4704,30 +4889,32 @@ } }, "esbuild": { - "version": "0.17.19", - "requires": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "requires": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" } }, "escalade": { @@ -4805,16 +4992,6 @@ "unpipe": "~1.0.0" } }, - "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "forwarded": { "version": "0.2.0" }, @@ -4852,11 +5029,6 @@ "has-symbols": "^1.0.3" } }, - "get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==" - }, "glob": { "version": "7.2.3", "dev": true, @@ -4918,17 +5090,6 @@ "terser": "^5.15.1" } }, - "http-basic": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", - "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", - "requires": { - "caseless": "^0.12.0", - "concat-stream": "^1.6.2", - "http-response-object": "^3.0.1", - "parse-cache-control": "^1.0.1" - } - }, "http-errors": { "version": "2.0.0", "requires": { @@ -4939,21 +5100,6 @@ "toidentifier": "1.0.1" } }, - "http-response-object": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", - "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", - "requires": { - "@types/node": "^10.0.3" - }, - "dependencies": { - "@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - } - } - }, "iconv-lite": { "version": "0.4.24", "requires": { @@ -5299,7 +5445,9 @@ "version": "2.0.0" }, "nanoid": { - "version": "3.3.6" + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" }, "napi-macros": { "version": "2.0.0", @@ -5393,11 +5541,6 @@ "parchment": { "version": "1.1.4" }, - "parse-cache-control": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", - "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==" - }, "parse5": { "version": "6.0.1", "dev": true @@ -5433,20 +5576,12 @@ "pify": { "version": "5.0.0" }, - "pm4js": { - "version": "0.0.28", - "resolved": "https://registry.npmjs.org/pm4js/-/pm4js-0.0.28.tgz", - "integrity": "sha512-JMzIIuPWorr7docWPUE9ylYFhkjdumM3GrVk5G7noyrC9O7I7ilSVF1750GVVyruyf6vzRoDhvqZBk/SXziYTA==", - "requires": { - "retus": "^1.1.2", - "xmldom": "^0.6.0", - "xmlserializer": "^0.6.1" - } - }, "postcss": { - "version": "8.4.23", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "requires": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -5695,14 +5830,6 @@ "process-nextick-args": { "version": "2.0.1" }, - "promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "requires": { - "asap": "~2.0.6" - } - }, "promise.series": { "version": "0.2.0" }, @@ -5801,16 +5928,10 @@ "resolve-from": { "version": "5.0.0" }, - "retus": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/retus/-/retus-1.1.2.tgz", - "integrity": "sha512-h6ftSca4FmSNJ4j6b0OL2+7Yt7d0uOUKeazIqnp3Snvohe43XlFIGUubLZWKP/LKf2VCpBwqOEnrmi4R7fP9ew==", - "requires": { - "sync-request": "^6.1.0" - } - }, "rollup": { - "version": "3.23.0", + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "requires": { "fsevents": "~2.3.2" } @@ -5988,24 +6109,6 @@ } } }, - "sync-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", - "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", - "requires": { - "http-response-object": "^3.0.1", - "sync-rpc": "^1.2.1", - "then-request": "^6.0.0" - } - }, - "sync-rpc": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", - "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", - "requires": { - "get-port": "^3.1.0" - } - }, "terser": { "version": "5.17.6", "devOptional": true, @@ -6022,31 +6125,6 @@ } } }, - "then-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", - "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", - "requires": { - "@types/concat-stream": "^1.6.0", - "@types/form-data": "0.0.33", - "@types/node": "^8.0.0", - "@types/qs": "^6.2.31", - "caseless": "~0.12.0", - "concat-stream": "^1.6.0", - "form-data": "^2.2.0", - "http-basic": "^8.1.1", - "http-response-object": "^3.0.1", - "promise": "^8.0.0", - "qs": "^6.4.0" - }, - "dependencies": { - "@types/node": { - "version": "8.10.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", - "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" - } - } - }, "toidentifier": { "version": "1.0.1" }, @@ -6060,11 +6138,6 @@ "mime-types": "~2.1.24" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, "typescript": { "version": "4.9.5" }, @@ -6088,12 +6161,14 @@ "version": "1.1.2" }, "vite": { - "version": "4.3.9", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", + "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", "requires": { - "esbuild": "^0.17.5", + "esbuild": "^0.18.10", "fsevents": "~2.3.2", - "postcss": "^8.4.23", - "rollup": "^3.21.0" + "postcss": "^8.4.27", + "rollup": "^3.27.1" } }, "wrappy": { @@ -6107,16 +6182,6 @@ "async-limiter": "~1.0.0" } }, - "xmldom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", - "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==" - }, - "xmlserializer": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/xmlserializer/-/xmlserializer-0.6.1.tgz", - "integrity": "sha512-FNb0eEqqUUbnuvxuHqNuKH8qCGKqxu+558Zi8UzOoQk8Z9LdvpONK+v7m3gpKVHrk5Aq+0nNLsKxu/6OYh7Umw==" - }, "xtend": { "version": "4.0.2", "optional": true diff --git a/package.json b/package.json index b062b35a..1647e08d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "social-bot-framework", - "version": "1.3.3", + "version": "1.4.0", "description": "Frontend of Social Bot Framework", "type": "module", "main": "dist/social-bot-framework.js", @@ -29,7 +29,6 @@ "interactjs": "^1.10.18", "las2peer-frontend-statusbar": "github:rwth-acis/las2peer-frontend-statusbar#0.4.0", "lit": "^2.0.2", - "pm4js": "^0.0.28", "quill": "^1.3.7", "vite": "^4.1.0", "y-quill": "^0.1.5",