浏览代码

build: repair build with new `@tsconfig/base`s

Jonas Gloning 1 年之前
父节点
当前提交
e7b18091eb

+ 2 - 2
__test__/messageHandler/handlers/heartbeat/index.spec.ts

@@ -1,7 +1,7 @@
 import { describe, expect, it } from "@jest/globals";
 
-import { Client } from "../../../../src/models/client";
-import { HeartbeatHandler } from "../../../../src/messageHandler/handlers";
+import { Client } from "../../../../src/models/client.ts";
+import { HeartbeatHandler } from "../../../../src/messageHandler/handlers/index.ts";
 
 describe("Heartbeat handler", () => {
 	it("should update last ping time", () => {

+ 4 - 4
__test__/messageHandler/handlers/transmission/index.spec.ts

@@ -1,9 +1,9 @@
 import { describe, expect, it } from "@jest/globals";
 
-import { Client } from "../../../../src/models/client";
-import { TransmissionHandler } from "../../../../src/messageHandler/handlers";
-import { Realm } from "../../../../src/models/realm";
-import { MessageType } from "../../../../src/enums";
+import { Client } from "../../../../src/models/client.ts";
+import { TransmissionHandler } from "../../../../src/messageHandler/handlers/index.ts";
+import { Realm } from "../../../../src/models/realm.ts";
+import { MessageType } from "../../../../src/enums.ts";
 import type WebSocket from "ws";
 
 const createFakeSocket = (): WebSocket => {

+ 3 - 3
__test__/messageHandler/handlersRegistry.spec.ts

@@ -1,8 +1,8 @@
 import { describe, expect, it } from "@jest/globals";
 
-import { HandlersRegistry } from "../../src/messageHandler/handlersRegistry";
-import type { Handler } from "../../src/messageHandler/handler";
-import { MessageType } from "../../src/enums";
+import { HandlersRegistry } from "../../src/messageHandler/handlersRegistry.ts";
+import type { Handler } from "../../src/messageHandler/handler.ts";
+import { MessageType } from "../../src/enums.ts";
 
 describe("HandlersRegistry", () => {
 	it("should execute handler for message type", () => {

+ 4 - 4
__test__/models/messageQueue.spec.ts

@@ -1,9 +1,9 @@
 import { describe, expect, it } from "@jest/globals";
 
-import { MessageQueue } from "../../src/models/messageQueue";
-import { MessageType } from "../../src/enums";
-import type { IMessage } from "../../src/models/message";
-import { wait } from "../utils";
+import { MessageQueue } from "../../src/models/messageQueue.ts";
+import { MessageType } from "../../src/enums.ts";
+import type { IMessage } from "../../src/models/message.ts";
+import { wait } from "../utils.ts";
 
 describe("MessageQueue", () => {
 	const createTestMessage = (): IMessage => {

+ 2 - 2
__test__/models/realm.spec.ts

@@ -1,7 +1,7 @@
 import { describe, expect, it } from "@jest/globals";
 
-import { Realm } from "../../src/models/realm";
-import { Client } from "../../src/models/client";
+import { Realm } from "../../src/models/realm.ts";
+import { Client } from "../../src/models/client.ts";
 
 describe("Realm", () => {
 	describe("#generateClientId", () => {

+ 1 - 1
__test__/peerjs.spec.ts

@@ -4,7 +4,7 @@ import http from "http";
 import expectedJson from "../app.json";
 import fetch from "node-fetch";
 import * as crypto from "crypto";
-import { startServer } from "./utils";
+import { startServer } from "./utils.ts";
 
 const PORT = "9000";
 

+ 4 - 4
__test__/services/checkBrokenConnections/index.spec.ts

@@ -1,9 +1,9 @@
 import { describe, expect, it } from "@jest/globals";
 
-import { Client } from "../../../src/models/client";
-import { Realm } from "../../../src/models/realm";
-import { CheckBrokenConnections } from "../../../src/services/checkBrokenConnections";
-import { wait } from "../../utils";
+import { Client } from "../../../src/models/client.ts";
+import { Realm } from "../../../src/models/realm.ts";
+import { CheckBrokenConnections } from "../../../src/services/checkBrokenConnections/index.ts";
+import { wait } from "../../utils.ts";
 
 describe("CheckBrokenConnections", () => {
 	it("should remove client after 2 checks", async () => {

+ 7 - 7
__test__/services/messagesExpire/index.spec.ts

@@ -1,12 +1,12 @@
 import { describe, expect, it } from "@jest/globals";
 
-import { Client } from "../../../src/models/client";
-import { Realm } from "../../../src/models/realm";
-import type { IMessage } from "../../../src/models/message";
-import { MessagesExpire } from "../../../src/services/messagesExpire";
-import { MessageHandler } from "../../../src/messageHandler";
-import { MessageType } from "../../../src/enums";
-import { wait } from "../../utils";
+import { Client } from "../../../src/models/client.ts";
+import { Realm } from "../../../src/models/realm.ts";
+import type { IMessage } from "../../../src/models/message.ts";
+import { MessagesExpire } from "../../../src/services/messagesExpire/index.ts";
+import { MessageHandler } from "../../../src/messageHandler/index.ts";
+import { MessageType } from "../../../src/enums.ts";
+import { wait } from "../../utils.ts";
 
 describe("MessagesExpire", () => {
 	const createTestMessage = (dst: string): IMessage => {

+ 4 - 4
__test__/services/webSocketServer/index.spec.ts

@@ -2,10 +2,10 @@ import { describe, expect, it } from "@jest/globals";
 
 import { Server, WebSocket } from "mock-socket";
 import type { Server as HttpServer } from "node:http";
-import { Realm } from "../../../src/models/realm";
-import { WebSocketServer } from "../../../src/services/webSocketServer";
-import { Errors, MessageType } from "../../../src/enums";
-import { wait } from "../../utils";
+import { Realm } from "../../../src/models/realm.ts";
+import { WebSocketServer } from "../../../src/services/webSocketServer/index.ts";
+import { Errors, MessageType } from "../../../src/enums.ts";
+import { wait } from "../../utils.ts";
 
 type Destroyable<T> = T & { destroy?: () => Promise<void> };
 

+ 156 - 65
package-lock.json

@@ -28,7 +28,8 @@
 				"@semantic-release/git": "^10.0.1",
 				"@swc/core": "^1.3.35",
 				"@swc/jest": "^0.2.24",
-				"@tsconfig/node16-strictest-esm": "^1.0.3",
+				"@tsconfig/node16": "^16.1.0",
+				"@tsconfig/strictest": "^2.0.1",
 				"@types/cors": "^2.8.6",
 				"@types/jest": "^29.4.0",
 				"@types/node": "^14.18.33",
@@ -41,7 +42,7 @@
 				"parcel": "^2.8.2",
 				"prettier": "^2.8.4",
 				"semantic-release": "^20.0.0",
-				"typescript": "^4.1.2"
+				"typescript": "^5.1.6"
 			},
 			"engines": {
 				"node": ">=14"
@@ -2894,7 +2895,7 @@
 				"typescript": ">=3.0.0"
 			}
 		},
-		"node_modules/@parcel/ts-utils": {
+		"node_modules/@parcel/transformer-typescript-types/node_modules/@parcel/ts-utils": {
 			"version": "2.8.3",
 			"resolved": "https://registry.npmjs.org/@parcel/ts-utils/-/ts-utils-2.8.3.tgz",
 			"integrity": "sha512-4HMt9B9LF2pDFvSKGImho48tlCvCUl7ly1ZMXvQdmEq2i0yoS81tDsmxX3yly/RVUVeUCGAj1JRuuy1lw5zw1A==",
@@ -3621,10 +3622,16 @@
 				"node": ">=10.13.0"
 			}
 		},
-		"node_modules/@tsconfig/node16-strictest-esm": {
-			"version": "1.0.3",
-			"resolved": "https://registry.npmjs.org/@tsconfig/node16-strictest-esm/-/node16-strictest-esm-1.0.3.tgz",
-			"integrity": "sha512-0/QTPDkKmE2dy0dMRstPCv4VJ+gUGgvMKzaWd5P3hgdlmPqYqe1pJxDGUlNYbSgUBlncIvvX+mIeZarokysNgg==",
+		"node_modules/@tsconfig/node16": {
+			"version": "16.1.0",
+			"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.0.tgz",
+			"integrity": "sha512-cfwhqrdZEKS+Iqu1OPDwmKsOV/eo7q4sPhWzOXc1rU77nnPFV3+77yPg8uKQ2e8eir6mERCvrKnd+EGa4qo4bQ==",
+			"dev": true
+		},
+		"node_modules/@tsconfig/strictest": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/@tsconfig/strictest/-/strictest-2.0.1.tgz",
+			"integrity": "sha512-7JHHCbyCsGUxLd0pDbp24yz3zjxw2t673W5oAP6HCEdr/UUhaRhYd3SSnUsGCk+VnPVJVA4mXROzbhI+nyIk+w==",
 			"dev": true
 		},
 		"node_modules/@types/babel__core": {
@@ -3892,6 +3899,27 @@
 				}
 			}
 		},
+		"node_modules/@typescript-eslint/eslint-plugin/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/@typescript-eslint/eslint-plugin/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/@typescript-eslint/parser": {
 			"version": "5.60.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.60.0.tgz",
@@ -3963,6 +3991,27 @@
 				}
 			}
 		},
+		"node_modules/@typescript-eslint/type-utils/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/@typescript-eslint/type-utils/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/@typescript-eslint/types": {
 			"version": "5.60.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.0.tgz",
@@ -4003,6 +4052,27 @@
 				}
 			}
 		},
+		"node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/typescript-estree/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/@typescript-eslint/utils": {
 			"version": "5.60.0",
 			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.0.tgz",
@@ -13651,27 +13721,6 @@
 			"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
 			"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/tsutils/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/type-check": {
 			"version": "0.4.0",
 			"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -13718,16 +13767,16 @@
 			}
 		},
 		"node_modules/typescript": {
-			"version": "4.9.5",
-			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
-			"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+			"version": "5.1.6",
+			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
+			"integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
 			"dev": true,
 			"bin": {
 				"tsc": "bin/tsc",
 				"tsserver": "bin/tsserver"
 			},
 			"engines": {
-				"node": ">=4.2.0"
+				"node": ">=14.17"
 			}
 		},
 		"node_modules/uglify-js": {
@@ -16134,15 +16183,17 @@
 				"@parcel/ts-utils": "2.8.3",
 				"@parcel/utils": "2.8.3",
 				"nullthrows": "^1.1.1"
-			}
-		},
-		"@parcel/ts-utils": {
-			"version": "2.8.3",
-			"resolved": "https://registry.npmjs.org/@parcel/ts-utils/-/ts-utils-2.8.3.tgz",
-			"integrity": "sha512-4HMt9B9LF2pDFvSKGImho48tlCvCUl7ly1ZMXvQdmEq2i0yoS81tDsmxX3yly/RVUVeUCGAj1JRuuy1lw5zw1A==",
-			"dev": true,
-			"requires": {
-				"nullthrows": "^1.1.1"
+			},
+			"dependencies": {
+				"@parcel/ts-utils": {
+					"version": "2.8.3",
+					"resolved": "https://registry.npmjs.org/@parcel/ts-utils/-/ts-utils-2.8.3.tgz",
+					"integrity": "sha512-4HMt9B9LF2pDFvSKGImho48tlCvCUl7ly1ZMXvQdmEq2i0yoS81tDsmxX3yly/RVUVeUCGAj1JRuuy1lw5zw1A==",
+					"dev": true,
+					"requires": {
+						"nullthrows": "^1.1.1"
+					}
+				}
 			}
 		},
 		"@parcel/types": {
@@ -16608,10 +16659,16 @@
 			"integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
 			"dev": true
 		},
-		"@tsconfig/node16-strictest-esm": {
-			"version": "1.0.3",
-			"resolved": "https://registry.npmjs.org/@tsconfig/node16-strictest-esm/-/node16-strictest-esm-1.0.3.tgz",
-			"integrity": "sha512-0/QTPDkKmE2dy0dMRstPCv4VJ+gUGgvMKzaWd5P3hgdlmPqYqe1pJxDGUlNYbSgUBlncIvvX+mIeZarokysNgg==",
+		"@tsconfig/node16": {
+			"version": "16.1.0",
+			"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.0.tgz",
+			"integrity": "sha512-cfwhqrdZEKS+Iqu1OPDwmKsOV/eo7q4sPhWzOXc1rU77nnPFV3+77yPg8uKQ2e8eir6mERCvrKnd+EGa4qo4bQ==",
+			"dev": true
+		},
+		"@tsconfig/strictest": {
+			"version": "2.0.1",
+			"resolved": "https://registry.npmjs.org/@tsconfig/strictest/-/strictest-2.0.1.tgz",
+			"integrity": "sha512-7JHHCbyCsGUxLd0pDbp24yz3zjxw2t673W5oAP6HCEdr/UUhaRhYd3SSnUsGCk+VnPVJVA4mXROzbhI+nyIk+w==",
 			"dev": true
 		},
 		"@types/babel__core": {
@@ -16861,6 +16918,23 @@
 				"natural-compare-lite": "^1.4.0",
 				"semver": "^7.3.7",
 				"tsutils": "^3.21.0"
+			},
+			"dependencies": {
+				"tslib": {
+					"version": "1.14.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+					"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+					"dev": true
+				},
+				"tsutils": {
+					"version": "3.21.0",
+					"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+					"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+					"dev": true,
+					"requires": {
+						"tslib": "^1.8.1"
+					}
+				}
 			}
 		},
 		"@typescript-eslint/parser": {
@@ -16895,6 +16969,23 @@
 				"@typescript-eslint/utils": "5.60.0",
 				"debug": "^4.3.4",
 				"tsutils": "^3.21.0"
+			},
+			"dependencies": {
+				"tslib": {
+					"version": "1.14.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+					"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+					"dev": true
+				},
+				"tsutils": {
+					"version": "3.21.0",
+					"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+					"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+					"dev": true,
+					"requires": {
+						"tslib": "^1.8.1"
+					}
+				}
 			}
 		},
 		"@typescript-eslint/types": {
@@ -16916,6 +17007,23 @@
 				"is-glob": "^4.0.3",
 				"semver": "^7.3.7",
 				"tsutils": "^3.21.0"
+			},
+			"dependencies": {
+				"tslib": {
+					"version": "1.14.1",
+					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+					"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+					"dev": true
+				},
+				"tsutils": {
+					"version": "3.21.0",
+					"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+					"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+					"dev": true,
+					"requires": {
+						"tslib": "^1.8.1"
+					}
+				}
 			}
 		},
 		"@typescript-eslint/utils": {
@@ -23901,23 +24009,6 @@
 			"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
 			"dev": true
 		},
-		"tsutils": {
-			"version": "3.21.0",
-			"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
-			"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
-			"dev": true,
-			"requires": {
-				"tslib": "^1.8.1"
-			},
-			"dependencies": {
-				"tslib": {
-					"version": "1.14.1",
-					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-					"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
-					"dev": true
-				}
-			}
-		},
 		"type-check": {
 			"version": "0.4.0",
 			"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -23949,9 +24040,9 @@
 			}
 		},
 		"typescript": {
-			"version": "4.9.5",
-			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
-			"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+			"version": "5.1.6",
+			"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
+			"integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
 			"dev": true
 		},
 		"uglify-js": {

+ 3 - 2
package.json

@@ -89,7 +89,8 @@
 		"@semantic-release/git": "^10.0.1",
 		"@swc/core": "^1.3.35",
 		"@swc/jest": "^0.2.24",
-		"@tsconfig/node16-strictest-esm": "^1.0.3",
+		"@tsconfig/node16": "^16.1.0",
+		"@tsconfig/strictest": "^2.0.1",
 		"@types/cors": "^2.8.6",
 		"@types/jest": "^29.4.0",
 		"@types/node": "^14.18.33",
@@ -102,6 +103,6 @@
 		"parcel": "^2.8.2",
 		"prettier": "^2.8.4",
 		"semantic-release": "^20.0.0",
-		"typescript": "^4.1.2"
+		"typescript": "^5.1.6"
 	}
 }

+ 3 - 3
src/api/index.ts

@@ -1,9 +1,9 @@
 import cors, { CorsOptions } from "cors";
 import express from "express";
 import publicContent from "../../app.json";
-import PublicApi from "./v1/public";
-import type { IConfig } from "../config";
-import type { IRealm } from "../models/realm";
+import PublicApi from "./v1/public/index.ts";
+import type { IConfig } from "../config/index.ts";
+import type { IRealm } from "../models/realm.ts";
 
 export const Api = ({
 	config,

+ 2 - 2
src/api/v1/public/index.ts

@@ -1,6 +1,6 @@
 import express from "express";
-import type { IConfig } from "../../../config";
-import type { IRealm } from "../../../models/realm";
+import type { IConfig } from "../../../config/index.ts";
+import type { IRealm } from "../../../models/realm.ts";
 
 export default ({
 	config,

+ 8 - 8
src/index.ts

@@ -2,14 +2,14 @@ import express, { type Express } from "express";
 import http from "node:http";
 import https from "node:https";
 
-import type { IConfig } from "./config";
-import defaultConfig from "./config";
-import type { PeerServerEvents } from "./instance";
-import { createInstance } from "./instance";
-import type { IClient } from "./models/client";
-import type { IMessage } from "./models/message";
-
-export type { MessageType } from "./enums";
+import type { IConfig } from "./config/index.ts";
+import defaultConfig from "./config/index.ts";
+import type { PeerServerEvents } from "./instance.ts";
+import { createInstance } from "./instance.ts";
+import type { IClient } from "./models/client.ts";
+import type { IMessage } from "./models/message.ts";
+
+export type { MessageType } from "./enums.ts";
 export type { IConfig, PeerServerEvents, IClient, IMessage };
 
 function ExpressPeerServer(

+ 12 - 12
src/instance.ts

@@ -2,18 +2,18 @@ import type express from "express";
 import type { Server as HttpServer } from "node:http";
 import type { Server as HttpsServer } from "node:https";
 import path from "node:path";
-import type { IRealm } from "./models/realm";
-import { Realm } from "./models/realm";
-import { CheckBrokenConnections } from "./services/checkBrokenConnections";
-import type { IMessagesExpire } from "./services/messagesExpire";
-import { MessagesExpire } from "./services/messagesExpire";
-import type { IWebSocketServer } from "./services/webSocketServer";
-import { WebSocketServer } from "./services/webSocketServer";
-import { MessageHandler } from "./messageHandler";
-import { Api } from "./api";
-import type { IClient } from "./models/client";
-import type { IMessage } from "./models/message";
-import type { IConfig } from "./config";
+import type { IRealm } from "./models/realm.ts";
+import { Realm } from "./models/realm.ts";
+import { CheckBrokenConnections } from "./services/checkBrokenConnections/index.ts";
+import type { IMessagesExpire } from "./services/messagesExpire/index.ts";
+import { MessagesExpire } from "./services/messagesExpire/index.ts";
+import type { IWebSocketServer } from "./services/webSocketServer/index.ts";
+import { WebSocketServer } from "./services/webSocketServer/index.ts";
+import { MessageHandler } from "./messageHandler/index.ts";
+import { Api } from "./api/index.ts";
+import type { IClient } from "./models/client.ts";
+import type { IMessage } from "./models/message.ts";
+import type { IConfig } from "./config/index.ts";
 
 export interface PeerServerEvents {
 	on(event: "connection", listener: (client: IClient) => void): this;

+ 2 - 2
src/messageHandler/handler.ts

@@ -1,5 +1,5 @@
-import type { IClient } from "../models/client";
-import type { IMessage } from "../models/message";
+import type { IClient } from "../models/client.ts";
+import type { IMessage } from "../models/message.ts";
 
 export type Handler = (
 	client: IClient | undefined,

+ 1 - 1
src/messageHandler/handlers/heartbeat/index.ts

@@ -1,4 +1,4 @@
-import type { IClient } from "../../../models/client";
+import type { IClient } from "../../../models/client.ts";
 
 export const HeartbeatHandler = (client: IClient | undefined): boolean => {
 	if (client) {

+ 2 - 2
src/messageHandler/handlers/index.ts

@@ -1,2 +1,2 @@
-export { HeartbeatHandler } from "./heartbeat";
-export { TransmissionHandler } from "./transmission";
+export { HeartbeatHandler } from "./heartbeat/index.ts";
+export { TransmissionHandler } from "./transmission/index.ts";

+ 4 - 4
src/messageHandler/handlers/transmission/index.ts

@@ -1,7 +1,7 @@
-import { MessageType } from "../../../enums";
-import type { IClient } from "../../../models/client";
-import type { IMessage } from "../../../models/message";
-import type { IRealm } from "../../../models/realm";
+import { MessageType } from "../../../enums.ts";
+import type { IClient } from "../../../models/client.ts";
+import type { IMessage } from "../../../models/message.ts";
+import type { IRealm } from "../../../models/realm.ts";
 
 export const TransmissionHandler = ({
 	realm,

+ 4 - 4
src/messageHandler/handlersRegistry.ts

@@ -1,7 +1,7 @@
-import type { MessageType } from "../enums";
-import type { IClient } from "../models/client";
-import type { IMessage } from "../models/message";
-import type { Handler } from "./handler";
+import type { MessageType } from "../enums.ts";
+import type { IClient } from "../models/client.ts";
+import type { IMessage } from "../models/message.ts";
+import type { Handler } from "./handler.ts";
 
 export interface IHandlersRegistry {
 	registerHandler(messageType: MessageType, handler: Handler): void;

+ 8 - 8
src/messageHandler/index.ts

@@ -1,11 +1,11 @@
-import { MessageType } from "../enums";
-import { HeartbeatHandler, TransmissionHandler } from "./handlers";
-import type { IHandlersRegistry } from "./handlersRegistry";
-import { HandlersRegistry } from "./handlersRegistry";
-import type { IClient } from "../models/client";
-import type { IMessage } from "../models/message";
-import type { IRealm } from "../models/realm";
-import type { Handler } from "./handler";
+import { MessageType } from "../enums.ts";
+import { HeartbeatHandler, TransmissionHandler } from "./handlers/index.ts";
+import type { IHandlersRegistry } from "./handlersRegistry.ts";
+import { HandlersRegistry } from "./handlersRegistry.ts";
+import type { IClient } from "../models/client.ts";
+import type { IMessage } from "../models/message.ts";
+import type { IRealm } from "../models/realm.ts";
+import type { Handler } from "./handler.ts";
 
 export interface IMessageHandler {
 	handle(client: IClient | undefined, message: IMessage): boolean;

+ 1 - 1
src/models/message.ts

@@ -1,4 +1,4 @@
-import type { MessageType } from "../enums";
+import type { MessageType } from "../enums.ts";
 
 export interface IMessage {
 	readonly type: MessageType;

+ 1 - 1
src/models/messageQueue.ts

@@ -1,4 +1,4 @@
-import type { IMessage } from "./message";
+import type { IMessage } from "./message.ts";
 
 export interface IMessageQueue {
 	getLastReadAt(): number;

+ 4 - 4
src/models/realm.ts

@@ -1,8 +1,8 @@
-import type { IMessageQueue } from "./messageQueue";
-import { MessageQueue } from "./messageQueue";
+import type { IMessageQueue } from "./messageQueue.ts";
+import { MessageQueue } from "./messageQueue.ts";
 import { randomUUID } from "node:crypto";
-import type { IClient } from "./client";
-import type { IMessage } from "./message";
+import type { IClient } from "./client.ts";
+import type { IMessage } from "./message.ts";
 
 export interface IRealm {
 	getClientsIds(): string[];

+ 3 - 3
src/services/checkBrokenConnections/index.ts

@@ -1,6 +1,6 @@
-import type { IConfig } from "../../config";
-import type { IClient } from "../../models/client";
-import type { IRealm } from "../../models/realm";
+import type { IConfig } from "../../config/index.ts";
+import type { IClient } from "../../models/client.ts";
+import type { IRealm } from "../../models/realm.ts";
 
 const DEFAULT_CHECK_INTERVAL = 300;
 

+ 4 - 4
src/services/messagesExpire/index.ts

@@ -1,7 +1,7 @@
-import { MessageType } from "../../enums";
-import type { IConfig } from "../../config";
-import type { IMessageHandler } from "../../messageHandler";
-import type { IRealm } from "../../models/realm";
+import { MessageType } from "../../enums.ts";
+import type { IConfig } from "../../config/index.ts";
+import type { IMessageHandler } from "../../messageHandler/index.ts";
+import type { IRealm } from "../../models/realm.ts";
 
 export interface IMessagesExpire {
 	startMessagesExpiration(): void;

+ 5 - 5
src/services/webSocketServer/index.ts

@@ -2,11 +2,11 @@ import { EventEmitter } from "node:events";
 import type { IncomingMessage } from "node:http";
 import url from "node:url";
 import type WebSocket from "ws";
-import { Errors, MessageType } from "../../enums";
-import type { IClient } from "../../models/client";
-import { Client } from "../../models/client";
-import type { IConfig } from "../../config";
-import type { IRealm } from "../../models/realm";
+import { Errors, MessageType } from "../../enums.ts";
+import type { IClient } from "../../models/client.ts";
+import { Client } from "../../models/client.ts";
+import type { IConfig } from "../../config/index.ts";
+import type { IRealm } from "../../models/realm.ts";
 import { WebSocketServer as Server } from "ws";
 import type { Server as HttpServer } from "node:http";
 import type { Server as HttpsServer } from "node:https";

+ 3 - 2
tsconfig.json

@@ -1,10 +1,11 @@
 {
-	"extends": "@tsconfig/node16-strictest-esm/tsconfig.json",
+	"extends": ["@tsconfig/strictest/tsconfig", "@tsconfig/node16/tsconfig"],
 	"compilerOptions": {
 		"lib": ["esnext"],
 		"noEmit": true,
 		"resolveJsonModule": true,
-		"exactOptionalPropertyTypes": false
+		"exactOptionalPropertyTypes": false,
+		"allowImportingTsExtensions": true
 	},
 	"include": ["./src/**/*", "__test__/**/*"],
 	"exclude": ["test", "bin"]