Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

create-proxy-app

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

create-proxy-app - npm Package Compare versions

Comparing version
0.0.1
to
0.0.3
+3
-6
package.json
{
"name": "create-proxy-app",
"version": "0.0.1",
"version": "0.0.3",
"description": "Scaffold a Scramjet or Ultraviolet proxy app",

@@ -16,6 +16,3 @@ "type": "module",

"files": [
"dist",
"templates/default/package.json",
"templates/default/server.js",
"templates/default/public"
"dist"
],

@@ -34,5 +31,5 @@ "devDependencies": {

"scripts": {
"build": "cd ../.. && rspack build -c packages/create-proxy-app/rspack.config.ts --mode production",
"build": "cd ../.. && rspack build --mode production --configName create-proxy-app",
"pub": "pnpm publish --no-git-checks --access public"
}
}
export const __rspack_esm_id="412";export const __rspack_esm_ids=["412"];export const __webpack_modules__={439(e,t,a){var r=Object.defineProperty,n=(e,t)=>r(e,"name",{value:t,configurable:!0});let i=a(2214);a(7067),a(4708),a(8522),a(7075),a(4573),a(7975),a(996),a(3136),a(7030),a(3024),a(6760);let o=0,s={START_BOUNDARY:o++,HEADER_FIELD_START:o++,HEADER_FIELD:o++,HEADER_VALUE_START:o++,HEADER_VALUE:o++,HEADER_VALUE_ALMOST_DONE:o++,HEADERS_ALMOST_DONE:o++,PART_DATA_START:o++,PART_DATA:o++,END:o++},d=1,E=2,l=n(e=>32|e,"lower"),A=n(()=>{},"noop"),h=class{constructor(e){this.index=0,this.flags=0,this.onHeaderEnd=A,this.onHeaderField=A,this.onHeadersEnd=A,this.onHeaderValue=A,this.onPartBegin=A,this.onPartData=A,this.onPartEnd=A,this.boundaryChars={};let t=new Uint8Array((e=`\r
--`+e).length);for(let a=0;a<e.length;a++)t[a]=e.charCodeAt(a),this.boundaryChars[t[a]]=!0;this.boundary=t,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=s.START_BOUNDARY}write(e){let t,a,r=0,i=e.length,o=this.index,{lookbehind:A,boundary:h,boundaryChars:D,index:_,state:T,flags:f}=this,c=this.boundary.length,R=c-1,u=e.length,b=n(e=>{this[e+"Mark"]=r},"mark"),H=n(e=>{delete this[e+"Mark"]},"clear"),p=n((e,t,a,r)=>{(void 0===t||t!==a)&&this[e](r&&r.subarray(t,a))},"callback"),P=n((t,a)=>{let n=t+"Mark";n in this&&(a?(p(t,this[n],r,e),delete this[n]):(p(t,this[n],e.length,e),this[n]=0))},"dataCallback");for(r=0;r<i;r++)switch(t=e[r],T){case s.START_BOUNDARY:if(_===h.length-2){if(45===t)f|=E;else if(13!==t)return;_++;break}if(_-1==h.length-2){if(f&E&&45===t)T=s.END,f=0;else{if(f&E||10!==t)return;_=0,p("onPartBegin"),T=s.HEADER_FIELD_START}break}t!==h[_+2]&&(_=-2),t===h[_+2]&&_++;break;case s.HEADER_FIELD_START:T=s.HEADER_FIELD,b("onHeaderField"),_=0;case s.HEADER_FIELD:if(13===t){H("onHeaderField"),T=s.HEADERS_ALMOST_DONE;break}if(_++,45===t)break;if(58===t){if(1===_)return;P("onHeaderField",!0),T=s.HEADER_VALUE_START;break}if((a=l(t))<97||a>122)return;break;case s.HEADER_VALUE_START:if(32===t)break;b("onHeaderValue"),T=s.HEADER_VALUE;case s.HEADER_VALUE:13===t&&(P("onHeaderValue",!0),p("onHeaderEnd"),T=s.HEADER_VALUE_ALMOST_DONE);break;case s.HEADER_VALUE_ALMOST_DONE:if(10!==t)return;T=s.HEADER_FIELD_START;break;case s.HEADERS_ALMOST_DONE:if(10!==t)return;p("onHeadersEnd"),T=s.PART_DATA_START;break;case s.PART_DATA_START:T=s.PART_DATA,b("onPartData");case s.PART_DATA:if(o=_,0===_){for(r+=R;r<u&&!(e[r]in D);)r+=c;r-=R,t=e[r]}if(_<h.length)h[_]===t?(0===_&&P("onPartData",!0),_++):_=0;else if(_===h.length)_++,13===t?f|=d:45===t?f|=E:_=0;else if(_-1===h.length)if(f&d){if(_=0,10===t){f&=~d,p("onPartEnd"),p("onPartBegin"),T=s.HEADER_FIELD_START;break}}else f&E&&45===t?(p("onPartEnd"),T=s.END,f=0):_=0;_>0?A[_-1]=t:o>0&&(p("onPartData",0,o,new Uint8Array(A.buffer,A.byteOffset,A.byteLength)),o=0,b("onPartData"),r--);break;case s.END:break;default:throw Error(`Unexpected state entered: ${T}`)}P("onHeaderField"),P("onHeaderValue"),P("onPartData"),this.index=_,this.state=T,this.flags=f}end(){if(this.state===s.HEADER_FIELD_START&&0===this.index||this.state===s.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==s.END)throw Error("MultipartParser.end(): stream ended unexpectedly")}};function D(e){let t=e.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);if(!t)return;let a=t[2]||t[3]||"",r=a.slice(a.lastIndexOf("\\")+1);return(r=r.replace(/%22/g,'"')).replace(/&#(\d{4});/g,(e,t)=>String.fromCharCode(t))}async function _(e,t){let a,r,o,s,d,E;if(!/multipart/i.test(t))throw TypeError("Failed to fetch");let l=t.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!l)throw TypeError("no or bad content-type header, no multipart boundary");let A=new h(l[1]||l[2]),_=[],T=new i.FormData,f=n(e=>{o+=b.decode(e,{stream:!0})},"onPartData"),c=n(e=>{_.push(e)},"appendToFile"),R=n(()=>{let e=new i.File(_,E,{type:d});T.append(s,e)},"appendFileToFormData"),u=n(()=>{T.append(s,o)},"appendEntryToFormData"),b=new TextDecoder("utf-8");for await(let t of(b.decode(),A.onPartBegin=function(){A.onPartData=f,A.onPartEnd=u,a="",r="",o="",s="",d="",E=null,_.length=0},A.onHeaderField=function(e){a+=b.decode(e,{stream:!0})},A.onHeaderValue=function(e){r+=b.decode(e,{stream:!0})},A.onHeaderEnd=function(){if(r+=b.decode(),"content-disposition"===(a=a.toLowerCase())){let e=r.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);e&&(s=e[2]||e[3]||""),(E=D(r))&&(A.onPartData=c,A.onPartEnd=R)}else"content-type"===a&&(d=r);r="",a=""},e))A.write(t);return A.end(),T}n(h,"MultipartParser"),n(D,"_fileName"),n(_,"toFormData"),t.toFormData=_}};
//# sourceMappingURL=412.js.map
{"version":3,"file":"412.js","sources":["webpack://scramjet-root/./node_modules/.pnpm/node-fetch-native@1.6.7/node_modules/node-fetch-native/dist/chunks/multipart-parser.cjs"],"sourcesContent":["\"use strict\";var y=Object.defineProperty;var c=(R,o)=>y(R,\"name\",{value:o,configurable:!0});const node=require(\"../node.cjs\");require(\"node:http\"),require(\"node:https\"),require(\"node:zlib\"),require(\"node:stream\"),require(\"node:buffer\"),require(\"node:util\"),require(\"../shared/node-fetch-native.DhEqb06g.cjs\"),require(\"node:url\"),require(\"node:net\"),require(\"node:fs\"),require(\"node:path\");let s=0;const S={START_BOUNDARY:s++,HEADER_FIELD_START:s++,HEADER_FIELD:s++,HEADER_VALUE_START:s++,HEADER_VALUE:s++,HEADER_VALUE_ALMOST_DONE:s++,HEADERS_ALMOST_DONE:s++,PART_DATA_START:s++,PART_DATA:s++,END:s++};let f=1;const F={PART_BOUNDARY:f,LAST_BOUNDARY:f*=2},LF=10,CR=13,SPACE=32,HYPHEN=45,COLON=58,A=97,Z=122,lower=c(R=>R|32,\"lower\"),noop=c(()=>{},\"noop\"),g=class g{constructor(o){this.index=0,this.flags=0,this.onHeaderEnd=noop,this.onHeaderField=noop,this.onHeadersEnd=noop,this.onHeaderValue=noop,this.onPartBegin=noop,this.onPartData=noop,this.onPartEnd=noop,this.boundaryChars={},o=`\\r\n--`+o;const t=new Uint8Array(o.length);for(let n=0;n<o.length;n++)t[n]=o.charCodeAt(n),this.boundaryChars[t[n]]=!0;this.boundary=t,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=S.START_BOUNDARY}write(o){let t=0;const n=o.length;let E=this.index,{lookbehind:l,boundary:h,boundaryChars:H,index:e,state:a,flags:d}=this;const b=this.boundary.length,m=b-1,O=o.length;let r,P;const u=c(D=>{this[D+\"Mark\"]=t},\"mark\"),i=c(D=>{delete this[D+\"Mark\"]},\"clear\"),T=c((D,p,_,N)=>{(p===void 0||p!==_)&&this[D](N&&N.subarray(p,_))},\"callback\"),L=c((D,p)=>{const _=D+\"Mark\";_ in this&&(p?(T(D,this[_],t,o),delete this[_]):(T(D,this[_],o.length,o),this[_]=0))},\"dataCallback\");for(t=0;t<n;t++)switch(r=o[t],a){case S.START_BOUNDARY:if(e===h.length-2){if(r===HYPHEN)d|=F.LAST_BOUNDARY;else if(r!==CR)return;e++;break}else if(e-1===h.length-2){if(d&F.LAST_BOUNDARY&&r===HYPHEN)a=S.END,d=0;else if(!(d&F.LAST_BOUNDARY)&&r===LF)e=0,T(\"onPartBegin\"),a=S.HEADER_FIELD_START;else return;break}r!==h[e+2]&&(e=-2),r===h[e+2]&&e++;break;case S.HEADER_FIELD_START:a=S.HEADER_FIELD,u(\"onHeaderField\"),e=0;case S.HEADER_FIELD:if(r===CR){i(\"onHeaderField\"),a=S.HEADERS_ALMOST_DONE;break}if(e++,r===HYPHEN)break;if(r===COLON){if(e===1)return;L(\"onHeaderField\",!0),a=S.HEADER_VALUE_START;break}if(P=lower(r),P<A||P>Z)return;break;case S.HEADER_VALUE_START:if(r===SPACE)break;u(\"onHeaderValue\"),a=S.HEADER_VALUE;case S.HEADER_VALUE:r===CR&&(L(\"onHeaderValue\",!0),T(\"onHeaderEnd\"),a=S.HEADER_VALUE_ALMOST_DONE);break;case S.HEADER_VALUE_ALMOST_DONE:if(r!==LF)return;a=S.HEADER_FIELD_START;break;case S.HEADERS_ALMOST_DONE:if(r!==LF)return;T(\"onHeadersEnd\"),a=S.PART_DATA_START;break;case S.PART_DATA_START:a=S.PART_DATA,u(\"onPartData\");case S.PART_DATA:if(E=e,e===0){for(t+=m;t<O&&!(o[t]in H);)t+=b;t-=m,r=o[t]}if(e<h.length)h[e]===r?(e===0&&L(\"onPartData\",!0),e++):e=0;else if(e===h.length)e++,r===CR?d|=F.PART_BOUNDARY:r===HYPHEN?d|=F.LAST_BOUNDARY:e=0;else if(e-1===h.length)if(d&F.PART_BOUNDARY){if(e=0,r===LF){d&=~F.PART_BOUNDARY,T(\"onPartEnd\"),T(\"onPartBegin\"),a=S.HEADER_FIELD_START;break}}else d&F.LAST_BOUNDARY&&r===HYPHEN?(T(\"onPartEnd\"),a=S.END,d=0):e=0;if(e>0)l[e-1]=r;else if(E>0){const D=new Uint8Array(l.buffer,l.byteOffset,l.byteLength);T(\"onPartData\",0,E,D),E=0,u(\"onPartData\"),t--}break;case S.END:break;default:throw new Error(`Unexpected state entered: ${a}`)}L(\"onHeaderField\"),L(\"onHeaderValue\"),L(\"onPartData\"),this.index=e,this.state=a,this.flags=d}end(){if(this.state===S.HEADER_FIELD_START&&this.index===0||this.state===S.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==S.END)throw new Error(\"MultipartParser.end(): stream ended unexpectedly\")}};c(g,\"MultipartParser\");let MultipartParser=g;function _fileName(R){const o=R.match(/\\bfilename=(\"(.*?)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))($|;\\s)/i);if(!o)return;const t=o[2]||o[3]||\"\";let n=t.slice(t.lastIndexOf(\"\\\\\")+1);return n=n.replace(/%22/g,'\"'),n=n.replace(/&#(\\d{4});/g,(E,l)=>String.fromCharCode(l)),n}c(_fileName,\"_fileName\");async function toFormData(R,o){if(!/multipart/i.test(o))throw new TypeError(\"Failed to fetch\");const t=o.match(/boundary=(?:\"([^\"]+)\"|([^;]+))/i);if(!t)throw new TypeError(\"no or bad content-type header, no multipart boundary\");const n=new MultipartParser(t[1]||t[2]);let E,l,h,H,e,a;const d=[],b=new node.FormData,m=c(i=>{h+=u.decode(i,{stream:!0})},\"onPartData\"),O=c(i=>{d.push(i)},\"appendToFile\"),r=c(()=>{const i=new node.File(d,a,{type:e});b.append(H,i)},\"appendFileToFormData\"),P=c(()=>{b.append(H,h)},\"appendEntryToFormData\"),u=new TextDecoder(\"utf-8\");u.decode(),n.onPartBegin=function(){n.onPartData=m,n.onPartEnd=P,E=\"\",l=\"\",h=\"\",H=\"\",e=\"\",a=null,d.length=0},n.onHeaderField=function(i){E+=u.decode(i,{stream:!0})},n.onHeaderValue=function(i){l+=u.decode(i,{stream:!0})},n.onHeaderEnd=function(){if(l+=u.decode(),E=E.toLowerCase(),E===\"content-disposition\"){const i=l.match(/\\bname=(\"([^\"]*)\"|([^()<>@,;:\\\\\"/[\\]?={}\\s\\t]+))/i);i&&(H=i[2]||i[3]||\"\"),a=_fileName(l),a&&(n.onPartData=O,n.onPartEnd=r)}else E===\"content-type\"&&(e=l);l=\"\",E=\"\"};for await(const i of R)n.write(i);return n.end(),b}c(toFormData,\"toFormData\"),exports.toFormData=toFormData;\n"],"names":["Object","l","t","Uint8Array","h","Error","String","TypeError","TextDecoder"],"mappings":"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"}
{
"name": "bootstraptest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"packageManager": "pnpm@10.12.1",
"dependencies": {
"@mercuryworkshop/proxy-bootstrap": "file:../packages/scramjet/packages/bootstrap"
}
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;1,300;1,400&display=swap");
body {
font-family: "Roboto", Arial, Helvetica, sans-serif;
margin: 0;
background: #111;
display: flex;
flex-direction: column;
min-height: 100vh;
}
.flex-center {
display: flex;
justify-content: center;
}
.header-center {
align-items: center;
flex-direction: column;
margin-top: 10%;
}
.left-margin {
margin: 0px 16px;
}
#sj-frame-wrapper {
position: absolute;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
display: none;
flex-direction: column;
}
#sj-frame {
border: none;
flex: 1;
background-color: #111;
}
#sj-error {
color: #ff6666 !important;
white-space: pre-wrap;
}
#sj-error-code {
font-size: 12px;
color: #fff;
font-family: "Courier New", Courier, monospace;
}
.logo {
height: 25vh;
}
.logo-wrapper .text {
font-size: 75px;
color: #fff;
}
.logo-wrapper h1 {
color: white;
}
footer {
margin: 0 16px;
margin-top: auto;
display: flex;
flex-direction: column;
line-height: 30px;
margin-bottom: 20px;
}
footer > div {
display: flex;
justify-content: left;
align-items: center;
flex-wrap: wrap;
margin-bottom: 15px;
}
footer a,
footer span {
margin: 0 15px;
text-decoration: none;
color: #fff;
font-size: 15px;
}
footer a {
cursor: pointer;
}
footer a:hover {
text-decoration: underline;
}
.desc p {
width: 560px;
color: rgba(253, 253, 253, 0.514);
}
#sj-address {
background: none;
font-family: inherit;
padding: 0px 17px;
height: 48px;
border: 1px solid rgb(255, 255, 255, 0.2);
color: var(--text-color);
border-radius: 3px;
outline: none;
width: 350px;
margin-top: 5px;
border-radius: 50px;
color: #fff;
transition: border-radius 0.1s;
}
#sj-address:focus {
border: 1px solid rgba(253, 253, 253, 0.514);
border-radius: 6px;
}
.credit {
border-radius: 10px;
padding: 10px;
display: block;
border: #fff 1px solid;
color: #fff;
display: flex;
flex-wrap: wrap;
margin-bottom: 15px;
}
.credit label {
margin-left: auto;
margin-right: 15px;
}
.credit a,
.credit label {
color: white;
text-decoration: underline;
text-align: right;
}
.credit pre {
display: none;
width: 100%;
}
.credit label::after {
content: "show license";
cursor: pointer;
}
.credit input:checked + label::after {
content: "hide license";
}
.credit input:checked ~ pre {
display: block;
}
<!--
* This file was generated by create-proxy-app
* Copyright (c) 2026 Mercury Workshop.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Scramjet Proxy Template (bootstrap)</title>
<link rel="stylesheet" href="/index.css" />
<!-- IMPORTANT: if you leave this line in, your proxy will not be indexed by search engines
This is good if you do not want your links to be automatically detected and blocked
However, you should disable it for your "flagship" official domain or you won't get SEO -->
<meta name="robots" content="noindex" />
<script src="/bootstrap-init.js"></script>
</head>
<body>
<div title="Scramjet Logo" class="flex-center logo-wrapper header-center">
<h1>Proxy App Template</h1>
</div>
<div class="flex-center desc left-margin">
<p>
Congratulations! You've successfully created a web proxy powered by
Scramjet and Wisp. Your proxy is now ready to be customized by editing
the public/index.html file.
</p>
</div>
<form id="sj-form" class="flex-center">
<input
id="sj-search-engine"
value="https://www.google.com/search?q=%s"
type="hidden"
/>
<input id="sj-address" type="text" placeholder="Search the web freely" />
</form>
<div class="desc left-margin">
<p id="sj-error"></p>
<pre id="sj-error-code"></pre>
</div>
<footer>
<div>
<a
title="The Mercury Workshop GitHub organization"
href="https://github.com/MercuryWorkshop"
>Mercury Workshop</a
>
<a
title="The example demo app for Scramjet"
href="https://github.com/MercuryWorkshop/Scramjet-Demo"
>GitHub</a
>
<a title="License information" href="credits.html">Credits</a>
</div>
<div>
<span>Scramjet &copy; MW 2025</span>
</div>
</footer>
<div id="sj-frame-wrapper">
<p id="sj-frame-url"></p>
<iframe id="sj-frame"></iframe>
</div>
<script src="/index.js"></script>
</body>
</html>
const form = document.getElementById("sj-form");
const address = document.getElementById("sj-address");
const frameWrapper = document.getElementById("sj-frame-wrapper");
const frameElement = document.getElementById("sj-frame");
const error = document.getElementById("sj-error");
const errorCode = document.getElementById("sj-error-code");
let controller;
let frame;
async function init() {
controller = await initBootstrap();
frame = controller.createFrame(frameElement);
installPlugins(frame);
}
function installPlugins(frame) {
const errorPlugin = new $scramjet.Plugin("error-handler");
errorPlugin.tap(frame.hooks.error.request, (context, props) => {
props.suppressError = false;
console.error(context.error);
showErrorScreen(
`Scramjet couldn't load ${context.rawrequest.rawUrl}`,
context?.error?.message || context?.error?.toString() || "Unknown error"
);
});
}
function showErrorScreen(error, details) {
frameWrapper.style.display = "none";
error.textContent = error;
errorCode.textContent = details;
}
form.addEventListener("submit", async (e) => {
e.preventDefault();
try {
if (!frame || !controller) {
await init();
}
await frame.go(address.value);
frameWrapper.style.display = "flex";
} catch (error) {
showErrorScreen(error.message, error.stack);
}
});
import { bootstrap } from "@mercuryworkshop/proxy-bootstrap";
import http from "node:http";
import express from "express";
const { routeRequest, routeUpgrade } = await bootstrap();
const app = express();
app.use(express.static("public"));
const server = http.createServer(app);
server.on("upgrade", routeUpgrade);
server.on("request", routeRequest);
server.listen(3030, () => {
console.log("Server is running on port 3030");
});

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display