@morojs/moro 1.7.30 → 1.8.0

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.
Files changed (67) hide show
  1. package/README.md +89 -37
  2. package/dist/core/config/config-sources.js +114 -2
  3. package/dist/core/config/config-sources.js.map +1 -1
  4. package/dist/core/config/config-validator.js +187 -5
  5. package/dist/core/config/config-validator.js.map +1 -1
  6. package/dist/core/config/schema.js +31 -3
  7. package/dist/core/config/schema.js.map +1 -1
  8. package/dist/core/framework.d.ts +41 -3
  9. package/dist/core/framework.js +335 -95
  10. package/dist/core/framework.js.map +1 -1
  11. package/dist/core/http/http-server.d.ts +17 -10
  12. package/dist/core/http/http-server.js +76 -109
  13. package/dist/core/http/http-server.js.map +1 -1
  14. package/dist/core/http/http2-server.d.ts +6 -16
  15. package/dist/core/http/http2-server.js +14 -79
  16. package/dist/core/http/http2-server.js.map +1 -1
  17. package/dist/core/http/index.d.ts +1 -0
  18. package/dist/core/http/index.js +3 -0
  19. package/dist/core/http/index.js.map +1 -1
  20. package/dist/core/http/moro-engine-server.d.ts +263 -0
  21. package/dist/core/http/moro-engine-server.js +1939 -0
  22. package/dist/core/http/moro-engine-server.js.map +1 -0
  23. package/dist/core/http/utils/compression.d.ts +47 -0
  24. package/dist/core/http/utils/compression.js +132 -0
  25. package/dist/core/http/utils/compression.js.map +1 -0
  26. package/dist/core/http/utils/lazy-event-emitter.d.ts +11 -0
  27. package/dist/core/http/utils/lazy-event-emitter.js +69 -0
  28. package/dist/core/http/utils/lazy-event-emitter.js.map +1 -0
  29. package/dist/core/http/utils/multipart-parser.d.ts +32 -0
  30. package/dist/core/http/utils/multipart-parser.js +211 -0
  31. package/dist/core/http/utils/multipart-parser.js.map +1 -0
  32. package/dist/core/http/utils/query-parser.d.ts +1 -0
  33. package/dist/core/http/utils/query-parser.js +44 -0
  34. package/dist/core/http/utils/query-parser.js.map +1 -0
  35. package/dist/core/http/utils/size.d.ts +33 -0
  36. package/dist/core/http/utils/size.js +37 -0
  37. package/dist/core/http/utils/size.js.map +1 -0
  38. package/dist/core/http/utils/ssl-config.d.ts +69 -0
  39. package/dist/core/http/utils/ssl-config.js +116 -0
  40. package/dist/core/http/utils/ssl-config.js.map +1 -0
  41. package/dist/core/http/utils/uws-worker-clustering.js +8 -2
  42. package/dist/core/http/utils/uws-worker-clustering.js.map +1 -1
  43. package/dist/core/http/uws-http-server.d.ts +24 -3
  44. package/dist/core/http/uws-http-server.js +386 -65
  45. package/dist/core/http/uws-http-server.js.map +1 -1
  46. package/dist/core/middleware/built-in/compression/core.d.ts +3 -0
  47. package/dist/core/middleware/built-in/compression/core.js +28 -34
  48. package/dist/core/middleware/built-in/compression/core.js.map +1 -1
  49. package/dist/core/networking/adapters/engine-adapter.d.ts +23 -0
  50. package/dist/core/networking/adapters/engine-adapter.js +365 -0
  51. package/dist/core/networking/adapters/engine-adapter.js.map +1 -0
  52. package/dist/core/networking/adapters/index.d.ts +1 -0
  53. package/dist/core/networking/adapters/index.js +1 -0
  54. package/dist/core/networking/adapters/index.js.map +1 -1
  55. package/dist/core/networking/adapters/uws-adapter.js +26 -15
  56. package/dist/core/networking/adapters/uws-adapter.js.map +1 -1
  57. package/dist/core/utilities/package-utils.d.ts +68 -0
  58. package/dist/core/utilities/package-utils.js +198 -1
  59. package/dist/core/utilities/package-utils.js.map +1 -1
  60. package/dist/index.d.ts +1 -1
  61. package/dist/index.js +1 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/moro.d.ts +2 -0
  64. package/dist/moro.js +63 -21
  65. package/dist/moro.js.map +1 -1
  66. package/dist/types/config.d.ts +90 -5
  67. package/package.json +4 -1
