1
0
mirror of https://github.com/hestiacp/hestiacp.git synced 2025-02-06 09:45:30 +00:00

Remove typescript from the project for simplicity (#3821)

This commit is contained in:
Jakob Bouchard 2023-07-22 05:39:10 -04:00 committed by GitHub
parent 474653d4ff
commit c151710b8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 574 additions and 848 deletions

View File

@ -1,18 +1,16 @@
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
parserOptions: {
sourceType: 'module',
ecmaVersion: 'latest',
},
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:editorconfig/noconflict',
'plugin:import/recommended',
'prettier',
],
plugins: ['editorconfig', '@typescript-eslint', 'import'],
plugins: ['editorconfig', 'import'],
ignorePatterns: ['*.cjs'],
env: {
browser: true,
@ -22,7 +20,7 @@ module.exports = {
Alpine: 'readonly',
},
rules: {
'@typescript-eslint/no-unused-vars': [
'no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',

View File

@ -2,5 +2,12 @@
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[php]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// Optional nesting patterns, set explorer.fileNesting.enabled to true to enable
"explorer.fileNesting.patterns": {
"*.css": "${capture}.css.map",
"*.js": "${capture}.js.map",
"package.json": ".editorconfig, .eslint*, .lintstaged*, .markdownlint-cli2*, .prettier*, .stylelint*, jsconfig.json, package-lock.json",
"readme*": "changelog*, contributing*, license*, security*"
}
}

163
docs/.vitepress/config.js Normal file
View File

@ -0,0 +1,163 @@
import { defineConfig } from 'vitepress';
import { version } from '../../package.json';
export default defineConfig({
lang: 'en-US',
title: 'Hestia Control Panel',
description: 'Open-source web server control panel.',
lastUpdated: true,
cleanUrls: false,
head: [
['link', { rel: 'icon', sizes: 'any', href: '/favicon.ico' }],
['link', { rel: 'icon', type: 'image/svg+xml', sizes: '16x16', href: '/logo.svg' }],
['link', { rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' }],
['link', { rel: 'manifest', href: '/site.webmanifest' }],
['meta', { name: 'theme-color', content: '#b7236a' }],
],
themeConfig: {
logo: '/logo.svg',
nav: nav(),
socialLinks: [
{ icon: 'github', link: 'https://github.com/hestiacp/hestiacp' },
{ icon: 'twitter', link: 'https://twitter.com/HestiaPanel' },
{ icon: 'facebook', link: 'https://www.facebook.com/hestiacp' },
],
sidebar: { '/docs/': sidebarDocs() },
outline: [2, 3],
editLink: {
pattern: 'https://github.com/hestiacp/hestiacp/edit/main/docs/:path',
text: 'Edit this page on GitHub',
},
footer: {
message: 'Released under the GPLv3 License.',
copyright: 'Copyright © 2019-present Hestia Control Panel',
},
algolia: {
appId: 'V04P0P5D2R',
apiKey: '7a90a3ac7f9313f174c50b0f301f7ec6',
indexName: 'hestia_cp',
},
},
});
/** @returns {import("vitepress").DefaultTheme.NavItem[]} */
function nav() {
return [
{ text: 'Features', link: '/features.md' },
{ text: 'Install', link: '/install.md' },
{ text: 'Documentation', link: '/docs/introduction/getting-started.md', activeMatch: '/docs/' },
{ text: 'Team', link: '/team.md' },
{ text: 'Demo', link: 'https://demo.hestiacp.com:8083/' },
{ text: 'Forum', link: 'https://forum.hestiacp.com/' },
{ text: 'Donate', link: '/donate.md' },
{
text: `v${version}`,
items: [
{
text: 'Changelog',
link: 'https://github.com/hestiacp/hestiacp/blob/main/CHANGELOG.md',
},
{
text: 'Contributing',
link: 'https://github.com/hestiacp/hestiacp/blob/main/CONTRIBUTING.md',
},
{
text: 'Security policy',
link: 'https://github.com/hestiacp/hestiacp/blob/main/SECURITY.md',
},
],
},
];
}
/** @returns {import("vitepress").DefaultTheme.SidebarItem[]} */
function sidebarDocs() {
return [
{
text: 'Introduction',
collapsed: false,
items: [
{ text: 'Getting started', link: '/docs/introduction/getting-started.md' },
{ text: 'Best practices', link: '/docs/introduction/best-practices.md' },
],
},
{
text: 'User guide',
collapsed: false,
items: [
{ text: 'Account', link: '/docs/user-guide/account.md' },
{ text: 'Backups', link: '/docs/user-guide/backups.md' },
{ text: 'Cron jobs', link: '/docs/user-guide/cron-jobs.md' },
{ text: 'Databases', link: '/docs/user-guide/databases.md' },
{ text: 'DNS', link: '/docs/user-guide/dns.md' },
{ text: 'File manager', link: '/docs/user-guide/file-manager.md' },
{ text: 'Mail domains', link: '/docs/user-guide/mail-domains.md' },
{ text: 'Notifications', link: '/docs/user-guide/notifications.md' },
{ text: 'Packages', link: '/docs/user-guide/packages.md' },
{ text: 'Statistics', link: '/docs/user-guide/statistics.md' },
{ text: 'Users', link: '/docs/user-guide/users.md' },
{ text: 'Web domains', link: '/docs/user-guide/web-domains.md' },
],
},
{
text: 'Server administration',
collapsed: false,
items: [
{ text: 'Backup & restore', link: '/docs/server-administration/backup-restore.md' },
{ text: 'Configuration', link: '/docs/server-administration/configuration.md' },
{ text: 'Customisation', link: '/docs/server-administration/customisation.md' },
{ text: 'Databases & phpMyAdmin', link: '/docs/server-administration/databases.md' },
{ text: 'DNS clusters & DNSSEC', link: '/docs/server-administration/dns.md' },
{ text: 'Email', link: '/docs/server-administration/email.md' },
{ text: 'File manager', link: '/docs/server-administration/file-manager.md' },
{ text: 'Firewall', link: '/docs/server-administration/firewall.md' },
{ text: 'OS upgrades', link: '/docs/server-administration/os-upgrades.md' },
{ text: 'Rest API', link: '/docs/server-administration/rest-api.md' },
{ text: 'SSL certificates', link: '/docs/server-administration/ssl-certificates.md' },
{ text: 'Web templates & caching', link: '/docs/server-administration/web-templates.md' },
{ text: 'Troubleshooting', link: '/docs/server-administration/troubleshooting.md' },
],
},
{
text: 'Contributing',
collapsed: false,
items: [
{ text: 'Building Packages', link: '/docs/contributing/building.md' },
{ text: 'Development', link: '/docs/contributing/development.md' },
{ text: 'Documentation', link: '/docs/contributing/documentation.md' },
{ text: 'Quick install app', link: '/docs/contributing/quick-install-app.md' },
{ text: 'Testing', link: '/docs/contributing/testing.md' },
{ text: 'Translations', link: '/docs/contributing/translations.md' },
],
},
{
text: 'Community',
collapsed: false,
items: [
{ text: 'Hestia Nginx Cache', link: '/docs/community/hestia-nginx-cache.md' },
{
text: 'Ioncube installer for Hestia',
link: '/docs/community/ioncube-hestia-installer.md',
},
{ text: 'Install script generator', link: '/docs/community/install-script-generator.md' },
],
},
{
text: 'Reference',
collapsed: false,
items: [
{ text: 'API', link: '/docs/reference/api.md' },
{ text: 'CLI', link: '/docs/reference/cli.md' },
],
},
];
}

View File

@ -1,162 +0,0 @@
import { defineConfig, type DefaultTheme } from "vitepress";
import { version } from "../../package.json";
export default defineConfig({
lang: "en-US",
title: "Hestia Control Panel",
description: "Open-source web server control panel.",
lastUpdated: true,
cleanUrls: false,
head: [
["link", { rel: "icon", sizes: "any", href: "/favicon.ico" }],
["link", { rel: "icon", type: "image/svg+xml", sizes: "16x16", href: "/logo.svg" }],
["link", { rel: "apple-touch-icon", sizes: "180x180", href: "/apple-touch-icon.png" }],
["link", { rel: "manifest", href: "/site.webmanifest" }],
["meta", { name: "theme-color", content: "#b7236a" }],
],
themeConfig: {
logo: "/logo.svg",
nav: nav(),
socialLinks: [
{ icon: "github", link: "https://github.com/hestiacp/hestiacp" },
{ icon: "twitter", link: "https://twitter.com/HestiaPanel" },
{ icon: "facebook", link: "https://www.facebook.com/hestiacp" },
],
sidebar: { "/docs/": sidebarDocs() },
outline: [2, 3],
editLink: {
pattern: "https://github.com/hestiacp/hestiacp/edit/main/docs/:path",
text: "Edit this page on GitHub",
},
footer: {
message: "Released under the GPLv3 License.",
copyright: "Copyright © 2019-present Hestia Control Panel",
},
algolia: {
appId: "V04P0P5D2R",
apiKey: "7a90a3ac7f9313f174c50b0f301f7ec6",
indexName: "hestia_cp",
},
},
});
function nav(): DefaultTheme.NavItem[] {
return [
{ text: "Features", link: "/features.md" },
{ text: "Install", link: "/install.md" },
{ text: "Documentation", link: "/docs/introduction/getting-started.md", activeMatch: "/docs/" },
{ text: "Team", link: "/team.md" },
{ text: "Demo", link: "https://demo.hestiacp.com:8083/" },
{ text: "Forum", link: "https://forum.hestiacp.com/" },
{ text: "Donate", link: "/donate.md" },
{
text: `v${version}`,
items: [
{
text: "Changelog",
link: "https://github.com/hestiacp/hestiacp/blob/main/CHANGELOG.md",
},
{
text: "Contributing",
link: "https://github.com/hestiacp/hestiacp/blob/main/CONTRIBUTING.md",
},
{
text: "Security policy",
link: "https://github.com/hestiacp/hestiacp/blob/main/SECURITY.md",
},
],
},
];
}
function sidebarDocs(): DefaultTheme.SidebarItem[] {
return [
{
text: "Introduction",
collapsed: false,
items: [
{ text: "Getting started", link: "/docs/introduction/getting-started.md" },
{ text: "Best practices", link: "/docs/introduction/best-practices.md" },
],
},
{
text: "User guide",
collapsed: false,
items: [
{ text: "Account", link: "/docs/user-guide/account.md" },
{ text: "Backups", link: "/docs/user-guide/backups.md" },
{ text: "Cron jobs", link: "/docs/user-guide/cron-jobs.md" },
{ text: "Databases", link: "/docs/user-guide/databases.md" },
{ text: "DNS", link: "/docs/user-guide/dns.md" },
{ text: "File manager", link: "/docs/user-guide/file-manager.md" },
{ text: "Mail domains", link: "/docs/user-guide/mail-domains.md" },
{ text: "Notifications", link: "/docs/user-guide/notifications.md" },
{ text: "Packages", link: "/docs/user-guide/packages.md" },
{ text: "Statistics", link: "/docs/user-guide/statistics.md" },
{ text: "Users", link: "/docs/user-guide/users.md" },
{ text: "Web domains", link: "/docs/user-guide/web-domains.md" },
],
},
{
text: "Server administration",
collapsed: false,
items: [
{ text: "Backup & restore", link: "/docs/server-administration/backup-restore.md" },
{ text: "Configuration", link: "/docs/server-administration/configuration.md" },
{ text: "Customisation", link: "/docs/server-administration/customisation.md" },
{ text: "Databases & phpMyAdmin", link: "/docs/server-administration/databases.md" },
{ text: "DNS clusters & DNSSEC", link: "/docs/server-administration/dns.md" },
{ text: "Email", link: "/docs/server-administration/email.md" },
{ text: "File manager", link: "/docs/server-administration/file-manager.md" },
{ text: "Firewall", link: "/docs/server-administration/firewall.md" },
{ text: "OS upgrades", link: "/docs/server-administration/os-upgrades.md" },
{ text: "Rest API", link: "/docs/server-administration/rest-api.md" },
{ text: "SSL certificates", link: "/docs/server-administration/ssl-certificates.md" },
{ text: "Web templates & caching", link: "/docs/server-administration/web-templates.md" },
{ text: "Troubleshooting", link: "/docs/server-administration/troubleshooting.md" },
],
},
{
text: "Contributing",
collapsed: false,
items: [
{ text: "Building Packages", link: "/docs/contributing/building.md" },
{ text: "Development", link: "/docs/contributing/development.md" },
{ text: "Documentation", link: "/docs/contributing/documentation.md" },
{ text: "Quick install app", link: "/docs/contributing/quick-install-app.md" },
{ text: "Testing", link: "/docs/contributing/testing.md" },
{ text: "Translations", link: "/docs/contributing/translations.md" },
],
},
{
text: "Community",
collapsed: false,
items: [
{ text: "Hestia Nginx Cache", link: "/docs/community/hestia-nginx-cache.md" },
{
text: "Ioncube installer for Hestia",
link: "/docs/community/ioncube-hestia-installer.md",
},
{ text: "Install script generator", link: "/docs/community/install-script-generator.md" },
],
},
{
text: "Reference",
collapsed: false,
items: [
{ text: "API", link: "/docs/reference/api.md" },
{ text: "CLI", link: "/docs/reference/cli.md" },
],
},
];
}

View File

@ -1,10 +1,7 @@
<script lang="ts">
import { FeatureListItem } from "../../../_data/features";
<script>
export default {
props: {
items: {
type: Array<FeatureListItem>,
required: true,
},
},

View File

@ -1,8 +1,6 @@
<script lang="ts">
<script>
export default {
props: {
image: String,
},
props: ["image"],
};
</script>

View File

@ -1,18 +1,11 @@
<script lang="ts">
import { InstallOptions } from "../../../_data/options";
import { LanguagesOptions } from "../../../_data/languages";
import { ref } from "vue";
const slot = ref(null);
<script>
export default {
props: {
languages: {
type: Array<LanguagesOptions>,
required: true,
selected: "en",
},
items: {
type: Array<InstallOptions>,
required: true,
},
},
@ -26,7 +19,7 @@ export default {
};
},
methods: {
getOptionString(item: InstallOptions): string {
getOptionString(item) {
if (item.textField) {
return item.selected ? `${item.param} '${item.text}'` : "";
}
@ -43,11 +36,11 @@ export default {
const installStr = this.items.map(this.getOptionString).filter(Boolean);
this.installStr = `${this.hestia_install} ${installStr.join(" ")}`;
(this.$refs.dialog as HTMLDialogElement).showModal();
this.$refs.dialog.showModal();
},
closeDialog(e) {
if (e.target === this.$refs.dialogClose || e.target === this.$refs.dialog) {
(this.$refs.dialog as HTMLDialogElement).close();
this.$refs.dialog.close();
}
},
checkNeedEnabled(e) {
@ -74,7 +67,7 @@ export default {
}
}
},
copyToClipboard(text: string, button: HTMLButtonElement) {
copyToClipboard(text, button) {
navigator.clipboard.writeText(text).then(
() => {
button.textContent = "Copied!";

View File

@ -1,5 +1,3 @@
<script lang="ts"></script>
<template>
<form class="InstallForm" id="form">
<div class="InstallOptionsSection">

View File

@ -0,0 +1,16 @@
import Theme from 'vitepress/theme';
import '@fortawesome/fontawesome-free/css/fontawesome.css';
import '@fortawesome/fontawesome-free/css/brands.css';
import '@fortawesome/fontawesome-free/css/solid.css';
import './styles/base.css';
import './styles/vars.css';
import FeaturePage from './components/FeaturePage.vue';
import InstallPage from './components/InstallPage.vue';
export default {
...Theme,
enhanceApp({ app }) {
app.component('FeaturePage', FeaturePage);
app.component('InstallPage', InstallPage);
},
};

View File

@ -1,16 +0,0 @@
import Theme from "vitepress/theme";
import "@fortawesome/fontawesome-free/css/fontawesome.css";
import "@fortawesome/fontawesome-free/css/brands.css";
import "@fortawesome/fontawesome-free/css/solid.css";
import "./styles/base.css";
import "./styles/vars.css";
import FeaturePage from "./components/FeaturePage.vue";
import InstallPage from "./components/InstallPage.vue";
export default {
...Theme,
enhanceApp({ app }) {
app.component("FeaturePage", FeaturePage);
app.component("InstallPage", InstallPage);
},
};

79
docs/_data/features.js Normal file
View File

@ -0,0 +1,79 @@
/** @typedef {{ text: string, items?: { text: string }[] }} FeatureListItem */
/** @type {FeatureListItem[]} */
export const users = [
{ text: 'Support for SFTP chroot jails' },
{ text: 'Two-Factor Authentication support for the Admin Panel' },
{ text: 'SSH keys for login via SFTP and SSH' },
];
/** @type {FeatureListItem[]} */
export const webDomains = [
{ text: 'Nginx FastCGI cache support for Nginx + PHP-FPM' },
{ text: 'Nginx Proxy cache support for Nginx + Apache2' },
{ text: 'Per-domain TLS certificates for web domains' },
{ text: 'MultiIP support for Web/Mail/DNS' },
{
text: 'MultiPHP support for',
items: [
{ text: "PHP 5.6 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.0 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.1 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.2 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.3 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.4 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: 'PHP 8.0' },
{ text: 'PHP 8.1' },
{ text: 'PHP 8.2' },
],
},
{
text: 'One-Click Install Apps',
items: [
{ text: 'WordPress' },
{ text: 'Dokuwiki' },
{ text: 'Drupal' },
{ text: 'Grav' },
{ text: 'Laravel' },
{ text: 'MediaWiki' },
{ text: 'NextCloud' },
{ text: 'OpenCart' },
{ text: 'Prestashop' },
{ text: 'Symphony' },
],
},
];
/** @type {FeatureListItem[]} */
export const mail = [
{
text: 'Per-domain TLS certificates for inbound and outbound mail services (Exim 4, Dovecot, Webmail)',
},
{ text: 'SMTP relay setup for Exim in case port 25 is blocked by the provider' },
{ text: 'Rate limit adjustable per user or email account' },
{ text: 'Lets Encrypt support for mail domains' },
{ text: 'Latest version of Roundcube' },
{ text: 'Optional SnappyMail installation' },
];
/** @type {FeatureListItem[]} */
export const dns = [
{ text: 'Create your own nameservers' },
{ text: 'Easy DNS cluster setup' },
{ text: 'Support for DNSSEC on domains' },
];
/** @type {FeatureListItem[]} */
export const databases = [
{ text: 'Support for MariaDB 10.2 -> 10.11 with 10.11 as default' },
{ text: 'Support for MySQL 8' },
{ text: 'Support for PostgreSQL' },
{ text: 'Latest version of phpMyAdmin and phpPgAdmin' },
];
/** @type {FeatureListItem[]} */
export const serverAdmin = [
{
text: "Automated backups to SFTP, FTP and via Rclone with 50+ <a href='https://rclone.org/overview/'>Cloud storage providers</a>",
},
];

View File

@ -1,76 +0,0 @@
export interface FeatureListItem {
text: string;
items?: { text: string }[];
}
export const users: FeatureListItem[] = [
{ text: "Support for SFTP chroot jails" },
{ text: "Two-Factor Authentication support for the Admin Panel" },
{ text: "SSH keys for login via SFTP and SSH" },
];
export const webDomains: FeatureListItem[] = [
{ text: "Nginx FastCGI cache support for Nginx + PHP-FPM" },
{ text: "Nginx Proxy cache support for Nginx + Apache2" },
{ text: "Per-domain TLS certificates for web domains" },
{ text: "MultiIP support for Web/Mail/DNS" },
{
text: "MultiPHP support for",
items: [
{ text: "PHP 5.6 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.0 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.1 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.2 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.3 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 7.4 (<a href='https://www.php.net/supported-versions.php'>EOL</a>)" },
{ text: "PHP 8.0" },
{ text: "PHP 8.1" },
{ text: "PHP 8.2" },
],
},
{
text: "One-Click Install Apps",
items: [
{ text: "WordPress" },
{ text: "Dokuwiki" },
{ text: "Drupal" },
{ text: "Grav" },
{ text: "Laravel" },
{ text: "MediaWiki" },
{ text: "NextCloud" },
{ text: "OpenCart" },
{ text: "Prestashop" },
{ text: "Symphony" },
],
},
];
export const mail: FeatureListItem[] = [
{
text: "Per-domain TLS certificates for inbound and outbound mail services (Exim 4, Dovecot, Webmail)",
},
{ text: "SMTP relay setup for Exim in case port 25 is blocked by the provider" },
{ text: "Rate limit adjustable per user or email account" },
{ text: "Lets Encrypt support for mail domains" },
{ text: "Latest version of Roundcube" },
{ text: "Optional SnappyMail installation" },
];
export const dns: FeatureListItem[] = [
{ text: "Create your own nameservers" },
{ text: "Easy DNS cluster setup" },
{ text: "Support for DNSSEC on domains" },
];
export const databases: FeatureListItem[] = [
{ text: "Support for MariaDB 10.2 -> 10.11 with 10.11 as default" },
{ text: "Support for MySQL 8" },
{ text: "Support for PostgreSQL" },
{ text: "Latest version of phpMyAdmin and phpPgAdmin" },
];
export const serverAdmin: FeatureListItem[] = [
{
text: "Automated backups to SFTP, FTP and via Rclone with 50+ <a href='https://rclone.org/overview/'>Cloud storage providers</a>",
},
];

43
docs/_data/languages.js Normal file
View File

@ -0,0 +1,43 @@
export const languages = [
{ text: 'Arabic', value: 'ar' },
{ text: 'Armenian', value: 'hy' },
{ text: 'Azerbaijani', value: 'az' },
{ text: 'Bengali', value: 'bn' },
{ text: 'Bosnian', value: 'bs' },
{ text: 'Bulgarian', value: 'bg' },
{ text: 'Catalan', value: 'ca' },
{ text: 'Croatian', value: 'hr' },
{ text: 'Czech', value: 'cs' },
{ text: 'Danish', value: 'da' },
{ text: 'Dutch', value: 'nl' },
{ text: 'English', value: 'en' },
{ text: 'Finnish', value: 'fi' },
{ text: 'French', value: 'fr' },
{ text: 'Georgian', value: 'ka' },
{ text: 'German', value: 'de' },
{ text: 'Greek', value: 'el' },
{ text: 'Hungarian', value: 'hu' },
{ text: 'Indonesian', value: 'id' },
{ text: 'Italian', value: 'it' },
{ text: 'Japanese', value: 'ja' },
{ text: 'Korean', value: 'ko' },
{ text: 'Kurdish Sorani', value: 'ku' },
{ text: 'Norwegain', value: 'no' },
{ text: 'Persian', value: 'fa' },
{ text: 'Polish', value: 'pl' },
{ text: 'Portuguese', value: 'pt' },
{ text: 'Portuguese (Brasil)', value: 'pt-br' },
{ text: 'Romanian', value: 'ro' },
{ text: 'Russian', value: 'ru' },
{ text: 'Serbian', value: 'sr' },
{ text: 'Simplified Chinese (China)', value: 'zh-cn' },
{ text: 'Slovak', value: 'sk' },
{ text: 'Spanish', value: 'es' },
{ text: 'Swedish', value: 'sv' },
{ text: 'Thai', value: 'th' },
{ text: 'Traditional Chinese (Taiwan)', value: 'zh-tw' },
{ text: 'Turkish', value: 'tr' },
{ text: 'Ukrainian', value: 'uk' },
{ text: 'Urdu', value: 'ur' },
{ text: 'Vietnamese', value: 'vi' },
];

View File

@ -1,43 +0,0 @@
export const languages: LanguagesListItem[] = [
{ text: "Arabic", value: "ar" },
{ text: "Armenian", value: "hy" },
{ text: "Azerbaijani", value: "az" },
{ text: "Bengali", value: "bn" },
{ text: "Bosnian", value: "bs" },
{ text: "Bulgarian", value: "bg" },
{ text: "Catalan", value: "ca" },
{ text: "Croatian", value: "hr" },
{ text: "Czech", value: "cs" },
{ text: "Danish", value: "da" },
{ text: "Dutch", value: "nl" },
{ text: "English", value: "en" },
{ text: "Finnish", value: "fi" },
{ text: "French", value: "fr" },
{ text: "Georgian", value: "ka" },
{ text: "German", value: "de" },
{ text: "Greek", value: "el" },
{ text: "Hungarian", value: "hu" },
{ text: "Indonesian", value: "id" },
{ text: "Italian", value: "it" },
{ text: "Japanese", value: "ja" },
{ text: "Korean", value: "ko" },
{ text: "Kurdish Sorani", value: "ku" },
{ text: "Norwegain", value: "no" },
{ text: "Persian", value: "fa" },
{ text: "Polish", value: "pl" },
{ text: "Portuguese", value: "pt" },
{ text: "Portuguese (Brasil)", value: "pt-br" },
{ text: "Romanian", value: "ro" },
{ text: "Russian", value: "ru" },
{ text: "Serbian", value: "sr" },
{ text: "Simplified Chinese (China)", value: "zh-cn" },
{ text: "Slovak", value: "sk" },
{ text: "Spanish", value: "es" },
{ text: "Swedish", value: "sv" },
{ text: "Thai", value: "th" },
{ text: "Traditional Chinese (Taiwan)", value: "zh-tw" },
{ text: "Turkish", value: "tr" },
{ text: "Ukrainian", value: "uk" },
{ text: "Urdu", value: "ur" },
{ text: "Vietnamese", value: "vi" },
];

178
docs/_data/options.js Normal file
View File

@ -0,0 +1,178 @@
export const options = [
{
name: ' --port',
id: 'port',
param: '--port',
desc: 'Change Hestia Port',
selected: true,
text: '8083',
textField: true,
},
{
name: ' --lang',
id: 'language',
param: '--lang',
desc: 'ISO 639-1 codes',
selected: true,
default: 'en',
selectField: true,
text: 'en',
},
{
name: ' --hostname',
id: 'hostname',
param: '--hostname',
desc: 'Set hostname',
selected: false,
text: '',
textField: true,
},
{
name: ' --email',
id: 'email',
param: '--email',
desc: 'Set admin email',
selected: false,
text: '',
textField: true,
},
{
name: ' --password',
id: 'password',
param: '--password',
desc: 'Set admin password',
selected: false,
text: '',
textField: true,
},
{
name: ' --apache',
id: 'apache',
param: '--apache',
desc: 'Web server with htaccess support.',
selected: true,
},
{ name: ' --phpfpm', id: 'phpfpm', param: '--phpfpm', desc: 'Install PHP-FPM.', selected: true },
{
name: ' --multiphp',
id: 'multiphp',
param: '--multiphp',
desc: 'Allows installing multiple PHP versions.',
selected: true,
},
{
name: ' --vsftpd',
id: 'vsftpd',
param: '--vsftpd',
desc: 'Lightweight, minimalist and secure FTP server.',
selected: true,
conflicts: 'proftpd',
},
{
name: ' --proftpd',
id: 'proftpd',
param: '--proftpd',
desc: 'Advanced, modular FTP server that supports LDAP.',
selected: false,
conflicts: 'vsftpd',
},
{
name: ' --named',
id: 'named',
param: '--named',
desc: 'Custom DNS name server.',
selected: true,
},
{
name: ' --mariadb',
id: 'mariadb',
param: '--mariadb',
desc: 'Fork of MySQL with additional features and improvements.',
selected: true,
conflicts: 'mysql8',
},
{
name: ' --mysql8',
id: 'mysql8',
param: '--mysql8',
desc: 'Open-source database system.',
selected: false,
conflicts: 'mariadb',
},
{
name: ' --postgresql',
id: 'postgresql',
param: '--postgresql',
desc: 'Open-source database system.',
selected: false,
},
{
name: ' --exim',
id: 'exim',
param: '--exim',
desc: 'Allows sending emails from webmail or via SMTP.',
selected: true,
},
{
name: ' --dovecot',
id: 'dovecot',
param: '--dovecot',
desc: 'Receive emails and connect with email clients via IMAP/POP3.',
selected: true,
depends: 'exim',
},
{
name: ' --sieve',
id: 'sieve',
param: '--sieve',
desc: 'Manage your own custom email filters.',
selected: false,
depends: 'dovecot',
},
{
name: ' --clamav',
id: 'clamav',
param: '--clamav',
desc: 'Scans your email inbox for viruses.',
selected: true,
depends: 'exim',
},
{
name: ' --spamassassin',
id: 'spamassassin',
param: '--spamassassin',
desc: 'Filter out spam emails from your inbox.',
selected: true,
depends: 'exim',
},
{
name: ' --iptables',
id: 'iptables',
param: '--iptables',
desc: 'Manage your firewall within Hestia.',
selected: true,
},
{
name: ' --fail2ban',
id: 'fail2ban',
param: '--fail2ban',
desc: 'Provides Bruteforce protection for SSH, Email, FTP, database.',
selected: true,
},
{
name: ' --quota',
id: 'quota',
param: '--quota',
desc: 'Use hard disk space limits on user packages.',
selected: false,
},
{ name: ' --api', id: 'api', param: '--api', desc: 'Activate API.', selected: true },
{
name: ' --interactive',
id: 'interactive',
param: '--interactive',
desc: 'Interactive install.',
selected: true,
},
{ name: ' --force', id: 'force', param: '--force', desc: 'Force installation.', selected: false },
];

View File

@ -1,178 +0,0 @@
export const options: OptionsListItem[] = [
{
name: " --port",
id: "port",
param: "--port",
desc: "Change Hestia Port",
selected: true,
text: "8083",
textField: true,
},
{
name: " --lang",
id: "language",
param: "--lang",
desc: "ISO 639-1 codes",
selected: true,
default: "en",
selectField: true,
text: "en",
},
{
name: " --hostname",
id: "hostname",
param: "--hostname",
desc: "Set hostname",
selected: false,
text: "",
textField: true,
},
{
name: " --email",
id: "email",
param: "--email",
desc: "Set admin email",
selected: false,
text: "",
textField: true,
},
{
name: " --password",
id: "password",
param: "--password",
desc: "Set admin password",
selected: false,
text: "",
textField: true,
},
{
name: " --apache",
id: "apache",
param: "--apache",
desc: "Web server with htaccess support.",
selected: true,
},
{ name: " --phpfpm", id: "phpfpm", param: "--phpfpm", desc: "Install PHP-FPM.", selected: true },
{
name: " --multiphp",
id: "multiphp",
param: "--multiphp",
desc: "Allows installing multiple PHP versions.",
selected: true,
},
{
name: " --vsftpd",
id: "vsftpd",
param: "--vsftpd",
desc: "Lightweight, minimalist and secure FTP server.",
selected: true,
conflicts: "proftpd",
},
{
name: " --proftpd",
id: "proftpd",
param: "--proftpd",
desc: "Advanced, modular FTP server that supports LDAP.",
selected: false,
conflicts: "vsftpd",
},
{
name: " --named",
id: "named",
param: "--named",
desc: "Custom DNS name server.",
selected: true,
},
{
name: " --mariadb",
id: "mariadb",
param: "--mariadb",
desc: "Fork of MySQL with additional features and improvements.",
selected: true,
conflicts: "mysql8",
},
{
name: " --mysql8",
id: "mysql8",
param: "--mysql8",
desc: "Open-source database system.",
selected: false,
conflicts: "mariadb",
},
{
name: " --postgresql",
id: "postgresql",
param: "--postgresql",
desc: "Open-source database system.",
selected: false,
},
{
name: " --exim",
id: "exim",
param: "--exim",
desc: "Allows sending emails from webmail or via SMTP.",
selected: true,
},
{
name: " --dovecot",
id: "dovecot",
param: "--dovecot",
desc: "Receive emails and connect with email clients via IMAP/POP3.",
selected: true,
depends: "exim",
},
{
name: " --sieve",
id: "sieve",
param: "--sieve",
desc: "Manage your own custom email filters.",
selected: false,
depends: "dovecot",
},
{
name: " --clamav",
id: "clamav",
param: "--clamav",
desc: "Scans your email inbox for viruses.",
selected: true,
depends: "exim",
},
{
name: " --spamassassin",
id: "spamassassin",
param: "--spamassassin",
desc: "Filter out spam emails from your inbox.",
selected: true,
depends: "exim",
},
{
name: " --iptables",
id: "iptables",
param: "--iptables",
desc: "Manage your firewall within Hestia.",
selected: true,
},
{
name: " --fail2ban",
id: "fail2ban",
param: "--fail2ban",
desc: "Provides Bruteforce protection for SSH, Email, FTP, database.",
selected: true,
},
{
name: " --quota",
id: "quota",
param: "--quota",
desc: "Use hard disk space limits on user packages.",
selected: false,
},
{ name: " --api", id: "api", param: "--api", desc: "Activate API.", selected: true },
{
name: " --interactive",
id: "interactive",
param: "--interactive",
desc: "Interactive install.",
selected: true,
},
{ name: " --force", id: "force", param: "--force", desc: "Force installation.", selected: false },
];

74
docs/_data/team.js Normal file
View File

@ -0,0 +1,74 @@
/** @type {import("vitepress").DefaultTheme.TeamMember[]} */
export const projectManagers = [
{
avatar: 'https://www.github.com/ScIT-Raphael.png',
name: 'Raphael Schneeberger 🇨🇭',
title: 'Project Founder',
links: [{ icon: 'github', link: 'https://github.com/ScIT-Raphael' }],
},
{
avatar: 'https://www.github.com/jaapmarcus.png',
name: 'Jaap Marcus 🇳🇱',
links: [
{ icon: 'github', link: 'https://github.com/jaapmarcus' },
{ icon: 'twitter', link: 'https://twitter.com/jaapmarcus' },
],
},
{
avatar: 'https://www.github.com/Lupul.png',
name: 'Robert Zollner 🇷🇴',
links: [{ icon: 'github', link: 'https://github.com/Lupul' }],
},
{
avatar:
'https://cdn.discordapp.com/avatars/737720562482151485/bac8f56f0a909032efaf60c1aa4047e5.webp',
name: 'Kristan Kenney 🇨🇦',
},
];
/** @type {import("vitepress").DefaultTheme.TeamMember[]} */
export const teamMembers = [
{
avatar: 'https://www.github.com/jakobbouchard.png',
name: 'Jakob Bouchard 🇨🇦',
title: 'Developer',
org: 'Prosomo',
orgLink: 'https://prosomo.com',
links: [
{ icon: 'github', link: 'https://github.com/jakobbouchard' },
{ icon: 'linkedin', link: 'https://linkedin.com/in/jakobbouchard' },
{
icon: {
svg: '<svg role="img" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><title>Website</title><path stroke-linecap="round" stroke-linejoin="round" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" /></svg>',
},
link: 'https://jakobbouchard.dev',
},
],
},
{
avatar:
'https://cdn.discordapp.com/avatars/737905427097845780/32452f630dd8684ed7c580806ccbee09.webp',
name: 'Falzo 🇩🇪',
links: [{ icon: 'github', link: 'https://github.com/falzoMAD' }],
},
{
avatar: 'https://www.github.com/divinity76.png',
name: 'divinity76 🇳🇴',
links: [{ icon: 'github', link: 'https://github.com/divinity76' }],
},
{
avatar: 'https://www.github.com/istiak101.png',
name: 'istiak101 🇧🇩',
links: [{ icon: 'github', link: 'https://github.com/istiak101' }],
},
{
avatar: 'https://www.github.com/Pleskan.png',
name: 'Anton Pleskanovskyy 🇺🇦',
links: [{ icon: 'github', link: 'https://github.com/Pleskan' }],
},
{
avatar: 'https://www.github.com/AlecRust.png',
name: 'Alec Rust 🇬🇧',
links: [{ icon: 'github', link: 'https://github.com/AlecRust' }],
},
];

View File

@ -1,74 +0,0 @@
import type { DefaultTheme } from "vitepress";
export const projectManagers: DefaultTheme.TeamMember[] = [
{
avatar: "https://www.github.com/ScIT-Raphael.png",
name: "Raphael Schneeberger 🇨🇭",
title: "Project Founder",
links: [{ icon: "github", link: "https://github.com/ScIT-Raphael" }],
},
{
avatar: "https://www.github.com/jaapmarcus.png",
name: "Jaap Marcus 🇳🇱",
links: [
{ icon: "github", link: "https://github.com/jaapmarcus" },
{ icon: "twitter", link: "https://twitter.com/jaapmarcus" },
],
},
{
avatar: "https://www.github.com/Lupul.png",
name: "Robert Zollner 🇷🇴",
links: [{ icon: "github", link: "https://github.com/Lupul" }],
},
{
avatar:
"https://cdn.discordapp.com/avatars/737720562482151485/bac8f56f0a909032efaf60c1aa4047e5.webp",
name: "Kristan Kenney 🇨🇦",
},
];
export const teamMembers: DefaultTheme.TeamMember[] = [
{
avatar: "https://www.github.com/jakobbouchard.png",
name: "Jakob Bouchard 🇨🇦",
title: "Developer",
org: "Prosomo",
orgLink: "https://prosomo.com",
links: [
{ icon: "github", link: "https://github.com/jakobbouchard" },
{ icon: "linkedin", link: "https://linkedin.com/in/jakobbouchard" },
{
icon: {
svg: '<svg role="img" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><title>Website</title><path stroke-linecap="round" stroke-linejoin="round" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" /></svg>',
},
link: "https://jakobbouchard.dev",
},
],
},
{
avatar:
"https://cdn.discordapp.com/avatars/737905427097845780/32452f630dd8684ed7c580806ccbee09.webp",
name: "Falzo 🇩🇪",
links: [{ icon: "github", link: "https://github.com/falzoMAD" }],
},
{
avatar: "https://www.github.com/divinity76.png",
name: "divinity76 🇳🇴",
links: [{ icon: "github", link: "https://github.com/divinity76" }],
},
{
avatar: "https://www.github.com/istiak101.png",
name: "istiak101 🇧🇩",
links: [{ icon: "github", link: "https://github.com/istiak101" }],
},
{
avatar: "https://www.github.com/Pleskan.png",
name: "Anton Pleskanovskyy 🇺🇦",
links: [{ icon: "github", link: "https://github.com/Pleskan" }],
},
{
avatar: "https://www.github.com/AlecRust.png",
name: "Alec Rust 🇬🇧",
links: [{ icon: "github", link: "https://github.com/AlecRust" }],
},
];

View File

@ -3,7 +3,7 @@ layout: page
title: Features
---
<script setup lang="ts">
<script setup>
import FeaturePageTitle from "./.vitepress/theme/components/FeaturePageTitle.vue";
import FeaturePageSection from "./.vitepress/theme/components/FeaturePageSection.vue";
import FeatureList from "./.vitepress/theme/components/FeatureList.vue";

View File

@ -3,7 +3,7 @@ layout: page
title: Install
---
<script setup lang="ts">
<script setup>
import InstallPageTitle from "./.vitepress/theme/components/InstallPageTitle.vue";
import InstallOptions from "./.vitepress/theme/components/InstallOptions.vue";
import InstallOptionsSection from "./.vitepress/theme/components/InstallOptionsSection.vue";

View File

@ -4,7 +4,7 @@ layout: page
title: The Team
---
<script setup lang="ts">
<script setup>
import { VPTeamPage, VPTeamPageTitle, VPTeamPageSection, VPTeamMembers } from "vitepress/theme";
import { projectManagers, teamMembers } from "./_data/team";
</script>

268
package-lock.json generated
View File

@ -6,7 +6,7 @@
"packages": {
"": {
"name": "hestia",
"version": "1.8.2~beta",
"version": "1.9.0~alpha",
"hasInstallScript": true,
"license": "GPL-3.0-or-later",
"dependencies": {
@ -19,8 +19,6 @@
},
"devDependencies": {
"@prettier/plugin-php": "^0.19.6",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"cssnano": "^6.0.1",
"esbuild": "^0.18.13",
"eslint": "^8.45.0",
@ -41,7 +39,6 @@
"prettier-plugin-sql": "^0.14.0",
"stylelint": "^15.10.1",
"stylelint-config-standard": "^34.0.0",
"typescript": "^5.1.6",
"vitepress": "1.0.0-beta.5",
"vue": "^3.3.4"
}
@ -1757,12 +1754,6 @@
"node": ">=10.13.0"
}
},
"node_modules/@types/json-schema": {
"version": "7.0.12",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
"integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==",
"dev": true
},
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
@ -1781,210 +1772,12 @@
"integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
"dev": true
},
"node_modules/@types/semver": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
"integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==",
"dev": true
},
"node_modules/@types/web-bluetooth": {
"version": "0.0.17",
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz",
"integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==",
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.0.0.tgz",
"integrity": "sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.5.0",
"@typescript-eslint/scope-manager": "6.0.0",
"@typescript-eslint/type-utils": "6.0.0",
"@typescript-eslint/utils": "6.0.0",
"@typescript-eslint/visitor-keys": "6.0.0",
"debug": "^4.3.4",
"grapheme-splitter": "^1.0.4",
"graphemer": "^1.4.0",
"ignore": "^5.2.4",
"natural-compare": "^1.4.0",
"natural-compare-lite": "^1.4.0",
"semver": "^7.5.0",
"ts-api-utils": "^1.0.1"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
"@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
"eslint": "^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@typescript-eslint/parser": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.0.0.tgz",
"integrity": "sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg==",
"dev": true,
"dependencies": {
"@typescript-eslint/scope-manager": "6.0.0",
"@typescript-eslint/types": "6.0.0",
"@typescript-eslint/typescript-estree": "6.0.0",
"@typescript-eslint/visitor-keys": "6.0.0",
"debug": "^4.3.4"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.0.0.tgz",
"integrity": "sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "6.0.0",
"@typescript-eslint/visitor-keys": "6.0.0"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
"node_modules/@typescript-eslint/type-utils": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.0.0.tgz",
"integrity": "sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==",
"dev": true,
"dependencies": {
"@typescript-eslint/typescript-estree": "6.0.0",
"@typescript-eslint/utils": "6.0.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.0.1"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@typescript-eslint/types": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.0.0.tgz",
"integrity": "sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg==",
"dev": true,
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.0.0.tgz",
"integrity": "sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "6.0.0",
"@typescript-eslint/visitor-keys": "6.0.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
"semver": "^7.5.0",
"ts-api-utils": "^1.0.1"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
"node_modules/@typescript-eslint/utils": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.0.0.tgz",
"integrity": "sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.3.0",
"@types/json-schema": "^7.0.11",
"@types/semver": "^7.3.12",
"@typescript-eslint/scope-manager": "6.0.0",
"@typescript-eslint/types": "6.0.0",
"@typescript-eslint/typescript-estree": "6.0.0",
"eslint-scope": "^5.1.1",
"semver": "^7.5.0"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0"
}
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.0.0.tgz",
"integrity": "sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA==",
"dev": true,
"dependencies": {
"@typescript-eslint/types": "6.0.0",
"eslint-visitor-keys": "^3.4.1"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
}
},
"node_modules/@vitejs/plugin-vue": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz",
@ -3903,19 +3696,6 @@
"semver": "bin/semver.js"
}
},
"node_modules/eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/eslint-visitor-keys": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
@ -4012,15 +3792,6 @@
"node": ">=4.0"
}
},
"node_modules/estraverse": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true,
"engines": {
"node": ">=4.0"
}
},
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
@ -4447,12 +4218,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/grapheme-splitter": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
"dev": true
},
"node_modules/graphemer": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
@ -5780,12 +5545,6 @@
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true
},
"node_modules/natural-compare-lite": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
"integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
"dev": true
},
"node_modules/nearley": {
"version": "2.20.1",
"resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz",
@ -8738,18 +8497,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/ts-api-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz",
"integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==",
"dev": true,
"engines": {
"node": ">=16.13.0"
},
"peerDependencies": {
"typescript": ">=4.2.0"
}
},
"node_modules/tsconfig-paths": {
"version": "3.14.2",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
@ -8806,19 +8553,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/typescript": {
"version": "5.1.6",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
"integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
},
"node_modules/uc.micro": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",

View File

@ -27,8 +27,6 @@
},
"devDependencies": {
"@prettier/plugin-php": "^0.19.6",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"cssnano": "^6.0.1",
"esbuild": "^0.18.13",
"eslint": "^8.45.0",
@ -49,7 +47,6 @@
"prettier-plugin-sql": "^0.14.0",
"stylelint": "^15.10.1",
"stylelint-config-standard": "^34.0.0",
"typescript": "^5.1.6",
"vitepress": "1.0.0-beta.5",
"vue": "^3.3.4"
},