prose tailwind

This commit is contained in:
Cypro Freelance 2024-07-01 00:12:13 +05:30
parent c4f8e47177
commit c82c12fbc8
6 changed files with 612 additions and 209 deletions

View file

@ -1,17 +1,419 @@
import React from "react";
const PrivacyPolicy = () => {
return (
<section
id="privacy-policy"
className="wrapper container py-24 md:py-28 gap-4 flex flex-col"
>
<h2 className="text-3xl font-bold italic underline mb-6 ">
Privacy Policy
</h2>
<div className="prose prose-lg"></div>
</section>
);
return (
<section
id="privacy-policy"
className="wrapper container py-24 md:py-28 gap-4 flex flex-col"
>
<h2 className="text-3xl font-bold italic underline mb-6">
Privacy Policy
</h2>
<div className="prose prose-lg dark:prose-invert">
<p>
<strong>Effective date: 26.05.2024</strong>
</p>
<h3>1. Introduction</h3>
<p>
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).
</p>
<h3>2. Definitions</h3>
<ul>
<li>
<strong>SERVICE</strong> means the svrjs.org website operated by
SVR.JS.
</li>
<li>
<strong>PERSONAL DATA</strong> means data about a living individual
who can be identified from those data (or from those and other
information either in our possession or likely to come into our
possession).
</li>
<li>
<strong>USAGE DATA</strong> is data collected automatically either
generated by the use of Service or from Service infrastructure
itself (for example, the duration of a page visit).
</li>
<li>
<strong>COOKIES</strong> are small files stored on your device
(computer or mobile device).
</li>
<li>
<strong>DATA CONTROLLER</strong> means a natural or legal person who
(either alone or jointly or in common with other persons) determines
the purposes for which and the manner in which any personal data
are, or are to be, processed. For the purpose of this Privacy
Policy, we are a Data Controller of your data.
</li>
<li>
<strong>DATA PROCESSORS (OR SERVICE PROVIDERS)</strong> means any
natural or legal person who processes the data on behalf of the Data
Controller. We may use the services of various Service Providers in
order to process your data more effectively.
</li>
<li>
<strong>DATA SUBJECT</strong> is any living individual who is the
subject of Personal Data.
</li>
<li>
<strong>THE USER</strong> is the individual using our Service. The
User corresponds to the Data Subject, who is the subject of Personal
Data.
</li>
</ul>
<h3>3. Information Collection and Use</h3>
<p>
We collect several different types of information for various purposes
to provide and improve our Service to you.
</p>
<h3>4. Types of Data Collected</h3>
<h4>Personal Data</h4>
<p>
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.
</p>
<h4>Usage Data</h4>
<p>
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
computers 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.
</p>
<h4>Tracking Cookies Data</h4>
<p>
We dont 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.
</p>
<h3>5. Use of Data</h3>
<p>
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.
</p>
<h3>6. Retention of Data</h3>
<p>
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.
</p>
<h3>7. Transfer of Data</h3>
<p>
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.
</p>
<h3>8. Disclosure of Data</h3>
<p>We dont disclose any information that we collect.</p>
<h3>9. Security of Data</h3>
<p>
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.
</p>
<h3>
10. Your Data Protection Rights Under General Data Protection
Regulation (GDPR)
</h3>
<p>
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:
</p>
<ul>
<li>
The right to access, update or to delete the information we have on
you;
</li>
<li>
The right of rectification. You have the right to have your
information rectified if that information is inaccurate or
incomplete;
</li>
<li>
The right to object. You have the right to object to our processing
of your Personal Data;
</li>
<li>
The right of restriction. You have the right to request that we
restrict the processing of your personal information;
</li>
<li>
The right to data portability. You have the right to be provided
with a copy of your Personal Data in a structured, machine-readable
and commonly used format;
</li>
<li>
The right to withdraw consent. You also have the right to withdraw
your consent at any time where we rely on your consent to process
your personal information;
</li>
</ul>
<p>
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.
</p>
<h3>
11. Your Data Protection Rights under the California Privacy
Protection Act (CalOPPA)
</h3>
<p>
CalOPPA is the first state law in the nation to require commercial
websites and online services to post a privacy policy. The laws 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:
</p>
<ul>
<li>Users can visit our site anonymously;</li>
<li>
Our Privacy Policy link includes the word Privacy, and can easily
be found on the home page of our website;
</li>
<li>
Users will be notified of any privacy policy changes on our Privacy
Policy Page;
</li>
<li>
Users are able to change their personal information by emailing us
at privacy[at]svrjs[dot]org.
</li>
</ul>
<h3>
12. Your Data Protection Rights under the California Consumer Privacy
Act (CCPA)
</h3>
<p>
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:
</p>
<ul>
<li>
What personal information we have about you. If you make this
request, we will return to you:
</li>
<ul>
<li>
The categories of personal information we have collected about
you;
</li>
<li>
The categories of sources from which we collect your personal
information;
</li>
<li>
The business or commercial purpose for collecting or selling your
personal information;
</li>
<li>
The categories of third parties with whom we share personal
information;
</li>
<li>
The specific pieces of personal information we have collected
about you;
</li>
<li>
A list of categories of personal information that we have sold,
along with the category of any other company we sold it to. If we
have not sold your personal information, we will inform you of
that fact;
</li>
<li>
A list of categories of personal information that we have
disclosed for a business purpose, along with the category of any
other company we shared it with.
</li>
</ul>
<li>
Please note, you are entitled to ask us to provide you with this
information up to two times in a rolling twelve-month period. When
you make this request, the information provided may be limited to
the personal information we collected about you in the previous 12
months.
</li>
<li>
To delete your personal information. If you make this request, we
will delete the personal information we hold about you as of the
date of your request from our records and direct any service
providers to do the same. In some cases, deletion may be
accomplished through de-identification of the information. If you
choose to delete your personal information, you may not be able to
use certain functions that require your personal information to
operate.
</li>
<li>
To stop selling your personal information. We dont sell or rent
your personal information to any third parties for any purpose. We
do not sell your personal information for monetary consideration.
However, under some circumstances, a transfer of personal
information to a third party, or within our family of companies,
without monetary consideration may be considered a sale under
California law. You are the only owner of your Personal Data and can
request disclosure or deletion at any time.
</li>
</ul>
<p>
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.
</p>
<p>
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.
</p>
<h3>13. Service Providers</h3>
<p>
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.
</p>
<h3>14. Analytics</h3>
<p>
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.
</p>
<h3>15. CI/CD Tools</h3>
<p>
We may use third-party Service Providers to automate the development
process of our Service.
</p>
<h3>16. Behavioral Remarketing</h3>
<p>
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.
</p>
<h3>17. Links to Other Sites</h3>
<p>
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 partys 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.
</p>
<h3>18. Childrens Privacy</h3>
<p>
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.
</p>
<h3>19. Changes to This Privacy Policy</h3>
<p>
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.
</p>
<h3>20. Contact Us</h3>
<p>
If you have any questions about this Privacy Policy, please contact us
by email: privacy[at]svrjs[dot]org.
</p>
</div>
</section>
);
};
export default PrivacyPolicy;

