Skip to content

Commit 76d6888

Browse files
add types
1 parent 940011a commit 76d6888

40 files changed

+1257
-0
lines changed

ProtoSSChe.d.ts

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
declare namespace zetaret.node {
2+
export interface ProtoSSCheCTOR {
3+
new(): ProtoSSChe
4+
}
5+
export interface ProtoSSChe {
6+
env: ServerEnvironment;
7+
htserv: XServer;
8+
acceptAppRequests: boolean;
9+
apps: object;
10+
cookieMethod: Function;
11+
requestMethod: Function;
12+
onErrorBody: Function;
13+
onEndBody: Function;
14+
dataJoin: string;
15+
reqIdLength: number;
16+
keepBufferPerContentType: { [ctype: string]: boolean };
17+
requestBodyMethods: Array<string>;
18+
readRequestOnError: boolean;
19+
requestMiddleware: Array<Function>;
20+
responseMiddleware: Array<Function>;
21+
22+
getAppRequest(request: XRequest): Input
23+
onRequest(request: Input, response: Output): void
24+
onReadRequestBody(request: Input, body: string, response: Output): ProtoSSChe | Promise<ProtoSSChe>
25+
splitUrl(url: string): SplitURL
26+
rndstr(l: number): string
27+
getReqId(): string
28+
pushProtoSSResponse(request: Input, response: Output): ProtoSSChe
29+
readRequestBody(request: Input, response: Output): ProtoSSChe
30+
updateCookies(request: Input, response: Output, headers: object): ProtoSSChe
31+
endResponse(request: Input, response: Output): ProtoSSChe | Promise<ProtoSSChe>
32+
}
33+
export interface ProtoSSCheInstance {
34+
xpro: ServerModule;
35+
xprocls: ProtoSSCheCTOR;
36+
xmodule: string;
37+
serverche: ProtoSSChe;
38+
}
39+
export interface ProtoSSCheModule {
40+
serverclass: ProtoSSCheCTOR;
41+
42+
loadedModule: () => ServerModule;
43+
loadedModuleClass: () => ProtoSSCheCTOR;
44+
serverche: () => ProtoSSChe;
45+
instance: () => ProtoSSCheInstance;
46+
StartUp(): void
47+
ShutDown(): void
48+
setEnv(envobj: ServerEnvironment): void
49+
resetFSInterval(): void
50+
stopFSInterval(): void
51+
getModuleInstance(xmodule: string): ModuleInstance
52+
}
53+
}

ServerObjects.d.ts

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
declare namespace zetaret.node {
2+
export interface SplitURL {
3+
url?: string;
4+
query?: string;
5+
path?: string;
6+
pages?: Array<string>;
7+
root?: string;
8+
page?: string;
9+
sub?: string;
10+
param?: string;
11+
vars?: object;
12+
post?: object;
13+
}
14+
export interface RouteObject extends SplitURL {
15+
rawpath?: string;
16+
pageIndex?: number;
17+
pageCurrent?: string;
18+
pageProxy?: string;
19+
exact?: boolean;
20+
output?: object;
21+
}
22+
export interface AugmentRequest {
23+
__reqid?: number;
24+
__encoding?: string;
25+
__bodyBuffer?: Buffer;
26+
}
27+
export interface AugmentResponse {
28+
__splitUrl?: SplitURL;
29+
__body?: string;
30+
__encoding?: string;
31+
__async?: boolean;
32+
__data?: Array<any>;
33+
__rcode?: number;
34+
__dataJoin?: string;
35+
__dataPrefix?: string;
36+
__dataSuffix?: string;
37+
}
38+
export interface RoutedResponse extends AugmentResponse {
39+
__splitUrl?: RouteObject;
40+
__breakRoute?: boolean;
41+
__headers?: object;
42+
__rawdata?: Array<object>;
43+
}
44+
export interface ServerEnvironment {
45+
dumpall?: boolean;
46+
dumpkeys?: Array<string>;
47+
omit?: object;
48+
maxBodyLength?: number;
49+
contenttype?: string;
50+
sidinterval?: number;
51+
statsin?: ServerStats;
52+
statsout?: ServerStats;
53+
keepBodyBuffer?: boolean;
54+
}
55+
export interface ServerStats {
56+
reqnum?: number;
57+
xserver?: boolean;
58+
xserverModule?: string;
59+
cookieid?: string;
60+
htport?: number;
61+
https?: boolean;
62+
httpsop?: ServerOptions;
63+
h2op?: object;
64+
}
65+
export interface ServerOptions {
66+
keyPath?: string;
67+
key?: string;
68+
certPath?: string;
69+
cert?: string;
70+
pfxPath?: string;
71+
pfx?: string;
72+
caPath?: string;
73+
ca?: Array<string> | string;
74+
h2?: boolean;
75+
}
76+
export interface BasicServerGlobal {
77+
ProtoSSCheStatsFile?: string;
78+
ProtoSSCheXServerPath?: string;
79+
SubserverRequireModule?: string;
80+
LobbyServerRequireModule?: string;
81+
CardServerRequireModule?: string;
82+
VoyageRequireModule?: string;
83+
DeepVoyageRequireModule?: string;
84+
}
85+
export interface ServerModule {
86+
xpros: ServerModule;
87+
SERVERID: string;
88+
EVENTS?: object;
89+
90+
resetExtends(): void
91+
getExtends(): ProtoSSCheCTOR
92+
getExtendedServerProtoSS(ProtoSSChe: ProtoSSCheCTOR): ProtoSSCheCTOR
93+
}
94+
export interface ModuleInstance {
95+
serverche: ProtoSSChe;
96+
xpro: ServerModule;
97+
xprocls: ProtoSSCheCTOR;
98+
xmodule: string;
99+
}
100+
}

