infamous-test 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +11 -0
- package/baremux/index.js +2 -0
- package/baremux/index.mjs +2 -0
- package/baremux/worker.js +136 -0
- package/index.html +1117 -0
- package/libcurl/index.cjs +6471 -0
- package/libcurl/index.js +6471 -0
- package/libcurl/index.mjs +6452 -0
- package/package.json +17 -0
- package/start.html +53 -0
- package/uv/sw.js +45 -0
- package/uv/uv.bundle.js +8 -0
- package/uv/uv.client.js +5 -0
- package/uv/uv.config.js +27 -0
- package/uv/uv.handler.js +2 -0
- package/uv/uv.sw.js +48 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(copy \"C:\\\\Users\\\\azras\\\\Downloads\\\\cherri-master\\\\uv\\\\uv.bundle.js\" \"C:\\\\Users\\\\azras\\\\Downloads\\\\cherri-master\\\\unpkg\\\\uv\"\" && copy \"C:UsersazrasDownloadscherri-masteruvuv.handler.js\" \"C:UsersazrasDownloadscherri-masterunpkguv\"\")",
|
|
5
|
+
"Bash(copy \"C:\\\\Users\\\\azras\\\\Downloads\\\\cherri-master\\\\uv\\\\uv.client.js\" \"C:\\\\Users\\\\azras\\\\Downloads\\\\cherri-master\\\\unpkg\\\\uv\"\" && copy \"C:UsersazrasDownloadscherri-masteruvuv.sw.js\" \"C:UsersazrasDownloadscherri-masterunpkguv\"\")",
|
|
6
|
+
"Bash(copy \"C:\\\\Users\\\\azras\\\\Downloads\\\\cherri-master\\\\uv\\\\sw.js\" \"C:\\\\Users\\\\azras\\\\Downloads\\\\cherri-master\\\\unpkg\\\\uv\"\")",
|
|
7
|
+
"Bash(copy:*)",
|
|
8
|
+
"Bash(powershell -Command:*)"
|
|
9
|
+
]
|
|
10
|
+
}
|
|
11
|
+
}
|
package/baremux/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).BareMux={})}(this,(function(e){"use strict";const t=globalThis.fetch,r=globalThis.SharedWorker,a=globalThis.localStorage,o=globalThis.navigator.serviceWorker,s=MessagePort.prototype.postMessage,n={prototype:{send:WebSocket.prototype.send},CLOSED:WebSocket.CLOSED,CLOSING:WebSocket.CLOSING,CONNECTING:WebSocket.CONNECTING,OPEN:WebSocket.OPEN};async function c(){const e=(await self.clients.matchAll({type:"window",includeUncontrolled:!0})).map((async e=>{const t=await function(e){let t=new MessageChannel;return new Promise((r=>{e.postMessage({type:"getPort",port:t.port2},[t.port2]),t.port1.onmessage=e=>{r(e.data)}}))}(e);return await i(t),t})),t=Promise.race([Promise.any(e),new Promise(((e,t)=>setTimeout(t,1e3,new TypeError("timeout"))))]);try{return await t}catch(e){if(e instanceof AggregateError)throw console.error("bare-mux: failed to get a bare-mux SharedWorker MessagePort as all clients returned an invalid MessagePort."),new Error("All clients returned an invalid MessagePort.");return console.warn("bare-mux: failed to get a bare-mux SharedWorker MessagePort within 1s, retrying"),await c()}}function i(e){const t=new MessageChannel,r=new Promise(((e,r)=>{t.port1.onmessage=t=>{"pong"===t.data.type&&e()},setTimeout(r,1500)}));return s.call(e,{message:{type:"ping"},port:t.port2},[t.port2]),r}function l(e,t){const a=new r(e,"bare-mux-worker");return t&&o.addEventListener("message",(t=>{if("getPort"===t.data.type&&t.data.port){console.debug("bare-mux: recieved request for port from sw");const a=new r(e,"bare-mux-worker");s.call(t.data.port,a.port,[a.port])}})),a.port}let h=null;function d(){if(null===h){const e=new MessageChannel,t=new ReadableStream;let r;try{s.call(e.port1,t,[t]),r=!0}catch(e){r=!1}return h=r,r}return h}class p{constructor(e){this.channel=new BroadcastChannel("bare-mux"),e instanceof MessagePort||e instanceof Promise?this.port=e:this.createChannel(e,!0)}createChannel(e,t){if(self.clients)this.port=c(),this.channel.onmessage=e=>{"refreshPort"===e.data.type&&(this.port=c())};else if(e&&SharedWorker){if(!e.startsWith("/")&&!e.includes("://"))throw new Error("Invalid URL. Must be absolute or start at the root.");this.port=l(e,t),console.debug("bare-mux: setting localStorage bare-mux-path to",e),a["bare-mux-path"]=e}else{if(!SharedWorker)throw new Error("Unable to get a channel to the SharedWorker.");{const e=a["bare-mux-path"];if(console.debug("bare-mux: got localStorage bare-mux-path:",e),!e)throw new Error("Unable to get bare-mux workerPath from localStorage.");this.port=l(e,t)}}}async sendMessage(e,t){this.port instanceof Promise&&(this.port=await this.port);try{await i(this.port)}catch{return console.warn("bare-mux: Failed to get a ping response from the worker within 1.5s. Assuming port is dead."),this.createChannel(),await this.sendMessage(e,t)}const r=new MessageChannel,a=[r.port2,...t||[]],o=new Promise(((e,t)=>{r.port1.onmessage=r=>{const a=r.data;"error"===a.type?t(a.error):e(a)}}));return s.call(this.port,{message:e,port:r.port2},a),await o}}class u extends EventTarget{constructor(e,t=[],r,a){super(),this.protocols=t,this.readyState=n.CONNECTING,this.url=e.toString(),this.protocols=t;const o=e=>{this.protocols=e,this.readyState=n.OPEN;const t=new Event("open");this.dispatchEvent(t)},s=async e=>{const t=new MessageEvent("message",{data:e});this.dispatchEvent(t)},c=(e,t)=>{this.readyState=n.CLOSED;const r=new CloseEvent("close",{code:e,reason:t});this.dispatchEvent(r)},i=()=>{this.readyState=n.CLOSED;const e=new Event("error");this.dispatchEvent(e)};this.channel=new MessageChannel,this.channel.port1.onmessage=e=>{"open"===e.data.type?o(e.data.args[0]):"message"===e.data.type?s(e.data.args[0]):"close"===e.data.type?c(e.data.args[0],e.data.args[1]):"error"===e.data.type&&i()},r.sendMessage({type:"websocket",websocket:{url:e.toString(),protocols:t,requestHeaders:a,channel:this.channel.port2}},[this.channel.port2])}send(...e){if(this.readyState===n.CONNECTING)throw new DOMException("Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.");let t=e[0];t.buffer&&(t=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)),s.call(this.channel.port1,{type:"data",data:t},t instanceof ArrayBuffer?[t]:[])}close(e,t){s.call(this.channel.port1,{type:"close",closeCode:e,closeReason:t})}}function w(e,t,r){console.error(`error while processing '${r}': `,t),e.postMessage({type:"error",error:t})}function f(e){for(let t=0;t<e.length;t++){const r=e[t];if(!"!#$%&'*+-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz|~".includes(r))return!1}return!0}const g=["ws:","wss:"],y=[101,204,205,304],b=[301,302,303,307,308];class m{constructor(e){this.worker=new p(e)}createWebSocket(e,t=[],r,a){try{e=new URL(e)}catch(t){throw new DOMException(`Faiiled to construct 'WebSocket': The URL '${e}' is invalid.`)}if(!g.includes(e.protocol))throw new DOMException(`Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. '${e.protocol}' is not allowed.`);Array.isArray(t)||(t=[t]),t=t.map(String);for(const e of t)if(!f(e))throw new DOMException(`Failed to construct 'WebSocket': The subprotocol '${e}' is invalid.`);a=a||{};return new u(e,t,this.worker,a)}async fetch(e,r){const a=new Request(e,r),o=r?.headers||a.headers,s=o instanceof Headers?Object.fromEntries(o):o,n=a.body;let c=new URL(a.url);if(c.protocol.startsWith("blob:")){const e=await t(c),r=new Response(e.body,e);return r.rawHeaders=Object.fromEntries(e.headers),r}for(let e=0;;e++){let t=(await this.worker.sendMessage({type:"fetch",fetch:{remote:c.toString(),method:a.method,headers:s,body:n||void 0}},n?[n]:[])).fetch,o=new Response(y.includes(t.status)?void 0:t.body,{headers:new Headers(t.headers),status:t.status,statusText:t.statusText});o.rawHeaders=t.headers,o.rawResponse=t,o.finalURL=c.toString();const i=r?.redirect||a.redirect;if(!b.includes(o.status))return o;switch(i){case"follow":{const t=o.headers.get("location");if(20>e&&null!==t){c=new URL(t,c);continue}throw new TypeError("Failed to fetch")}case"error":throw new TypeError("Failed to fetch");case"manual":return o}}}}console.debug("bare-mux: running v2.1.7 (build c56d286)"),e.BareClient=m,e.BareMuxConnection=class{constructor(e){this.worker=new p(e)}async getTransport(){return(await this.worker.sendMessage({type:"get"})).name}async setTransport(e,t,r){await this.setManualTransport(`\n\t\t\tconst { default: BareTransport } = await import("${e}");\n\t\t\treturn [BareTransport, "${e}"];\n\t\t`,t,r)}async setManualTransport(e,t,r){if("bare-mux-remote"===e)throw new Error("Use setRemoteTransport.");await this.worker.sendMessage({type:"set",client:{function:e,args:t}},r)}async setRemoteTransport(e,t){const r=new MessageChannel;r.port1.onmessage=async t=>{const r=t.data.port,a=t.data.message;if("fetch"===a.type)try{e.ready||await e.init(),await async function(e,t,r){const a=await r.request(new URL(e.fetch.remote),e.fetch.method,e.fetch.body,e.fetch.headers,null);if(!d()&&a.body instanceof ReadableStream){const e=new Response(a.body);a.body=await e.arrayBuffer()}a.body instanceof ReadableStream||a.body instanceof ArrayBuffer?s.call(t,{type:"fetch",fetch:a},[a.body]):s.call(t,{type:"fetch",fetch:a})}(a,r,e)}catch(e){w(r,e,"fetch")}else if("websocket"===a.type)try{e.ready||await e.init(),await async function(e,t,r){const[a,o]=r.connect(new URL(e.websocket.url),e.websocket.protocols,e.websocket.requestHeaders,(t=>{s.call(e.websocket.channel,{type:"open",args:[t]})}),(t=>{t instanceof ArrayBuffer?s.call(e.websocket.channel,{type:"message",args:[t]},[t]):s.call(e.websocket.channel,{type:"message",args:[t]})}),((t,r)=>{s.call(e.websocket.channel,{type:"close",args:[t,r]})}),(t=>{s.call(e.websocket.channel,{type:"error",args:[t]})}));e.websocket.channel.onmessage=e=>{"data"===e.data.type?a(e.data.data):"close"===e.data.type&&o(e.data.closeCode,e.data.closeReason)},s.call(t,{type:"websocket"})}(a,r,e)}catch(e){w(r,e,"websocket")}},await this.worker.sendMessage({type:"set",client:{function:"bare-mux-remote",args:[r.port2,t]}},[r.port2])}getInnerPort(){return this.worker.port}},e.BareWebSocket=u,e.WebSocketFields=n,e.WorkerConnection=p,e.browserSupportsTransferringStreams=d,e.default=m,e.maxRedirects=20,e.validProtocol=f,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=20,t=globalThis.fetch,r=globalThis.SharedWorker,a=globalThis.localStorage,s=globalThis.navigator.serviceWorker,o=MessagePort.prototype.postMessage,n={prototype:{send:WebSocket.prototype.send},CLOSED:WebSocket.CLOSED,CLOSING:WebSocket.CLOSING,CONNECTING:WebSocket.CONNECTING,OPEN:WebSocket.OPEN};async function c(){const e=(await self.clients.matchAll({type:"window",includeUncontrolled:!0})).map((async e=>{const t=await function(e){let t=new MessageChannel;return new Promise((r=>{e.postMessage({type:"getPort",port:t.port2},[t.port2]),t.port1.onmessage=e=>{r(e.data)}}))}(e);return await i(t),t})),t=Promise.race([Promise.any(e),new Promise(((e,t)=>setTimeout(t,1e3,new TypeError("timeout"))))]);try{return await t}catch(e){if(e instanceof AggregateError)throw console.error("bare-mux: failed to get a bare-mux SharedWorker MessagePort as all clients returned an invalid MessagePort."),new Error("All clients returned an invalid MessagePort.");return console.warn("bare-mux: failed to get a bare-mux SharedWorker MessagePort within 1s, retrying"),await c()}}function i(e){const t=new MessageChannel,r=new Promise(((e,r)=>{t.port1.onmessage=t=>{"pong"===t.data.type&&e()},setTimeout(r,1500)}));return o.call(e,{message:{type:"ping"},port:t.port2},[t.port2]),r}function l(e,t){const a=new r(e,"bare-mux-worker");return t&&s.addEventListener("message",(t=>{if("getPort"===t.data.type&&t.data.port){console.debug("bare-mux: recieved request for port from sw");const a=new r(e,"bare-mux-worker");o.call(t.data.port,a.port,[a.port])}})),a.port}let h=null;function d(){if(null===h){const e=new MessageChannel,t=new ReadableStream;let r;try{o.call(e.port1,t,[t]),r=!0}catch(e){r=!1}return h=r,r}return h}class p{constructor(e){this.channel=new BroadcastChannel("bare-mux"),e instanceof MessagePort||e instanceof Promise?this.port=e:this.createChannel(e,!0)}createChannel(e,t){if(self.clients)this.port=c(),this.channel.onmessage=e=>{"refreshPort"===e.data.type&&(this.port=c())};else if(e&&SharedWorker){if(!e.startsWith("/")&&!e.includes("://"))throw new Error("Invalid URL. Must be absolute or start at the root.");this.port=l(e,t),console.debug("bare-mux: setting localStorage bare-mux-path to",e),a["bare-mux-path"]=e}else{if(!SharedWorker)throw new Error("Unable to get a channel to the SharedWorker.");{const e=a["bare-mux-path"];if(console.debug("bare-mux: got localStorage bare-mux-path:",e),!e)throw new Error("Unable to get bare-mux workerPath from localStorage.");this.port=l(e,t)}}}async sendMessage(e,t){this.port instanceof Promise&&(this.port=await this.port);try{await i(this.port)}catch{return console.warn("bare-mux: Failed to get a ping response from the worker within 1.5s. Assuming port is dead."),this.createChannel(),await this.sendMessage(e,t)}const r=new MessageChannel,a=[r.port2,...t||[]],s=new Promise(((e,t)=>{r.port1.onmessage=r=>{const a=r.data;"error"===a.type?t(a.error):e(a)}}));return o.call(this.port,{message:e,port:r.port2},a),await s}}class w extends EventTarget{constructor(e,t=[],r,a){super(),this.protocols=t,this.readyState=n.CONNECTING,this.url=e.toString(),this.protocols=t;const s=e=>{this.protocols=e,this.readyState=n.OPEN;const t=new Event("open");this.dispatchEvent(t)},o=async e=>{const t=new MessageEvent("message",{data:e});this.dispatchEvent(t)},c=(e,t)=>{this.readyState=n.CLOSED;const r=new CloseEvent("close",{code:e,reason:t});this.dispatchEvent(r)},i=()=>{this.readyState=n.CLOSED;const e=new Event("error");this.dispatchEvent(e)};this.channel=new MessageChannel,this.channel.port1.onmessage=e=>{"open"===e.data.type?s(e.data.args[0]):"message"===e.data.type?o(e.data.args[0]):"close"===e.data.type?c(e.data.args[0],e.data.args[1]):"error"===e.data.type&&i()},r.sendMessage({type:"websocket",websocket:{url:e.toString(),protocols:t,requestHeaders:a,channel:this.channel.port2}},[this.channel.port2])}send(...e){if(this.readyState===n.CONNECTING)throw new DOMException("Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.");let t=e[0];t.buffer&&(t=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)),o.call(this.channel.port1,{type:"data",data:t},t instanceof ArrayBuffer?[t]:[])}close(e,t){o.call(this.channel.port1,{type:"close",closeCode:e,closeReason:t})}}function u(e,t,r){console.error(`error while processing '${r}': `,t),e.postMessage({type:"error",error:t})}function g(e){for(let t=0;t<e.length;t++){const r=e[t];if(!"!#$%&'*+-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz|~".includes(r))return!1}return!0}const f=["ws:","wss:"],y=[101,204,205,304],b=[301,302,303,307,308];class m{constructor(e){this.worker=new p(e)}async getTransport(){return(await this.worker.sendMessage({type:"get"})).name}async setTransport(e,t,r){await this.setManualTransport(`\n\t\t\tconst { default: BareTransport } = await import("${e}");\n\t\t\treturn [BareTransport, "${e}"];\n\t\t`,t,r)}async setManualTransport(e,t,r){if("bare-mux-remote"===e)throw new Error("Use setRemoteTransport.");await this.worker.sendMessage({type:"set",client:{function:e,args:t}},r)}async setRemoteTransport(e,t){const r=new MessageChannel;r.port1.onmessage=async t=>{const r=t.data.port,a=t.data.message;if("fetch"===a.type)try{e.ready||await e.init(),await async function(e,t,r){const a=await r.request(new URL(e.fetch.remote),e.fetch.method,e.fetch.body,e.fetch.headers,null);if(!d()&&a.body instanceof ReadableStream){const e=new Response(a.body);a.body=await e.arrayBuffer()}a.body instanceof ReadableStream||a.body instanceof ArrayBuffer?o.call(t,{type:"fetch",fetch:a},[a.body]):o.call(t,{type:"fetch",fetch:a})}(a,r,e)}catch(e){u(r,e,"fetch")}else if("websocket"===a.type)try{e.ready||await e.init(),await async function(e,t,r){const[a,s]=r.connect(new URL(e.websocket.url),e.websocket.protocols,e.websocket.requestHeaders,(t=>{o.call(e.websocket.channel,{type:"open",args:[t]})}),(t=>{t instanceof ArrayBuffer?o.call(e.websocket.channel,{type:"message",args:[t]},[t]):o.call(e.websocket.channel,{type:"message",args:[t]})}),((t,r)=>{o.call(e.websocket.channel,{type:"close",args:[t,r]})}),(t=>{o.call(e.websocket.channel,{type:"error",args:[t]})}));e.websocket.channel.onmessage=e=>{"data"===e.data.type?a(e.data.data):"close"===e.data.type&&s(e.data.closeCode,e.data.closeReason)},o.call(t,{type:"websocket"})}(a,r,e)}catch(e){u(r,e,"websocket")}},await this.worker.sendMessage({type:"set",client:{function:"bare-mux-remote",args:[r.port2,t]}},[r.port2])}getInnerPort(){return this.worker.port}}class k{constructor(e){this.worker=new p(e)}createWebSocket(e,t=[],r,a){try{e=new URL(e)}catch(t){throw new DOMException(`Faiiled to construct 'WebSocket': The URL '${e}' is invalid.`)}if(!f.includes(e.protocol))throw new DOMException(`Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. '${e.protocol}' is not allowed.`);Array.isArray(t)||(t=[t]),t=t.map(String);for(const e of t)if(!g(e))throw new DOMException(`Failed to construct 'WebSocket': The subprotocol '${e}' is invalid.`);a=a||{};return new w(e,t,this.worker,a)}async fetch(e,r){const a=new Request(e,r),s=r?.headers||a.headers,o=s instanceof Headers?Object.fromEntries(s):s,n=a.body;let c=new URL(a.url);if(c.protocol.startsWith("blob:")){const e=await t(c),r=new Response(e.body,e);return r.rawHeaders=Object.fromEntries(e.headers),r}for(let e=0;;e++){let t=(await this.worker.sendMessage({type:"fetch",fetch:{remote:c.toString(),method:a.method,headers:o,body:n||void 0}},n?[n]:[])).fetch,s=new Response(y.includes(t.status)?void 0:t.body,{headers:new Headers(t.headers),status:t.status,statusText:t.statusText});s.rawHeaders=t.headers,s.rawResponse=t,s.finalURL=c.toString();const i=r?.redirect||a.redirect;if(!b.includes(s.status))return s;switch(i){case"follow":{const t=s.headers.get("location");if(20>e&&null!==t){c=new URL(t,c);continue}throw new TypeError("Failed to fetch")}case"error":throw new TypeError("Failed to fetch");case"manual":return s}}}}console.debug("bare-mux: running v2.1.7 (build c56d286)");export{k as BareClient,m as BareMuxConnection,w as BareWebSocket,n as WebSocketFields,p as WorkerConnection,d as browserSupportsTransferringStreams,k as default,e as maxRedirects,g as validProtocol};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
!(function () {
|
|
2
|
+
"use strict";
|
|
3
|
+
const e = MessagePort.prototype.postMessage;
|
|
4
|
+
let t = null;
|
|
5
|
+
function a(e, t, a) {
|
|
6
|
+
console.error(`error while processing '${a}': `, t),
|
|
7
|
+
e.postMessage({ type: "error", error: t });
|
|
8
|
+
}
|
|
9
|
+
async function n(a, n, s) {
|
|
10
|
+
const o = await s.request(
|
|
11
|
+
new URL(a.fetch.remote),
|
|
12
|
+
a.fetch.method,
|
|
13
|
+
a.fetch.body,
|
|
14
|
+
a.fetch.headers,
|
|
15
|
+
null
|
|
16
|
+
);
|
|
17
|
+
if (
|
|
18
|
+
!(function () {
|
|
19
|
+
if (null === t) {
|
|
20
|
+
const a = new MessageChannel(),
|
|
21
|
+
n = new ReadableStream();
|
|
22
|
+
let s;
|
|
23
|
+
try {
|
|
24
|
+
e.call(a.port1, n, [n]), (s = !0);
|
|
25
|
+
} catch (e) {
|
|
26
|
+
s = !1;
|
|
27
|
+
}
|
|
28
|
+
return (t = s), s;
|
|
29
|
+
}
|
|
30
|
+
return t;
|
|
31
|
+
})() &&
|
|
32
|
+
o.body instanceof ReadableStream
|
|
33
|
+
) {
|
|
34
|
+
const e = new Response(o.body);
|
|
35
|
+
o.body = await e.arrayBuffer();
|
|
36
|
+
}
|
|
37
|
+
o.body instanceof ReadableStream || o.body instanceof ArrayBuffer
|
|
38
|
+
? e.call(n, { type: "fetch", fetch: o }, [o.body])
|
|
39
|
+
: e.call(n, { type: "fetch", fetch: o });
|
|
40
|
+
}
|
|
41
|
+
let s = null,
|
|
42
|
+
o = "";
|
|
43
|
+
function c() {
|
|
44
|
+
return new Error("there are no bare clients", {
|
|
45
|
+
cause:
|
|
46
|
+
"No BareTransport was set. Try creating a BareMuxConnection and calling setTransport() or setManualTransport() on it before using BareClient.",
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function r(t, a) {
|
|
50
|
+
const n = s;
|
|
51
|
+
let o = [a];
|
|
52
|
+
t.fetch?.body && o.push(t.fetch.body),
|
|
53
|
+
t.websocket?.channel && o.push(t.websocket.channel),
|
|
54
|
+
e.call(n, { message: t, port: a }, o);
|
|
55
|
+
}
|
|
56
|
+
function l(t) {
|
|
57
|
+
t.onmessage = async (t) => {
|
|
58
|
+
const l = t.data.port,
|
|
59
|
+
i = t.data.message;
|
|
60
|
+
if ("ping" === i.type) e.call(l, { type: "pong" });
|
|
61
|
+
else if ("set" === i.type)
|
|
62
|
+
try {
|
|
63
|
+
const t = async function () {}.constructor;
|
|
64
|
+
if ("bare-mux-remote" === i.client.function)
|
|
65
|
+
(s = i.client.args[0]),
|
|
66
|
+
(o = `bare-mux-remote (${i.client.args[1]})`);
|
|
67
|
+
else {
|
|
68
|
+
const e = new t(i.client.function),
|
|
69
|
+
[a, n] = await e();
|
|
70
|
+
(s = new a(...i.client.args)), (o = n);
|
|
71
|
+
}
|
|
72
|
+
console.log("set transport to ", s, o), e.call(l, { type: "set" });
|
|
73
|
+
} catch (e) {
|
|
74
|
+
a(l, e, "set");
|
|
75
|
+
}
|
|
76
|
+
else if ("get" === i.type) l.postMessage({ type: "get", name: o });
|
|
77
|
+
else if ("fetch" === i.type)
|
|
78
|
+
try {
|
|
79
|
+
if (!s) throw c();
|
|
80
|
+
if (s instanceof MessagePort) return void r(i, l);
|
|
81
|
+
s.ready || (await s.init()), await n(i, l, s);
|
|
82
|
+
} catch (e) {
|
|
83
|
+
a(l, e, "fetch");
|
|
84
|
+
}
|
|
85
|
+
else if ("websocket" === i.type)
|
|
86
|
+
try {
|
|
87
|
+
if (!s) throw c();
|
|
88
|
+
if (s instanceof MessagePort) return void r(i, l);
|
|
89
|
+
s.ready || (await s.init()),
|
|
90
|
+
await (async function (t, a, n) {
|
|
91
|
+
const [s, o] = n.connect(
|
|
92
|
+
new URL(t.websocket.url),
|
|
93
|
+
t.websocket.protocols,
|
|
94
|
+
t.websocket.requestHeaders,
|
|
95
|
+
(a) => {
|
|
96
|
+
e.call(t.websocket.channel, { type: "open", args: [a] });
|
|
97
|
+
},
|
|
98
|
+
(a) => {
|
|
99
|
+
a instanceof ArrayBuffer
|
|
100
|
+
? e.call(
|
|
101
|
+
t.websocket.channel,
|
|
102
|
+
{ type: "message", args: [a] },
|
|
103
|
+
[a]
|
|
104
|
+
)
|
|
105
|
+
: e.call(t.websocket.channel, {
|
|
106
|
+
type: "message",
|
|
107
|
+
args: [a],
|
|
108
|
+
});
|
|
109
|
+
},
|
|
110
|
+
(a, n) => {
|
|
111
|
+
e.call(t.websocket.channel, { type: "close", args: [a, n] });
|
|
112
|
+
},
|
|
113
|
+
(a) => {
|
|
114
|
+
e.call(t.websocket.channel, { type: "error", args: [a] });
|
|
115
|
+
}
|
|
116
|
+
);
|
|
117
|
+
(t.websocket.channel.onmessage = (e) => {
|
|
118
|
+
"data" === e.data.type
|
|
119
|
+
? s(e.data.data)
|
|
120
|
+
: "close" === e.data.type &&
|
|
121
|
+
o(e.data.closeCode, e.data.closeReason);
|
|
122
|
+
}),
|
|
123
|
+
e.call(a, { type: "websocket" });
|
|
124
|
+
})(i, l, s);
|
|
125
|
+
} catch (e) {
|
|
126
|
+
a(l, e, "websocket");
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
new BroadcastChannel("bare-mux").postMessage({ type: "refreshPort" }),
|
|
131
|
+
(self.onconnect = (e) => {
|
|
132
|
+
l(e.ports[0]);
|
|
133
|
+
}),
|
|
134
|
+
console.debug("bare-mux: running v2.1.7 (build c56d286)");
|
|
135
|
+
})();
|
|
136
|
+
//# sourceMappingURL=worker.js.map
|