epoxy works but everything else is womp womp for now
This commit is contained in:
parent
c8f4ceff9c
commit
9559f0986e
10 changed files with 103 additions and 41 deletions
12
index.js
12
index.js
|
|
@ -1,6 +1,7 @@
|
|||
import { uvPath } from "@titaniumnetwork-dev/ultraviolet";
|
||||
import { epoxyPath } from "@mercuryworkshop/epoxy-transport";
|
||||
import { baremuxPath } from "@mercuryworkshop/bare-mux";
|
||||
import { libcurlPath } from "@mercuryworkshop/libcurl-transport";
|
||||
import { createBareServer } from "@tomphttp/bare-server-node";
|
||||
import express from "express";
|
||||
import { createServer } from "http";
|
||||
|
|
@ -16,7 +17,7 @@ import wisp from "wisp-server-node";
|
|||
dotenv.config();
|
||||
|
||||
const LICENSE_SERVER_URL = "https://license.mercurywork.shop/validate?license=";
|
||||
const whiteListedDomains = ["aluu.xyz"]; // Add any public domains you have here
|
||||
const whiteListedDomains = ["aluu.xyz", "localhost:3000"]; // Add any public domains you have here
|
||||
const failureFile = fs.readFileSync("Checkfailed.html", "utf8");
|
||||
|
||||
if (!existsSync("./dist")) build();
|
||||
|
|
@ -73,15 +74,15 @@ async function MasqFail(req, res) {
|
|||
|
||||
// Woooooo masqr yayyyy (said no one)
|
||||
// uncomment for masqr
|
||||
/* app.use(async (req, res, next) => {
|
||||
app.use(async (req, res, next) => {
|
||||
if (req.headers.host && whiteListedDomains.includes(req.headers.host)) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
if (req.url.includes("/bare/")) { // replace this with your bare endpoint
|
||||
// set this to your bare endpoint
|
||||
if (req.url.includes("/bare/")) {
|
||||
next();
|
||||
return;
|
||||
// Bypass for UV and other bares
|
||||
}
|
||||
|
||||
const authheader = req.headers.authorization;
|
||||
|
|
@ -121,7 +122,7 @@ async function MasqFail(req, res) {
|
|||
|
||||
MasqFail(req, res)
|
||||
return;
|
||||
}) */
|
||||
})
|
||||
|
||||
|
||||
app.use(express.static(path.join(process.cwd(), "static")));
|
||||
|
|
@ -129,6 +130,7 @@ app.use(express.static(path.join(process.cwd(), "build")));
|
|||
app.use("/uv/", express.static(uvPath));
|
||||
app.use("/epoxy/", express.static(epoxyPath));
|
||||
app.use("/baremux/", express.static(baremuxPath));
|
||||
app.use("/libcurl/", express.static(libcurlPath));
|
||||
app.use(express.json());
|
||||
app.use(
|
||||
express.urlencoded({
|
||||
|
|
|
|||
41
package-lock.json
generated
41
package-lock.json
generated
|
|
@ -11,9 +11,11 @@
|
|||
"@astrojs/node": "^8.2.0",
|
||||
"@mercuryworkshop/bare-mux": "^1.0.4",
|
||||
"@mercuryworkshop/epoxy-transport": "^1.0.2",
|
||||
"@mercuryworkshop/libcurl-transport": "^1.1.0",
|
||||
"@nebula-services/ultraviolet": "^1.0.1-1.patch.7",
|
||||
"@titaniumnetwork-dev/ultraviolet": "^3.0.0",
|
||||
"@tomphttp/bare-server-node": "^2.0.1",
|
||||
"@tomphttp/bare-client": "^2.2.0-alpha",
|
||||
"@tomphttp/bare-server-node": "^2.0.3",
|
||||
"astro": "^4.4.1",
|
||||
"chalk": "^5.3.0",
|
||||
"compression": "^1.7.4",
|
||||
|
|
@ -963,6 +965,19 @@
|
|||
"ws": "8.16.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@mercuryworkshop/libcurl-transport": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@mercuryworkshop/libcurl-transport/-/libcurl-transport-1.1.0.tgz",
|
||||
"integrity": "sha512-332LEbSI19dJJa7TQ+A9ODUUFITh0t/ozD2QDG/OL7x0ESKYHkKUjoY7ZFQTdrFH7alHnjNqj0yyuKzYoWH8Mw==",
|
||||
"dependencies": {
|
||||
"esbuild-plugin-umd-wrapper": "^2.0.0",
|
||||
"libcurl.js": "^0.4.1",
|
||||
"rollup": "^4.12.0",
|
||||
"rollup-plugin-node-resolve": "^5.2.0",
|
||||
"rollup-plugin-typescript2": "^0.36.0",
|
||||
"ws": "8.16.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@nebula-services/bare-client": {
|
||||
"version": "1.1.2-beta.3-patch.1",
|
||||
"resolved": "https://registry.npmjs.org/@nebula-services/bare-client/-/bare-client-1.1.2-beta.3-patch.1.tgz",
|
||||
|
|
@ -1332,17 +1347,21 @@
|
|||
"uuid": "dist/bin/uuid"
|
||||
}
|
||||
},
|
||||
"node_modules/@tomphttp/bare-client": {
|
||||
"version": "2.2.0-alpha",
|
||||
"resolved": "https://registry.npmjs.org/@tomphttp/bare-client/-/bare-client-2.2.0-alpha.tgz",
|
||||
"integrity": "sha512-xhcflOpwr92tkpp8SoDhB3nK3LHMBIjx+vgow37XobQew2k0/mXSxmaU7BsDFpOIa1CcLCEsR8gWn0v7Cy9+7Q=="
|
||||
},
|
||||
"node_modules/@tomphttp/bare-server-node": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@tomphttp/bare-server-node/-/bare-server-node-2.0.1.tgz",
|
||||
"integrity": "sha512-L42TC/AldYRFBRZSxhkI0FC5TL8EC/NAsepNC/cWYTTiHQJ7mGg/vdTqNz8ShTYHr6LTHYkuD3/81nhX55SYtA==",
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@tomphttp/bare-server-node/-/bare-server-node-2.0.3.tgz",
|
||||
"integrity": "sha512-IGzZspDwzto+oPsvlV99OALJKH3X1nRWnpBE8EY6nrqu5I83xw3uSUacEdHNnW4rXG0IQ8vZwMH87VOMoArJ3A==",
|
||||
"dependencies": {
|
||||
"async-exit-hook": "^2.0.1",
|
||||
"commander": "^10.0.1",
|
||||
"dotenv": "^16.0.3",
|
||||
"headers-polyfill": "^3.1.2",
|
||||
"http-errors": "^2.0.0",
|
||||
"ipaddr.js": "^2.0.1",
|
||||
"ipaddr.js": "^2.1.0",
|
||||
"source-map-support": "^0.5.21",
|
||||
"ws": "^8.13.0"
|
||||
},
|
||||
|
|
@ -3780,11 +3799,6 @@
|
|||
"url": "https://opencollective.com/unified"
|
||||
}
|
||||
},
|
||||
"node_modules/headers-polyfill": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.3.0.tgz",
|
||||
"integrity": "sha512-5e57etwBpNcDc0b6KCVWEh/Ro063OxPvzVimUdM0/tsYM/T7Hfy3kknIGj78SFTOhNd8AZY41U8mOHoO4LzmIQ=="
|
||||
},
|
||||
"node_modules/html-escaper": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz",
|
||||
|
|
@ -4267,6 +4281,11 @@
|
|||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/libcurl.js": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/libcurl.js/-/libcurl.js-0.4.2.tgz",
|
||||
"integrity": "sha512-WuL2EgeYVuSsHFeJhpq83pOMX8+ei1E4Vpym7SKz6vPvuOEK9TBDCZRXDN/zr9o4T9UIy0FXxwpIEyHvSBNGmA=="
|
||||
},
|
||||
"node_modules/load-yaml-file": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz",
|
||||
|
|
|
|||
|
|
@ -12,9 +12,11 @@
|
|||
"@astrojs/node": "^8.2.0",
|
||||
"@mercuryworkshop/bare-mux": "^1.0.4",
|
||||
"@mercuryworkshop/epoxy-transport": "^1.0.2",
|
||||
"@mercuryworkshop/libcurl-transport": "^1.1.0",
|
||||
"@nebula-services/ultraviolet": "^1.0.1-1.patch.7",
|
||||
"@titaniumnetwork-dev/ultraviolet": "^3.0.0",
|
||||
"@tomphttp/bare-server-node": "^2.0.1",
|
||||
"@tomphttp/bare-client": "^2.2.0-alpha",
|
||||
"@tomphttp/bare-server-node": "^2.0.3",
|
||||
"astro": "^4.4.1",
|
||||
"chalk": "^5.3.0",
|
||||
"compression": "^1.7.4",
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
---
|
||||
const { buttonNameDefault, dropdownList, id } = Astro.props;
|
||||
const { buttonNameDefault, dropdownList, id, localStorageKey } = Astro.props;
|
||||
---
|
||||
|
||||
<div class="dropdown">
|
||||
<button id={id} class="dropdown-toggle" type="button" data-toggle="dropdown">
|
||||
<button data-local-storage-key={localStorageKey} id={id} class="dropdown-toggle" type="button" data-toggle="dropdown">
|
||||
{buttonNameDefault}
|
||||
<span class="caret"></span></button
|
||||
>
|
||||
<span class="caret"></span></button>
|
||||
<ul class="dropdown-menu" id={id + "-menu"}>
|
||||
{
|
||||
dropdownList.map((item: any) => {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ const t = useTranslations(lang);
|
|||
z-index: 10;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
box-shadow: -2px 5px 10px 0px var(--accent-color);
|
||||
}
|
||||
|
||||
.left,
|
||||
|
|
|
|||
|
|
@ -25,6 +25,12 @@ const openPageWith = [
|
|||
{ name: "About:Blank", value: "about:blank" },
|
||||
{ name: t("settings.proxy.openPageWith.newTab"), value: "newTab" },
|
||||
];
|
||||
|
||||
const transportsList = [
|
||||
{ name: "Bare", value: "BareMod.BareClient" },
|
||||
{ name: "Epoxy", value: "EpxMod.EpoxyClient" },
|
||||
{ name: "Libcurl", value: "CurlMod.LibcurlClient" }
|
||||
]
|
||||
---
|
||||
|
||||
<div class="settings-container">
|
||||
|
|
@ -33,7 +39,7 @@ const openPageWith = [
|
|||
<Dropdown
|
||||
buttonNameDefault="Ultraviolet"
|
||||
dropdownList={proxyList}
|
||||
,
|
||||
localStorageKey="alu__selectedProxy"
|
||||
id="dropdown__selected-proxy"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -42,7 +48,7 @@ const openPageWith = [
|
|||
<Dropdown
|
||||
buttonNameDefault="Google"
|
||||
dropdownList={searchEngineList}
|
||||
,
|
||||
localStorageKey="alu__searchEngine"
|
||||
id="dropdown__search-engine"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -51,10 +57,19 @@ const openPageWith = [
|
|||
<Dropdown
|
||||
buttonNameDefault={t("settings.proxy.openPageWith.embed")}
|
||||
dropdownList={openPageWith}
|
||||
,
|
||||
localStorageKey="alu__selectedOpenWith"
|
||||
id="dropdown__open-with"
|
||||
/>
|
||||
</div>
|
||||
<div class="setting__transport">
|
||||
<label class="setting-label">{t("settings.proxy.selectedTransport")}</label>
|
||||
<Dropdown
|
||||
buttonNameDefault="Bare"
|
||||
dropdownList={transportsList}
|
||||
localStorageKey="alu__selectedTransport"
|
||||
id="dropdown__transport"
|
||||
/>
|
||||
</div>
|
||||
<div class="setting__bare-url">
|
||||
<label class="setting-label" for="bare-url-input">{t("settings.proxy.bareURL")}</label>
|
||||
<Input inputName="bare-url" height="50px" />
|
||||
|
|
|
|||
|
|
@ -297,6 +297,7 @@ const t = useTranslations(lang);
|
|||
let selectedProxyDropdown = document.getElementById("dropdown__selected-proxy-menu");
|
||||
let searchEngineDropdown = document.getElementById("dropdown__search-engine-menu");
|
||||
let openWithDropdown = document.getElementById("dropdown__open-with-menu");
|
||||
let currentTransportDropdown = document.getElementById("dropdown__transport-menu");
|
||||
let bareUrlInput = document.getElementById("bare-url-input");
|
||||
let searxngUrlInput = document.getElementById("searxng-url-input");
|
||||
let savedSearxngUrl = localStorage.getItem("alu__searxngUrl");
|
||||
|
|
@ -308,22 +309,31 @@ const t = useTranslations(lang);
|
|||
// Proxy settings
|
||||
applyInputListeners(bareUrlInput, "alu__bareUrl");
|
||||
applyInputListeners(searxngUrlInput, "alu__searxngUrl");
|
||||
[selectedProxyDropdown, openWithDropdown, currentTransportDropdown].forEach((dropdown) => {
|
||||
let dropdownButton = document.getElementById(dropdown.id.replace("-menu", ""))
|
||||
console.log(dropdownButton)
|
||||
applyDropdownEventListeners(
|
||||
dropdown,
|
||||
dropdownButton.id,
|
||||
dropdownButton.dataset.localStorageKey
|
||||
);
|
||||
});
|
||||
applyDropdownEventListeners(
|
||||
searchEngineDropdown,
|
||||
"dropdown__search-engine",
|
||||
"alu__search_engine",
|
||||
"alu__searchEngine",
|
||||
checkSearxng
|
||||
);
|
||||
applyDropdownEventListeners(
|
||||
selectedProxyDropdown,
|
||||
"dropdown__selected-proxy",
|
||||
"alu__selectedProxy"
|
||||
);
|
||||
applyDropdownEventListeners(
|
||||
openWithDropdown,
|
||||
"dropdown__open-with",
|
||||
"alu__selectedOpenWith"
|
||||
);
|
||||
// applyDropdownEventListeners(
|
||||
// selectedProxyDropdown,
|
||||
// "dropdown__selected-proxy",
|
||||
// "alu__selectedProxy"
|
||||
// );
|
||||
// applyDropdownEventListeners(
|
||||
// openWithDropdown,
|
||||
// "dropdown__open-with",
|
||||
// "alu__selectedOpenWith"
|
||||
// );
|
||||
if (localStorage.getItem("bareUrl")) {
|
||||
bareUrlInput.value = localStorage.getItem("bareUrl");
|
||||
} else {
|
||||
|
|
@ -339,8 +349,8 @@ const t = useTranslations(lang);
|
|||
|
||||
function checkSearxng() {
|
||||
// This function checks if the "searxng" option was clicked, display an additional option if so.
|
||||
if (localStorage.getItem("alu__search_engine")) {
|
||||
if (JSON.parse(localStorage.getItem("alu__search_engine")).value.toLowerCase() == "searx") {
|
||||
if (localStorage.getItem("alu__searchEngine")) {
|
||||
if (JSON.parse(localStorage.getItem("alu__searchEngine")).value.toLowerCase() == "searx") {
|
||||
document.getElementsByClassName("setting__searxng-url")[0].style.opacity = "1";
|
||||
} else {
|
||||
document.getElementsByClassName("setting__searxng-url")[0].style.opacity = "0";
|
||||
|
|
@ -461,7 +471,7 @@ const t = useTranslations(lang);
|
|||
position: relative;
|
||||
gap: 25px;
|
||||
}
|
||||
@media (max-width: 880px) {
|
||||
@media (max-width: 1116px) {
|
||||
.popup {
|
||||
flex-direction: column;
|
||||
min-height: 80%;
|
||||
|
|
@ -517,7 +527,7 @@ const t = useTranslations(lang);
|
|||
height: calc(50% - 72px);
|
||||
border-radius: 0 32px 0 0;
|
||||
}
|
||||
@media (min-width: 880px) {
|
||||
@media (min-width: 1116px) {
|
||||
#setting-tab-proxy:checked ~ .marker {
|
||||
transform: translateY(0%);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,12 +3,19 @@
|
|||
const wispURLDefault =
|
||||
(location.protocol === "https:" ? "wss://" : "ws://") + location.host + "/wisp/";
|
||||
class TransportManager {
|
||||
private transport = localStorage.getItem("alu__currentTransport") || "EpxMod.EpoxyClient";
|
||||
private transport = "EpxMod.EpoxyClient";
|
||||
|
||||
constructor(transport?: string) {
|
||||
if (transport) {
|
||||
this.transport = transport;
|
||||
}
|
||||
if (localStorage.getItem("alu__selectedTransport") != null && !transport) {
|
||||
this.transport = JSON.parse(localStorage.getItem("alu__selectedTransport")!).value;
|
||||
}
|
||||
if (localStorage.getItem("alu__selectedTransport") == null) {
|
||||
// Set the default transport for the next reload.
|
||||
localStorage.setItem("alu__selectedTransport", JSON.stringify({ value: this.transport }));
|
||||
}
|
||||
}
|
||||
getTransport() {
|
||||
return this.transport;
|
||||
|
|
@ -20,6 +27,6 @@
|
|||
}
|
||||
}
|
||||
const TransportMgr = new TransportManager();
|
||||
registerRemoteListener(navigator.serviceWorker.controller);
|
||||
registerRemoteListener(navigator.serviceWorker.controller!);
|
||||
TransportMgr.setTransport(TransportMgr.getTransport());
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@
|
|||
"settings.proxy.openPageWith": "Open With",
|
||||
"settings.proxy.openPageWith.embed": "Embed",
|
||||
"settings.proxy.openPageWith.newTab": "New Tab",
|
||||
"settings.proxy.selectedTransport": "Transport",
|
||||
"settings.proxy.searxngURL": "Searx URL",
|
||||
"settings.proxy.bareURL": "Bare URL",
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,12 @@ export function getStaticPaths() {
|
|||
<Layout title={t("pages.home")}>
|
||||
<script src="/baremux/bare.cjs" is:inline></script>
|
||||
<script src="/epoxy/index.js" is:inline></script>
|
||||
<script src="/libcurl/index.cjs" is:inline></script>
|
||||
<script>
|
||||
import { createBareClient } from '@tomphttp/bare-client';
|
||||
createBareClient('http://localhost:8080/bare/');
|
||||
</script>
|
||||
|
||||
<TransportManager />
|
||||
<div class="main-content">
|
||||
<h1 class="title-text">{t("menu.welcome")}</h1>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue