From 740e54fef8001bd94d937b71460787c3f459e4d4 Mon Sep 17 00:00:00 2001 From: Sarsum <33085157+Sarsum@users.noreply.github.com> Date: Wed, 14 Jul 2021 18:45:40 +0200 Subject: [PATCH 1/6] Add docusaurus typescript support --- package.json | 8 +++++++- tsconfig.json | 4 ++++ yarn.lock | 46 +++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 tsconfig.json diff --git a/package.json b/package.json index 9ec3635..6a382fb 100644 --- a/package.json +++ b/package.json @@ -31,13 +31,19 @@ "react-select": "^4.3.1" }, "devDependencies": { + "@docusaurus/module-type-aliases": "^2.0.0-beta.3", + "@tsconfig/docusaurus": "^1.0.2", "@types/eslint": "7.28.0", "@types/eslint-config-prettier": "6.11.0", "@types/prettier": "2.3.2", + "@types/react": "^17.0.14", + "@types/react-helmet": "^6.1.2", + "@types/react-router-dom": "^5.1.8", "eslint": "^7.30.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-mdx": "^1.14.1", "eslint-plugin-react": "^7.24.0", - "prettier": "2.3.2" + "prettier": "2.3.2", + "typescript": "^4.3.5" } } diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..77c5f75 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@tsconfig/docusaurus/tsconfig.json", + "include": ["src/"] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index ea7f8c3..ea26cd9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1290,6 +1290,11 @@ url-loader "^4.1.1" webpack "^5.40.0" +"@docusaurus/module-type-aliases@^2.0.0-beta.3": + version "2.0.0-beta.3" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.3.tgz#6381df7d164708f2865c420dc3ab6e03def9ed7d" + integrity sha512-vciejziDBu39cyfmdvbpn865YlvugJMUOeD2m/7Kg4RLUPIZzQTWns0ZGIMc/iToiwebHwkoJtRsHaHzj8FpnA== + "@docusaurus/plugin-client-redirects@^2.0.0-beta.3": version "2.0.0-beta.3" resolved "https://registry.yarnpkg.com/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-2.0.0-beta.3.tgz#c5e70286cd60557fce3b60c48b2c0a976e71e5fc" @@ -1924,6 +1929,11 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== +"@tsconfig/docusaurus@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@tsconfig/docusaurus/-/docusaurus-1.0.2.tgz#400ef146d3e7da2f78bf9749c943d123dce5fd97" + integrity sha512-x4rRVb346vjyym6QbeB1Tv01XXwhbkujOmvDmtf0bT20oc2gbDhbmwpskKqZ5Of2Q/Vk4jNk1WMiLsZdJ9t7Dw== + "@types/eslint-config-prettier@6.11.0": version "6.11.0" resolved "https://registry.yarnpkg.com/@types/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#5e944e94240df9c1ba755c3b1ebc3879d96ab991" @@ -1970,6 +1980,11 @@ dependencies: "@types/unist" "*" +"@types/history@*": + version "4.7.9" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.9.tgz#1cfb6d60ef3822c589f18e70f8b12f9a28ce8724" + integrity sha512-MUc6zSmU3tEVnkQ78q0peeEjKWPUADMlC/t++2bI8WnAG2tvYRPIgHG8lWkXwqc8MsUF6Z2MOf+Mh5sazOmhiQ== + "@types/html-minifier-terser@^5.0.0": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" @@ -2027,6 +2042,30 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== +"@types/react-helmet@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.2.tgz#e9d7d16b29e4ec5716711c52c35c3cec45819eac" + integrity sha512-dcfAZNlWb5JYFbO9CGfrPWLJAyFcT6UeR3u35eBbv8liY2Rg4K7fM1G5+HnwVgot+C+kVwXAZ8pLEn2jsMfTDg== + dependencies: + "@types/react" "*" + +"@types/react-router-dom@^5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.8.tgz#bf3e1c8149b3d62eaa206d58599de82df0241192" + integrity sha512-03xHyncBzG0PmDmf8pf3rehtjY0NpUj7TIN46FrT5n1ZWHPZvXz32gUyNboJ+xsL8cpg8bQVLcllptcQHvocrw== + dependencies: + "@types/history" "*" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*": + version "5.1.16" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.16.tgz#f3ba045fb96634e38b21531c482f9aeb37608a99" + integrity sha512-8d7nR/fNSqlTFGHti0R3F9WwIertOaaA1UEB8/jr5l5mDMOs4CidEgvvYMw4ivqrBK+vtVLxyTj2P+Pr/dtgzg== + dependencies: + "@types/history" "*" + "@types/react" "*" + "@types/react-transition-group@^4.2.0": version "4.4.2" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.2.tgz#38890fd9db68bf1f2252b99a942998dc7877c5b3" @@ -2034,7 +2073,7 @@ dependencies: "@types/react" "*" -"@types/react@*": +"@types/react@*", "@types/react@^17.0.14": version "17.0.14" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.14.tgz#f0629761ca02945c4e8fea99b8177f4c5c61fb0f" integrity sha512-0WwKHUbWuQWOce61UexYuWTGuGY/8JvtUe/dtQ6lR4sZ3UiylHotJeWpf3ArP9+DSGUoLY3wbU59VyMrJps5VQ== @@ -8980,6 +9019,11 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" +typescript@^4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" + integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== + ua-parser-js@^0.7.18: version "0.7.28" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" From 55d2d0568a8c6af5c642668a36161d158bdcc6b7 Mon Sep 17 00:00:00 2001 From: Sarsum <33085157+Sarsum@users.noreply.github.com> Date: Thu, 22 Jul 2021 10:55:15 +0200 Subject: [PATCH 2/6] Switched from jsx to tsx :) --- package.json | 1 + src/js/_dependencyDownload.jsx | 350 ------------------------------ src/js/_dependencyDownload.tsx | 370 +++++++++++++++++++++++++++++++ src/pages/imprint.jsx | 116 ---------- src/pages/imprint.tsx | 116 ++++++++++ src/pages/index.jsx | 150 ------------- src/pages/index.tsx | 150 +++++++++++++ src/pages/privacy.jsx | 384 --------------------------------- src/pages/privacy.tsx | 384 +++++++++++++++++++++++++++++++++ yarn.lock | 21 +- 10 files changed, 1040 insertions(+), 1002 deletions(-) delete mode 100644 src/js/_dependencyDownload.jsx create mode 100644 src/js/_dependencyDownload.tsx delete mode 100644 src/pages/imprint.jsx create mode 100644 src/pages/imprint.tsx delete mode 100644 src/pages/index.jsx create mode 100644 src/pages/index.tsx delete mode 100644 src/pages/privacy.jsx create mode 100644 src/pages/privacy.tsx diff --git a/package.json b/package.json index 6a382fb..dbf31a7 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "@types/react": "^17.0.14", "@types/react-helmet": "^6.1.2", "@types/react-router-dom": "^5.1.8", + "@types/react-select": "^4.0.17", "eslint": "^7.30.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-mdx": "^1.14.1", diff --git a/src/js/_dependencyDownload.jsx b/src/js/_dependencyDownload.jsx deleted file mode 100644 index 866ad42..0000000 --- a/src/js/_dependencyDownload.jsx +++ /dev/null @@ -1,350 +0,0 @@ -import React from "react"; -import clsx from "clsx"; -import styles from "../css/styles.module.css"; -import ReactSelect from "react-select"; - -function DependencyDownload() { - const [dependencyName, setDependencyName] = React.useState( - dependencies[0].name - ); - const [versionName, setVersionName] = React.useState( - dependencies[0].currentVersion - ); - const [versions, setVersions] = React.useState(getVersions(dependencies[0])); - const [downloadURL, setDownloadURL] = React.useState(() => { - let defaultDependency = dependencies[0]; - let defaultVersion = defaultDependency.versions.find( - (version) => version.version === defaultDependency.currentVersion - ); - return getDownloadURL(defaultVersion); - }); - let versionsRef = React.createRef(); - - function getVersions(dependency) { - return dependency.versions.map((version) => { - return { value: version.version, label: version.version }; - }); - } - - function getDownloadURL(version) { - let templateURL = releaseTypes.find( - (releaseType) => releaseType.name === version.releaseType - ).url; - if (!templateURL) { - console.error( - `ReleaseType ${version.releaseType} of ${version.name}(${version.version}) does not exist!` - ); - return ""; - } - return templateURL - .replace(/%groupId%/g, version.groupId) - .replace(/%artifactId%/g, version.artifactId) - .replace(/%version%/g, version.version); - } - - function updateDownloadURL(dependency, version) { - let selectedDependency = dependencies.find( - (localDependency) => localDependency.name === dependency - ); - let selectedVersion = selectedDependency.versions.find( - (localVersion) => localVersion.version === version - ); - setDownloadURL(getDownloadURL(selectedVersion)); - } - - function handleDependencyChange(newValue) { - let selectedDependency = dependencies.find( - (dependency) => dependency.name === newValue.value - ); - setDependencyName(selectedDependency.name); - setVersions(getVersions(selectedDependency)); - setVersionName(selectedDependency.currentVersion); - versionsRef.select.setValue({ - value: selectedDependency.currentVersion, - label: selectedDependency.currentVersion, - }); - updateDownloadURL( - selectedDependency.name, - selectedDependency.currentVersion - ); - } - - function handleVersionChange(newValue) { - setVersionName(newValue.value); - updateDownloadURL(dependencyName, newValue.value); - } - - const customTheme = (theme) => ({ - ...theme, - colors: { - ...theme.colors, - primary: "#1d9ce1", - primary75: "rgba(29,156,225,0.95)", - primary50: "rgba(29,156,225,0.85)", - primary25: "rgba(29,156,225,0.75)", - neutral0: "var(--ifm-dropdown-background-color)", - neutral5: "var(--ifm-color-emphasis-0)", - neutral10: "var(--ifm-color-emphasis-100)", - neutral20: "var(--ifm-color-emphasis-200)", - neutral30: "var(--ifm-color-emphasis-300)", - neutral40: "var(--ifm-color-emphasis-400)", - neutral50: "var(--ifm-color-emphasis-500)", - neutral60: "var(--ifm-color-emphasis-600)", - neutral70: "var(--ifm-color-emphasis-700)", - neutral80: "var(--ifm-color-emphasis-800)", - neutral90: "var(--ifm-color-emphasis-900)", - }, - }); - - return ( -
-
-

Dependency

- { - return { value: dependency.name, label: dependency.name }; - })} - defaultValue={{ value: dependencyName, label: dependencyName }} - onChange={handleDependencyChange} - className={clsx(styles.select)} - theme={customTheme} - /> -
-
-

Version

- { - versionsRef = ref; - }} - options={versions} - defaultValue={{ value: versionName, label: versionName }} - onChange={handleVersionChange} - className={clsx(styles.select)} - theme={customTheme} - /> -
-
- - Download - -
-
- ); -} - -export default DependencyDownload; - -const dependencies = [ - { - name: "cloudnet-driver", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-driver", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-driver", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-driver", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-wrapper-jvm", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-wrapper-jvm", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-wrapper-jvm", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-wrapper-jvm", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-bridge", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-bridge", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-bridge", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-bridge", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-cloudperms", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-cloudperms", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-cloudperms", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-cloudperms", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-syncproxy", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-syncproxy", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-syncproxy", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-syncproxy", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-signs", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-signs", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-signs", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-signs", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-npcs", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-npcs", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-npcs", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-npcs", - releaseType: "snapshot", - }, - ], - }, -]; -const releaseTypes = [ - { - name: "release", - url: "https://repo.cloudnetservice.eu/repository/releases/%groupId%/%artifactId%/%version%/%artifactId%-%version%.jar", - }, - { - name: "snapshot", - url: "https://repo.cloudnetservice.eu/repository/snapshots/%groupId%/%artifactId%/%version%/%artifactId%-%version%.jar", - }, -]; diff --git a/src/js/_dependencyDownload.tsx b/src/js/_dependencyDownload.tsx new file mode 100644 index 0000000..0467c7c --- /dev/null +++ b/src/js/_dependencyDownload.tsx @@ -0,0 +1,370 @@ +import React from "react"; +import clsx from "clsx"; +import styles from "../css/styles.module.css"; +import ReactSelect, {GroupTypeBase} from 'react-select'; +import Select from "react-select/base"; +import StateManager from "react-select"; + +function DependencyDownload() { + const [dependencyName, setDependencyName] = React.useState( + dependencies[0].name + ); + const [versionName, setVersionName] = React.useState( + dependencies[0].currentVersion + ); + const [versions, setVersions] = React.useState(getVersions(dependencies[0])); + const [downloadURL, setDownloadURL] = React.useState(() => { + let defaultDependency = dependencies[0]; + let defaultVersion = defaultDependency.versions.find( + (version) => version.version === defaultDependency.currentVersion + ); + return getDownloadURL(defaultVersion); + }); + let versionsRef = React.createRef, Select<{ value: string; label: string; }, false, GroupTypeBase<{ value: string; label: string; }>>>>(); + + function getVersions(dependency: Dependency) { + return dependency.versions.map((version) => { + return { value: version.version, label: version.version }; + }); + } + + function getDownloadURL(version: DependencyVersion): string { + let templateURL = releaseTypes.find( + (releaseType) => releaseType.name === version.releaseType + ).url; + if (!templateURL) { + console.error( + `ReleaseType ${version.releaseType} of ${version.artifactId}(${version.version}) does not exist!` + ); + return ""; + } + return templateURL + .replace(/%groupId%/g, version.groupId) + .replace(/%artifactId%/g, version.artifactId) + .replace(/%version%/g, version.version); + } + + function updateDownloadURL(dependency: string, version: string) { + let selectedDependency = dependencies.find( + (localDependency) => localDependency.name === dependency + ); + let selectedVersion = selectedDependency.versions.find( + (localVersion) => localVersion.version === version + ); + setDownloadURL(getDownloadURL(selectedVersion)); + } + + function handleDependencyChange(newValue) { + let selectedDependency = dependencies.find( + (dependency) => dependency.name === newValue.value + ); + setDependencyName(selectedDependency.name); + setVersions(getVersions(selectedDependency)); + setVersionName(selectedDependency.currentVersion); + versionsRef.current.select.setValue({ + value: selectedDependency.currentVersion, + label: selectedDependency.currentVersion, + }, "select-option"); + updateDownloadURL( + selectedDependency.name, + selectedDependency.currentVersion + ); + } + + function handleVersionChange(newValue) { + setVersionName(newValue.value); + updateDownloadURL(dependencyName, newValue.value); + } + + const customTheme = (theme) => ({ + ...theme, + colors: { + ...theme.colors, + primary: "#1d9ce1", + primary75: "rgba(29,156,225,0.95)", + primary50: "rgba(29,156,225,0.85)", + primary25: "rgba(29,156,225,0.75)", + neutral0: "var(--ifm-dropdown-background-color)", + neutral5: "var(--ifm-color-emphasis-0)", + neutral10: "var(--ifm-color-emphasis-100)", + neutral20: "var(--ifm-color-emphasis-200)", + neutral30: "var(--ifm-color-emphasis-300)", + neutral40: "var(--ifm-color-emphasis-400)", + neutral50: "var(--ifm-color-emphasis-500)", + neutral60: "var(--ifm-color-emphasis-600)", + neutral70: "var(--ifm-color-emphasis-700)", + neutral80: "var(--ifm-color-emphasis-800)", + neutral90: "var(--ifm-color-emphasis-900)", + }, + }); + + return ( +
+
+

Dependency

+ { + return { value: dependency.name, label: dependency.name }; + })} + defaultValue={{ value: dependencyName, label: dependencyName }} + onChange={handleDependencyChange} + className={clsx(styles.select)} + theme={customTheme} + /> +
+
+

