This commit is contained in:
MotorTruck1221 2024-03-09 02:52:11 -07:00
parent bf24bf53c0
commit b8bc307fe7
No known key found for this signature in database
GPG key ID: 06901A625432AC21
13 changed files with 392 additions and 367 deletions

View file

@ -1,66 +1,66 @@
{ {
"name": "nebula", "name": "nebula",
"private": true, "private": true,
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "concurrently \"vite\" \"bare-server-node --port 8080\"", "dev": "concurrently \"vite\" \"bare-server-node --port 8080\"",
"build": "vite build", "build": "vite build",
"bstart": "npm run build && tsx server.ts", "bstart": "npm run build && tsx server.ts",
"start": "tsx server.ts", "start": "tsx server.ts",
"preview": "vite preview", "preview": "vite preview",
"format": "prettier --write ." "format": "prettier --write ."
}, },
"dependencies": { "dependencies": {
"@fastify/compress": "^6.5.0", "@fastify/compress": "^6.5.0",
"@fastify/cookie": "^9.3.1", "@fastify/cookie": "^9.3.1",
"@fastify/static": "^6.12.0", "@fastify/static": "^6.12.0",
"@mercuryworkshop/bare-mux": "^1.0.4", "@mercuryworkshop/bare-mux": "^1.0.4",
"@mercuryworkshop/epoxy-transport": "^1.0.2", "@mercuryworkshop/epoxy-transport": "^1.0.2",
"@mercuryworkshop/libcurl-transport": "^1.2.0", "@mercuryworkshop/libcurl-transport": "^1.2.0",
"@nebula-services/dynamic": "0.7.2-patch.2", "@nebula-services/dynamic": "0.7.2-patch.2",
"@titaniumnetwork-dev/ultraviolet": "^3.0.0", "@titaniumnetwork-dev/ultraviolet": "^3.0.0",
"@tomphttp/bare-server-node": "2.0.3", "@tomphttp/bare-server-node": "2.0.3",
"@tsparticles/engine": "^3.3.0", "@tsparticles/engine": "^3.3.0",
"@tsparticles/react": "^3.0.0", "@tsparticles/react": "^3.0.0",
"@tsparticles/slim": "^3.3.0", "@tsparticles/slim": "^3.3.0",
"@types/express": "^4.17.21", "@types/express": "^4.17.21",
"chalk": "^5.3.0", "chalk": "^5.3.0",
"classnames": "^2.5.1", "classnames": "^2.5.1",
"compression": "^1.7.4", "compression": "^1.7.4",
"cookie-parser": "^1.4.6", "cookie-parser": "^1.4.6",
"crypto-js": "^4.2.0", "crypto-js": "^4.2.0",
"express": "^4.18.3", "express": "^4.18.3",
"fastify": "^4.26.2", "fastify": "^4.26.2",
"framer-motion": "^10.18.0", "framer-motion": "^10.18.0",
"i18next": "^23.10.1", "i18next": "^23.10.1",
"i18next-browser-languagedetector": "^7.2.0", "i18next-browser-languagedetector": "^7.2.0",
"localforage": "^1.10.0", "localforage": "^1.10.0",
"million": "^2.6.4", "million": "^2.6.4",
"preact": "^10.19.6", "preact": "^10.19.6",
"preact-iso": "^2.4.0", "preact-iso": "^2.4.0",
"preact-render-to-string": "^6.4.0", "preact-render-to-string": "^6.4.0",
"preact-router": "^4.1.2", "preact-router": "^4.1.2",
"rammerhead": "https://github.com/NebulaServices/rammerhead/releases/download/rammerhead-1.2.41-nebula.8/rammerhead-1.2.41-nebula.7.tgz", "rammerhead": "https://github.com/NebulaServices/rammerhead/releases/download/rammerhead-1.2.41-nebula.8/rammerhead-1.2.41-nebula.7.tgz",
"react-helmet": "^6.1.0", "react-helmet": "^6.1.0",
"react-i18next": "^13.5.0", "react-i18next": "^13.5.0",
"react-icons": "^4.12.0", "react-icons": "^4.12.0",
"react-toastify": "^9.1.3", "react-toastify": "^9.1.3",
"tsx": "^4.7.1", "tsx": "^4.7.1",
"wisp-server-node": "^1.0.1", "wisp-server-node": "^1.0.1",
"ws": "^8.16.0" "ws": "^8.16.0"
}, },
"devDependencies": { "devDependencies": {
"@preact/preset-vite": "^2.8.1", "@preact/preset-vite": "^2.8.1",
"autoprefixer": "^10.4.18", "autoprefixer": "^10.4.18",
"concurrently": "^8.2.2", "concurrently": "^8.2.2",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"eslint-config-preact": "^1.3.0", "eslint-config-preact": "^1.3.0",
"postcss": "^8.4.35", "postcss": "^8.4.35",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"prettier-plugin-tailwindcss": "^0.5.12", "prettier-plugin-tailwindcss": "^0.5.12",
"tailwindcss": "^3.4.1", "tailwindcss": "^3.4.1",
"typescript": "^5.4.2", "typescript": "^5.4.2",
"vite": "^5.1.5", "vite": "^5.1.5",
"vite-plugin-static-copy": "^1.0.1" "vite-plugin-static-copy": "^1.0.1"
} }
} }