ServerTypes.d.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
declare type HTTPServer = import("http").Server;
2+
declare type IncomingMessage = import("http").IncomingMessage;
3+
declare type OutgoingMessage = import("http").OutgoingMessage;
4+
declare type ClientRequest = import("http").ClientRequest;
5+
declare type ServerResponse = import("http").ServerResponse;
6+
declare type HTTPSServer = import("https").Server;
7+
declare type Http2Server = import("http2").Http2Server;
8+
declare type Https2Server = import("http2").Http2SecureServer;
9+
declare type Http2Request = import("http2").Http2ServerRequest;
10+
declare type Http2Response = import("http2").Http2ServerResponse;
11+
declare type EventEmitter = import("events").EventEmitter;
12+
declare type ChildProcess = import("child_process").ChildProcess;
13+
declare type WorkerThread = import("worker_threads").Worker;
14+
declare type Cluster = import("cluster").Cluster;
15+
16+
declare namespace zetaret.node {
17+
export type XRequest = ClientRequest | Http2Request;
18+
export type XResponse = ServerResponse | Http2Response;
19+
export type RoutedResponseX = XResponse | RoutedResponse;
20+
export type Input = XRequest | IncomingMessage;
21+
export type Output = XResponse | OutgoingMessage;
22+
export type Cross = XResponse | IncomingMessage;
23+
export type XServer = HTTPSServer | HTTPServer | Https2Server | Http2Server;
24+
export type Emitter = EventEmitter;
25+
export type Process = ChildProcess;
26+
export type Thread = Worker | WorkerThread;
27+
export type Head = Cluster;
28+
export type IntBuffer = Int8Array | Int16Array | Int32Array | BigInt64Array;
29+
export type UintBuffer = Uint8Array | Uint16Array | Uint32Array | BigUint64Array;
30+
export type FloatBuffer = Float32Array | Float64Array;
31+
export type NumBuffer = IntBuffer | UintBuffer | FloatBuffer;
32+
}

api/APIController.d.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
declare namespace zetaret.node.api {
2+
export interface APIControllerCTOR {
3+
new(): APIController
4+
}
5+
export interface APIController {
6+
ctype: string;
7+
api: Array<string>;
8+
server: zetaret.node.modules.Subserver;
9+
db: object;
10+
apiPrefix: string;
11+
12+
addServer(server: zetaret.node.modules.Subserver): void
13+
setHeaders(response: zetaret.node.RoutedResponseX): void
14+
pushData(response: zetaret.node.RoutedResponseX, data: object): void
15+
}
16+
export interface APIControllerModule {
17+
APIController: APIControllerCTOR;
18+
}
19+
}

api/ChatConfig.d.ts

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
declare namespace zetaret.node.api {
2+
export interface ChatConfig {
3+
chatProfiles?: ChatProfile[];
4+
profileMap?: WeakMap<ChatUser, ChatProfile>;
5+
notifyMap?: WeakMap<ChatUser, ChatNotification>;
6+
blockMap?: WeakMap<ChatUser, ChatBlock>;
7+
muteMap?: WeakMap<ChatUser, ChatMute>;
8+
}
9+
export interface ChatProfile {
10+
namespace?: string;
11+
username?: string;
12+
imageUrl?: string;
13+
about?: string;
14+
details?: { [did: string]: string };
15+
}
16+
export interface ChatNamespace {
17+
PUBLIC: "public";
18+
PRIVATE: "private";
19+
PROTECTED: "protected";
20+
GROUP: "group";
21+
GROUP_PREFIX: "group:id:";
22+
SELF: "self";
23+
}
24+
export interface ChatNotification {
25+
notifyChat?: boolean;
26+
notifyStream?: boolean;
27+
notifyComment?: boolean;
28+
notifyFiles?: boolean;
29+
notifyAudio?: boolean;
30+
notifyVideo?: boolean;
31+
}
32+
export interface ChatMute {
33+
muteChat?: boolean;
34+
muteSound?: boolean;
35+
muteVideo?: boolean;
36+
}
37+
export interface ChatBlock {
38+
address?: Array<[string, string]>;
39+
range?: Array<[string, string, string]>;
40+
subnet?: Array<[string, number, string]>;
41+
coookie?: string[];
42+
rules?: string[];
43+
blockChat?: boolean;
44+
blockStream?: boolean;
45+
blockComment?: boolean;
46+
blockFiles?: boolean;
47+
blockAudio?: boolean;
48+
blockVideo?: boolean;
49+
}
50+
}

