@andersbakken/fisk 4.0.32 → 4.0.33
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/builder/fisk-builder.js +3219 -3219
- package/package.json +2 -2
- package/scheduler/fisk-scheduler.js +63 -14
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@andersbakken/fisk",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.33",
|
|
4
4
|
"description": "Fisk, a distributed compile system",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"lint": "eslint . --ext .ts",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"@types/fs-extra": "^9.0.13",
|
|
59
59
|
"@types/humanize-duration": "^3.27.1",
|
|
60
60
|
"@types/minimist": "^1.2.2",
|
|
61
|
-
"@types/node": "^14.
|
|
61
|
+
"@types/node": "^14.18.63",
|
|
62
62
|
"@types/posix": "^4.2.0",
|
|
63
63
|
"@types/url-parse": "^1.4.8",
|
|
64
64
|
"@types/ws": "^8.5.3",
|
|
@@ -52141,7 +52141,7 @@ class Server extends require$$0__default$2["default"] {
|
|
|
52141
52141
|
return this.app;
|
|
52142
52142
|
}
|
|
52143
52143
|
listen() {
|
|
52144
|
-
return new Promise((resolve) => {
|
|
52144
|
+
return new Promise((resolve, reject) => {
|
|
52145
52145
|
this.app = express();
|
|
52146
52146
|
this.app.use(bodyParser.urlencoded({ extended: true }));
|
|
52147
52147
|
this.emit("listen", this.app);
|
|
@@ -52152,8 +52152,20 @@ class Server extends require$$0__default$2["default"] {
|
|
|
52152
52152
|
});
|
|
52153
52153
|
}
|
|
52154
52154
|
this.server = require$$2__default["default"].createServer(this.app);
|
|
52155
|
-
|
|
52156
|
-
const
|
|
52155
|
+
const keyFile = this.option.string("key");
|
|
52156
|
+
const certFile = this.option.string("cert");
|
|
52157
|
+
let key;
|
|
52158
|
+
let cert;
|
|
52159
|
+
if (keyFile && certFile) {
|
|
52160
|
+
try {
|
|
52161
|
+
key = fs__default["default"].readFileSync(keyFile);
|
|
52162
|
+
cert = fs__default["default"].readFileSync(certFile);
|
|
52163
|
+
}
|
|
52164
|
+
catch (err) {
|
|
52165
|
+
reject(new Error(`Failed to read key (${keyFile}) or cert (${certFile}): ${err.message}`));
|
|
52166
|
+
return;
|
|
52167
|
+
}
|
|
52168
|
+
}
|
|
52157
52169
|
let defaultBacklog = 128;
|
|
52158
52170
|
try {
|
|
52159
52171
|
defaultBacklog = parseInt(fs__default["default"].readFileSync("/proc/sys/net/core/somaxconn", "utf8")) || 128;
|
|
@@ -52162,6 +52174,9 @@ class Server extends require$$0__default$2["default"] {
|
|
|
52162
52174
|
/* */
|
|
52163
52175
|
}
|
|
52164
52176
|
const backlog = this.option.int("backlog", defaultBacklog);
|
|
52177
|
+
this.ws = new ws.Server({ noServer: true });
|
|
52178
|
+
let waitingServers = 1;
|
|
52179
|
+
const port = this.option.int("port", 8097);
|
|
52165
52180
|
this.server.listen({ port, backlog, host: "0.0.0.0" });
|
|
52166
52181
|
this.server.on("upgrade", (req, socket, head) => {
|
|
52167
52182
|
assert__default["default"](this.ws);
|
|
@@ -52169,15 +52184,6 @@ class Server extends require$$0__default$2["default"] {
|
|
|
52169
52184
|
this._handleConnection(ws, req);
|
|
52170
52185
|
});
|
|
52171
52186
|
});
|
|
52172
|
-
this.ws.on("headers", (headers, request) => {
|
|
52173
|
-
const url = new urlParse(request.url, this.baseUrl);
|
|
52174
|
-
headers.push("x-fisk-object-cache: " + (this.objectCache ? "true" : "false"));
|
|
52175
|
-
if (url.pathname === "/monitor") {
|
|
52176
|
-
const nonce = crypto__default["default"].randomBytes(256).toString("base64");
|
|
52177
|
-
headers.push(`x-fisk-nonce: ${nonce}`);
|
|
52178
|
-
this.nonces.set(request, nonce);
|
|
52179
|
-
}
|
|
52180
|
-
});
|
|
52181
52187
|
this.server.on("error", (error) => {
|
|
52182
52188
|
if (error.code === "EADDRINUSE") {
|
|
52183
52189
|
console.log(`Port ${port} is in use...`);
|
|
@@ -52192,8 +52198,51 @@ class Server extends require$$0__default$2["default"] {
|
|
|
52192
52198
|
}
|
|
52193
52199
|
});
|
|
52194
52200
|
this.server.once("listening", () => {
|
|
52195
|
-
console.log("listening on", port);
|
|
52196
|
-
|
|
52201
|
+
console.log("http://listening on", port);
|
|
52202
|
+
if (!--waitingServers) {
|
|
52203
|
+
resolve();
|
|
52204
|
+
}
|
|
52205
|
+
});
|
|
52206
|
+
let securePort;
|
|
52207
|
+
if (key && cert) {
|
|
52208
|
+
securePort = this.option.int("securePort", 8098);
|
|
52209
|
+
this.secureServer = require$$1__default$1["default"].createServer({ key, cert }, this.app);
|
|
52210
|
+
this.secureServer.listen({ port: securePort, backlog, host: "0.0.0.0" });
|
|
52211
|
+
++waitingServers;
|
|
52212
|
+
this.secureServer.on("error", (error) => {
|
|
52213
|
+
if (error.code === "EADDRINUSE") {
|
|
52214
|
+
console.log(`Port ${securePort} is in use...`);
|
|
52215
|
+
setTimeout(() => {
|
|
52216
|
+
assert__default["default"](this.secureServer);
|
|
52217
|
+
this.secureServer.listen({ port: securePort, backlog, host: "0.0.0.0" });
|
|
52218
|
+
}, 1000);
|
|
52219
|
+
}
|
|
52220
|
+
else {
|
|
52221
|
+
console.error("Got secure server error", error.message);
|
|
52222
|
+
this.emit("error", error);
|
|
52223
|
+
}
|
|
52224
|
+
});
|
|
52225
|
+
this.secureServer.on("upgrade", (req, socket, head) => {
|
|
52226
|
+
assert__default["default"](this.ws);
|
|
52227
|
+
this.ws.handleUpgrade(req, socket, head, (ws) => {
|
|
52228
|
+
this._handleConnection(ws, req);
|
|
52229
|
+
});
|
|
52230
|
+
});
|
|
52231
|
+
this.secureServer.once("listening", () => {
|
|
52232
|
+
console.log("https://listening on", securePort);
|
|
52233
|
+
if (!--waitingServers) {
|
|
52234
|
+
resolve();
|
|
52235
|
+
}
|
|
52236
|
+
});
|
|
52237
|
+
}
|
|
52238
|
+
this.ws.on("headers", (headers, request) => {
|
|
52239
|
+
const url = new urlParse(request.url, this.baseUrl);
|
|
52240
|
+
headers.push("x-fisk-object-cache: " + (this.objectCache ? "true" : "false"));
|
|
52241
|
+
if (url.pathname === "/monitor") {
|
|
52242
|
+
const nonce = crypto__default["default"].randomBytes(256).toString("base64");
|
|
52243
|
+
headers.push(`x-fisk-nonce: ${nonce}`);
|
|
52244
|
+
this.nonces.set(request, nonce);
|
|
52245
|
+
}
|
|
52197
52246
|
});
|
|
52198
52247
|
});
|
|
52199
52248
|
}
|