From 8adffc3212d5a3605267ff9acfa446322a5752bd Mon Sep 17 00:00:00 2001 From: Charles Le Maux Date: Mon, 16 Sep 2024 22:45:35 +0200 Subject: [PATCH 1/6] [+] Renamed default server card for future scaling. I want to work on brand new cards using spring --- .../DefaultServerCard.jsx} | 10 ++++------ .../DefaultServerCard.module.scss} | 0 2 files changed, 4 insertions(+), 6 deletions(-) rename src/components/{serverCard/serverCard.jsx => serverCards/DefaultServerCard.jsx} (91%) rename src/components/{serverCard/serverCard.module.scss => serverCards/DefaultServerCard.module.scss} (100%) diff --git a/src/components/serverCard/serverCard.jsx b/src/components/serverCards/DefaultServerCard.jsx similarity index 91% rename from src/components/serverCard/serverCard.jsx rename to src/components/serverCards/DefaultServerCard.jsx index 5aa3468..ec66a76 100644 --- a/src/components/serverCard/serverCard.jsx +++ b/src/components/serverCards/DefaultServerCard.jsx @@ -1,5 +1,5 @@ import { Link } from 'react-router-dom'; -import styles from './serverCard.module.scss'; +import styles from './DefaultServerCard.module.scss'; import bukkit from '../../assets/frameworks/bukkit.png'; import fabric from '../../assets/frameworks/fabric.png'; @@ -10,9 +10,7 @@ import vanilla from '../../assets/frameworks/vanilla.png'; import PropTypes from "prop-types"; // eslint-disable-next-line react/prop-types -const ServerCard = ({ status, version, name, framework, onRunClick, onStopClick, onDeleteClick , countPlayers , maxPlayers}) => { - - +const DefaultServerCard = ({ status, version, name, framework, onRunClick, onStopClick, onDeleteClick , countPlayers , maxPlayers}) => { const getFrameworkSource = () => { switch (framework) { case "bukkit": @@ -89,7 +87,7 @@ const ServerCard = ({ status, version, name, framework, onRunClick, onStopClick, }; -ServerCard.propTypes = { +DefaultServerCard.propTypes = { key: PropTypes.string, status: PropTypes.bool, version: PropTypes.string, @@ -102,4 +100,4 @@ ServerCard.propTypes = { subdomain: PropTypes.string, }; -export default ServerCard; +export default DefaultServerCard; diff --git a/src/components/serverCard/serverCard.module.scss b/src/components/serverCards/DefaultServerCard.module.scss similarity index 100% rename from src/components/serverCard/serverCard.module.scss rename to src/components/serverCards/DefaultServerCard.module.scss From 5484017ba7c7b3de26e4018ae68b4ccc892488c9 Mon Sep 17 00:00:00 2001 From: Charles Le Maux Date: Mon, 16 Sep 2024 22:46:10 +0200 Subject: [PATCH 2/6] [+] Fixed basic warnings and indentation --- src/components/CreateServer/CreateServer.jsx | 5 ++-- src/pages/DashboardPage/DashboardPage.jsx | 31 ++++++++++---------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/components/CreateServer/CreateServer.jsx b/src/components/CreateServer/CreateServer.jsx index 5f19719..865621d 100644 --- a/src/components/CreateServer/CreateServer.jsx +++ b/src/components/CreateServer/CreateServer.jsx @@ -67,8 +67,9 @@ const CreateServer = ({ user, onCreateServer, onSubdomainUpdate, onCancel, noSer }; useEffect(() => { - loadSubdomain(); - }, [user]); + loadSubdomain().then(r => r); + }, + [user]); const handleSaveSubdomain = async () => { try { diff --git a/src/pages/DashboardPage/DashboardPage.jsx b/src/pages/DashboardPage/DashboardPage.jsx index adde911..2526645 100644 --- a/src/pages/DashboardPage/DashboardPage.jsx +++ b/src/pages/DashboardPage/DashboardPage.jsx @@ -1,5 +1,5 @@ import { useEffect, useState } from 'react'; -import ServerCard from '../../components/serverCard/serverCard'; +import DefaultServerCard from '../../components/serverCards/DefaultServerCard.jsx'; import Navbar from '../../components/navbar/Navbar'; import styles from './DashboardPage.module.scss'; import Loading from '../Loading/loading'; @@ -87,7 +87,7 @@ const DashboardPage = ({ user }) => { const handleCopyAddress = () => { const address = `${subdomain}.servii.fr`; - navigator.clipboard.writeText(address) + navigator.clipboard.writeText(address).then(r => r) }; @@ -116,6 +116,7 @@ const DashboardPage = ({ user }) => { @@ -134,19 +135,19 @@ const DashboardPage = ({ user }) => { Créer un nouveau serveur {servers.map((server) => ( - handleRunServer(server.name)} - onStopClick={() => handleStopServer(server.name)} - onDeleteClick={() => handleDeleteServer(server.name)} - subdomain={subdomain} - /> + handleRunServer(server.name)} + onStopClick={() => handleStopServer(server.name)} + onDeleteClick={() => handleDeleteServer(server.name)} + subdomain={subdomain} + /> ))} )} From d2f50162514f4013fbe69ecc7397fa286be41a01 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 19:05:10 +0000 Subject: [PATCH 3/6] Bump vite from 5.3.1 to 5.4.6 Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.3.1 to 5.4.6. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.6/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.6/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- package-lock.json | 172 ++++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 89 insertions(+), 85 deletions(-) diff --git a/package-lock.json b/package-lock.json index dedc1e5..6921446 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "eslint-plugin-react": "^7.34.2", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.7", - "vite": "^5.3.1" + "vite": "^5.4.6" } }, "node_modules/@adobe/css-tools": { @@ -2953,9 +2953,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", - "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.3.tgz", + "integrity": "sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==", "cpu": [ "arm" ], @@ -2966,9 +2966,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", - "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.3.tgz", + "integrity": "sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==", "cpu": [ "arm64" ], @@ -2979,9 +2979,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", - "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.3.tgz", + "integrity": "sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==", "cpu": [ "arm64" ], @@ -2992,9 +2992,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", - "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.3.tgz", + "integrity": "sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==", "cpu": [ "x64" ], @@ -3005,9 +3005,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", - "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.3.tgz", + "integrity": "sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==", "cpu": [ "arm" ], @@ -3018,9 +3018,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", - "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.3.tgz", + "integrity": "sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==", "cpu": [ "arm" ], @@ -3031,9 +3031,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", - "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.3.tgz", + "integrity": "sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==", "cpu": [ "arm64" ], @@ -3044,9 +3044,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", - "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.3.tgz", + "integrity": "sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==", "cpu": [ "arm64" ], @@ -3057,9 +3057,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", - "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.3.tgz", + "integrity": "sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==", "cpu": [ "ppc64" ], @@ -3070,9 +3070,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", - "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.3.tgz", + "integrity": "sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==", "cpu": [ "riscv64" ], @@ -3083,9 +3083,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", - "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.3.tgz", + "integrity": "sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==", "cpu": [ "s390x" ], @@ -3096,9 +3096,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", - "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.3.tgz", + "integrity": "sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==", "cpu": [ "x64" ], @@ -3109,9 +3109,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", - "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.3.tgz", + "integrity": "sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==", "cpu": [ "x64" ], @@ -3122,9 +3122,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", - "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.3.tgz", + "integrity": "sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==", "cpu": [ "arm64" ], @@ -3135,9 +3135,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", - "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.3.tgz", + "integrity": "sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==", "cpu": [ "ia32" ], @@ -3148,9 +3148,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", - "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.3.tgz", + "integrity": "sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==", "cpu": [ "x64" ], @@ -9427,9 +9427,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -9528,9 +9528,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "funding": [ { @@ -9548,8 +9548,8 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -10020,9 +10020,9 @@ } }, "node_modules/rollup": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", - "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.3.tgz", + "integrity": "sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -10035,22 +10035,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.18.0", - "@rollup/rollup-android-arm64": "4.18.0", - "@rollup/rollup-darwin-arm64": "4.18.0", - "@rollup/rollup-darwin-x64": "4.18.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", - "@rollup/rollup-linux-arm-musleabihf": "4.18.0", - "@rollup/rollup-linux-arm64-gnu": "4.18.0", - "@rollup/rollup-linux-arm64-musl": "4.18.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", - "@rollup/rollup-linux-riscv64-gnu": "4.18.0", - "@rollup/rollup-linux-s390x-gnu": "4.18.0", - "@rollup/rollup-linux-x64-gnu": "4.18.0", - "@rollup/rollup-linux-x64-musl": "4.18.0", - "@rollup/rollup-win32-arm64-msvc": "4.18.0", - "@rollup/rollup-win32-ia32-msvc": "4.18.0", - "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@rollup/rollup-android-arm-eabi": "4.21.3", + "@rollup/rollup-android-arm64": "4.21.3", + "@rollup/rollup-darwin-arm64": "4.21.3", + "@rollup/rollup-darwin-x64": "4.21.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.3", + "@rollup/rollup-linux-arm-musleabihf": "4.21.3", + "@rollup/rollup-linux-arm64-gnu": "4.21.3", + "@rollup/rollup-linux-arm64-musl": "4.21.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.3", + "@rollup/rollup-linux-riscv64-gnu": "4.21.3", + "@rollup/rollup-linux-s390x-gnu": "4.21.3", + "@rollup/rollup-linux-x64-gnu": "4.21.3", + "@rollup/rollup-linux-x64-musl": "4.21.3", + "@rollup/rollup-win32-arm64-msvc": "4.21.3", + "@rollup/rollup-win32-ia32-msvc": "4.21.3", + "@rollup/rollup-win32-x64-msvc": "4.21.3", "fsevents": "~2.3.2" } }, @@ -10265,9 +10265,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "engines": { "node": ">=0.10.0" } @@ -10858,14 +10858,14 @@ } }, "node_modules/vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", + "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", "dev": true, "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -10884,6 +10884,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -10901,6 +10902,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, diff --git a/package.json b/package.json index 4659aff..57ee456 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,6 @@ "eslint-plugin-react": "^7.34.2", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.7", - "vite": "^5.3.1" + "vite": "^5.4.6" } } From b1d30fb671dac8344db0cd57256840a96202f2b1 Mon Sep 17 00:00:00 2001 From: Charles Le Maux Date: Fri, 20 Sep 2024 16:17:19 +0200 Subject: [PATCH 4/6] [+] New super secure token authentication system. --- src/service/api.tsx | 73 +++++++++++++++++++--------------------- src/service/firebase.jsx | 2 +- 2 files changed, 36 insertions(+), 39 deletions(-) diff --git a/src/service/api.tsx b/src/service/api.tsx index 2be430e..c043970 100644 --- a/src/service/api.tsx +++ b/src/service/api.tsx @@ -1,7 +1,8 @@ -import { getAuth } from 'firebase/auth'; -import { Bounce, toast } from "react-toastify"; +import {auth} from './firebase.jsx' +import {Bounce, toast} from "react-toastify"; -const apiUrl: string = 'https://www.servii.fr/api'; +//const apiUrl: string = 'https://www.servii.fr/api'; +const apiUrl: string = 'http://localhost:3000'; interface ApiResponse { return_code: number; @@ -9,7 +10,6 @@ interface ApiResponse { } interface BaseRequest { - token: string; } interface SubdomainRequest extends BaseRequest { @@ -87,13 +87,14 @@ function toast_status(status: number, message: string) { } class serviiApi { - private static async call(endpoint: serviiRequest, body: T): Promise { + private static async call(endpoint: serviiRequest, body: T, token: string): Promise { const unreachable: string = "Couldn't find an available API"; try { const response = await fetch(`${apiUrl}/${endpoint}`, { method: 'POST', headers: { 'Content-Type': 'application/json', + 'SST': token, }, body: JSON.stringify(body), }); @@ -121,81 +122,77 @@ class serviiApi { constructor() {} - private static token(): string { - const currentUser = getAuth().currentUser; - if (!currentUser) { - throw new Error('No user is currently logged in.'); + private static async token(): Promise { + try { + return await auth.currentUser.getIdToken(true); + } catch (error) { + throw new Error("No token retrieved."); } - return currentUser.uid; } public static async setSubdomain(subdomain: string): Promise { - const payload: SubdomainRequest = { token: this.token(), subdomain: subdomain }; - return this.call(serviiRequest.setSubdomain, payload); + const payload: SubdomainRequest = { subdomain: subdomain }; + return this.call(serviiRequest.setSubdomain, payload, await this.token()); } public static async fetchServers(): Promise { - const payload: BaseRequest = { token: this.token() }; - return this.call(serviiRequest.fetchServers, payload); + const payload: BaseRequest = { wait: "wtf" }; + return this.call(serviiRequest.fetchServers, payload, await this.token()); } public static async fetchLogs(name: string): Promise { - const payload: ServerRequest = { token: this.token(), name: name }; - return this.call(serviiRequest.fetchLogs, payload); + const payload: ServerRequest = { name: name }; + return this.call(serviiRequest.fetchLogs, payload, await this.token()); } public static async fetchHistory(name: string): Promise { - const payload: ServerRequest = { token: this.token(), name: name }; - return this.call(serviiRequest.fetchHistory, payload); + const payload: ServerRequest = { name: name }; + return this.call(serviiRequest.fetchHistory, payload, await this.token()); } public static async fetchPlayersStatus(name: string): Promise { - const payload: ServerRequest = { token: this.token(), name: name,}; - return this.call(serviiRequest.fetchPlayersStatus, payload); + const payload: ServerRequest = { name: name,}; + return this.call(serviiRequest.fetchPlayersStatus, payload, await this.token()); } public static async accountCreate(): Promise { const payload: BaseRequest = { token: this.token() }; - return this.call(serviiRequest.accountCreate, payload); + return this.call(serviiRequest.accountCreate, payload, await this.token()); } public static async serverCreate(name: string, version: string, framework: string): Promise { - const payload: ServerCreationRequest = { token: this.token(), name: name, version: version, framework: framework }; - return this.call(serviiRequest.serverCreate, payload); + const payload: ServerCreationRequest = { name: name, version: version, framework: framework }; + return this.call(serviiRequest.serverCreate, payload, await this.token()); } public static async serverDelete(name: string): Promise { - const payload: ServerRequest = { token: this.token(), name: name }; - return this.call(serviiRequest.serverDelete, payload); + const payload: ServerRequest = { name: name }; + return this.call(serviiRequest.serverDelete, payload, await this.token()); } public static async accountDelete(): Promise { const payload: BaseRequest = { token: this.token() }; - return this.call(serviiRequest.accountDelete, payload); + return this.call(serviiRequest.accountDelete, payload, await this.token()); } public static async serverRun(name: string): Promise { - const payload: ServerRequest = { token: this.token(), name: name }; - return this.call(serviiRequest.serverRun, payload); + const payload: ServerRequest = { name: name }; + return this.call(serviiRequest.serverRun, payload, await this.token()); } public static async serverStop(name: string): Promise { - const payload: ServerRequest = { token: this.token(), name: name }; - return this.call(serviiRequest.serverStop, payload); + const payload: ServerRequest = { name: name }; + return this.call(serviiRequest.serverStop, payload, await this.token()); } public static async updateProperties(name: string, props: [string, string][]): Promise { - const payload: UpdatePropertiesRequest = { - token: this.token(), - name: name, - props: props, - }; - return this.call(serviiRequest.updateProperty, payload); + const payload: UpdatePropertiesRequest = { name: name, props: props }; + return this.call(serviiRequest.updateProperty, payload, await this.token()); } public static async command(command: string, name: string): Promise { - const payload: CommandRequest = { token: this.token(), command: command, name: name }; - return this.call(serviiRequest.command, payload); + const payload: CommandRequest = { command: command, name: name }; + return this.call(serviiRequest.command, payload, await this.token()); } } diff --git a/src/service/firebase.jsx b/src/service/firebase.jsx index 428677e..5f84bdd 100644 --- a/src/service/firebase.jsx +++ b/src/service/firebase.jsx @@ -37,4 +37,4 @@ const getUserSubdomain = async (userId) => { } }; -export { auth, googleProvider, signInWithPopup, getUserSubdomain }; +export { auth, googleProvider, signInWithPopup, getUserSubdomain, app }; From 1fe1d042928c5a21dc06ca27d6321246c6c0f455 Mon Sep 17 00:00:00 2001 From: Charles Le Maux Date: Fri, 20 Sep 2024 16:18:17 +0200 Subject: [PATCH 5/6] [+] Revert to regular API ip. --- src/service/api.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/service/api.tsx b/src/service/api.tsx index c043970..0c76d47 100644 --- a/src/service/api.tsx +++ b/src/service/api.tsx @@ -1,8 +1,8 @@ import {auth} from './firebase.jsx' import {Bounce, toast} from "react-toastify"; -//const apiUrl: string = 'https://www.servii.fr/api'; -const apiUrl: string = 'http://localhost:3000'; +const apiUrl: string = 'https://www.servii.fr/api'; +//const apiUrl: string = 'http://localhost:3000'; interface ApiResponse { return_code: number; From f9aec3805ca3a02e2da7f06e63a274d3f0ca509b Mon Sep 17 00:00:00 2001 From: Charles Le Maux Date: Sat, 21 Sep 2024 12:04:44 +0200 Subject: [PATCH 6/6] [+] Fixed optimization issue --- src/service/api.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/service/api.tsx b/src/service/api.tsx index 0c76d47..810def7 100644 --- a/src/service/api.tsx +++ b/src/service/api.tsx @@ -3,6 +3,8 @@ import {Bounce, toast} from "react-toastify"; const apiUrl: string = 'https://www.servii.fr/api'; //const apiUrl: string = 'http://localhost:3000'; +let token_fetched: boolean = false; +let token: string; interface ApiResponse { return_code: number; @@ -124,7 +126,14 @@ class serviiApi { private static async token(): Promise { try { - return await auth.currentUser.getIdToken(true); + if (!token_fetched) { + token = await auth.currentUser.getIdToken(true); + token_fetched = true; + return token; + } + else { + return token; + } } catch (error) { throw new Error("No token retrieved."); }