chemicaljs 2.4.1 → 2.5.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/client/chemical.js +4 -4
- package/client/chemical.sw.js +3 -3
- package/dist/index.cjs +67 -33
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +61 -33
- package/dist/index.js.map +1 -1
- package/package.json +8 -4
- package/ultraviolet/dist/8a9jmYs_PS.bundle.js +7 -0
- package/ultraviolet/dist/8a9jmYs_PS.client.js +4 -0
- package/ultraviolet/dist/8a9jmYs_PS.config.js +10 -0
- package/ultraviolet/dist/8a9jmYs_PS.handler.js +1 -0
- package/ultraviolet/dist/8a9jmYs_PS.sw.js +47 -0
- package/ultraviolet/index.js +8 -0
- package/ultraviolet/path.js +3 -0
package/client/chemical.js
CHANGED
|
@@ -437,8 +437,8 @@ function setupFetch() {
|
|
|
437
437
|
|
|
438
438
|
await loadScript("/baremux/index.js");
|
|
439
439
|
if (uvEnabled) {
|
|
440
|
-
await loadScript(
|
|
441
|
-
await loadScript(
|
|
440
|
+
await loadScript(`/${uvRandomPath}/${uvRandomPath}.bundle.js`);
|
|
441
|
+
await loadScript(`/${uvRandomPath}/${uvRandomPath}.config.js`);
|
|
442
442
|
}
|
|
443
443
|
if (scramjetEnabled) {
|
|
444
444
|
await loadScript("/scramjet/scramjet.shared.js");
|
|
@@ -448,8 +448,8 @@ if (scramjetEnabled) {
|
|
|
448
448
|
files: {
|
|
449
449
|
wasm: "/scramjet/scramjet.wasm.js",
|
|
450
450
|
worker: "/scramjet/scramjet.worker.js",
|
|
451
|
-
client: "/
|
|
452
|
-
shared: "/
|
|
451
|
+
client: "/scramjet/scramjet.client.js",
|
|
452
|
+
shared: "/scramjet/scramjet.shared.js",
|
|
453
453
|
sync: "/scramjet/scramjet.sync.js",
|
|
454
454
|
},
|
|
455
455
|
});
|
package/client/chemical.sw.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
if (uvEnabled) {
|
|
2
|
-
importScripts(
|
|
3
|
-
importScripts(
|
|
4
|
-
importScripts(__uv$config.sw ||
|
|
2
|
+
importScripts(`/${uvRandomPath}/${uvRandomPath}.bundle.js`);
|
|
3
|
+
importScripts(`/${uvRandomPath}/${uvRandomPath}.config.js`);
|
|
4
|
+
importScripts(__uv$config.sw || `/${uvRandomPath}/${uvRandomPath}.sw.js`);
|
|
5
5
|
}
|
|
6
6
|
if (scramjetEnabled) {
|
|
7
7
|
importScripts("/scramjet/scramjet.wasm.js");
|
package/dist/index.cjs
CHANGED
|
@@ -35,7 +35,13 @@ __export(src_exports, {
|
|
|
35
35
|
ChemicalVitePlugin: () => ChemicalVitePlugin
|
|
36
36
|
});
|
|
37
37
|
module.exports = __toCommonJS(src_exports);
|
|
38
|
-
|
|
38
|
+
|
|
39
|
+
// node_modules/tsup/assets/cjs_shims.js
|
|
40
|
+
var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
|
|
41
|
+
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
42
|
+
|
|
43
|
+
// src/index.ts
|
|
44
|
+
var import_node_path2 = require("path");
|
|
39
45
|
var import_node_fs = require("fs");
|
|
40
46
|
var import_node_http = require("http");
|
|
41
47
|
var import_express = __toESM(require("express"), 1);
|
|
@@ -43,12 +49,22 @@ var import_server = require("@mercuryworkshop/wisp-js/server");
|
|
|
43
49
|
var import_node = require("@mercuryworkshop/bare-mux/node");
|
|
44
50
|
var import_libcurl_transport = require("@mercuryworkshop/libcurl-transport");
|
|
45
51
|
var import_epoxy_transport = require("@mercuryworkshop/epoxy-transport");
|
|
46
|
-
|
|
52
|
+
|
|
53
|
+
// ultraviolet/index.js
|
|
54
|
+
var import_node_path = require("path");
|
|
55
|
+
var import_node_url = require("url");
|
|
56
|
+
var __dirname2 = (0, import_node_path.dirname)((0, import_node_url.fileURLToPath)(importMetaUrl));
|
|
57
|
+
var uvPath = (0, import_node_path.resolve)(__dirname2, "../ultraviolet/dist/");
|
|
58
|
+
|
|
59
|
+
// ultraviolet/path.js
|
|
60
|
+
var uvRandomPath = "8a9jmYs_PS";
|
|
61
|
+
|
|
62
|
+
// src/index.ts
|
|
47
63
|
var import_scramjet = require("@mercuryworkshop/scramjet");
|
|
48
64
|
var import_server2 = __toESM(require("rammerhead/src/server/index.js"), 1);
|
|
49
65
|
import_server.logging.set_level(import_server.logging.ERROR);
|
|
50
66
|
var ChemicalServer = class {
|
|
51
|
-
constructor(options) {
|
|
67
|
+
constructor(options = {}) {
|
|
52
68
|
if (options) {
|
|
53
69
|
if (typeof options !== "object" || Array.isArray(options)) {
|
|
54
70
|
options = {};
|
|
@@ -73,7 +89,9 @@ var ChemicalServer = class {
|
|
|
73
89
|
this.server = (0, import_node_http.createServer)();
|
|
74
90
|
this.app = (0, import_express.default)();
|
|
75
91
|
this.app.serveChemical = this.serveChemical;
|
|
76
|
-
|
|
92
|
+
}
|
|
93
|
+
[Symbol.iterator]() {
|
|
94
|
+
return [this.app, this.listen][Symbol.iterator]();
|
|
77
95
|
}
|
|
78
96
|
serveChemical = () => {
|
|
79
97
|
const rh = (0, import_server2.default)();
|
|
@@ -106,7 +124,7 @@ var ChemicalServer = class {
|
|
|
106
124
|
};
|
|
107
125
|
this.app.get("/chemical.js", async (req, res) => {
|
|
108
126
|
let chemicalMain = await (0, import_node_fs.readFileSync)(
|
|
109
|
-
(0,
|
|
127
|
+
(0, import_node_path2.resolve)(__dirname, "../client/chemical.js"),
|
|
110
128
|
"utf8"
|
|
111
129
|
);
|
|
112
130
|
if (this.options.default) {
|
|
@@ -129,28 +147,31 @@ var ChemicalServer = class {
|
|
|
129
147
|
chemicalMain = "const scramjetEnabled = " + String(this.options.scramjet) + ";\n" + chemicalMain;
|
|
130
148
|
chemicalMain = "const rammerheadEnabled = " + String(this.options.rammerhead) + ";\n" + chemicalMain;
|
|
131
149
|
chemicalMain = "const demoMode = " + String(this.options.demoMode) + ";\n" + chemicalMain;
|
|
150
|
+
chemicalMain = `const uvRandomPath = "${String(uvRandomPath)}";
|
|
151
|
+
` + chemicalMain;
|
|
132
152
|
chemicalMain = "(async () => {\n" + chemicalMain + "\n})();";
|
|
133
153
|
res.type("application/javascript");
|
|
134
154
|
return res.send(chemicalMain);
|
|
135
155
|
});
|
|
136
156
|
this.app.get("/chemical.sw.js", async (req, res) => {
|
|
137
157
|
let chemicalSW = await (0, import_node_fs.readFileSync)(
|
|
138
|
-
(0,
|
|
158
|
+
(0, import_node_path2.resolve)(__dirname, "../client/chemical.sw.js"),
|
|
139
159
|
"utf8"
|
|
140
160
|
);
|
|
141
161
|
chemicalSW = "const uvEnabled = " + String(this.options.uv) + ";\n" + chemicalSW;
|
|
142
162
|
chemicalSW = "const scramjetEnabled = " + String(this.options.scramjet) + ";\n" + chemicalSW;
|
|
143
163
|
chemicalSW = "const rammerheadEnabled = " + String(this.options.rammerhead) + ";\n" + chemicalSW;
|
|
164
|
+
chemicalSW = `const uvRandomPath = "${String(uvRandomPath)}";
|
|
165
|
+
` + chemicalSW;
|
|
144
166
|
res.type("application/javascript");
|
|
145
167
|
return res.send(chemicalSW);
|
|
146
168
|
});
|
|
147
|
-
this.app.use(import_express.default.static((0,
|
|
169
|
+
this.app.use(import_express.default.static((0, import_node_path2.resolve)(__dirname, "../client")));
|
|
148
170
|
this.app.use("/baremux/", import_express.default.static(import_node.baremuxPath));
|
|
149
171
|
this.app.use("/libcurl/", import_express.default.static(import_libcurl_transport.libcurlPath));
|
|
150
172
|
this.app.use("/epoxy/", import_express.default.static(import_epoxy_transport.epoxyPath));
|
|
151
173
|
if (this.options.uv) {
|
|
152
|
-
this.app.use(
|
|
153
|
-
this.app.use("/uv/", import_express.default.static(import_ultraviolet.uvPath));
|
|
174
|
+
this.app.use(`/${uvRandomPath}/`, import_express.default.static(uvPath));
|
|
154
175
|
}
|
|
155
176
|
if (this.options.scramjet) {
|
|
156
177
|
this.app.use("/scramjet/", import_express.default.static(import_scramjet.scramjetPath));
|
|
@@ -235,7 +256,7 @@ var ChemicalVitePlugin = (options) => ({
|
|
|
235
256
|
const app = (0, import_express.default)();
|
|
236
257
|
app.get("/chemical.js", async function(req, res) {
|
|
237
258
|
let chemicalMain = await (0, import_node_fs.readFileSync)(
|
|
238
|
-
(0,
|
|
259
|
+
(0, import_node_path2.resolve)(__dirname, "../client/chemical.js"),
|
|
239
260
|
"utf8"
|
|
240
261
|
);
|
|
241
262
|
if (options.default) {
|
|
@@ -258,28 +279,31 @@ var ChemicalVitePlugin = (options) => ({
|
|
|
258
279
|
chemicalMain = "const scramjetEnabled = " + String(options.scramjet) + ";\n" + chemicalMain;
|
|
259
280
|
chemicalMain = "const rammerheadEnabled = " + String(options.rammerhead) + ";\n" + chemicalMain;
|
|
260
281
|
chemicalMain = "const demoMode = " + String(options.demoMode) + ";\n" + chemicalMain;
|
|
282
|
+
chemicalMain = `const uvRandomPath = "${String(uvRandomPath)}";
|
|
283
|
+
` + chemicalMain;
|
|
261
284
|
chemicalMain = "(async () => {\n" + chemicalMain + "\n})();";
|
|
262
285
|
res.type("application/javascript");
|
|
263
286
|
return res.send(chemicalMain);
|
|
264
287
|
});
|
|
265
288
|
app.get("/chemical.sw.js", async function(req, res) {
|
|
266
289
|
let chemicalSW = await (0, import_node_fs.readFileSync)(
|
|
267
|
-
(0,
|
|
290
|
+
(0, import_node_path2.resolve)(__dirname, "../client/chemical.sw.js"),
|
|
268
291
|
"utf8"
|
|
269
292
|
);
|
|
270
293
|
chemicalSW = "const uvEnabled = " + String(options.uv) + ";\n" + chemicalSW;
|
|
271
294
|
chemicalSW = "const scramjetEnabled = " + String(options.scramjet) + ";\n" + chemicalSW;
|
|
272
295
|
chemicalSW = "const rammerheadEnabled = " + String(options.rammerhead) + ";\n" + chemicalSW;
|
|
296
|
+
chemicalSW = `const uvRandomPath = "${String(uvRandomPath)}";
|
|
297
|
+
` + chemicalSW;
|
|
273
298
|
res.type("application/javascript");
|
|
274
299
|
return res.send(chemicalSW);
|
|
275
300
|
});
|
|
276
|
-
app.use(import_express.default.static((0,
|
|
301
|
+
app.use(import_express.default.static((0, import_node_path2.resolve)(__dirname, "../client")));
|
|
277
302
|
app.use("/baremux/", import_express.default.static(import_node.baremuxPath));
|
|
278
303
|
app.use("/libcurl/", import_express.default.static(import_libcurl_transport.libcurlPath));
|
|
279
304
|
app.use("/epoxy/", import_express.default.static(import_epoxy_transport.epoxyPath));
|
|
280
305
|
if (options.uv) {
|
|
281
|
-
app.use(
|
|
282
|
-
app.use("/uv/", import_express.default.static(import_ultraviolet.uvPath));
|
|
306
|
+
app.use(`/${uvRandomPath}/`, import_express.default.static(uvPath));
|
|
283
307
|
}
|
|
284
308
|
if (options.scramjet) {
|
|
285
309
|
app.use("/scramjet/", import_express.default.static(import_scramjet.scramjetPath));
|
|
@@ -351,17 +375,17 @@ var ChemicalBuild = class {
|
|
|
351
375
|
this.options = options;
|
|
352
376
|
}
|
|
353
377
|
async write(deletePath = false) {
|
|
354
|
-
if (!(0, import_node_fs.existsSync)((0,
|
|
355
|
-
(0, import_node_fs.mkdirSync)((0,
|
|
378
|
+
if (!(0, import_node_fs.existsSync)((0, import_node_path2.resolve)(this.options.path || ""))) {
|
|
379
|
+
(0, import_node_fs.mkdirSync)((0, import_node_path2.resolve)(this.options.path || ""), { recursive: true });
|
|
356
380
|
} else {
|
|
357
381
|
if (deletePath) {
|
|
358
|
-
(0, import_node_fs.readdirSync)((0,
|
|
359
|
-
(file) => (0, import_node_fs.rmSync)((0,
|
|
382
|
+
(0, import_node_fs.readdirSync)((0, import_node_path2.resolve)(this.options.path || "")).forEach(
|
|
383
|
+
(file) => (0, import_node_fs.rmSync)((0, import_node_path2.resolve)(this.options.path || "", file), { recursive: true })
|
|
360
384
|
);
|
|
361
385
|
}
|
|
362
386
|
}
|
|
363
387
|
let chemicalMain = await (0, import_node_fs.readFileSync)(
|
|
364
|
-
(0,
|
|
388
|
+
(0, import_node_path2.resolve)(__dirname, "../client/chemical.js"),
|
|
365
389
|
"utf8"
|
|
366
390
|
);
|
|
367
391
|
if (this.options.default) {
|
|
@@ -384,38 +408,48 @@ var ChemicalBuild = class {
|
|
|
384
408
|
chemicalMain = "const scramjetEnabled = " + String(this.options.scramjet) + ";\n" + chemicalMain;
|
|
385
409
|
chemicalMain = "const rammerheadEnabled = " + String(this.options.rammerhead) + ";\n" + chemicalMain;
|
|
386
410
|
chemicalMain = "const demoMode = " + String(this.options.demoMode) + ";\n" + chemicalMain;
|
|
411
|
+
chemicalMain = `const uvRandomPath = "${String(uvRandomPath)}";
|
|
412
|
+
` + chemicalMain;
|
|
387
413
|
chemicalMain = "(async () => {\n" + chemicalMain + "\n})();";
|
|
388
|
-
(0, import_node_fs.writeFileSync)(
|
|
414
|
+
(0, import_node_fs.writeFileSync)(
|
|
415
|
+
(0, import_node_path2.resolve)(this.options.path || "", "chemical.js"),
|
|
416
|
+
chemicalMain
|
|
417
|
+
);
|
|
389
418
|
let chemicalSW = await (0, import_node_fs.readFileSync)(
|
|
390
|
-
(0,
|
|
419
|
+
(0, import_node_path2.resolve)(__dirname, "../client/chemical.sw.js"),
|
|
391
420
|
"utf8"
|
|
392
421
|
);
|
|
393
422
|
chemicalSW = "const uvEnabled = " + String(this.options.uv) + ";\n" + chemicalSW;
|
|
394
423
|
chemicalSW = "const scramjetEnabled = " + String(this.options.scramjet) + ";\n" + chemicalSW;
|
|
395
424
|
chemicalSW = "const rammerheadEnabled = " + String(this.options.rammerhead) + ";\n" + chemicalSW;
|
|
396
|
-
|
|
425
|
+
chemicalSW = `const uvRandomPath = "${String(uvRandomPath)}";
|
|
426
|
+
` + chemicalSW;
|
|
427
|
+
(0, import_node_fs.writeFileSync)(
|
|
428
|
+
(0, import_node_path2.resolve)(this.options.path || "", "chemical.sw.js"),
|
|
429
|
+
chemicalSW
|
|
430
|
+
);
|
|
397
431
|
if (this.options.demoMode) {
|
|
398
432
|
(0, import_node_fs.copyFileSync)(
|
|
399
|
-
(0,
|
|
400
|
-
(0,
|
|
433
|
+
(0, import_node_path2.resolve)(__dirname, "client/chemical.demo.html"),
|
|
434
|
+
(0, import_node_path2.resolve)(this.options.path || "", "chemical.demo.html")
|
|
401
435
|
);
|
|
402
436
|
}
|
|
403
|
-
(0, import_node_fs.cpSync)(import_node.baremuxPath, (0,
|
|
437
|
+
(0, import_node_fs.cpSync)(import_node.baremuxPath, (0, import_node_path2.resolve)(this.options.path || "", "baremux"), {
|
|
438
|
+
recursive: true
|
|
439
|
+
});
|
|
440
|
+
(0, import_node_fs.cpSync)(import_libcurl_transport.libcurlPath, (0, import_node_path2.resolve)(this.options.path || "", "libcurl"), {
|
|
404
441
|
recursive: true
|
|
405
442
|
});
|
|
406
|
-
(0, import_node_fs.cpSync)(
|
|
443
|
+
(0, import_node_fs.cpSync)(import_epoxy_transport.epoxyPath, (0, import_node_path2.resolve)(this.options.path || "", "epoxy"), {
|
|
407
444
|
recursive: true
|
|
408
445
|
});
|
|
409
|
-
(0, import_node_fs.cpSync)(
|
|
410
|
-
(0, import_node_fs.cpSync)(import_libcurl_transport.libcurlPath, (0, import_node_path.resolve)(this.options.path || "", "libcurl"), {
|
|
446
|
+
(0, import_node_fs.cpSync)(import_libcurl_transport.libcurlPath, (0, import_node_path2.resolve)(this.options.path || "", "libcurl"), {
|
|
411
447
|
recursive: true
|
|
412
448
|
});
|
|
413
449
|
if (this.options.uv) {
|
|
414
|
-
(0, import_node_fs.cpSync)(
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
(0, import_node_path.resolve)(this.options.path || "", "uv/uv.config.js")
|
|
418
|
-
);
|
|
450
|
+
(0, import_node_fs.cpSync)(uvPath, (0, import_node_path2.resolve)(this.options.path || "", uvRandomPath), {
|
|
451
|
+
recursive: true
|
|
452
|
+
});
|
|
419
453
|
}
|
|
420
454
|
}
|
|
421
455
|
};
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { resolve } from \"node:path\";\nimport {\n readFileSync,\n cpSync,\n writeFileSync,\n copyFileSync,\n existsSync,\n mkdirSync,\n rmSync,\n readdirSync,\n} from \"node:fs\";\nimport { createServer, Server } from \"node:http\";\nimport { Socket } from \"node:net\";\nimport express, { Request, Response, application, Next } from \"express\";\n//@ts-ignore\nimport { server as wisp, logging } from \"@mercuryworkshop/wisp-js/server\";\n//@ts-ignore\nimport { baremuxPath } from \"@mercuryworkshop/bare-mux/node\";\nimport { libcurlPath } from \"@mercuryworkshop/libcurl-transport\";\nimport { epoxyPath } from \"@mercuryworkshop/epoxy-transport\";\nimport { uvPath } from \"@titaniumnetwork-dev/ultraviolet\";\nimport { scramjetPath } from \"@mercuryworkshop/scramjet\";\nimport createRammerhead, { RammerheadProxy } from \"rammerhead/src/server/index.js\";\nimport { ViteDevServer } from \"vite\";\n\nlogging.set_level(logging.ERROR);\n\ninterface WispOptions {\n hostname_blacklist?: Array<RegExp>;\n hostname_whitelist?: Array<RegExp>;\n port_blacklist?: (number | Array<number>)[];\n port_whitelist?: (number | Array<number>)[];\n allow_direct_ip?: boolean;\n allow_private_ips?: boolean;\n allow_loopback_ips?: boolean;\n stream_limit_per_host?: number;\n stream_limit_total?: number;\n allow_udp_streams?: boolean;\n allow_tcp_streams?: boolean;\n dns_ttl?: number;\n dns_method?: \"lookup\" | \"resolve\";\n dns_servers?: Array<string>;\n dns_result_order?: \"ipv4first\" | \"ipv6first\" | \"verbatim\";\n parse_real_ip?: boolean;\n parse_real_ip_from?: Array<string>;\n}\n\ninterface Options {\n uv?: boolean;\n scramjet?: boolean;\n rammerhead?: boolean;\n demoMode?: boolean;\n default?: string;\n wispOptions?: WispOptions;\n}\n\ninterface BuildOptions extends Options {\n path?: string;\n}\n\ninterface ChemicalServer {\n options: Options;\n server: Server;\n app: application;\n}\n\ninterface ChemicalBuild {\n options: BuildOptions;\n}\n\nclass ChemicalServer {\n constructor(options: Options) {\n if (options) {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n options = {};\n console.error(\"Error: ChemicalServer options invalid.\");\n }\n } else {\n options = {};\n }\n\n if (options.uv === undefined) {\n options.uv = true;\n }\n\n if (options.scramjet === undefined) {\n options.scramjet = true;\n }\n\n if (options.rammerhead === undefined) {\n options.rammerhead = true;\n }\n\n if (options.demoMode === undefined) {\n options.demoMode = false;\n }\n\n this.options = options;\n this.server = createServer();\n this.app = express();\n this.app.serveChemical = this.serveChemical;\n\n return [this.app, this.listen] as any;\n }\n serveChemical = () => {\n const rh: RammerheadProxy = createRammerhead();\n const rammerheadScopes: Array<string> = [\n \"/rammerhead.js\",\n \"/hammerhead.js\",\n \"/transport-worker.js\",\n \"/task.js\",\n \"/iframe-task.js\",\n \"/worker-hammerhead.js\",\n \"/messaging\",\n \"/sessionexists\",\n \"/deletesession\",\n \"/newsession\",\n \"/editsession\",\n \"/needpassword\",\n \"/syncLocalStorage\",\n \"/api/shuffleDict\",\n ];\n const rammerheadSession: RegExp = /^\\/[a-z0-9]{32}/;\n const shouldRouteRh = (req: Request): boolean => {\n const url = new URL(req.url, \"http://0.0.0.0\");\n return (\n rammerheadScopes.includes(url.pathname) ||\n rammerheadSession.test(url.pathname)\n );\n };\n const routeRhRequest = (req: Request, res: Response) => {\n rh.emit(\"request\", req, res);\n };\n const routeRhUpgrade = (req: Request, socket: Socket, head: Buffer) => {\n rh.emit(\"upgrade\", req, socket, head);\n };\n\n this.app.get(\"/chemical.js\", async (req: Request, res: Response) => {\n let chemicalMain = await readFileSync(\n resolve(__dirname, \"../client/chemical.js\"),\n \"utf8\"\n );\n\n if (this.options.default) {\n if ([\"uv\", \"rammerhead\", \"scramjet\"].includes(this.options.default)) {\n chemicalMain =\n `const defaultService = \"${this.options.default}\";\\n\\n` +\n chemicalMain;\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n console.error(\"Error: Chemical default option invalid.\");\n }\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n }\n\n chemicalMain =\n \"const uvEnabled = \" + String(this.options.uv) + \";\\n\" + chemicalMain;\n chemicalMain =\n \"const scramjetEnabled = \" +\n String(this.options.scramjet) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const rammerheadEnabled = \" +\n String(this.options.rammerhead) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const demoMode = \" +\n String(this.options.demoMode) +\n \";\\n\" +\n chemicalMain;\n\n chemicalMain = \"(async () => {\\n\" + chemicalMain + \"\\n})();\";\n\n res.type(\"application/javascript\");\n return res.send(chemicalMain);\n });\n this.app.get(\"/chemical.sw.js\", async (req: Request, res: Response) => {\n let chemicalSW = await readFileSync(\n resolve(__dirname, \"../client/chemical.sw.js\"),\n \"utf8\"\n );\n\n chemicalSW =\n \"const uvEnabled = \" + String(this.options.uv) + \";\\n\" + chemicalSW;\n chemicalSW =\n \"const scramjetEnabled = \" +\n String(this.options.scramjet) +\n \";\\n\" +\n chemicalSW;\n chemicalSW =\n \"const rammerheadEnabled = \" +\n String(this.options.rammerhead) +\n \";\\n\" +\n chemicalSW;\n\n res.type(\"application/javascript\");\n return res.send(chemicalSW);\n });\n this.app.use(express.static(resolve(__dirname, \"../client\")));\n this.app.use(\"/baremux/\", express.static(baremuxPath));\n this.app.use(\"/libcurl/\", express.static(libcurlPath));\n this.app.use(\"/epoxy/\", express.static(epoxyPath));\n if (this.options.uv) {\n this.app.use(\"/uv/\", express.static(resolve(__dirname, \"config/uv\")));\n this.app.use(\"/uv/\", express.static(uvPath));\n }\n if (this.options.scramjet) {\n this.app.use(\"/scramjet/\", express.static(scramjetPath));\n }\n this.server.on(\"request\", (req: Request, res: Response) => {\n if (this.options.rammerhead && shouldRouteRh(req)) {\n routeRhRequest(req, res);\n } else {\n this.app(req, res);\n }\n });\n this.server.on(\"upgrade\", (req: Request, socket: Socket, head: Buffer) => {\n if (req.url && req.url.endsWith(\"/wisp/\")) {\n if (this.options.wispOptions) {\n for (let option in this.options.wispOptions) {\n //@ts-ignore\n wisp.options[option] = this.options.wispOptions[option];\n }\n }\n wisp.routeRequest(req, socket, head);\n } else if (this.options.rammerhead && shouldRouteRh(req)) {\n routeRhUpgrade(req, socket, head);\n } else {\n socket.end();\n }\n });\n };\n listen = (port: number, callback: () => void) => {\n this.server.listen(port, callback);\n };\n}\n\nconst ChemicalVitePlugin = (options: Options) => ({\n name: \"chemical-vite-plugin\",\n configureServer(server: ViteDevServer) {\n if (options) {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n options = {};\n console.error(\"Error: ChemicalServer options invalid.\");\n }\n } else {\n options = {};\n }\n\n if (options.uv === undefined) {\n options.uv = true;\n }\n\n if (options.scramjet === undefined) {\n options.scramjet = true;\n }\n\n if (options.rammerhead === undefined) {\n options.rammerhead = true;\n }\n\n if (options.demoMode === undefined) {\n options.demoMode = false;\n }\n\n const rh: RammerheadProxy = createRammerhead();\n const rammerheadScopes: Array<string> = [\n \"/rammerhead.js\",\n \"/hammerhead.js\",\n \"/transport-worker.js\",\n \"/task.js\",\n \"/iframe-task.js\",\n \"/worker-hammerhead.js\",\n \"/messaging\",\n \"/sessionexists\",\n \"/deletesession\",\n \"/newsession\",\n \"/editsession\",\n \"/needpassword\",\n \"/syncLocalStorage\",\n \"/api/shuffleDict\",\n ];\n const rammerheadSession: RegExp = /^\\/[a-z0-9]{32}/;\n const shouldRouteRh = (req: Request): boolean => {\n const url: URL = new URL(req.url, \"http://0.0.0.0\");\n return (\n rammerheadScopes.includes(url.pathname) ||\n rammerheadSession.test(url.pathname)\n );\n };\n const routeRhRequest = (req: Request, res: Response) => {\n rh.emit(\"request\", req, res);\n };\n const routeRhUpgrade = (req: Request, socket: Socket, head: Buffer) => {\n rh.emit(\"upgrade\", req, socket, head);\n };\n\n const app: application = express();\n app.get(\"/chemical.js\", async function (req: Request, res: Response) {\n let chemicalMain: string = await readFileSync(\n resolve(__dirname, \"../client/chemical.js\"),\n \"utf8\"\n );\n\n if (options.default) {\n if ([\"uv\", \"rammerhead\", \"scramjet\"].includes(options.default)) {\n chemicalMain =\n `const defaultService = \"${options.default}\";\\n\\n` + chemicalMain;\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n console.error(\"Error: Chemical default option invalid.\");\n }\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n }\n\n chemicalMain =\n \"const uvEnabled = \" + String(options.uv) + \";\\n\" + chemicalMain;\n chemicalMain =\n \"const scramjetEnabled = \" +\n String(options.scramjet) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const rammerheadEnabled = \" +\n String(options.rammerhead) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const demoMode = \" + String(options.demoMode) + \";\\n\" + chemicalMain;\n\n chemicalMain = \"(async () => {\\n\" + chemicalMain + \"\\n})();\";\n\n res.type(\"application/javascript\");\n return res.send(chemicalMain);\n });\n app.get(\"/chemical.sw.js\", async function (req: Request, res: Response) {\n let chemicalSW: string = await readFileSync(\n resolve(__dirname, \"../client/chemical.sw.js\"),\n \"utf8\"\n );\n\n chemicalSW =\n \"const uvEnabled = \" + String(options.uv) + \";\\n\" + chemicalSW;\n chemicalSW =\n \"const scramjetEnabled = \" +\n String(options.scramjet) +\n \";\\n\" +\n chemicalSW;\n chemicalSW =\n \"const rammerheadEnabled = \" +\n String(options.rammerhead) +\n \";\\n\" +\n chemicalSW;\n\n res.type(\"application/javascript\");\n return res.send(chemicalSW);\n });\n app.use(express.static(resolve(__dirname, \"../client\")));\n app.use(\"/baremux/\", express.static(baremuxPath));\n app.use(\"/libcurl/\", express.static(libcurlPath));\n app.use(\"/epoxy/\", express.static(epoxyPath));\n if (options.uv) {\n app.use(\"/uv/\", express.static(resolve(__dirname, \"config/uv\")));\n app.use(\"/uv/\", express.static(uvPath));\n }\n if (options.scramjet) {\n app.use(\"/scramjet/\", express.static(scramjetPath));\n }\n server.middlewares.use(app);\n\n server.middlewares.use((req: Request, res: Request, next: Next) => {\n if (options.rammerhead && shouldRouteRh(req)) {\n routeRhRequest(req, res);\n } else {\n next();\n }\n });\n\n const upgraders = server.httpServer?.listeners(\"upgrade\") as ((...args: any[]) => void)[];\n\n for (const upgrader of upgraders) {\n server?.httpServer?.off(\"upgrade\", upgrader);\n }\n\n server?.httpServer?.on(\n \"upgrade\",\n (req: Request, socket: Socket, head: Buffer) => {\n if (req.url && req.url.endsWith(\"/wisp/\")) {\n if (options.wispOptions) {\n for (let option in options.wispOptions) {\n //@ts-ignore\n wisp.options[option] = options.wispOptions[option];\n }\n }\n wisp.routeRequest(req, socket, head);\n } else if (options.rammerhead && shouldRouteRh(req)) {\n routeRhUpgrade(req, socket, head);\n } else {\n for (const upgrader of upgraders) {\n upgrader(req, socket, head);\n }\n }\n }\n );\n },\n});\n\nclass ChemicalBuild {\n constructor(options: BuildOptions) {\n if (options) {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n options = {};\n console.error(\"Error: ChemicalBuild options invalid.\");\n }\n } else {\n options = {};\n }\n\n if (options.path === undefined) {\n options.path = \"dist\";\n }\n\n if (options.path.startsWith(\"/\")) {\n options.path = options.path.substring(1);\n }\n\n if (options.path.endsWith(\"/\")) {\n options.path = options.path.slice(0, -1);\n }\n\n if (options.uv === undefined) {\n options.uv = true;\n }\n\n if (options.scramjet === undefined) {\n options.scramjet = true;\n }\n\n if (options.rammerhead === undefined) {\n options.rammerhead = true;\n }\n\n if (options.demoMode === undefined) {\n options.demoMode = false;\n }\n\n this.options = options;\n }\n async write(deletePath: boolean = false) {\n if (!existsSync(resolve(this.options.path || \"\"))) {\n mkdirSync(resolve(this.options.path || \"\"), { recursive: true });\n } else {\n if (deletePath) {\n readdirSync(resolve(this.options.path || \"\")).forEach((file) =>\n rmSync(resolve(this.options.path || \"\", file), { recursive: true })\n );\n }\n }\n\n let chemicalMain: string = await readFileSync(\n resolve(__dirname, \"../client/chemical.js\"),\n \"utf8\"\n );\n\n if (this.options.default) {\n if ([\"uv\", \"rammerhead\", \"scramjet\"].includes(this.options.default)) {\n chemicalMain =\n `const defaultService = \"${this.options.default}\";\\n\\n` +\n chemicalMain;\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n console.error(\"Error: Chemical default option invalid.\");\n }\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n }\n\n chemicalMain =\n \"const uvEnabled = \" + String(this.options.uv) + \";\\n\" + chemicalMain;\n chemicalMain =\n \"const scramjetEnabled = \" +\n String(this.options.scramjet) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const rammerheadEnabled = \" +\n String(this.options.rammerhead) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const demoMode = \" +\n String(this.options.demoMode) +\n \";\\n\" +\n chemicalMain;\n\n chemicalMain = \"(async () => {\\n\" + chemicalMain + \"\\n})();\";\n\n writeFileSync(resolve(this.options.path || \"\", \"chemical.js\"), chemicalMain);\n\n let chemicalSW: string = await readFileSync(\n resolve(__dirname, \"../client/chemical.sw.js\"),\n \"utf8\"\n );\n\n chemicalSW =\n \"const uvEnabled = \" + String(this.options.uv) + \";\\n\" + chemicalSW;\n chemicalSW =\n \"const scramjetEnabled = \" +\n String(this.options.scramjet) +\n \";\\n\" +\n chemicalSW;\n chemicalSW =\n \"const rammerheadEnabled = \" +\n String(this.options.rammerhead) +\n \";\\n\" +\n chemicalSW;\n\n writeFileSync(resolve(this.options.path || \"\", \"chemical.sw.js\"), chemicalSW);\n\n if (this.options.demoMode) {\n copyFileSync(\n resolve(__dirname, \"client/chemical.demo.html\"),\n resolve(this.options.path || \"\", \"chemical.demo.html\")\n );\n }\n\n cpSync(baremuxPath, resolve(this.options.path || \"\", \"baremux\"), {\n recursive: true,\n });\n cpSync(libcurlPath, resolve(this.options.path || \"\", \"libcurl\"), {\n recursive: true,\n });\n cpSync(epoxyPath, resolve(this.options.path || \"\", \"epoxy\"), { recursive: true });\n cpSync(libcurlPath, resolve(this.options.path || \"\", \"libcurl\"), {\n recursive: true,\n });\n if (this.options.uv) {\n cpSync(uvPath, resolve(this.options.path || \"\", \"uv\"), { recursive: true });\n copyFileSync(\n resolve(__dirname, \"config/uv/uv.config.js\"),\n resolve(this.options.path || \"\", \"uv/uv.config.js\")\n );\n }\n }\n}\n\nexport { ChemicalServer, ChemicalBuild, ChemicalVitePlugin };\n"],"mappings":"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","names":["import_server","express","createRammerhead","wisp"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../node_modules/tsup/assets/cjs_shims.js","../ultraviolet/index.js","../ultraviolet/path.js"],"sourcesContent":["import { resolve } from \"node:path\";\nimport {\n readFileSync,\n cpSync,\n writeFileSync,\n copyFileSync,\n existsSync,\n mkdirSync,\n rmSync,\n readdirSync,\n} from \"node:fs\";\nimport { createServer, Server } from \"node:http\";\nimport { Socket } from \"node:net\";\nimport express, { Request, Response, application, Next } from \"express\";\n//@ts-ignore\nimport { server as wisp, logging } from \"@mercuryworkshop/wisp-js/server\";\n//@ts-ignore\nimport { baremuxPath } from \"@mercuryworkshop/bare-mux/node\";\nimport { libcurlPath } from \"@mercuryworkshop/libcurl-transport\";\nimport { epoxyPath } from \"@mercuryworkshop/epoxy-transport\";\nimport { uvPath } from \"../ultraviolet/index.js\";\nimport { uvRandomPath } from \"../ultraviolet/path.js\";\nimport { scramjetPath } from \"@mercuryworkshop/scramjet\";\nimport createRammerhead, {\n RammerheadProxy,\n} from \"rammerhead/src/server/index.js\";\nimport { ViteDevServer } from \"vite\";\n\nlogging.set_level(logging.ERROR);\n\ninterface WispOptions {\n hostname_blacklist?: Array<RegExp>;\n hostname_whitelist?: Array<RegExp>;\n port_blacklist?: (number | Array<number>)[];\n port_whitelist?: (number | Array<number>)[];\n allow_direct_ip?: boolean;\n allow_private_ips?: boolean;\n allow_loopback_ips?: boolean;\n stream_limit_per_host?: number;\n stream_limit_total?: number;\n allow_udp_streams?: boolean;\n allow_tcp_streams?: boolean;\n dns_ttl?: number;\n dns_method?: \"lookup\" | \"resolve\";\n dns_servers?: Array<string>;\n dns_result_order?: \"ipv4first\" | \"ipv6first\" | \"verbatim\";\n parse_real_ip?: boolean;\n parse_real_ip_from?: Array<string>;\n}\n\ninterface Options {\n uv?: boolean;\n scramjet?: boolean;\n rammerhead?: boolean;\n demoMode?: boolean;\n default?: string;\n wispOptions?: WispOptions;\n}\n\ninterface BuildOptions extends Options {\n path?: string;\n}\n\ninterface ChemicalServer {\n options: Options;\n server: Server;\n app: application;\n}\n\ninterface ChemicalBuild {\n options: BuildOptions;\n}\n\nclass ChemicalServer {\n constructor(options: Options = {}) {\n if (options) {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n options = {};\n console.error(\"Error: ChemicalServer options invalid.\");\n }\n } else {\n options = {};\n }\n\n if (options.uv === undefined) {\n options.uv = true;\n }\n\n if (options.scramjet === undefined) {\n options.scramjet = true;\n }\n\n if (options.rammerhead === undefined) {\n options.rammerhead = true;\n }\n\n if (options.demoMode === undefined) {\n options.demoMode = false;\n }\n\n this.options = options;\n this.server = createServer();\n this.app = express();\n this.app.serveChemical = this.serveChemical;\n }\n [Symbol.iterator](): Iterator<application | Function> {\n return [this.app, this.listen][Symbol.iterator]();\n }\n serveChemical = () => {\n const rh: RammerheadProxy = createRammerhead();\n const rammerheadScopes: Array<string> = [\n \"/rammerhead.js\",\n \"/hammerhead.js\",\n \"/transport-worker.js\",\n \"/task.js\",\n \"/iframe-task.js\",\n \"/worker-hammerhead.js\",\n \"/messaging\",\n \"/sessionexists\",\n \"/deletesession\",\n \"/newsession\",\n \"/editsession\",\n \"/needpassword\",\n \"/syncLocalStorage\",\n \"/api/shuffleDict\",\n ];\n const rammerheadSession: RegExp = /^\\/[a-z0-9]{32}/;\n const shouldRouteRh = (req: Request): boolean => {\n const url = new URL(req.url, \"http://0.0.0.0\");\n return (\n rammerheadScopes.includes(url.pathname) ||\n rammerheadSession.test(url.pathname)\n );\n };\n const routeRhRequest = (req: Request, res: Response) => {\n rh.emit(\"request\", req, res);\n };\n const routeRhUpgrade = (req: Request, socket: Socket, head: Buffer) => {\n rh.emit(\"upgrade\", req, socket, head);\n };\n\n this.app.get(\"/chemical.js\", async (req: Request, res: Response) => {\n let chemicalMain = await readFileSync(\n resolve(__dirname, \"../client/chemical.js\"),\n \"utf8\"\n );\n\n if (this.options.default) {\n if ([\"uv\", \"rammerhead\", \"scramjet\"].includes(this.options.default)) {\n chemicalMain =\n `const defaultService = \"${this.options.default}\";\\n\\n` +\n chemicalMain;\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n console.error(\"Error: Chemical default option invalid.\");\n }\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n }\n\n chemicalMain =\n \"const uvEnabled = \" + String(this.options.uv) + \";\\n\" + chemicalMain;\n chemicalMain =\n \"const scramjetEnabled = \" +\n String(this.options.scramjet) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const rammerheadEnabled = \" +\n String(this.options.rammerhead) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const demoMode = \" +\n String(this.options.demoMode) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n `const uvRandomPath = \"${String(uvRandomPath)}\";\\n` + chemicalMain;\n\n chemicalMain = \"(async () => {\\n\" + chemicalMain + \"\\n})();\";\n\n res.type(\"application/javascript\");\n return res.send(chemicalMain);\n });\n this.app.get(\"/chemical.sw.js\", async (req: Request, res: Response) => {\n let chemicalSW = await readFileSync(\n resolve(__dirname, \"../client/chemical.sw.js\"),\n \"utf8\"\n );\n\n chemicalSW =\n \"const uvEnabled = \" + String(this.options.uv) + \";\\n\" + chemicalSW;\n chemicalSW =\n \"const scramjetEnabled = \" +\n String(this.options.scramjet) +\n \";\\n\" +\n chemicalSW;\n chemicalSW =\n \"const rammerheadEnabled = \" +\n String(this.options.rammerhead) +\n \";\\n\" +\n chemicalSW;\n chemicalSW =\n `const uvRandomPath = \"${String(uvRandomPath)}\";\\n` + chemicalSW;\n\n res.type(\"application/javascript\");\n return res.send(chemicalSW);\n });\n this.app.use(express.static(resolve(__dirname, \"../client\")));\n this.app.use(\"/baremux/\", express.static(baremuxPath));\n this.app.use(\"/libcurl/\", express.static(libcurlPath));\n this.app.use(\"/epoxy/\", express.static(epoxyPath));\n if (this.options.uv) {\n this.app.use(`/${uvRandomPath}/`, express.static(uvPath));\n }\n if (this.options.scramjet) {\n this.app.use(\"/scramjet/\", express.static(scramjetPath));\n }\n this.server.on(\"request\", (req: Request, res: Response) => {\n if (this.options.rammerhead && shouldRouteRh(req)) {\n routeRhRequest(req, res);\n } else {\n this.app(req, res);\n }\n });\n this.server.on(\"upgrade\", (req: Request, socket: Socket, head: Buffer) => {\n if (req.url && req.url.endsWith(\"/wisp/\")) {\n if (this.options.wispOptions) {\n for (let option in this.options.wispOptions) {\n //@ts-ignore\n wisp.options[option] = this.options.wispOptions[option];\n }\n }\n wisp.routeRequest(req, socket, head);\n } else if (this.options.rammerhead && shouldRouteRh(req)) {\n routeRhUpgrade(req, socket, head);\n } else {\n socket.end();\n }\n });\n };\n listen = (port: number, callback: () => void) => {\n this.server.listen(port, callback);\n };\n}\n\nconst ChemicalVitePlugin = (options: Options) => ({\n name: \"chemical-vite-plugin\",\n configureServer(server: ViteDevServer) {\n if (options) {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n options = {};\n console.error(\"Error: ChemicalServer options invalid.\");\n }\n } else {\n options = {};\n }\n\n if (options.uv === undefined) {\n options.uv = true;\n }\n\n if (options.scramjet === undefined) {\n options.scramjet = true;\n }\n\n if (options.rammerhead === undefined) {\n options.rammerhead = true;\n }\n\n if (options.demoMode === undefined) {\n options.demoMode = false;\n }\n\n const rh: RammerheadProxy = createRammerhead();\n const rammerheadScopes: Array<string> = [\n \"/rammerhead.js\",\n \"/hammerhead.js\",\n \"/transport-worker.js\",\n \"/task.js\",\n \"/iframe-task.js\",\n \"/worker-hammerhead.js\",\n \"/messaging\",\n \"/sessionexists\",\n \"/deletesession\",\n \"/newsession\",\n \"/editsession\",\n \"/needpassword\",\n \"/syncLocalStorage\",\n \"/api/shuffleDict\",\n ];\n const rammerheadSession: RegExp = /^\\/[a-z0-9]{32}/;\n const shouldRouteRh = (req: Request): boolean => {\n const url: URL = new URL(req.url, \"http://0.0.0.0\");\n return (\n rammerheadScopes.includes(url.pathname) ||\n rammerheadSession.test(url.pathname)\n );\n };\n const routeRhRequest = (req: Request, res: Response) => {\n rh.emit(\"request\", req, res);\n };\n const routeRhUpgrade = (req: Request, socket: Socket, head: Buffer) => {\n rh.emit(\"upgrade\", req, socket, head);\n };\n\n const app: application = express();\n app.get(\"/chemical.js\", async function (req: Request, res: Response) {\n let chemicalMain: string = await readFileSync(\n resolve(__dirname, \"../client/chemical.js\"),\n \"utf8\"\n );\n\n if (options.default) {\n if ([\"uv\", \"rammerhead\", \"scramjet\"].includes(options.default)) {\n chemicalMain =\n `const defaultService = \"${options.default}\";\\n\\n` + chemicalMain;\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n console.error(\"Error: Chemical default option invalid.\");\n }\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n }\n\n chemicalMain =\n \"const uvEnabled = \" + String(options.uv) + \";\\n\" + chemicalMain;\n chemicalMain =\n \"const scramjetEnabled = \" +\n String(options.scramjet) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const rammerheadEnabled = \" +\n String(options.rammerhead) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const demoMode = \" + String(options.demoMode) + \";\\n\" + chemicalMain;\n chemicalMain =\n `const uvRandomPath = \"${String(uvRandomPath)}\";\\n` + chemicalMain;\n\n chemicalMain = \"(async () => {\\n\" + chemicalMain + \"\\n})();\";\n\n res.type(\"application/javascript\");\n return res.send(chemicalMain);\n });\n app.get(\"/chemical.sw.js\", async function (req: Request, res: Response) {\n let chemicalSW: string = await readFileSync(\n resolve(__dirname, \"../client/chemical.sw.js\"),\n \"utf8\"\n );\n\n chemicalSW =\n \"const uvEnabled = \" + String(options.uv) + \";\\n\" + chemicalSW;\n chemicalSW =\n \"const scramjetEnabled = \" +\n String(options.scramjet) +\n \";\\n\" +\n chemicalSW;\n chemicalSW =\n \"const rammerheadEnabled = \" +\n String(options.rammerhead) +\n \";\\n\" +\n chemicalSW;\n chemicalSW =\n `const uvRandomPath = \"${String(uvRandomPath)}\";\\n` + chemicalSW;\n\n res.type(\"application/javascript\");\n return res.send(chemicalSW);\n });\n app.use(express.static(resolve(__dirname, \"../client\")));\n app.use(\"/baremux/\", express.static(baremuxPath));\n app.use(\"/libcurl/\", express.static(libcurlPath));\n app.use(\"/epoxy/\", express.static(epoxyPath));\n if (options.uv) {\n app.use(`/${uvRandomPath}/`, express.static(uvPath));\n }\n if (options.scramjet) {\n app.use(\"/scramjet/\", express.static(scramjetPath));\n }\n server.middlewares.use(app);\n\n server.middlewares.use((req: Request, res: Request, next: Next) => {\n if (options.rammerhead && shouldRouteRh(req)) {\n routeRhRequest(req, res);\n } else {\n next();\n }\n });\n\n const upgraders = server.httpServer?.listeners(\"upgrade\") as ((\n ...args: any[]\n ) => void)[];\n\n for (const upgrader of upgraders) {\n server?.httpServer?.off(\"upgrade\", upgrader);\n }\n\n server?.httpServer?.on(\n \"upgrade\",\n (req: Request, socket: Socket, head: Buffer) => {\n if (req.url && req.url.endsWith(\"/wisp/\")) {\n if (options.wispOptions) {\n for (let option in options.wispOptions) {\n //@ts-ignore\n wisp.options[option] = options.wispOptions[option];\n }\n }\n wisp.routeRequest(req, socket, head);\n } else if (options.rammerhead && shouldRouteRh(req)) {\n routeRhUpgrade(req, socket, head);\n } else {\n for (const upgrader of upgraders) {\n upgrader(req, socket, head);\n }\n }\n }\n );\n },\n});\n\nclass ChemicalBuild {\n constructor(options: BuildOptions) {\n if (options) {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n options = {};\n console.error(\"Error: ChemicalBuild options invalid.\");\n }\n } else {\n options = {};\n }\n\n if (options.path === undefined) {\n options.path = \"dist\";\n }\n\n if (options.path.startsWith(\"/\")) {\n options.path = options.path.substring(1);\n }\n\n if (options.path.endsWith(\"/\")) {\n options.path = options.path.slice(0, -1);\n }\n\n if (options.uv === undefined) {\n options.uv = true;\n }\n\n if (options.scramjet === undefined) {\n options.scramjet = true;\n }\n\n if (options.rammerhead === undefined) {\n options.rammerhead = true;\n }\n\n if (options.demoMode === undefined) {\n options.demoMode = false;\n }\n\n this.options = options;\n }\n async write(deletePath: boolean = false) {\n if (!existsSync(resolve(this.options.path || \"\"))) {\n mkdirSync(resolve(this.options.path || \"\"), { recursive: true });\n } else {\n if (deletePath) {\n readdirSync(resolve(this.options.path || \"\")).forEach((file) =>\n rmSync(resolve(this.options.path || \"\", file), { recursive: true })\n );\n }\n }\n\n let chemicalMain: string = await readFileSync(\n resolve(__dirname, \"../client/chemical.js\"),\n \"utf8\"\n );\n\n if (this.options.default) {\n if ([\"uv\", \"rammerhead\", \"scramjet\"].includes(this.options.default)) {\n chemicalMain =\n `const defaultService = \"${this.options.default}\";\\n\\n` +\n chemicalMain;\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n console.error(\"Error: Chemical default option invalid.\");\n }\n } else {\n chemicalMain = `const defaultService = \"uv\";\\n\\n` + chemicalMain;\n }\n\n chemicalMain =\n \"const uvEnabled = \" + String(this.options.uv) + \";\\n\" + chemicalMain;\n chemicalMain =\n \"const scramjetEnabled = \" +\n String(this.options.scramjet) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const rammerheadEnabled = \" +\n String(this.options.rammerhead) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n \"const demoMode = \" +\n String(this.options.demoMode) +\n \";\\n\" +\n chemicalMain;\n chemicalMain =\n `const uvRandomPath = \"${String(uvRandomPath)}\";\\n` + chemicalMain;\n\n chemicalMain = \"(async () => {\\n\" + chemicalMain + \"\\n})();\";\n\n writeFileSync(\n resolve(this.options.path || \"\", \"chemical.js\"),\n chemicalMain\n );\n\n let chemicalSW: string = await readFileSync(\n resolve(__dirname, \"../client/chemical.sw.js\"),\n \"utf8\"\n );\n\n chemicalSW =\n \"const uvEnabled = \" + String(this.options.uv) + \";\\n\" + chemicalSW;\n chemicalSW =\n \"const scramjetEnabled = \" +\n String(this.options.scramjet) +\n \";\\n\" +\n chemicalSW;\n chemicalSW =\n \"const rammerheadEnabled = \" +\n String(this.options.rammerhead) +\n \";\\n\" +\n chemicalSW;\n chemicalSW =\n `const uvRandomPath = \"${String(uvRandomPath)}\";\\n` + chemicalSW;\n\n writeFileSync(\n resolve(this.options.path || \"\", \"chemical.sw.js\"),\n chemicalSW\n );\n\n if (this.options.demoMode) {\n copyFileSync(\n resolve(__dirname, \"client/chemical.demo.html\"),\n resolve(this.options.path || \"\", \"chemical.demo.html\")\n );\n }\n\n cpSync(baremuxPath, resolve(this.options.path || \"\", \"baremux\"), {\n recursive: true,\n });\n cpSync(libcurlPath, resolve(this.options.path || \"\", \"libcurl\"), {\n recursive: true,\n });\n cpSync(epoxyPath, resolve(this.options.path || \"\", \"epoxy\"), {\n recursive: true,\n });\n cpSync(libcurlPath, resolve(this.options.path || \"\", \"libcurl\"), {\n recursive: true,\n });\n if (this.options.uv) {\n cpSync(uvPath, resolve(this.options.path || \"\", uvRandomPath), {\n recursive: true,\n });\n }\n }\n}\n\nexport { ChemicalServer, ChemicalBuild, ChemicalVitePlugin };\n","// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","import { resolve, dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nconst uvPath = resolve(__dirname, \"../ultraviolet/dist/\");\n\nexport { uvPath };\n","const uvRandomPath = \"8a9jmYs_PS\";\n\nexport { uvRandomPath };"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKA,IAAM,mBAAmB,MACvB,OAAO,aAAa,cAChB,IAAI,IAAI,QAAQ,UAAU,EAAE,EAAE,OAC7B,SAAS,iBAAiB,SAAS,cAAc,OAClD,IAAI,IAAI,WAAW,SAAS,OAAO,EAAE;AAEpC,IAAM,gBAAgC,iCAAiB;;;ADX9D,IAAAA,oBAAwB;AACxB,qBASO;AACP,uBAAqC;AAErC,qBAA8D;AAE9D,oBAAwC;AAExC,kBAA4B;AAC5B,+BAA4B;AAC5B,6BAA0B;;;AEnB1B,uBAAiC;AACjC,sBAA8B;AAE9B,IAAMC,iBAAY,8BAAQ,+BAAc,aAAe,CAAC;AAExD,IAAM,aAAS,0BAAQA,YAAW,sBAAsB;;;ACLxD,IAAM,eAAe;;;AHsBrB,sBAA6B;AAC7B,IAAAC,iBAEO;AAGP,sBAAQ,UAAU,sBAAQ,KAAK;AA6C/B,IAAM,iBAAN,MAAqB;AAAA,EACnB,YAAY,UAAmB,CAAC,GAAG;AACjC,QAAI,SAAS;AACX,UAAI,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACzD,kBAAU,CAAC;AACX,gBAAQ,MAAM,wCAAwC;AAAA,MACxD;AAAA,IACF,OAAO;AACL,gBAAU,CAAC;AAAA,IACb;AAEA,QAAI,QAAQ,OAAO,QAAW;AAC5B,cAAQ,KAAK;AAAA,IACf;AAEA,QAAI,QAAQ,aAAa,QAAW;AAClC,cAAQ,WAAW;AAAA,IACrB;AAEA,QAAI,QAAQ,eAAe,QAAW;AACpC,cAAQ,aAAa;AAAA,IACvB;AAEA,QAAI,QAAQ,aAAa,QAAW;AAClC,cAAQ,WAAW;AAAA,IACrB;AAEA,SAAK,UAAU;AACf,SAAK,aAAS,+BAAa;AAC3B,SAAK,UAAM,eAAAC,SAAQ;AACnB,SAAK,IAAI,gBAAgB,KAAK;AAAA,EAChC;AAAA,EACA,CAAC,OAAO,QAAQ,IAAsC;AACpD,WAAO,CAAC,KAAK,KAAK,KAAK,MAAM,EAAE,OAAO,QAAQ,EAAE;AAAA,EAClD;AAAA,EACA,gBAAgB,MAAM;AACpB,UAAM,SAAsB,eAAAC,SAAiB;AAC7C,UAAM,mBAAkC;AAAA,MACtC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,oBAA4B;AAClC,UAAM,gBAAgB,CAAC,QAA0B;AAC/C,YAAM,MAAM,IAAI,IAAI,IAAI,KAAK,gBAAgB;AAC7C,aACE,iBAAiB,SAAS,IAAI,QAAQ,KACtC,kBAAkB,KAAK,IAAI,QAAQ;AAAA,IAEvC;AACA,UAAM,iBAAiB,CAAC,KAAc,QAAkB;AACtD,SAAG,KAAK,WAAW,KAAK,GAAG;AAAA,IAC7B;AACA,UAAM,iBAAiB,CAAC,KAAc,QAAgB,SAAiB;AACrE,SAAG,KAAK,WAAW,KAAK,QAAQ,IAAI;AAAA,IACtC;AAEA,SAAK,IAAI,IAAI,gBAAgB,OAAO,KAAc,QAAkB;AAClE,UAAI,eAAe,UAAM;AAAA,YACvB,2BAAQ,WAAW,uBAAuB;AAAA,QAC1C;AAAA,MACF;AAEA,UAAI,KAAK,QAAQ,SAAS;AACxB,YAAI,CAAC,MAAM,cAAc,UAAU,EAAE,SAAS,KAAK,QAAQ,OAAO,GAAG;AACnE,yBACE,2BAA2B,KAAK,QAAQ,OAAO;AAAA;AAAA,IAC/C;AAAA,QACJ,OAAO;AACL,yBAAe;AAAA;AAAA,IAAqC;AACpD,kBAAQ,MAAM,yCAAyC;AAAA,QACzD;AAAA,MACF,OAAO;AACL,uBAAe;AAAA;AAAA,IAAqC;AAAA,MACtD;AAEA,qBACE,uBAAuB,OAAO,KAAK,QAAQ,EAAE,IAAI,QAAQ;AAC3D,qBACE,6BACA,OAAO,KAAK,QAAQ,QAAQ,IAC5B,QACA;AACF,qBACE,+BACA,OAAO,KAAK,QAAQ,UAAU,IAC9B,QACA;AACF,qBACE,sBACA,OAAO,KAAK,QAAQ,QAAQ,IAC5B,QACA;AACF,qBACE,yBAAyB,OAAO,YAAY,CAAC;AAAA,IAAS;AAExD,qBAAe,qBAAqB,eAAe;AAEnD,UAAI,KAAK,wBAAwB;AACjC,aAAO,IAAI,KAAK,YAAY;AAAA,IAC9B,CAAC;AACD,SAAK,IAAI,IAAI,mBAAmB,OAAO,KAAc,QAAkB;AACrE,UAAI,aAAa,UAAM;AAAA,YACrB,2BAAQ,WAAW,0BAA0B;AAAA,QAC7C;AAAA,MACF;AAEA,mBACE,uBAAuB,OAAO,KAAK,QAAQ,EAAE,IAAI,QAAQ;AAC3D,mBACE,6BACA,OAAO,KAAK,QAAQ,QAAQ,IAC5B,QACA;AACF,mBACE,+BACA,OAAO,KAAK,QAAQ,UAAU,IAC9B,QACA;AACF,mBACE,yBAAyB,OAAO,YAAY,CAAC;AAAA,IAAS;AAExD,UAAI,KAAK,wBAAwB;AACjC,aAAO,IAAI,KAAK,UAAU;AAAA,IAC5B,CAAC;AACD,SAAK,IAAI,IAAI,eAAAD,QAAQ,WAAO,2BAAQ,WAAW,WAAW,CAAC,CAAC;AAC5D,SAAK,IAAI,IAAI,aAAa,eAAAA,QAAQ,OAAO,uBAAW,CAAC;AACrD,SAAK,IAAI,IAAI,aAAa,eAAAA,QAAQ,OAAO,oCAAW,CAAC;AACrD,SAAK,IAAI,IAAI,WAAW,eAAAA,QAAQ,OAAO,gCAAS,CAAC;AACjD,QAAI,KAAK,QAAQ,IAAI;AACnB,WAAK,IAAI,IAAI,IAAI,YAAY,KAAK,eAAAA,QAAQ,OAAO,MAAM,CAAC;AAAA,IAC1D;AACA,QAAI,KAAK,QAAQ,UAAU;AACzB,WAAK,IAAI,IAAI,cAAc,eAAAA,QAAQ,OAAO,4BAAY,CAAC;AAAA,IACzD;AACA,SAAK,OAAO,GAAG,WAAW,CAAC,KAAc,QAAkB;AACzD,UAAI,KAAK,QAAQ,cAAc,cAAc,GAAG,GAAG;AACjD,uBAAe,KAAK,GAAG;AAAA,MACzB,OAAO;AACL,aAAK,IAAI,KAAK,GAAG;AAAA,MACnB;AAAA,IACF,CAAC;AACD,SAAK,OAAO,GAAG,WAAW,CAAC,KAAc,QAAgB,SAAiB;AACxE,UAAI,IAAI,OAAO,IAAI,IAAI,SAAS,QAAQ,GAAG;AACzC,YAAI,KAAK,QAAQ,aAAa;AAC5B,mBAAS,UAAU,KAAK,QAAQ,aAAa;AAE3C,0BAAAE,OAAK,QAAQ,MAAM,IAAI,KAAK,QAAQ,YAAY,MAAM;AAAA,UACxD;AAAA,QACF;AACA,sBAAAA,OAAK,aAAa,KAAK,QAAQ,IAAI;AAAA,MACrC,WAAW,KAAK,QAAQ,cAAc,cAAc,GAAG,GAAG;AACxD,uBAAe,KAAK,QAAQ,IAAI;AAAA,MAClC,OAAO;AACL,eAAO,IAAI;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,SAAS,CAAC,MAAc,aAAyB;AAC/C,SAAK,OAAO,OAAO,MAAM,QAAQ;AAAA,EACnC;AACF;AAEA,IAAM,qBAAqB,CAAC,aAAsB;AAAA,EAChD,MAAM;AAAA,EACN,gBAAgB,QAAuB;AACrC,QAAI,SAAS;AACX,UAAI,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACzD,kBAAU,CAAC;AACX,gBAAQ,MAAM,wCAAwC;AAAA,MACxD;AAAA,IACF,OAAO;AACL,gBAAU,CAAC;AAAA,IACb;AAEA,QAAI,QAAQ,OAAO,QAAW;AAC5B,cAAQ,KAAK;AAAA,IACf;AAEA,QAAI,QAAQ,aAAa,QAAW;AAClC,cAAQ,WAAW;AAAA,IACrB;AAEA,QAAI,QAAQ,eAAe,QAAW;AACpC,cAAQ,aAAa;AAAA,IACvB;AAEA,QAAI,QAAQ,aAAa,QAAW;AAClC,cAAQ,WAAW;AAAA,IACrB;AAEA,UAAM,SAAsB,eAAAD,SAAiB;AAC7C,UAAM,mBAAkC;AAAA,MACtC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAM,oBAA4B;AAClC,UAAM,gBAAgB,CAAC,QAA0B;AAC/C,YAAM,MAAW,IAAI,IAAI,IAAI,KAAK,gBAAgB;AAClD,aACE,iBAAiB,SAAS,IAAI,QAAQ,KACtC,kBAAkB,KAAK,IAAI,QAAQ;AAAA,IAEvC;AACA,UAAM,iBAAiB,CAAC,KAAc,QAAkB;AACtD,SAAG,KAAK,WAAW,KAAK,GAAG;AAAA,IAC7B;AACA,UAAM,iBAAiB,CAAC,KAAc,QAAgB,SAAiB;AACrE,SAAG,KAAK,WAAW,KAAK,QAAQ,IAAI;AAAA,IACtC;AAEA,UAAM,UAAmB,eAAAD,SAAQ;AACjC,QAAI,IAAI,gBAAgB,eAAgB,KAAc,KAAe;AACnE,UAAI,eAAuB,UAAM;AAAA,YAC/B,2BAAQ,WAAW,uBAAuB;AAAA,QAC1C;AAAA,MACF;AAEA,UAAI,QAAQ,SAAS;AACnB,YAAI,CAAC,MAAM,cAAc,UAAU,EAAE,SAAS,QAAQ,OAAO,GAAG;AAC9D,yBACE,2BAA2B,QAAQ,OAAO;AAAA;AAAA,IAAW;AAAA,QACzD,OAAO;AACL,yBAAe;AAAA;AAAA,IAAqC;AACpD,kBAAQ,MAAM,yCAAyC;AAAA,QACzD;AAAA,MACF,OAAO;AACL,uBAAe;AAAA;AAAA,IAAqC;AAAA,MACtD;AAEA,qBACE,uBAAuB,OAAO,QAAQ,EAAE,IAAI,QAAQ;AACtD,qBACE,6BACA,OAAO,QAAQ,QAAQ,IACvB,QACA;AACF,qBACE,+BACA,OAAO,QAAQ,UAAU,IACzB,QACA;AACF,qBACE,sBAAsB,OAAO,QAAQ,QAAQ,IAAI,QAAQ;AAC3D,qBACE,yBAAyB,OAAO,YAAY,CAAC;AAAA,IAAS;AAExD,qBAAe,qBAAqB,eAAe;AAEnD,UAAI,KAAK,wBAAwB;AACjC,aAAO,IAAI,KAAK,YAAY;AAAA,IAC9B,CAAC;AACD,QAAI,IAAI,mBAAmB,eAAgB,KAAc,KAAe;AACtE,UAAI,aAAqB,UAAM;AAAA,YAC7B,2BAAQ,WAAW,0BAA0B;AAAA,QAC7C;AAAA,MACF;AAEA,mBACE,uBAAuB,OAAO,QAAQ,EAAE,IAAI,QAAQ;AACtD,mBACE,6BACA,OAAO,QAAQ,QAAQ,IACvB,QACA;AACF,mBACE,+BACA,OAAO,QAAQ,UAAU,IACzB,QACA;AACF,mBACE,yBAAyB,OAAO,YAAY,CAAC;AAAA,IAAS;AAExD,UAAI,KAAK,wBAAwB;AACjC,aAAO,IAAI,KAAK,UAAU;AAAA,IAC5B,CAAC;AACD,QAAI,IAAI,eAAAA,QAAQ,WAAO,2BAAQ,WAAW,WAAW,CAAC,CAAC;AACvD,QAAI,IAAI,aAAa,eAAAA,QAAQ,OAAO,uBAAW,CAAC;AAChD,QAAI,IAAI,aAAa,eAAAA,QAAQ,OAAO,oCAAW,CAAC;AAChD,QAAI,IAAI,WAAW,eAAAA,QAAQ,OAAO,gCAAS,CAAC;AAC5C,QAAI,QAAQ,IAAI;AACd,UAAI,IAAI,IAAI,YAAY,KAAK,eAAAA,QAAQ,OAAO,MAAM,CAAC;AAAA,IACrD;AACA,QAAI,QAAQ,UAAU;AACpB,UAAI,IAAI,cAAc,eAAAA,QAAQ,OAAO,4BAAY,CAAC;AAAA,IACpD;AACA,WAAO,YAAY,IAAI,GAAG;AAE1B,WAAO,YAAY,IAAI,CAAC,KAAc,KAAc,SAAe;AACjE,UAAI,QAAQ,cAAc,cAAc,GAAG,GAAG;AAC5C,uBAAe,KAAK,GAAG;AAAA,MACzB,OAAO;AACL,aAAK;AAAA,MACP;AAAA,IACF,CAAC;AAED,UAAM,YAAY,OAAO,YAAY,UAAU,SAAS;AAIxD,eAAW,YAAY,WAAW;AAChC,cAAQ,YAAY,IAAI,WAAW,QAAQ;AAAA,IAC7C;AAEA,YAAQ,YAAY;AAAA,MAClB;AAAA,MACA,CAAC,KAAc,QAAgB,SAAiB;AAC9C,YAAI,IAAI,OAAO,IAAI,IAAI,SAAS,QAAQ,GAAG;AACzC,cAAI,QAAQ,aAAa;AACvB,qBAAS,UAAU,QAAQ,aAAa;AAEtC,4BAAAE,OAAK,QAAQ,MAAM,IAAI,QAAQ,YAAY,MAAM;AAAA,YACnD;AAAA,UACF;AACA,wBAAAA,OAAK,aAAa,KAAK,QAAQ,IAAI;AAAA,QACrC,WAAW,QAAQ,cAAc,cAAc,GAAG,GAAG;AACnD,yBAAe,KAAK,QAAQ,IAAI;AAAA,QAClC,OAAO;AACL,qBAAW,YAAY,WAAW;AAChC,qBAAS,KAAK,QAAQ,IAAI;AAAA,UAC5B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,gBAAN,MAAoB;AAAA,EAClB,YAAY,SAAuB;AACjC,QAAI,SAAS;AACX,UAAI,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACzD,kBAAU,CAAC;AACX,gBAAQ,MAAM,uCAAuC;AAAA,MACvD;AAAA,IACF,OAAO;AACL,gBAAU,CAAC;AAAA,IACb;AAEA,QAAI,QAAQ,SAAS,QAAW;AAC9B,cAAQ,OAAO;AAAA,IACjB;AAEA,QAAI,QAAQ,KAAK,WAAW,GAAG,GAAG;AAChC,cAAQ,OAAO,QAAQ,KAAK,UAAU,CAAC;AAAA,IACzC;AAEA,QAAI,QAAQ,KAAK,SAAS,GAAG,GAAG;AAC9B,cAAQ,OAAO,QAAQ,KAAK,MAAM,GAAG,EAAE;AAAA,IACzC;AAEA,QAAI,QAAQ,OAAO,QAAW;AAC5B,cAAQ,KAAK;AAAA,IACf;AAEA,QAAI,QAAQ,aAAa,QAAW;AAClC,cAAQ,WAAW;AAAA,IACrB;AAEA,QAAI,QAAQ,eAAe,QAAW;AACpC,cAAQ,aAAa;AAAA,IACvB;AAEA,QAAI,QAAQ,aAAa,QAAW;AAClC,cAAQ,WAAW;AAAA,IACrB;AAEA,SAAK,UAAU;AAAA,EACjB;AAAA,EACA,MAAM,MAAM,aAAsB,OAAO;AACvC,QAAI,KAAC,+BAAW,2BAAQ,KAAK,QAAQ,QAAQ,EAAE,CAAC,GAAG;AACjD,wCAAU,2BAAQ,KAAK,QAAQ,QAAQ,EAAE,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IACjE,OAAO;AACL,UAAI,YAAY;AACd,4CAAY,2BAAQ,KAAK,QAAQ,QAAQ,EAAE,CAAC,EAAE;AAAA,UAAQ,CAAC,aACrD,2BAAO,2BAAQ,KAAK,QAAQ,QAAQ,IAAI,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,QACpE;AAAA,MACF;AAAA,IACF;AAEA,QAAI,eAAuB,UAAM;AAAA,UAC/B,2BAAQ,WAAW,uBAAuB;AAAA,MAC1C;AAAA,IACF;AAEA,QAAI,KAAK,QAAQ,SAAS;AACxB,UAAI,CAAC,MAAM,cAAc,UAAU,EAAE,SAAS,KAAK,QAAQ,OAAO,GAAG;AACnE,uBACE,2BAA2B,KAAK,QAAQ,OAAO;AAAA;AAAA,IAC/C;AAAA,MACJ,OAAO;AACL,uBAAe;AAAA;AAAA,IAAqC;AACpD,gBAAQ,MAAM,yCAAyC;AAAA,MACzD;AAAA,IACF,OAAO;AACL,qBAAe;AAAA;AAAA,IAAqC;AAAA,IACtD;AAEA,mBACE,uBAAuB,OAAO,KAAK,QAAQ,EAAE,IAAI,QAAQ;AAC3D,mBACE,6BACA,OAAO,KAAK,QAAQ,QAAQ,IAC5B,QACA;AACF,mBACE,+BACA,OAAO,KAAK,QAAQ,UAAU,IAC9B,QACA;AACF,mBACE,sBACA,OAAO,KAAK,QAAQ,QAAQ,IAC5B,QACA;AACF,mBACE,yBAAyB,OAAO,YAAY,CAAC;AAAA,IAAS;AAExD,mBAAe,qBAAqB,eAAe;AAEnD;AAAA,UACE,2BAAQ,KAAK,QAAQ,QAAQ,IAAI,aAAa;AAAA,MAC9C;AAAA,IACF;AAEA,QAAI,aAAqB,UAAM;AAAA,UAC7B,2BAAQ,WAAW,0BAA0B;AAAA,MAC7C;AAAA,IACF;AAEA,iBACE,uBAAuB,OAAO,KAAK,QAAQ,EAAE,IAAI,QAAQ;AAC3D,iBACE,6BACA,OAAO,KAAK,QAAQ,QAAQ,IAC5B,QACA;AACF,iBACE,+BACA,OAAO,KAAK,QAAQ,UAAU,IAC9B,QACA;AACF,iBACE,yBAAyB,OAAO,YAAY,CAAC;AAAA,IAAS;AAExD;AAAA,UACE,2BAAQ,KAAK,QAAQ,QAAQ,IAAI,gBAAgB;AAAA,MACjD;AAAA,IACF;AAEA,QAAI,KAAK,QAAQ,UAAU;AACzB;AAAA,YACE,2BAAQ,WAAW,2BAA2B;AAAA,YAC9C,2BAAQ,KAAK,QAAQ,QAAQ,IAAI,oBAAoB;AAAA,MACvD;AAAA,IACF;AAEA,+BAAO,6BAAa,2BAAQ,KAAK,QAAQ,QAAQ,IAAI,SAAS,GAAG;AAAA,MAC/D,WAAW;AAAA,IACb,CAAC;AACD,+BAAO,0CAAa,2BAAQ,KAAK,QAAQ,QAAQ,IAAI,SAAS,GAAG;AAAA,MAC/D,WAAW;AAAA,IACb,CAAC;AACD,+BAAO,sCAAW,2BAAQ,KAAK,QAAQ,QAAQ,IAAI,OAAO,GAAG;AAAA,MAC3D,WAAW;AAAA,IACb,CAAC;AACD,+BAAO,0CAAa,2BAAQ,KAAK,QAAQ,QAAQ,IAAI,SAAS,GAAG;AAAA,MAC/D,WAAW;AAAA,IACb,CAAC;AACD,QAAI,KAAK,QAAQ,IAAI;AACnB,iCAAO,YAAQ,2BAAQ,KAAK,QAAQ,QAAQ,IAAI,YAAY,GAAG;AAAA,QAC7D,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":["import_node_path","__dirname","import_server","express","createRammerhead","wisp"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -38,7 +38,8 @@ interface ChemicalServer {
|
|
|
38
38
|
app: application;
|
|
39
39
|
}
|
|
40
40
|
declare class ChemicalServer {
|
|
41
|
-
constructor(options
|
|
41
|
+
constructor(options?: Options);
|
|
42
|
+
[Symbol.iterator](): Iterator<application | Function>;
|
|
42
43
|
serveChemical: () => void;
|
|
43
44
|
listen: (port: number, callback: () => void) => void;
|
|
44
45
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -38,7 +38,8 @@ interface ChemicalServer {
|
|
|
38
38
|
app: application;
|
|
39
39
|
}
|
|
40
40
|
declare class ChemicalServer {
|
|
41
|
-
constructor(options
|
|
41
|
+
constructor(options?: Options);
|
|
42
|
+
[Symbol.iterator](): Iterator<application | Function>;
|
|
42
43
|
serveChemical: () => void;
|
|
43
44
|
listen: (port: number, callback: () => void) => void;
|
|
44
45
|
}
|