View file

@ -1,110 +1,110 @@
{ {
"particles": { "particles": {
"number": { "number": {
"value": 300, "value": 300,
"density": { "density": {
"enable": true, "enable": true,
"value_area": 800 "value_area": 800
} }
}, },
"color": { "color": {
"value": "#ffffff" "value": "#ffffff"
}, },
"shape": { "shape": {
"type": "circle", "type": "circle",
"stroke": { "stroke": {
"width": 0, "width": 0,
"color": "#000000" "color": "#000000"
}, },
"polygon": { "polygon": {
"nb_sides": 5 "nb_sides": 5
}, },
"image": { "image": {
"src": "img/github.svg", "src": "img/github.svg",
"width": 100, "width": 100,
"height": 100 "height": 100
} }
}, },
"opacity": { "opacity": {
"value": 0.5, "value": 0.5,
"random": false, "random": false,
"anim": { "anim": {
"enable": false, "enable": false,
"speed": 1, "speed": 1,
"opacity_min": 0.1, "opacity_min": 0.1,
"sync": false "sync": false
} }
}, },
"size": { "size": {
"value": 1.5, "value": 1.5,
"random": true, "random": true,
"anim": { "anim": {
"enable": false, "enable": false,
"speed": 40, "speed": 40,
"size_min": 0.1, "size_min": 0.1,
"sync": false "sync": false
} }
}, },
"line_linked": { "line_linked": {
"enable": false, "enable": false,
"distance": 150, "distance": 150,
"color": "#ffffff", "color": "#ffffff",
"opacity": 0.4, "opacity": 0.4,
"width": 1 "width": 1
}, },
"move": { "move": {
"enable": true, "enable": true,
"speed": 6.3974410235905665, "speed": 6.3974410235905665,
"direction": "bottom-right", "direction": "bottom-right",
"random": false, "random": false,
"straight": false, "straight": false,
"out_mode": "out", "out_mode": "out",
"bounce": false, "bounce": false,
"attract": { "attract": {
"enable": false, "enable": false,
"rotateX": 600, "rotateX": 600,
"rotateY": 1200 "rotateY": 1200
} }
} }
}, },
"interactivity": { "interactivity": {
"detect_on": "canvas", "detect_on": "canvas",
"events": { "events": {
"onhover": { "onhover": {
"enable": false, "enable": false,
"mode": "repulse" "mode": "repulse"
}, },
"onclick": { "onclick": {
"enable": false, "enable": false,
"mode": "push" "mode": "push"
}, },
"resize": true "resize": true
}, },
"modes": { "modes": {
"grab": { "grab": {
"distance": 400, "distance": 400,
"line_linked": { "line_linked": {
"opacity": 1 "opacity": 1
} }
}, },
"bubble": { "bubble": {
"distance": 400, "distance": 400,
"size": 40, "size": 40,
"duration": 2, "duration": 2,
"opacity": 8, "opacity": 8,
"speed": 3 "speed": 3
}, },
"repulse": { "repulse": {
"distance": 200, "distance": 200,
"duration": 0.4 "duration": 0.4
}, },
"push": { "push": {
"particles_nb": 4 "particles_nb": 4
}, },
"remove": { "remove": {
"particles_nb": 2 "particles_nb": 2
} }
} }
}, },
"retina_detect": true "retina_detect": true
} }

View file