Version

+ +
+
+ + Download + +
+
+ ); +} + +export default DependencyDownload; + +type ReleaseTypeName = 'snapshot' | 'release'; + +type ReleaseType = { + name: ReleaseTypeName + url: string +} + +type DependencyVersion = { + version: string, + groupId: string, + artifactId: string, + releaseType: ReleaseTypeName; +} + +type Dependency = { + name: string, + currentVersion: string, + versions: DependencyVersion[]; +} + +const dependencies: Dependency[] = [ + { + name: "cloudnet-driver", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-driver", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-driver", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-driver", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-wrapper-jvm", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-wrapper-jvm", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-wrapper-jvm", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-wrapper-jvm", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-bridge", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-bridge", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-bridge", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-bridge", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-cloudperms", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-cloudperms", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-cloudperms", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-cloudperms", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-syncproxy", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-syncproxy", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-syncproxy", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-syncproxy", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-signs", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-signs", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-signs", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-signs", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-npcs", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-npcs", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-npcs", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-npcs", + releaseType: "snapshot", + }, + ], + }, +]; +const releaseTypes: ReleaseType[] = [ + { + name: "release", + url: "https://repo.cloudnetservice.eu/repository/releases/%groupId%/%artifactId%/%version%/%artifactId%-%version%.jar", + }, + { + name: "snapshot", + url: "https://repo.cloudnetservice.eu/repository/snapshots/%groupId%/%artifactId%/%version%/%artifactId%-%version%.jar", + }, +]; diff --git a/src/pages/imprint.jsx b/src/pages/imprint.jsx deleted file mode 100644 index 1bcef94..0000000 --- a/src/pages/imprint.jsx +++ /dev/null @@ -1,116 +0,0 @@ -import React from "react"; -import clsx from "clsx"; -import Layout from "@theme/Layout"; -import styles from "./styles.module.css"; - -function Home() { - return ( - -
-

Impressum

-

Angaben gemäß § 5 TMG

-

- Joschua Kreimer -
- c/o nexserv GmbH -
- Dießemer Bruch 112c -
- 47805 Krefeld -
- Deutschland -

-

Kontakt

-

- Telefon: +4915678578650 -
- E-Mail:{" "} - - contact@cloudnetservice.eu - -

-

Redaktionell Verantwortlicher

-

- Joschua Kreimer -
- c/o nexserv GmbH -
- Dießemer Bruch 112c -
- 47805 Krefeld -
- Deutschland -

-

Haftung für Inhalte

{" "} -

- Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte - auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach - §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht - verpflichtet, übermittelte oder gespeicherte fremde Informationen zu - überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige - Tätigkeit hinweisen. -

-

- Verpflichtungen zur Entfernung oder Sperrung der Nutzung von - Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. - Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der - Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden - von entsprechenden Rechtsverletzungen werden wir diese Inhalte - umgehend entfernen. -

-

Social Media und andere Onlinepräsenzen

-

- Dieses Impressum gilt auch für die folgenden Social-Media-Präsenzen - und Onlineprofile:{" "} -

-

- - https://twitter.com/CloudNetService - -

-

Haftung für Links

{" "} -

- Unser Angebot enthält Links zu externen Websites Dritter, auf deren - Inhalte wir keinen Einfluss haben. Deshalb kö;nnen wir für diese - fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der - verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der - Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der - Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige - Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. -

-

- Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch - ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei - Bekanntwerden von Rechtsverletzungen werden wir derartige Links - umgehend entfernen. -

-

Urheberrecht

{" "} -

- Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen - Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, - Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der - Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des - jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite - sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. -

-

- Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt - wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden - Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf - eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen - entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen - werden wir derartige Inhalte umgehend entfernen. -

-

- Quelle: eRecht24 -

-
-
- ); -} - -export default Home; diff --git a/src/pages/imprint.tsx b/src/pages/imprint.tsx new file mode 100644 index 0000000..24808fe --- /dev/null +++ b/src/pages/imprint.tsx @@ -0,0 +1,116 @@ +import React from "react"; +import clsx from "clsx"; +import Layout from "@theme/Layout"; +import styles from "./styles.module.css"; + +function Home() { + return ( + +
+

Impressum

+

Angaben gemäß § 5 TMG

+

+ Joschua Kreimer +
+ c/o nexserv GmbH +
+ Dießemer Bruch 112c +
+ 47805 Krefeld +
+ Deutschland +

+

Kontakt

+

+ Telefon: +4915678578650 +
+ E-Mail:{" "} + + contact@cloudnetservice.eu + +

+

Redaktionell Verantwortlicher

+

+ Joschua Kreimer +
+ c/o nexserv GmbH +
+ Dießemer Bruch 112c +
+ 47805 Krefeld +
+ Deutschland +

+

Haftung für Inhalte

{" "} +

+ Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte + auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach + §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht + verpflichtet, übermittelte oder gespeicherte fremde Informationen zu + überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige + Tätigkeit hinweisen. +

+

+ Verpflichtungen zur Entfernung oder Sperrung der Nutzung von + Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. + Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der + Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden + von entsprechenden Rechtsverletzungen werden wir diese Inhalte + umgehend entfernen. +

+

Social Media und andere Onlinepräsenzen

+

+ Dieses Impressum gilt auch für die folgenden Social-Media-Präsenzen + und Onlineprofile:{" "} +

+

+ + https://twitter.com/CloudNetService + +

+

Haftung für Links

{" "} +

+ Unser Angebot enthält Links zu externen Websites Dritter, auf deren + Inhalte wir keinen Einfluss haben. Deshalb kö;nnen wir für diese + fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der + verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der + Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der + Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige + Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. +

+

+ Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch + ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei + Bekanntwerden von Rechtsverletzungen werden wir derartige Links + umgehend entfernen. +

+

Urheberrecht

{" "} +

+ Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen + Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, + Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der + Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des + jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite + sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. +

+

+ Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt + wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden + Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf + eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen + entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen + werden wir derartige Inhalte umgehend entfernen. +

+

+ Quelle: eRecht24 +

+
+
+ ); +} + +export default Home; diff --git a/src/pages/index.jsx b/src/pages/index.jsx deleted file mode 100644 index 962469f..0000000 --- a/src/pages/index.jsx +++ /dev/null @@ -1,150 +0,0 @@ -import React from "react"; -import clsx from "clsx"; -import Layout from "@theme/Layout"; -import Link from "@docusaurus/Link"; -import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; -import useBaseUrl from "@docusaurus/useBaseUrl"; -import styles from "./styles.module.css"; -import Icon from "@material-ui/core/Icon"; -import Translate from "@docusaurus/Translate"; - -const features = [ - { - title: ( - - Free & OpenSource - - ), - icon: "code", - description: ( - - - GitHub organisation - - - ), - }} - > - { - "CloudNet is open source and free to use, and this will not change! You can find all our projects in our {githubLink}." - } - - ), - }, - { - title: Support, - icon: "people", - description: ( - - - Discord Server - - - ), - }} - > - { - "If you have any questions regarding CloudNet, you are welcome to join our {discordLink}. If you have any questions regarding CloudNet, you are welcome to join our" - } - - ), - }, - { - title: Scalable, - icon: "trending_up", - description: ( - - CloudNet is horizontally and vertically scalable. This means you can - distribute your players across different virtual or dedicated servers to - balance the performance. - - ), - }, -]; - -function Feature({ icon, title, description }) { - return ( -
-
- {icon} -
-

{title}

-

{description}

-
- ); -} - -Feature.propTypes = { - icon: undefined, - title: undefined, - description: undefined, -}; - -function Home() { - const context = useDocusaurusContext(); - const { siteConfig = {} } = context; - return ( - -
-
-
-
-

CloudNet­Service

-

{siteConfig.tagline}

-
- - - Get Started - - -
-
-
- CloudNetService Logo -
-
-
-
-
- {features && features.length > 0 && ( -
-
-
- {features.map((props, idx) => ( - - ))} -
-
-
- )} -
-
- ); -} - -export default Home; diff --git a/src/pages/index.tsx b/src/pages/index.tsx new file mode 100644 index 0000000..377b411 --- /dev/null +++ b/src/pages/index.tsx @@ -0,0 +1,150 @@ +import React from "react"; +import clsx from "clsx"; +import Layout from "@theme/Layout"; +import Link from "@docusaurus/Link"; +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import styles from "./styles.module.css"; +import Icon from "@material-ui/core/Icon"; +import Translate from "@docusaurus/Translate"; + +type Feature = { + title: any + icon: string + description: any; +} + +const features: Feature[] = [ + { + title: ( + + Free & OpenSource + + ), + icon: "code", + description: ( + + + GitHub organisation + + + ), + }} + > + { + "CloudNet is open source and free to use, and this will not change! You can find all our projects in our {githubLink}." + } + + ), + }, + { + title: Support, + icon: "people", + description: ( + + + Discord Server + + + ), + }} + > + { + "If you have any questions regarding CloudNet, you are welcome to join our {discordLink}. If you have any questions regarding CloudNet, you are welcome to join our" + } + + ), + }, + { + title: Scalable, + icon: "trending_up", + description: ( + + CloudNet is horizontally and vertically scalable. This means you can + distribute your players across different virtual or dedicated servers to + balance the performance. + + ), + }, +]; + +function Feature({ icon, title, description }: Feature) { + return ( +
+
+ {icon} +
+

{title}

+

{description}

+
+ ); +} + +function Home() { + const context = useDocusaurusContext(); + const { siteConfig = {} } = context; + return ( + +
+
+
+
+

CloudNet­Service

+

{siteConfig.tagline}

+
+ + + Get Started + + +
+
+
+ CloudNetService Logo +
+
+
+
+
+ {features && features.length > 0 && ( +
+
+
+ {features.map((props, idx) => ( + + ))} +
+
+
+ )} +
+
+ ); +} + +export default Home; diff --git a/src/pages/privacy.jsx b/src/pages/privacy.jsx deleted file mode 100644 index be019fd..0000000 --- a/src/pages/privacy.jsx +++ /dev/null @@ -1,384 +0,0 @@ -import React from "react"; -import clsx from "clsx"; -import Layout from "@theme/Layout"; -import styles from "./styles.module.css"; - -function Home() { - return ( - -
-

Datenschutzerklärung

-

- Verantwortlicher im Sinne der Datenschutzgesetze, insbesondere der - EU-Datenschutzgrundverordnung (DSGVO), ist: -

-

- Joschua Kreimer -
- c/o nexserv GmbH -
- Dießemer Bruch 112c -
- 47805 Krefeld -
- Deutschland -

-

Ihre Betroffenenrechte

-

- Unter den angegebenen Kontaktdaten unseres Datenschutzbeauftragten - können Sie jederzeit folgende Rechte ausüben: -

-
    -
  • - Auskunft über Ihre bei uns gespeicherten Daten und deren - Verarbeitung (Art. 15 DSGVO), -
  • -
  • - Berichtigung unrichtiger personenbezogener Daten (Art. 16 DSGVO), -
  • -
  • Löschung Ihrer bei uns gespeicherten Daten (Art. 17 DSGVO),
  • -
  • - Einschränkung der Datenverarbeitung, sofern wir Ihre Daten aufgrund - gesetzlicher Pflichten noch nicht löschen dürfen (Art. 18 DSGVO), -
  • -
  • - Widerspruch gegen die Verarbeitung Ihrer Daten bei uns (Art. 21 - DSGVO) und -
  • -
  • - Datenübertragbarkeit, sofern Sie in die Datenverarbeitung - eingewilligt haben oder einen Vertrag mit uns abgeschlossen haben - (Art. 20 DSGVO). -
  • -
-

- Sofern Sie uns eine Einwilligung erteilt haben, können Sie diese - jederzeit mit Wirkung für die Zukunft widerrufen. -

-

- Sie können sich jederzeit mit einer Beschwerde an eine - Aufsichtsbehörde wenden, z. B. an die zuständige Aufsichtsbehörde des - Bundeslands Ihres Wohnsitzes oder an die für uns als verantwortliche - Stelle zuständige Behörde. -

-

- Eine Liste der Aufsichtsbehörden (für den nichtöffentlichen Bereich) - mit Anschrift finden Sie unter:{" "} - - https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html - - . -

-

- -

Erfassung allgemeiner Informationen beim Besuch unserer Website

-

Art und Zweck der Verarbeitung:

-

- Wenn Sie auf unsere Website zugreifen, d.h., wenn Sie sich nicht - registrieren oder anderweitig Informationen übermitteln, werden - automatisch Informationen allgemeiner Natur erfasst. Diese - Informationen (Server-Logfiles) beinhalten etwa die Art des - Webbrowsers, das verwendete Betriebssystem, den Domainnamen Ihres - Internet-Service-Providers, Ihre IP-Adresse und ähnliches.{" "} -

-

Sie werden insbesondere zu folgenden Zwecken verarbeitet:

-
    -
  • - Sicherstellung eines problemlosen Verbindungsaufbaus der Website, -
  • -
  • Sicherstellung einer reibungslosen Nutzung unserer Website,
  • -
  • Auswertung der Systemsicherheit und -stabilität sowie
  • -
  • zur Optimierung unserer Website.
  • -
-

- Wir verwenden Ihre Daten nicht, um Rückschlüsse auf Ihre Person zu - ziehen. Informationen dieser Art werden von uns ggfs. anonymisiert - statistisch ausgewertet, um unseren Internetauftritt und die - dahinterstehende Technik zu optimieren.{" "} -

-

Rechtsgrundlage und berechtigtes Interesse:

-

- Die Verarbeitung erfolgt gemäß Art. 6 Abs. 1 lit. f DSGVO auf Basis - unseres berechtigten Interesses an der Verbesserung der Stabilität und - Funktionalität unserer Website. -

-

Empfänger:

-

- Empfänger der Daten sind ggf. technische Dienstleister, die für den - Betrieb und die Wartung unserer Webseite als Auftragsverarbeiter tätig - werden. -

-

-

Speicherdauer:

-

- Die Daten werden gelöscht, sobald diese für den Zweck der Erhebung - nicht mehr erforderlich sind. Dies ist für die Daten, die der - Bereitstellung der Website dienen, grundsätzlich der Fall, wenn die - jeweilige Sitzung beendet ist.{" "} -

-

- {" "} - Im Falle der Speicherung der Daten in Logfiles ist dies nach - spätestens 14 Tagen der Fall. Eine darüberhinausgehende Speicherung - ist möglich. In diesem Fall werden die IP-Adressen der Nutzer - anonymisiert, sodass eine Zuordnung des aufrufenden Clients nicht mehr - möglich ist. -

-

-

Bereitstellung vorgeschrieben oder erforderlich:

-

- Die Bereitstellung der vorgenannten personenbezogenen Daten ist weder - gesetzlich noch vertraglich vorgeschrieben. Ohne die IP-Adresse ist - jedoch der Dienst und die Funktionsfähigkeit unserer Website nicht - gewährleistet. Zudem können einzelne Dienste und Services nicht - verfügbar oder eingeschränkt sein. Aus diesem Grund ist ein - Widerspruch ausgeschlossen.{" "} -

-

- -

Cookies

-

- Wie viele andere Webseiten verwenden wir auch so genannte „Cookies“. - Bei Cookies handelt es sich um kleine Textdateien, die auf Ihrem - Endgerät (Laptop, Tablet, Smartphone o.ä.) gespeichert werden, wenn - Sie unsere Webseite besuchen.{" "} -

-

- Sie können Sie einzelne Cookies oder den gesamten Cookie-Bestand - löschen. Darüber hinaus erhalten Sie Informationen und Anleitungen, - wie diese Cookies gelöscht oder deren Speicherung vorab blockiert - werden können. Je nach Anbieter Ihres Browsers finden Sie die - notwendigen Informationen unter den nachfolgenden Links: -

- -

Speicherdauer und eingesetzte Cookies:

-

- Soweit Sie uns durch Ihre Browsereinstellungen oder Zustimmung die - Verwendung von Cookies erlauben, können folgende Cookies auf unseren - Webseiten zum Einsatz kommen: -

-
    -
  • theme
  • -
- -

Technisch notwendige Cookies

-

Art und Zweck der Verarbeitung:

-

- Wir setzen Cookies ein, um unsere Website nutzerfreundlicher zu - gestalten. Einige Elemente unserer Internetseite erfordern es, dass - der aufrufende Browser auch nach einem Seitenwechsel identifiziert - werden kann. -

-

- Der Zweck der Verwendung technisch notwendiger Cookies ist, die - Nutzung von Websites für die Nutzer zu vereinfachen. Einige Funktionen - unserer Internetseite können ohne den Einsatz von Cookies nicht - angeboten werden. Für diese ist es erforderlich, dass der Browser auch - nach einem Seitenwechsel wiedererkannt wird. -

-

Für folgende Anwendungen benötigen wir Cookies:

-
    -
  • Übernahme von Designeinstellungen
  • -
-

Rechtsgrundlage und berechtigtes Interesse:

-

- Die Verarbeitung erfolgt gemäß Art. 6 Abs. 1 lit. f DSGVO auf Basis - unseres berechtigten Interesses an einer nutzerfreundlichen Gestaltung - unserer Website. -

-

Empfänger:

-

- Empfänger der Daten sind ggf. technische Dienstleister, die für den - Betrieb und die Wartung unserer Website als Auftragsverarbeiter tätig - werden. -

-

-

Bereitstellung vorgeschrieben oder erforderlich:

-

- Die Bereitstellung der vorgenannten personenbezogenen Daten ist weder - gesetzlich noch vertraglich vorgeschrieben. Ohne diese Daten ist - jedoch der Dienst und die Funktionsfähigkeit unserer Website nicht - gewährleistet. Zudem können einzelne Dienste und Services nicht - verfügbar oder eingeschränkt sein. -

-

Widerspruch

-

- Lesen Sie dazu die Informationen über Ihr Widerspruchsrecht nach Art. - 21 DSGVO weiter unten. -

-

- -

Eingebettete YouTube-Videos

-

- Auf unserer Website betten wir YouTube-Videos ein. Betreiber der - entsprechenden Plugins ist die YouTube, LLC, 901 Cherry Ave., San - Bruno, CA 94066, USA (nachfolgend „YouTube“). Die YouTube, LLC ist - einer Tochtergesellschaft der Google LLC, 1600 Amphitheatre Pkwy, - Mountain View, CA 94043, USA (nachfolgend „Google“). Wenn Sie eine - Seite mit dem YouTube-Plugin besuchen, wird eine Verbindung zu Servern - von YouTube hergestellt. Dabei wird YouTube mitgeteilt, welche Seiten - Sie besuchen. Wenn Sie in Ihrem YouTube-Account eingeloggt sind, kann - YouTube Ihr Surfverhalten Ihnen persönlich zuzuordnen. Dies verhindern - Sie, indem Sie sich vorher aus Ihrem YouTube-Account ausloggen.{" "} -

-

- Wird ein YouTube-Video gestartet, setzt der Anbieter Cookies ein, die - Hinweise über das Nutzerverhalten sammeln.{" "} -

-

- Weitere Informationen zu Zweck und Umfang der Datenerhebung und ihrer - Verarbeitung durch YouTube erhalten Sie in den Datenschutzerklärungen - des Anbieters, Dort erhalten Sie auch weitere Informationen zu Ihren - diesbezüglichen Rechten und Einstellungsmöglichkeiten zum Schutze - Ihrer Privatsphäre ( - - https://policies.google.com/privacy - - ).{" "} -

-

Widerruf der Einwilligung:

-

- Vom Anbieter wird derzeit keine Möglichkeit für einen einfachen - Opt-out oder ein Blockieren der Datenübertragung angeboten. Wenn Sie - eine Nachverfolgung Ihrer Aktivitäten auf unserer Website verhindern - wollen, widerrufen Sie bitte im Cookie-Consent-Tool Ihre Einwilligung - für die entsprechende Cookie-Kategorie oder alle technisch nicht - notwendigen Cookies und Datenübertragungen. In diesem Fall können Sie - unsere Website jedoch ggfs. nicht oder nur eingeschränkt nutzen. -

-

- -

SSL-Verschlüsselung

-

- Um die Sicherheit Ihrer Daten bei der Übertragung zu schützen, - verwenden wir dem aktuellen Stand der Technik entsprechende - Verschlüsselungsverfahren (z. B. SSL) über HTTPS. -

-

-


-

Information über Ihr Widerspruchsrecht nach Art. 21 DSGVO

-

Einzelfallbezogenes Widerspruchsrecht

-

- Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen - Situation ergeben, jederzeit gegen die Verarbeitung Sie betreffender - personenbezogener Daten, die aufgrund Art. 6 Abs. 1 lit. f DSGVO - (Datenverarbeitung auf der Grundlage einer Interessenabwägung) - erfolgt, Widerspruch einzulegen; dies gilt auch für ein auf diese - Bestimmung gestütztes Profiling im Sinne von Art. 4 Nr. 4 DSGVO. -

-

- Legen Sie Widerspruch ein, werden wir Ihre personenbezogenen Daten - nicht mehr verarbeiten, es sei denn, wir können zwingende - schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihre - Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung - dient der Geltendmachung, Ausübung oder Verteidigung von - Rechtsansprüchen. -

-

Empfänger eines Widerspruchs

-

- Joschua Kreimer -
- c/o nexserv GmbH -
- Dießemer Bruch 112c -
- 47805 Krefeld -
- Deutschland -

-
-

Änderung unserer Datenschutzbestimmungen

-

- Wir behalten uns vor, diese Datenschutzerklärung anzupassen, damit sie - stets den aktuellen rechtlichen Anforderungen entspricht oder um - Änderungen unserer Leistungen in der Datenschutzerklärung umzusetzen, - z.B. bei der Einführung neuer Services. Für Ihren erneuten Besuch gilt - dann die neue Datenschutzerklärung. -

-

Fragen an den Datenschutzbeauftragten

-

- Wenn Sie Fragen zum Datenschutz haben, schreiben Sie uns bitte eine - E-Mail oder wenden Sie sich direkt an die für den Datenschutz - verantwortliche Person in unserer Organisation: -

-

- E-Mail:{" "} - - dataprotection@cloudnetservice.eu - -

-

- - Die Datenschutzerklärung wurde mithilfe der activeMind AG erstellt, - den Experten für{" "} - - externe Datenschutzbeauftragte - {" "} - (Version #2020-09-30). - -

-
-
- ); -} - -export default Home; diff --git a/src/pages/privacy.tsx b/src/pages/privacy.tsx new file mode 100644 index 0000000..e62eb1a --- /dev/null +++ b/src/pages/privacy.tsx @@ -0,0 +1,384 @@ +import React from "react"; +import clsx from "clsx"; +import Layout from "@theme/Layout"; +import styles from "./styles.module.css"; + +function Home() { + return ( + +
+

Datenschutzerklärung

+

+ Verantwortlicher im Sinne der Datenschutzgesetze, insbesondere der + EU-Datenschutzgrundverordnung (DSGVO), ist: +

+

+ Joschua Kreimer +
+ c/o nexserv GmbH +
+ Dießemer Bruch 112c +
+ 47805 Krefeld +
+ Deutschland +

+

Ihre Betroffenenrechte

+

+ Unter den angegebenen Kontaktdaten unseres Datenschutzbeauftragten + können Sie jederzeit folgende Rechte ausüben: +

+
    +
  • + Auskunft über Ihre bei uns gespeicherten Daten und deren + Verarbeitung (Art. 15 DSGVO), +
  • +
  • + Berichtigung unrichtiger personenbezogener Daten (Art. 16 DSGVO), +
  • +
  • Löschung Ihrer bei uns gespeicherten Daten (Art. 17 DSGVO),
  • +
  • + Einschränkung der Datenverarbeitung, sofern wir Ihre Daten aufgrund + gesetzlicher Pflichten noch nicht löschen dürfen (Art. 18 DSGVO), +
  • +
  • + Widerspruch gegen die Verarbeitung Ihrer Daten bei uns (Art. 21 + DSGVO) und +
  • +
  • + Datenübertragbarkeit, sofern Sie in die Datenverarbeitung + eingewilligt haben oder einen Vertrag mit uns abgeschlossen haben + (Art. 20 DSGVO). +
  • +
+

+ Sofern Sie uns eine Einwilligung erteilt haben, können Sie diese + jederzeit mit Wirkung für die Zukunft widerrufen. +

+

+ Sie können sich jederzeit mit einer Beschwerde an eine + Aufsichtsbehörde wenden, z. B. an die zuständige Aufsichtsbehörde des + Bundeslands Ihres Wohnsitzes oder an die für uns als verantwortliche + Stelle zuständige Behörde. +

+

+ Eine Liste der Aufsichtsbehörden (für den nichtöffentlichen Bereich) + mit Anschrift finden Sie unter:{" "} + + https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html + + . +

+

+ +

Erfassung allgemeiner Informationen beim Besuch unserer Website

+

Art und Zweck der Verarbeitung:

+

+ Wenn Sie auf unsere Website zugreifen, d.h., wenn Sie sich nicht + registrieren oder anderweitig Informationen übermitteln, werden + automatisch Informationen allgemeiner Natur erfasst. Diese + Informationen (Server-Logfiles) beinhalten etwa die Art des + Webbrowsers, das verwendete Betriebssystem, den Domainnamen Ihres + Internet-Service-Providers, Ihre IP-Adresse und ähnliches.{" "} +

+

Sie werden insbesondere zu folgenden Zwecken verarbeitet:

+
    +
  • + Sicherstellung eines problemlosen Verbindungsaufbaus der Website, +
  • +
  • Sicherstellung einer reibungslosen Nutzung unserer Website,
  • +
  • Auswertung der Systemsicherheit und -stabilität sowie
  • +
  • zur Optimierung unserer Website.
  • +
+

+ Wir verwenden Ihre Daten nicht, um Rückschlüsse auf Ihre Person zu + ziehen. Informationen dieser Art werden von uns ggfs. anonymisiert + statistisch ausgewertet, um unseren Internetauftritt und die + dahinterstehende Technik zu optimieren.{" "} +

+

Rechtsgrundlage und berechtigtes Interesse:

+

+ Die Verarbeitung erfolgt gemäß Art. 6 Abs. 1 lit. f DSGVO auf Basis + unseres berechtigten Interesses an der Verbesserung der Stabilität und + Funktionalität unserer Website. +

+

Empfänger:

+

+ Empfänger der Daten sind ggf. technische Dienstleister, die für den + Betrieb und die Wartung unserer Webseite als Auftragsverarbeiter tätig + werden. +

+

+

Speicherdauer:

+

+ Die Daten werden gelöscht, sobald diese für den Zweck der Erhebung + nicht mehr erforderlich sind. Dies ist für die Daten, die der + Bereitstellung der Website dienen, grundsätzlich der Fall, wenn die + jeweilige Sitzung beendet ist.{" "} +

+

+ {" "} + Im Falle der Speicherung der Daten in Logfiles ist dies nach + spätestens 14 Tagen der Fall. Eine darüberhinausgehende Speicherung + ist möglich. In diesem Fall werden die IP-Adressen der Nutzer + anonymisiert, sodass eine Zuordnung des aufrufenden Clients nicht mehr + möglich ist. +

+

+

Bereitstellung vorgeschrieben oder erforderlich:

+

+ Die Bereitstellung der vorgenannten personenbezogenen Daten ist weder + gesetzlich noch vertraglich vorgeschrieben. Ohne die IP-Adresse ist + jedoch der Dienst und die Funktionsfähigkeit unserer Website nicht + gewährleistet. Zudem können einzelne Dienste und Services nicht + verfügbar oder eingeschränkt sein. Aus diesem Grund ist ein + Widerspruch ausgeschlossen.{" "} +

+

+ +

Cookies

+

+ Wie viele andere Webseiten verwenden wir auch so genannte „Cookies“. + Bei Cookies handelt es sich um kleine Textdateien, die auf Ihrem + Endgerät (Laptop, Tablet, Smartphone o.ä.) gespeichert werden, wenn + Sie unsere Webseite besuchen.{" "} +

+

+ Sie können Sie einzelne Cookies oder den gesamten Cookie-Bestand + löschen. Darüber hinaus erhalten Sie Informationen und Anleitungen, + wie diese Cookies gelöscht oder deren Speicherung vorab blockiert + werden können. Je nach Anbieter Ihres Browsers finden Sie die + notwendigen Informationen unter den nachfolgenden Links: +

+ +

Speicherdauer und eingesetzte Cookies:

+

+ Soweit Sie uns durch Ihre Browsereinstellungen oder Zustimmung die + Verwendung von Cookies erlauben, können folgende Cookies auf unseren + Webseiten zum Einsatz kommen: +

+
    +
  • theme
  • +
+ +

Technisch notwendige Cookies

+

Art und Zweck der Verarbeitung:

+

+ Wir setzen Cookies ein, um unsere Website nutzerfreundlicher zu + gestalten. Einige Elemente unserer Internetseite erfordern es, dass + der aufrufende Browser auch nach einem Seitenwechsel identifiziert + werden kann. +

+

+ Der Zweck der Verwendung technisch notwendiger Cookies ist, die + Nutzung von Websites für die Nutzer zu vereinfachen. Einige Funktionen + unserer Internetseite können ohne den Einsatz von Cookies nicht + angeboten werden. Für diese ist es erforderlich, dass der Browser auch + nach einem Seitenwechsel wiedererkannt wird. +

+

Für folgende Anwendungen benötigen wir Cookies:

+
    +
  • Übernahme von Designeinstellungen
  • +
+

Rechtsgrundlage und berechtigtes Interesse:

+

+ Die Verarbeitung erfolgt gemäß Art. 6 Abs. 1 lit. f DSGVO auf Basis + unseres berechtigten Interesses an einer nutzerfreundlichen Gestaltung + unserer Website. +

+

Empfänger:

+

+ Empfänger der Daten sind ggf. technische Dienstleister, die für den + Betrieb und die Wartung unserer Website als Auftragsverarbeiter tätig + werden. +

+

+

Bereitstellung vorgeschrieben oder erforderlich:

+

+ Die Bereitstellung der vorgenannten personenbezogenen Daten ist weder + gesetzlich noch vertraglich vorgeschrieben. Ohne diese Daten ist + jedoch der Dienst und die Funktionsfähigkeit unserer Website nicht + gewährleistet. Zudem können einzelne Dienste und Services nicht + verfügbar oder eingeschränkt sein. +

+

Widerspruch

+

+ Lesen Sie dazu die Informationen über Ihr Widerspruchsrecht nach Art. + 21 DSGVO weiter unten. +

+

+ +

Eingebettete YouTube-Videos

+

+ Auf unserer Website betten wir YouTube-Videos ein. Betreiber der + entsprechenden Plugins ist die YouTube, LLC, 901 Cherry Ave., San + Bruno, CA 94066, USA (nachfolgend „YouTube“). Die YouTube, LLC ist + einer Tochtergesellschaft der Google LLC, 1600 Amphitheatre Pkwy, + Mountain View, CA 94043, USA (nachfolgend „Google“). Wenn Sie eine + Seite mit dem YouTube-Plugin besuchen, wird eine Verbindung zu Servern + von YouTube hergestellt. Dabei wird YouTube mitgeteilt, welche Seiten + Sie besuchen. Wenn Sie in Ihrem YouTube-Account eingeloggt sind, kann + YouTube Ihr Surfverhalten Ihnen persönlich zuzuordnen. Dies verhindern + Sie, indem Sie sich vorher aus Ihrem YouTube-Account ausloggen.{" "} +

+

+ Wird ein YouTube-Video gestartet, setzt der Anbieter Cookies ein, die + Hinweise über das Nutzerverhalten sammeln.{" "} +

+

+ Weitere Informationen zu Zweck und Umfang der Datenerhebung und ihrer + Verarbeitung durch YouTube erhalten Sie in den Datenschutzerklärungen + des Anbieters, Dort erhalten Sie auch weitere Informationen zu Ihren + diesbezüglichen Rechten und Einstellungsmöglichkeiten zum Schutze + Ihrer Privatsphäre ( + + https://policies.google.com/privacy + + ).{" "} +

+

Widerruf der Einwilligung:

+

+ Vom Anbieter wird derzeit keine Möglichkeit für einen einfachen + Opt-out oder ein Blockieren der Datenübertragung angeboten. Wenn Sie + eine Nachverfolgung Ihrer Aktivitäten auf unserer Website verhindern + wollen, widerrufen Sie bitte im Cookie-Consent-Tool Ihre Einwilligung + für die entsprechende Cookie-Kategorie oder alle technisch nicht + notwendigen Cookies und Datenübertragungen. In diesem Fall können Sie + unsere Website jedoch ggfs. nicht oder nur eingeschränkt nutzen. +

+

+ +

SSL-Verschlüsselung

+

+ Um die Sicherheit Ihrer Daten bei der Übertragung zu schützen, + verwenden wir dem aktuellen Stand der Technik entsprechende + Verschlüsselungsverfahren (z. B. SSL) über HTTPS. +

+

+


+

Information über Ihr Widerspruchsrecht nach Art. 21 DSGVO

+

Einzelfallbezogenes Widerspruchsrecht

+

+ Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen + Situation ergeben, jederzeit gegen die Verarbeitung Sie betreffender + personenbezogener Daten, die aufgrund Art. 6 Abs. 1 lit. f DSGVO + (Datenverarbeitung auf der Grundlage einer Interessenabwägung) + erfolgt, Widerspruch einzulegen; dies gilt auch für ein auf diese + Bestimmung gestütztes Profiling im Sinne von Art. 4 Nr. 4 DSGVO. +

+

+ Legen Sie Widerspruch ein, werden wir Ihre personenbezogenen Daten + nicht mehr verarbeiten, es sei denn, wir können zwingende + schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihre + Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung + dient der Geltendmachung, Ausübung oder Verteidigung von + Rechtsansprüchen. +

+

Empfänger eines Widerspruchs

+

+ Joschua Kreimer +
+ c/o nexserv GmbH +
+ Dießemer Bruch 112c +
+ 47805 Krefeld +
+ Deutschland +

+
+

Änderung unserer Datenschutzbestimmungen

+

+ Wir behalten uns vor, diese Datenschutzerklärung anzupassen, damit sie + stets den aktuellen rechtlichen Anforderungen entspricht oder um + Änderungen unserer Leistungen in der Datenschutzerklärung umzusetzen, + z.B. bei der Einführung neuer Services. Für Ihren erneuten Besuch gilt + dann die neue Datenschutzerklärung. +

+

Fragen an den Datenschutzbeauftragten

+

+ Wenn Sie Fragen zum Datenschutz haben, schreiben Sie uns bitte eine + E-Mail oder wenden Sie sich direkt an die für den Datenschutz + verantwortliche Person in unserer Organisation: +

+

+ E-Mail:{" "} + + dataprotection@cloudnetservice.eu + +

+

+ + Die Datenschutzerklärung wurde mithilfe der activeMind AG erstellt, + den Experten für{" "} + + externe Datenschutzbeauftragte + {" "} + (Version #2020-09-30). + +

+
+
+ ); +} + +export default Home; diff --git a/yarn.lock b/yarn.lock index ea26cd9..177dd7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1577,7 +1577,7 @@ "@emotion/weak-memoize" "^0.2.5" hoist-non-react-statics "^3.3.1" -"@emotion/serialize@^1.0.2": +"@emotion/serialize@^1.0.0", "@emotion/serialize@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.2.tgz#77cb21a0571c9f68eb66087754a65fa97bfcd965" integrity sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A== @@ -2042,6 +2042,13 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== +"@types/react-dom@*": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" + integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg== + dependencies: + "@types/react" "*" + "@types/react-helmet@^6.1.2": version "6.1.2" resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.2.tgz#e9d7d16b29e4ec5716711c52c35c3cec45819eac" @@ -2066,7 +2073,17 @@ "@types/history" "*" "@types/react" "*" -"@types/react-transition-group@^4.2.0": +"@types/react-select@^4.0.17": + version "4.0.17" + resolved "https://registry.yarnpkg.com/@types/react-select/-/react-select-4.0.17.tgz#2e5ab4042c09c988bfc2711550329b0c3c9f8513" + integrity sha512-ZK5wcBhJaqC8ntQl0CJvK2KXNNsk1k5flM7jO+vNPPlceRzdJQazA6zTtQUyNr6exp5yrAiwiudtYxgGlgGHLg== + dependencies: + "@emotion/serialize" "^1.0.0" + "@types/react" "*" + "@types/react-dom" "*" + "@types/react-transition-group" "*" + +"@types/react-transition-group@*", "@types/react-transition-group@^4.2.0": version "4.4.2" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.2.tgz#38890fd9db68bf1f2252b99a942998dc7877c5b3" integrity sha512-KibDWL6nshuOJ0fu8ll7QnV/LVTo3PzQ9aCPnRUYPfX7eZohHwLIdNHj7pftanREzHNP4/nJa8oeM73uSiavMQ== From 97e29392ef5ae6b170e21260597fbe9c13cff320 Mon Sep 17 00:00:00 2001 From: byRoadrunner Date: Sat, 24 Jul 2021 13:30:32 +0200 Subject: [PATCH 3/6] Added Typescript support for ESLint --- .eslintrc.json | 7 ++- .github/workflows/yarn.yml | 4 +- package.json | 6 ++- yarn.lock | 105 +++++++++++++++++++++++++++++++++---- 4 files changed, 106 insertions(+), 16 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index bb78eaa..214df0d 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -13,6 +13,11 @@ "files": [".mdx", ".md"], "parser": "eslint-mdx", "extends": "plugin:mdx/recommended" + }, + { + "files": [".tsx", ".ts"], + "parser": "eslint-mdx", + "extends": "plugin:@typescript-eslint/recommended" } ], "parserOptions": { @@ -25,6 +30,6 @@ }, "mdx/code-blocks": true }, - "plugins": [], + "plugins": ["@typescript-eslint", "react"], "rules": {} } diff --git a/.github/workflows/yarn.yml b/.github/workflows/yarn.yml index 96cd947..a6824fd 100644 --- a/.github/workflows/yarn.yml +++ b/.github/workflows/yarn.yml @@ -22,9 +22,9 @@ jobs: uses: wearerequired/lint-action@v1 with: eslint: true - eslint_extensions: js,jsx,md,mdx + eslint_extensions: js,jsx,md,mdx,ts,tsx prettier: true - prettier_extensions: js,jsx,css,md,mdx + prettier_extensions: js,jsx,css,md,mdx,ts,tsx neutral_check_on_warning: true - name: Sync translations env: diff --git a/package.json b/package.json index dbf31a7..c9fcd13 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "write-translations": "docusaurus write-translations", "write-heading-ids": "docusaurus write-heading-ids", "crowdin:sync": "docusaurus write-translations && crowdin upload && crowdin download", - "test:lint": "eslint . --ext js,jsx,md,mdx", + "test:lint": "eslint . --ext js,jsx,md,mdx,ts,tsx", "test:style": "prettier --check .", "test": "yarn run test:lint && yarn run test:style" }, @@ -40,7 +40,9 @@ "@types/react-helmet": "^6.1.2", "@types/react-router-dom": "^5.1.8", "@types/react-select": "^4.0.17", - "eslint": "^7.30.0", + "@typescript-eslint/eslint-plugin": "^4.28.4", + "@typescript-eslint/parser": "^4.28.4", + "eslint": "^7.31.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-mdx": "^1.14.1", "eslint-plugin-react": "^7.24.0", diff --git a/yarn.lock b/yarn.lock index 177dd7f..ad4a41d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1608,10 +1608,10 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@eslint/eslintrc@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" - integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -2116,6 +2116,75 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.5.tgz#fdd299f23205c3455af88ce618dd65c14cb73e22" integrity sha512-wnra4Vw9dopnuybR6HBywJ/URYpYrKLoepBTEtgfJup8Ahoi2zJECPP2cwiXp7btTvOT2CULv87aQRA4eZSP6g== +"@typescript-eslint/eslint-plugin@^4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.4.tgz#e73c8cabbf3f08dee0e1bda65ed4e622ae8f8921" + integrity sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw== + dependencies: + "@typescript-eslint/experimental-utils" "4.28.4" + "@typescript-eslint/scope-manager" "4.28.4" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.4.tgz#9c70c35ebed087a5c70fb0ecd90979547b7fec96" + integrity sha512-OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.28.4" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/typescript-estree" "4.28.4" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.4.tgz#bc462dc2779afeefdcf49082516afdc3e7b96fab" + integrity sha512-4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA== + dependencies: + "@typescript-eslint/scope-manager" "4.28.4" + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/typescript-estree" "4.28.4" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.4.tgz#bdbce9b6a644e34f767bd68bc17bb14353b9fe7f" + integrity sha512-ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w== + dependencies: + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/visitor-keys" "4.28.4" + +"@typescript-eslint/types@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.4.tgz#41acbd79b5816b7c0dd7530a43d97d020d3aeb42" + integrity sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww== + +"@typescript-eslint/typescript-estree@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.4.tgz#252e6863278dc0727244be9e371eb35241c46d00" + integrity sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ== + dependencies: + "@typescript-eslint/types" "4.28.4" + "@typescript-eslint/visitor-keys" "4.28.4" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.28.4": + version "4.28.4" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.4.tgz#92dacfefccd6751cbb0a964f06683bfd72d0c4d3" + integrity sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg== + dependencies: + "@typescript-eslint/types" "4.28.4" + eslint-visitor-keys "^2.0.0" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -3552,7 +3621,7 @@ debug@^3.1.1, debug@^3.2.6: dependencies: ms "^2.1.1" -debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -4088,6 +4157,13 @@ eslint-utils@^2.1.0: dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" @@ -4098,13 +4174,13 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint@^7.30.0: - version "7.30.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.30.0.tgz#6d34ab51aaa56112fd97166226c9a97f505474f8" - integrity sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg== +eslint@^7.31.0: + version "7.31.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.31.0.tgz#f972b539424bf2604907a970860732c5d99d3aca" + integrity sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.2" + "@eslint/eslintrc" "^0.4.3" "@humanwhocodes/config-array" "^0.5.0" ajv "^6.10.0" chalk "^4.0.0" @@ -8994,7 +9070,7 @@ ts-essentials@^2.0.3: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745" integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== -tslib@^1.9.0: +tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -9004,6 +9080,13 @@ tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" From 5e66190e82f41320514ff3f06847f130a1dbedf4 Mon Sep 17 00:00:00 2001 From: Sarsum <33085157+Sarsum@users.noreply.github.com> Date: Sat, 24 Jul 2021 13:36:11 +0200 Subject: [PATCH 4/6] Fixed eslint and prettier warnings --- src/js/_dependencyDownload.tsx | 693 +++++++++++++++--------------- src/pages/imprint.tsx | 214 +++++----- src/pages/index.tsx | 258 ++++++------ src/pages/privacy.tsx | 740 ++++++++++++++++----------------- tsconfig.json | 2 +- 5 files changed, 961 insertions(+), 946 deletions(-) diff --git a/src/js/_dependencyDownload.tsx b/src/js/_dependencyDownload.tsx index 0467c7c..41392a1 100644 --- a/src/js/_dependencyDownload.tsx +++ b/src/js/_dependencyDownload.tsx @@ -1,370 +1,385 @@ import React from "react"; import clsx from "clsx"; import styles from "../css/styles.module.css"; -import ReactSelect, {GroupTypeBase} from 'react-select'; +import ReactSelect, { GroupTypeBase } from "react-select"; import Select from "react-select/base"; import StateManager from "react-select"; function DependencyDownload() { - const [dependencyName, setDependencyName] = React.useState( - dependencies[0].name + const [dependencyName, setDependencyName] = React.useState( + dependencies[0].name + ); + const [versionName, setVersionName] = React.useState( + dependencies[0].currentVersion + ); + const [versions, setVersions] = React.useState(getVersions(dependencies[0])); + const [downloadURL, setDownloadURL] = React.useState(() => { + let defaultDependency = dependencies[0]; + let defaultVersion = defaultDependency.versions.find( + (version) => version.version === defaultDependency.currentVersion ); - const [versionName, setVersionName] = React.useState( - dependencies[0].currentVersion - ); - const [versions, setVersions] = React.useState(getVersions(dependencies[0])); - const [downloadURL, setDownloadURL] = React.useState(() => { - let defaultDependency = dependencies[0]; - let defaultVersion = defaultDependency.versions.find( - (version) => version.version === defaultDependency.currentVersion - ); - return getDownloadURL(defaultVersion); - }); - let versionsRef = React.createRef, Select<{ value: string; label: string; }, false, GroupTypeBase<{ value: string; label: string; }>>>>(); + return getDownloadURL(defaultVersion); + }); + let versionsRef = + React.createRef< + StateManager< + { value: string; label: string }, + false, + GroupTypeBase<{ value: string; label: string }>, + Select< + { value: string; label: string }, + false, + GroupTypeBase<{ value: string; label: string }> + > + > + >(); - function getVersions(dependency: Dependency) { - return dependency.versions.map((version) => { - return { value: version.version, label: version.version }; - }); - } + function getVersions(dependency: Dependency) { + return dependency.versions.map((version) => { + return { value: version.version, label: version.version }; + }); + } - function getDownloadURL(version: DependencyVersion): string { - let templateURL = releaseTypes.find( - (releaseType) => releaseType.name === version.releaseType - ).url; - if (!templateURL) { - console.error( - `ReleaseType ${version.releaseType} of ${version.artifactId}(${version.version}) does not exist!` - ); - return ""; - } - return templateURL - .replace(/%groupId%/g, version.groupId) - .replace(/%artifactId%/g, version.artifactId) - .replace(/%version%/g, version.version); + function getDownloadURL(version: DependencyVersion): string { + let templateURL = releaseTypes.find( + (releaseType) => releaseType.name === version.releaseType + ).url; + if (!templateURL) { + console.error( + `ReleaseType ${version.releaseType} of ${version.artifactId}(${version.version}) does not exist!` + ); + return ""; } + return templateURL + .replace(/%groupId%/g, version.groupId) + .replace(/%artifactId%/g, version.artifactId) + .replace(/%version%/g, version.version); + } - function updateDownloadURL(dependency: string, version: string) { - let selectedDependency = dependencies.find( - (localDependency) => localDependency.name === dependency - ); - let selectedVersion = selectedDependency.versions.find( - (localVersion) => localVersion.version === version - ); - setDownloadURL(getDownloadURL(selectedVersion)); - } + function updateDownloadURL(dependency: string, version: string) { + let selectedDependency = dependencies.find( + (localDependency) => localDependency.name === dependency + ); + let selectedVersion = selectedDependency.versions.find( + (localVersion) => localVersion.version === version + ); + setDownloadURL(getDownloadURL(selectedVersion)); + } - function handleDependencyChange(newValue) { - let selectedDependency = dependencies.find( - (dependency) => dependency.name === newValue.value - ); - setDependencyName(selectedDependency.name); - setVersions(getVersions(selectedDependency)); - setVersionName(selectedDependency.currentVersion); - versionsRef.current.select.setValue({ - value: selectedDependency.currentVersion, - label: selectedDependency.currentVersion, - }, "select-option"); - updateDownloadURL( - selectedDependency.name, - selectedDependency.currentVersion - ); - } + function handleDependencyChange(newValue) { + let selectedDependency = dependencies.find( + (dependency) => dependency.name === newValue.value + ); + setDependencyName(selectedDependency.name); + setVersions(getVersions(selectedDependency)); + setVersionName(selectedDependency.currentVersion); + versionsRef.current.select.setValue( + { + value: selectedDependency.currentVersion, + label: selectedDependency.currentVersion, + }, + "select-option" + ); + updateDownloadURL( + selectedDependency.name, + selectedDependency.currentVersion + ); + } - function handleVersionChange(newValue) { - setVersionName(newValue.value); - updateDownloadURL(dependencyName, newValue.value); - } + function handleVersionChange(newValue) { + setVersionName(newValue.value); + updateDownloadURL(dependencyName, newValue.value); + } - const customTheme = (theme) => ({ - ...theme, - colors: { - ...theme.colors, - primary: "#1d9ce1", - primary75: "rgba(29,156,225,0.95)", - primary50: "rgba(29,156,225,0.85)", - primary25: "rgba(29,156,225,0.75)", - neutral0: "var(--ifm-dropdown-background-color)", - neutral5: "var(--ifm-color-emphasis-0)", - neutral10: "var(--ifm-color-emphasis-100)", - neutral20: "var(--ifm-color-emphasis-200)", - neutral30: "var(--ifm-color-emphasis-300)", - neutral40: "var(--ifm-color-emphasis-400)", - neutral50: "var(--ifm-color-emphasis-500)", - neutral60: "var(--ifm-color-emphasis-600)", - neutral70: "var(--ifm-color-emphasis-700)", - neutral80: "var(--ifm-color-emphasis-800)", - neutral90: "var(--ifm-color-emphasis-900)", - }, - }); + const customTheme = (theme) => ({ + ...theme, + colors: { + ...theme.colors, + primary: "#1d9ce1", + primary75: "rgba(29,156,225,0.95)", + primary50: "rgba(29,156,225,0.85)", + primary25: "rgba(29,156,225,0.75)", + neutral0: "var(--ifm-dropdown-background-color)", + neutral5: "var(--ifm-color-emphasis-0)", + neutral10: "var(--ifm-color-emphasis-100)", + neutral20: "var(--ifm-color-emphasis-200)", + neutral30: "var(--ifm-color-emphasis-300)", + neutral40: "var(--ifm-color-emphasis-400)", + neutral50: "var(--ifm-color-emphasis-500)", + neutral60: "var(--ifm-color-emphasis-600)", + neutral70: "var(--ifm-color-emphasis-700)", + neutral80: "var(--ifm-color-emphasis-800)", + neutral90: "var(--ifm-color-emphasis-900)", + }, + }); - return ( -
-
-

Dependency

- { - return { value: dependency.name, label: dependency.name }; - })} - defaultValue={{ value: dependencyName, label: dependencyName }} - onChange={handleDependencyChange} - className={clsx(styles.select)} - theme={customTheme} - /> -
-
-

Version

- -
-
- - Download - -
-
- ); + return ( +
+
+

Dependency

+ { + return { value: dependency.name, label: dependency.name }; + })} + defaultValue={{ value: dependencyName, label: dependencyName }} + onChange={handleDependencyChange} + className={clsx(styles.select)} + theme={customTheme} + /> +
+
+

