Updating server types

This commit is contained in:
Tyfon
2024-07-06 21:19:15 -07:00
parent b999528dde
commit 531d8fce06
524 changed files with 8788 additions and 3835 deletions

View File

@@ -1,7 +1,7 @@
import { ConfigTypes } from "@spt-aki/models/enums/ConfigTypes";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { JsonUtil } from "@spt-aki/utils/JsonUtil";
import { VFS } from "@spt-aki/utils/VFS";
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { JsonUtil } from "@spt/utils/JsonUtil";
import { VFS } from "@spt/utils/VFS";
export declare class ConfigServer {
protected logger: ILogger;
protected vfs: VFS;

View File

@@ -1,4 +1,4 @@
import { IDatabaseTables } from "@spt-aki/models/spt/server/IDatabaseTables";
import { IDatabaseTables } from "@spt/models/spt/server/IDatabaseTables";
export declare class DatabaseServer {
protected tableData: IDatabaseTables;
getTables(): IDatabaseTables;

View File

@@ -1,14 +1,14 @@
/// <reference types="node" />
import { IncomingMessage, ServerResponse } from "node:http";
import { ApplicationContext } from "@spt-aki/context/ApplicationContext";
import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper";
import { IHttpConfig } from "@spt-aki/models/spt/config/IHttpConfig";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { DatabaseServer } from "@spt-aki/servers/DatabaseServer";
import { IHttpListener } from "@spt-aki/servers/http/IHttpListener";
import { WebSocketServer } from "@spt-aki/servers/WebSocketServer";
import { LocalisationService } from "@spt-aki/services/LocalisationService";
import { ApplicationContext } from "@spt/context/ApplicationContext";
import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
import { IHttpConfig } from "@spt/models/spt/config/IHttpConfig";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { ConfigServer } from "@spt/servers/ConfigServer";
import { DatabaseServer } from "@spt/servers/DatabaseServer";
import { IHttpListener } from "@spt/servers/http/IHttpListener";
import { WebSocketServer } from "@spt/servers/WebSocketServer";
import { LocalisationService } from "@spt/services/LocalisationService";
export declare class HttpServer {
protected logger: ILogger;
protected databaseServer: DatabaseServer;

View File

@@ -1,15 +1,15 @@
import { RagfairOfferGenerator } from "@spt-aki/generators/RagfairOfferGenerator";
import { TraderAssortHelper } from "@spt-aki/helpers/TraderAssortHelper";
import { TraderHelper } from "@spt-aki/helpers/TraderHelper";
import { IRagfairOffer } from "@spt-aki/models/eft/ragfair/IRagfairOffer";
import { ISearchRequestData } from "@spt-aki/models/eft/ragfair/ISearchRequestData";
import { IRagfairConfig } from "@spt-aki/models/spt/config/IRagfairConfig";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { LocalisationService } from "@spt-aki/services/LocalisationService";
import { RagfairCategoriesService } from "@spt-aki/services/RagfairCategoriesService";
import { RagfairOfferService } from "@spt-aki/services/RagfairOfferService";
import { RagfairRequiredItemsService } from "@spt-aki/services/RagfairRequiredItemsService";
import { RagfairOfferGenerator } from "@spt/generators/RagfairOfferGenerator";
import { TraderAssortHelper } from "@spt/helpers/TraderAssortHelper";
import { TraderHelper } from "@spt/helpers/TraderHelper";
import { IRagfairOffer } from "@spt/models/eft/ragfair/IRagfairOffer";
import { ISearchRequestData } from "@spt/models/eft/ragfair/ISearchRequestData";
import { IRagfairConfig } from "@spt/models/spt/config/IRagfairConfig";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { ConfigServer } from "@spt/servers/ConfigServer";
import { LocalisationService } from "@spt/services/LocalisationService";
import { RagfairCategoriesService } from "@spt/services/RagfairCategoriesService";
import { RagfairOfferService } from "@spt/services/RagfairOfferService";
import { RagfairRequiredItemsService } from "@spt/services/RagfairRequiredItemsService";
export declare class RagfairServer {
protected logger: ILogger;
protected ragfairOfferGenerator: RagfairOfferGenerator;

View File

@@ -1,10 +1,10 @@
import { SaveLoadRouter } from "@spt-aki/di/Router";
import { IAkiProfile, Info } from "@spt-aki/models/eft/profile/IAkiProfile";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { LocalisationService } from "@spt-aki/services/LocalisationService";
import { HashUtil } from "@spt-aki/utils/HashUtil";
import { JsonUtil } from "@spt-aki/utils/JsonUtil";
import { VFS } from "@spt-aki/utils/VFS";
import { SaveLoadRouter } from "@spt/di/Router";
import { ISptProfile, Info } from "@spt/models/eft/profile/ISptProfile";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { LocalisationService } from "@spt/services/LocalisationService";
import { HashUtil } from "@spt/utils/HashUtil";
import { JsonUtil } from "@spt/utils/JsonUtil";
import { VFS } from "@spt/utils/VFS";
import { ConfigServer } from "./ConfigServer";
export declare class SaveServer {
protected vfs: VFS;
@@ -24,7 +24,7 @@ export declare class SaveServer {
* @param id Id for save callback
* @param callback Callback to execute prior to running SaveServer.saveProfile()
*/
addBeforeSaveCallback(id: string, callback: (profile: Partial<IAkiProfile>) => Partial<IAkiProfile>): void;
addBeforeSaveCallback(id: string, callback: (profile: Partial<ISptProfile>) => Partial<ISptProfile>): void;
/**
* Remove a callback from being executed prior to saving profile in SaveServer.saveProfile()
* @param id Id of callback to remove
@@ -41,14 +41,15 @@ export declare class SaveServer {
/**
* Get a player profile from memory
* @param sessionId Session id
* @returns IAkiProfile
* @returns ISptProfile
*/
getProfile(sessionId: string): IAkiProfile;
getProfile(sessionId: string): ISptProfile;
profileExists(id: string): boolean;
/**
* Get all profiles from memory
* @returns Dictionary of IAkiProfile
* @returns Dictionary of ISptProfile
*/
getProfiles(): Record<string, IAkiProfile>;
getProfiles(): Record<string, ISptProfile>;
/**
* Delete a profile by id
* @param sessionID Id of profile to remove
@@ -64,7 +65,7 @@ export declare class SaveServer {
* Add full profile in memory by key (info.id)
* @param profileDetails Profile to save
*/
addProfile(profileDetails: IAkiProfile): void;
addProfile(profileDetails: ISptProfile): void;
/**
* Look up profile json in user/profiles by id and store in memory
* Execute saveLoadRouters callbacks after being loaded into memory

View File

@@ -1,34 +1,23 @@
/// <reference types="node" />
import http, { IncomingMessage } from "node:http";
import WebSocket from "ws";
import { HttpServerHelper } from "@spt-aki/helpers/HttpServerHelper";
import { ProfileHelper } from "@spt-aki/helpers/ProfileHelper";
import { INotification } from "@spt-aki/models/eft/notifier/INotifier";
import { IHttpConfig } from "@spt-aki/models/spt/config/IHttpConfig";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { ConfigServer } from "@spt-aki/servers/ConfigServer";
import { LocalisationService } from "@spt-aki/services/LocalisationService";
import { JsonUtil } from "@spt-aki/utils/JsonUtil";
import { RandomUtil } from "@spt-aki/utils/RandomUtil";
import { WebSocket, Server } from "ws";
import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { LocalisationService } from "@spt/services/LocalisationService";
import { JsonUtil } from "@spt/utils/JsonUtil";
import { RandomUtil } from "@spt/utils/RandomUtil";
import { IWebSocketConnectionHandler } from "./ws/IWebSocketConnectionHandler";
export declare class WebSocketServer {
protected logger: ILogger;
protected randomUtil: RandomUtil;
protected configServer: ConfigServer;
protected localisationService: LocalisationService;
protected jsonUtil: JsonUtil;
protected localisationService: LocalisationService;
protected httpServerHelper: HttpServerHelper;
protected profileHelper: ProfileHelper;
constructor(logger: ILogger, randomUtil: RandomUtil, configServer: ConfigServer, localisationService: LocalisationService, jsonUtil: JsonUtil, httpServerHelper: HttpServerHelper, profileHelper: ProfileHelper);
protected httpConfig: IHttpConfig;
protected defaultNotification: INotification;
protected webSocketServer: WebSocket.Server;
protected webSockets: Record<string, WebSocket.WebSocket>;
protected websocketPingHandler: any;
getWebSocketServer(): WebSocket.Server;
getSessionWebSocket(sessionID: string): WebSocket.WebSocket;
protected webSocketConnectionHandlers: IWebSocketConnectionHandler[];
protected webSocketServer: Server;
constructor(logger: ILogger, randomUtil: RandomUtil, jsonUtil: JsonUtil, localisationService: LocalisationService, httpServerHelper: HttpServerHelper, webSocketConnectionHandlers: IWebSocketConnectionHandler[]);
getWebSocketServer(): Server;
setupWebSocket(httpServer: http.Server): void;
sendMessage(sessionID: string, output: INotification): void;
protected getRandomisedMessage(): string;
isConnectionWebSocket(sessionID: string): boolean;
protected wsOnConnection(ws: WebSocket.WebSocket, req: IncomingMessage): void;
protected wsOnConnection(ws: WebSocket, req: IncomingMessage): void;
}

View File

@@ -2,5 +2,5 @@
import { IncomingMessage, ServerResponse } from "node:http";
export interface IHttpListener {
canHandle(sessionId: string, req: IncomingMessage): boolean;
handle(sessionId: string, req: IncomingMessage, resp: ServerResponse): void;
handle(sessionId: string, req: IncomingMessage, resp: ServerResponse): Promise<void>;
}

View File

@@ -1,14 +1,14 @@
/// <reference types="node" />
/// <reference types="node" />
import { IncomingMessage, ServerResponse } from "node:http";
import { Serializer } from "@spt-aki/di/Serializer";
import { ILogger } from "@spt-aki/models/spt/utils/ILogger";
import { HttpRouter } from "@spt-aki/routers/HttpRouter";
import { IHttpListener } from "@spt-aki/servers/http/IHttpListener";
import { LocalisationService } from "@spt-aki/services/LocalisationService";
import { HttpResponseUtil } from "@spt-aki/utils/HttpResponseUtil";
import { JsonUtil } from "@spt-aki/utils/JsonUtil";
export declare class AkiHttpListener implements IHttpListener {
import { Serializer } from "@spt/di/Serializer";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { HttpRouter } from "@spt/routers/HttpRouter";
import { IHttpListener } from "@spt/servers/http/IHttpListener";
import { LocalisationService } from "@spt/services/LocalisationService";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { JsonUtil } from "@spt/utils/JsonUtil";
export declare class SptHttpListener implements IHttpListener {
protected httpRouter: HttpRouter;
protected serializers: Serializer[];
protected logger: ILogger;
@@ -19,7 +19,7 @@ export declare class AkiHttpListener implements IHttpListener {
constructor(httpRouter: HttpRouter, // TODO: delay required
serializers: Serializer[], logger: ILogger, requestsLogger: ILogger, jsonUtil: JsonUtil, httpResponse: HttpResponseUtil, localisationService: LocalisationService);
canHandle(_: string, req: IncomingMessage): boolean;
handle(sessionId: string, req: IncomingMessage, resp: ServerResponse): void;
handle(sessionId: string, req: IncomingMessage, resp: ServerResponse): Promise<void>;
/**
* Send http response to the client
* @param sessionID Player id
@@ -29,7 +29,7 @@ export declare class AkiHttpListener implements IHttpListener {
* @param output Server generated response data
*/
sendResponse(sessionID: string, req: IncomingMessage, resp: ServerResponse, body: Buffer, output: string): void;
getResponse(sessionID: string, req: IncomingMessage, body: Buffer): string;
getResponse(sessionID: string, req: IncomingMessage, body: Buffer): Promise<string>;
protected getBodyInfo(body: Buffer, requestUrl?: any): any;
sendJson(resp: ServerResponse, output: string, sessionID: string): void;
sendZlibJson(resp: ServerResponse, output: string, sessionID: string): void;

View File

@@ -0,0 +1,8 @@
/// <reference types="node" />
import { IncomingMessage } from "node:http";
import { WebSocket } from "ws";
export interface IWebSocketConnectionHandler {
getSocketId(): string;
getHookUrl(): string;
onConnection(ws: WebSocket, req: IncomingMessage): void;
}

View File

@@ -0,0 +1,32 @@
/// <reference types="node" />
/// <reference types="node" />
import { IncomingMessage } from "http";
import { WebSocket } from "ws";
import { ProfileHelper } from "@spt/helpers/ProfileHelper";
import { IWsNotificationEvent } from "@spt/models/eft/ws/IWsNotificationEvent";
import { IHttpConfig } from "@spt/models/spt/config/IHttpConfig";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { ConfigServer } from "@spt/servers/ConfigServer";
import { IWebSocketConnectionHandler } from "@spt/servers/ws/IWebSocketConnectionHandler";
import { LocalisationService } from "@spt/services/LocalisationService";
import { JsonUtil } from "@spt/utils/JsonUtil";
import { ISptWebSocketMessageHandler } from "./message/ISptWebSocketMessageHandler";
export declare class SptWebSocketConnectionHandler implements IWebSocketConnectionHandler {
protected logger: ILogger;
protected profileHelper: ProfileHelper;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected jsonUtil: JsonUtil;
protected sptWebSocketMessageHandlers: ISptWebSocketMessageHandler[];
protected httpConfig: IHttpConfig;
protected webSockets: Map<string, WebSocket>;
protected defaultNotification: IWsNotificationEvent;
protected websocketPingHandler: NodeJS.Timeout | undefined;
constructor(logger: ILogger, profileHelper: ProfileHelper, localisationService: LocalisationService, configServer: ConfigServer, jsonUtil: JsonUtil, sptWebSocketMessageHandlers: ISptWebSocketMessageHandler[]);
getSocketId(): string;
getHookUrl(): string;
onConnection(ws: WebSocket, req: IncomingMessage): void;
sendMessage(sessionID: string, output: IWsNotificationEvent): void;
isConnectionWebSocket(sessionID: string): boolean;
getSessionWebSocket(sessionID: string): WebSocket;
}

View File

@@ -0,0 +1,8 @@
import { RawData, WebSocket } from "ws";
import { ILogger } from "@spt/models/spt/utils/ILogger";
import { ISptWebSocketMessageHandler } from "@spt/servers/ws/message/ISptWebSocketMessageHandler";
export declare class DefaultSptWebSocketMessageHandler implements ISptWebSocketMessageHandler {
protected logger: ILogger;
constructor(logger: ILogger);
onSptMessage(sessionId: string, client: WebSocket, message: RawData): void;
}

View File

@@ -0,0 +1,4 @@
import { RawData, WebSocket } from "ws";
export interface ISptWebSocketMessageHandler {
onSptMessage(sessionID: string, client: WebSocket, message: RawData): void;
}