diff --git a/.eslintignore b/.eslintignore index 76add878..a58bb386 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,3 @@ node_modules -dist \ No newline at end of file +dist +.eslintrc.cjs \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 00000000..1a66b30d --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,54 @@ +module.exports = { + root: true, + plugins: [ + '@typescript-eslint' + ], + parser: '@typescript-eslint/parser', + parserOptions: { + project: true, + tsconfigRootDir: __dirname + }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended-type-checked', + 'plugin:@typescript-eslint/stylistic-type-checked' + ], + rules: { + semi: 'off', + '@typescript-eslint/semi': [ + 'error', + 'never' + ], + quotes: 'off', + '@typescript-eslint/quotes': [ + 'error', + 'single' + ], + indent: 'off', + '@typescript-eslint/indent': [ + 'error', + 4 + ], + '@typescript-eslint/member-delimiter-style': [ + 'error', + { + multiline: { + delimiter: 'none', + requireLast: false + }, + singleline: { + delimiter: 'comma', + requireLast: false + } + } + ], + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/explicit-function-return-type': ['warn'], + '@typescript-eslint/restrict-template-expressions': 'off', + '@typescript-eslint/require-await': 'off', + '@typescript-eslint/no-unsafe-member-access': 'off', + '@typescript-eslint/no-unsafe-call': 'off', + '@typescript-eslint/consistent-indexed-object-style': 'off', + '@typescript-eslint/prefer-nullish-coalescing': 'off' + } +} diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 67796762..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "plugins": [ - "@typescript-eslint" - ], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended" - ], - "rules": { - "semi": "off", - "@typescript-eslint/semi": [ - "error", - "never" - ], - "quotes": "off", - "@typescript-eslint/quotes": [ - "error", - "single" - ], - "indent": "off", - "@typescript-eslint/indent": [ - "error", - 4 - ], - "@typescript-eslint/member-delimiter-style": [ - "error", - { - "multiline": { - "delimiter": "none", - "requireLast": false - }, - "singleline": { - "delimiter": "comma", - "requireLast": false - } - } - ], - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/explicit-function-return-type": ["warn"] - } -} diff --git a/package-lock.json b/package-lock.json index 4ad71254..a208c303 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,24 +13,24 @@ "fs-extra": "^11.1.1", "got": "^13.0.0", "helios-distribution-types": "^1.2.0", - "luxon": "^3.3.0", - "minimatch": "^9.0.2", + "luxon": "^3.4.0", + "minimatch": "^9.0.3", "node-stream-zip": "^1.15.0", "toml": "^3.0.0", - "triple-beam": "^1.3.0", + "triple-beam": "^1.4.1", "ts-json-schema-generator": "^1.2.0", - "winston": "^3.9.0", + "winston": "^3.10.0", "yargs": "^17.7.2" }, "devDependencies": { "@types/fs-extra": "^11.0.1", - "@types/luxon": "^3.3.0", - "@types/node": "^18.16.9", + "@types/luxon": "^3.3.1", + "@types/node": "^18.17.5", "@types/triple-beam": "^1.3.2", "@types/yargs": "^17.0.24", - "@typescript-eslint/eslint-plugin": "^5.60.1", - "@typescript-eslint/parser": "^5.60.1", - "eslint": "^8.44.0", + "@typescript-eslint/eslint-plugin": "^6.3.0", + "@typescript-eslint/parser": "^6.3.0", + "eslint": "^8.47.0", "rimraf": "^5.0.1", "typescript": "^5.1.6" } @@ -78,18 +78,18 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", + "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -132,9 +132,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.47.0.tgz", + "integrity": "sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -336,15 +336,15 @@ } }, "node_modules/@types/luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-uKRI5QORDnrGFYgcdAVnHvEIvEZ8noTpP/Bg+HeUzZghwinDlIS87DEenV5r1YoOF9G4x600YsUXLWZ19rmTmg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.1.tgz", + "integrity": "sha512-XOS5nBcgEeP2PpcqJHjCWhUCAzGfXIU8ILOSLpx2FhxqMW9KdxgCGXNOEKGVBfveKtIpztHzKK5vSRVLyW/NqA==", "dev": true }, "node_modules/@types/node": { - "version": "18.16.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.19.tgz", - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", + "version": "18.17.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.5.tgz", + "integrity": "sha512-xNbS75FxH6P4UXTPUJp/zNPq6/xsfdJKussCWNOnz4aULWIRwMgP1LgaB5RiBnMX1DPCYenuqGZfnIAx5mbFLA==", "dev": true }, "node_modules/@types/semver": { @@ -374,32 +374,34 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.1.tgz", - "integrity": "sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.3.0.tgz", + "integrity": "sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.60.1", - "@typescript-eslint/type-utils": "5.60.1", - "@typescript-eslint/utils": "5.60.1", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.3.0", + "@typescript-eslint/type-utils": "6.3.0", + "@typescript-eslint/utils": "6.3.0", + "@typescript-eslint/visitor-keys": "6.3.0", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -408,25 +410,26 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.60.1.tgz", - "integrity": "sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.3.0.tgz", + "integrity": "sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.60.1", - "@typescript-eslint/types": "5.60.1", - "@typescript-eslint/typescript-estree": "5.60.1", + "@typescript-eslint/scope-manager": "6.3.0", + "@typescript-eslint/types": "6.3.0", + "@typescript-eslint/typescript-estree": "6.3.0", + "@typescript-eslint/visitor-keys": "6.3.0", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -435,16 +438,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.60.1.tgz", - "integrity": "sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.3.0.tgz", + "integrity": "sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.60.1", - "@typescript-eslint/visitor-keys": "5.60.1" + "@typescript-eslint/types": "6.3.0", + "@typescript-eslint/visitor-keys": "6.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -452,25 +455,25 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.60.1.tgz", - "integrity": "sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.3.0.tgz", + "integrity": "sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.60.1", - "@typescript-eslint/utils": "5.60.1", + "@typescript-eslint/typescript-estree": "6.3.0", + "@typescript-eslint/utils": "6.3.0", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -479,12 +482,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.1.tgz", - "integrity": "sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.3.0.tgz", + "integrity": "sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -492,21 +495,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.1.tgz", - "integrity": "sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz", + "integrity": "sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.60.1", - "@typescript-eslint/visitor-keys": "5.60.1", + "@typescript-eslint/types": "6.3.0", + "@typescript-eslint/visitor-keys": "6.3.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -519,42 +522,41 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.1.tgz", - "integrity": "sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.3.0.tgz", + "integrity": "sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.60.1", - "@typescript-eslint/types": "5.60.1", - "@typescript-eslint/typescript-estree": "5.60.1", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.3.0", + "@typescript-eslint/types": "6.3.0", + "@typescript-eslint/typescript-estree": "6.3.0", + "semver": "^7.5.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.60.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.1.tgz", - "integrity": "sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.3.0.tgz", + "integrity": "sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.60.1", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "6.3.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -562,9 +564,9 @@ } }, "node_modules/acorn": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", - "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -975,27 +977,27 @@ } }, "node_modules/eslint": { - "version": "8.44.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.44.0.tgz", - "integrity": "sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz", + "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "^8.47.0", "@humanwhocodes/config-array": "^0.11.10", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1005,7 +1007,6 @@ "globals": "^13.19.0", "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", @@ -1017,7 +1018,6 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -1031,22 +1031,25 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1065,31 +1068,6 @@ "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -1103,9 +1081,9 @@ } }, "node_modules/espree": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.0.tgz", - "integrity": "sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { "acorn": "^8.9.0", @@ -1131,15 +1109,6 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -1152,7 +1121,7 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", @@ -1161,15 +1130,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -1186,9 +1146,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1456,9 +1416,9 @@ } }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1519,12 +1479,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -1829,9 +1783,9 @@ } }, "node_modules/luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.0.tgz", + "integrity": "sha512-7eDo4Pt7aGhoCheGFIuq4Xa2fJm4ZpmldpGhjTYBNUYNCN6TIEP6v7chwwwt3KRp7YR+rghbfvjyo3V5y9hgBw==", "engines": { "node": ">=12" } @@ -1870,9 +1824,9 @@ } }, "node_modules/minimatch": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", - "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -2264,9 +2218,9 @@ } }, "node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2498,9 +2452,24 @@ "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" }, "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", + "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } }, "node_modules/ts-json-schema-generator": { "version": "1.2.0", @@ -2563,27 +2532,6 @@ "node": ">=4.2.0" } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -2659,9 +2607,9 @@ } }, "node_modules/winston": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.9.0.tgz", - "integrity": "sha512-jW51iW/X95BCW6MMtZWr2jKQBP4hV5bIDq9QrIjfDk6Q9QuxvTKEAlpUNAzP+HYHFFCeENhph16s0zEunu4uuQ==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.10.0.tgz", + "integrity": "sha512-nT6SIDaE9B7ZRO0u3UvdrimG0HkB7dSTAgInQnNR2SOPJ4bvq5q79+pXLftKmP52lJGW15+H5MCK0nM9D3KB/g==", "dependencies": { "@colors/colors": "1.5.0", "@dabh/diagnostics": "^2.0.2", diff --git a/package.json b/package.json index 93084d51..8ef7f305 100644 --- a/package.json +++ b/package.json @@ -30,13 +30,13 @@ "homepage": "https://github.com/dscalzi/Nebula#readme", "devDependencies": { "@types/fs-extra": "^11.0.1", - "@types/luxon": "^3.3.0", - "@types/node": "^18.16.9", + "@types/luxon": "^3.3.1", + "@types/node": "^18.17.5", "@types/triple-beam": "^1.3.2", "@types/yargs": "^17.0.24", - "@typescript-eslint/eslint-plugin": "^5.60.1", - "@typescript-eslint/parser": "^5.60.1", - "eslint": "^8.44.0", + "@typescript-eslint/eslint-plugin": "^6.3.0", + "@typescript-eslint/parser": "^6.3.0", + "eslint": "^8.47.0", "rimraf": "^5.0.1", "typescript": "^5.1.6" }, @@ -45,13 +45,13 @@ "fs-extra": "^11.1.1", "got": "^13.0.0", "helios-distribution-types": "^1.2.0", - "luxon": "^3.3.0", - "minimatch": "^9.0.2", + "luxon": "^3.4.0", + "minimatch": "^9.0.3", "node-stream-zip": "^1.15.0", "toml": "^3.0.0", - "triple-beam": "^1.3.0", + "triple-beam": "^1.4.1", "ts-json-schema-generator": "^1.2.0", - "winston": "^3.9.0", + "winston": "^3.10.0", "yargs": "^17.7.2" } } diff --git a/src/index.ts b/src/index.ts index 4a844d9e..edca72dc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,3 @@ -/* tslint:disable:no-shadowed-variable */ import dotenv from 'dotenv' import { writeFile } from 'fs/promises' import { resolve as resolvePath } from 'path' @@ -21,18 +20,18 @@ dotenv.config() const logger = LoggerUtil.getLogger('Index') function getRoot(): string { - return resolvePath(process.env.ROOT as string) + return resolvePath(process.env.ROOT!) } function getHeliosDataFolder(): string | null { if(process.env.HELIOS_DATA_FOLDER) { - return resolvePath(process.env.HELIOS_DATA_FOLDER as string) + return resolvePath(process.env.HELIOS_DATA_FOLDER) } return null } function getBaseURL(): string { - let baseUrl = process.env.BASE_URL as string + let baseUrl = process.env.BASE_URL! // Users must provide protocol in all other instances. if (baseUrl.indexOf('//') === -1) { if (baseUrl.toLowerCase().startsWith('localhost')) { @@ -190,7 +189,7 @@ const generateServerCommand: CommandModule = { if(argv.forge != null) { if (VersionUtil.isPromotionVersion(argv.forge as string)) { - logger.debug(`Resolving ${argv.forge} Forge Version..`) + logger.debug(`Resolving ${argv.forge as string} Forge Version..`) const version = await VersionUtil.getPromotedForgeVersion(minecraftVersion, argv.forge as string) logger.debug(`Forge version set to ${version}`) argv.forge = version @@ -198,7 +197,7 @@ const generateServerCommand: CommandModule = { } const serverStruct = new ServerStructure(argv.root as string, getBaseURL(), false, false) - serverStruct.createServer( + await serverStruct.createServer( argv.id as string, minecraftVersion, { @@ -292,14 +291,14 @@ const generateDistroCommand: CommandModule = { const distro = await distributionStruct.getSpecModel() const distroOut = JSON.stringify(distro, null, 2) const distroPath = resolvePath(argv.root as string, finalName) - writeFile(distroPath, distroOut) + await writeFile(distroPath, distroOut) logger.info(`Successfully generated ${finalName}`) logger.info(`Saved to ${distroPath}`) logger.debug('Preview:\n', distro) if(doLocalInstall) { const finalDestination = resolvePath(heliosDataFolder!, finalName) logger.info(`Installing distribution to ${finalDestination}`) - writeFile(finalDestination, distroOut) + await writeFile(finalDestination, distroOut) logger.info('Success!') } @@ -412,8 +411,7 @@ const testCommand: CommandModule = { } // Registering yargs configuration. -// tslint:disable-next-line:no-unused-expression -yargs(hideBin(process.argv)) +await yargs(hideBin(process.argv)) .version(false) .scriptName('') .command(initCommand) diff --git a/src/model/forge/ModsToml.ts b/src/model/forge/ModsToml.ts index 45bfd78a..50291b73 100644 --- a/src/model/forge/ModsToml.ts +++ b/src/model/forge/ModsToml.ts @@ -6,7 +6,7 @@ export interface ModsToml { loaderVersion: string issueTrackerURL?: string - mods: Array<{ + mods: { modId: string version: string displayName: string @@ -16,7 +16,7 @@ export interface ModsToml { credits?: string authors?: string description: string - }> + }[] dependencies?: {[modId: string]: { modId: string diff --git a/src/model/forge/VersionManifestFG2.ts b/src/model/forge/VersionManifestFG2.ts index 4415ba2d..40362bc7 100644 --- a/src/model/forge/VersionManifestFG2.ts +++ b/src/model/forge/VersionManifestFG2.ts @@ -9,13 +9,13 @@ export interface VersionManifestFG2 { inheritsFrom: string jar: string logging: Record - libraries: Array<{ + libraries: { name: string url?: string checksums?: string[] serverreq?: boolean clientreq?: boolean comment?: string - }> + }[] } diff --git a/src/model/forge/VersionManifestFG3.ts b/src/model/forge/VersionManifestFG3.ts index a500afe4..60e0797a 100644 --- a/src/model/forge/VersionManifestFG3.ts +++ b/src/model/forge/VersionManifestFG3.ts @@ -10,7 +10,7 @@ export interface VersionManifestFG3 { arguments: { game: string[] } - libraries: Array<{ + libraries: { name: string downloads: { artifact: { @@ -20,6 +20,6 @@ export interface VersionManifestFG3 { size: number } } - }> + }[] } diff --git a/src/parser/CurseForgeParser.ts b/src/parser/CurseForgeParser.ts index e1bc24bf..7561c73f 100644 --- a/src/parser/CurseForgeParser.ts +++ b/src/parser/CurseForgeParser.ts @@ -83,7 +83,7 @@ export class CurseForgeParser { public async getModpackManifest(): Promise { const zip = new StreamZip.async({ file: this.zipPath }) - return JSON.parse((await zip.entryData('manifest.json')).toString('utf8')) + return JSON.parse((await zip.entryData('manifest.json')).toString('utf8')) as CurseForgeManifest } public async enrichServer(createServerResult: CreateServerResult, manifest: CurseForgeManifest): Promise { diff --git a/src/resolver/forge/Forge.resolver.ts b/src/resolver/forge/Forge.resolver.ts index d65c5c0c..f70db68f 100644 --- a/src/resolver/forge/Forge.resolver.ts +++ b/src/resolver/forge/Forge.resolver.ts @@ -106,29 +106,24 @@ export abstract class ForgeResolver extends BaseResolver { if (minor === 13 && revision >= 2 && extra >= 1300) { return `${version}-1.7.10` } - } else - if (major === 11) { + } + else if (major === 11) { if (minor === 15) { if (revision === 1 && extra >= 1890) { return `${version}-1.8.9` - } else - if (revision === 0 && extra <= 1654) { + } else if (revision === 0 && extra <= 1654) { return `${version}-1.8.8` } - } else - if (minor === 14 && revision === 0 && extra <= 1295) { + } else if (minor === 14 && revision === 0 && extra <= 1295) { return `${version}-1.8` } - } else - if (major === 12) { + } else if (major === 12) { if (minor === 17 && revision === 0 && extra <= 1936) { return `${version}-1.9.4` - } else - if (minor === 16) { + } else if (minor === 16) { if (revision === 0 && extra <= 1885) { return `${version}-1.9` - } else - if (revision === 1 && extra === 1938) { + } else if (revision === 1 && extra === 1938) { return `${version}-1.9.0` } } diff --git a/src/resolver/forge/adapter/ForgeGradle2.resolver.ts b/src/resolver/forge/adapter/ForgeGradle2.resolver.ts index 7f307f2f..9028073d 100644 --- a/src/resolver/forge/adapter/ForgeGradle2.resolver.ts +++ b/src/resolver/forge/adapter/ForgeGradle2.resolver.ts @@ -145,7 +145,8 @@ export class ForgeGradle2Adapter extends ForgeResolver { name: `Minecraft Forge (${mavenComponents?.artifact})`, type: Type.Library, artifact: this.generateArtifact( - libBuf as Buffer, + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion + libBuf!, stats, libRepo.getArtifactUrlByComponents( this.baseUrl, @@ -205,8 +206,8 @@ export class ForgeGradle2Adapter extends ForgeResolver { } private async processPackXZFiles( - processingQueue: Array<{id: string, localPath: string}> - ): Promise> { + processingQueue: {id: string, localPath: string}[] + ): Promise<{id: string, MD5: string}[]> { if(processingQueue.length == 0) { return [] diff --git a/src/resolver/forge/adapter/ForgeGradle3.resolver.ts b/src/resolver/forge/adapter/ForgeGradle3.resolver.ts index 2d4a5117..57193a24 100644 --- a/src/resolver/forge/adapter/ForgeGradle3.resolver.ts +++ b/src/resolver/forge/adapter/ForgeGradle3.resolver.ts @@ -308,13 +308,13 @@ export class ForgeGradle3Adapter extends ForgeResolver { ForgeGradle3Adapter.logger.debug('Processing Version Manifest') const versionManifestTuple = await this.processVersionManifest(installerOutputDir) - const versionManifest = versionManifestTuple[0] as VersionManifestFG3 + const versionManifest = versionManifestTuple[0] ForgeGradle3Adapter.logger.debug('Processing generated forge files.') const forgeModule = await this.processForgeModule(versionManifest, installerOutputDir) // Attach version.json module. - forgeModule.subModules?.unshift(versionManifestTuple[1] as Module) + forgeModule.subModules?.unshift(versionManifestTuple[1]) ForgeGradle3Adapter.logger.debug('Processing Libraries') const libs = await this.processLibraries(versionManifest, installerOutputDir) @@ -465,7 +465,7 @@ export class ForgeGradle3Adapter extends ForgeResolver { } - const forgeModule = mdls.shift() as Module + const forgeModule = mdls.shift()! forgeModule.type = Type.ForgeHosted forgeModule.subModules = mdls @@ -696,7 +696,8 @@ export class ForgeGradle3Adapter extends ForgeResolver { name: `Minecraft Forge (${mavenComponents?.artifact})`, type: Type.Library, artifact: this.generateArtifact( - libBuf as Buffer, + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion + libBuf!, stats, libRepo.getArtifactUrlByComponents( this.baseUrl, diff --git a/src/structure/BaseFileStructure.ts b/src/structure/BaseFileStructure.ts index 07903901..ba8b3c16 100644 --- a/src/structure/BaseFileStructure.ts +++ b/src/structure/BaseFileStructure.ts @@ -20,7 +20,7 @@ export abstract class BaseFileStructure implements FileStructure { } public async init(): Promise { - mkdirs(this.containerDirectory) + await mkdirs(this.containerDirectory) } public getContainerDirectory(): string { diff --git a/src/structure/repo/BaseMavenRepo.ts b/src/structure/repo/BaseMavenRepo.ts index 19bf500a..5e156117 100644 --- a/src/structure/repo/BaseMavenRepo.ts +++ b/src/structure/repo/BaseMavenRepo.ts @@ -42,7 +42,7 @@ export abstract class BaseMavenRepo extends BaseFileStructure { } public async downloadArtifactById(url: string, mavenIdentifier: string, extension?: string): Promise { - return this.downloadArtifactBase(url, MavenUtil.mavenIdentifierAsPath(mavenIdentifier, extension) as string) + return this.downloadArtifactBase(url, MavenUtil.mavenIdentifierAsPath(mavenIdentifier, extension)) } public async downloadArtifactByComponents( @@ -59,12 +59,11 @@ export abstract class BaseMavenRepo extends BaseFileStructure { public async downloadArtifactDirect(url: string, path: string): Promise { BaseMavenRepo.logger.debug(`Downloading ${url}..`) - const request = await got.stream.get({ url }) + const request = got.stream.get({ url }) const localPath = resolve(this.containerDirectory, path) await mkdirs(dirname(localPath)) const writer = createWriteStream(localPath) request.pipe(writer) - // tslint:disable-next-line: no-shadowed-variable return new Promise((resolve, reject) => { writer.on('finish', () => { BaseMavenRepo.logger.debug(`Completed download of ${url}.`) @@ -75,7 +74,7 @@ export abstract class BaseMavenRepo extends BaseFileStructure { } public async headArtifactById(url: string, mavenIdentifier: string, extension?: string): Promise { - return this.headArtifactBase(url, MavenUtil.mavenIdentifierAsPath(mavenIdentifier, extension) as string) + return this.headArtifactBase(url, MavenUtil.mavenIdentifierAsPath(mavenIdentifier, extension)) } public async headArtifactByComponents( diff --git a/src/structure/repo/Repo.struct.ts b/src/structure/repo/Repo.struct.ts index aed4c86d..68c44423 100644 --- a/src/structure/repo/Repo.struct.ts +++ b/src/structure/repo/Repo.struct.ts @@ -23,7 +23,7 @@ export class RepoStructure extends BaseFileStructure { } public async init(): Promise { - super.init() + await super.init() await this.libRepoStruct.init() await this.versionRepoStruct.init() await mkdirs(this.getCacheDirectory()) diff --git a/src/structure/spec_model/Distribution.struct.ts b/src/structure/spec_model/Distribution.struct.ts index e2d37763..97f692ea 100644 --- a/src/structure/spec_model/Distribution.struct.ts +++ b/src/structure/spec_model/Distribution.struct.ts @@ -49,7 +49,7 @@ export class DistributionStructure implements SpecModelStructure { public async getSpecModel(): Promise { - const distroMeta: DistroMeta = JSON.parse(await readFile(resolve(this.metaPath, this.DISTRO_META_FILE), 'utf-8')) + const distroMeta = JSON.parse(await readFile(resolve(this.metaPath, this.DISTRO_META_FILE), 'utf-8')) as DistroMeta return { version: '1.0.0', diff --git a/src/structure/spec_model/Server.struct.ts b/src/structure/spec_model/Server.struct.ts index e907ae3b..a1df2d3c 100644 --- a/src/structure/spec_model/Server.struct.ts +++ b/src/structure/spec_model/Server.struct.ts @@ -139,7 +139,7 @@ export class ServerStructure extends BaseModelStructure { } // Read server meta - const serverMeta: ServerMeta = JSON.parse(await readFile(resolvePath(absoluteServerRoot, this.SERVER_META_FILE), 'utf-8')) + const serverMeta = JSON.parse(await readFile(resolvePath(absoluteServerRoot, this.SERVER_META_FILE), 'utf-8')) as ServerMeta const minecraftVersion = new MinecraftVersion(match[2]) const untrackedFiles: UntrackedFilesOption[] = serverMeta.untrackedFiles || [] diff --git a/src/structure/spec_model/module/forgemod/ForgeMod113.struct.ts b/src/structure/spec_model/module/forgemod/ForgeMod113.struct.ts index fdacbfea..ba2a75fe 100644 --- a/src/structure/spec_model/module/forgemod/ForgeMod113.struct.ts +++ b/src/structure/spec_model/module/forgemod/ForgeMod113.struct.ts @@ -71,7 +71,7 @@ export class ForgeModStructure113 extends BaseForgeModStructure { }) } else { - resolve(this.forgeModMetadata[name] as ModsToml) + resolve(this.forgeModMetadata[name]!) return } @@ -108,7 +108,7 @@ export class ForgeModStructure113 extends BaseForgeModStructure { }] }) - return this.forgeModMetadata[name] as ModsToml + return this.forgeModMetadata[name]! } let raw: Buffer | undefined @@ -183,7 +183,7 @@ export class ForgeModStructure113 extends BaseForgeModStructure { }) } - return this.forgeModMetadata[name] as ModsToml + return this.forgeModMetadata[name]! } } diff --git a/src/structure/spec_model/module/forgemod/ForgeMod17.struct.ts b/src/structure/spec_model/module/forgemod/ForgeMod17.struct.ts index 09f2b824..9c1dc424 100644 --- a/src/structure/spec_model/module/forgemod/ForgeMod17.struct.ts +++ b/src/structure/spec_model/module/forgemod/ForgeMod17.struct.ts @@ -70,7 +70,7 @@ export class ForgeModStructure17 extends BaseForgeModStructure { }) } else { - resolve(this.forgeModMetadata[name] as McModInfo) + resolve(this.forgeModMetadata[name]!) return } @@ -104,7 +104,7 @@ export class ForgeModStructure17 extends BaseForgeModStructure { version, mcversion: version.substring(0, version.indexOf('_')) }) as McModInfo - return this.forgeModMetadata[name] as McModInfo + return this.forgeModMetadata[name]! } let raw: Buffer | undefined @@ -184,7 +184,7 @@ export class ForgeModStructure17 extends BaseForgeModStructure { }) as McModInfo } - return this.forgeModMetadata[name] as McModInfo + return this.forgeModMetadata[name]! } } diff --git a/src/util/LoggerUtil.ts b/src/util/LoggerUtil.ts index 3ea2cbc8..359cb35a 100644 --- a/src/util/LoggerUtil.ts +++ b/src/util/LoggerUtil.ts @@ -14,8 +14,9 @@ export class LoggerUtil { format.printf(info => { if(info[SPLAT]) { if(info[SPLAT].length === 1 && info[SPLAT][0] instanceof Error) { - const err = info[SPLAT][0] as Error + const err: Error = info[SPLAT][0] if(info.message.length > err.message.length && info.message.endsWith(err.message)) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment info.message = info.message.substring(0, info.message.length-err.message.length) } } else if(info[SPLAT].length > 0) { @@ -24,6 +25,7 @@ export class LoggerUtil { if(typeof it === 'object' && it != null) { return inspect(it, false, 4, true) } + // eslint-disable-next-line @typescript-eslint/no-unsafe-return return it }).join(' ') } diff --git a/src/util/java/ClaritasWrapper.ts b/src/util/java/ClaritasWrapper.ts index 324b87e0..a5607e68 100644 --- a/src/util/java/ClaritasWrapper.ts +++ b/src/util/java/ClaritasWrapper.ts @@ -25,7 +25,7 @@ export class ClaritasWrapper extends JarExecutor { this.lastExecutionResult = undefined! } else { if(await pathExists(this.OUTPUT_FILE)) { - this.lastExecutionResult = JSON.parse((await readFile(this.OUTPUT_FILE)).toString('utf8')) + this.lastExecutionResult = JSON.parse((await readFile(this.OUTPUT_FILE)).toString('utf8')) as ClaritasResult } else { this.logger.error('Claritas output file not found when exit code is 0, is this a bug?') this.lastExecutionResult = undefined! @@ -63,7 +63,7 @@ export class ClaritasWrapper extends JarExecutor { private async cleanOutput(): Promise { if(await pathExists(this.WORK_DIR)) { - remove(this.WORK_DIR) + await remove(this.WORK_DIR) } } diff --git a/src/util/java/JarExecutor.ts b/src/util/java/JarExecutor.ts index 413cdc8d..1f913eda 100644 --- a/src/util/java/JarExecutor.ts +++ b/src/util/java/JarExecutor.ts @@ -36,6 +36,7 @@ export abstract class JarExecutor { child.stderr.on('data', (data) => this.logger.error(data.toString('utf8').trim())) this.stderrListeners.forEach(l => child.stderr.on('data', l)) + // eslint-disable-next-line @typescript-eslint/no-misused-promises child.on('close', async code => { this.logger.info('Exited with code', code) for(const l of this.onCloseListeners) { diff --git a/src/util/java/JavaUtil.ts b/src/util/java/JavaUtil.ts index 384a1c44..20e6f3c2 100644 --- a/src/util/java/JavaUtil.ts +++ b/src/util/java/JavaUtil.ts @@ -1,7 +1,7 @@ export class JavaUtil { public static getJavaExecutable(): string { - return process.env.JAVA_EXECUTABLE as string + return process.env.JAVA_EXECUTABLE! } }