@@ -0,0 +1,365 @@
1
+ // @morojs/engine WebSocket adapter.
2
+ // Bridges the native engine's RFC 6455 WebSocket callbacks (onWsOpen/Message/
3
+ // Close, wsSend/wsClose on MoroEngineServer) to Moro's WebSocketAdapter model.
4
+ // Message framing mirrors the uWS adapter: JSON { event, data } envelopes with
5
+ // a default namespace, so app.websocket() handlers work identically.
6
+ import crypto from 'crypto';
7
+ import { createFrameworkLogger } from '../../logger/index.js';
8
+ export class EngineWebSocketAdapter {
9
+ server; // MoroEngineServer
10
+ namespaces = new Map();
11
+ connections = new Map();
12
+ byWsId = new Map();
13
+ logger = createFrameworkLogger('ENGINE_WS');
14
+ customIdGenerator;
15
+ connectionCounter = 0;
16
+ async initialize(httpServer, _options = {}) {
17
+ if (!httpServer || typeof httpServer.enableWebSocket !== 'function') {
18
+ throw new Error('EngineWebSocketAdapter requires the @morojs/engine HTTP server (MoroEngineServer)');
19
+ }
20
+ this.server = httpServer;
21
+ // Register the native WS bridge: the engine drives these on the event loop.
22
+ this.server.enableWebSocket({
23
+ onOpen: (wsId, path, info) => this.handleOpen(wsId, path, info),
24
+ onMessage: (wsId, data, isBinary) => this.handleMessage(wsId, data, isBinary),
25
+ onClose: (wsId, code) => this.handleClose(wsId, code),
26
+ });
27
+ this.createNamespace('/');
28
+ this.logger.info('Engine WebSocket adapter initialized', 'Init');
29
+ }
30
+ handleOpen(wsId, path, info) {
31
+ const id = this.customIdGenerator ? this.customIdGenerator() : this.generateId();
32
+ const connection = new EngineConnectionWrapper(this.server, wsId, id, path, this.namespaces, info);
33
+ this.connections.set(id, connection);
34
+ this.byWsId.set(wsId, connection);
35
+ this.getDefaultNamespaceImpl().handleConnection(connection);
36
+ }
37
+ handleMessage(wsId, data, isBinary) {
38
+ const connection = this.byWsId.get(wsId);
39
+ if (!connection)
40
+ return;
41
+ if (isBinary) {
42
+ connection.handleBinary(data);
43
+ return;
44
+ }
45
+ // Text frames carry JSON { event, data } envelopes (uWS-adapter parity)
46
+ const text = typeof data === 'string' ? data : Buffer.from(data).toString('utf-8');
47
+ let parsed;
48
+ try {
49
+ parsed = JSON.parse(text);
50
+ }
51
+ catch {
52
+ this.logger.warn(`Non-JSON message from ${connection.id}`, 'Message');
53
+ return;
54
+ }
55
+ connection.handleMessage(parsed);
56
+ }
57
+ handleClose(wsId, code) {
58
+ const connection = this.byWsId.get(wsId);
59
+ if (!connection)
60
+ return;
61
+ connection.connected = false;
62
+ connection.handleDisconnect(code);
63
+ this.byWsId.delete(wsId);
64
+ this.connections.delete(connection.id);
65
+ }
66
+ generateId() {
67
+ return `${Date.now().toString(36)}-${(++this.connectionCounter).toString(36)}-${crypto
68
+ .randomBytes(4)
69
+ .toString('hex')}`;
70
+ }
71
+ getDefaultNamespaceImpl() {
72
+ return this.createNamespace('/');
73
+ }
74
+ createNamespace(namespace) {
75
+ let ns = this.namespaces.get(namespace);
76
+ if (!ns) {
77
+ ns = new EngineNamespaceWrapper(namespace, this.connections);
78
+ this.namespaces.set(namespace, ns);
79
+ }
80
+ return ns;
81
+ }
82
+ getDefaultNamespace() {
83
+ return this.createNamespace('/');
84
+ }
85
+ async close() {
86
+ for (const conn of this.connections.values()) {
87
+ conn.disconnect();
88
+ }
89
+ this.connections.clear();
90
+ this.byWsId.clear();
91
+ }
92
+ setCompression(_enabled, _options) {
93
+ // Compression (permessage-deflate) is negotiated natively; no-op for now.
94
+ }
95
+ setCustomIdGenerator(generator) {
96
+ this.customIdGenerator = generator;
97
+ }
98
+ getAdapterName() {
99
+ return '@morojs/engine';
100
+ }
101
+ getConnectionCount() {
102
+ let count = 0;
103
+ for (const conn of this.connections.values()) {
104
+ if (conn.connected)
105
+ count++;
106
+ }
107
+ return count;
108
+ }
109
+ }
110
+ class EngineNamespaceWrapper {
111
+ namespace;
112
+ connections;
113
+ connectionHandlers = [];
114
+ middlewares = [];
115
+ logger = createFrameworkLogger('ENGINE_WS_NS');
116
+ constructor(namespace, connections) {
117
+ this.namespace = namespace;
118
+ this.connections = connections;
119
+ }
120
+ on(event, handler) {
121
+ if (event === 'connection')
122
+ this.connectionHandlers.push(handler);
123
+ }
124
+ handleConnection(connection) {
125
+ this.runMiddlewares(connection, err => {
126
+ if (err) {
127
+ connection.disconnect(true);
128
+ return;
129
+ }
130
+ // A throwing connection handler must not take down the socket/loop.
131
+ for (const handler of this.connectionHandlers) {
132
+ try {
133
+ handler(connection);
134
+ }
135
+ catch (error) {
136
+ this.logger.error(`WebSocket connection handler threw: ${error instanceof Error ? error.message : String(error)}`, 'Connection');
137
+ }
138
+ }
139
+ });
140
+ }
141
+ runMiddlewares(connection, finalCallback) {
142
+ let index = 0;
143
+ const next = (err) => {
144
+ if (err)
145
+ return finalCallback(err);
146
+ if (index >= this.middlewares.length)
147
+ return finalCallback();
148
+ const middleware = this.middlewares[index++];
149
+ middleware(connection, next);
150
+ };
151
+ next();
152
+ }
153
+ emit(event, data) {
154
+ for (const connection of this.connections.values()) {
155
+ if (connection.connected)
156
+ connection.emit(event, data);
157
+ }
158
+ }
159
+ to(room) {
160
+ return new EngineEmitterWrapper(this.connections, {
161
+ rooms: Array.isArray(room) ? room : [room],
162
+ });
163
+ }
164
+ except(room) {
165
+ return new EngineEmitterWrapper(this.connections, {
166
+ exceptRooms: Array.isArray(room) ? room : [room],
167
+ });
168
+ }
169
+ getSockets() {
170
+ const result = [];
171
+ for (const conn of this.connections.values())
172
+ if (conn.connected)
173
+ result.push(conn);
174
+ return result;
175
+ }
176
+ getConnectionCount() {
177
+ let count = 0;
178
+ for (const conn of this.connections.values())
179
+ if (conn.connected)
180
+ count++;
181
+ return count;
182
+ }
183
+ use(middleware) {
184
+ this.middlewares.push(middleware);
185
+ }
186
+ }
187
+ class EngineConnectionWrapper {
188
+ server;
189
+ wsId;
190
+ id;
191
+ path;
192
+ namespaces;
193
+ data = {};
194
+ connected = true;
195
+ headers;
196
+ rooms = new Set();
197
+ eventHandlers = new Map();
198
+ anyHandlers = [];
199
+ disconnectHandlers = [];
200
+ logger = createFrameworkLogger('ENGINE_WS_CONN');
201
+ _ip;
202
+ constructor(server, wsId, id, path, namespaces, handshake) {
203
+ this.server = server;
204
+ this.wsId = wsId;
205
+ this.id = id;
206
+ this.path = path;
207
+ this.namespaces = namespaces;
208
+ // Handshake snapshot (captured before the upgrade invalidated the reqId):
209
+ // real values for IP-based rate limiting and header/token connection auth.
210
+ this._ip = handshake?.ip ?? '';
211
+ this.headers = handshake?.headers ?? {};
212
+ }
213
+ get ip() {
214
+ return this._ip;
215
+ }
216
+ on(event, handler) {
217
+ if (event === 'disconnect') {
218
+ this.disconnectHandlers.push(handler);
219
+ return;
220
+ }
221
+ let handlers = this.eventHandlers.get(event);
222
+ if (!handlers) {
223
+ handlers = [];
224
+ this.eventHandlers.set(event, handlers);
225
+ }
226
+ handlers.push(handler);
227
+ }
228
+ onAny(handler) {
229
+ this.anyHandlers.push(handler);
230
+ }
231
+ emit(event, data) {
232
+ if (!this.connected)
233
+ return;
234
+ try {
235
+ const sent = this.server.wsSend(this.wsId, JSON.stringify({ event, data }), false);
236
+ if (!sent)
237
+ this.logger.warn(`Backpressure for connection ${this.id}`, 'Backpressure');
238
+ }
239
+ catch (error) {
240
+ this.logger.error(`Failed to emit ${event}: ${error instanceof Error ? error.message : String(error)}`, 'Emit');
241
+ }
242
+ }
243
+ compressedEmit(event, data) {
244
+ this.emit(event, data);
245
+ }
246
+ // A user handler throwing must not kill the connection, skip sibling
247
+ // handlers, or (via the native callback) get swallowed silently.
248
+ runHandler(fn, ...args) {
249
+ try {
250
+ fn(...args);
251
+ }
252
+ catch (error) {
253
+ this.logger.error(`WebSocket handler threw: ${error instanceof Error ? error.message : String(error)}`, 'Handler');
254
+ }
255
+ }
256
+ handleMessage(data) {
257
+ // A frame delivered after the socket was closed (e.g. a second frame in the
258
+ // same TCP read whose first frame's handler called disconnect()) must not
259
+ // reach app handlers on a dead socket.
260
+ if (!this.connected)
261
+ return;
262
+ if (!data || typeof data !== 'object')
263
+ return;
264
+ const { event, data: eventData, callback: hasCallback } = data;
265
+ if (!event)
266
+ return;
267
+ const callback = hasCallback
268
+ ? (response) => this.emit(`${event}:response`, response)
269
+ : undefined;
270
+ for (const handler of this.anyHandlers)
271
+ this.runHandler(handler, event, eventData);
272
+ const handlers = this.eventHandlers.get(event);
273
+ if (handlers)
274
+ for (const handler of handlers)
275
+ this.runHandler(handler, eventData, callback);
276
+ }
277
+ handleBinary(data) {
278
+ if (!this.connected)
279
+ return;
280
+ const handlers = this.eventHandlers.get('binary');
281
+ if (handlers)
282
+ for (const handler of handlers)
283
+ this.runHandler(handler, data);
284
+ }
285
+ handleDisconnect(reason) {
286
+ for (const handler of this.disconnectHandlers)
287
+ this.runHandler(handler, reason);
288
+ }
289
+ join(room) {
290
+ for (const r of Array.isArray(room) ? room : [room])
291
+ this.rooms.add(r);
292
+ }
293
+ leave(room) {
294
+ for (const r of Array.isArray(room) ? room : [room])
295
+ this.rooms.delete(r);
296
+ }
297
+ getRooms() {
298
+ return new Set(this.rooms);
299
+ }
300
+ isInRoom(room) {
301
+ return this.rooms.has(room);
302
+ }
303
+ disconnect(_close) {
304
+ if (!this.connected)
305
+ return;
306
+ this.connected = false;
307
+ try {
308
+ this.server.wsClose(this.wsId, 1000, '');
309
+ }
310
+ catch {
311
+ // already gone
312
+ }
313
+ }
314
+ to(room) {
315
+ return new EngineEmitterWrapper(this.allConnections(), {
316
+ rooms: Array.isArray(room) ? room : [room],
317
+ });
318
+ }
319
+ // Emit to everyone in the default namespace except this socket
320
+ get broadcast() {
321
+ return new EngineEmitterWrapper(this.allConnections(), { exceptId: this.id });
322
+ }
323
+ allConnections() {
324
+ return this.namespaces.get('/')?.['connections'] ?? new Map();
325
+ }
326
+ }
327
+ class EngineEmitterWrapper {
328
+ connections;
329
+ filter;
330
+ constructor(connections, filter) {
331
+ this.connections = connections;
332
+ this.filter = filter;
333
+ }
334
+ emit(event, data) {
335
+ for (const conn of this.connections.values()) {
336
+ if (!conn.connected)
337
+ continue;
338
+ if (this.filter.exceptId && conn.id === this.filter.exceptId)
339
+ continue;
340
+ if (this.filter.rooms && !this.filter.rooms.some(r => conn.isInRoom(r)))
341
+ continue;
342
+ if (this.filter.exceptRooms && this.filter.exceptRooms.some(r => conn.isInRoom(r)))
343
+ continue;
344
+ conn.emit(event, data);
345
+ }
346
+ }
347
+ to(room) {
348
+ const rooms = Array.isArray(room) ? room : [room];
349
+ return new EngineEmitterWrapper(this.connections, {
350
+ ...this.filter,
351
+ rooms: [...(this.filter.rooms ?? []), ...rooms],
352
+ });
353
+ }
354
+ except(room) {
355
+ const rooms = Array.isArray(room) ? room : [room];
356
+ return new EngineEmitterWrapper(this.connections, {
357
+ ...this.filter,
358
+ exceptRooms: [...(this.filter.exceptRooms ?? []), ...rooms],
359
+ });
360
+ }
361
+ compress(_compress) {
362
+ return this; // native negotiation; chaining preserved
363
+ }
364
+ }
365
+ //# sourceMappingURL=engine-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-adapter.js","sourceRoot":"","sources":["../../../../src/core/networking/adapters/engine-adapter.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,qEAAqE;AAErE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAS5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,OAAO,sBAAsB;IACzB,MAAM,CAAM,CAAC,mBAAmB;IAChC,UAAU,GAAG,IAAI,GAAG,EAAkC,CAAC;IACvD,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;IACzD,MAAM,GAAG,IAAI,GAAG,EAAmC,CAAC;IACpD,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC5C,iBAAiB,CAAgB;IACjC,iBAAiB,GAAG,CAAC,CAAC;IAE9B,KAAK,CAAC,UAAU,CAAC,UAAe,EAAE,WAAoC,EAAE;QACtE,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QAEzB,4EAA4E;QAC5E,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC1B,MAAM,EAAE,CACN,IAAY,EACZ,IAAY,EACZ,IAAsD,EACtD,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YACtC,SAAS,EAAE,CAAC,IAAY,EAAE,IAAS,EAAE,QAAiB,EAAE,EAAE,CACxD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;YAC1C,OAAO,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;SACtE,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAEO,UAAU,CAChB,IAAY,EACZ,IAAY,EACZ,IAAsD;QAEtD,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACjF,MAAM,UAAU,GAAG,IAAI,uBAAuB,CAC5C,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,IAAI,CAAC,UAAU,EACf,IAAI,CACL,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClC,IAAI,CAAC,uBAAuB,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;IAEO,aAAa,CAAC,IAAY,EAAE,IAAS,EAAE,QAAiB;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,wEAAwE;QACxE,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnF,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,UAAU,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QACD,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAEO,WAAW,CAAC,IAAY,EAAE,IAAY;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC;QAC7B,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAEO,UAAU;QAChB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,MAAM;aACnF,WAAW,CAAC,CAAC,CAAC;aACd,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACvB,CAAC;IAEO,uBAAuB;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAA2B,CAAC;IAC7D,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,EAAE,GAAG,IAAI,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,cAAc,CAAC,QAAiB,EAAE,QAAc;QAC9C,0EAA0E;IAC5E,CAAC;IAED,oBAAoB,CAAC,SAAuB;QAC1C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;IACrC,CAAC;IAED,cAAc;QACZ,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,kBAAkB;QAChB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,SAAS;gBAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,MAAM,sBAAsB;IAMhB;IACA;IANF,kBAAkB,GAA8C,EAAE,CAAC;IACnE,WAAW,GAA0B,EAAE,CAAC;IACxC,MAAM,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAEvD,YACU,SAAiB,EACjB,WAAiD;QADjD,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAsC;IACxD,CAAC;IAEJ,EAAE,CAAC,KAAmB,EAAE,OAA8C;QACpE,IAAI,KAAK,KAAK,YAAY;YAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,gBAAgB,CAAC,UAAmC;QAClD,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;YACpC,IAAI,GAAG,EAAE,CAAC;gBACR,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,oEAAoE;YACpE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC9C,IAAI,CAAC;oBACH,OAAO,CAAC,UAAU,CAAC,CAAC;gBACtB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC/F,YAAY,CACb,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CACpB,UAAmC,EACnC,aAAoC;QAEpC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;YAC3B,IAAI,GAAG;gBAAE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM;gBAAE,OAAO,aAAa,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;YAC7C,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,IAAI,EAAE,CAAC;IACT,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,IAAS;QAC3B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,IAAI,UAAU,CAAC,SAAS;gBAAE,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,EAAE,CAAC,IAAuB;QACxB,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE;YAChD,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE;YAChD,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAA0B,EAAE,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAAE,IAAI,IAAI,CAAC,SAAS;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB;QAChB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAAE,IAAI,IAAI,CAAC,SAAS;gBAAE,KAAK,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,UAA+B;QACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;CACF;AAED,MAAM,uBAAuB;IAejB;IACA;IACQ;IACA;IACR;IAlBH,IAAI,GAAwB,EAAE,CAAC;IAC/B,SAAS,GAAG,IAAI,CAAC;IACR,OAAO,CAAyB;IACxC,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1B,aAAa,GAAG,IAAI,GAAG,EAG5B,CAAC;IACI,WAAW,GAAmD,EAAE,CAAC;IACjE,kBAAkB,GAAkC,EAAE,CAAC;IACvD,MAAM,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACxC,GAAG,CAAS;IAE7B,YACU,MAAW,EACX,IAAY,EACJ,EAAU,EACV,IAAY,EACpB,UAA+C,EACvD,SAA2D;QALnD,WAAM,GAAN,MAAM,CAAK;QACX,SAAI,GAAJ,IAAI,CAAQ;QACJ,OAAE,GAAF,EAAE,CAAQ;QACV,SAAI,GAAJ,IAAI,CAAQ;QACpB,eAAU,GAAV,UAAU,CAAqC;QAGvD,0EAA0E;QAC1E,2EAA2E;QAC3E,IAAI,CAAC,GAAG,GAAG,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,EAAE,CAAC,KAAa,EAAE,OAAiE;QACjF,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAc,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAgD;QACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,IAAS;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YACnF,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QACxF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kBAAkB,KAAK,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACpF,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;IAED,cAAc,CAAC,KAAa,EAAE,IAAS;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,qEAAqE;IACrE,iEAAiE;IACzD,UAAU,CAAC,EAA4B,EAAE,GAAG,IAAW;QAC7D,IAAI,CAAC;YACH,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACpF,SAAS,CACV,CAAC;QACJ,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAS;QACrB,4EAA4E;QAC5E,0EAA0E;QAC1E,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO;QAC9C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC/D,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAC,CAAC,QAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,EAAE,QAAQ,CAAC;YAC9D,CAAC,CAAC,SAAS,CAAC;QAEd,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,QAAQ;YAAE,KAAK,MAAM,OAAO,IAAI,QAAQ;gBAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9F,CAAC;IAED,YAAY,CAAC,IAAS;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,QAAQ;YAAE,KAAK,MAAM,OAAO,IAAI,QAAQ;gBAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,gBAAgB,CAAC,MAAY;QAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB;YAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,CAAC,IAAuB;QAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAuB;QAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU,CAAC,MAAgB;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;IAED,EAAE,CAAC,IAAuB;QACxB,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YACrD,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,IAAI,SAAS;QACX,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IAEO,cAAc;QACpB,OAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAS,EAAE,CAAC,aAAa,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;IACzE,CAAC;CACF;AAED,MAAM,oBAAoB;IAEd;IACA;IAFV,YACU,WAAiD,EACjD,MAAuE;QADvE,gBAAW,GAAX,WAAW,CAAsC;QACjD,WAAM,GAAN,MAAM,CAAiE;IAC9E,CAAC;IAEJ,IAAI,CAAC,KAAa,EAAE,IAAS;QAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,SAAS;YAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAE,SAAS;YACvE,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAAE,SAAS;YAClF,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC7F,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,EAAE,CAAC,IAAuB;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE;YAChD,GAAG,IAAI,CAAC,MAAM;YACd,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE;YAChD,GAAG,IAAI,CAAC,MAAM;YACd,WAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CAAC,SAAkB;QACzB,OAAO,IAAI,CAAC,CAAC,yCAAyC;IACxD,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
1
  export { SocketIOAdapter } from './socketio-adapter.js';