api/ChatController.d.ts

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
declare namespace zetaret.node.api {
2+
export interface ChatControllerCTOR {
3+
new(): ChatController
4+
}
5+
export interface ChatController extends APIController {
6+
messages: { [mid: string]: Array<ChatMessage> };
7+
autoDelete: WeakMap<object, ChatMessage>;
8+
db: ChatDB | object;
9+
install: Function;
10+
error: Function;
11+
defaults: Function;
12+
13+
installDBInterface(method: Function): void
14+
handleError(method: Function): void
15+
onDefault(method: Function): void
16+
addMessage(user: string, msg: string): string
17+
buildMessage(user: string, message: string, mid?: string): ChatMessage
18+
appendMessage(mid: string, text: Array<string>, data?: object): ChatMessage
19+
addClient(server: zetaret.node.modules.Subserver, robj: zetaret.node.RouteObject, routeData: object, request: zetaret.node.XRequest, response: zetaret.node.RoutedResponseX): void
20+
getClients(server: zetaret.node.modules.Subserver, robj: zetaret.node.RouteObject, routeData: object, request: zetaret.node.XRequest, response: zetaret.node.RoutedResponseX): void
21+
editClient(server: zetaret.node.modules.Subserver, robj: zetaret.node.RouteObject, routeData: object, request: zetaret.node.XRequest, response: zetaret.node.RoutedResponseX): void
22+
sendMessage(server: zetaret.node.modules.Subserver, robj: zetaret.node.RouteObject, routeData: object, request: zetaret.node.XRequest, response: zetaret.node.RoutedResponseX): void
23+
getMessages(server: zetaret.node.modules.Subserver, robj: zetaret.node.RouteObject, routeData: object, request: zetaret.node.XRequest, response: zetaret.node.RoutedResponseX): void
24+
editMessages(server: zetaret.node.modules.Subserver, robj: zetaret.node.RouteObject, routeData: object, request: zetaret.node.XRequest, response: zetaret.node.RoutedResponseX): void
25+
addGroup(server: zetaret.node.modules.Subserver, robj: zetaret.node.RouteObject, routeData: object, request: zetaret.node.XRequest, response: zetaret.node.RoutedResponseX): void
26+
getGroups(server: zetaret.node.modules.Subserver, robj: zetaret.node.RouteObject, routeData: object, request: zetaret.node.XRequest, response: zetaret.node.RoutedResponseX): void
27+
editGroups(server: zetaret.node.modules.Subserver, robj: zetaret.node.RouteObject, routeData: object, request: zetaret.node.XRequest, response: zetaret.node.RoutedResponseX): void
28+
}
29+
export interface NullMessage {
30+
mid?: string;
31+
}
32+
export interface ChatMessage extends NullMessage {
33+
user?: string;
34+
message?: string;
35+
time?: number;
36+
etime?: number;
37+
stream?: Array<StreamMessage | string | object>;
38+
groups?: Array<ChatGroup>;
39+
sent?: Array<ChatUser>;
40+
}
41+
export interface ChatUser {
42+
uid?: string;
43+
vars?: object;
44+
}
45+
export interface ChatGroup {
46+
gid?: string;
47+
users?: Array<string | ChatUser>;
48+
data?: object;
49+
}
50+
export interface ChatDB {
51+
users: { [uid: string]: ChatUser };
52+
groups: { [gid: string]: ChatGroup };
53+
messages: { [uid: string]: Array<string | ChatMessage> };
54+
weak: WeakMap<ChatUser, Array<ChatMessage>>;
55+
}
56+
export interface ChatEvents {
57+
INSTALL: "install";
58+
ERROR: "error";
59+
DEFAULTS: "defaults";
60+
MESSAGE: "message";
61+
MESSAGE_UPDATE: "messageUpdate";
62+
USER: "user";
63+
USER_UPDATE: "userUpdate";
64+
GROUP: "group";
65+
GROUP_UPDATE: "groupUpdate";
66+
DB_CONNECT: "dbConnect";
67+
DB_UPDATE: "dbUpdate";
68+
API_MOUNT: "apiMount";
69+
}
70+
export interface ChatControllerStatic {
71+
EVENTS: ChatEvents;
72+
}
73+
export interface ChatControllerModule {
74+
ChatController: ChatControllerCTOR;
75+
}
76+
}

0 commit comments

Comments
 (0)