diff --git a/app/(root)/privacy-policy/page.tsx b/app/(root)/privacy-policy/page.tsx index aee25d0..4da3073 100644 --- a/app/(root)/privacy-policy/page.tsx +++ b/app/(root)/privacy-policy/page.tsx @@ -1,17 +1,419 @@ import React from "react"; const PrivacyPolicy = () => { - return ( -
-

- Privacy Policy -

-
-
- ); + return ( +
+

+ Privacy Policy +

+
+

+ Effective date: 26.05.2024 +

+ +

1. Introduction

+

+ Welcome to SVR.JS. SVR.JS (“us”, “we”, or “our”) operates svrjs.org + (hereinafter referred to as “Service”). Our Privacy Policy governs + your visit to svrjs.org and explains how we collect, safeguard, and + disclose information that results from your use of our Service. We use + your data to provide and improve Service. By using Service, you agree + to the collection and use of information in accordance with this + policy. Unless otherwise defined in this Privacy Policy, the terms + used in this Privacy Policy have the same meanings as in our Terms and + Conditions. Our Terms and Conditions (“Terms”) govern all use of our + Service and together with the Privacy Policy constitutes your + agreement with us (“agreement”). +

+ +

2. Definitions

+ + +

3. Information Collection and Use

+

+ We collect several different types of information for various purposes + to provide and improve our Service to you. +

+ +

4. Types of Data Collected

+

Personal Data

+

+ While using our Service, we may ask you to provide us with certain + personally identifiable information that can be used to contact or + identify you (“Personal Data”). Personally identifiable information + may include, but is not limited to: Email address. We may use your + Personal Data to contact you with newsletters, marketing or + promotional materials, and other information that may be of interest + to you. You may opt out of receiving any, or all, of these + communications from us by following the unsubscribe link. +

+ +

Usage Data

+

+ We may collect information that your browser sends whenever you visit + our Service or when you access Service by or through any device + (“Usage Data”). This Usage Data may include information such as your + computer’s Internet Protocol address (e.g., IP address), browser type, + browser version, the pages of our Service that you visit, the time and + date of your visit, and other diagnostic data. When you access Service + with a device, this Usage Data may include information such as the + type of device you use, the IP address of your device, your device + operating system, the type of Internet browser you use, and other + diagnostic data. +

+ +

Tracking Cookies Data

+

+ We don’t use any cookies for tracking on our Service. You can, + however, set a cookie that allows opt-out from Matomo analytics using + a form in Section 14. +

+ +

5. Use of Data

+

+ SVR.JS uses the collected data for various purposes: to provide and + maintain our Service; to allow you to participate in interactive + features of our Service when you choose to do so; to provide customer + support; to gather analysis or valuable information so that we can + improve our Service; to monitor the usage of our Service; to detect, + prevent and address technical issues; to fulfill any other purpose for + which you provide it; in any other way we may describe when you + provide the information; for any other purpose with your consent. +

+ +

6. Retention of Data

+

+ We will retain Usage Data for internal analysis purposes. Usage Data + is generally retained for a shorter period, except when this data is + used to strengthen the security or to improve the functionality of our + Service, or we are legally obligated to retain this data for longer + time periods. +

+ +

7. Transfer of Data

+

+ Your information may be transferred to – and maintained on – computers + located outside of your state, province, country or other governmental + jurisdiction where the data protection laws may differ from those of + your jurisdiction. If you are located outside Poland and choose to + provide information to us, please note that we transfer the data to + Poland and process it there. Your consent to this Privacy Policy + followed by your submission of such information represents your + agreement to that transfer. SVR.JS will take all the steps reasonably + necessary to ensure that your data is treated securely and in + accordance with this Privacy Policy and no transfer of your data will + take place to an organization or a country unless there are adequate + controls in place including the security of your data and other + personal information. +

+ +

8. Disclosure of Data

+

We don’t disclose any information that we collect.

+ +

9. Security of Data

+

+ The security of your data is important to us but remember that no + method of transmission over the Internet or method of electronic + storage is 100% secure. While we strive to use commercially acceptable + means to protect your Personal Data, we cannot guarantee its absolute + security. +

+ +

+ 10. Your Data Protection Rights Under General Data Protection + Regulation (GDPR) +

+

+ If you are a resident of the European Union (EU) and European Economic + Area (EEA), you have certain data protection rights, covered by GDPR. + We aim to take reasonable steps to allow you to correct, amend, + delete, or limit the use of your Personal Data. If you wish to be + informed what Personal Data we hold about you and if you want it to be + removed from our systems, please email us at privacy[at]svrjs[dot]org. + In certain circumstances, you have the following data protection + rights: +

+ +

+ Please note that we may ask you to verify your identity before + responding to such requests. Please note, we may not be able to + provide Service without some necessary data. +

+ +

+ 11. Your Data Protection Rights under the California Privacy + Protection Act (CalOPPA) +

+

+ CalOPPA is the first state law in the nation to require commercial + websites and online services to post a privacy policy. The law’s reach + stretches well beyond California to require a person or company in the + United States (and conceivable the world) that operates websites + collecting personally identifiable information from California + consumers to post a conspicuous privacy policy on its website stating + exactly the information being collected and those individuals with + whom it is being shared, and to comply with this policy. According to + CalOPPA we agree to the following: +

+ + +

+ 12. Your Data Protection Rights under the California Consumer Privacy + Act (CCPA) +

+

+ If you are a California resident, you are entitled to learn what data + we collect about you, ask to delete your data and not to sell (share) + it. To exercise your data protection rights, you can make certain + requests and ask us: +

+ +

+ If you submit a request to stop selling your personal information, we + will stop making such transfers. Please note, if you ask us to delete + or stop selling your data, it may impact your experience with us, and + you may not be able to participate in certain programs or membership + services which require the usage of your personal information to + function. But in no circumstances, we will discriminate against you + for exercising your rights. +

+

+ To exercise your California data protection rights described above, + please send your request(s) by email: privacy[at]svrjs[dot]org. Your + data protection rights, described above, are covered by the CCPA, + short for the California Consumer Privacy Act. To find out more, visit + the official California Legislative Information website. The CCPA took + effect on 01.01.2020. +

+ +

13. Service Providers

+

+ We may employ third-party companies and individuals to facilitate our + Service (“Service Providers”), provide Service on our behalf, perform + Service-related services, or assist us in analysing how our Service is + used. These third parties have access to your Personal Data only to + perform these tasks on our behalf and are obligated not to disclose or + use it for any other purpose. +

+ +

14. Analytics

+

+ We are using a self-hosted Matomo instance at analytics.svrjs.org to + monitor and analyse the use of our Service. You may choose to prevent + this website from aggregating and analysing the actions you take here. + Doing so will protect your privacy, but will also prevent the owner + from learning from your actions and creating a better experience for + you and other users. To make that choice, please click below to + receive an opt-out cookie. You are currently opted out because Matomo + analytics are blocked. +

+ +

15. CI/CD Tools

+

+ We may use third-party Service Providers to automate the development + process of our Service. +

+ +

16. Behavioral Remarketing

+

+ We may use remarketing services to advertise on third-party websites + to you after you visited our Service. We and our third-party vendors + use cookies to inform, optimize and serve ads based on your past + visits to our Service. +

+ +

17. Links to Other Sites

+

+ Our Service may contain links to other sites that are not operated by + us. If you click a third-party link, you will be directed to that + third party’s site. We strongly advise you to review the Privacy + Policy of every site you visit. We have no control over and assume no + responsibility for the content, privacy policies or practices of any + third-party sites or services. +

+ +

18. Children’s Privacy

+

+ Our Services are not intended for use by children under the age of 18 + (“Child” or “Children”). We do not knowingly collect personally + identifiable information from Children under 18. If you become aware + that a Child has provided us with Personal Data, please contact us. If + we become aware that we have collected Personal Data from Children + without verification of parental consent, we take steps to remove that + information from our servers. +

+ +

19. Changes to This Privacy Policy

+

+ We may update our Privacy Policy from time to time. We will notify you + of any changes by posting the new Privacy Policy on this page. We will + let you know via a prominent notice on our Service, prior to the + change becoming effective and update the “effective date” at the top + of this Privacy Policy. You are advised to review this Privacy Policy + periodically for any changes. Changes to this Privacy Policy are + effective when they are posted on this page. +

+ +

20. Contact Us

+

+ If you have any questions about this Privacy Policy, please contact us + by email: privacy[at]svrjs[dot]org. +

+
+
+ ); }; export default PrivacyPolicy; diff --git a/app/(root)/tos/page.tsx b/app/(root)/tos/page.tsx index ff03b6d..657b079 100644 --- a/app/(root)/tos/page.tsx +++ b/app/(root)/tos/page.tsx @@ -2,47 +2,47 @@ import React from "react"; import { TERMS_AND_CONDITIONS } from "@/constants"; const TermsOfService = () => { - const renderContent = () => { - return TERMS_AND_CONDITIONS.split("\n").map((line, index) => { - if (line.startsWith("**")) { - return ( -

- {line.replace(/\*\*/g, "")} -

- ); - } else if (line.startsWith("*")) { - return ( -
  • - {line.replace(/\*/g, "")} -
  • - ); - } else if (/^\d+\./.test(line)) { - return ( -

    - {line} -

    - ); - } else { - return ( -

    - {line} -

    - ); - } - }); - }; + const renderContent = () => { + return TERMS_AND_CONDITIONS.split("\n").map((line, index) => { + if (line.startsWith("**")) { + return ( +

    + {line.replace(/\*\*/g, "")} +

    + ); + } else if (line.startsWith("*")) { + return ( +
  • + {line.replace(/\*/g, "")} +
  • + ); + } else if (/^\d+\./.test(line)) { + return ( +

    + {line} +

    + ); + } else { + return ( +

    + {line} +

    + ); + } + }); + }; - return ( -
    -

    - Terms of Service -

    -
    {renderContent()}
    -
    - ); + return ( +
    +

    + Terms of Service +

    +
    {renderContent()}
    +
    + ); }; export default TermsOfService; diff --git a/bun.lockb b/bun.lockb index 8339e17..115924d 100644 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/constants/index.tsx b/constants/index.tsx index 462f6cc..12f3740 100644 --- a/constants/index.tsx +++ b/constants/index.tsx @@ -2,178 +2,178 @@ import { BadgeAlert, BarChart4, Cog, ShieldCheck } from "lucide-react"; import { Download, Home, Settings, User } from "lucide-react"; export const NAVBAR = { - centerLinks: [ - { - href: "/", - target: "_self", - label: "Home", - }, - { - href: "/docs", - target: "_self", - label: "Docs", - }, - { - href: "/forum", - target: "_self", - label: "Forum", - }, - { - href: "/blog", - target: "_self", - label: "Blog", - }, - ], - rightLinks: [ - { - label: "Git", - target: "_blank", - href: "https://git.svrjs.org/", - }, - ], + centerLinks: [ + { + href: "/", + target: "_self", + label: "Home", + }, + { + href: "/docs", + target: "_self", + label: "Docs", + }, + { + href: "/forum", + target: "_self", + label: "Forum", + }, + { + href: "/blog", + target: "_self", + label: "Blog", + }, + ], + rightLinks: [ + { + label: "Git", + target: "_blank", + href: "https://git.svrjs.org/", + }, + ], }; export const stats = [ - { - title: "Downloads", - count: 69, - }, - { - title: "Users", - count: 42, - }, - { - title: "Stars", - count: 6, - }, - { - title: "Products", - count: 2, - }, + { + title: "Downloads", + count: 69, + }, + { + title: "Users", + count: 42, + }, + { + title: "Stars", + count: 6, + }, + { + title: "Products", + count: 2, + }, ]; export const Features = [ - { - icon: , - title: "Complete Secured ", - description: - "lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor", - }, - { - icon: , - title: "Best Support", - description: - "lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor", - }, - { - icon: , - title: "Most Scalable ", - description: - "lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor", - }, - { - icon: , - title: "Fully Configurable ", - description: - "lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor", - }, + { + icon: , + title: "Complete Secured ", + description: + "lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor", + }, + { + icon: , + title: "Best Support", + description: + "lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor", + }, + { + icon: , + title: "Most Scalable ", + description: + "lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor", + }, + { + icon: , + title: "Fully Configurable ", + description: + "lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor", + }, ]; export const questions = [ - { - key: "item-1", - question: "What is a web server?", - answer: - "A web server is computer software that accepts HTTP requests and serves websites. Web servers can also be underlying hardware running web server software.", - }, - { - key: "item-2", - question: "What is SVR.JS?", - answer: - "SVR.JS is web server software running on Node.JS that can host both static and dynamic content. With additional mods, SVR.JS can be used for different types of dynamic content and can even be used as a forward or reverse proxy. SVR.JS is licensed under a permissive MIT/X11 license", - }, - { - key: "item-3", - question: "How was SVR.JS created?", - answer: - "Someone in 2018 wanted to create a website, but he didnt know about setting up popular web server software like Apache httpd, NGINX, or IIS... So he created his own web server in Node.JS to serve his website! And he saved it in a file called svr.js. Since then, this web server has been gradually turned from a web server intended for one website into a general-purpose web server, which is what SVR.JS is today!", - }, - { - key: "item-4", - question: "How did SVR.JS get its name?", - answer: - "SVR.JS got its name from the original name of the server script: svr.js, one of many generic file names for a server written in JavaScript.", - }, - { - key: "item-5", - question: "What is Node.JS?", - answer: - "Node.JS is an asynchronous event-driven JavaScript runtime built on Chromiums V8 engine. Node.JS is designed to build scalable network applications.", - }, - { - key: "item-6", - question: "How can I use SVR.JS?", - answer: - "You can read the documents to learn how to use the SVR.JS web server.", - }, + { + key: "item-1", + question: "What is a web server?", + answer: + "A web server is computer software that accepts HTTP requests and serves websites. Web servers can also be underlying hardware running web server software.", + }, + { + key: "item-2", + question: "What is SVR.JS?", + answer: + "SVR.JS is web server software running on Node.JS that can host both static and dynamic content. With additional mods, SVR.JS can be used for different types of dynamic content and can even be used as a forward or reverse proxy. SVR.JS is licensed under a permissive MIT/X11 license", + }, + { + key: "item-3", + question: "How was SVR.JS created?", + answer: + "Someone in 2018 wanted to create a website, but he didnt know about setting up popular web server software like Apache httpd, NGINX, or IIS... So he created his own web server in Node.JS to serve his website! And he saved it in a file called svr.js. Since then, this web server has been gradually turned from a web server intended for one website into a general-purpose web server, which is what SVR.JS is today!", + }, + { + key: "item-4", + question: "How did SVR.JS get its name?", + answer: + "SVR.JS got its name from the original name of the server script: svr.js, one of many generic file names for a server written in JavaScript.", + }, + { + key: "item-5", + question: "What is Node.JS?", + answer: + "Node.JS is an asynchronous event-driven JavaScript runtime built on Chromiums V8 engine. Node.JS is designed to build scalable network applications.", + }, + { + key: "item-6", + question: "How can I use SVR.JS?", + answer: + "You can read the documents to learn how to use the SVR.JS web server.", + }, ]; export const FOOTERLINKS = { - otherPages: [ - { href: "/", label: "Home" }, - { href: "/contact", label: "Contact" }, - { href: "/blog", label: "Blog" }, - { href: "/forum", label: "Forum" }, - { href: "/changelogs", label: "Change Logs" }, - ], - plans: [ - { href: "/docs", label: "Docs" }, - { href: "/downloads", label: "Downloads" }, - { href: "/mods", label: "Svrjs Mods" }, - { href: "/tos", label: "Terms of Serivce" }, - { href: "/privacy-policy", label: "Privacy Policy" }, - ], - social: { - supportText: "Support Us on Socials", - }, - footerBottom: { - designedBy: { - href: "https://abhijee.com", - label: "Proxy", - }, - rightsReserved: { - href: "https://cyprostudio.com", - label: "SVRJS", - }, - }, + otherPages: [ + { href: "/", label: "Home" }, + { href: "/contact", label: "Contact" }, + { href: "/blog", label: "Blog" }, + { href: "/forum", label: "Forum" }, + { href: "/changelogs", label: "Change Logs" }, + ], + plans: [ + { href: "/docs", label: "Docs" }, + { href: "/downloads", label: "Downloads" }, + { href: "/mods", label: "Svrjs Mods" }, + { href: "/tos", label: "Terms of Serivce" }, + { href: "/privacy-policy", label: "Privacy Policy" }, + ], + social: { + supportText: "Support Us on Socials", + }, + footerBottom: { + designedBy: { + href: "https://abhijee.com", + label: "Proxy", + }, + rightsReserved: { + href: "https://cyprostudio.com", + label: "SVRJS", + }, + }, }; export const AdminLinks = [ - { - name: "Dashboard", - url: "/admin", - icon: Home, - }, - { - name: "Downloads", - url: "/admin/downloads", - icon: Download, - }, - { - name: "Mods", - url: "/admin/mods", - icon: User, - }, - { - name: "Logs", - url: "/admin/changelogs", - icon: Settings, - }, - { - name: "Back Home", - url: "/", - icon: Home, - }, + { + name: "Dashboard", + url: "/admin", + icon: Home, + }, + { + name: "Downloads", + url: "/admin/downloads", + icon: Download, + }, + { + name: "Mods", + url: "/admin/mods", + icon: User, + }, + { + name: "Logs", + url: "/admin/changelogs", + icon: Settings, + }, + { + name: "Back Home", + url: "/", + icon: Home, + }, ]; export const TERMS_AND_CONDITIONS = ` diff --git a/package.json b/package.json index 4b6d497..47cc458 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@radix-ui/react-navigation-menu": "^1.1.4", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/themes": "^3.0.5", + "@tailwindcss/typography": "^0.5.13", "@types/bcrypt": "^5.0.2", "@types/cookie": "^0.6.0", "@types/mdx": "^2.0.13", diff --git a/tailwind.config.ts b/tailwind.config.ts index 09ea899..2ef3626 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -86,7 +86,7 @@ const config = { }, }, }, - plugins: [require("tailwindcss-animate")], + plugins: [require("tailwindcss-animate"), require("@tailwindcss/typography")], } satisfies Config; export default config;