make libcurl the default transport and finish up stuff
This commit is contained in:
Generated
+2
-2
@@ -9,8 +9,8 @@
|
||||
"version": "1.3.2",
|
||||
"license": "GNU-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@mercuryworkshop/bare-mux": "^1.0.4",
|
||||
"@mercuryworkshop/epoxy-transport": "^1.0.2",
|
||||
"@mercuryworkshop/bare-mux": "^1.0.5",
|
||||
"@mercuryworkshop/epoxy-transport": "^1.1.0",
|
||||
"@mercuryworkshop/libcurl-transport": "^1.2.2",
|
||||
"@nebula-services/dynamic": "^0.7.2-patch.2",
|
||||
"@titaniumnetwork-dev/ultraviolet": "^3.0.0",
|
||||
|
||||
+2
-2
@@ -12,8 +12,8 @@
|
||||
"author": "Polaris Development Group",
|
||||
"license": "GNU-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@mercuryworkshop/bare-mux": "^1.0.4",
|
||||
"@mercuryworkshop/epoxy-transport": "^1.0.2",
|
||||
"@mercuryworkshop/bare-mux": "^1.0.5",
|
||||
"@mercuryworkshop/epoxy-transport": "^1.1.0",
|
||||
"@mercuryworkshop/libcurl-transport": "^1.2.2",
|
||||
"@nebula-services/dynamic": "^0.7.2-patch.2",
|
||||
"@titaniumnetwork-dev/ultraviolet": "^3.0.0",
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
</div>
|
||||
|
||||
<script type="module">
|
||||
import { loadProxyWorker, storage } from '/assets/js/utils.js';
|
||||
import { loadProxyWorker, storage, loadCJS } from '/assets/js/utils.js';
|
||||
|
||||
const settingsStorage = storage('settings');
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
}));
|
||||
}
|
||||
|
||||
if (location.pathname.slice(1).startsWith(settingsStorage.get('proxy') || 'uv')) loadProxyWorker(settingsStorage.get('proxy') || 'uv')
|
||||
await loadCJS('/baremux/bare.cjs');
|
||||
|
||||
if (location.pathname.slice(1).startsWith((settingsStorage.get('proxy') || '').split(':')[0] || 'uv')) loadProxyWorker((settingsStorage.get('proxy') || '').split(':')[0] || 'uv')
|
||||
.then(() => location.reload())
|
||||
.catch(() => {
|
||||
document.querySelector('h1').textContent = 'Error';
|
||||
|
||||
+25
-5
@@ -121,11 +121,31 @@ app.use(async (req, res, next) => {
|
||||
}
|
||||
});
|
||||
|
||||
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('/dynamic/', express.static(dynamicPath));
|
||||
app.use('/uv/', express.static(uvPath, {
|
||||
setHeaders: (res, path) => {
|
||||
if (path.endsWith('.cjs')) res.setHeader('Content-Type', 'text/javascript');
|
||||
}
|
||||
}));
|
||||
app.use('/epoxy/', express.static(epoxyPath, {
|
||||
setHeaders: (res, path) => {
|
||||
if (path.endsWith('.cjs')) res.setHeader('Content-Type', 'text/javascript');
|
||||
}
|
||||
}));
|
||||
app.use('/baremux/', express.static(baremuxPath, {
|
||||
setHeaders: (res, path) => {
|
||||
if (path.endsWith('.cjs')) res.setHeader('Content-Type', 'text/javascript');
|
||||
}
|
||||
}));
|
||||
app.use('/libcurl/', express.static(libcurlPath, {
|
||||
setHeaders: (res, path) => {
|
||||
if (path.endsWith('.cjs')) res.setHeader('Content-Type', 'text/javascript');
|
||||
}
|
||||
}));
|
||||
app.use('/dynamic/', express.static(dynamicPath, {
|
||||
setHeaders: (res, path) => {
|
||||
if (path.endsWith('.cjs')) res.setHeader('Content-Type', 'text/javascript');
|
||||
}
|
||||
}));
|
||||
|
||||
app.use(async (req, res) => {
|
||||
res.setHeader('content-type', 'text/html');
|
||||
|
||||
@@ -60,10 +60,49 @@ export const uuid = () => ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g,
|
||||
* Register a proxy service worker
|
||||
* @param {'uv' | 'dynamic'} proxy
|
||||
*/
|
||||
export const loadProxyWorker = async (proxy) => await navigator.serviceWorker.register(`/${proxy}/sw.js`, {
|
||||
scope: `/${proxy}/service/`
|
||||
export const loadProxyWorker = async (proxy) => await navigator.serviceWorker.register(`/${proxy.split(':')[0]}/sw.js`, {
|
||||
scope: `/${proxy.split(':')[0]}/service/`
|
||||
});
|
||||
|
||||
/**
|
||||
* Set the bare transport
|
||||
* @param {'epoxy' | 'libcurl' | 'bare'} name
|
||||
* @param {any} options
|
||||
*/
|
||||
export const setTransport = async (name, options) => {
|
||||
const transports = {
|
||||
'epoxy': {
|
||||
src: '/epoxy/index.js',
|
||||
id: 'EpxMod.EpoxyClient',
|
||||
options: {
|
||||
wisp: location.origin.replace('http', 'ws') + '/wisp/'
|
||||
}
|
||||
},
|
||||
'libcurl': {
|
||||
src: '/libcurl/index.cjs',
|
||||
id: 'CurlMod.LibcurlClient',
|
||||
options: {
|
||||
wisp: location.origin.replace('http', 'ws') + '/wisp/',
|
||||
wasm: location.origin + '/libcurl/libcurl.wasm'
|
||||
}
|
||||
},
|
||||
'bare': {
|
||||
src: '/assets/js/bare-transport.js',
|
||||
id: 'BareMod.BareClient',
|
||||
options: location.origin + '/bare/'
|
||||
}
|
||||
};
|
||||
|
||||
if (!Object.keys(transports).includes(name)) throw 'Invalid Transport';
|
||||
|
||||
const transport = transports[name];
|
||||
|
||||
await loadCJS(transport.src);
|
||||
await loadCJS('/baremux/bare.cjs');
|
||||
|
||||
BareMux.SetTransport(transport.id, options || transport.options);
|
||||
}
|
||||
|
||||
/**
|
||||
Broken
|
||||
|
||||
@@ -156,6 +195,13 @@ export const isScrollable = (element) => element.scrollWidth > element.clientWid
|
||||
*/
|
||||
export const evalify = (code) => '(' + String(code) + ')()';
|
||||
|
||||
export const loadCJS = (src) => new Promise((resolve, reject) => {
|
||||
const el = document.createElement('script');
|
||||
el.src = src;
|
||||
document.body.appendChild(el);
|
||||
el.onload = () => resolve();
|
||||
});
|
||||
|
||||
/**
|
||||
* @type {import('./utils/ctc.js').CrossTabCommunication}
|
||||
*/
|
||||
@@ -163,7 +209,7 @@ var CrossTabCommunication;
|
||||
|
||||
try {
|
||||
CrossTabCommunication = ctc;
|
||||
} catch { CrossTabCommunication = () => {}; }
|
||||
} catch { CrossTabCommunication = () => { }; }
|
||||
|
||||
export default {
|
||||
storage,
|
||||
|
||||
@@ -1,18 +1,15 @@
|
||||
import { loadProxyWorker, encoder, storage } from './utils.js';
|
||||
import { loadProxyWorker, encoder, storage, loadCJS, setTransport } from './utils.js';
|
||||
import { loadSettings } from './settings.js';
|
||||
|
||||
BareMux.SetTransport('EpxMod.EpoxyClient', { wisp: location.origin.replace('http', 'ws') + '/wisp/' });
|
||||
/*BareMux.SetTransport('CurlMod.LibcurlClient', {
|
||||
wisp: location.origin.replace('http', 'ws') + '/wisp/',
|
||||
wasm: '/libcurl/libcurl.wasm'
|
||||
});*/
|
||||
//BareMux.SetTransport('BareMod.BareClient', location.origin + '/bare/');
|
||||
await loadCJS('/baremux/bare.cjs');
|
||||
|
||||
loadSettings();
|
||||
|
||||
const params = new URLSearchParams(location.search);
|
||||
const settingsStorage = storage('settings');
|
||||
|
||||
if ((settingsStorage.get('proxy') || 'uv').startsWith('uv')) await setTransport((settingsStorage.get('proxy') || '').split(':')[1] || 'libcurl');
|
||||
|
||||
window.history.replaceState({}, '', location.pathname);
|
||||
|
||||
if (params.get('load')) {
|
||||
@@ -25,9 +22,9 @@ if (params.get('load')) {
|
||||
sessionStorage.setItem('loaddata', JSON.stringify(parsedData));
|
||||
|
||||
if (parsedData.proxied) {
|
||||
await loadProxyWorker(settingsStorage.get('proxy') || 'uv');
|
||||
await loadProxyWorker((settingsStorage.get('proxy') || '').split(':')[0] || 'uv');
|
||||
|
||||
document.querySelector('#loadframe').src = `/${settingsStorage.get('proxy') || 'uv'}/service/${encoder['xor'].encode(parsedData.target)}`;
|
||||
document.querySelector('#loadframe').src = `/${(settingsStorage.get('proxy') || '').split(':')[0] || 'uv'}/service/${encoder['xor'].encode(parsedData.target)}`;
|
||||
} else document.querySelector('#loadframe').src = parsedData.target;
|
||||
|
||||
document.querySelector('#loadframe').addEventListener('load', () => {
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
// UV Transports
|
||||
importScripts('/assets/js/bare-transport.js');
|
||||
importScripts('/libcurl/index.cjs');
|
||||
importScripts('/epoxy/index.js');
|
||||
|
||||
importScripts('/uv/uv.bundle.js');
|
||||
importScripts('/uv/uv.config.js');
|
||||
importScripts(__uv$config.sw || '/uv/uv.sw.js');
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
|
||||
<link rel="stylesheet" href="/assets/css/main.css">
|
||||
<link rel="stylesheet" href="/assets/css/view.css">
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert@1.1.3/dist/sweetalert.min.js"></script>
|
||||
<script>window.onerror = (...e) => alert(e);</script>
|
||||
|
||||
<title>View | Polaris</title>
|
||||
</head>
|
||||
@@ -37,12 +35,6 @@
|
||||
|
||||
<div class="hitbox"></div>
|
||||
|
||||
<script src="/baremux/bare.cjs" defer></script>
|
||||
|
||||
<script src="/epoxy/index.js" defer></script>
|
||||
<script src="/libcurl/index.cjs" defer></script>
|
||||
<script src="/assets/js/bare-transport.js" defer></script>
|
||||
|
||||
<script src="/assets/js/view.js" type="module"></script>
|
||||
<script src="/assets/js/main.js" type="module"></script>
|
||||
|
||||
|
||||
@@ -51,7 +51,9 @@
|
||||
<h3>Proxy</h3>
|
||||
|
||||
<select id="proxy_select">
|
||||
<option value="uv">Ultraviolet</option>
|
||||
<option value="uv:bare">Ultraviolet</option>
|
||||
<option value="uv:epoxy">Ultraviolet (Epoxy)</option>
|
||||
<option value="uv:libcurl" selected>Ultraviolet (Libcurl)</option>
|
||||
<option value="dynamic" disabled>Dynamic</option>
|
||||
</select>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user