View file

@ -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 (
<h3 key={index} className="text-lg lowercase italic mb-4">
{line.replace(/\*\*/g, "")}
</h3>
);
} else if (line.startsWith("*")) {
return (
<li key={index} className="list-disc list-inside mb-2">
{line.replace(/\*/g, "")}
</li>
);
} else if (/^\d+\./.test(line)) {
return (
<h4 key={index} className="text-lg font-semibold mb-2">
{line}
</h4>
);
} else {
return (
<p key={index} className="mb-4">
{line}
</p>
);
}
});
};
const renderContent = () => {
return TERMS_AND_CONDITIONS.split("\n").map((line, index) => {
if (line.startsWith("**")) {
return (
<h3 key={index} className="text-lg lowercase italic mb-4">
{line.replace(/\*\*/g, "")}
</h3>
);
} else if (line.startsWith("*")) {
return (
<li key={index} className="list-disc list-inside mb-2">
{line.replace(/\*/g, "")}
</li>
);
} else if (/^\d+\./.test(line)) {
return (
<h4 key={index} className="text-lg font-semibold mb-2">
{line}
</h4>
);
} else {
return (
<p key={index} className="mb-4">
{line}
</p>
);
}
});
};
return (
<section
id="tos"
className="wrapper container py-24 md:py-28 gap-4 flex flex-col"
>
<h2 className="text-3xl font-bold italic underline mb-6">
Terms of Service
</h2>
<div className="prose prose-lg">{renderContent()}</div>
</section>
);
return (
<section
id="tos"
className="wrapper container py-24 md:py-28 gap-4 flex flex-col"
>
<h2 className="text-3xl font-bold italic underline mb-6">
Terms of Service
</h2>
<div className="prose prose-lg dark:prose-invert">{renderContent()}</div>
</section>
);
};
export default TermsOfService;

BIN
bun.lockb

Binary file not shown.

View file

@ -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: <ShieldCheck className="w-10 h-10 text-primary" />,
title: "Complete Secured ",
description:
"lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor",
},
{
icon: <BadgeAlert className="w-10 h-10 text-primary" />,
title: "Best Support",
description:
"lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor",
},
{
icon: <BarChart4 className="w-10 h-10 text-primary" />,
title: "Most Scalable ",
description:
"lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor",
},
{
icon: <Cog className="w-10 h-10 text-primary" />,
title: "Fully Configurable ",
description:
"lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor",
},
{
icon: <ShieldCheck className="w-10 h-10 text-primary" />,
title: "Complete Secured ",
description:
"lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor",
},
{
icon: <BadgeAlert className="w-10 h-10 text-primary" />,
title: "Best Support",
description:
"lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor",
},
{
icon: <BarChart4 className="w-10 h-10 text-primary" />,
title: "Most Scalable ",
description:
"lorem ipsum dolor sit amet, consectetur adip lorem ipsum dolor lorem ipsum dolor",
},
{
icon: <Cog className="w-10 h-10 text-primary" />,
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 = `

View file

@ -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",

View file

@ -86,7 +86,7 @@ const config = {
},
},
},
plugins: [require("tailwindcss-animate")],
plugins: [require("tailwindcss-animate"), require("@tailwindcss/typography")],
} satisfies Config;
export default config;