From 4def99f895ecf5b3959212e5c5096a26eb46e517 Mon Sep 17 00:00:00 2001
From: Tynarus <github@tyn.dev>
Date: Wed, 13 Oct 2021 12:30:42 -0500
Subject: [PATCH] rc.5: updating to TypeScript 4.4, tslib 2.3, and adding more
 overloads

---
 package-lock.json         | 109 +++++++++++++++++++++++++-------------
 package.json              |  15 +++---
 src/buffer/byte-buffer.ts |   1 +
 src/net/socket-server.ts  |  17 ++++--
 4 files changed, 94 insertions(+), 48 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 1e26f04..92e8599 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "@runejs/common",
-    "version": "2.0.0-rc.1",
+    "version": "2.0.0-rc.5",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
@@ -82,6 +82,21 @@
                 }
             }
         },
+        "@cspotcode/source-map-consumer": {
+            "version": "0.8.0",
+            "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
+            "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
+            "dev": true
+        },
+        "@cspotcode/source-map-support": {
+            "version": "0.7.0",
+            "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
+            "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
+            "dev": true,
+            "requires": {
+                "@cspotcode/source-map-consumer": "0.8.0"
+            }
+        },
         "@eslint/eslintrc": {
             "version": "0.4.3",
             "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
@@ -153,6 +168,30 @@
             "integrity": "sha512-Z4yELzMWGQ75ihZgPMIEUKucc1X5GvIu8ZYDxjKnjcCkTT3VvMRZ4mFvXxmrXy5kip2X/PR3Sklw6uIR9UCkBg==",
             "dev": true
         },
+        "@tsconfig/node10": {
+            "version": "1.0.8",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
+            "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
+            "dev": true
+        },
+        "@tsconfig/node12": {
+            "version": "1.0.9",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
+            "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
+            "dev": true
+        },
+        "@tsconfig/node14": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
+            "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
+            "dev": true
+        },
+        "@tsconfig/node16": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
+            "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
+            "dev": true
+        },
         "@types/json-schema": {
             "version": "7.0.9",
             "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
@@ -300,6 +339,12 @@
             "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
             "dev": true
         },
+        "acorn-walk": {
+            "version": "8.2.0",
+            "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
+            "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+            "dev": true
+        },
         "ajv": {
             "version": "6.12.6",
             "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -324,9 +369,9 @@
             "dev": true
         },
         "ansi-regex": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
-            "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+            "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
             "dev": true
         },
         "ansi-styles": {
@@ -450,12 +495,6 @@
                 "fill-range": "^7.0.1"
             }
         },
-        "buffer-from": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
-            "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
-            "dev": true
-        },
         "callsites": {
             "version": "3.1.0",
             "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -1375,22 +1414,6 @@
                 "atomic-sleep": "^1.0.0"
             }
         },
-        "source-map": {
-            "version": "0.6.1",
-            "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-            "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-            "dev": true
-        },
-        "source-map-support": {
-            "version": "0.5.19",
-            "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
-            "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
-            "dev": true,
-            "requires": {
-                "buffer-from": "^1.0.0",
-                "source-map": "^0.6.0"
-            }
-        },
         "split2": {
             "version": "3.2.2",
             "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
@@ -1495,23 +1518,37 @@
             }
         },
         "ts-node": {
-            "version": "9.1.1",
-            "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz",
-            "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==",
+            "version": "10.3.0",
+            "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.3.0.tgz",
+            "integrity": "sha512-RYIy3i8IgpFH45AX4fQHExrT8BxDeKTdC83QFJkNzkvt8uFB6QJ8XMyhynYiKMLxt9a7yuXaDBZNOYS3XjDcYw==",
             "dev": true,
             "requires": {
+                "@cspotcode/source-map-support": "0.7.0",
+                "@tsconfig/node10": "^1.0.7",
+                "@tsconfig/node12": "^1.0.7",
+                "@tsconfig/node14": "^1.0.0",
+                "@tsconfig/node16": "^1.0.2",
+                "acorn": "^8.4.1",
+                "acorn-walk": "^8.1.1",
                 "arg": "^4.1.0",
                 "create-require": "^1.1.0",
                 "diff": "^4.0.1",
                 "make-error": "^1.1.1",
-                "source-map-support": "^0.5.17",
                 "yn": "3.1.1"
+            },
+            "dependencies": {
+                "acorn": {
+                    "version": "8.5.0",
+                    "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
+                    "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==",
+                    "dev": true
+                }
             }
         },
         "tslib": {
-            "version": "2.3.0",
-            "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
-            "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+            "version": "2.3.1",
+            "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
+            "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
         },
         "tsutils": {
             "version": "3.21.0",
@@ -1546,9 +1583,9 @@
             "dev": true
         },
         "typescript": {
-            "version": "4.3.5",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz",
-            "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==",
+            "version": "4.4.4",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
+            "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==",
             "dev": true
         },
         "uri-js": {
diff --git a/package.json b/package.json
index ca36af5..01c8fe0 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
     "name": "@runejs/common",
-    "version": "2.0.0-rc.3",
+    "version": "2.0.0-rc.5",
     "description": "Common logging, networking, compression, and other functionality for RuneJS applications.",
     "main": "lib/index.js",
     "types": "lib/index.d.ts",
@@ -29,12 +29,16 @@
         "url": "https://github.com/runejs/core/issues"
     },
     "homepage": "https://github.com/runejs/core#readme",
