Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,23 @@ This will be our nonexhaustive todo list for InvisiProxy LTS v6.x.x and above. R

## Priority

- [ ] Make InvisiProxy work on Firefox (requires downloading malware to test :()
- [ ] Fix abnormal search handling
- [ ] Class managling and DOM masquerading functionality to Scramjet (or stealth window)
- [ ] Font obfuscation middleware
- [ ] Update to Scramjet v2.0.67-alpha
- [ ] Update to use scramjetFrame instead of our own window handling (or whatever 2.0.67-alpha requires)
- [ ] Implement multi-lang support!

## Proxy/Site Functionality
- [ ] Add booksmark menu (source wise already present pretty much)
- [ ] Add bookmarks menu (source wise already present pretty much)
- [ ] Add Chii + ensuring users can access devtools while browsing - partial
- [ ] Omnibox should state what the current site the user is on like a proper URL bar
- [ ] Improve adblocking functions on site using Workerware + a pre-bundled uBlock Origin
- [ ] Implement advanced data URI system
- [ ] Allow custom Wisp urls from the settings menu (not config side)
- [ ] Setting to open multiple stealth frames; basically about:blank but using our system. Pops out in another tab
- [x] Swap to pnpm and node 26
- [x] Update to Scramjet v2.0.67-alpha - done
- [x] Update to use scramjetFrame instead of our own window handling (or whatever 2.0.67-alpha requires) - done
- [x] Swap to pnpm and node 26 - done
- [x] Swap to mrrowisp over wisp-js for security and performance - done
- [x] Hide local browser history on launch - done
- [x] Setting to open about:blank and blob frames - done
Expand Down
7 changes: 4 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,10 @@
"@fastify/helmet": "^13.0.2",
"@fastify/static": "^9.1.3",
"@mercuryworkshop/bare-mux": "^2.1.9",
"@mercuryworkshop/epoxy-transport": "^2.1.28",
"@mercuryworkshop/libcurl-transport": "^1.5.2",
"@mercuryworkshop/scramjet": "^1.1.0",
"@mercuryworkshop/epoxy-transport": "^3.0.1",
"@mercuryworkshop/libcurl-transport": "^2.0.5",
"@mercuryworkshop/scramjet": "2.0.67-alpha.1",
"@mercuryworkshop/scramjet-controller": "0.0.13",
"@titaniumnetwork-dev/ultraviolet": "^3.2.10",
"axios": "^1.16.1",
"chii": "^1.15.5",
Expand Down
122 changes: 93 additions & 29 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 25 additions & 20 deletions run-command.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,23 @@ import {
flatAltPaths,
splashRandom,
} from './src/routes.mjs';
import { epoxyPath } from '@mercuryworkshop/epoxy-transport';
import { libcurlPath } from '@mercuryworkshop/libcurl-transport';
import { baremuxPath } from '@mercuryworkshop/bare-mux/node';
import { uvPath } from '@titaniumnetwork-dev/ultraviolet';
import { scramjetPath } from '@mercuryworkshop/scramjet/path';
import paintSource from './src/source-rewrites.mjs';
import { loadTemplates, tryReadFile } from './src/templates.mjs';

const scramjetPath = join(
dirname(fileURLToPath(import.meta.url)),
'node_modules/@mercuryworkshop/scramjet/dist'
const modPath = (subpath) =>
join(
dirname(fileURLToPath(import.meta.url)),
'node_modules',
...subpath.split('/')
);

const epoxyPath = modPath('@mercuryworkshop/epoxy-transport/dist');
const libcurlPath = modPath('@mercuryworkshop/libcurl-transport/dist');
const scramjetControllerPath = modPath(
'@mercuryworkshop/scramjet-controller/dist'
);

// This constant is copied over from /src/server.mjs.
Expand Down Expand Up @@ -180,45 +187,43 @@ commands: for (let i = 2; i < process.argv.length; i++)
}
});

const localAssetDirs = ['assets', 'scram', 'uv'];
const localAssetDirs = ['assets', 'uv'];
for (const path of localAssetDirs) {
mkdirSync('./views/dist-new/' + path);
compile('./views/' + path, '', path + '/', './views/' + path, true);
}

// Combine scripts from the corresponding node modules into the same
// dist-generated directories for compiling, and avoid overwriting files.
const compilePaths = {
epoxy: epoxyPath,
libcurl: libcurlPath,
baremux: baremuxPath,
uv: uvPath,
scram: scramjetPath,
chii: 'node_modules/chii',
};
for (const path of Object.entries(compilePaths)) {
const prefix = path[0] + '/',
const compilePaths = [
['epoxy', epoxyPath],
['libcurl', libcurlPath],
['baremux', baremuxPath],
['uv', uvPath],
['scram', scramjetPath],
['scram', scramjetControllerPath],
['chii', 'node_modules/chii'],
];
for (const [prefixName, srcPath] of compilePaths) {
const prefix = prefixName + '/',
prefixUrl = new URL('./views/dist-new/' + prefix, import.meta.url);
if (!existsSync(prefixUrl)) mkdirSync(prefixUrl);

compile(path[1].slice(path[1].indexOf('node_modules')), '', prefix);
compile(srcPath.slice(srcPath.indexOf('node_modules')), '', prefix);
}

// Minify the scripts and stylesheets upon compiling, if enabled in config.
if (config.minifyScripts)
await build({
entryPoints: [
'./views/dist-new/uv/**/*.js',
'./views/dist-new/scram/**/*.js',
'./views/dist-new/scram/**/*.wasm.wasm',
'./views/dist-new/assets/js/**/*.js',
'./views/dist-new/assets/css/**/*.css',
],
platform: 'browser',
sourcemap: true,
bundle: true,
minify: true,
loader: { '.wasm.wasm': 'copy' },
external: ['*.png', '*.jpg', '*.jpeg', '*.webp', '*.svg'],
outdir: dist,
allowOverwrite: true,
Expand Down
12 changes: 7 additions & 5 deletions src/routes.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -143,11 +143,13 @@ let altPaths = {
'mrrowisp': 'mrw',
/* Raw File Names */
files: {
'scramjet.all.js': 'working.all.js',
'scramjet.sw.js': 'working.sw.js',
'scramjet.sw-blacklist.js': 'working.sw-blacklist.js',
'scramjet.sync.js': 'working.sync.js',
'scramjet.wasm.wasm': 'working.wasm.wasm',
'sw.js': 'service.js',
'sw-blacklist.js': 'service-blacklist.js',
'scramjet.js': 'working.js',
'scramjet.wasm': 'working.wasm',
'controller.api.js': 'working-ctrl.api.js',
'controller.sw.js': 'working-ctrl.sw.js',
'controller.inject.js': 'working-ctrl.inject.js',
'uv.handler.js': 'networking.handler.js',
'uv.client.js': 'networking.client.js',
'uv.bundle.js': 'networking.bundle.js',
Expand Down
Loading
Loading