diff --git a/package.json b/package.json index c7776007..ff97d315 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "scripts": { "dev": "cd gulp && yarn gulp main.serveDev", "devStandalone": "cd gulp && yarn gulp main.serveStandalone", - "tslint": "cd src/js && tsc", + "tslint": "tsc -p src/js", "lint": "eslint src/js", "prettier-all": "prettier --write src/**/*.* && prettier --write gulp/**/*.*", "publishOnItchWindows": "butler push tmp_standalone_files/shapez.io-standalone-win32-x64 tobspr/shapezio:windows --userversion-file version", @@ -29,7 +29,7 @@ "@babel/preset-env": "^7.5.4", "@nastyox/rando.js": "^2.0.5", "@types/cordova": "^0.0.34", - "@types/filesystem": "^0.0.29", + "@types/filesystem": "^0.0.32", "ajv": "^6.10.2", "babel-core": "^6.26.3", "babel-loader": "^8.0.4", @@ -61,7 +61,7 @@ "strictdom": "^1.0.1", "string-replace-webpack-plugin": "^0.1.3", "terser-webpack-plugin": "^1.1.0", - "typescript": "3.9.3", + "typescript": "^4.7.4", "uglify-template-string-loader": "^1.1.0", "unused-files-webpack-plugin": "^3.4.0", "webpack": "^4.43.0", diff --git a/src/js/game/hud/parts/mass_selector.js b/src/js/game/hud/parts/mass_selector.js index 8fbc129c..6bbf23d8 100644 --- a/src/js/game/hud/parts/mass_selector.js +++ b/src/js/game/hud/parts/mass_selector.js @@ -1,3 +1,7 @@ +/* typehints:start */ +import { Component } from "../../component"; +/* typehints:end */ + import { globalConfig } from "../../../core/config"; import { DrawParameters } from "../../../core/draw_parameters"; import { createLogger } from "../../../core/logging"; diff --git a/src/js/globals.d.ts b/src/js/globals.d.ts index 37eb4c3f..3889ac6d 100644 --- a/src/js/globals.d.ts +++ b/src/js/globals.d.ts @@ -206,6 +206,20 @@ declare interface TypedSignal> { declare type Layer = "regular" | "wires"; declare type ItemType = "shape" | "color" | "boolean"; +/** Used for A/B testing */ +declare function setAbt(abt): void; + +declare interface Location { + /** + * Reloads the current page. + * + * @deprecated + * @param forceGet Non-standard parameter to bypass the cache, + * only supported in some version of Firefox. + */ + reload(forceGet: boolean): void; +} + declare module "worker-loader?inline=true&fallback=false!*" { class WebpackWorker extends Worker { constructor(); diff --git a/src/js/savegame/serialization.js b/src/js/savegame/serialization.js index 682558b6..0bf908ee 100644 --- a/src/js/savegame/serialization.js +++ b/src/js/savegame/serialization.js @@ -106,7 +106,7 @@ export const types = { }, /** - * @param {SingletonFactoryTemplate<*>} innerType + * @param {SingletonFactoryTemplate<*>} registry */ classRef(registry) { return new TypeMetaClass(registry); diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js index 1987d0a2..9a49e237 100644 --- a/src/js/states/main_menu.js +++ b/src/js/states/main_menu.js @@ -549,6 +549,7 @@ export class MainMenuState extends GameState { } fetchPlayerCount() { + /** @type {HTMLElement | null} */ const element = this.htmlElement.querySelector(".onlinePlayerCount"); if (!element) { return; diff --git a/src/js/states/preload.js b/src/js/states/preload.js index 9a4b1075..2bdf725c 100644 --- a/src/js/states/preload.js +++ b/src/js/states/preload.js @@ -40,7 +40,9 @@ export class PreloadState extends GameState { this.lastHintShown = -1000; this.nextHintDuration = 0; + /** @type {HTMLElement} */ this.statusText = this.htmlElement.querySelector("#ll_preload_status"); + /** @type {HTMLElement} */ this.progressElement = this.htmlElement.querySelector("#ll_progressbar span"); this.startLoading(); @@ -94,7 +96,7 @@ export class PreloadState extends GameState { } startLoading() { - this.setStatus("Booting") + this.setStatus("Booting", 0) .then(() => { try { window.localStorage.setItem("local_storage_feature_detection", "1"); @@ -319,6 +321,7 @@ export class PreloadState extends GameState { /** * * @param {string} text + * @param {number} progress */ setStatus(text, progress) { logger.log("✅ " + text); diff --git a/yarn.lock b/yarn.lock index 1efc7228..258e8eea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1122,17 +1122,17 @@ resolved "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz" integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== -"@types/filesystem@^0.0.29": - version "0.0.29" - resolved "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz" - integrity sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw== +"@types/filesystem@^0.0.32": + version "0.0.32" + resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.32.tgz#307df7cc084a2293c3c1a31151b178063e0a8edf" + integrity sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ== dependencies: "@types/filewriter" "*" "@types/filewriter@*": - version "0.0.28" - resolved "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz" - integrity sha1-wFTor02d11205jq8dviFFocU1LM= + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.29.tgz#a48795ecadf957f6c0d10e0c34af86c098fa5bee" + integrity sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ== "@types/json-schema@^7.0.3": version "7.0.4" @@ -8318,10 +8318,10 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@3.9.3: - version "3.9.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz" - integrity sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ== +typescript@^4.7.4: + version "4.7.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== uglify-js@3.4.x: version "3.4.10"