sockress 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +269 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1271 -0
- package/dist/index.js.map +1 -0
- package/package.json +6 -1
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import http, { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
import { AddressInfo } from 'net';
|
|
3
|
+
import { WebSocket } from 'ws';
|
|
4
|
+
import type { CookieSerializeOptions } from 'cookie';
|
|
5
|
+
import { Options as MulterOptions } from 'multer';
|
|
6
|
+
export interface SockressAddress extends AddressInfo {
|
|
7
|
+
hostname: string;
|
|
8
|
+
url: string;
|
|
9
|
+
}
|
|
10
|
+
type ListenCallback = (error: Error | null, address?: SockressAddress) => void;
|
|
11
|
+
type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
|
|
12
|
+
export type NextFunction = (err?: unknown) => void;
|
|
13
|
+
export type SockressHandler = (req: SockressRequest, res: SockressResponse, next: NextFunction) => unknown;
|
|
14
|
+
export type SockressErrorHandler = (err: unknown, req: SockressRequest, res: SockressResponse, next: NextFunction) => unknown;
|
|
15
|
+
export interface SockressOptions {
|
|
16
|
+
cors?: Partial<CorsOptions>;
|
|
17
|
+
socket?: Partial<SocketOptions>;
|
|
18
|
+
bodyLimit?: number;
|
|
19
|
+
}
|
|
20
|
+
interface SocketOptions {
|
|
21
|
+
path: string;
|
|
22
|
+
heartbeatInterval: number;
|
|
23
|
+
idleTimeout: number;
|
|
24
|
+
}
|
|
25
|
+
interface CorsOptions {
|
|
26
|
+
origin: string | string[];
|
|
27
|
+
credentials: boolean;
|
|
28
|
+
methods: HTTPMethod[];
|
|
29
|
+
allowedHeaders: string[];
|
|
30
|
+
exposedHeaders: string[];
|
|
31
|
+
maxAge: number;
|
|
32
|
+
}
|
|
33
|
+
interface NormalizedOptions {
|
|
34
|
+
cors: CorsOptions;
|
|
35
|
+
socket: SocketOptions;
|
|
36
|
+
bodyLimit: number;
|
|
37
|
+
}
|
|
38
|
+
export interface SockressUploaderOptions {
|
|
39
|
+
dest?: string;
|
|
40
|
+
limits?: MulterOptions['limits'];
|
|
41
|
+
preserveFilename?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface SockressUploader {
|
|
44
|
+
single(field: string): SockressHandler;
|
|
45
|
+
array(field: string, maxCount?: number): SockressHandler;
|
|
46
|
+
fields(fields: Array<{
|
|
47
|
+
name: string;
|
|
48
|
+
maxCount?: number;
|
|
49
|
+
}>): SockressHandler;
|
|
50
|
+
any(): SockressHandler;
|
|
51
|
+
}
|
|
52
|
+
export interface StaticOptions {
|
|
53
|
+
index?: string;
|
|
54
|
+
maxAge?: number;
|
|
55
|
+
stripPrefix?: string;
|
|
56
|
+
}
|
|
57
|
+
interface MiddlewareLayer {
|
|
58
|
+
path: string;
|
|
59
|
+
handler: SockressHandler | SockressErrorHandler;
|
|
60
|
+
isErrorHandler: boolean;
|
|
61
|
+
}
|
|
62
|
+
interface RouteLayer {
|
|
63
|
+
method: HTTPMethod | 'ALL';
|
|
64
|
+
matcher: PathMatcher;
|
|
65
|
+
handlers: Array<SockressHandler | SockressErrorHandler>;
|
|
66
|
+
}
|
|
67
|
+
interface PathMatcher {
|
|
68
|
+
raw: string;
|
|
69
|
+
match: (path: string) => PathMatchResult | null;
|
|
70
|
+
}
|
|
71
|
+
interface PathMatchResult {
|
|
72
|
+
params: Record<string, string>;
|
|
73
|
+
}
|
|
74
|
+
type RequestMode = {
|
|
75
|
+
kind: 'http';
|
|
76
|
+
req: IncomingMessage;
|
|
77
|
+
res: ServerResponse;
|
|
78
|
+
} | {
|
|
79
|
+
kind: 'socket';
|
|
80
|
+
socket: WebSocket;
|
|
81
|
+
requestId: string;
|
|
82
|
+
};
|
|
83
|
+
export interface SockressUploadedFile {
|
|
84
|
+
fieldName: string;
|
|
85
|
+
name: string;
|
|
86
|
+
type: string;
|
|
87
|
+
size: number;
|
|
88
|
+
buffer: Buffer;
|
|
89
|
+
lastModified?: number;
|
|
90
|
+
path?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface SockressRequest {
|
|
93
|
+
readonly id: string;
|
|
94
|
+
readonly method: HTTPMethod;
|
|
95
|
+
path: string;
|
|
96
|
+
query: Record<string, string | string[]>;
|
|
97
|
+
params: Record<string, string>;
|
|
98
|
+
headers: Record<string, string | string[] | undefined>;
|
|
99
|
+
body: unknown;
|
|
100
|
+
cookies: Record<string, string>;
|
|
101
|
+
file?: SockressUploadedFile;
|
|
102
|
+
files?: Record<string, SockressUploadedFile[]>;
|
|
103
|
+
readonly type: 'http' | 'socket';
|
|
104
|
+
readonly ip: string | undefined;
|
|
105
|
+
readonly protocol: 'http' | 'https' | 'ws' | 'wss';
|
|
106
|
+
readonly secure: boolean;
|
|
107
|
+
context: Record<string, unknown>;
|
|
108
|
+
raw?: IncomingMessage;
|
|
109
|
+
readonly hostname?: string;
|
|
110
|
+
readonly originalUrl?: string;
|
|
111
|
+
readonly baseUrl?: string;
|
|
112
|
+
readonly subdomains?: string[];
|
|
113
|
+
get(field: string): string | undefined;
|
|
114
|
+
accepts(types: string | string[]): string | false;
|
|
115
|
+
is(type: string | string[]): string | false | null;
|
|
116
|
+
param(name: string, defaultValue?: string): string;
|
|
117
|
+
}
|
|
118
|
+
export declare class SockressRequestImpl implements SockressRequest {
|
|
119
|
+
readonly id: string;
|
|
120
|
+
readonly method: HTTPMethod;
|
|
121
|
+
path: string;
|
|
122
|
+
query: Record<string, string | string[]>;
|
|
123
|
+
headers: Record<string, string | string[] | undefined>;
|
|
124
|
+
body: unknown;
|
|
125
|
+
cookies: Record<string, string>;
|
|
126
|
+
files: Record<string, SockressUploadedFile[]> | undefined;
|
|
127
|
+
file: SockressUploadedFile | undefined;
|
|
128
|
+
readonly type: 'http' | 'socket';
|
|
129
|
+
readonly ip: string | undefined;
|
|
130
|
+
readonly protocol: 'http' | 'https' | 'ws' | 'wss';
|
|
131
|
+
readonly secure: boolean;
|
|
132
|
+
raw?: IncomingMessage | undefined;
|
|
133
|
+
params: Record<string, string>;
|
|
134
|
+
context: Record<string, unknown>;
|
|
135
|
+
readonly hostname?: string;
|
|
136
|
+
readonly originalUrl?: string;
|
|
137
|
+
readonly baseUrl?: string;
|
|
138
|
+
readonly subdomains?: string[];
|
|
139
|
+
constructor(id: string, method: HTTPMethod, path: string, query: Record<string, string | string[]>, headers: Record<string, string | string[] | undefined>, body: unknown, cookies: Record<string, string>, files: Record<string, SockressUploadedFile[]> | undefined, file: SockressUploadedFile | undefined, type: 'http' | 'socket', ip: string | undefined, protocol: 'http' | 'https' | 'ws' | 'wss', secure: boolean, raw?: IncomingMessage | undefined, originalUrl?: string, baseUrl?: string);
|
|
140
|
+
get(field: string): string | undefined;
|
|
141
|
+
accepts(types: string | string[]): string | false;
|
|
142
|
+
is(type: string | string[]): string | false | null;
|
|
143
|
+
param(name: string, defaultValue?: string): string;
|
|
144
|
+
}
|
|
145
|
+
export declare class SockressResponse {
|
|
146
|
+
private readonly mode;
|
|
147
|
+
private readonly cors;
|
|
148
|
+
private readonly allowedOrigin;
|
|
149
|
+
private statusCode;
|
|
150
|
+
private sent;
|
|
151
|
+
private headers;
|
|
152
|
+
private cookies;
|
|
153
|
+
readonly raw?: ServerResponse;
|
|
154
|
+
constructor(mode: RequestMode, cors: CorsOptions, allowedOrigin: string);
|
|
155
|
+
status(code: number): this;
|
|
156
|
+
set(field: string, value: string): this;
|
|
157
|
+
append(field: string, value: string): this;
|
|
158
|
+
cookie(name: string, value: string, options?: CookieSerializeOptions): this;
|
|
159
|
+
clearCookie(name: string, options?: CookieSerializeOptions): this;
|
|
160
|
+
json(payload: unknown): this;
|
|
161
|
+
send(payload?: unknown): this;
|
|
162
|
+
end(): this;
|
|
163
|
+
isSent(): boolean;
|
|
164
|
+
redirect(url: string | number, statusOrUrl?: number | string): this;
|
|
165
|
+
sendFile(filePath: string, options?: {
|
|
166
|
+
root?: string;
|
|
167
|
+
headers?: Record<string, string>;
|
|
168
|
+
}): Promise<this>;
|
|
169
|
+
download(filePath: string, filename?: string, options?: {
|
|
170
|
+
root?: string;
|
|
171
|
+
headers?: Record<string, string>;
|
|
172
|
+
}): Promise<this>;
|
|
173
|
+
sendStatus(code: number): this;
|
|
174
|
+
format(obj: Record<string, (req: SockressRequest, res: SockressResponse) => void>, req: SockressRequest): this;
|
|
175
|
+
location(url: string): this;
|
|
176
|
+
vary(field: string): this;
|
|
177
|
+
private buildHeaders;
|
|
178
|
+
}
|
|
179
|
+
export declare class SockressRouter {
|
|
180
|
+
private middlewares;
|
|
181
|
+
private routes;
|
|
182
|
+
use(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
183
|
+
use(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
184
|
+
private register;
|
|
185
|
+
get(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
186
|
+
post(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
187
|
+
put(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
188
|
+
patch(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
189
|
+
delete(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
190
|
+
head(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
191
|
+
options(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
192
|
+
all(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
193
|
+
route(path: string): SockressRoute;
|
|
194
|
+
getStack(): {
|
|
195
|
+
middlewares: MiddlewareLayer[];
|
|
196
|
+
routes: RouteLayer[];
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
export declare class SockressRoute {
|
|
200
|
+
private router;
|
|
201
|
+
private path;
|
|
202
|
+
constructor(router: SockressRouter, path: string);
|
|
203
|
+
get(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
204
|
+
post(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
205
|
+
put(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
206
|
+
patch(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
207
|
+
delete(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
208
|
+
head(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
209
|
+
options(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
210
|
+
all(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
211
|
+
}
|
|
212
|
+
export declare class SockressAppRoute {
|
|
213
|
+
private app;
|
|
214
|
+
private path;
|
|
215
|
+
constructor(app: SockressApp, path: string);
|
|
216
|
+
get(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
217
|
+
post(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
218
|
+
put(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
219
|
+
patch(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
220
|
+
delete(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
221
|
+
head(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
222
|
+
options(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
223
|
+
all(...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
224
|
+
}
|
|
225
|
+
export declare class SockressApp {
|
|
226
|
+
private readonly config;
|
|
227
|
+
private middlewares;
|
|
228
|
+
private routes;
|
|
229
|
+
private paramHandlers;
|
|
230
|
+
private server?;
|
|
231
|
+
private wss?;
|
|
232
|
+
private heartbeatInterval?;
|
|
233
|
+
private shutdownRegistered;
|
|
234
|
+
private shuttingDown;
|
|
235
|
+
constructor(config: NormalizedOptions);
|
|
236
|
+
static Router(): SockressRouter;
|
|
237
|
+
static create(options?: SockressOptions): SockressApp;
|
|
238
|
+
use(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler | SockressRouter>): this;
|
|
239
|
+
use(...handlers: Array<SockressHandler | SockressErrorHandler | SockressRouter>): this;
|
|
240
|
+
useStatic(route: string, directory: string, options?: StaticOptions): this;
|
|
241
|
+
private register;
|
|
242
|
+
get(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
243
|
+
post(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
244
|
+
put(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
245
|
+
patch(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
246
|
+
delete(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
247
|
+
head(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
248
|
+
options(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
249
|
+
all(path: string, ...handlers: Array<SockressHandler | SockressErrorHandler>): this;
|
|
250
|
+
param(name: string, handler: SockressHandler): this;
|
|
251
|
+
route(path: string): SockressAppRoute;
|
|
252
|
+
listen(port: number, callback?: ListenCallback): http.Server;
|
|
253
|
+
listen(port: number, host: string, callback?: ListenCallback): http.Server;
|
|
254
|
+
close(): Promise<void>;
|
|
255
|
+
private startHeartbeat;
|
|
256
|
+
private registerShutdownHooks;
|
|
257
|
+
private handleHttp;
|
|
258
|
+
private handleSocket;
|
|
259
|
+
private runPipeline;
|
|
260
|
+
private composeStack;
|
|
261
|
+
private renderError;
|
|
262
|
+
}
|
|
263
|
+
export declare function sockress(options?: SockressOptions): SockressApp;
|
|
264
|
+
export declare const createSockress: typeof sockress;
|
|
265
|
+
export declare const Router: typeof SockressApp.Router;
|
|
266
|
+
export declare function createUploader(options?: SockressUploaderOptions): SockressUploader;
|
|
267
|
+
export declare function serveStatic(root: string, options?: StaticOptions): SockressHandler;
|
|
268
|
+
export {};
|
|
269
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|