@ -1,110 +1,110 @@
{ {
"particles": { "particles": {
"number": { "number": {
"value": 80, "value": 80,
"density": { "density": {
"enable": true, "enable": true,
"value_area": 800 "value_area": 800
} }
}, },
"color": { "color": {
"value": "#ffffff" "value": "#ffffff"
}, },
"shape": { "shape": {
"type": "circle", "type": "circle",
"stroke": { "stroke": {
"width": 0, "width": 0,
"color": "#000000" "color": "#000000"
}, },
"polygon": { "polygon": {
"nb_sides": 5 "nb_sides": 5
}, },
"image": { "image": {
"src": "img/github.svg", "src": "img/github.svg",
"width": 100, "width": 100,
"height": 100 "height": 100
} }
}, },
"opacity": { "opacity": {
"value": 0.5, "value": 0.5,
"random": false, "random": false,
"anim": { "anim": {
"enable": false, "enable": false,
"speed": 1, "speed": 1,
"opacity_min": 0.1, "opacity_min": 0.1,
"sync": false "sync": false
} }
}, },
"size": { "size": {
"value": 3, "value": 3,
"random": true, "random": true,
"anim": { "anim": {
"enable": false, "enable": false,
"speed": 40, "speed": 40,
"size_min": 0.1, "size_min": 0.1,
"sync": false "sync": false
} }
}, },
"line_linked": { "line_linked": {
"enable": true, "enable": true,
"distance": 150, "distance": 150,
"color": "#ffffff", "color": "#ffffff",
"opacity": 0.4, "opacity": 0.4,
"width": 1 "width": 1
}, },
"move": { "move": {
"enable": true, "enable": true,
"speed": 6, "speed": 6,
"direction": "none", "direction": "none",
"random": false, "random": false,
"straight": false, "straight": false,
"out_mode": "out", "out_mode": "out",
"bounce": false, "bounce": false,
"attract": { "attract": {
"enable": false, "enable": false,
"rotateX": 600, "rotateX": 600,
"rotateY": 1200 "rotateY": 1200
} }
} }
}, },
"interactivity": { "interactivity": {
"detect_on": "canvas", "detect_on": "canvas",
"events": { "events": {
"onhover": { "onhover": {
"enable": true, "enable": true,
"mode": "repulse" "mode": "repulse"
}, },
"onclick": { "onclick": {
"enable": true, "enable": true,
"mode": "push" "mode": "push"
}, },
"resize": true "resize": true
}, },
"modes": { "modes": {
"grab": { "grab": {
"distance": 400, "distance": 400,
"line_linked": { "line_linked": {
"opacity": 1 "opacity": 1
} }
}, },
"bubble": { "bubble": {
"distance": 400, "distance": 400,
"size": 40, "size": 40,
"duration": 2, "duration": 2,
"opacity": 8, "opacity": 8,
"speed": 3 "speed": 3
}, },
"repulse": { "repulse": {
"distance": 200, "distance": 200,
"duration": 0.4 "duration": 0.4
}, },
"push": { "push": {
"particles_nb": 4 "particles_nb": 4
}, },
"remove": { "remove": {
"particles_nb": 2 "particles_nb": 2
} }
} }
}, },
"retina_detect": true "retina_detect": true
} }

View file

@ -1,30 +1,30 @@
@import url("https://fonts.googleapis.com/css2?family=Dongle&family=Roboto:wght@100&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Dongle&family=Roboto:wght@100&display=swap");
:root { :root {
--background-primary: #000 !important; --background-primary: #000 !important;
--background-lighter: #000 !important; --background-lighter: #000 !important;
--navbar-color: #000 !important; --navbar-color: #000 !important;
--navbar-height: 60px !important; --navbar-height: 60px !important;
--navbar-text-color: greenyellow !important; --navbar-text-color: greenyellow !important;
--navbar-link-color: greenyellow !important; --navbar-link-color: greenyellow !important;
--navbar-link-hover-color: green !important; --navbar-link-hover-color: green !important;
--navbar-font: "Roboto" !important; --navbar-font: "Roboto" !important;
--input-text-color: greenyellow !important; --input-text-color: greenyellow !important;
--input-placeholder-color: white !important; --input-placeholder-color: white !important;
--input-background-color: #000 !important; --input-background-color: #000 !important;
--input-border-color: greenyellow !important; --input-border-color: greenyellow !important;
--input-border-size: 1.3px !important; --input-border-size: 1.3px !important;
--navbar-logo-filter: none !important; --navbar-logo-filter: none !important;
--dropdown-option-hover-color: #312a49 !important; --dropdown-option-hover-color: #312a49 !important;
--tab-color: var(--black) !important; --tab-color: var(--black) !important;
--border-color: greenyellow !important; --border-color: greenyellow !important;
} }
.font-inter { .font-inter {
font-family: "Inter", sans-serif; font-family: "Inter", sans-serif;
font-weight: 300; font-weight: 300;
} }
.font-roboto { .font-roboto {
font-family: "Roboto"; font-family: "Roboto";
} }

View file

