@weconjs/core 0.1.1
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/README.md +128 -0
- package/dist/config.d.ts +48 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +182 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +29 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +79 -0
- package/dist/context.js.map +1 -0
- package/dist/database/index.d.ts +47 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +40 -0
- package/dist/database/index.js.map +1 -0
- package/dist/i18n/index.d.ts +37 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +98 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/module.d.ts +68 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +237 -0
- package/dist/module.js.map +1 -0
- package/dist/server/index.d.ts +73 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +99 -0
- package/dist/server/index.js.map +1 -0
- package/dist/socket/index.d.ts +115 -0
- package/dist/socket/index.d.ts.map +1 -0
- package/dist/socket/index.js +181 -0
- package/dist/socket/index.js.map +1 -0
- package/dist/types.d.ts +294 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @weconjs/core - Socket.IO Integration
|
|
3
|
+
*
|
|
4
|
+
* Provides Socket.IO server setup, handler discovery, and middleware loading.
|
|
5
|
+
* Auto-discovers `*.socket.ts` files from module directories.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // src/modules/chat/socket/chat.socket.ts
|
|
10
|
+
* import { SocketHandler } from '@weconjs/core';
|
|
11
|
+
*
|
|
12
|
+
* const chatHandler: SocketHandler = (io, socket) => {
|
|
13
|
+
* socket.on('message', (data) => {
|
|
14
|
+
* io.emit('message', data);
|
|
15
|
+
* });
|
|
16
|
+
* };
|
|
17
|
+
*
|
|
18
|
+
* export default chatHandler;
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import type { Server as HttpServer } from "http";
|
|
22
|
+
import type { Server as HttpsServer } from "https";
|
|
23
|
+
/**
|
|
24
|
+
* Socket.IO Server instance type
|
|
25
|
+
*/
|
|
26
|
+
export type SocketServer = import("socket.io").Server;
|
|
27
|
+
/**
|
|
28
|
+
* Socket.IO Socket instance type
|
|
29
|
+
*/
|
|
30
|
+
export type SocketInstance = import("socket.io").Socket;
|
|
31
|
+
/**
|
|
32
|
+
* Socket handler function signature
|
|
33
|
+
*
|
|
34
|
+
* Called when a client connects. Use this to set up event listeners.
|
|
35
|
+
*/
|
|
36
|
+
export type SocketHandler = (io: SocketServer, socket: SocketInstance) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Socket middleware function signature
|
|
39
|
+
*
|
|
40
|
+
* Called before the connection handler. Can be used for authentication.
|
|
41
|
+
*/
|
|
42
|
+
export type SocketMiddleware = (socket: SocketInstance, next: (err?: Error) => void) => void;
|
|
43
|
+
/**
|
|
44
|
+
* Discovered socket handler with metadata
|
|
45
|
+
*/
|
|
46
|
+
export interface DiscoveredSocketHandler {
|
|
47
|
+
name: string;
|
|
48
|
+
namespace: string;
|
|
49
|
+
handler: SocketHandler;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Socket configuration options
|
|
53
|
+
*/
|
|
54
|
+
export interface SocketOptions {
|
|
55
|
+
/**
|
|
56
|
+
* Enable Socket.IO
|
|
57
|
+
*/
|
|
58
|
+
enabled?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* CORS configuration
|
|
61
|
+
*/
|
|
62
|
+
cors?: {
|
|
63
|
+
origin: string | string[];
|
|
64
|
+
methods?: string[];
|
|
65
|
+
credentials?: boolean;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Path for the Socket.IO endpoint
|
|
69
|
+
*/
|
|
70
|
+
path?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Create a Socket.IO server attached to an HTTP server
|
|
74
|
+
*
|
|
75
|
+
* @param httpServer - The HTTP/HTTPS server to attach to
|
|
76
|
+
* @param options - Socket configuration options
|
|
77
|
+
* @returns Socket.IO server instance
|
|
78
|
+
*/
|
|
79
|
+
export declare function createSocketServer(httpServer: HttpServer | HttpsServer, options?: SocketOptions): Promise<SocketServer>;
|
|
80
|
+
/**
|
|
81
|
+
* Discover socket handlers in module directories
|
|
82
|
+
*
|
|
83
|
+
* Scans for `socket/*.socket.ts` files in each module.
|
|
84
|
+
*
|
|
85
|
+
* @param modulesDir - Path to the modules directory
|
|
86
|
+
* @returns Array of discovered socket handlers
|
|
87
|
+
*/
|
|
88
|
+
export declare function discoverSocketHandlers(modulesDir: string): Promise<DiscoveredSocketHandler[]>;
|
|
89
|
+
/**
|
|
90
|
+
* Discover socket middleware in module directories
|
|
91
|
+
*
|
|
92
|
+
* Looks for `socket/socket.middleware.ts` in each module.
|
|
93
|
+
*
|
|
94
|
+
* @param modulesDir - Path to the modules directory
|
|
95
|
+
* @returns Array of socket middleware functions
|
|
96
|
+
*/
|
|
97
|
+
export declare function discoverSocketMiddleware(modulesDir: string): Promise<SocketMiddleware[]>;
|
|
98
|
+
/**
|
|
99
|
+
* Initialize Socket.IO with discovered handlers and middleware
|
|
100
|
+
*
|
|
101
|
+
* @param io - Socket.IO server instance
|
|
102
|
+
* @param handlers - Discovered socket handlers
|
|
103
|
+
* @param middleware - Socket middleware functions
|
|
104
|
+
*/
|
|
105
|
+
export declare function initializeSocket(io: SocketServer, handlers: DiscoveredSocketHandler[], middleware?: SocketMiddleware[]): void;
|
|
106
|
+
/**
|
|
107
|
+
* Full Socket.IO setup for a Wecon application
|
|
108
|
+
*
|
|
109
|
+
* @param httpServer - HTTP server to attach to
|
|
110
|
+
* @param modulesDir - Path to modules directory
|
|
111
|
+
* @param options - Socket configuration
|
|
112
|
+
* @returns Socket.IO server instance
|
|
113
|
+
*/
|
|
114
|
+
export declare function setupSocketIO(httpServer: HttpServer | HttpsServer, modulesDir: string, options?: SocketOptions): Promise<SocketServer | null>;
|
|
115
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/socket/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,OAAO,CAAC;AAInD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,WAAW,EAAE,MAAM,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,WAAW,EAAE,MAAM,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;AAE/E;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,KACxB,IAAI,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;IAEF;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,UAAU,GAAG,WAAW,EACpC,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAavB;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CA2CpC;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAiC7B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,YAAY,EAChB,QAAQ,EAAE,uBAAuB,EAAE,EACnC,UAAU,GAAE,gBAAgB,EAAO,GAClC,IAAI,CAyBN;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,GAAG,WAAW,EACpC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAmB9B"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @weconjs/core - Socket.IO Integration
|
|
3
|
+
*
|
|
4
|
+
* Provides Socket.IO server setup, handler discovery, and middleware loading.
|
|
5
|
+
* Auto-discovers `*.socket.ts` files from module directories.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // src/modules/chat/socket/chat.socket.ts
|
|
10
|
+
* import { SocketHandler } from '@weconjs/core';
|
|
11
|
+
*
|
|
12
|
+
* const chatHandler: SocketHandler = (io, socket) => {
|
|
13
|
+
* socket.on('message', (data) => {
|
|
14
|
+
* io.emit('message', data);
|
|
15
|
+
* });
|
|
16
|
+
* };
|
|
17
|
+
*
|
|
18
|
+
* export default chatHandler;
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import { glob } from "glob";
|
|
22
|
+
import { basename, dirname } from "path";
|
|
23
|
+
/**
|
|
24
|
+
* Create a Socket.IO server attached to an HTTP server
|
|
25
|
+
*
|
|
26
|
+
* @param httpServer - The HTTP/HTTPS server to attach to
|
|
27
|
+
* @param options - Socket configuration options
|
|
28
|
+
* @returns Socket.IO server instance
|
|
29
|
+
*/
|
|
30
|
+
export async function createSocketServer(httpServer, options = {}) {
|
|
31
|
+
// Dynamic import to avoid bundling issues
|
|
32
|
+
const { Server } = await import("socket.io");
|
|
33
|
+
const io = new Server(httpServer, {
|
|
34
|
+
path: options.path || "/socket.io",
|
|
35
|
+
cors: options.cors || {
|
|
36
|
+
origin: "*",
|
|
37
|
+
methods: ["GET", "POST"],
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
return io;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Discover socket handlers in module directories
|
|
44
|
+
*
|
|
45
|
+
* Scans for `socket/*.socket.ts` files in each module.
|
|
46
|
+
*
|
|
47
|
+
* @param modulesDir - Path to the modules directory
|
|
48
|
+
* @returns Array of discovered socket handlers
|
|
49
|
+
*/
|
|
50
|
+
export async function discoverSocketHandlers(modulesDir) {
|
|
51
|
+
const handlers = [];
|
|
52
|
+
try {
|
|
53
|
+
// Find all *.socket.ts files
|
|
54
|
+
const files = await glob("**/socket/*.socket.{ts,js}", {
|
|
55
|
+
cwd: modulesDir,
|
|
56
|
+
absolute: true,
|
|
57
|
+
});
|
|
58
|
+
for (const file of files) {
|
|
59
|
+
try {
|
|
60
|
+
const module = await import(file);
|
|
61
|
+
const handler = module.default;
|
|
62
|
+
if (typeof handler !== "function") {
|
|
63
|
+
console.warn(`[Wecon] Socket file ${basename(file)} must export a default function`);
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
// Extract handler name and module namespace
|
|
67
|
+
const fileName = basename(file).replace(/\.socket\.(ts|js)$/, "");
|
|
68
|
+
const moduleDir = dirname(dirname(file)); // Go up from socket/
|
|
69
|
+
const namespace = basename(moduleDir);
|
|
70
|
+
handlers.push({
|
|
71
|
+
name: fileName,
|
|
72
|
+
namespace,
|
|
73
|
+
handler,
|
|
74
|
+
});
|
|
75
|
+
console.log(`[Wecon] Discovered socket handler: ${namespace}/${fileName}`);
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
console.error(`[Wecon] Failed to load socket handler ${file}:`, err);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
console.warn("[Wecon] Failed to discover socket handlers:", err);
|
|
84
|
+
}
|
|
85
|
+
return handlers;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Discover socket middleware in module directories
|
|
89
|
+
*
|
|
90
|
+
* Looks for `socket/socket.middleware.ts` in each module.
|
|
91
|
+
*
|
|
92
|
+
* @param modulesDir - Path to the modules directory
|
|
93
|
+
* @returns Array of socket middleware functions
|
|
94
|
+
*/
|
|
95
|
+
export async function discoverSocketMiddleware(modulesDir) {
|
|
96
|
+
const middleware = [];
|
|
97
|
+
try {
|
|
98
|
+
// Find all socket.middleware.ts files
|
|
99
|
+
const files = await glob("**/socket/socket.middleware.{ts,js}", {
|
|
100
|
+
cwd: modulesDir,
|
|
101
|
+
absolute: true,
|
|
102
|
+
});
|
|
103
|
+
for (const file of files) {
|
|
104
|
+
try {
|
|
105
|
+
const module = await import(file);
|
|
106
|
+
const mw = module.default;
|
|
107
|
+
if (Array.isArray(mw)) {
|
|
108
|
+
middleware.push(...mw.filter((m) => typeof m === "function"));
|
|
109
|
+
}
|
|
110
|
+
else if (typeof mw === "function") {
|
|
111
|
+
middleware.push(mw);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.warn(`[Wecon] ${file} must export a middleware function or array`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
// File doesn't exist or error - skip
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
console.warn("[Wecon] Failed to discover socket middleware:", err);
|
|
124
|
+
}
|
|
125
|
+
return middleware;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Initialize Socket.IO with discovered handlers and middleware
|
|
129
|
+
*
|
|
130
|
+
* @param io - Socket.IO server instance
|
|
131
|
+
* @param handlers - Discovered socket handlers
|
|
132
|
+
* @param middleware - Socket middleware functions
|
|
133
|
+
*/
|
|
134
|
+
export function initializeSocket(io, handlers, middleware = []) {
|
|
135
|
+
// Apply middleware
|
|
136
|
+
for (const mw of middleware) {
|
|
137
|
+
io.use(mw);
|
|
138
|
+
}
|
|
139
|
+
// Set up connection handler
|
|
140
|
+
io.on("connection", (socket) => {
|
|
141
|
+
console.log(`[Wecon] Socket connected: ${socket.id}`);
|
|
142
|
+
// Call all discovered handlers
|
|
143
|
+
for (const { handler, namespace, name } of handlers) {
|
|
144
|
+
try {
|
|
145
|
+
handler(io, socket);
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
console.error(`[Wecon] Error in socket handler ${namespace}/${name}:`, err);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
socket.on("disconnect", () => {
|
|
152
|
+
console.log(`[Wecon] Socket disconnected: ${socket.id}`);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
console.log(`[Wecon] Socket.IO initialized with ${handlers.length} handlers`);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Full Socket.IO setup for a Wecon application
|
|
159
|
+
*
|
|
160
|
+
* @param httpServer - HTTP server to attach to
|
|
161
|
+
* @param modulesDir - Path to modules directory
|
|
162
|
+
* @param options - Socket configuration
|
|
163
|
+
* @returns Socket.IO server instance
|
|
164
|
+
*/
|
|
165
|
+
export async function setupSocketIO(httpServer, modulesDir, options = {}) {
|
|
166
|
+
if (options.enabled === false) {
|
|
167
|
+
console.log("[Wecon] Socket.IO disabled");
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
// Create Socket.IO server
|
|
171
|
+
const io = await createSocketServer(httpServer, options);
|
|
172
|
+
// Discover handlers and middleware
|
|
173
|
+
const [handlers, middleware] = await Promise.all([
|
|
174
|
+
discoverSocketHandlers(modulesDir),
|
|
175
|
+
discoverSocketMiddleware(modulesDir),
|
|
176
|
+
]);
|
|
177
|
+
// Initialize
|
|
178
|
+
initializeSocket(io, handlers, middleware);
|
|
179
|
+
return io;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/socket/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wecon/core - Core Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the Wecon framework configuration and modules.
|
|
5
|
+
*/
|
|
6
|
+
import type { Application, Request, Response, NextFunction } from "express";
|
|
7
|
+
import type { Server, Socket } from "socket.io";
|
|
8
|
+
import type { z } from "zod";
|
|
9
|
+
/**
|
|
10
|
+
* App metadata configuration
|
|
11
|
+
*/
|
|
12
|
+
export interface AppConfig {
|
|
13
|
+
name: string;
|
|
14
|
+
version?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Database configuration
|
|
18
|
+
*/
|
|
19
|
+
export interface DatabaseConfig {
|
|
20
|
+
debug?: boolean;
|
|
21
|
+
mongoose?: {
|
|
22
|
+
protocol?: string;
|
|
23
|
+
host?: string;
|
|
24
|
+
port?: number;
|
|
25
|
+
database?: string;
|
|
26
|
+
auth?: {
|
|
27
|
+
username?: string;
|
|
28
|
+
password?: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Logging configuration
|
|
34
|
+
*/
|
|
35
|
+
export interface LoggingConfig {
|
|
36
|
+
level?: "debug" | "info" | "warn" | "error";
|
|
37
|
+
format?: string;
|
|
38
|
+
enableConsole?: boolean;
|
|
39
|
+
enableFile?: boolean;
|
|
40
|
+
filePath?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* HTTPS configuration
|
|
44
|
+
*/
|
|
45
|
+
export interface HttpsConfig {
|
|
46
|
+
enabled?: boolean;
|
|
47
|
+
port?: number;
|
|
48
|
+
keyPath?: string;
|
|
49
|
+
certPath?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Socket configuration
|
|
53
|
+
*/
|
|
54
|
+
export interface SocketConfig {
|
|
55
|
+
enabled?: boolean;
|
|
56
|
+
path?: string;
|
|
57
|
+
cors?: {
|
|
58
|
+
origin?: string | string[];
|
|
59
|
+
methods?: string[];
|
|
60
|
+
credentials?: boolean;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Feature flags configuration
|
|
65
|
+
*/
|
|
66
|
+
export interface FeaturesConfig {
|
|
67
|
+
fieldShield?: {
|
|
68
|
+
enabled?: boolean;
|
|
69
|
+
strict?: boolean;
|
|
70
|
+
};
|
|
71
|
+
i18n?: {
|
|
72
|
+
enabled?: boolean;
|
|
73
|
+
defaultLocale?: string;
|
|
74
|
+
supported?: string[];
|
|
75
|
+
};
|
|
76
|
+
swagger?: {
|
|
77
|
+
enabled?: boolean;
|
|
78
|
+
path?: string;
|
|
79
|
+
};
|
|
80
|
+
socket?: SocketConfig;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Mode-specific configuration
|
|
84
|
+
*/
|
|
85
|
+
export interface ModeConfig {
|
|
86
|
+
extends?: string;
|
|
87
|
+
port?: number;
|
|
88
|
+
database?: DatabaseConfig;
|
|
89
|
+
logging?: LoggingConfig;
|
|
90
|
+
https?: HttpsConfig;
|
|
91
|
+
[key: string]: unknown;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Lifecycle hooks
|
|
95
|
+
*/
|
|
96
|
+
export interface WeconHooks {
|
|
97
|
+
onBoot?: (app: Application, ctx: WeconContext) => Promise<void> | void;
|
|
98
|
+
onShutdown?: (ctx: WeconContext) => Promise<void> | void;
|
|
99
|
+
onModuleInit?: (moduleName: string, ctx: WeconContext) => Promise<void> | void;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Main Wecon configuration
|
|
103
|
+
*/
|
|
104
|
+
export interface WeconConfig {
|
|
105
|
+
app: AppConfig;
|
|
106
|
+
modes?: Record<string, ModeConfig>;
|
|
107
|
+
modules?: string[];
|
|
108
|
+
features?: FeaturesConfig;
|
|
109
|
+
hooks?: WeconHooks;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Resolved configuration (after mode merging)
|
|
113
|
+
*/
|
|
114
|
+
export interface ResolvedConfig {
|
|
115
|
+
app: Required<AppConfig>;
|
|
116
|
+
mode: string;
|
|
117
|
+
port: number;
|
|
118
|
+
database: DatabaseConfig;
|
|
119
|
+
logging: LoggingConfig;
|
|
120
|
+
https: HttpsConfig;
|
|
121
|
+
features: FeaturesConfig;
|
|
122
|
+
modules: string[];
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Module-specific configuration with Zod schema
|
|
126
|
+
*/
|
|
127
|
+
export interface ModuleConfigDefinition<T extends z.ZodType = z.ZodType> {
|
|
128
|
+
schema: T;
|
|
129
|
+
defaults?: Partial<z.infer<T>>;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Module definition input
|
|
133
|
+
*/
|
|
134
|
+
export interface ModuleDefinition {
|
|
135
|
+
name: string;
|
|
136
|
+
namespace?: string;
|
|
137
|
+
description?: string;
|
|
138
|
+
config?: ModuleConfigDefinition;
|
|
139
|
+
routes?: unknown;
|
|
140
|
+
imports?: string[];
|
|
141
|
+
exports?: string[];
|
|
142
|
+
onInit?: (ctx: WeconContext) => Promise<void> | void;
|
|
143
|
+
onDestroy?: (ctx: WeconContext) => Promise<void> | void;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Registered module (with computed defaults)
|
|
147
|
+
*/
|
|
148
|
+
export interface WeconModule extends ModuleDefinition {
|
|
149
|
+
namespace: string;
|
|
150
|
+
description: string;
|
|
151
|
+
socketHandlers?: SocketHandler[];
|
|
152
|
+
socketMiddleware?: SocketMiddleware[];
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Socket handler function signature
|
|
156
|
+
*/
|
|
157
|
+
export type SocketHandler = (socket: Socket, ctx: WeconContext) => void;
|
|
158
|
+
/**
|
|
159
|
+
* Socket middleware function signature
|
|
160
|
+
*/
|
|
161
|
+
export type SocketMiddleware = (socket: Socket, next: (err?: Error) => void, ctx: WeconContext) => void | Promise<void>;
|
|
162
|
+
/**
|
|
163
|
+
* Logger interface
|
|
164
|
+
*/
|
|
165
|
+
export interface WeconLogger {
|
|
166
|
+
debug(message: string, meta?: Record<string, unknown>): void;
|
|
167
|
+
info(message: string, meta?: Record<string, unknown>): void;
|
|
168
|
+
warn(message: string, meta?: Record<string, unknown>): void;
|
|
169
|
+
error(message: string, meta?: Record<string, unknown>): void;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Services container
|
|
173
|
+
*/
|
|
174
|
+
export interface WeconServices {
|
|
175
|
+
[key: string]: unknown;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Application context passed to handlers, middleware, and hooks
|
|
179
|
+
*/
|
|
180
|
+
export interface WeconContext {
|
|
181
|
+
/** Resolved configuration */
|
|
182
|
+
config: ResolvedConfig;
|
|
183
|
+
/** Logger instance */
|
|
184
|
+
logger: WeconLogger;
|
|
185
|
+
/** Registered services */
|
|
186
|
+
services: WeconServices;
|
|
187
|
+
/** Express application */
|
|
188
|
+
app: Application;
|
|
189
|
+
/** Socket.IO server (if enabled) */
|
|
190
|
+
io?: Server;
|
|
191
|
+
/** Get a specific service */
|
|
192
|
+
getService<T>(name: string): T | undefined;
|
|
193
|
+
/** Register a service */
|
|
194
|
+
registerService(name: string, service: unknown): void;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Base interface for all authenticable models.
|
|
198
|
+
*
|
|
199
|
+
* Any model that can be used for authentication (User, Admin, ServiceAccount, etc.)
|
|
200
|
+
* must implement this interface.
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* interface User extends Authenticable {
|
|
205
|
+
* email: string;
|
|
206
|
+
* name: { first: string; last: string };
|
|
207
|
+
* }
|
|
208
|
+
*
|
|
209
|
+
* interface Admin extends Authenticable {
|
|
210
|
+
* permissions: string[];
|
|
211
|
+
* department: string;
|
|
212
|
+
* }
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
export interface Authenticable {
|
|
216
|
+
/** Unique identifier (MongoDB ObjectId or string) */
|
|
217
|
+
_id: unknown;
|
|
218
|
+
/** Primary role of the user */
|
|
219
|
+
role: string;
|
|
220
|
+
/** All roles assigned to the user */
|
|
221
|
+
roles: string[];
|
|
222
|
+
/** Model name for role-agnostic auth (e.g., 'User', 'Admin') */
|
|
223
|
+
__modelName?: string;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Authentication configuration for features
|
|
227
|
+
*/
|
|
228
|
+
export interface AuthConfig {
|
|
229
|
+
/** List of authenticable model names */
|
|
230
|
+
authenticables?: string[];
|
|
231
|
+
/** Default model to use for authentication */
|
|
232
|
+
defaultModel?: string;
|
|
233
|
+
/** JWT configuration */
|
|
234
|
+
jwt?: {
|
|
235
|
+
secret?: string;
|
|
236
|
+
expiresIn?: number;
|
|
237
|
+
algorithm?: string;
|
|
238
|
+
};
|
|
239
|
+
/** Session configuration */
|
|
240
|
+
session?: {
|
|
241
|
+
name?: string;
|
|
242
|
+
maxAge?: number;
|
|
243
|
+
secure?: boolean;
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Extended Express Request with Wecon context and typed user.
|
|
248
|
+
*
|
|
249
|
+
* The `TUser` generic parameter allows type-safe access to the authenticated user.
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```typescript
|
|
253
|
+
* // Single model
|
|
254
|
+
* app.get('/profile', (req: WeconRequest<User>, res) => {
|
|
255
|
+
* req.user?.email; // ✅ TypeScript knows about email
|
|
256
|
+
* });
|
|
257
|
+
*
|
|
258
|
+
* // Multiple models (union type)
|
|
259
|
+
* type AuthUser = User | Admin;
|
|
260
|
+
* app.get('/dashboard', (req: WeconRequest<AuthUser>, res) => {
|
|
261
|
+
* if (req.user && 'permissions' in req.user) {
|
|
262
|
+
* // It's an Admin
|
|
263
|
+
* }
|
|
264
|
+
* });
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
export interface WeconRequest<TUser extends Authenticable = Authenticable> extends Request {
|
|
268
|
+
/** Wecon application context */
|
|
269
|
+
ctx: WeconContext;
|
|
270
|
+
/** Authenticated user (typed based on TUser generic) */
|
|
271
|
+
user?: TUser;
|
|
272
|
+
/** i18n translation function */
|
|
273
|
+
t: (key: string, options?: Record<string, unknown>) => string;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Extended Express Response with helpers
|
|
277
|
+
*/
|
|
278
|
+
export interface WeconResponse extends Response {
|
|
279
|
+
respond: (data: {
|
|
280
|
+
data?: unknown;
|
|
281
|
+
message?: string;
|
|
282
|
+
status?: number;
|
|
283
|
+
meta?: Record<string, unknown>;
|
|
284
|
+
}) => void;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Route handler type with generic user
|
|
288
|
+
*/
|
|
289
|
+
export type RouteHandler<TUser extends Authenticable = Authenticable> = (req: WeconRequest<TUser>, res: WeconResponse, next: NextFunction) => void | Promise<void>;
|
|
290
|
+
/**
|
|
291
|
+
* Middleware type with generic user
|
|
292
|
+
*/
|
|
293
|
+
export type WeconMiddleware<TUser extends Authenticable = Authenticable> = (req: WeconRequest<TUser>, res: WeconResponse, next: NextFunction) => void | Promise<void>;
|
|
294
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@weconjs/core",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Wecon Framework Core - defineConfig, defineModule, and runtime utilities",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc",
|
|
16
|
+
"dev": "tsc --watch",
|
|
17
|
+
"clean": "rm -rf dist",
|
|
18
|
+
"test": "vitest run",
|
|
19
|
+
"test:watch": "vitest",
|
|
20
|
+
"test:coverage": "vitest run --coverage"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"glob": "^10.3.10",
|
|
24
|
+
"zod": "^3.22.4"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@types/express": "^5.0.6",
|
|
28
|
+
"@types/node": "^20.10.0",
|
|
29
|
+
"express": "^5.0.1",
|
|
30
|
+
"mongoose": "^8.0.0",
|
|
31
|
+
"socket.io": "^4.8.1",
|
|
32
|
+
"typescript": "^5.3.3",
|
|
33
|
+
"vitest": "^4.0.15"
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"express": "^5.0.0",
|
|
37
|
+
"mongoose": "^8.0.0",
|
|
38
|
+
"socket.io": "^4.6.0"
|
|
39
|
+
},
|
|
40
|
+
"peerDependenciesMeta": {
|
|
41
|
+
"socket.io": {
|
|
42
|
+
"optional": true
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"files": [
|
|
46
|
+
"dist",
|
|
47
|
+
"README.md"
|
|
48
|
+
],
|
|
49
|
+
"keywords": [
|
|
50
|
+
"wecon",
|
|
51
|
+
"framework",
|
|
52
|
+
"express",
|
|
53
|
+
"typescript",
|
|
54
|
+
"modular"
|
|
55
|
+
],
|
|
56
|
+
"author": "kemora13conf",
|
|
57
|
+
"license": "MIT",
|
|
58
|
+
"repository": {
|
|
59
|
+
"type": "git",
|
|
60
|
+
"url": "git+https://github.com/weconjs/core.git"
|
|
61
|
+
},
|
|
62
|
+
"homepage": "https://github.com/weconjs/core#readme",
|
|
63
|
+
"bugs": {
|
|
64
|
+
"url": "https://github.com/weconjs/core/issues"
|
|
65
|
+
}
|
|
66
|
+
}
|