Update non-web dependencies

Update non-web related dependencies to their latest version were
possible. It appears yargs has changed its parsing of command line
options to no longer remove a layer of quotes.
This commit is contained in:
Hornwitser committed 2023-07-27 00:35:26 +02:00
1 parent a96a8a6d25
commit 1a9cbd26b3
19 files changed
+105 -105

No files matched your search

+7 -7
View File
@@ -26,16 +26,16 @@
"@clusterio/ctl": "workspace:*", "@clusterio/ctl": "workspace:*",
"@clusterio/host": "workspace:*", "@clusterio/host": "workspace:*",
"@clusterio/lib": "workspace:*", "@clusterio/lib": "workspace:*",
"eslint": "^8.18.0", "eslint": "^8.45.0",
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"express": "^4.16.2", "express": "^4.18.2",
"form-data": "^4.0.0", "form-data": "^4.0.0",
"fs-extra": "^8.1.0", "fs-extra": "^11.1.1",
"jsdoc": "^4.0.2", "jsdoc": "^4.0.2",
"jsonwebtoken": "^8.2.1", "jsonwebtoken": "^9.0.1",
"jszip": "^3.2.2", "jszip": "^3.10.0",
"mocha": "^9.2.2", "mocha": "^10.2.0",
"nyc": "^15.1.0", "nyc": "^15.1.0",
"phin": "^3.5.1" "phin": "^3.7.0"
} }
} }
+14 -14
View File
@@ -20,27 +20,27 @@
}, },
"dependencies": { "dependencies": {
"@clusterio/lib": "^2.0.0-alpha.13", "@clusterio/lib": "^2.0.0-alpha.13",
"busboy": "^0.3.1", "busboy": "^1.6.0",
"compression": "^1.7.2", "compression": "^1.7.4",
"express": "^4.16.2", "express": "^4.18.2",
"fs-extra": "^8.1.0", "fs-extra": "^11.1.1",
"jsonwebtoken": "^8.2.1", "jsonwebtoken": "^9.0.1",
"jszip": "^3.2.2", "jszip": "^3.10.1",
"set-blocking": "^2.0.0", "set-blocking": "^2.0.0",
"webpack-cli": "^4.9.2", "webpack-cli": "^5.1.4",
"winston": "^3.3.3", "winston": "^3.10.0",
"winston-daily-rotate-file": "^4.5.5", "winston-daily-rotate-file": "^4.7.1",
"ws": "^7.2.3", "ws": "^8.13.0",
"yargs": "^14.2.0" "yargs": "^17.7.2"
}, },
"devDependencies": { "devDependencies": {
"@clusterio/web_ui": "^2.0.0-alpha.13", "@clusterio/web_ui": "^2.0.0-alpha.13",
"react": "^16.13.1", "react": "^16.13.1",
"react-dom": "^16.13.1", "react-dom": "^16.13.1",
"react-router-dom": "^5.2.0", "react-router-dom": "^5.2.0",
"webpack": "^5.73.0", "webpack": "^5.88.2",
"webpack-dev-middleware": "^5.3.1", "webpack-dev-middleware": "^6.1.1",
"webpack-merge": "^5.2.0" "webpack-merge": "^5.9.0"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
+24 -24
View File
@@ -1,5 +1,5 @@
"use strict"; "use strict";
const Busboy = require("busboy"); const busboy = require("busboy");
const crypto = require("crypto"); const crypto = require("crypto");
const events = require("events"); const events = require("events");
const fs = require("fs-extra"); const fs = require("fs-extra");
@@ -304,7 +304,7 @@ async function getStream(req, res) {
} }
stream.source.pipe(res); stream.source.pipe(res);
stream.flowing = true; stream.flowing = true;
res.on("finish", () => { res.on("close", () => {
stream.events.emit("close"); stream.events.emit("close");
}); });
clearTimeout(stream.timeout); clearTimeout(stream.timeout);
@@ -342,7 +342,7 @@ async function uploadSave(req, res) {
res.status(415).json({ request_errors: ["invalid Content-Type"] }); res.status(415).json({ request_errors: ["invalid Content-Type"] });
return; return;
} }
let mimeType = match[1].toLowerCase(); let contentMime = match[1].toLowerCase();
let tasks = []; let tasks = [];
let errors = []; let errors = [];
@@ -381,16 +381,16 @@ async function uploadSave(req, res) {
} }
} }
if (mimeType === "multipart/form-data") { if (contentMime === "multipart/form-data") {
await new Promise(resolve => { await new Promise(resolve => {
let fields = {}; let fields = {};
let busboy = new Busboy({ headers: req.headers }); let parser = busboy({ headers: req.headers });
busboy.on("file", (fieldname, stream, filename, transferEncoding, fileMime) => { parser.on("file", (name, stream, { filename, mimeType }) => {
if (fields.instanceId === undefined) { if (fields.instanceId === undefined) {
requestErrors.push("instance_id must come before files uploaded"); requestErrors.push("instance_id must come before files uploaded");
} }
if (!zipMimes.includes(fileMime)) { if (!zipMimes.includes(mimeType)) {
requestErrors.push("invalid file Content-Type"); requestErrors.push("invalid file Content-Type");
} }
@@ -403,25 +403,25 @@ async function uploadSave(req, res) {
return; return;
} }
tasks.push(handleFile(fields.instanceId, stream, filename, fileMime)); tasks.push(handleFile(fields.instanceId, stream, filename, mimeType));
}); });
busboy.on("field", (fieldname, value, fieldnameTruncated, valueTruncated, transferEncoding, valueMime) => { parser.on("field", (name, value, info) => {
if (fieldname === "instance_id") { if (name === "instance_id") {
fields.instanceId = Number.parseInt(value, 10); fields.instanceId = Number.parseInt(value, 10);
if (Number.isNaN(fields.instanceId)) { if (Number.isNaN(fields.instanceId)) {
requestErrors.push("invalid instance_id"); requestErrors.push("invalid instance_id");
} }
} }
}); });
busboy.on("finish", resolve); parser.on("close", resolve);
busboy.on("error", (err) => { parser.on("error", (err) => {
logger.error(`Error parsing multipart request in upload-save:\n${err.stack}`); logger.error(`Error parsing multipart request in upload-save:\n${err.stack}`);
errors.push(err.message); errors.push(err.message);
}); });
req.pipe(busboy); req.pipe(parser);
}); });
} else if (zipMimes.includes(mimeType)) { } else if (zipMimes.includes(contentMime)) {
let filename = req.query.filename; let filename = req.query.filename;
if (typeof filename !== "string") { if (typeof filename !== "string") {
requestErrors.push("Missing or invalid filename parameter"); requestErrors.push("Missing or invalid filename parameter");
@@ -436,7 +436,7 @@ async function uploadSave(req, res) {
if (errors.length || requestErrors.length) { if (errors.length || requestErrors.length) {
req.resume(); req.resume();
} else { } else {
tasks.push(handleFile(instanceId, req, filename, mimeType)); tasks.push(handleFile(instanceId, req, filename, contentMime));
} }
} else { } else {
@@ -482,7 +482,7 @@ async function uploadMod(req, res) {
res.status(415).json({ request_errors: ["invalid Content-Type"] }); res.status(415).json({ request_errors: ["invalid Content-Type"] });
return; return;
} }
let mimeType = match[1].toLowerCase(); let contentMime = match[1].toLowerCase();
let tasks = []; let tasks = [];
let errors = []; let errors = [];
@@ -544,11 +544,11 @@ async function uploadMod(req, res) {
} }
} }
if (mimeType === "multipart/form-data") { if (contentMime === "multipart/form-data") {
await new Promise(resolve => { await new Promise(resolve => {
let busboy = new Busboy({ headers: req.headers }); let parser = busboy({ headers: req.headers });
busboy.on("file", (fieldname, stream, filename, transferEncoding, fileMime) => { parser.on("file", (name, stream, { filename, mimeType }) => {
if (!zipMimes.includes(fileMime)) { if (!zipMimes.includes(mimeType)) {
requestErrors.push("invalid file Content-Type"); requestErrors.push("invalid file Content-Type");
} }
@@ -563,15 +563,15 @@ async function uploadMod(req, res) {
tasks.push(handleFile(stream, filename)); tasks.push(handleFile(stream, filename));
}); });
busboy.on("finish", resolve); parser.on("close", resolve);
busboy.on("error", (err) => { parser.on("error", (err) => {
logger.error(`Error parsing multipart request in upload-mod:\n${err.stack}`); logger.error(`Error parsing multipart request in upload-mod:\n${err.stack}`);
errors.push(err.message); errors.push(err.message);
}); });
req.pipe(busboy); req.pipe(parser);
}); });
} else if (zipMimes.includes(mimeType)) { } else if (zipMimes.includes(contentMime)) {
let filename = req.query.filename; let filename = req.query.filename;
if (typeof filename !== "string") { if (typeof filename !== "string") {
requestErrors.push("Missing or invalid filename parameter"); requestErrors.push("Missing or invalid filename parameter");
+5 -5
View File
@@ -16,11 +16,11 @@
"node": ">=18" "node": ">=18"
}, },
"dependencies": { "dependencies": {
"chalk": "^4.1.0", "chalk": "^4.1.2",
"fs-extra": "^8.1.0", "fs-extra": "^11.1.1",
"inquirer": "^8.1.0", "inquirer": "^8.2.4",
"phin": "^3.5.1", "phin": "^3.7.0",
"yargs": "^14.2.0" "yargs": "^17.7.2"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
+5 -5
View File
@@ -19,12 +19,12 @@
}, },
"dependencies": { "dependencies": {
"@clusterio/lib": "^2.0.0-alpha.13", "@clusterio/lib": "^2.0.0-alpha.13",
"as-table": "^1.0.31", "as-table": "^1.0.55",
"fs-extra": "^8.1.0", "fs-extra": "^11.1.1",
"phin": "^3.5.1", "phin": "^3.7.0",
"set-blocking": "^2.0.0", "set-blocking": "^2.0.0",
"winston": "^3.3.3", "winston": "^3.10.0",
"yargs": "^14.2.0" "yargs": "^17.7.2"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
+3
View File
@@ -381,6 +381,9 @@ instanceConfigCommands.add(new libCommand.Command({
// with the all the layers of quote removal at play is difficult. // with the all the layers of quote removal at play is difficult.
// See the following table for how to pass "That's a \" quote" in // See the following table for how to pass "That's a \" quote" in
// different environments: // different environments:
// ----------------------- WARNING -------------------------------
// This table is most likely invalid due a change in yargs parsing
// ---------------------------------------------------------------
// cmd : """""That's a \\"" quote""""" // cmd : """""That's a \\"" quote"""""
// cmd + npx : """""""""""That's a \\\\"""" quote""""""""""" // cmd + npx : """""""""""That's a \\\\"""" quote"""""""""""
// PowerShell : '"""""That''s a \\"" quote"""""' // PowerShell : '"""""That''s a \\"" quote"""""'
+6 -6
View File
@@ -19,13 +19,13 @@
}, },
"dependencies": { "dependencies": {
"@clusterio/lib": "^2.0.0-alpha.13", "@clusterio/lib": "^2.0.0-alpha.13",
"fs-extra": "^8.1.0", "fs-extra": "^11.1.1",
"phin": "^3.5.1", "phin": "^3.7.0",
"pidusage": "^2.0.18", "pidusage": "^3.0.2",
"set-blocking": "^2.0.0", "set-blocking": "^2.0.0",
"winston": "^3.3.3", "winston": "^3.10.0",
"winston-daily-rotate-file": "^4.5.5", "winston-daily-rotate-file": "^4.7.1",
"yargs": "^14.2.0" "yargs": "^17.7.2"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
+1
View File
@@ -432,6 +432,7 @@ class WebSocketClientConnector extends WebSocketBaseConnector {
_doConnect() { _doConnect() {
let url = new URL(this._url); let url = new URL(this._url);
url.pathname += "api/socket"; url.pathname += "api/socket";
url.protocol = url.protocol.replace("http", "ws");
// Open WebSocket to controller // Open WebSocket to controller
logger.verbose(`Connector | connecting to ${url}`); logger.verbose(`Connector | connecting to ${url}`);
+15 -15
View File
@@ -12,23 +12,23 @@
"node": ">=12" "node": ">=12"
}, },
"dependencies": { "dependencies": {
"ajv": "^6.12.6", "ajv": "^8.12.0",
"chalk": "^4.1.0", "chalk": "^4.1.2",
"fast-deep-equal": "^3.1.3", "fast-deep-equal": "^3.1.3",
"fs-extra": "^8.1.0", "fs-extra": "^11.1.1",
"isomorphic-ws": "^4.0.1", "isomorphic-ws": "^5.0.0",
"jimp": "^0.12.1", "jimp": "^0.22.8",
"jsonwebtoken": "^8.2.1", "jsonwebtoken": "^9.0.1",
"jszip": "^3.2.2", "jszip": "^3.10.1",
"klaw": "^3.0.0", "klaw": "^4.1.0",
"rcon-client": "^4.2.0", "rcon-client": "^4.2.3",
"semver": "^7.1.1", "semver": "^7.5.4",
"set-blocking": "^2.0.0", "set-blocking": "^2.0.0",
"triple-beam": "^1.3.0", "triple-beam": "^1.4.1",
"winston": "^3.3.3", "winston": "^3.10.0",
"winston-transport": "^4.4.0", "winston-transport": "^4.5.0",
"ws": "^7.2.3", "ws": "^8.13.0",
"yargs": "^14.2.0" "yargs": "^17.7.2"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
+2 -4
View File
@@ -5,11 +5,9 @@
"use strict"; "use strict";
const Ajv = require("ajv"); const Ajv = require("ajv");
const ajv = new Ajv({ const ajv = new Ajv({
allowUnionTypes: true,
strict: "log",
verbose: true, verbose: true,
format: "full",
extendRefs: "fail",
strictDefaults: true,
strictKeywords: true,
}); });
module.exports = { module.exports = {
+2 -2
View File
@@ -39,8 +39,8 @@
"style-loader": "^2.0.0", "style-loader": "^2.0.0",
"terser-webpack-plugin": "^5.3.9", "terser-webpack-plugin": "^5.3.9",
"util": "^0.12.3", "util": "^0.12.3",
"webpack": "^5.73.0", "webpack": "^5.88.2",
"webpack-cli": "^4.9.2", "webpack-cli": "^5.1.4",
"webpack-manifest-plugin": "^5.0.0" "webpack-manifest-plugin": "^5.0.0"
}, },
"publishConfig": { "publishConfig": {
-2
View File
@@ -108,8 +108,6 @@ export default async function bootstrap() {
let plugins = await loadPlugins(pluginInfos); let plugins = await loadPlugins(pluginInfos);
let wsUrl = new URL(window.webRoot, document.location); let wsUrl = new URL(window.webRoot, document.location);
wsUrl.protocol = wsUrl.protocol.replace("http", "ws");
let controlConnector = new ControlConnector(wsUrl, 120); let controlConnector = new ControlConnector(wsUrl, 120);
let control = new Control(controlConnector, plugins); let control = new Control(controlConnector, plugins);
+3 -3
View File
@@ -22,9 +22,9 @@
"devDependencies": { "devDependencies": {
"@clusterio/lib": "^2.0.0-alpha.13", "@clusterio/lib": "^2.0.0-alpha.13",
"@clusterio/web_ui": "^2.0.0-alpha.13", "@clusterio/web_ui": "^2.0.0-alpha.13",
"webpack": "^5.36.2", "webpack": "^5.88.2",
"webpack-cli": "^4.7.0", "webpack-cli": "^5.1.4",
"webpack-merge": "^5.2.0" "webpack-merge": "^5.9.0"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
+3 -3
View File
@@ -28,9 +28,9 @@
"antd": "^4.16.0", "antd": "^4.16.0",
"react": "^16.13.1", "react": "^16.13.1",
"react-dom": "^16.13.1", "react-dom": "^16.13.1",
"webpack": "^5.36.2", "webpack": "^5.88.2",
"webpack-cli": "^4.7.0", "webpack-cli": "^5.1.4",
"webpack-merge": "^5.2.0" "webpack-merge": "^5.9.0"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
+4 -4
View File
@@ -27,12 +27,12 @@
"@clusterio/lib": "^2.0.0-alpha.13", "@clusterio/lib": "^2.0.0-alpha.13",
"@clusterio/web_ui": "^2.0.0-alpha.13", "@clusterio/web_ui": "^2.0.0-alpha.13",
"antd": "^4.16.0", "antd": "^4.16.0",
"phin": "^3.5.1", "phin": "^3.7.0",
"react": "^16.13.1", "react": "^16.13.1",
"react-dom": "^16.13.1", "react-dom": "^16.13.1",
"webpack": "^5.36.2", "webpack": "^5.88.2",
"webpack-cli": "^4.7.0", "webpack-cli": "^5.1.4",
"webpack-merge": "^5.2.0" "webpack-merge": "^5.9.0"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
+3 -3
View File
@@ -25,9 +25,9 @@
"devDependencies": { "devDependencies": {
"@clusterio/lib": "^2.0.0-alpha.13", "@clusterio/lib": "^2.0.0-alpha.13",
"@clusterio/web_ui": "^2.0.0-alpha.13", "@clusterio/web_ui": "^2.0.0-alpha.13",
"webpack": "^5.36.2", "webpack": "^5.88.2",
"webpack-cli": "^4.7.0", "webpack-cli": "^5.1.4",
"webpack-merge": "^5.2.0" "webpack-merge": "^5.9.0"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
+3 -3
View File
@@ -22,9 +22,9 @@
"devDependencies": { "devDependencies": {
"@clusterio/lib": "^2.0.0-alpha.13", "@clusterio/lib": "^2.0.0-alpha.13",
"@clusterio/web_ui": "^2.0.0-alpha.13", "@clusterio/web_ui": "^2.0.0-alpha.13",
"webpack": "^5.36.2", "webpack": "^5.88.2",
"webpack-cli": "^4.7.0", "webpack-cli": "^5.1.4",
"webpack-merge": "^5.2.0" "webpack-merge": "^5.9.0"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
+3 -3
View File
@@ -28,9 +28,9 @@
"antd": "^4.16.0", "antd": "^4.16.0",
"react": "^16.13.1", "react": "^16.13.1",
"react-dom": "^16.13.1", "react-dom": "^16.13.1",
"webpack": "^5.36.2", "webpack": "^5.88.2",
"webpack-cli": "^4.7.0", "webpack-cli": "^5.1.4",
"webpack-merge": "^5.2.0" "webpack-merge": "^5.9.0"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
+2 -2
View File
@@ -246,7 +246,7 @@ describe("Integration of Clusterio", function() {
let value = JSON.stringify({ lan: true, public: false }).replace( let value = JSON.stringify({ lan: true, public: false }).replace(
/"/g, process.platform === "win32" ? '""' : '\\"' /"/g, process.platform === "win32" ? '""' : '\\"'
); );
await execCtl(`instance config set-prop test factorio.settings visibility "'${value}'"`); await execCtl(`instance config set-prop test factorio.settings visibility "${value}"`);
await execCtl("instance config set-prop test factorio.settings require_user_verification false"); await execCtl("instance config set-prop test factorio.settings require_user_verification false");
}); });
}); });
@@ -442,7 +442,7 @@ describe("Integration of Clusterio", function() {
]; ];
for (let [prop, value] of testConfigs) { for (let [prop, value] of testConfigs) {
value = `"'${JSON.stringify(value).replace(/"/g, process.platform === "win32" ? '""' : '\\"')}'"`; value = `"${JSON.stringify(value).replace(/"/g, process.platform === "win32" ? '""' : '\\"')}"`;
let args = `test factorio.settings ${prop} ${value}`; let args = `test factorio.settings ${prop} ${value}`;
await execCtl(`instance config set-prop ${args}`); await execCtl(`instance config set-prop ${args}`);
} }