2
2
  export { WSAdapter } from './ws-adapter.js';
3
3
  export { UWebSocketsAdapter } from './uws-adapter.js';
4
+ export { EngineWebSocketAdapter } from './engine-adapter.js';
4
5
  export type { WebSocketAdapter, WebSocketAdapterOptions, WebSocketNamespace, WebSocketConnection, WebSocketEmitter, WebSocketMiddleware, WebSocketEventHandler, } from '../websocket-adapter.js';
@@ -3,4 +3,5 @@
3
3
  export { SocketIOAdapter } from './socketio-adapter.js';
4
4
  export { WSAdapter } from './ws-adapter.js';
5
5
  export { UWebSocketsAdapter } from './uws-adapter.js';
6
+ export { EngineWebSocketAdapter } from './engine-adapter.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/networking/adapters/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,+DAA+D;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/networking/adapters/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,+DAA+D;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -3,7 +3,7 @@
3
3
  // High-performance C++ WebSocket implementation with native Node.js bindings
4
4
  import crypto from 'crypto';
5
5
  import { TextDecoder } from 'util';
6
- import { resolveUserPackage } from '../../utilities/package-utils.js';
6
+ import { loadNativeEngine } from '../../utilities/package-utils.js';
7
7
  // Reusable TextDecoder instance — avoids Buffer allocation per WS message