+    "peerDependencies": {
+        "tslib": ">=2.3.0",
+        "typescript": ">=4.4.0"
+    },
     "dependencies": {
         "compressjs": "^1.0.3",
         "js-yaml": "^3.14.1",
         "pino": "^6.13.0",
         "pino-pretty": "^4.8.0",
-        "tslib": ">=2.1.0"
+        "tslib": "^2.3.1"
     },
     "devDependencies": {
         "@runejs/eslint-config": "^1.0.0",
@@ -44,11 +48,8 @@
         "@typescript-eslint/parser": "^4.29.3",
         "eslint": "^7.32.0",
         "rimraf": "^3.0.2",
-        "ts-node": "^9.1.1",
-        "typescript": ">=4.2.0"
-    },
-    "peerDependencies": {
-        "tslib": ">=2.1.0"
+        "ts-node": "^10.3.0",
+        "typescript": "^4.4.4"
     },
     "eslintConfig": {
         "extends": [
diff --git a/src/buffer/byte-buffer.ts b/src/buffer/byte-buffer.ts
index 2a6e91f..21044f7 100644
--- a/src/buffer/byte-buffer.ts
+++ b/src/buffer/byte-buffer.ts
@@ -94,6 +94,7 @@ export class ByteBuffer extends Uint8Array {
     public get(type: Extract<DataType, 'string' | 'STRING'>): string;
     public get(type: Extract<DataType, 'long' | 'LONG'>, signed?: Signedness, endian?: Endianness): bigint;
     public get(type: Exclude<DataType, 'string' | 'STRING' | 'long' | 'LONG'>, signed?: Signedness, endian?: Endianness): number;
+    public get(type?: DataType, signed?: Signedness, endian?: Endianness): number | bigint | string;
     public get(type: DataType = 'byte', signed: Signedness = 'signed', endian: Endianness = 'be'): number | bigint | string {
         type = ByteBuffer.getType(type);
         signed = ByteBuffer.getSignage(signed);
diff --git a/src/net/socket-server.ts b/src/net/socket-server.ts
index 63f52b3..98e1646 100644
--- a/src/net/socket-server.ts
+++ b/src/net/socket-server.ts
@@ -102,15 +102,22 @@ export abstract class SocketServer<T = undefined> {
         this.connectionDestroyed();
     }
 
-    public error(error: any): void {
-        logger.error('Socket destroyed due to error:');
-        logger.error(error);
+    public error(error: Error): void;
+    public error(error: { message?: string }): void;
+    public error(error: string): void;
+    public error(error: any | Error | { message?: string } | string): void;
+    public error(error: any | Error | { message?: string } | string): void {
+        if(error && typeof error === 'string') {
+            error = { message: error };
+        }
+
+        logger.error('Socket destroyed due to error' + error?.message ? `: ${error.message}` : '.');
 
         try {
             this.closeConnection();
         } catch(closeConnectionError) {
-            logger.error(`Error closing server connection:`);
-            logger.error(closeConnectionError);
+            logger.error('Error closing server connection' +
+            closeConnectionError?.message ? `: ${closeConnectionError.message}` : '.');
         }
     }