From 2b175e1a87fd45086a6ebd0fdeda12664a3b24c2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 28 Sep 2024 18:03:51 +0000 Subject: [PATCH 01/20] fix(deps): update dependency @sentry/react to v8.32.0 --- package-lock.json | 194 ++++++++++++++++----------- packages/lib-components/package.json | 2 +- packages/web-main/package.json | 2 +- 3 files changed, 119 insertions(+), 79 deletions(-) diff --git a/package-lock.json b/package-lock.json index 97dd5351f6..03161c4fa3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20170,162 +20170,194 @@ "license": "MIT" }, "node_modules/@sentry-internal/browser-utils": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.32.0.tgz", + "integrity": "sha512-DpUGhk5O1OVjT0fo9wsbEdO1R/S9gGBRDtn9+FFVeRtieJHwXpeZiLK+tZhTOvaILmtSoTPUEY3L5sK4j5Xq9g==", "license": "MIT", "dependencies": { - "@sentry/core": "8.27.0", - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0" + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/browser-utils/node_modules/@sentry/core": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.32.0.tgz", + "integrity": "sha512-+xidTr0lZ0c755tq4k75dXPEb8PA+qvIefW3U9+dQMORLokBrYoKYMf5zZTG2k/OfSJS6OSxatUj36NFuCs3aA==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0" + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/browser-utils/node_modules/@sentry/types": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.32.0.tgz", + "integrity": "sha512-hxckvN2MzS5SgGDgVQ0/QpZXk13Vrq4BtZLwXhPhyeTmZtUiUfWvcL5TFQqLinfKdTKPe9q2MxeAJ0D4LalhMg==", "license": "MIT", "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/browser-utils/node_modules/@sentry/utils": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.32.0.tgz", + "integrity": "sha512-t1WVERhgmYURxbBj9J4/H2P2X+VKqm7B3ce9iQyrZbdf5NekhcU4jHIecPUWCPHjQkFIqkVTorqeBmDTlg/UmQ==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0" + "@sentry/types": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/feedback": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.32.0.tgz", + "integrity": "sha512-XB7hiVJQW1tNzpoXIHbvm3rjipIt7PZiJJtFg2vxaqu/FzdgOcYqQiwIKivJVAKuRZ9rIeJtK1jdXQFOc/TRJA==", "license": "MIT", "dependencies": { - "@sentry/core": "8.27.0", - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0" + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/feedback/node_modules/@sentry/core": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.32.0.tgz", + "integrity": "sha512-+xidTr0lZ0c755tq4k75dXPEb8PA+qvIefW3U9+dQMORLokBrYoKYMf5zZTG2k/OfSJS6OSxatUj36NFuCs3aA==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0" + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/feedback/node_modules/@sentry/types": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.32.0.tgz", + "integrity": "sha512-hxckvN2MzS5SgGDgVQ0/QpZXk13Vrq4BtZLwXhPhyeTmZtUiUfWvcL5TFQqLinfKdTKPe9q2MxeAJ0D4LalhMg==", "license": "MIT", "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/feedback/node_modules/@sentry/utils": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.32.0.tgz", + "integrity": "sha512-t1WVERhgmYURxbBj9J4/H2P2X+VKqm7B3ce9iQyrZbdf5NekhcU4jHIecPUWCPHjQkFIqkVTorqeBmDTlg/UmQ==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0" + "@sentry/types": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.32.0.tgz", + "integrity": "sha512-yiEUnn2yyo1AIQIFNeRX3tdK8fmyKIkxdFS1WiVQmeYI/hFwYBTZPly0FcO/g3xnRMSA2tvrS+hZEaaXfK4WhA==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "8.27.0", - "@sentry/core": "8.27.0", - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0" + "@sentry-internal/browser-utils": "8.32.0", + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.32.0.tgz", + "integrity": "sha512-oBbhtDBkD+5z/T0NVJ5VenBWAid/S9QdVrod/UqxVqU7F8N+E9/INFQI48zCWr4iVlUMcszJPDElvJEsMDvvBQ==", "license": "MIT", "dependencies": { - "@sentry-internal/replay": "8.27.0", - "@sentry/core": "8.27.0", - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0" + "@sentry-internal/replay": "8.32.0", + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/core": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.32.0.tgz", + "integrity": "sha512-+xidTr0lZ0c755tq4k75dXPEb8PA+qvIefW3U9+dQMORLokBrYoKYMf5zZTG2k/OfSJS6OSxatUj36NFuCs3aA==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0" + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/types": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.32.0.tgz", + "integrity": "sha512-hxckvN2MzS5SgGDgVQ0/QpZXk13Vrq4BtZLwXhPhyeTmZtUiUfWvcL5TFQqLinfKdTKPe9q2MxeAJ0D4LalhMg==", "license": "MIT", "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/utils": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.32.0.tgz", + "integrity": "sha512-t1WVERhgmYURxbBj9J4/H2P2X+VKqm7B3ce9iQyrZbdf5NekhcU4jHIecPUWCPHjQkFIqkVTorqeBmDTlg/UmQ==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0" + "@sentry/types": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay/node_modules/@sentry/core": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.32.0.tgz", + "integrity": "sha512-+xidTr0lZ0c755tq4k75dXPEb8PA+qvIefW3U9+dQMORLokBrYoKYMf5zZTG2k/OfSJS6OSxatUj36NFuCs3aA==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0" + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay/node_modules/@sentry/types": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.32.0.tgz", + "integrity": "sha512-hxckvN2MzS5SgGDgVQ0/QpZXk13Vrq4BtZLwXhPhyeTmZtUiUfWvcL5TFQqLinfKdTKPe9q2MxeAJ0D4LalhMg==", "license": "MIT", "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay/node_modules/@sentry/utils": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.32.0.tgz", + "integrity": "sha512-t1WVERhgmYURxbBj9J4/H2P2X+VKqm7B3ce9iQyrZbdf5NekhcU4jHIecPUWCPHjQkFIqkVTorqeBmDTlg/UmQ==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0" + "@sentry/types": "8.32.0" }, "engines": { "node": ">=14.18" @@ -20344,44 +20376,52 @@ } }, "node_modules/@sentry/browser": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.32.0.tgz", + "integrity": "sha512-AEKFj64g4iYwEMRvVcxiY0FswmClRXCP1IEvCqujn8OBS8AjMOr1z/RwYieEs0D90yNNB3YEqF8adrKENblJmw==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "8.27.0", - "@sentry-internal/feedback": "8.27.0", - "@sentry-internal/replay": "8.27.0", - "@sentry-internal/replay-canvas": "8.27.0", - "@sentry/core": "8.27.0", - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0" + "@sentry-internal/browser-utils": "8.32.0", + "@sentry-internal/feedback": "8.32.0", + "@sentry-internal/replay": "8.32.0", + "@sentry-internal/replay-canvas": "8.32.0", + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/browser/node_modules/@sentry/core": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.32.0.tgz", + "integrity": "sha512-+xidTr0lZ0c755tq4k75dXPEb8PA+qvIefW3U9+dQMORLokBrYoKYMf5zZTG2k/OfSJS6OSxatUj36NFuCs3aA==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0" + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/browser/node_modules/@sentry/types": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.32.0.tgz", + "integrity": "sha512-hxckvN2MzS5SgGDgVQ0/QpZXk13Vrq4BtZLwXhPhyeTmZtUiUfWvcL5TFQqLinfKdTKPe9q2MxeAJ0D4LalhMg==", "license": "MIT", "engines": { "node": ">=14.18" } }, "node_modules/@sentry/browser/node_modules/@sentry/utils": { - "version": "8.27.0", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.32.0.tgz", + "integrity": "sha512-t1WVERhgmYURxbBj9J4/H2P2X+VKqm7B3ce9iQyrZbdf5NekhcU4jHIecPUWCPHjQkFIqkVTorqeBmDTlg/UmQ==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0" + "@sentry/types": "8.32.0" }, "engines": { "node": ">=14.18" @@ -20476,15 +20516,15 @@ } }, "node_modules/@sentry/react": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.27.0.tgz", - "integrity": "sha512-8pD+J9UVnSGmPnm5dHJup5OVsHTN/pL4Ozi01yyrpivLkQiMZNac3OXsc0C7zXnztfLQx0kmTyCOzbRROfbpnA==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.32.0.tgz", + "integrity": "sha512-YljqK+k80XOvyXjK2p2neTncRcSuwlpL7qHtNgwR1MHx18FEi7HXlnm13J4g3kxao4ORMxlCXCEPNXlLT+vqQg==", "license": "MIT", "dependencies": { - "@sentry/browser": "8.27.0", - "@sentry/core": "8.27.0", - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0", + "@sentry/browser": "8.32.0", + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0", "hoist-non-react-statics": "^3.3.2" }, "engines": { @@ -20495,34 +20535,34 @@ } }, "node_modules/@sentry/react/node_modules/@sentry/core": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.27.0.tgz", - "integrity": "sha512-4frlXluHT3Du+Omw91K04jpvbfMtydvg4Bxj2+gt/DT19Swhm/fbEpzdUjgbAd3Jinj/n0qk/jFRXjr9JZKFjg==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.32.0.tgz", + "integrity": "sha512-+xidTr0lZ0c755tq4k75dXPEb8PA+qvIefW3U9+dQMORLokBrYoKYMf5zZTG2k/OfSJS6OSxatUj36NFuCs3aA==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0", - "@sentry/utils": "8.27.0" + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/react/node_modules/@sentry/types": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.27.0.tgz", - "integrity": "sha512-B6lrP46+m2x0lfqWc9F4VcUbN893mVGnPEd7KIMRk95mPzkFJ3sNxggTQF5/ZfNO7lDQYQb22uysB5sj/BqFiw==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.32.0.tgz", + "integrity": "sha512-hxckvN2MzS5SgGDgVQ0/QpZXk13Vrq4BtZLwXhPhyeTmZtUiUfWvcL5TFQqLinfKdTKPe9q2MxeAJ0D4LalhMg==", "license": "MIT", "engines": { "node": ">=14.18" } }, "node_modules/@sentry/react/node_modules/@sentry/utils": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.27.0.tgz", - "integrity": "sha512-gyJM3SyLQe0A3mkQVVNdKYvk3ZoikkYgyA/D+5StFNLKdyUgEbJgXOGXrQSSYPF7BSX6Sc5b0KHCglPII0KuKw==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.32.0.tgz", + "integrity": "sha512-t1WVERhgmYURxbBj9J4/H2P2X+VKqm7B3ce9iQyrZbdf5NekhcU4jHIecPUWCPHjQkFIqkVTorqeBmDTlg/UmQ==", "license": "MIT", "dependencies": { - "@sentry/types": "8.27.0" + "@sentry/types": "8.32.0" }, "engines": { "node": ">=14.18" @@ -48600,7 +48640,7 @@ "@rjsf/core": "5.20.0", "@rjsf/utils": "5.20.0", "@rjsf/validator-ajv8": "5.20.0", - "@sentry/react": "8.27.0", + "@sentry/react": "8.32.0", "@tanstack/react-router": "1.35.3", "@tanstack/react-table": "8.20.5", "@types/luxon": "3.4.2", @@ -50972,7 +51012,7 @@ "@jsonforms/core": "3.4.0", "@jsonforms/react": "3.4.0", "@sentry/integrations": "7.119.0", - "@sentry/react": "8.27.0", + "@sentry/react": "8.32.0", "@sentry/tracing": "7.114.0", "@tanstack/react-query": "5.55.2", "@tanstack/react-query-devtools": "5.55.2", diff --git a/packages/lib-components/package.json b/packages/lib-components/package.json index 53e10d19eb..dbb0f4d14e 100644 --- a/packages/lib-components/package.json +++ b/packages/lib-components/package.json @@ -40,7 +40,7 @@ "polished": "4.3.1", "react": "18.3.1", "react-dnd": "16.0.1", - "@sentry/react": "8.27.0", + "@sentry/react": "8.32.0", "react-dnd-html5-backend": "16.0.1", "react-dom": "18.3.1", "react-hook-form": "7.53.0", diff --git a/packages/web-main/package.json b/packages/web-main/package.json index e1fe6e1f2a..ea1633a4ce 100644 --- a/packages/web-main/package.json +++ b/packages/web-main/package.json @@ -7,7 +7,7 @@ "@jsonforms/core": "3.4.0", "@jsonforms/react": "3.4.0", "@sentry/integrations": "7.119.0", - "@sentry/react": "8.27.0", + "@sentry/react": "8.32.0", "@sentry/tracing": "7.114.0", "@tanstack/react-query": "5.55.2", "@tanstack/react-query-devtools": "5.55.2", From da111bcba7f84f4929d9d48895cdb98ef634877e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 28 Sep 2024 18:04:19 +0000 Subject: [PATCH 02/20] fix(deps): update posthog --- package-lock.json | 16 ++++++++-------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 97dd5351f6..4ae23672dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,8 +39,8 @@ "lodash-es": "4.17.21", "ms": "2.1.3", "multer": "1.4.5-lts.1", - "posthog-js": "1.157.2", - "posthog-node": "4.1.1", + "posthog-js": "1.165.0", + "posthog-node": "4.2.0", "prom-client": "14.2.0", "re-resizable": "6.9.17", "react": "18.3.1", @@ -40775,9 +40775,9 @@ } }, "node_modules/posthog-js": { - "version": "1.157.2", - "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.157.2.tgz", - "integrity": "sha512-ATYKGs+Q51u26nHHhrhWNh1whqFm7j/rwQQYw+y6/YzNmRlo+YsqrGZji9nqXb9/4fo0ModDr+ZmuOI3hKkUXA==", + "version": "1.165.0", + "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.165.0.tgz", + "integrity": "sha512-rUfRJobvOz3Q9Er+zwb32Eq2qs+ToBe/B4k4IoKzmyszI7240Rf4xVWRB0ky8LvmdZfCeYX5knS2Uv3pnn/d5A==", "license": "MIT", "dependencies": { "fflate": "^0.4.8", @@ -40786,9 +40786,9 @@ } }, "node_modules/posthog-node": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-4.1.1.tgz", - "integrity": "sha512-hva26cNSz62H76blhWUF8mZmE3Q81KTrkkpHEZlD00qDov/phLQCrKQnxwjiAN3yI9pv/0/uwte6Gluy1xBmUA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-4.2.0.tgz", + "integrity": "sha512-hgyCYMyzMvuF3qWMw6JvS8gT55v7Mtp5wKWcnDrw+nu39D0Tk9BXD7I0LOBp0lGlHEPaXCEVYUtviNKrhMALGA==", "license": "MIT", "dependencies": { "axios": "^1.7.4", diff --git a/package.json b/package.json index d886042543..aa616b3117 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,8 @@ "lodash-es": "4.17.21", "ms": "2.1.3", "multer": "1.4.5-lts.1", - "posthog-js": "1.157.2", - "posthog-node": "4.1.1", + "posthog-js": "1.165.0", + "posthog-node": "4.2.0", "prom-client": "14.2.0", "re-resizable": "6.9.17", "react": "18.3.1", From 1dbf89f1ceaf826007fe318770664af5babc8ef7 Mon Sep 17 00:00:00 2001 From: "takaro-ci-bot[bot]" <138661031+takaro-ci-bot[bot]@users.noreply.github.com> Date: Sat, 28 Sep 2024 19:32:14 +0000 Subject: [PATCH 03/20] chore: generate api client --- packages/lib-apiclient/src/generated/api.ts | 2 +- packages/lib-apiclient/src/generated/base.ts | 2 +- packages/lib-apiclient/src/generated/common.ts | 2 +- packages/lib-apiclient/src/generated/configuration.ts | 2 +- packages/lib-apiclient/src/generated/index.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/lib-apiclient/src/generated/api.ts b/packages/lib-apiclient/src/generated/api.ts index 99d7fdd113..4b4f25b032 100644 --- a/packages/lib-apiclient/src/generated/api.ts +++ b/packages/lib-apiclient/src/generated/api.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - a320e9b5d080fe48145ade13c204958f71d85e5f + * The version of the OpenAPI document: development - 91e1f29318a843b3607c34fbc6ada7b7120f95c0 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/base.ts b/packages/lib-apiclient/src/generated/base.ts index 66fcfb3d87..ccf9175b48 100644 --- a/packages/lib-apiclient/src/generated/base.ts +++ b/packages/lib-apiclient/src/generated/base.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - a320e9b5d080fe48145ade13c204958f71d85e5f + * The version of the OpenAPI document: development - 91e1f29318a843b3607c34fbc6ada7b7120f95c0 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/common.ts b/packages/lib-apiclient/src/generated/common.ts index c82bdcedd4..ee6f9560d4 100644 --- a/packages/lib-apiclient/src/generated/common.ts +++ b/packages/lib-apiclient/src/generated/common.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - a320e9b5d080fe48145ade13c204958f71d85e5f + * The version of the OpenAPI document: development - 91e1f29318a843b3607c34fbc6ada7b7120f95c0 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/configuration.ts b/packages/lib-apiclient/src/generated/configuration.ts index 101735d49b..be60a0a61a 100644 --- a/packages/lib-apiclient/src/generated/configuration.ts +++ b/packages/lib-apiclient/src/generated/configuration.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - a320e9b5d080fe48145ade13c204958f71d85e5f + * The version of the OpenAPI document: development - 91e1f29318a843b3607c34fbc6ada7b7120f95c0 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/index.ts b/packages/lib-apiclient/src/generated/index.ts index 6164fc8a33..078b064693 100644 --- a/packages/lib-apiclient/src/generated/index.ts +++ b/packages/lib-apiclient/src/generated/index.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - a320e9b5d080fe48145ade13c204958f71d85e5f + * The version of the OpenAPI document: development - 91e1f29318a843b3607c34fbc6ada7b7120f95c0 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). From aa3963a3e042de5edad34314158fe6f86cf2c366 Mon Sep 17 00:00:00 2001 From: "takaro-ci-bot[bot]" <138661031+takaro-ci-bot[bot]@users.noreply.github.com> Date: Sat, 28 Sep 2024 20:22:06 +0000 Subject: [PATCH 04/20] chore: generate api client --- packages/lib-apiclient/src/generated/api.ts | 2 +- packages/lib-apiclient/src/generated/base.ts | 2 +- packages/lib-apiclient/src/generated/common.ts | 2 +- packages/lib-apiclient/src/generated/configuration.ts | 2 +- packages/lib-apiclient/src/generated/index.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/lib-apiclient/src/generated/api.ts b/packages/lib-apiclient/src/generated/api.ts index 4b4f25b032..abb615ba8a 100644 --- a/packages/lib-apiclient/src/generated/api.ts +++ b/packages/lib-apiclient/src/generated/api.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 91e1f29318a843b3607c34fbc6ada7b7120f95c0 + * The version of the OpenAPI document: development - 8a5fe63c0e308813bf72ab5c8b4c723cc4d96807 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/base.ts b/packages/lib-apiclient/src/generated/base.ts index ccf9175b48..109004d268 100644 --- a/packages/lib-apiclient/src/generated/base.ts +++ b/packages/lib-apiclient/src/generated/base.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 91e1f29318a843b3607c34fbc6ada7b7120f95c0 + * The version of the OpenAPI document: development - 8a5fe63c0e308813bf72ab5c8b4c723cc4d96807 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/common.ts b/packages/lib-apiclient/src/generated/common.ts index ee6f9560d4..824215721e 100644 --- a/packages/lib-apiclient/src/generated/common.ts +++ b/packages/lib-apiclient/src/generated/common.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 91e1f29318a843b3607c34fbc6ada7b7120f95c0 + * The version of the OpenAPI document: development - 8a5fe63c0e308813bf72ab5c8b4c723cc4d96807 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/configuration.ts b/packages/lib-apiclient/src/generated/configuration.ts index be60a0a61a..ab77089747 100644 --- a/packages/lib-apiclient/src/generated/configuration.ts +++ b/packages/lib-apiclient/src/generated/configuration.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 91e1f29318a843b3607c34fbc6ada7b7120f95c0 + * The version of the OpenAPI document: development - 8a5fe63c0e308813bf72ab5c8b4c723cc4d96807 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/index.ts b/packages/lib-apiclient/src/generated/index.ts index 078b064693..029e2dd2bb 100644 --- a/packages/lib-apiclient/src/generated/index.ts +++ b/packages/lib-apiclient/src/generated/index.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 91e1f29318a843b3607c34fbc6ada7b7120f95c0 + * The version of the OpenAPI document: development - 8a5fe63c0e308813bf72ab5c8b4c723cc4d96807 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). From 9039ad103350a507fcd3edf042935065a7bf424b Mon Sep 17 00:00:00 2001 From: Emiel Van Severen Date: Sun, 29 Sep 2024 00:20:33 +0200 Subject: [PATCH 05/20] Fix: add amount to currency add/reduct events --- packages/web-main/src/components/events/EventFeed/EventItem.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/web-main/src/components/events/EventFeed/EventItem.tsx b/packages/web-main/src/components/events/EventFeed/EventItem.tsx index 0ee4f05f5e..59f4a51de1 100644 --- a/packages/web-main/src/components/events/EventFeed/EventItem.tsx +++ b/packages/web-main/src/components/events/EventFeed/EventItem.tsx @@ -177,6 +177,7 @@ export const EventItem: FC = ({ event }) => { + ); break; From a4f01b6b5910eab752c57dfa9fd5ee3d8714a491 Mon Sep 17 00:00:00 2001 From: "takaro-ci-bot[bot]" <138661031+takaro-ci-bot[bot]@users.noreply.github.com> Date: Sun, 29 Sep 2024 06:54:47 +0000 Subject: [PATCH 06/20] chore: generate api client --- packages/lib-apiclient/src/generated/api.ts | 2 +- packages/lib-apiclient/src/generated/base.ts | 2 +- packages/lib-apiclient/src/generated/common.ts | 2 +- packages/lib-apiclient/src/generated/configuration.ts | 2 +- packages/lib-apiclient/src/generated/index.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/lib-apiclient/src/generated/api.ts b/packages/lib-apiclient/src/generated/api.ts index abb615ba8a..545a14096c 100644 --- a/packages/lib-apiclient/src/generated/api.ts +++ b/packages/lib-apiclient/src/generated/api.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 8a5fe63c0e308813bf72ab5c8b4c723cc4d96807 + * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/base.ts b/packages/lib-apiclient/src/generated/base.ts index 109004d268..de554b9c5d 100644 --- a/packages/lib-apiclient/src/generated/base.ts +++ b/packages/lib-apiclient/src/generated/base.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 8a5fe63c0e308813bf72ab5c8b4c723cc4d96807 + * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/common.ts b/packages/lib-apiclient/src/generated/common.ts index 824215721e..2bab379585 100644 --- a/packages/lib-apiclient/src/generated/common.ts +++ b/packages/lib-apiclient/src/generated/common.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 8a5fe63c0e308813bf72ab5c8b4c723cc4d96807 + * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/configuration.ts b/packages/lib-apiclient/src/generated/configuration.ts index ab77089747..e8164a19a9 100644 --- a/packages/lib-apiclient/src/generated/configuration.ts +++ b/packages/lib-apiclient/src/generated/configuration.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 8a5fe63c0e308813bf72ab5c8b4c723cc4d96807 + * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/index.ts b/packages/lib-apiclient/src/generated/index.ts index 029e2dd2bb..62ab694e59 100644 --- a/packages/lib-apiclient/src/generated/index.ts +++ b/packages/lib-apiclient/src/generated/index.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 8a5fe63c0e308813bf72ab5c8b4c723cc4d96807 + * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). From cd74a3f88d76803f1bc8f59f649cdf73c6c86218 Mon Sep 17 00:00:00 2001 From: Niek Candaele Date: Sun, 29 Sep 2024 09:53:09 +0200 Subject: [PATCH 07/20] fix: issue with ingesting bans for unknown players --- packages/app-api/src/service/Ban/index.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/app-api/src/service/Ban/index.ts b/packages/app-api/src/service/Ban/index.ts index e57f977b74..2d34afee74 100644 --- a/packages/app-api/src/service/Ban/index.ts +++ b/packages/app-api/src/service/Ban/index.ts @@ -110,7 +110,7 @@ export class BanService extends TakaroService { const { player } = await playerService.resolveRef(ban.player, gameServerId); if (!player) { @@ -126,8 +126,12 @@ export class BanService extends TakaroService b !== null); + const failedPromises = banPromises.filter((b) => b.status === 'rejected'); + if (failedPromises.length > 0) { + this.log.warn(`Failed to resolve ${failedPromises.length} bans`, { failedPromises }); + } + const banInputs = banPromises.map((b) => (b.status === 'fulfilled' ? b.value : null)).filter((b) => b !== null); await this.repo.syncBans(gameServerId, banInputs); } } From ba697c805b43215958282d4841ac4c1d622cb78b Mon Sep 17 00:00:00 2001 From: Niek Candaele Date: Sun, 29 Sep 2024 10:20:29 +0200 Subject: [PATCH 08/20] fix: issue reporting status of failed module when user created invalid JS code --- packages/lib-aws/src/executeLambda.ts | 7 +++ .../__tests__/bugRepros.integration.test.ts | 53 +++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/packages/lib-aws/src/executeLambda.ts b/packages/lib-aws/src/executeLambda.ts index a155a7f7b4..6d7dd80d58 100644 --- a/packages/lib-aws/src/executeLambda.ts +++ b/packages/lib-aws/src/executeLambda.ts @@ -68,6 +68,13 @@ async function tryExecuteLambda({ data, fn, token, domainId }: executeLambdaOpts msg: 'Task timed out', }, ]; + } else if (parsedRes.body.includes('Unexpected end of input')) { + returnVal['success'] = false; + returnVal['logs'] = [ + { + msg: 'Syntax error, your javascript code is invalid', + }, + ]; } else { returnVal = JSON.parse(parsedRes.body); } diff --git a/packages/lib-modules/src/__tests__/bugRepros.integration.test.ts b/packages/lib-modules/src/__tests__/bugRepros.integration.test.ts index 5674c8c482..6b27af9645 100644 --- a/packages/lib-modules/src/__tests__/bugRepros.integration.test.ts +++ b/packages/lib-modules/src/__tests__/bugRepros.integration.test.ts @@ -172,6 +172,59 @@ const tests = [ expect((await eventsAfter)[0].data.meta.msg).to.be.eq('pong'); }, }), + /** + * Repro for https://github.com/gettakaro/takaro/issues/1405 + * When providing invalid code, Takaro trips over itself and throws a nasty error + * Instead, it should catch it properly and return an actionable message for the user + */ + new IntegrationTest({ + group, + snapshot: false, + name: 'Bug repro: invalid module code throws bad error #1405', + setup: modulesTestSetup, + test: async function () { + const mod = ( + await this.client.module.moduleControllerCreate({ + name: 'Test module', + }) + ).data.data; + await this.client.command.commandControllerCreate({ + name: 'testcmd', + moduleId: mod.id, + trigger: 'test', + // Yes, very bad code! This is what a user might accidentally do + function: `import { data, takaro } from '@takaro/helpers'; + + const messed = (await takaro.variable.variableControllerSearch({ search: { key: [\`object Object\`] } })).data.data + for (const thisVar of messed) { + let originalString = thisVar.key; + let newString = originalString.replace("[object Object]", "2024-09-20"); + + await takaro.variable.variableControllerUpdate(thisVar.id, { key: newString, value: thisVar.value }); + + } + data.player.pm(\`done\`). + `, + }); + + await this.client.gameserver.gameServerControllerInstallModule(this.setupData.gameserver.id, mod.id, { + userConfig: JSON.stringify({}), + systemConfig: JSON.stringify({}), + }); + + const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(HookEvents.COMMAND_EXECUTED, 1); + + await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, { + msg: '/test', + playerId: this.setupData.players[0].id, + }); + + console.log(JSON.stringify((await events)[0].data.meta.result, null, 2)); + const result = (await events)[0].data.meta.result; + expect(result.success).to.be.false; + expect(result.reason).to.include('SyntaxError: Unexpected end of input.'); + }, + }), ]; describe(group, function () { From 11d5f7b6473d576fd2993d9562921836b35125a6 Mon Sep 17 00:00:00 2001 From: Niek Candaele Date: Sun, 29 Sep 2024 10:41:05 +0200 Subject: [PATCH 09/20] feat: automatically claim items bought ingame from shop --- .../__tests__/economy/shop.integration.test.ts | 17 +++++++++++++++++ .../src/modules/economyUtils/commands/shop.js | 7 +++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/packages/lib-modules/src/__tests__/economy/shop.integration.test.ts b/packages/lib-modules/src/__tests__/economy/shop.integration.test.ts index 24c366e90b..8e8fdd9517 100644 --- a/packages/lib-modules/src/__tests__/economy/shop.integration.test.ts +++ b/packages/lib-modules/src/__tests__/economy/shop.integration.test.ts @@ -141,6 +141,23 @@ const tests = [ ); }, }), + new IntegrationTest({ + group, + snapshot: false, + setup: shopSetup, + name: 'Buying an item automatically claims it', + test: async function () { + const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(HookEvents.CHAT_MESSAGE, 2); + await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, { + msg: '/shop 1 1 buy', + playerId: this.setupData.players[0].id, + }); + + expect(await events).to.have.length(2); + expect((await events)[0].data.meta.msg).to.equal('You have purchased Test item for 100 test coin.'); + expect((await events)[1].data.meta.msg).to.equal('You have received items from a shop order.'); + }, + }), ]; describe(group, function () { diff --git a/packages/lib-modules/src/modules/economyUtils/commands/shop.js b/packages/lib-modules/src/modules/economyUtils/commands/shop.js index f588b63b56..90a96f237a 100644 --- a/packages/lib-modules/src/modules/economyUtils/commands/shop.js +++ b/packages/lib-modules/src/modules/economyUtils/commands/shop.js @@ -60,14 +60,13 @@ async function main() { if (action === 'buy') { if (!user) throw new TakaroUserError('You must link your account to Takaro to use this command.'); - await takaro.shopOrder.shopOrderControllerCreate({ + const orderRes = await takaro.shopOrder.shopOrderControllerCreate({ amount: 1, listingId: selectedItem.id, userId: user.id, }); - await player.pm( - `You have purchased ${selectedItem.name} for ${selectedItem.price} ${currencyName.value}. You can now claim your items.`, - ); + await player.pm(`You have purchased ${selectedItem.name} for ${selectedItem.price} ${currencyName.value}.`); + await takaro.shopOrder.shopOrderControllerClaim(orderRes.data.data.id); return; } From 3d4c3d9b58aadd7a24d23172395753afeb7b65cf Mon Sep 17 00:00:00 2001 From: "takaro-ci-bot[bot]" <138661031+takaro-ci-bot[bot]@users.noreply.github.com> Date: Sun, 29 Sep 2024 08:44:12 +0000 Subject: [PATCH 10/20] fix: code style --- packages/web-docs/docs/modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web-docs/docs/modules.json b/packages/web-docs/docs/modules.json index f26cfabb7d..856e75a9cd 100644 --- a/packages/web-docs/docs/modules.json +++ b/packages/web-docs/docs/modules.json @@ -410,7 +410,7 @@ ] }, { - "function": "import { takaro, data, TakaroUserError } from '@takaro/helpers';\nasync function main() {\n const { arguments: args, player, gameServerId, user } = data;\n const { page, item, action } = args;\n const shopItems = await takaro.shopListing.shopListingControllerSearch({\n limit: 5,\n page: page - 1,\n sortBy: 'name',\n sortDirection: 'asc',\n filters: {\n gameServerId: [gameServerId],\n draft: false,\n },\n });\n if (shopItems.data.data.length === 0) {\n await player.pm('No items found.');\n return;\n }\n const currencyName = (await takaro.settings.settingsControllerGetOne('currencyName', data.gameServerId)).data.data;\n if (!item) {\n // List the shop items\n for (const listing of shopItems.data.data) {\n const items = listing.items.slice(0, 3).map((item) => {\n return `${item.amount}x ${item.item.name}`;\n });\n await player.pm(`- ${listing.name} - ${listing.price} ${currencyName.value}. ${items.join(', ')}`);\n }\n return;\n }\n const selectedItem = shopItems.data.data[item - 1];\n if (!selectedItem)\n throw new TakaroUserError(`Item not found. Please select an item from the list, valid options are 1-${shopItems.data.data.length}.`);\n if (action === 'none') {\n // Display more info about the item\n await player.pm(`Listing ${selectedItem.name} - ${selectedItem.price} ${currencyName.value}`);\n await Promise.all(selectedItem.items.map((item) => {\n const quality = item.quality ? `Quality: ${item.quality}` : '';\n const description = (item.item.description ? `Description: ${item.item.description}` : '').replaceAll('\\\\n', ' ');\n return player.pm(`- ${item.amount}x ${item.item.name}. ${quality} ${description}`);\n }));\n return;\n }\n if (action === 'buy') {\n if (!user)\n throw new TakaroUserError('You must link your account to Takaro to use this command.');\n await takaro.shopOrder.shopOrderControllerCreate({\n amount: 1,\n listingId: selectedItem.id,\n userId: user.id,\n });\n await player.pm(`You have purchased ${selectedItem.name} for ${selectedItem.price} ${currencyName.value}. You can now claim your items.`);\n return;\n }\n throw new TakaroUserError('Invalid action. Valid actions are \"buy\".');\n}\nawait main();\n//# sourceMappingURL=shop.js.map", + "function": "import { takaro, data, TakaroUserError } from '@takaro/helpers';\nasync function main() {\n const { arguments: args, player, gameServerId, user } = data;\n const { page, item, action } = args;\n const shopItems = await takaro.shopListing.shopListingControllerSearch({\n limit: 5,\n page: page - 1,\n sortBy: 'name',\n sortDirection: 'asc',\n filters: {\n gameServerId: [gameServerId],\n draft: false,\n },\n });\n if (shopItems.data.data.length === 0) {\n await player.pm('No items found.');\n return;\n }\n const currencyName = (await takaro.settings.settingsControllerGetOne('currencyName', data.gameServerId)).data.data;\n if (!item) {\n // List the shop items\n for (const listing of shopItems.data.data) {\n const items = listing.items.slice(0, 3).map((item) => {\n return `${item.amount}x ${item.item.name}`;\n });\n await player.pm(`- ${listing.name} - ${listing.price} ${currencyName.value}. ${items.join(', ')}`);\n }\n return;\n }\n const selectedItem = shopItems.data.data[item - 1];\n if (!selectedItem)\n throw new TakaroUserError(`Item not found. Please select an item from the list, valid options are 1-${shopItems.data.data.length}.`);\n if (action === 'none') {\n // Display more info about the item\n await player.pm(`Listing ${selectedItem.name} - ${selectedItem.price} ${currencyName.value}`);\n await Promise.all(selectedItem.items.map((item) => {\n const quality = item.quality ? `Quality: ${item.quality}` : '';\n const description = (item.item.description ? `Description: ${item.item.description}` : '').replaceAll('\\\\n', ' ');\n return player.pm(`- ${item.amount}x ${item.item.name}. ${quality} ${description}`);\n }));\n return;\n }\n if (action === 'buy') {\n if (!user)\n throw new TakaroUserError('You must link your account to Takaro to use this command.');\n const orderRes = await takaro.shopOrder.shopOrderControllerCreate({\n amount: 1,\n listingId: selectedItem.id,\n userId: user.id,\n });\n await player.pm(`You have purchased ${selectedItem.name} for ${selectedItem.price} ${currencyName.value}.`);\n await takaro.shopOrder.shopOrderControllerClaim(orderRes.data.data.id);\n return;\n }\n throw new TakaroUserError('Invalid action. Valid actions are \"buy\".');\n}\nawait main();\n//# sourceMappingURL=shop.js.map", "name": "shop", "trigger": "shop", "helpText": "Browse the shop and view available items.", From 88710ca8fbf28ebe099f2b219fcb3d35d833594c Mon Sep 17 00:00:00 2001 From: Niek Candaele Date: Sun, 29 Sep 2024 10:44:33 +0200 Subject: [PATCH 11/20] feat: add a clarifying note about temporal value being default in module builder --- .../_auth/-module-builder/Editor/configs/cronjobConfig.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web-main/src/routes/_auth/-module-builder/Editor/configs/cronjobConfig.tsx b/packages/web-main/src/routes/_auth/-module-builder/Editor/configs/cronjobConfig.tsx index b4e50e01f3..ad7d385294 100644 --- a/packages/web-main/src/routes/_auth/-module-builder/Editor/configs/cronjobConfig.tsx +++ b/packages/web-main/src/routes/_auth/-module-builder/Editor/configs/cronjobConfig.tsx @@ -54,7 +54,7 @@ export const CronJobConfigForm: FC = ({ cronjob, readOnl control={control} name="temporalValue" label="temporalValue" - description="This controls when the cronjob triggers, you can use https://crontab.guru/ to help you with the syntax." + description="This controls when the cronjob triggers, you can use https://crontab.guru/ to help you with the syntax. Note that this is a default value, you can override this per-gameserver when you install this module" readOnly={readOnly} /> {!readOnly && ( From 72350786926fa43dc310376d29f5c960da450c36 Mon Sep 17 00:00:00 2001 From: Niek Candaele Date: Sun, 29 Sep 2024 11:14:39 +0200 Subject: [PATCH 12/20] feat: add total playtime seconds for easier querying --- .../src/controllers/PlayerController.ts | 29 +++++++++++++++++-- packages/app-api/src/db/player.ts | 2 ++ .../src/service/PlayerOnGameserverService.ts | 7 ++++- packages/app-api/src/service/PlayerService.ts | 3 ++ .../sql/20240929090313-global-playtime.ts | 13 +++++++++ 5 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 packages/lib-db/src/migrations/sql/20240929090313-global-playtime.ts diff --git a/packages/app-api/src/controllers/PlayerController.ts b/packages/app-api/src/controllers/PlayerController.ts index 0f60f1d543..6a982b8f59 100644 --- a/packages/app-api/src/controllers/PlayerController.ts +++ b/packages/app-api/src/controllers/PlayerController.ts @@ -1,4 +1,4 @@ -import { IsBoolean, IsISO8601, IsOptional, IsString, IsUUID, ValidateNested } from 'class-validator'; +import { IsBoolean, IsISO8601, IsNumber, IsOptional, IsString, IsUUID, ValidateNested } from 'class-validator'; import { ITakaroQuery } from '@takaro/db'; import { APIOutput, apiResponse } from '@takaro/http'; import { PlayerOutputDTO, PlayerOutputWithRolesDTO, PlayerService } from '../service/PlayerService.js'; @@ -12,7 +12,7 @@ import { TakaroDTO, errors } from '@takaro/util'; import { UserService } from '../service/User/index.js'; import { PlayerOnGameserverOutputArrayDTOAPI } from './PlayerOnGameserverController.js'; import { ParamId, ParamIdAndRoleId } from '../lib/validators.js'; -import { AllowedFilters } from './shared.js'; +import { AllowedFilters, RangeFilterCreatedAndUpdatedAt } from './shared.js'; export class PlayerOutputDTOAPI extends APIOutput { @Type(() => PlayerOutputWithRolesDTO) @@ -56,14 +56,37 @@ class PlayerSearchInputAllowedFilters extends AllowedFilters { roleId?: string[] | undefined; } +class PlayerSearchInputAllowedRangeFilter extends RangeFilterCreatedAndUpdatedAt { + @IsOptional() + @IsISO8601() + steamAccountCreated?: string | undefined; + @IsOptional() + @IsNumber() + steamDaysSinceLastBan?: number | undefined; + @IsOptional() + @IsNumber() + steamNumberOfVACBans?: number | undefined; + @IsOptional() + @IsNumber() + steamLevel?: number | undefined; + @IsOptional() + @IsNumber() + playtimeSeconds?: number | undefined; +} + export class PlayerSearchInputDTO extends ITakaroQuery { @ValidateNested() @Type(() => PlayerSearchInputAllowedFilters) declare filters: PlayerSearchInputAllowedFilters; - @ValidateNested() @Type(() => PlayerSearchInputAllowedFilters) declare search: PlayerSearchInputAllowedFilters; + @ValidateNested() + @Type(() => PlayerSearchInputAllowedRangeFilter) + declare greaterThan: PlayerSearchInputAllowedRangeFilter; + @ValidateNested() + @Type(() => PlayerSearchInputAllowedRangeFilter) + declare lessThan: Partial; } class PlayerRoleAssignChangeDTO { diff --git a/packages/app-api/src/db/player.ts b/packages/app-api/src/db/player.ts index 4005113d2b..cd3dc81799 100644 --- a/packages/app-api/src/db/player.ts +++ b/packages/app-api/src/db/player.ts @@ -75,6 +75,8 @@ export class PlayerModel extends TakaroModel { steamsDaysSinceLastBan: number; steamNumberOfVACBans: number; + playtimeSeconds: number; + static get relationMappings() { return { gameServers: { diff --git a/packages/app-api/src/service/PlayerOnGameserverService.ts b/packages/app-api/src/service/PlayerOnGameserverService.ts index a3aded821e..9d2439d7f0 100644 --- a/packages/app-api/src/service/PlayerOnGameserverService.ts +++ b/packages/app-api/src/service/PlayerOnGameserverService.ts @@ -10,7 +10,7 @@ import { Type } from 'class-transformer'; import { PlayerRoleAssignmentOutputDTO, RoleService } from './RoleService.js'; import { EVENT_TYPES, EventCreateDTO, EventOutputDTO, EventService } from './EventService.js'; import { IGamePlayer, TakaroEventCurrencyAdded, TakaroEventCurrencyDeducted, TakaroEvents } from '@takaro/modules'; -import { PlayerService } from './PlayerService.js'; +import { PlayerService, PlayerUpdateDTO } from './PlayerService.js'; export class PlayerOnGameserverOutputDTO extends TakaroModelDTO { @IsString() @@ -368,6 +368,11 @@ export class PlayerOnGameServerService extends TakaroService< const seconds = Math.floor(difference / 1000); await this.update(pog.id, new PlayerOnGameServerUpdateDTO({ playtimeSeconds: pog.playtimeSeconds + seconds })); + // Calculate total and update the global player record + const currentPogs = await this.find({ filters: { playerId: [player.id] } }); + const totalPlaytime = currentPogs.results.reduce((acc, pog) => acc + pog.playtimeSeconds, 0); + await playerService.update(player.id, new PlayerUpdateDTO({ playtimeSeconds: totalPlaytime })); + return; } } diff --git a/packages/app-api/src/service/PlayerService.ts b/packages/app-api/src/service/PlayerService.ts index e92b79756d..6724564ad7 100644 --- a/packages/app-api/src/service/PlayerService.ts +++ b/packages/app-api/src/service/PlayerService.ts @@ -145,6 +145,9 @@ export class PlayerUpdateDTO extends TakaroDTO { @IsString() @IsOptional() epicOnlineServicesId?: string; + @IsNumber() + @IsOptional() + playtimeSeconds?: number; } @traceableClass('service:player') diff --git a/packages/lib-db/src/migrations/sql/20240929090313-global-playtime.ts b/packages/lib-db/src/migrations/sql/20240929090313-global-playtime.ts new file mode 100644 index 0000000000..310dcff861 --- /dev/null +++ b/packages/lib-db/src/migrations/sql/20240929090313-global-playtime.ts @@ -0,0 +1,13 @@ +import { Knex } from 'knex'; + +export async function up(knex: Knex): Promise { + await knex.schema.alterTable('players', (table) => { + table.integer('playtimeSeconds').defaultTo(0).notNullable(); + }); +} + +export async function down(knex: Knex): Promise { + await knex.schema.alterTable('players', (table) => { + table.dropColumn('playtimeSeconds'); + }); +} From 3bd8915ec15fc03e759f8ed18c071efd2944e6c9 Mon Sep 17 00:00:00 2001 From: "takaro-ci-bot[bot]" <138661031+takaro-ci-bot[bot]@users.noreply.github.com> Date: Sun, 29 Sep 2024 10:08:19 +0000 Subject: [PATCH 13/20] chore: generate api client --- packages/lib-apiclient/src/generated/api.ts | 2 +- packages/lib-apiclient/src/generated/base.ts | 2 +- packages/lib-apiclient/src/generated/common.ts | 2 +- packages/lib-apiclient/src/generated/configuration.ts | 2 +- packages/lib-apiclient/src/generated/index.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/lib-apiclient/src/generated/api.ts b/packages/lib-apiclient/src/generated/api.ts index 545a14096c..b4d3bc46c0 100644 --- a/packages/lib-apiclient/src/generated/api.ts +++ b/packages/lib-apiclient/src/generated/api.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 + * The version of the OpenAPI document: development - 10b625f9bfc3a1edd31a81c587b6ffb7f227b45d * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/base.ts b/packages/lib-apiclient/src/generated/base.ts index de554b9c5d..e800464924 100644 --- a/packages/lib-apiclient/src/generated/base.ts +++ b/packages/lib-apiclient/src/generated/base.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 + * The version of the OpenAPI document: development - 10b625f9bfc3a1edd31a81c587b6ffb7f227b45d * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/common.ts b/packages/lib-apiclient/src/generated/common.ts index 2bab379585..32438d96e6 100644 --- a/packages/lib-apiclient/src/generated/common.ts +++ b/packages/lib-apiclient/src/generated/common.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 + * The version of the OpenAPI document: development - 10b625f9bfc3a1edd31a81c587b6ffb7f227b45d * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/configuration.ts b/packages/lib-apiclient/src/generated/configuration.ts index e8164a19a9..f70ff287dd 100644 --- a/packages/lib-apiclient/src/generated/configuration.ts +++ b/packages/lib-apiclient/src/generated/configuration.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 + * The version of the OpenAPI document: development - 10b625f9bfc3a1edd31a81c587b6ffb7f227b45d * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/index.ts b/packages/lib-apiclient/src/generated/index.ts index 62ab694e59..81a1ff2cf1 100644 --- a/packages/lib-apiclient/src/generated/index.ts +++ b/packages/lib-apiclient/src/generated/index.ts @@ -4,7 +4,7 @@ * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 + * The version of the OpenAPI document: development - 10b625f9bfc3a1edd31a81c587b6ffb7f227b45d * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). From 9ee6ad3a2faf6d97809c0456f6e68ff60a147668 Mon Sep 17 00:00:00 2001 From: Niek Candaele Date: Sun, 29 Sep 2024 12:25:55 +0200 Subject: [PATCH 14/20] fix: issue with _data file permissions --- .dockerignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.dockerignore b/.dockerignore index f5b12aec02..f9de078683 100644 --- a/.dockerignore +++ b/.dockerignore @@ -8,4 +8,6 @@ build docker-compose.yml .husky +_data + .docusaurus From 3d4283ca9ac67597293f1eca98a61232c3bd50e2 Mon Sep 17 00:00:00 2001 From: Niek Candaele Date: Sun, 29 Sep 2024 12:33:18 +0200 Subject: [PATCH 15/20] fix: player tests for playtimeSeconds --- packages/app-api/src/service/PlayerService.ts | 3 + .../__tests__/eventWorker.integration.test.ts | 12 +++ packages/lib-apiclient/src/generated/api.ts | 79 +++++++++++++++++-- packages/lib-apiclient/src/generated/base.ts | 4 +- .../lib-apiclient/src/generated/common.ts | 4 +- .../src/generated/configuration.ts | 4 +- packages/lib-apiclient/src/generated/index.ts | 4 +- ...rride the expiry of a role assignment.json | 51 ++++++------ .../Expired roles get deleted.json | 25 +++--- ...r properly - expiring gameserver role.json | 51 ++++++------ ...erver properly - expiring global role.json | 63 +++++++-------- 11 files changed, 193 insertions(+), 107 deletions(-) diff --git a/packages/app-api/src/service/PlayerService.ts b/packages/app-api/src/service/PlayerService.ts index 6724564ad7..83f423d281 100644 --- a/packages/app-api/src/service/PlayerService.ts +++ b/packages/app-api/src/service/PlayerService.ts @@ -78,6 +78,9 @@ export class PlayerOutputDTO extends TakaroModelDTO { @IsOptional() steamLevel?: number; + @IsNumber() + playtimeSeconds: number; + @IsOptional() @ValidateNested({ each: true }) @Type(() => PlayerOnGameserverOutputDTO) diff --git a/packages/app-api/src/workers/__tests__/eventWorker.integration.test.ts b/packages/app-api/src/workers/__tests__/eventWorker.integration.test.ts index f3cb526fca..f09104594d 100644 --- a/packages/app-api/src/workers/__tests__/eventWorker.integration.test.ts +++ b/packages/app-api/src/workers/__tests__/eventWorker.integration.test.ts @@ -162,6 +162,18 @@ const tests = [ `Playtime should be greater than 0 after disconnecting, current playtime: ${pog.playtimeSeconds}`, ); }); + + // The global player playtime should be updated as well + const players = await this.client.player.playerControllerSearch({ + filters: { id: updatedPogs.data.data.map((pog) => pog.playerId) }, + }); + expect(players.data.data).to.have.lengthOf(5); + players.data.data.forEach((player) => { + expect(player.playtimeSeconds).to.be.greaterThan( + 0, + `Playtime should be greater than 0 after disconnecting, current playtime: ${player.playtimeSeconds}`, + ); + }); }, }), ]; diff --git a/packages/lib-apiclient/src/generated/api.ts b/packages/lib-apiclient/src/generated/api.ts index 545a14096c..aeb9830886 100644 --- a/packages/lib-apiclient/src/generated/api.ts +++ b/packages/lib-apiclient/src/generated/api.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Takaro app-api + * Takaro API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 + * The version of the OpenAPI document: unset - unset * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -6718,6 +6718,12 @@ export interface PlayerOutputDTO { * @memberof PlayerOutputDTO */ steamLevel?: number; + /** + * + * @type {number} + * @memberof PlayerOutputDTO + */ + playtimeSeconds: number; /** * * @type {Array} @@ -6870,6 +6876,12 @@ export interface PlayerOutputWithRolesDTO { * @memberof PlayerOutputWithRolesDTO */ steamLevel?: number; + /** + * + * @type {number} + * @memberof PlayerOutputWithRolesDTO + */ + playtimeSeconds: number; /** * * @type {Array} @@ -7031,6 +7043,55 @@ export interface PlayerSearchInputAllowedFilters { */ id?: Array; } +/** + * + * @export + * @interface PlayerSearchInputAllowedRangeFilter + */ +export interface PlayerSearchInputAllowedRangeFilter { + /** + * + * @type {NOTDOMAINSCOPEDTakaroModelDTOCreatedAt} + * @memberof PlayerSearchInputAllowedRangeFilter + */ + steamAccountCreated?: NOTDOMAINSCOPEDTakaroModelDTOCreatedAt; + /** + * + * @type {number} + * @memberof PlayerSearchInputAllowedRangeFilter + */ + steamDaysSinceLastBan?: number; + /** + * + * @type {number} + * @memberof PlayerSearchInputAllowedRangeFilter + */ + steamNumberOfVACBans?: number; + /** + * + * @type {number} + * @memberof PlayerSearchInputAllowedRangeFilter + */ + steamLevel?: number; + /** + * + * @type {number} + * @memberof PlayerSearchInputAllowedRangeFilter + */ + playtimeSeconds?: number; + /** + * + * @type {NOTDOMAINSCOPEDTakaroModelDTOCreatedAt} + * @memberof PlayerSearchInputAllowedRangeFilter + */ + createdAt?: NOTDOMAINSCOPEDTakaroModelDTOCreatedAt; + /** + * + * @type {NOTDOMAINSCOPEDTakaroModelDTOCreatedAt} + * @memberof PlayerSearchInputAllowedRangeFilter + */ + updatedAt?: NOTDOMAINSCOPEDTakaroModelDTOCreatedAt; +} /** * * @export @@ -7051,16 +7112,16 @@ export interface PlayerSearchInputDTO { search?: PlayerSearchInputAllowedFilters; /** * - * @type {any} + * @type {PlayerSearchInputAllowedRangeFilter} * @memberof PlayerSearchInputDTO */ - greaterThan?: any; + greaterThan?: PlayerSearchInputAllowedRangeFilter; /** * - * @type {any} + * @type {PlayerSearchInputAllowedRangeFilter} * @memberof PlayerSearchInputDTO */ - lessThan?: any; + lessThan?: PlayerSearchInputAllowedRangeFilter; /** * * @type {number} @@ -7131,6 +7192,12 @@ export interface PlayerUpdateDTO { * @memberof PlayerUpdateDTO */ epicOnlineServicesId?: string; + /** + * + * @type {number} + * @memberof PlayerUpdateDTO + */ + playtimeSeconds?: number; } /** * diff --git a/packages/lib-apiclient/src/generated/base.ts b/packages/lib-apiclient/src/generated/base.ts index de554b9c5d..b8bd4230cc 100644 --- a/packages/lib-apiclient/src/generated/base.ts +++ b/packages/lib-apiclient/src/generated/base.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Takaro app-api + * Takaro API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 + * The version of the OpenAPI document: unset - unset * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/common.ts b/packages/lib-apiclient/src/generated/common.ts index 2bab379585..f2f7f5a3a1 100644 --- a/packages/lib-apiclient/src/generated/common.ts +++ b/packages/lib-apiclient/src/generated/common.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Takaro app-api + * Takaro API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 + * The version of the OpenAPI document: unset - unset * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/configuration.ts b/packages/lib-apiclient/src/generated/configuration.ts index e8164a19a9..2c85febd69 100644 --- a/packages/lib-apiclient/src/generated/configuration.ts +++ b/packages/lib-apiclient/src/generated/configuration.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Takaro app-api + * Takaro API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 + * The version of the OpenAPI document: unset - unset * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/index.ts b/packages/lib-apiclient/src/generated/index.ts index 62ab694e59..ff32b04e21 100644 --- a/packages/lib-apiclient/src/generated/index.ts +++ b/packages/lib-apiclient/src/generated/index.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Takaro app-api + * Takaro API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 0984d23b795306684e25b50b972bbb72942926f4 + * The version of the OpenAPI document: unset - unset * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/test/src/__snapshots__/PlayerController/Can override the expiry of a role assignment.json b/packages/test/src/__snapshots__/PlayerController/Can override the expiry of a role assignment.json index bceef6046b..28415e437e 100644 --- a/packages/test/src/__snapshots__/PlayerController/Can override the expiry of a role assignment.json +++ b/packages/test/src/__snapshots__/PlayerController/Can override the expiry of a role assignment.json @@ -2,13 +2,13 @@ "body": { "meta": {}, "data": { - "createdAt": "2024-08-17T14:54:58.892Z", - "updatedAt": "2024-08-17T14:54:59.406Z", - "id": "0bc2831c-42fb-4bc8-876d-37a7f789cf63", - "name": "Candice_Berge", - "steamId": "xf5eryn8r1gs02tu", - "xboxLiveId": "ne67y6p9cmjncz8m", - "epicOnlineServicesId": "x606jagm8uou2go9", + "createdAt": "2024-09-29T10:31:03.076Z", + "updatedAt": "2024-09-29T10:31:03.264Z", + "id": "0eb7239b-5536-49c3-88dc-c593d446d7b1", + "name": "Lulu55", + "steamId": "cEmah9cJ3djRGGBd", + "xboxLiveId": "0VC9zeKJkjqdZnvR", + "epicOnlineServicesId": "vdx4k8GRlsea1fci", "steamAvatar": null, "steamLastFetch": null, "steamAccountCreated": null, @@ -18,27 +18,28 @@ "steamsDaysSinceLastBan": null, "steamNumberOfVACBans": null, "steamLevel": null, + "playtimeSeconds": 0, "roleAssignments": [ { - "createdAt": "2024-08-17T14:54:59.664Z", - "updatedAt": "2024-08-17T14:54:59.690Z", - "id": "0a6d9fe7-e80a-410a-bf12-7095eac25143", - "playerId": "0bc2831c-42fb-4bc8-876d-37a7f789cf63", - "roleId": "e6de15d8-f192-4a90-a663-c5322f2e2d6f", + "createdAt": "2024-09-29T10:31:03.447Z", + "updatedAt": "2024-09-29T10:31:03.463Z", + "id": "10dcf63f-fb98-4ecf-ae02-5183efe7b100", + "playerId": "0eb7239b-5536-49c3-88dc-c593d446d7b1", + "roleId": "a5cb2216-8107-4fa4-a14a-3c986757925a", "gameServerId": null, - "expiresAt": "2024-08-17T15:54:59.646Z", + "expiresAt": "2024-09-29T11:31:03.433Z", "role": { - "createdAt": "2024-08-17T14:54:59.638Z", - "updatedAt": "2024-08-17T14:54:59.639Z", - "id": "e6de15d8-f192-4a90-a663-c5322f2e2d6f", + "createdAt": "2024-09-29T10:31:03.426Z", + "updatedAt": "2024-09-29T10:31:03.426Z", + "id": "a5cb2216-8107-4fa4-a14a-3c986757925a", "name": "Test role", "system": false, "permissions": [ { - "createdAt": "2024-08-17T14:54:59.641Z", - "updatedAt": "2024-08-17T14:54:59.641Z", - "id": "95ca3c75-4659-4be8-a1a9-3784cf84f0ea", - "roleId": "e6de15d8-f192-4a90-a663-c5322f2e2d6f", + "createdAt": "2024-09-29T10:31:03.428Z", + "updatedAt": "2024-09-29T10:31:03.428Z", + "id": "18ac09be-2d77-4e97-8bab-6d5a33848324", + "roleId": "a5cb2216-8107-4fa4-a14a-3c986757925a", "count": 0, "permissionId": "3b7f6e7e-14fa-48b2-9b62-2aff6575350f" } @@ -46,12 +47,12 @@ } }, { - "playerId": "0bc2831c-42fb-4bc8-876d-37a7f789cf63", - "roleId": "7b6d0471-cc33-4226-8155-d5584d559601", + "playerId": "0eb7239b-5536-49c3-88dc-c593d446d7b1", + "roleId": "de767808-e419-479d-be86-85c3f4165232", "role": { - "createdAt": "2024-08-17T14:54:58.381Z", - "updatedAt": "2024-08-17T14:54:58.382Z", - "id": "7b6d0471-cc33-4226-8155-d5584d559601", + "createdAt": "2024-09-29T10:31:02.645Z", + "updatedAt": "2024-09-29T10:31:02.645Z", + "id": "de767808-e419-479d-be86-85c3f4165232", "name": "Player", "system": true, "permissions": [] diff --git a/packages/test/src/__snapshots__/PlayerController/Expired roles get deleted.json b/packages/test/src/__snapshots__/PlayerController/Expired roles get deleted.json index dc55b64b09..ee4272d63f 100644 --- a/packages/test/src/__snapshots__/PlayerController/Expired roles get deleted.json +++ b/packages/test/src/__snapshots__/PlayerController/Expired roles get deleted.json @@ -2,13 +2,13 @@ "body": { "meta": {}, "data": { - "createdAt": "2024-07-20T14:50:07.363Z", - "updatedAt": "2024-07-20T14:50:07.579Z", - "id": "03a543be-0ef8-48f3-a5a9-a045cfe28dc2", - "name": "Bradly.Schowalter4", - "steamId": "kyts1il9aa0n3stu", - "xboxLiveId": "kmu3dseopvoorrv6", - "epicOnlineServicesId": "fqpk20fnpvxe0efl", + "createdAt": "2024-09-29T10:31:00.204Z", + "updatedAt": "2024-09-29T10:31:00.526Z", + "id": "0c0935e8-146e-4eaf-9a64-d96c9be81eb5", + "name": "Maia_McCullough9", + "steamId": "5GgrUzqUCnbfcpgy", + "xboxLiveId": "zwcXT0Ws9zrNQ25p", + "epicOnlineServicesId": "Zijzs14cnMgSnzpF", "steamAvatar": null, "steamLastFetch": null, "steamAccountCreated": null, @@ -18,14 +18,15 @@ "steamsDaysSinceLastBan": null, "steamNumberOfVACBans": null, "steamLevel": null, + "playtimeSeconds": 0, "roleAssignments": [ { - "playerId": "03a543be-0ef8-48f3-a5a9-a045cfe28dc2", - "roleId": "a3f6364d-9486-49e1-8b80-8f31391663d8", + "playerId": "0c0935e8-146e-4eaf-9a64-d96c9be81eb5", + "roleId": "113b3eeb-407e-4c27-a3d2-c2ed923d4d93", "role": { - "createdAt": "2024-07-20T14:50:07.064Z", - "updatedAt": "2024-07-20T14:50:07.064Z", - "id": "a3f6364d-9486-49e1-8b80-8f31391663d8", + "createdAt": "2024-09-29T10:30:59.880Z", + "updatedAt": "2024-09-29T10:30:59.880Z", + "id": "113b3eeb-407e-4c27-a3d2-c2ed923d4d93", "name": "Player", "system": true, "permissions": [] diff --git a/packages/test/src/__snapshots__/PlayerController/Handles expiring role of gameServer properly - expiring gameserver role.json b/packages/test/src/__snapshots__/PlayerController/Handles expiring role of gameServer properly - expiring gameserver role.json index 59458c5b54..f01fead5ff 100644 --- a/packages/test/src/__snapshots__/PlayerController/Handles expiring role of gameServer properly - expiring gameserver role.json +++ b/packages/test/src/__snapshots__/PlayerController/Handles expiring role of gameServer properly - expiring gameserver role.json @@ -2,13 +2,13 @@ "body": { "meta": {}, "data": { - "createdAt": "2024-07-20T14:50:07.855Z", - "updatedAt": "2024-07-20T14:50:07.878Z", - "id": "0b8cd800-c79a-4cfa-b025-1ade653e0656", - "name": "Rachael71", - "steamId": "h0sql5f1d7ichgo5", - "xboxLiveId": null, - "epicOnlineServicesId": null, + "createdAt": "2024-09-29T10:31:01.265Z", + "updatedAt": "2024-09-29T10:31:01.457Z", + "id": "0ed24c71-982a-4912-b23f-9fd60f5155ba", + "name": "Maybell15", + "steamId": "tgpnscmxQo4AyJC0", + "xboxLiveId": "LClqu1A5aV8k3Bss", + "epicOnlineServicesId": "6PNLa4LgidT71FfZ", "steamAvatar": null, "steamLastFetch": null, "steamAccountCreated": null, @@ -18,40 +18,41 @@ "steamsDaysSinceLastBan": null, "steamNumberOfVACBans": null, "steamLevel": null, + "playtimeSeconds": 0, "roleAssignments": [ { - "createdAt": "2024-07-20T14:50:08.211Z", - "updatedAt": "2024-07-20T14:50:08.211Z", - "id": "b3ad4890-bc2f-40d5-bcc9-95dc171c088c", - "playerId": "0b8cd800-c79a-4cfa-b025-1ade653e0656", - "roleId": "dff1b0f0-2cc0-4d75-a885-0d5697bd7104", + "createdAt": "2024-09-29T10:31:01.637Z", + "updatedAt": "2024-09-29T10:31:01.637Z", + "id": "08f0122d-e98f-4ff0-a72c-faec616ac632", + "playerId": "0ed24c71-982a-4912-b23f-9fd60f5155ba", + "roleId": "1b7962d7-3c00-49e1-977f-0935afaaa4cd", "gameServerId": null, "expiresAt": null, "role": { - "createdAt": "2024-07-20T14:50:08.162Z", - "updatedAt": "2024-07-20T14:50:08.162Z", - "id": "dff1b0f0-2cc0-4d75-a885-0d5697bd7104", + "createdAt": "2024-09-29T10:31:01.600Z", + "updatedAt": "2024-09-29T10:31:01.600Z", + "id": "1b7962d7-3c00-49e1-977f-0935afaaa4cd", "name": "Global role", "system": false, "permissions": [ { - "createdAt": "2024-07-20T14:50:08.164Z", - "updatedAt": "2024-07-20T14:50:08.164Z", - "id": "bb704d14-5089-4120-b589-377b664d6908", - "roleId": "dff1b0f0-2cc0-4d75-a885-0d5697bd7104", + "createdAt": "2024-09-29T10:31:01.602Z", + "updatedAt": "2024-09-29T10:31:01.602Z", + "id": "e7752d36-86af-423f-8670-886d479f9b99", + "roleId": "1b7962d7-3c00-49e1-977f-0935afaaa4cd", "count": 0, - "permissionId": "d2328ae5-b23e-48de-8529-2ea6b6314013" + "permissionId": "3b7f6e7e-14fa-48b2-9b62-2aff6575350f" } ] } }, { - "playerId": "0b8cd800-c79a-4cfa-b025-1ade653e0656", - "roleId": "a30809bc-2251-4f76-82ad-5e3612010a34", + "playerId": "0ed24c71-982a-4912-b23f-9fd60f5155ba", + "roleId": "48ed52b8-7812-43a0-9a01-4005319f49b0", "role": { - "createdAt": "2024-07-20T14:50:07.647Z", - "updatedAt": "2024-07-20T14:50:07.647Z", - "id": "a30809bc-2251-4f76-82ad-5e3612010a34", + "createdAt": "2024-09-29T10:31:00.788Z", + "updatedAt": "2024-09-29T10:31:00.789Z", + "id": "48ed52b8-7812-43a0-9a01-4005319f49b0", "name": "Player", "system": true, "permissions": [] diff --git a/packages/test/src/__snapshots__/PlayerController/Handles expiring role of gameServer properly - expiring global role.json b/packages/test/src/__snapshots__/PlayerController/Handles expiring role of gameServer properly - expiring global role.json index bf44678344..964ffe3681 100644 --- a/packages/test/src/__snapshots__/PlayerController/Handles expiring role of gameServer properly - expiring global role.json +++ b/packages/test/src/__snapshots__/PlayerController/Handles expiring role of gameServer properly - expiring global role.json @@ -2,15 +2,15 @@ "body": { "meta": {}, "data": { - "id": "3939b6e4-b78b-43b5-b7e5-d8f51b81cb53", - "createdAt": "2023-12-23T10:21:14.688Z", - "updatedAt": "2023-12-23T10:21:14.688Z", - "name": "Jarred_Ledner", - "steamId": "9e1nw6ydnfz3qo04", - "xboxLiveId": null, - "epicOnlineServicesId": null, - "ipHistory": [], + "createdAt": "2024-09-29T10:31:02.033Z", + "updatedAt": "2024-09-29T10:31:02.351Z", + "id": "108b66ab-1843-4c01-bf91-6593a0bcd2bd", + "name": "Ole.Jacobi50", + "steamId": "AQWZe3gZE7AjevpT", + "xboxLiveId": "JLsfFUrwovd5lFns", + "epicOnlineServicesId": "TDlL0LLW5hpAubQf", "steamAvatar": null, + "steamLastFetch": null, "steamAccountCreated": null, "steamCommunityBanned": null, "steamEconomyBan": null, @@ -18,47 +18,48 @@ "steamsDaysSinceLastBan": null, "steamNumberOfVACBans": null, "steamLevel": null, + "playtimeSeconds": 0, "roleAssignments": [ { - "id": "980732ab-1f33-4c5d-898e-200777e6435c", - "createdAt": "2023-12-23T10:21:16.283Z", - "updatedAt": "2023-12-23T10:21:16.283Z", - "playerId": "3939b6e4-b78b-43b5-b7e5-d8f51b81cb53", - "roleId": "e76c228c-5196-4259-976e-3882d57d6b00", - "gameServerId": "5fd76cb9-f54a-453c-a726-5f93d743b1a5", + "createdAt": "2024-09-29T10:31:02.553Z", + "updatedAt": "2024-09-29T10:31:02.553Z", + "id": "300b96ee-3d95-4017-bddc-a1f048cf1d94", + "playerId": "108b66ab-1843-4c01-bf91-6593a0bcd2bd", + "roleId": "cf85e41d-8b5b-4cdf-8c3d-c69e5712ff4f", + "gameServerId": "c23e6159-9c2e-47ae-93e6-b5a7f0758f59", "expiresAt": null, "role": { - "id": "e76c228c-5196-4259-976e-3882d57d6b00", - "createdAt": "2023-12-23T10:21:16.205Z", - "updatedAt": "2023-12-23T10:21:16.205Z", + "createdAt": "2024-09-29T10:31:02.517Z", + "updatedAt": "2024-09-29T10:31:02.517Z", + "id": "cf85e41d-8b5b-4cdf-8c3d-c69e5712ff4f", "name": "GameServer role", "system": false, "permissions": [ { - "id": "7a125568-571b-4c21-8e9a-0468813edb9a", - "createdAt": "2023-12-23T10:21:16.209Z", - "updatedAt": "2023-12-23T10:21:16.210Z", - "permissionId": "dbba72fe-22bc-4683-af84-cbc1c352fbac", - "roleId": "e76c228c-5196-4259-976e-3882d57d6b00", - "count": 0 + "createdAt": "2024-09-29T10:31:02.519Z", + "updatedAt": "2024-09-29T10:31:02.519Z", + "id": "e916d79e-71d7-44f5-a441-ac81515367ac", + "roleId": "cf85e41d-8b5b-4cdf-8c3d-c69e5712ff4f", + "count": 0, + "permissionId": "3b7f6e7e-14fa-48b2-9b62-2aff6575350f" } ] } }, { - "playerId": "3939b6e4-b78b-43b5-b7e5-d8f51b81cb53", - "roleId": "99d159d5-bca9-4091-a334-6ecd828e60c3", + "playerId": "108b66ab-1843-4c01-bf91-6593a0bcd2bd", + "roleId": "d08b0028-dd03-4a8a-89a3-f982dc076aa4", "role": { - "id": "99d159d5-bca9-4091-a334-6ecd828e60c3", - "createdAt": "2023-12-23T10:21:14.327Z", - "updatedAt": "2023-12-23T10:21:14.328Z", + "createdAt": "2024-09-29T10:31:01.742Z", + "updatedAt": "2024-09-29T10:31:01.742Z", + "id": "d08b0028-dd03-4a8a-89a3-f982dc076aa4", "name": "Player", - "permissions": [], - "system": true + "system": true, + "permissions": [] } } ], - "steamLastFetch": null + "ipHistory": [] } }, "status": 200, From adc73b8eb1611c9495017a7cafd42f6247843ad8 Mon Sep 17 00:00:00 2001 From: Niek Candaele Date: Sun, 29 Sep 2024 12:44:44 +0200 Subject: [PATCH 16/20] fix: a shop test --- .../economy/shop.integration.test.ts | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/packages/lib-modules/src/__tests__/economy/shop.integration.test.ts b/packages/lib-modules/src/__tests__/economy/shop.integration.test.ts index 8e8fdd9517..5bcb413db5 100644 --- a/packages/lib-modules/src/__tests__/economy/shop.integration.test.ts +++ b/packages/lib-modules/src/__tests__/economy/shop.integration.test.ts @@ -122,30 +122,11 @@ const tests = [ ); }, }), - new IntegrationTest({ group, snapshot: false, setup: shopSetup, name: 'Can buy an item', - test: async function () { - const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(HookEvents.CHAT_MESSAGE, 1); - await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, { - msg: '/shop 1 1 buy', - playerId: this.setupData.players[0].id, - }); - - expect(await events).to.have.length(1); - expect((await events)[0].data.meta.msg).to.equal( - 'You have purchased Test item for 100 test coin. You can now claim your items.', - ); - }, - }), - new IntegrationTest({ - group, - snapshot: false, - setup: shopSetup, - name: 'Buying an item automatically claims it', test: async function () { const events = (await new EventsAwaiter().connect(this.client)).waitForEvents(HookEvents.CHAT_MESSAGE, 2); await this.client.command.commandControllerTrigger(this.setupData.gameserver.id, { From 196012ec5e5214d7ef9703840663ab34e54d4498 Mon Sep 17 00:00:00 2001 From: Niek Candaele Date: Sun, 29 Sep 2024 13:26:56 +0200 Subject: [PATCH 17/20] chore: fix text for JSON import --- .../src/routes/_auth/_global/gameservers.create.import.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web-main/src/routes/_auth/_global/gameservers.create.import.tsx b/packages/web-main/src/routes/_auth/_global/gameservers.create.import.tsx index db1b213d3c..0d73323f2c 100644 --- a/packages/web-main/src/routes/_auth/_global/gameservers.create.import.tsx +++ b/packages/web-main/src/routes/_auth/_global/gameservers.create.import.tsx @@ -136,7 +136,7 @@ function Component() { variant="info" title="Importing CSMM data" text={`In CSMM, go to your server settings and scroll to the experimental section. - Export your server there, you will get a big blob of JSON. Paste that JSON into the box below and click submit. + Export your server there, you will get a big blob of JSON. Upload the JSON with the box below and click submit. You can select what will be imported, like players, role configs, currency, shop listings. It will also assign roles to players. From c1e8ee661961eefca21f5466c3cb5a338be565d4 Mon Sep 17 00:00:00 2001 From: Niek Candaele Date: Sun, 29 Sep 2024 13:34:42 +0200 Subject: [PATCH 18/20] fix: allow 25MB file uploads for imports --- .../app-api/src/controllers/GameServerController.ts | 9 ++++++++- packages/lib-http/src/middleware/errorHandler.ts | 10 ++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/app-api/src/controllers/GameServerController.ts b/packages/app-api/src/controllers/GameServerController.ts index 8c04ddc46d..de169b2211 100644 --- a/packages/app-api/src/controllers/GameServerController.ts +++ b/packages/app-api/src/controllers/GameServerController.ts @@ -42,7 +42,14 @@ import { AllowedFilters } from './shared.js'; import multer from 'multer'; const storage = multer.memoryStorage(); -const upload = multer({ storage }); +const upload = multer({ + storage, + limits: { + // 25MB + fileSize: 25 * 1024 * 1024, + fieldSize: 25 * 1024 * 1024, + }, +}); class GameServerTypesOutputDTOAPI extends APIOutput { @Type(() => GameServerOutputDTO) diff --git a/packages/lib-http/src/middleware/errorHandler.ts b/packages/lib-http/src/middleware/errorHandler.ts index 7d47e0d358..0b10863664 100644 --- a/packages/lib-http/src/middleware/errorHandler.ts +++ b/packages/lib-http/src/middleware/errorHandler.ts @@ -3,6 +3,7 @@ import { HttpError } from 'routing-controllers'; import { logger, errors } from '@takaro/util'; import { apiResponse } from '../util/apiResponse.js'; import { ValidationError } from 'class-validator'; +import { MulterError } from 'multer'; const log = logger('errorHandler'); @@ -25,6 +26,15 @@ export async function ErrorHandler( } } + if (originalError instanceof MulterError) { + status = 400; + parsedError = new errors.BadRequestError('Invalid file'); + if (originalError.code === 'LIMIT_FIELD_VALUE') { + status = 400; + parsedError = new errors.BadRequestError('File too large'); + } + } + if (originalError instanceof HttpError) { status = originalError.httpCode; } From 277ebffa4102a5063177cab33a2687133db224f1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 29 Sep 2024 11:41:43 +0000 Subject: [PATCH 19/20] chore(deps): update dependency @types/sinon to v17 --- package-lock.json | 18 ++++++++++++++---- package.json | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index aadc3e7710..c4228a85d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -85,7 +85,7 @@ "@types/react": "18.3.10", "@types/react-dom": "18.3.0", "@types/safe-regex": "1.1.6", - "@types/sinon": "10.0.20", + "@types/sinon": "17.0.3", "@types/sinon-chai": "3.2.12", "@types/supertest": "2.0.16", "@types/uuid": "10.0.0", @@ -24192,9 +24192,9 @@ "license": "MIT" }, "node_modules/@types/sinon": { - "version": "10.0.20", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.20.tgz", - "integrity": "sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==", + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", + "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", "dev": true, "license": "MIT", "dependencies": { @@ -49951,6 +49951,16 @@ "dev": true, "license": "MIT" }, + "packages/test/node_modules/@types/sinon": { + "version": "10.0.20", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.20.tgz", + "integrity": "sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/sinonjs__fake-timers": "*" + } + }, "packages/test/node_modules/ansi-colors": { "version": "4.1.1", "dev": true, diff --git a/package.json b/package.json index aa616b3117..0bb1f61898 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "@types/react": "18.3.10", "@types/react-dom": "18.3.0", "@types/safe-regex": "1.1.6", - "@types/sinon": "10.0.20", + "@types/sinon": "17.0.3", "@types/sinon-chai": "3.2.12", "@types/supertest": "2.0.16", "@types/uuid": "10.0.0", From 05bfe1e20be9b7d18289fa2522fc317f4f9f091a Mon Sep 17 00:00:00 2001 From: "takaro-ci-bot[bot]" <138661031+takaro-ci-bot[bot]@users.noreply.github.com> Date: Sun, 29 Sep 2024 12:13:56 +0000 Subject: [PATCH 20/20] chore: generate api client --- packages/lib-apiclient/src/generated/api.ts | 4 ++-- packages/lib-apiclient/src/generated/base.ts | 4 ++-- packages/lib-apiclient/src/generated/common.ts | 4 ++-- packages/lib-apiclient/src/generated/configuration.ts | 4 ++-- packages/lib-apiclient/src/generated/index.ts | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/lib-apiclient/src/generated/api.ts b/packages/lib-apiclient/src/generated/api.ts index dcdf6b9691..dfd677771c 100644 --- a/packages/lib-apiclient/src/generated/api.ts +++ b/packages/lib-apiclient/src/generated/api.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Takaro API + * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 10b625f9bfc3a1edd31a81c587b6ffb7f227b45d + * The version of the OpenAPI document: development - 98a10efc44244d59fa3174fb153e085454fc4371 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/base.ts b/packages/lib-apiclient/src/generated/base.ts index 235631b9ea..26871534c2 100644 --- a/packages/lib-apiclient/src/generated/base.ts +++ b/packages/lib-apiclient/src/generated/base.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Takaro API + * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 10b625f9bfc3a1edd31a81c587b6ffb7f227b45d + * The version of the OpenAPI document: development - 98a10efc44244d59fa3174fb153e085454fc4371 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/common.ts b/packages/lib-apiclient/src/generated/common.ts index 924dd7578a..04311ee797 100644 --- a/packages/lib-apiclient/src/generated/common.ts +++ b/packages/lib-apiclient/src/generated/common.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Takaro API + * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 10b625f9bfc3a1edd31a81c587b6ffb7f227b45d + * The version of the OpenAPI document: development - 98a10efc44244d59fa3174fb153e085454fc4371 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/configuration.ts b/packages/lib-apiclient/src/generated/configuration.ts index d23c502282..9ca122c479 100644 --- a/packages/lib-apiclient/src/generated/configuration.ts +++ b/packages/lib-apiclient/src/generated/configuration.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Takaro API + * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 10b625f9bfc3a1edd31a81c587b6ffb7f227b45d + * The version of the OpenAPI document: development - 98a10efc44244d59fa3174fb153e085454fc4371 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/packages/lib-apiclient/src/generated/index.ts b/packages/lib-apiclient/src/generated/index.ts index fca4b6e027..acfea3a474 100644 --- a/packages/lib-apiclient/src/generated/index.ts +++ b/packages/lib-apiclient/src/generated/index.ts @@ -1,10 +1,10 @@ /* tslint:disable */ /* eslint-disable */ /** - * Takaro API + * Takaro app-api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * - * The version of the OpenAPI document: development - 10b625f9bfc3a1edd31a81c587b6ffb7f227b45d + * The version of the OpenAPI document: development - 98a10efc44244d59fa3174fb153e085454fc4371 * Contact: support@takaro.io * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).