8
8
  const textDecoder = new TextDecoder('utf-8');
9
9
  import { createFrameworkLogger } from '../../logger/index.js';
@@ -25,19 +25,28 @@ export class UWebSocketsAdapter {
25
25
  httpServer; // Reference to Node.js HTTP server for compatibility
26
26
  async initialize(httpServer, options = {}) {
27
27
  try {
28
- // Lazy load uWebSockets.js from user's context
29
- // This ensures it's an optional dependency with graceful fallback
30
- const uwsPath = resolveUserPackage('uWebSockets.js');
31
- this.uws = await import(uwsPath);
28
+ // This adapter needs the uWS-shaped API (App/SSLApp/ws/us_listen_socket_*)
29
+ // - specifically uWebSockets.js, NOT the Moro-shaped @morojs/engine.
30
+ const engine = loadNativeEngine({ candidates: ['uWebSockets.js'] });
31
+ if (!engine) {
32
+ throw new Error('uWebSockets.js is not available for the uws WebSocket adapter');
33
+ }
34
+ this.uws = engine.module.default || engine.module;
32
35
  // Store HTTP server reference for compatibility
33
36
  this.httpServer = httpServer;
34
- // uWebSockets.js doesn't integrate with Node's http.Server
35
- // Instead, it creates its own server, so we'll need to handle this carefully
36
- // We'll create a uWebSockets app that can coexist with the HTTP server
37
37
  // Check if SSL/TLS options are provided
38
38
  const sslOptions = options.ssl;
39
- if (sslOptions && sslOptions.key_file_name && sslOptions.cert_file_name) {
40
- // Create SSL app
39
+ if (httpServer && typeof httpServer.ws === 'function') {
40
+ // Integrated mode: the framework passes the engine's own uWS app.
41
+ // Register .ws() routes directly on it so WebSocket upgrades share
42
+ // the HTTP listen socket. (Creating a second App() here would attach
43
+ // the routes to an app that never listens - upgrades on the real
44
+ // port would fail.)
45
+ this.app = httpServer;
46
+ this.logger.info('Using integrated uWebSockets app from HTTP server', 'Init');
47
+ }
48
+ else if (sslOptions && sslOptions.key_file_name && sslOptions.cert_file_name) {
49
+ // Standalone SSL app (adapter owns the listen socket via listen())
41
50
  this.app = this.uws.SSLApp({
42
51
  key_file_name: sslOptions.key_file_name,
43
52
  cert_file_name: sslOptions.cert_file_name,
@@ -47,7 +56,7 @@ export class UWebSocketsAdapter {
47
56
  this.logger.info('uWebSockets SSL/TLS app created', 'Init');
48
57
  }
49
58
  else {
50
- // Create regular app
59
+ // Standalone app (adapter owns the listen socket via listen())
51
60
  this.app = this.uws.App();
52
61
  this.logger.info('uWebSockets app created', 'Init');
53
62
  }
@@ -85,10 +94,12 @@ export class UWebSocketsAdapter {
85
94
  this.logger.info('uWebSockets adapter initialized', 'Init');
86
95
  }
87
96
  catch (error) {
88
- // Throw helpful error with installation instructions
89
- throw new Error('Failed to load uWebSockets.js (optional dependency)\n' +
90
- 'To use the uWebSockets adapter, install it with:\n' +
91
- ' npm install --save-dev github:uNetworking/uWebSockets.js#v20.52.0\n' +
97
+ // Throw helpful error with installation instructions. This adapter only
98
+ // works with uWebSockets.js - do not suggest @morojs/engine, which it
99
+ // deliberately refuses to load.
100
+ throw new Error('Failed to load uWebSockets.js for the uws WebSocket adapter\n' +
101
+ 'Install it with:\n' +
102
+ ' npm install github:uNetworking/uWebSockets.js#v20.52.0\n' +
92
103
  'Or use a different WebSocket adapter (socket.io or ws) in your config.\n' +
93
104
  'Error: ' +
94
105
  (error instanceof Error ? error.message : String(error)));
@@ -1 +1 @@
1
- {"version":3,"file":"uws-adapter.js","sourceRoot":"","sources":["../../../../src/core/networking/adapters/uws-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uws-adapter.js","sourceRoot":"","sources":["../../../../src/core/networking/adapters/uws-adapter.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,74 @@ export declare function resolveUserPackage(packageName: string): string;
36
36
  * const packagePath = userRequire.resolve('some-package');
37
37
  */
38
38
  export declare function createUserRequire(): NodeJS.Require;
39
+ /**
40
+ * Package names probed for the native HTTP engine, in priority order.
41
+ * '@morojs/engine' is Moro's own engine (installed as an optionalDependency of
42
+ * the framework); 'uWebSockets.js' is honored as a legacy user-installed peer.
43
+ */
44
+ export declare const NATIVE_ENGINE_PACKAGES: readonly ["@morojs/engine", "uWebSockets.js"];
45
+ /** Feature flags the framework gates option-passing on, so it never hands a
46
+ * serve() option to an engine build that predates it. Everything defaults
47
+ * false, so an older engine behaves exactly as it did before these existed. */
48
+ export interface EngineCapabilities {
49
+ /** The full serve() limit surface is parsed (engine >= 1.1.0). */
50
+ limits: boolean;
51
+ /** In-process TLS termination via options.ssl (engine >= 1.2.0). */
52
+ tls: boolean;
53
+ /** ALPN HTTP/2 via options.http2 (engine >= 1.4.0). */
54
+ http2: boolean;
55
+ /** WebSocket permessage-deflate via options.wsDeflate (engine >= 1.5.0). */
56
+ wsDeflate: boolean;
57
+ }
58
+ export interface NativeEngineLoadResult {
59
+ /** The loaded engine module (CJS namespace: App, SSLApp, ...) */
60
+ module: any;
61
+ /** Which package satisfied the load */
62
+ source: string;
63
+ /** The engine package's version, when its package.json is resolvable */
64
+ version?: string;
65
+ /** Feature flags (Moro-shaped engine only; all-false for uWS or an
66
+ * engine too old to advertise them). */
67
+ capabilities?: EngineCapabilities;
68
+ }
69
+ /**
70
+ * Feature-detect a loaded engine module. Reads probe().capabilities when the
71
+ * engine exposes it (>= 1.1.0); otherwise everything is false so the framework
72
+ * passes only the options an older engine understood. uWS-style modules (no
73
+ * probe/serve) report all-false — their SSL/limits go through the uWS-specific
74
+ * paths, not these flags.
75
+ */
76
+ export declare function getEngineCapabilities(module: any): EngineCapabilities;
77
+ /**
78
+ * Synchronously load the native HTTP engine, trying '@morojs/engine' first and
79
+ * falling back to a user-installed 'uWebSockets.js'. Loading is require-based
80
+ * (both packages are CJS at their core - .node addon loading is require-based),
81
+ * so the instance is shared with any later import() via the CJS module cache.
82
+ *
83
+ * The default call is memoized: the engine either loads once per process or it
84
+ * doesn't. Failure details are retained for logging via
85
+ * getNativeEngineLoadErrors().
86
+ *
87
+ * @param options.candidates - Override the probed package names (testing).
88
+ * When provided, the call bypasses the cache.
89
+ * @returns The loaded engine and its source package, or null if none loads
90
+ */
91
+ export declare function loadNativeEngine(options?: {
92
+ candidates?: readonly string[];
93
+ /** When provided, every per-attempt failure message is appended here, so a
94
+ * candidate-override caller (which bypasses the memoized diagnostics) can
95
+ * still report exactly WHY the engine didn't load — not just "not installed". */
96
+ collectErrors?: string[];
97
+ }): NativeEngineLoadResult | null;
98
+ /**
99
+ * Failure details from the most recent unsuccessful loadNativeEngine() call,
100
+ * one entry per package/anchor attempt. Empty after a successful load.
101
+ */
102
+ export declare function getNativeEngineLoadErrors(): readonly string[];
103
+ /**
104
+ * Clear the memoized engine load result. Testing only.
105
+ */
106
+ export declare function resetNativeEngineLoaderForTesting(): void;
39
107
  /**
40
108
  * Convert a file path to a file URL for ESM dynamic imports
41
109
  * This is required on Windows where absolute paths like C:\path\to\module