@ -123,14 +123,16 @@ async function MasqFail(req: Request, res: Response) {
return; return;
}) */ }) */
app.use(express.static("dist", { app.use(
express.static("dist", {
//force .cjs files to be served as text/javascript (libcurl) //force .cjs files to be served as text/javascript (libcurl)
setHeaders: (res, path) => { setHeaders: (res, path) => {
if (path.endsWith(".cjs")) { if (path.endsWith(".cjs")) {
res.setHeader("Content-Type", "text/javascript"); res.setHeader("Content-Type", "text/javascript");
} }
} }
})); })
);
app.get("/search=:query", async (req: Request, res: Response) => { app.get("/search=:query", async (req: Request, res: Response) => {
const { query } = req.params; const { query } = req.params;

View file

@ -18,13 +18,11 @@ export function Header() {
return ( return (
<div <div
id="navbar" id="navbar"
className="flex h-16 flex-row items-center justify-between bg-navbar-color px-4 border-b-2 border-border-color " className="flex h-16 flex-row items-center justify-between border-b-2 border-border-color bg-navbar-color px-4 "
> >
<Link href="/" className="w-1/8"> <Link href="/" className="w-1/8">
<div className="relative flex flex-row items-center"> <div className="relative flex flex-row items-center">
<div <div className="h-16 w-16 fill-navbar-text-color transition-all duration-1000 hover:rotate-[360deg]">
className="h-16 w-16 transition-all duration-1000 hover:rotate-[360deg] fill-navbar-text-color"
>
<Logo /> <Logo />
</div> </div>
<h1 className="font-roboto invisible whitespace-nowrap text-2xl font-bold text-navbar-text-color sm:visible sm:text-4xl"> <h1 className="font-roboto invisible whitespace-nowrap text-2xl font-bold text-navbar-text-color sm:visible sm:text-4xl">

View file

@ -98,7 +98,7 @@ export function IframeHeader(props: { url: string }) {
<div> <div>
<div <div
id="iframeNav" id="iframeNav"
className="flex h-16 flex-row items-center justify-between gap-3 bg-navbar-color px-4 border-b-2 border-border-color" className="flex h-16 flex-row items-center justify-between gap-3 border-b-2 border-border-color bg-navbar-color px-4"
> >
<div className="w-1/8"> <div className="w-1/8">
<div className="flex flex-row items-center"> <div className="flex flex-row items-center">

View file

@ -1,10 +1,22 @@
export const Logo = () => { export const Logo = () => {
return( return (
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400" style="width: 100%; height: 100%;"> <svg
<title>nebula</title> version="1.2"
<g id="svgg"> xmlns="http://www.w3.org/2000/svg"
<path id="path0" fill-rule="evenodd" class="s0" d="m213.6 84c1 0.3 3.4 0.7 5.1 1 1.8 0.2 4.1 0.7 5.2 1 13.2 4.1 20.3 6.8 24.5 9.1 0.6 0.3 2.3 1.2 3.8 2 2.8 1.4 13.1 8 14.4 9.2 0.5 0.3 2.3 1.9 4.2 3.5 6.7 5.5 15.5 14.9 19.2 20.4 1 1.4 2 2.7 2.2 2.8 0.3 0.1 0.5 0.5 0.5 0.8 0 0.3 1.2 2.2 2.5 4.3 2.3 3.4 7.8 14.3 9.8 19.3 0.8 2.1 0.9 2.2 10 4.9 5.6 1.6 11.1 3.4 11.7 3.8 0.3 0.2 2.4 1.1 4.7 1.9 11.1 4.1 23 12.5 27.3 19.4 5.5 8.7 3.6 20.5-4.5 28.5-3.1 3-7.5 6.4-8.4 6.4-0.3 0-0.7 0.2-0.8 0.5-1.1 2.3-23.3 11.2-35.9 14.3-3.2 0.9-3.5 1.2-5.7 6.8-7.5 19-25.5 40.6-42.3 51.1-1.6 1-3.1 2-3.3 2.2-0.1 0.2-0.9 0.7-1.7 1.2-0.8 0.4-2.2 1.2-2.9 1.6-0.8 0.4-1.6 1-1.8 1.1-0.5 0.5-4.1 2.2-8.1 3.9-1.8 0.8-3.8 1.6-4.5 2-0.7 0.3-3.1 1.1-5.2 1.8-8.3 2.6-9.8 3-21 4.9-6.4 1.1-25.3 1.3-30.5 0.3-1.9-0.3-5.8-1.1-8.6-1.6-6.8-1.3-12.7-3-20-5.7-3.3-1.2-18-8.8-19.7-10.1-0.9-0.7-4.1-3.1-7.1-5.2-5.7-4.1-17.9-15.9-20.7-20-0.9-1.2-2-2.7-2.5-3.2-3.2-3.3-13.7-21.7-13.7-24.1 0-0.6-0.2-1.2-0.6-1.4-0.3-0.2-0.8-1.2-1-2.3-0.4-1.9-1.7-2.7-6.5-3.8-23.2-5.6-43.1-17.2-48.6-28.5-7.1-14.4 4.5-31.3 27.3-39.7 1.8-0.7 4.1-1.6 5.2-2 3.7-1.5 8-2.9 19.5-6.2 1.6-0.5 2.8-1.2 2.8-1.7 0-2.4 9.8-21.6 13.1-25.7 0.2-0.4 1.4-1.8 2.5-3.2 13.8-18.1 30.2-30.6 50.6-38.8 4.3-1.7 6-2.3 14.3-4.5 5.5-1.6 11.2-2.4 18.4-2.9 7.9-0.5 24-0.2 26.8 0.6zm-29.7 17.3c-0.2 0.1-7.3 1.7-12.9 2.7-1.7 0.4-4.3 1.2-5.8 1.9-1.5 0.6-3.9 1.5-5.5 2-1.5 0.4-3.3 1.3-4 2-0.7 0.7-1.7 1.2-2.3 1.2-1.2 0-9.5 4.5-9.8 5.3-0.2 0.3-0.5 0.6-0.9 0.6-1.9 0-19.6 16-23.8 21.6-9.3 12.2-16.1 27.4-19.2 42.7-2 10.1-1.1 37.5 1.4 41.4 0 0.1 3.7 0.9 8.1 1.8 9.5 1.9 12.8 2.4 34.6 4.9 38.5 4.5 107.9 2.2 138.3-4.5 1.4-0.3 4.1-0.9 6.1-1.3 4.2-0.8 3.4 0.2 4.9-7.1 1.6-8.3 1.7-27 0.1-34.6-1.5-7.1-3.2-13.4-3.7-14.2-0.3-0.4-0.7-1.5-0.9-2.6-2.8-12.1-19.2-34.1-33-44.3-2.9-2.1-5.5-4-5.8-4.3-2.8-2.2-4.9-3.1-7.2-3.1-2.1 0-2.6-0.2-2.7-1.3-0.2-1.5-5.7-4.5-6.3-3.5-0.7 1.1-2.4 0.6-2.7-0.7-0.4-1.3-1.2-1.6-5.8-2.1-1.6-0.2-4-0.9-5.5-1.6-3.9-1.8-5.3-2.2-10.2-2.6-4.6-0.4-25.2-0.7-25.5-0.3zm74.3 42.2c7.4 9.8 4.8 23.5-4.6 24.9-6.9 1-20.9-5.8-21-10.2 0-0.2-0.3-0.8-0.8-1.3-6.4-6.8-5-20.8 2.4-24.1 6.7-2.9 17.2 1.8 24 10.7zm-176.4 36.4c-0.1-0.1-4.6 1.1-5.9 1.6-0.7 0.3-3 1.2-5.1 2-9.9 3.8-15.1 6.8-19.6 11.5-3.4 3.5-3.3 4.5 0.5 8.7 1 1 11.3 7.6 12 7.6 0.2 0 1.7 0.6 3.4 1.3 1.6 0.8 3.6 1.6 4.3 1.9 1.8 0.8 9.3 3.3 9.9 3.3 0.3 0 0.3-2 0-4.4-0.6-5.6-0.6-24.5 0.1-29.6 0.3-2.1 0.5-3.9 0.4-3.9zm229.3-0.3c-0.2 0 0 1 0.2 2.1 0.6 2.8 0.6 31.3 0 34-0.5 2.2-0.4 2.2 1.3 1.8 3.1-0.7 12.9-4.5 18.3-7 8.5-4 14.3-10.1 12.6-13.3-1.1-2.1-6.7-7.2-7.9-7.2-0.4 0-0.9-0.2-1-0.5-0.4-1.1-11.8-6.1-19.2-8.5-2.3-0.7-4.2-1.4-4.3-1.4zm-199.4 63.4l-3.1-0.4 1.8 3.2c0.9 1.8 1.9 3.4 2.2 3.5 0.3 0.1 0.5 0.6 0.5 1.1 0 0.4 0.6 1.5 1.3 2.3 0.7 0.9 1.5 1.9 1.8 2.2 0.3 0.4 0.8 1.2 1.1 1.7 6.2 10.7 35.6 33.5 43.3 33.5 0.2 0 1.3 0.4 2.5 0.9 2.5 1.2 10.6 3.4 15.3 4.2 9.5 1.8 11.6 2.1 17.4 2.1 6.6 0 16.4-1.3 22.9-3 2.2-0.5 5.2-1.3 6.8-1.7 1.6-0.3 3.2-0.9 3.5-1.2 0.4-0.3 1.1-0.6 1.6-0.6 2.3 0 22-10.6 24-12.9 0.2-0.2 2.2-1.9 4.5-3.7 5.7-4.5 11.8-11 17.1-18.4 1.6-2.3 3.2-4.5 3.6-4.9 0.4-0.4 0.7-1 0.7-1.2 0-0.2 0.8-1.9 1.9-3.6 1.1-1.7 1.9-3.2 1.9-3.4 0-0.2-3.8 0.4-11 1.6-31.7 5.4-85.1 6.7-126.9 3.1-9.6-0.8-23.1-2.3-27.8-3.2-2.2-0.4-5.3-0.9-6.9-1.2z"/> viewBox="0 0 400 400"
</g> width="400"
</svg> height="400"
) style="width: 100%; height: 100%;"
} >
<title>nebula</title>
<g id="svgg">
<path
id="path0"
fill-rule="evenodd"
class="s0"
d="m213.6 84c1 0.3 3.4 0.7 5.1 1 1.8 0.2 4.1 0.7 5.2 1 13.2 4.1 20.3 6.8 24.5 9.1 0.6 0.3 2.3 1.2 3.8 2 2.8 1.4 13.1 8 14.4 9.2 0.5 0.3 2.3 1.9 4.2 3.5 6.7 5.5 15.5 14.9 19.2 20.4 1 1.4 2 2.7 2.2 2.8 0.3 0.1 0.5 0.5 0.5 0.8 0 0.3 1.2 2.2 2.5 4.3 2.3 3.4 7.8 14.3 9.8 19.3 0.8 2.1 0.9 2.2 10 4.9 5.6 1.6 11.1 3.4 11.7 3.8 0.3 0.2 2.4 1.1 4.7 1.9 11.1 4.1 23 12.5 27.3 19.4 5.5 8.7 3.6 20.5-4.5 28.5-3.1 3-7.5 6.4-8.4 6.4-0.3 0-0.7 0.2-0.8 0.5-1.1 2.3-23.3 11.2-35.9 14.3-3.2 0.9-3.5 1.2-5.7 6.8-7.5 19-25.5 40.6-42.3 51.1-1.6 1-3.1 2-3.3 2.2-0.1 0.2-0.9 0.7-1.7 1.2-0.8 0.4-2.2 1.2-2.9 1.6-0.8 0.4-1.6 1-1.8 1.1-0.5 0.5-4.1 2.2-8.1 3.9-1.8 0.8-3.8 1.6-4.5 2-0.7 0.3-3.1 1.1-5.2 1.8-8.3 2.6-9.8 3-21 4.9-6.4 1.1-25.3 1.3-30.5 0.3-1.9-0.3-5.8-1.1-8.6-1.6-6.8-1.3-12.7-3-20-5.7-3.3-1.2-18-8.8-19.7-10.1-0.9-0.7-4.1-3.1-7.1-5.2-5.7-4.1-17.9-15.9-20.7-20-0.9-1.2-2-2.7-2.5-3.2-3.2-3.3-13.7-21.7-13.7-24.1 0-0.6-0.2-1.2-0.6-1.4-0.3-0.2-0.8-1.2-1-2.3-0.4-1.9-1.7-2.7-6.5-3.8-23.2-5.6-43.1-17.2-48.6-28.5-7.1-14.4 4.5-31.3 27.3-39.7 1.8-0.7 4.1-1.6 5.2-2 3.7-1.5 8-2.9 19.5-6.2 1.6-0.5 2.8-1.2 2.8-1.7 0-2.4 9.8-21.6 13.1-25.7 0.2-0.4 1.4-1.8 2.5-3.2 13.8-18.1 30.2-30.6 50.6-38.8 4.3-1.7 6-2.3 14.3-4.5 5.5-1.6 11.2-2.4 18.4-2.9 7.9-0.5 24-0.2 26.8 0.6zm-29.7 17.3c-0.2 0.1-7.3 1.7-12.9 2.7-1.7 0.4-4.3 1.2-5.8 1.9-1.5 0.6-3.9 1.5-5.5 2-1.5 0.4-3.3 1.3-4 2-0.7 0.7-1.7 1.2-2.3 1.2-1.2 0-9.5 4.5-9.8 5.3-0.2 0.3-0.5 0.6-0.9 0.6-1.9 0-19.6 16-23.8 21.6-9.3 12.2-16.1 27.4-19.2 42.7-2 10.1-1.1 37.5 1.4 41.4 0 0.1 3.7 0.9 8.1 1.8 9.5 1.9 12.8 2.4 34.6 4.9 38.5 4.5 107.9 2.2 138.3-4.5 1.4-0.3 4.1-0.9 6.1-1.3 4.2-0.8 3.4 0.2 4.9-7.1 1.6-8.3 1.7-27 0.1-34.6-1.5-7.1-3.2-13.4-3.7-14.2-0.3-0.4-0.7-1.5-0.9-2.6-2.8-12.1-19.2-34.1-33-44.3-2.9-2.1-5.5-4-5.8-4.3-2.8-2.2-4.9-3.1-7.2-3.1-2.1 0-2.6-0.2-2.7-1.3-0.2-1.5-5.7-4.5-6.3-3.5-0.7 1.1-2.4 0.6-2.7-0.7-0.4-1.3-1.2-1.6-5.8-2.1-1.6-0.2-4-0.9-5.5-1.6-3.9-1.8-5.3-2.2-10.2-2.6-4.6-0.4-25.2-0.7-25.5-0.3zm74.3 42.2c7.4 9.8 4.8 23.5-4.6 24.9-6.9 1-20.9-5.8-21-10.2 0-0.2-0.3-0.8-0.8-1.3-6.4-6.8-5-20.8 2.4-24.1 6.7-2.9 17.2 1.8 24 10.7zm-176.4 36.4c-0.1-0.1-4.6 1.1-5.9 1.6-0.7 0.3-3 1.2-5.1 2-9.9 3.8-15.1 6.8-19.6 11.5-3.4 3.5-3.3 4.5 0.5 8.7 1 1 11.3 7.6 12 7.6 0.2 0 1.7 0.6 3.4 1.3 1.6 0.8 3.6 1.6 4.3 1.9 1.8 0.8 9.3 3.3 9.9 3.3 0.3 0 0.3-2 0-4.4-0.6-5.6-0.6-24.5 0.1-29.6 0.3-2.1 0.5-3.9 0.4-3.9zm229.3-0.3c-0.2 0 0 1 0.2 2.1 0.6 2.8 0.6 31.3 0 34-0.5 2.2-0.4 2.2 1.3 1.8 3.1-0.7 12.9-4.5 18.3-7 8.5-4 14.3-10.1 12.6-13.3-1.1-2.1-6.7-7.2-7.9-7.2-0.4 0-0.9-0.2-1-0.5-0.4-1.1-11.8-6.1-19.2-8.5-2.3-0.7-4.2-1.4-4.3-1.4zm-199.4 63.4l-3.1-0.4 1.8 3.2c0.9 1.8 1.9 3.4 2.2 3.5 0.3 0.1 0.5 0.6 0.5 1.1 0 0.4 0.6 1.5 1.3 2.3 0.7 0.9 1.5 1.9 1.8 2.2 0.3 0.4 0.8 1.2 1.1 1.7 6.2 10.7 35.6 33.5 43.3 33.5 0.2 0 1.3 0.4 2.5 0.9 2.5 1.2 10.6 3.4 15.3 4.2 9.5 1.8 11.6 2.1 17.4 2.1 6.6 0 16.4-1.3 22.9-3 2.2-0.5 5.2-1.3 6.8-1.7 1.6-0.3 3.2-0.9 3.5-1.2 0.4-0.3 1.1-0.6 1.6-0.6 2.3 0 22-10.6 24-12.9 0.2-0.2 2.2-1.9 4.5-3.7 5.7-4.5 11.8-11 17.1-18.4 1.6-2.3 3.2-4.5 3.6-4.9 0.4-0.4 0.7-1 0.7-1.2 0-0.2 0.8-1.9 1.9-3.6 1.1-1.7 1.9-3.2 1.9-3.4 0-0.2-3.8 0.4-11 1.6-31.7 5.4-85.1 6.7-126.9 3.1-9.6-0.8-23.1-2.3-27.8-3.2-2.2-0.4-5.3-0.9-6.9-1.2z"
/>
</g>
</svg>
);
};

View file

@ -14,26 +14,26 @@ const theme = localStorage.getItem("theme") || "main";
const particlesUrl = localStorage.getItem("particles") || "none"; const particlesUrl = localStorage.getItem("particles") || "none";
export default function App() { export default function App() {
const [ init, setInit ] = useState(false); const [init, setInit] = useState(false);
// this should be run only once per application lifetime // this should be run only once per application lifetime
useEffect(() => { useEffect(() => {
initParticlesEngine(async (engine) => { initParticlesEngine(async (engine) => {
// you can initiate the tsParticles instance (engine) here, adding custom shapes or presets // you can initiate the tsParticles instance (engine) here, adding custom shapes or presets
// this loads the tsparticles package bundle, it's the easiest method for getting everything ready // this loads the tsparticles package bundle, it's the easiest method for getting everything ready
// starting from v2 you can add only the features you need reducing the bundle size // starting from v2 you can add only the features you need reducing the bundle size
//await loadAll(engine); //await loadAll(engine);
//await loadFull(engine); //await loadFull(engine);
await loadSlim(engine); await loadSlim(engine);
//await loadBasic(engine); //await loadBasic(engine);
}).then(() => { }).then(() => {
setInit(true); setInit(true);
}); });
}, []); }, []);
const particlesLoaded = (container) => { const particlesLoaded = (container) => {
console.log(container); console.log(container);
}; };
return ( return (
<div class="w-srceen h-screen"> <div class="w-srceen h-screen">
@ -44,11 +44,18 @@ export default function App() {
<link rel="stylesheet" href="/themes/main.css"></link> <link rel="stylesheet" href="/themes/main.css"></link>
</Helmet> </Helmet>
<Suspense fallback={<LoadSuspense />}> <Suspense fallback={<LoadSuspense />}>
<div className="z-20 absolute w-full h-full"> <div className="absolute z-20 h-full w-full">
<Routes /> <Routes />
</div> </div>
<div className="z-10 bg-primary w-full h-full"> <div className="z-10 h-full w-full bg-primary">
{init && particlesUrl !== "none" && <Particles id="tsparticles" url={particlesUrl} particlesLoaded={particlesLoaded} class="bg-primary" /> } {init && particlesUrl !== "none" && (
<Particles
id="tsparticles"
url={particlesUrl}
particlesLoaded={particlesLoaded}
class="bg-primary"
/>
)}
</div> </div>
</Suspense> </Suspense>
</div> </div>

View file

@ -33,7 +33,10 @@ const Proxy = ({ id, active }) => {
(location.protocol === "https:" ? "wss://" : "ws://") + (location.protocol === "https:" ? "wss://" : "ws://") +
location.host + location.host +
"/wisp/"; "/wisp/";
const transports = [{ id: "epoxy", label: "Epoxy" }, { id: "libcurl", label: "Libcurl" }]; const transports = [
{ id: "epoxy", label: "Epoxy" },
{ id: "libcurl", label: "Libcurl" }
];
return ( return (
<motion.div <motion.div

View file

@ -6,4 +6,4 @@
body { body {
background-color: var(--background-primary) !important; background-color: var(--background-primary) !important;
} }

View file

@ -18,10 +18,13 @@ function changeTransport(transport: string, wispUrl: string) {
SetTransport("EpxMod.EpoxyClient", { wisp: wispUrl }); SetTransport("EpxMod.EpoxyClient", { wisp: wispUrl });
break; break;
case "libcurl": case "libcurl":
localStorage.setItem("transport", "libcurl"); localStorage.setItem("transport", "libcurl");
console.log("Setting transport to Libcurl"); console.log("Setting transport to Libcurl");
SetTransport("CurlMod.LibcurlClient", { wisp: wispUrl, wasm: "/libcurl.wasm" }); SetTransport("CurlMod.LibcurlClient", {
break; wisp: wispUrl,
wasm: "/libcurl.wasm"
});
break;
//stuff like bare-as-module3 COULD also be added //stuff like bare-as-module3 COULD also be added
default: default:
SetTransport("EpxMod.EpoxyClient", { wisp: wispUrl }); SetTransport("EpxMod.EpoxyClient", { wisp: wispUrl });

View file

@ -5,7 +5,7 @@ import { viteStaticCopy } from "vite-plugin-static-copy";
import { uvPath } from "@titaniumnetwork-dev/ultraviolet"; import { uvPath } from "@titaniumnetwork-dev/ultraviolet";
import { dynamicPath } from "@nebula-services/dynamic"; import { dynamicPath } from "@nebula-services/dynamic";
import { epoxyPath } from "@mercuryworkshop/epoxy-transport"; import { epoxyPath } from "@mercuryworkshop/epoxy-transport";
import { libcurlPath } from "@mercuryworkshop/libcurl-transport" import { libcurlPath } from "@mercuryworkshop/libcurl-transport";
import path from "path"; import path from "path";
const __dirname = path.resolve(); const __dirname = path.resolve();
@ -24,9 +24,9 @@ export default defineConfig({
overwrite: false overwrite: false
}, },
{ {
src: `${libcurlPath}/**/*`.replace(/\\/g, "/"), src: `${libcurlPath}/**/*`.replace(/\\/g, "/"),
dest: "libcurl", dest: "libcurl",
overwrite: false overwrite: false
}, },
{ {
src: `${dynamicPath}/dynamic.*.js`.replace(/\\/g, "/"), src: `${dynamicPath}/dynamic.*.js`.replace(/\\/g, "/"),