Version

+ +
+
+ + Download + +
+
+ ); } export default DependencyDownload; -type ReleaseTypeName = 'snapshot' | 'release'; +type ReleaseTypeName = "snapshot" | "release"; type ReleaseType = { - name: ReleaseTypeName - url: string -} + name: ReleaseTypeName; + url: string; +}; type DependencyVersion = { - version: string, - groupId: string, - artifactId: string, - releaseType: ReleaseTypeName; -} + version: string; + groupId: string; + artifactId: string; + releaseType: ReleaseTypeName; +}; type Dependency = { - name: string, - currentVersion: string, - versions: DependencyVersion[]; -} + name: string; + currentVersion: string; + versions: DependencyVersion[]; +}; const dependencies: Dependency[] = [ - { - name: "cloudnet-driver", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-driver", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-driver", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-driver", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-wrapper-jvm", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-wrapper-jvm", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-wrapper-jvm", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-wrapper-jvm", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-bridge", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-bridge", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-bridge", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-bridge", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-cloudperms", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-cloudperms", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-cloudperms", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-cloudperms", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-syncproxy", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-syncproxy", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-syncproxy", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-syncproxy", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-signs", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-signs", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-signs", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-signs", - releaseType: "snapshot", - }, - ], - }, - { - name: "cloudnet-npcs", - currentVersion: "3.3.0-RELEASE", - versions: [ - { - version: "3.3.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-npcs", - releaseType: "snapshot", - }, - { - version: "3.3.0-RELEASE", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-npcs", - releaseType: "release", - }, - { - version: "3.4.0-SNAPSHOT", - groupId: "de/dytanic/cloudnet", - artifactId: "cloudnet-npcs", - releaseType: "snapshot", - }, - ], - }, + { + name: "cloudnet-driver", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-driver", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-driver", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-driver", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-wrapper-jvm", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-wrapper-jvm", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-wrapper-jvm", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-wrapper-jvm", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-bridge", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-bridge", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-bridge", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-bridge", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-cloudperms", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-cloudperms", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-cloudperms", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-cloudperms", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-syncproxy", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-syncproxy", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-syncproxy", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-syncproxy", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-signs", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-signs", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-signs", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-signs", + releaseType: "snapshot", + }, + ], + }, + { + name: "cloudnet-npcs", + currentVersion: "3.3.0-RELEASE", + versions: [ + { + version: "3.3.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-npcs", + releaseType: "snapshot", + }, + { + version: "3.3.0-RELEASE", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-npcs", + releaseType: "release", + }, + { + version: "3.4.0-SNAPSHOT", + groupId: "de/dytanic/cloudnet", + artifactId: "cloudnet-npcs", + releaseType: "snapshot", + }, + ], + }, ]; const releaseTypes: ReleaseType[] = [ - { - name: "release", - url: "https://repo.cloudnetservice.eu/repository/releases/%groupId%/%artifactId%/%version%/%artifactId%-%version%.jar", - }, - { - name: "snapshot", - url: "https://repo.cloudnetservice.eu/repository/snapshots/%groupId%/%artifactId%/%version%/%artifactId%-%version%.jar", - }, + { + name: "release", + url: "https://repo.cloudnetservice.eu/repository/releases/%groupId%/%artifactId%/%version%/%artifactId%-%version%.jar", + }, + { + name: "snapshot", + url: "https://repo.cloudnetservice.eu/repository/snapshots/%groupId%/%artifactId%/%version%/%artifactId%-%version%.jar", + }, ]; diff --git a/src/pages/imprint.tsx b/src/pages/imprint.tsx index 24808fe..1bcef94 100644 --- a/src/pages/imprint.tsx +++ b/src/pages/imprint.tsx @@ -4,113 +4,113 @@ import Layout from "@theme/Layout"; import styles from "./styles.module.css"; function Home() { - return ( - -
-

Impressum

-

Angaben gemäß § 5 TMG

-

- Joschua Kreimer -
- c/o nexserv GmbH -
- Dießemer Bruch 112c -
- 47805 Krefeld -
- Deutschland -

-

Kontakt

-

- Telefon: +4915678578650 -
- E-Mail:{" "} - - contact@cloudnetservice.eu - -

-

Redaktionell Verantwortlicher

-

- Joschua Kreimer -
- c/o nexserv GmbH -
- Dießemer Bruch 112c -
- 47805 Krefeld -
- Deutschland -

-

Haftung für Inhalte

{" "} -

- Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte - auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach - §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht - verpflichtet, übermittelte oder gespeicherte fremde Informationen zu - überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige - Tätigkeit hinweisen. -

-

- Verpflichtungen zur Entfernung oder Sperrung der Nutzung von - Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. - Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der - Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden - von entsprechenden Rechtsverletzungen werden wir diese Inhalte - umgehend entfernen. -

-

Social Media und andere Onlinepräsenzen

-

- Dieses Impressum gilt auch für die folgenden Social-Media-Präsenzen - und Onlineprofile:{" "} -

-

- - https://twitter.com/CloudNetService - -

-

Haftung für Links

{" "} -

- Unser Angebot enthält Links zu externen Websites Dritter, auf deren - Inhalte wir keinen Einfluss haben. Deshalb kö;nnen wir für diese - fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der - verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der - Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der - Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige - Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. -

-

- Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch - ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei - Bekanntwerden von Rechtsverletzungen werden wir derartige Links - umgehend entfernen. -

-

Urheberrecht

{" "} -

- Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen - Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, - Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der - Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des - jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite - sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. -

-

- Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt - wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden - Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf - eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen - entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen - werden wir derartige Inhalte umgehend entfernen. -

-

- Quelle: eRecht24 -

-
-
- ); + return ( + +
+

Impressum

+

Angaben gemäß § 5 TMG

+

+ Joschua Kreimer +
+ c/o nexserv GmbH +
+ Dießemer Bruch 112c +
+ 47805 Krefeld +
+ Deutschland +

+

Kontakt

+

+ Telefon: +4915678578650 +
+ E-Mail:{" "} + + contact@cloudnetservice.eu + +

+

Redaktionell Verantwortlicher

+

+ Joschua Kreimer +
+ c/o nexserv GmbH +
+ Dießemer Bruch 112c +
+ 47805 Krefeld +
+ Deutschland +

+

Haftung für Inhalte

{" "} +

+ Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte + auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach + §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht + verpflichtet, übermittelte oder gespeicherte fremde Informationen zu + überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige + Tätigkeit hinweisen. +

+

+ Verpflichtungen zur Entfernung oder Sperrung der Nutzung von + Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. + Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der + Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden + von entsprechenden Rechtsverletzungen werden wir diese Inhalte + umgehend entfernen. +

+

Social Media und andere Onlinepräsenzen

+

+ Dieses Impressum gilt auch für die folgenden Social-Media-Präsenzen + und Onlineprofile:{" "} +

+

+ + https://twitter.com/CloudNetService + +

+

Haftung für Links

{" "} +

+ Unser Angebot enthält Links zu externen Websites Dritter, auf deren + Inhalte wir keinen Einfluss haben. Deshalb kö;nnen wir für diese + fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der + verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der + Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der + Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige + Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. +

+

+ Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch + ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei + Bekanntwerden von Rechtsverletzungen werden wir derartige Links + umgehend entfernen. +

+

Urheberrecht

{" "} +

+ Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen + Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, + Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der + Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des + jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite + sind nur für den privaten, nicht kommerziellen Gebrauch gestattet. +

+

+ Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt + wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden + Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf + eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen + entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen + werden wir derartige Inhalte umgehend entfernen. +

+

+ Quelle: eRecht24 +

+
+
+ ); } export default Home; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 377b411..586d0cc 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -8,143 +8,143 @@ import styles from "./styles.module.css"; import Icon from "@material-ui/core/Icon"; import Translate from "@docusaurus/Translate"; -type Feature = { - title: any - icon: string - description: any; -} +type FeatureProps = { + title: any; + icon: string; + description: any; +}; -const features: Feature[] = [ - { - title: ( - - Free & OpenSource - - ), - icon: "code", - description: ( - - - GitHub organisation - - - ), - }} +const features: FeatureProps[] = [ + { + title: ( + + Free & OpenSource + + ), + icon: "code", + description: ( + - { - "CloudNet is open source and free to use, and this will not change! You can find all our projects in our {githubLink}." - } - - ), - }, - { - title: Support, - icon: "people", - description: ( - - - Discord Server - - - ), - }} + + GitHub organisation + + + ), + }} + > + { + "CloudNet is open source and free to use, and this will not change! You can find all our projects in our {githubLink}." + } + + ), + }, + { + title: Support, + icon: "people", + description: ( + - { - "If you have any questions regarding CloudNet, you are welcome to join our {discordLink}. If you have any questions regarding CloudNet, you are welcome to join our" - } - - ), - }, - { - title: Scalable, - icon: "trending_up", - description: ( - - CloudNet is horizontally and vertically scalable. This means you can - distribute your players across different virtual or dedicated servers to - balance the performance. - - ), - }, + + Discord Server + + + ), + }} + > + { + "If you have any questions regarding CloudNet, you are welcome to join our {discordLink}. If you have any questions regarding CloudNet, you are welcome to join our" + } + + ), + }, + { + title: Scalable, + icon: "trending_up", + description: ( + + CloudNet is horizontally and vertically scalable. This means you can + distribute your players across different virtual or dedicated servers to + balance the performance. + + ), + }, ]; -function Feature({ icon, title, description }: Feature) { - return ( -
-
- {icon} -
-

{title}

-

{description}

-
- ); +function Feature({ icon, title, description }: FeatureProps) { + return ( +
+
+ {icon} +
+

{title}

+

{description}

+
+ ); } function Home() { - const context = useDocusaurusContext(); - const { siteConfig = {} } = context; - return ( - -
-
-
-
-

CloudNet­Service

-

{siteConfig.tagline}

-
- - - Get Started - - -
-
-
- CloudNetService Logo -
-
-
-
-
- {features && features.length > 0 && ( -
-
-
- {features.map((props, idx) => ( - - ))} -
-
-
- )} -
-
- ); + const context = useDocusaurusContext(); + const { siteConfig = {} } = context; + return ( + +
+
+
+
+

CloudNet­Service

+

{siteConfig.tagline}

+
+ + + Get Started + + +
+
+
+ CloudNetService Logo +
+
+
+
+
+ {features && features.length > 0 && ( +
+
+
+ {features.map((props, idx) => ( + + ))} +
+
+
+ )} +
+
+ ); } export default Home; diff --git a/src/pages/privacy.tsx b/src/pages/privacy.tsx index e62eb1a..be019fd 100644 --- a/src/pages/privacy.tsx +++ b/src/pages/privacy.tsx @@ -4,381 +4,381 @@ import Layout from "@theme/Layout"; import styles from "./styles.module.css"; function Home() { - return ( - -
-

Datenschutzerklärung

-

- Verantwortlicher im Sinne der Datenschutzgesetze, insbesondere der - EU-Datenschutzgrundverordnung (DSGVO), ist: -

-

- Joschua Kreimer -
- c/o nexserv GmbH -
- Dießemer Bruch 112c -
- 47805 Krefeld -
- Deutschland -

-

Ihre Betroffenenrechte

-

- Unter den angegebenen Kontaktdaten unseres Datenschutzbeauftragten - können Sie jederzeit folgende Rechte ausüben: -

-
    -
  • - Auskunft über Ihre bei uns gespeicherten Daten und deren - Verarbeitung (Art. 15 DSGVO), -
  • -
  • - Berichtigung unrichtiger personenbezogener Daten (Art. 16 DSGVO), -
  • -
  • Löschung Ihrer bei uns gespeicherten Daten (Art. 17 DSGVO),
  • -
  • - Einschränkung der Datenverarbeitung, sofern wir Ihre Daten aufgrund - gesetzlicher Pflichten noch nicht löschen dürfen (Art. 18 DSGVO), -
  • -
  • - Widerspruch gegen die Verarbeitung Ihrer Daten bei uns (Art. 21 - DSGVO) und -
  • -
  • - Datenübertragbarkeit, sofern Sie in die Datenverarbeitung - eingewilligt haben oder einen Vertrag mit uns abgeschlossen haben - (Art. 20 DSGVO). -
  • -
-

- Sofern Sie uns eine Einwilligung erteilt haben, können Sie diese - jederzeit mit Wirkung für die Zukunft widerrufen. -

-

- Sie können sich jederzeit mit einer Beschwerde an eine - Aufsichtsbehörde wenden, z. B. an die zuständige Aufsichtsbehörde des - Bundeslands Ihres Wohnsitzes oder an die für uns als verantwortliche - Stelle zuständige Behörde. -

-

- Eine Liste der Aufsichtsbehörden (für den nichtöffentlichen Bereich) - mit Anschrift finden Sie unter:{" "} - - https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html - - . -

-

+ return ( + +

+

Datenschutzerklärung

+

+ Verantwortlicher im Sinne der Datenschutzgesetze, insbesondere der + EU-Datenschutzgrundverordnung (DSGVO), ist: +

+

+ Joschua Kreimer +
+ c/o nexserv GmbH +
+ Dießemer Bruch 112c +
+ 47805 Krefeld +
+ Deutschland +

+

Ihre Betroffenenrechte

+

+ Unter den angegebenen Kontaktdaten unseres Datenschutzbeauftragten + können Sie jederzeit folgende Rechte ausüben: +

+
    +
  • + Auskunft über Ihre bei uns gespeicherten Daten und deren + Verarbeitung (Art. 15 DSGVO), +
  • +
  • + Berichtigung unrichtiger personenbezogener Daten (Art. 16 DSGVO), +
  • +
  • Löschung Ihrer bei uns gespeicherten Daten (Art. 17 DSGVO),
  • +
  • + Einschränkung der Datenverarbeitung, sofern wir Ihre Daten aufgrund + gesetzlicher Pflichten noch nicht löschen dürfen (Art. 18 DSGVO), +
  • +
  • + Widerspruch gegen die Verarbeitung Ihrer Daten bei uns (Art. 21 + DSGVO) und +
  • +
  • + Datenübertragbarkeit, sofern Sie in die Datenverarbeitung + eingewilligt haben oder einen Vertrag mit uns abgeschlossen haben + (Art. 20 DSGVO). +
  • +
+

+ Sofern Sie uns eine Einwilligung erteilt haben, können Sie diese + jederzeit mit Wirkung für die Zukunft widerrufen. +

+

+ Sie können sich jederzeit mit einer Beschwerde an eine + Aufsichtsbehörde wenden, z. B. an die zuständige Aufsichtsbehörde des + Bundeslands Ihres Wohnsitzes oder an die für uns als verantwortliche + Stelle zuständige Behörde. +

+

+ Eine Liste der Aufsichtsbehörden (für den nichtöffentlichen Bereich) + mit Anschrift finden Sie unter:{" "} + + https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html + + . +

+

-

Erfassung allgemeiner Informationen beim Besuch unserer Website

-

Art und Zweck der Verarbeitung:

-

- Wenn Sie auf unsere Website zugreifen, d.h., wenn Sie sich nicht - registrieren oder anderweitig Informationen übermitteln, werden - automatisch Informationen allgemeiner Natur erfasst. Diese - Informationen (Server-Logfiles) beinhalten etwa die Art des - Webbrowsers, das verwendete Betriebssystem, den Domainnamen Ihres - Internet-Service-Providers, Ihre IP-Adresse und ähnliches.{" "} -

-

Sie werden insbesondere zu folgenden Zwecken verarbeitet:

-
    -
  • - Sicherstellung eines problemlosen Verbindungsaufbaus der Website, -
  • -
  • Sicherstellung einer reibungslosen Nutzung unserer Website,
  • -
  • Auswertung der Systemsicherheit und -stabilität sowie
  • -
  • zur Optimierung unserer Website.
  • -
-

- Wir verwenden Ihre Daten nicht, um Rückschlüsse auf Ihre Person zu - ziehen. Informationen dieser Art werden von uns ggfs. anonymisiert - statistisch ausgewertet, um unseren Internetauftritt und die - dahinterstehende Technik zu optimieren.{" "} -

-

Rechtsgrundlage und berechtigtes Interesse:

-

- Die Verarbeitung erfolgt gemäß Art. 6 Abs. 1 lit. f DSGVO auf Basis - unseres berechtigten Interesses an der Verbesserung der Stabilität und - Funktionalität unserer Website. -

-

Empfänger:

-

- Empfänger der Daten sind ggf. technische Dienstleister, die für den - Betrieb und die Wartung unserer Webseite als Auftragsverarbeiter tätig - werden. -

-

-

Speicherdauer:

-

- Die Daten werden gelöscht, sobald diese für den Zweck der Erhebung - nicht mehr erforderlich sind. Dies ist für die Daten, die der - Bereitstellung der Website dienen, grundsätzlich der Fall, wenn die - jeweilige Sitzung beendet ist.{" "} -

-

- {" "} - Im Falle der Speicherung der Daten in Logfiles ist dies nach - spätestens 14 Tagen der Fall. Eine darüberhinausgehende Speicherung - ist möglich. In diesem Fall werden die IP-Adressen der Nutzer - anonymisiert, sodass eine Zuordnung des aufrufenden Clients nicht mehr - möglich ist. -

-

-

Bereitstellung vorgeschrieben oder erforderlich:

-

- Die Bereitstellung der vorgenannten personenbezogenen Daten ist weder - gesetzlich noch vertraglich vorgeschrieben. Ohne die IP-Adresse ist - jedoch der Dienst und die Funktionsfähigkeit unserer Website nicht - gewährleistet. Zudem können einzelne Dienste und Services nicht - verfügbar oder eingeschränkt sein. Aus diesem Grund ist ein - Widerspruch ausgeschlossen.{" "} -

-

+

Erfassung allgemeiner Informationen beim Besuch unserer Website

+

Art und Zweck der Verarbeitung:

+

+ Wenn Sie auf unsere Website zugreifen, d.h., wenn Sie sich nicht + registrieren oder anderweitig Informationen übermitteln, werden + automatisch Informationen allgemeiner Natur erfasst. Diese + Informationen (Server-Logfiles) beinhalten etwa die Art des + Webbrowsers, das verwendete Betriebssystem, den Domainnamen Ihres + Internet-Service-Providers, Ihre IP-Adresse und ähnliches.{" "} +

+

Sie werden insbesondere zu folgenden Zwecken verarbeitet:

+
    +
  • + Sicherstellung eines problemlosen Verbindungsaufbaus der Website, +
  • +
  • Sicherstellung einer reibungslosen Nutzung unserer Website,
  • +
  • Auswertung der Systemsicherheit und -stabilität sowie
  • +
  • zur Optimierung unserer Website.
  • +
+

+ Wir verwenden Ihre Daten nicht, um Rückschlüsse auf Ihre Person zu + ziehen. Informationen dieser Art werden von uns ggfs. anonymisiert + statistisch ausgewertet, um unseren Internetauftritt und die + dahinterstehende Technik zu optimieren.{" "} +

+

Rechtsgrundlage und berechtigtes Interesse:

+

+ Die Verarbeitung erfolgt gemäß Art. 6 Abs. 1 lit. f DSGVO auf Basis + unseres berechtigten Interesses an der Verbesserung der Stabilität und + Funktionalität unserer Website. +

+

Empfänger:

+

+ Empfänger der Daten sind ggf. technische Dienstleister, die für den + Betrieb und die Wartung unserer Webseite als Auftragsverarbeiter tätig + werden. +

+

+

Speicherdauer:

+

+ Die Daten werden gelöscht, sobald diese für den Zweck der Erhebung + nicht mehr erforderlich sind. Dies ist für die Daten, die der + Bereitstellung der Website dienen, grundsätzlich der Fall, wenn die + jeweilige Sitzung beendet ist.{" "} +

+

+ {" "} + Im Falle der Speicherung der Daten in Logfiles ist dies nach + spätestens 14 Tagen der Fall. Eine darüberhinausgehende Speicherung + ist möglich. In diesem Fall werden die IP-Adressen der Nutzer + anonymisiert, sodass eine Zuordnung des aufrufenden Clients nicht mehr + möglich ist. +

+

+

Bereitstellung vorgeschrieben oder erforderlich:

+

+ Die Bereitstellung der vorgenannten personenbezogenen Daten ist weder + gesetzlich noch vertraglich vorgeschrieben. Ohne die IP-Adresse ist + jedoch der Dienst und die Funktionsfähigkeit unserer Website nicht + gewährleistet. Zudem können einzelne Dienste und Services nicht + verfügbar oder eingeschränkt sein. Aus diesem Grund ist ein + Widerspruch ausgeschlossen.{" "} +

+

-

Cookies

-

- Wie viele andere Webseiten verwenden wir auch so genannte „Cookies“. - Bei Cookies handelt es sich um kleine Textdateien, die auf Ihrem - Endgerät (Laptop, Tablet, Smartphone o.ä.) gespeichert werden, wenn - Sie unsere Webseite besuchen.{" "} -

-

- Sie können Sie einzelne Cookies oder den gesamten Cookie-Bestand - löschen. Darüber hinaus erhalten Sie Informationen und Anleitungen, - wie diese Cookies gelöscht oder deren Speicherung vorab blockiert - werden können. Je nach Anbieter Ihres Browsers finden Sie die - notwendigen Informationen unter den nachfolgenden Links: -

- -

Speicherdauer und eingesetzte Cookies:

-

- Soweit Sie uns durch Ihre Browsereinstellungen oder Zustimmung die - Verwendung von Cookies erlauben, können folgende Cookies auf unseren - Webseiten zum Einsatz kommen: -

-
    -
  • theme
  • -
+

Cookies

+

+ Wie viele andere Webseiten verwenden wir auch so genannte „Cookies“. + Bei Cookies handelt es sich um kleine Textdateien, die auf Ihrem + Endgerät (Laptop, Tablet, Smartphone o.ä.) gespeichert werden, wenn + Sie unsere Webseite besuchen.{" "} +

+

+ Sie können Sie einzelne Cookies oder den gesamten Cookie-Bestand + löschen. Darüber hinaus erhalten Sie Informationen und Anleitungen, + wie diese Cookies gelöscht oder deren Speicherung vorab blockiert + werden können. Je nach Anbieter Ihres Browsers finden Sie die + notwendigen Informationen unter den nachfolgenden Links: +

+ +

Speicherdauer und eingesetzte Cookies:

+

+ Soweit Sie uns durch Ihre Browsereinstellungen oder Zustimmung die + Verwendung von Cookies erlauben, können folgende Cookies auf unseren + Webseiten zum Einsatz kommen: +

+
    +
  • theme
  • +
-

Technisch notwendige Cookies

-

Art und Zweck der Verarbeitung:

-

- Wir setzen Cookies ein, um unsere Website nutzerfreundlicher zu - gestalten. Einige Elemente unserer Internetseite erfordern es, dass - der aufrufende Browser auch nach einem Seitenwechsel identifiziert - werden kann. -

-

- Der Zweck der Verwendung technisch notwendiger Cookies ist, die - Nutzung von Websites für die Nutzer zu vereinfachen. Einige Funktionen - unserer Internetseite können ohne den Einsatz von Cookies nicht - angeboten werden. Für diese ist es erforderlich, dass der Browser auch - nach einem Seitenwechsel wiedererkannt wird. -

-

Für folgende Anwendungen benötigen wir Cookies:

-
    -
  • Übernahme von Designeinstellungen
  • -
-

Rechtsgrundlage und berechtigtes Interesse:

-

- Die Verarbeitung erfolgt gemäß Art. 6 Abs. 1 lit. f DSGVO auf Basis - unseres berechtigten Interesses an einer nutzerfreundlichen Gestaltung - unserer Website. -

-

Empfänger:

-

- Empfänger der Daten sind ggf. technische Dienstleister, die für den - Betrieb und die Wartung unserer Website als Auftragsverarbeiter tätig - werden. -

-

-

Bereitstellung vorgeschrieben oder erforderlich:

-

- Die Bereitstellung der vorgenannten personenbezogenen Daten ist weder - gesetzlich noch vertraglich vorgeschrieben. Ohne diese Daten ist - jedoch der Dienst und die Funktionsfähigkeit unserer Website nicht - gewährleistet. Zudem können einzelne Dienste und Services nicht - verfügbar oder eingeschränkt sein. -

-

Widerspruch

-

- Lesen Sie dazu die Informationen über Ihr Widerspruchsrecht nach Art. - 21 DSGVO weiter unten. -

-

+

Technisch notwendige Cookies

+

Art und Zweck der Verarbeitung:

+

+ Wir setzen Cookies ein, um unsere Website nutzerfreundlicher zu + gestalten. Einige Elemente unserer Internetseite erfordern es, dass + der aufrufende Browser auch nach einem Seitenwechsel identifiziert + werden kann. +

+

+ Der Zweck der Verwendung technisch notwendiger Cookies ist, die + Nutzung von Websites für die Nutzer zu vereinfachen. Einige Funktionen + unserer Internetseite können ohne den Einsatz von Cookies nicht + angeboten werden. Für diese ist es erforderlich, dass der Browser auch + nach einem Seitenwechsel wiedererkannt wird. +

+

Für folgende Anwendungen benötigen wir Cookies:

+
    +
  • Übernahme von Designeinstellungen
  • +
+

Rechtsgrundlage und berechtigtes Interesse:

+

+ Die Verarbeitung erfolgt gemäß Art. 6 Abs. 1 lit. f DSGVO auf Basis + unseres berechtigten Interesses an einer nutzerfreundlichen Gestaltung + unserer Website. +

+

Empfänger:

+

+ Empfänger der Daten sind ggf. technische Dienstleister, die für den + Betrieb und die Wartung unserer Website als Auftragsverarbeiter tätig + werden. +

+

+

Bereitstellung vorgeschrieben oder erforderlich:

+

+ Die Bereitstellung der vorgenannten personenbezogenen Daten ist weder + gesetzlich noch vertraglich vorgeschrieben. Ohne diese Daten ist + jedoch der Dienst und die Funktionsfähigkeit unserer Website nicht + gewährleistet. Zudem können einzelne Dienste und Services nicht + verfügbar oder eingeschränkt sein. +

+

Widerspruch

+

+ Lesen Sie dazu die Informationen über Ihr Widerspruchsrecht nach Art. + 21 DSGVO weiter unten. +

+

-

Eingebettete YouTube-Videos

-

- Auf unserer Website betten wir YouTube-Videos ein. Betreiber der - entsprechenden Plugins ist die YouTube, LLC, 901 Cherry Ave., San - Bruno, CA 94066, USA (nachfolgend „YouTube“). Die YouTube, LLC ist - einer Tochtergesellschaft der Google LLC, 1600 Amphitheatre Pkwy, - Mountain View, CA 94043, USA (nachfolgend „Google“). Wenn Sie eine - Seite mit dem YouTube-Plugin besuchen, wird eine Verbindung zu Servern - von YouTube hergestellt. Dabei wird YouTube mitgeteilt, welche Seiten - Sie besuchen. Wenn Sie in Ihrem YouTube-Account eingeloggt sind, kann - YouTube Ihr Surfverhalten Ihnen persönlich zuzuordnen. Dies verhindern - Sie, indem Sie sich vorher aus Ihrem YouTube-Account ausloggen.{" "} -

-

- Wird ein YouTube-Video gestartet, setzt der Anbieter Cookies ein, die - Hinweise über das Nutzerverhalten sammeln.{" "} -

-

- Weitere Informationen zu Zweck und Umfang der Datenerhebung und ihrer - Verarbeitung durch YouTube erhalten Sie in den Datenschutzerklärungen - des Anbieters, Dort erhalten Sie auch weitere Informationen zu Ihren - diesbezüglichen Rechten und Einstellungsmöglichkeiten zum Schutze - Ihrer Privatsphäre ( - - https://policies.google.com/privacy - - ).{" "} -

-

Widerruf der Einwilligung:

-

- Vom Anbieter wird derzeit keine Möglichkeit für einen einfachen - Opt-out oder ein Blockieren der Datenübertragung angeboten. Wenn Sie - eine Nachverfolgung Ihrer Aktivitäten auf unserer Website verhindern - wollen, widerrufen Sie bitte im Cookie-Consent-Tool Ihre Einwilligung - für die entsprechende Cookie-Kategorie oder alle technisch nicht - notwendigen Cookies und Datenübertragungen. In diesem Fall können Sie - unsere Website jedoch ggfs. nicht oder nur eingeschränkt nutzen. -

-

+

Eingebettete YouTube-Videos

+

+ Auf unserer Website betten wir YouTube-Videos ein. Betreiber der + entsprechenden Plugins ist die YouTube, LLC, 901 Cherry Ave., San + Bruno, CA 94066, USA (nachfolgend „YouTube“). Die YouTube, LLC ist + einer Tochtergesellschaft der Google LLC, 1600 Amphitheatre Pkwy, + Mountain View, CA 94043, USA (nachfolgend „Google“). Wenn Sie eine + Seite mit dem YouTube-Plugin besuchen, wird eine Verbindung zu Servern + von YouTube hergestellt. Dabei wird YouTube mitgeteilt, welche Seiten + Sie besuchen. Wenn Sie in Ihrem YouTube-Account eingeloggt sind, kann + YouTube Ihr Surfverhalten Ihnen persönlich zuzuordnen. Dies verhindern + Sie, indem Sie sich vorher aus Ihrem YouTube-Account ausloggen.{" "} +

+

+ Wird ein YouTube-Video gestartet, setzt der Anbieter Cookies ein, die + Hinweise über das Nutzerverhalten sammeln.{" "} +

+

+ Weitere Informationen zu Zweck und Umfang der Datenerhebung und ihrer + Verarbeitung durch YouTube erhalten Sie in den Datenschutzerklärungen + des Anbieters, Dort erhalten Sie auch weitere Informationen zu Ihren + diesbezüglichen Rechten und Einstellungsmöglichkeiten zum Schutze + Ihrer Privatsphäre ( + + https://policies.google.com/privacy + + ).{" "} +

+

Widerruf der Einwilligung:

+

+ Vom Anbieter wird derzeit keine Möglichkeit für einen einfachen + Opt-out oder ein Blockieren der Datenübertragung angeboten. Wenn Sie + eine Nachverfolgung Ihrer Aktivitäten auf unserer Website verhindern + wollen, widerrufen Sie bitte im Cookie-Consent-Tool Ihre Einwilligung + für die entsprechende Cookie-Kategorie oder alle technisch nicht + notwendigen Cookies und Datenübertragungen. In diesem Fall können Sie + unsere Website jedoch ggfs. nicht oder nur eingeschränkt nutzen. +

+

-

SSL-Verschlüsselung

-

- Um die Sicherheit Ihrer Daten bei der Übertragung zu schützen, - verwenden wir dem aktuellen Stand der Technik entsprechende - Verschlüsselungsverfahren (z. B. SSL) über HTTPS. -

-

-


-

Information über Ihr Widerspruchsrecht nach Art. 21 DSGVO

-

Einzelfallbezogenes Widerspruchsrecht

-

- Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen - Situation ergeben, jederzeit gegen die Verarbeitung Sie betreffender - personenbezogener Daten, die aufgrund Art. 6 Abs. 1 lit. f DSGVO - (Datenverarbeitung auf der Grundlage einer Interessenabwägung) - erfolgt, Widerspruch einzulegen; dies gilt auch für ein auf diese - Bestimmung gestütztes Profiling im Sinne von Art. 4 Nr. 4 DSGVO. -

-

- Legen Sie Widerspruch ein, werden wir Ihre personenbezogenen Daten - nicht mehr verarbeiten, es sei denn, wir können zwingende - schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihre - Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung - dient der Geltendmachung, Ausübung oder Verteidigung von - Rechtsansprüchen. -

-

Empfänger eines Widerspruchs

-

- Joschua Kreimer -
- c/o nexserv GmbH -
- Dießemer Bruch 112c -
- 47805 Krefeld -
- Deutschland -

-
-

Änderung unserer Datenschutzbestimmungen

-

- Wir behalten uns vor, diese Datenschutzerklärung anzupassen, damit sie - stets den aktuellen rechtlichen Anforderungen entspricht oder um - Änderungen unserer Leistungen in der Datenschutzerklärung umzusetzen, - z.B. bei der Einführung neuer Services. Für Ihren erneuten Besuch gilt - dann die neue Datenschutzerklärung. -

-

Fragen an den Datenschutzbeauftragten

-

- Wenn Sie Fragen zum Datenschutz haben, schreiben Sie uns bitte eine - E-Mail oder wenden Sie sich direkt an die für den Datenschutz - verantwortliche Person in unserer Organisation: -

-

- E-Mail:{" "} - - dataprotection@cloudnetservice.eu - -

-

- - Die Datenschutzerklärung wurde mithilfe der activeMind AG erstellt, - den Experten für{" "} - - externe Datenschutzbeauftragte - {" "} - (Version #2020-09-30). - -

-
- - ); +

SSL-Verschlüsselung

+

+ Um die Sicherheit Ihrer Daten bei der Übertragung zu schützen, + verwenden wir dem aktuellen Stand der Technik entsprechende + Verschlüsselungsverfahren (z. B. SSL) über HTTPS. +

+

+


+

Information über Ihr Widerspruchsrecht nach Art. 21 DSGVO

+

Einzelfallbezogenes Widerspruchsrecht

+

+ Sie haben das Recht, aus Gründen, die sich aus Ihrer besonderen + Situation ergeben, jederzeit gegen die Verarbeitung Sie betreffender + personenbezogener Daten, die aufgrund Art. 6 Abs. 1 lit. f DSGVO + (Datenverarbeitung auf der Grundlage einer Interessenabwägung) + erfolgt, Widerspruch einzulegen; dies gilt auch für ein auf diese + Bestimmung gestütztes Profiling im Sinne von Art. 4 Nr. 4 DSGVO. +

+

+ Legen Sie Widerspruch ein, werden wir Ihre personenbezogenen Daten + nicht mehr verarbeiten, es sei denn, wir können zwingende + schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihre + Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung + dient der Geltendmachung, Ausübung oder Verteidigung von + Rechtsansprüchen. +

+

Empfänger eines Widerspruchs

+

+ Joschua Kreimer +
+ c/o nexserv GmbH +
+ Dießemer Bruch 112c +
+ 47805 Krefeld +
+ Deutschland +

+
+

Änderung unserer Datenschutzbestimmungen

+

+ Wir behalten uns vor, diese Datenschutzerklärung anzupassen, damit sie + stets den aktuellen rechtlichen Anforderungen entspricht oder um + Änderungen unserer Leistungen in der Datenschutzerklärung umzusetzen, + z.B. bei der Einführung neuer Services. Für Ihren erneuten Besuch gilt + dann die neue Datenschutzerklärung. +

+

Fragen an den Datenschutzbeauftragten

+

+ Wenn Sie Fragen zum Datenschutz haben, schreiben Sie uns bitte eine + E-Mail oder wenden Sie sich direkt an die für den Datenschutz + verantwortliche Person in unserer Organisation: +

+

+ E-Mail:{" "} + + dataprotection@cloudnetservice.eu + +

+

+ + Die Datenschutzerklärung wurde mithilfe der activeMind AG erstellt, + den Experten für{" "} + + externe Datenschutzbeauftragte + {" "} + (Version #2020-09-30). + +

+
+
+ ); } export default Home; diff --git a/tsconfig.json b/tsconfig.json index 77c5f75..4360f0d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,4 +1,4 @@ { "extends": "@tsconfig/docusaurus/tsconfig.json", "include": ["src/"] -} \ No newline at end of file +} From d90a2f9fc45d6115bd3a508a14a848f9cce52dd4 Mon Sep 17 00:00:00 2001 From: Sarsum <33085157+Sarsum@users.noreply.github.com> Date: Sat, 7 Aug 2021 11:31:59 +0200 Subject: [PATCH 5/6] Merged origin/development --- yarn.lock | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 157 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3f4fec3..5df43ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1291,6 +1291,11 @@ url-loader "^4.1.1" webpack "^5.40.0" +"@docusaurus/module-type-aliases@^2.0.0-beta.4": + version "2.0.0-beta.4" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.4.tgz#a48e3bdb81ce77c4438ff94d6ee15859c5705ede" + integrity sha512-FRAAOJMDbHcBNgFvH4ihPszxraTTCkS7kN3q8WIj67Uv8u3+T36XWpReWdFYmzfPA4QyFx9YK4u1bmF7pndBSw== + "@docusaurus/plugin-client-redirects@^2.0.0-beta.4": version "2.0.0-beta.4" resolved "https://registry.yarnpkg.com/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-2.0.0-beta.4.tgz#607585d030dbcb0bc264efdf19ad07844af96e3b" @@ -1575,7 +1580,7 @@ "@emotion/weak-memoize" "^0.2.5" hoist-non-react-statics "^3.3.1" -"@emotion/serialize@^1.0.2": +"@emotion/serialize@^1.0.0", "@emotion/serialize@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.2.tgz#77cb21a0571c9f68eb66087754a65fa97bfcd965" integrity sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A== @@ -1927,6 +1932,11 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== +"@tsconfig/docusaurus@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/docusaurus/-/docusaurus-1.0.3.tgz#040582bdceb27336d7abf2301fb0f4c909a9ac2f" + integrity sha512-g4X3HvNXbkowvEdPLu759fZjbXoazPjvi2a/fAAITp2yMOGeSKpHuY6N538ZY+1u6Z91Er3QKPtYGdZQ+tqXUA== + "@types/eslint-config-prettier@6.11.0": version "6.11.0" resolved "https://registry.yarnpkg.com/@types/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#5e944e94240df9c1ba755c3b1ebc3879d96ab991" @@ -1973,6 +1983,11 @@ dependencies: "@types/unist" "*" +"@types/history@*": + version "4.7.9" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.9.tgz#1cfb6d60ef3822c589f18e70f8b12f9a28ce8724" + integrity sha512-MUc6zSmU3tEVnkQ78q0peeEjKWPUADMlC/t++2bI8WnAG2tvYRPIgHG8lWkXwqc8MsUF6Z2MOf+Mh5sazOmhiQ== + "@types/html-minifier-terser@^5.0.0": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" @@ -2030,7 +2045,48 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== -"@types/react-transition-group@^4.2.0": +"@types/react-dom@*": + version "17.0.9" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" + integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg== + dependencies: + "@types/react" "*" + +"@types/react-helmet@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.2.tgz#e9d7d16b29e4ec5716711c52c35c3cec45819eac" + integrity sha512-dcfAZNlWb5JYFbO9CGfrPWLJAyFcT6UeR3u35eBbv8liY2Rg4K7fM1G5+HnwVgot+C+kVwXAZ8pLEn2jsMfTDg== + dependencies: + "@types/react" "*" + +"@types/react-router-dom@^5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.8.tgz#bf3e1c8149b3d62eaa206d58599de82df0241192" + integrity sha512-03xHyncBzG0PmDmf8pf3rehtjY0NpUj7TIN46FrT5n1ZWHPZvXz32gUyNboJ+xsL8cpg8bQVLcllptcQHvocrw== + dependencies: + "@types/history" "*" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*": + version "5.1.16" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.16.tgz#f3ba045fb96634e38b21531c482f9aeb37608a99" + integrity sha512-8d7nR/fNSqlTFGHti0R3F9WwIertOaaA1UEB8/jr5l5mDMOs4CidEgvvYMw4ivqrBK+vtVLxyTj2P+Pr/dtgzg== + dependencies: + "@types/history" "*" + "@types/react" "*" + +"@types/react-select@^4.0.17": + version "4.0.17" + resolved "https://registry.yarnpkg.com/@types/react-select/-/react-select-4.0.17.tgz#2e5ab4042c09c988bfc2711550329b0c3c9f8513" + integrity sha512-ZK5wcBhJaqC8ntQl0CJvK2KXNNsk1k5flM7jO+vNPPlceRzdJQazA6zTtQUyNr6exp5yrAiwiudtYxgGlgGHLg== + dependencies: + "@emotion/serialize" "^1.0.0" + "@types/react" "*" + "@types/react-dom" "*" + "@types/react-transition-group" "*" + +"@types/react-transition-group@*", "@types/react-transition-group@^4.2.0": version "4.4.2" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.2.tgz#38890fd9db68bf1f2252b99a942998dc7877c5b3" integrity sha512-KibDWL6nshuOJ0fu8ll7QnV/LVTo3PzQ9aCPnRUYPfX7eZohHwLIdNHj7pftanREzHNP4/nJa8oeM73uSiavMQ== @@ -2046,6 +2102,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^17.0.14": + version "17.0.16" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.16.tgz#056f40c45645761527baeb7d89d842a6abdf285a" + integrity sha512-3kCUiOOlQTwUUvjNFkbBTWMTxdTGybz/PfjCw9JmaRGcEDBQh+nGMg7/E9P2rklhJuYVd25IYLNcvqgSPCPksg== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/sax@^1.2.1": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.2.tgz#0b8996ffb9ca0b0491e791a09b550d77fa852f5d" @@ -2063,6 +2128,75 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.5.tgz#fdd299f23205c3455af88ce618dd65c14cb73e22" integrity sha512-wnra4Vw9dopnuybR6HBywJ/URYpYrKLoepBTEtgfJup8Ahoi2zJECPP2cwiXp7btTvOT2CULv87aQRA4eZSP6g== +"@typescript-eslint/eslint-plugin@^4.28.4": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.0.tgz#b866c9cd193bfaba5e89bade0015629ebeb27996" + integrity sha512-eiREtqWRZ8aVJcNru7cT/AMVnYd9a2UHsfZT8MR1dW3UUEg6jDv9EQ9Cq4CUPZesyQ58YUpoAADGv71jY8RwgA== + dependencies: + "@typescript-eslint/experimental-utils" "4.29.0" + "@typescript-eslint/scope-manager" "4.29.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.0.tgz#19b1417602d0e1ef325b3312ee95f61220542df5" + integrity sha512-FpNVKykfeaIxlArLUP/yQfv/5/3rhl1ov6RWgud4OgbqWLkEq7lqgQU9iiavZRzpzCRQV4XddyFz3wFXdkiX9w== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.29.0" + "@typescript-eslint/types" "4.29.0" + "@typescript-eslint/typescript-estree" "4.29.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@^4.28.4": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.0.tgz#e5367ca3c63636bb5d8e0748fcbab7a4f4a04289" + integrity sha512-+92YRNHFdXgq+GhWQPT2bmjX09X7EH36JfgN2/4wmhtwV/HPxozpCNst8jrWcngLtEVd/4zAwA6BKojAlf+YqA== + dependencies: + "@typescript-eslint/scope-manager" "4.29.0" + "@typescript-eslint/types" "4.29.0" + "@typescript-eslint/typescript-estree" "4.29.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.0.tgz#cf5474f87321bedf416ef65839b693bddd838599" + integrity sha512-HPq7XAaDMM3DpmuijxLV9Io8/6pQnliiXMQUcAdjpJJSR+fdmbD/zHCd7hMkjJn04UQtCQBtshgxClzg6NIS2w== + dependencies: + "@typescript-eslint/types" "4.29.0" + "@typescript-eslint/visitor-keys" "4.29.0" + +"@typescript-eslint/types@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.0.tgz#c8f1a1e4441ea4aca9b3109241adbc145f7f8a4e" + integrity sha512-2YJM6XfWfi8pgU2HRhTp7WgRw78TCRO3dOmSpAvIQ8MOv4B46JD2chnhpNT7Jq8j0APlIbzO1Bach734xxUl4A== + +"@typescript-eslint/typescript-estree@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.0.tgz#af7ab547757b86c91bfdbc54ff86845410856256" + integrity sha512-8ZpNHDIOyqzzgZrQW9+xQ4k5hM62Xy2R4RPO3DQxMc5Rq5QkCdSpk/drka+DL9w6sXNzV5nrdlBmf8+x495QXQ== + dependencies: + "@typescript-eslint/types" "4.29.0" + "@typescript-eslint/visitor-keys" "4.29.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.29.0": + version "4.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.0.tgz#1ff60f240def4d85ea68d4fd2e4e9759b7850c04" + integrity sha512-LoaofO1C/jAJYs0uEpYMXfHboGXzOJeV118X4OsZu9f7rG7Pr9B3+4HTU8+err81rADa4xfQmAxnRnPAI2jp+Q== + dependencies: + "@typescript-eslint/types" "4.29.0" + eslint-visitor-keys "^2.0.0" + "@webassemblyjs/ast@1.11.1": version "1.11.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" @@ -3499,7 +3633,7 @@ debug@^3.1.1, debug@^3.2.6: dependencies: ms "^2.1.1" -debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -4035,6 +4169,13 @@ eslint-utils@^2.1.0: dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" @@ -8941,7 +9082,7 @@ ts-essentials@^2.0.3: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-2.0.12.tgz#c9303f3d74f75fa7528c3d49b80e089ab09d8745" integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== -tslib@^1.9.0: +tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -8951,6 +9092,13 @@ tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -8983,6 +9131,11 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" +typescript@^4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" + integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== + ua-parser-js@^0.7.18: version "0.7.28" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" From b918560cdfd86b4418d3ed7ea1b801bead3b0591 Mon Sep 17 00:00:00 2001 From: Joschua Date: Tue, 24 Aug 2021 15:37:05 +0200 Subject: [PATCH 6/6] Rework eslint and prettier (#64) * Reworked eslint and prettier thanks to @Sarsum for fixing the typescript issues * Fixed lint-action errors: - for create event - for runs triggered by external repositories * Fix DeepCode warning for missing key attribute Co-authored-by: Sarsum --- .eslintrc.js | 37 +++ .eslintrc.json | 35 --- .github/workflows/yarn.yml | 6 +- .idea/codeStyles/Project.xml | 1 + .prettierignore | 79 ++++++ .prettierrc.json | 1 + docusaurus.config.js | 4 +- package.json | 16 +- src/js/_dependencyDownload.tsx | 298 +++++++++++----------- src/pages/imprint.tsx | 2 +- src/pages/index.tsx | 20 +- src/pages/privacy.tsx | 2 +- yarn.lock | 438 +++++++++++++++++++++++++++++---- 13 files changed, 689 insertions(+), 250 deletions(-) create mode 100644 .eslintrc.js delete mode 100644 .eslintrc.json create mode 100644 .prettierignore create mode 100644 .prettierrc.json diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..1094a27 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,37 @@ +module.exports = { + env: { + browser: true, + es2021: true, + }, + extends: [ + "plugin:react/recommended", + "airbnb", + "prettier", + "plugin:prettier/recommended", + "plugin:import/recommended", + ], + parser: "@typescript-eslint/parser", + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + ecmaVersion: 12, + sourceType: "module", + }, + plugins: ["react", "@typescript-eslint", "prettier"], + rules: { + "prettier/prettier": "error", + "no-use-before-define": "off", + "@typescript-eslint/no-use-before-define": ["error"], + // Temporary disabled because eslint is currently not working with "@" imports (e.g. "@theme" by docusaurus) - other eslint import plugins did not fix this issue + "import/no-unresolved": ["off", { extensions: [".tsx"] }], + "react/jsx-filename-extension": ["warn", { extensions: [".ts", ".tsx"] }], + }, + overrides: [ + { + files: ["*.md", "*.mdx"], + parser: "eslint-mdx", + extends: "plugin:mdx/recommended", + }, + ], +}; diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 214df0d..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "env": { - "node": true - }, - "extends": [ - "eslint:recommended", - "prettier", - "plugin:react/recommended", - "plugin:mdx/recommended" - ], - "overrides": [ - { - "files": [".mdx", ".md"], - "parser": "eslint-mdx", - "extends": "plugin:mdx/recommended" - }, - { - "files": [".tsx", ".ts"], - "parser": "eslint-mdx", - "extends": "plugin:@typescript-eslint/recommended" - } - ], - "parserOptions": { - "ecmaVersion": 2021, - "sourceType": "module" - }, - "settings": { - "react": { - "version": "detect" - }, - "mdx/code-blocks": true - }, - "plugins": ["@typescript-eslint", "react"], - "rules": {} -} diff --git a/.github/workflows/yarn.yml b/.github/workflows/yarn.yml index a6824fd..9855f7f 100644 --- a/.github/workflows/yarn.yml +++ b/.github/workflows/yarn.yml @@ -1,6 +1,6 @@ name: Website Yarn Build -on: [create, push, pull_request, workflow_dispatch] +on: [push, pull_request, workflow_dispatch] jobs: build: @@ -20,12 +20,16 @@ jobs: install-command: yarn --frozen-lockfile - name: Check codestyle uses: wearerequired/lint-action@v1 + if: ${{ github.repository == 'CloudNetService/website' }} with: eslint: true eslint_extensions: js,jsx,md,mdx,ts,tsx prettier: true prettier_extensions: js,jsx,css,md,mdx,ts,tsx neutral_check_on_warning: true + - name: Check codestyle on external repositories + if: ${{ github.repository != 'CloudNetService/website' }} + run: yarn test - name: Sync translations env: CROWDIN_PROJECT_ID: 4 diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index fd17feb..a05b3b8 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -6,6 +6,7 @@ +