@shohaghinfo/aerojs 0.4.2 → 0.4.4
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 +13 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +7 -8
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/templates/fullstack-templates.d.ts.map +1 -1
- package/dist/cli/templates/fullstack-templates.js +7 -8
- package/dist/cli/templates/fullstack-templates.js.map +1 -1
- package/dist/core/application-core.d.ts +1 -1
- package/dist/core/application-core.d.ts.map +1 -1
- package/dist/core/application-core.js +8 -1
- package/dist/core/application-core.js.map +1 -1
- package/dist/database/index.d.ts +2 -2
- package/dist/database/index.d.ts.map +1 -1
- package/dist/database/index.js +2 -2
- package/dist/database/index.js.map +1 -1
- package/dist/database/query-builder.d.ts +30 -6
- package/dist/database/query-builder.d.ts.map +1 -1
- package/dist/database/query-builder.js +193 -34
- package/dist/database/query-builder.js.map +1 -1
- package/dist/database/sqlite.d.ts +5 -0
- package/dist/database/sqlite.d.ts.map +1 -1
- package/dist/database/sqlite.js +21 -0
- package/dist/database/sqlite.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/security/hash.d.ts +4 -0
- package/dist/security/hash.d.ts.map +1 -1
- package/dist/security/hash.js +9 -0
- package/dist/security/hash.js.map +1 -1
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js.map +1 -1
- package/dist/security/jwt.d.ts +6 -4
- package/dist/security/jwt.d.ts.map +1 -1
- package/dist/security/jwt.js +68 -11
- package/dist/security/jwt.js.map +1 -1
- package/dist/static/static.d.ts.map +1 -1
- package/dist/static/static.js +3 -2
- package/dist/static/static.js.map +1 -1
- package/dist/views/vite.d.ts.map +1 -1
- package/dist/views/vite.js +28 -14
- package/dist/views/vite.js.map +1 -1
- package/dist/ws/websocket.d.ts +18 -0
- package/dist/ws/websocket.d.ts.map +1 -1
- package/dist/ws/websocket.js +125 -42
- package/dist/ws/websocket.js.map +1 -1
- package/package.json +1 -1
package/dist/ws/websocket.js
CHANGED
|
@@ -6,6 +6,27 @@
|
|
|
6
6
|
import crypto from 'node:crypto';
|
|
7
7
|
import { EventEmitter } from 'node:events';
|
|
8
8
|
const WS_GUID = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11';
|
|
9
|
+
/**
|
|
10
|
+
* Fast, memory-safe unmasking of client frames.
|
|
11
|
+
* Uses 32-bit word-level XOR operations for high throughput and zero allocation overhead.
|
|
12
|
+
*/
|
|
13
|
+
export function fastUnmask(payload, maskKey) {
|
|
14
|
+
const len = payload.length;
|
|
15
|
+
if (len === 0) {
|
|
16
|
+
return Buffer.alloc(0);
|
|
17
|
+
}
|
|
18
|
+
const unmasked = Buffer.allocUnsafe(len);
|
|
19
|
+
const mask32 = maskKey.readInt32LE(0);
|
|
20
|
+
const remainder = len % 4;
|
|
21
|
+
const wordLimit = len - remainder;
|
|
22
|
+
for (let i = 0; i < wordLimit; i += 4) {
|
|
23
|
+
unmasked.writeInt32LE(payload.readInt32LE(i) ^ mask32, i);
|
|
24
|
+
}
|
|
25
|
+
for (let i = wordLimit; i < len; i++) {
|
|
26
|
+
unmasked[i] = payload[i] ^ maskKey[i % 4];
|
|
27
|
+
}
|
|
28
|
+
return unmasked;
|
|
29
|
+
}
|
|
9
30
|
/**
|
|
10
31
|
* Lightweight Zero-Dependency RFC 6455 WebSocket Connection wrapper over Duplex stream.
|
|
11
32
|
*/
|
|
@@ -16,25 +37,74 @@ export class AeroWebSocket extends EventEmitter {
|
|
|
16
37
|
buffer = Buffer.alloc(0);
|
|
17
38
|
currentFragments = [];
|
|
18
39
|
currentOpcode = null;
|
|
40
|
+
onSocketData;
|
|
41
|
+
onSocketClose;
|
|
42
|
+
onSocketError;
|
|
43
|
+
onSocketEnd;
|
|
19
44
|
constructor(socket, options = {}) {
|
|
20
45
|
super();
|
|
21
46
|
this.socket = socket;
|
|
22
47
|
this.maxPayload = options.maxPayload ?? 5 * 1024 * 1024; // 5MB default
|
|
23
|
-
this.
|
|
24
|
-
|
|
48
|
+
this.onSocketData = (chunk) => {
|
|
49
|
+
if (this.isClosed)
|
|
50
|
+
return;
|
|
51
|
+
if (this.buffer.length === 0) {
|
|
52
|
+
this.buffer = chunk;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this.buffer = Buffer.concat([this.buffer, chunk]);
|
|
56
|
+
}
|
|
25
57
|
if (this.buffer.length > this.maxPayload) {
|
|
26
58
|
this.close(1009, 'Payload too large');
|
|
27
59
|
return;
|
|
28
60
|
}
|
|
29
61
|
this.parseFrames();
|
|
30
|
-
}
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
62
|
+
};
|
|
63
|
+
this.onSocketClose = () => {
|
|
64
|
+
this.cleanup();
|
|
33
65
|
this.emit('close');
|
|
34
|
-
}
|
|
35
|
-
this.
|
|
66
|
+
};
|
|
67
|
+
this.onSocketError = (err) => {
|
|
68
|
+
this.cleanup();
|
|
36
69
|
this.emit('error', err);
|
|
37
|
-
}
|
|
70
|
+
};
|
|
71
|
+
this.onSocketEnd = () => {
|
|
72
|
+
this.cleanup();
|
|
73
|
+
this.emit('close');
|
|
74
|
+
};
|
|
75
|
+
this.socket.on('data', this.onSocketData);
|
|
76
|
+
this.socket.on('close', this.onSocketClose);
|
|
77
|
+
this.socket.on('error', this.onSocketError);
|
|
78
|
+
this.socket.on('end', this.onSocketEnd);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Cleans up internal buffers and removes all socket listeners to prevent memory leaks.
|
|
82
|
+
*/
|
|
83
|
+
cleanup() {
|
|
84
|
+
if (this.isClosed)
|
|
85
|
+
return;
|
|
86
|
+
this.isClosed = true;
|
|
87
|
+
this.buffer = Buffer.alloc(0);
|
|
88
|
+
this.currentFragments = [];
|
|
89
|
+
this.currentOpcode = null;
|
|
90
|
+
if (this.socket) {
|
|
91
|
+
this.socket.removeListener('data', this.onSocketData);
|
|
92
|
+
this.socket.removeListener('close', this.onSocketClose);
|
|
93
|
+
this.socket.removeListener('error', this.onSocketError);
|
|
94
|
+
this.socket.removeListener('end', this.onSocketEnd);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Destroys the connection immediately and frees all resources.
|
|
99
|
+
*/
|
|
100
|
+
destroy(error) {
|
|
101
|
+
this.cleanup();
|
|
102
|
+
if (this.socket && !this.socket.destroyed) {
|
|
103
|
+
this.socket.destroy(error);
|
|
104
|
+
}
|
|
105
|
+
if (error) {
|
|
106
|
+
this.emit('error', error);
|
|
107
|
+
}
|
|
38
108
|
}
|
|
39
109
|
/**
|
|
40
110
|
* Sends a UTF-8 text message to the WebSocket client.
|
|
@@ -50,13 +120,13 @@ export class AeroWebSocket extends EventEmitter {
|
|
|
50
120
|
header = Buffer.from([0x81, length]);
|
|
51
121
|
}
|
|
52
122
|
else if (length <= 65535) {
|
|
53
|
-
header = Buffer.
|
|
123
|
+
header = Buffer.allocUnsafe(4);
|
|
54
124
|
header[0] = 0x81;
|
|
55
125
|
header[1] = 126;
|
|
56
126
|
header.writeUInt16BE(length, 2);
|
|
57
127
|
}
|
|
58
128
|
else {
|
|
59
|
-
header = Buffer.
|
|
129
|
+
header = Buffer.allocUnsafe(10);
|
|
60
130
|
header[0] = 0x81;
|
|
61
131
|
header[1] = 127;
|
|
62
132
|
header.writeBigUInt64BE(BigInt(length), 2);
|
|
@@ -69,22 +139,31 @@ export class AeroWebSocket extends EventEmitter {
|
|
|
69
139
|
close(code = 1000, reason = '') {
|
|
70
140
|
if (this.isClosed)
|
|
71
141
|
return;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
142
|
+
try {
|
|
143
|
+
const reasonBuf = Buffer.from(reason, 'utf-8');
|
|
144
|
+
const payload = Buffer.allocUnsafe(2 + reasonBuf.length);
|
|
145
|
+
payload.writeUInt16BE(code, 0);
|
|
146
|
+
reasonBuf.copy(payload, 2);
|
|
147
|
+
const header = Buffer.from([0x88, payload.length]);
|
|
148
|
+
this.socket.write(Buffer.concat([header, payload]));
|
|
149
|
+
this.socket.end();
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
// Ignore write errors on closing stream
|
|
153
|
+
}
|
|
154
|
+
finally {
|
|
155
|
+
this.cleanup();
|
|
156
|
+
}
|
|
80
157
|
}
|
|
81
158
|
/**
|
|
82
159
|
* Internal RFC 6455 frame parser for incoming client messages (which must be masked).
|
|
160
|
+
* Optimized with single buffer slicing and 32-bit word unmasking.
|
|
83
161
|
*/
|
|
84
162
|
parseFrames() {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const
|
|
163
|
+
let offset = 0;
|
|
164
|
+
while (this.buffer.length - offset >= 2) {
|
|
165
|
+
const firstByte = this.buffer[offset];
|
|
166
|
+
const secondByte = this.buffer[offset + 1];
|
|
88
167
|
const isFin = (firstByte & 0x80) === 0x80;
|
|
89
168
|
const opcode = firstByte & 0x0f;
|
|
90
169
|
const isMasked = (secondByte & 0x80) === 0x80;
|
|
@@ -95,43 +174,39 @@ export class AeroWebSocket extends EventEmitter {
|
|
|
95
174
|
return;
|
|
96
175
|
}
|
|
97
176
|
let payloadLength = secondByte & 0x7f;
|
|
98
|
-
let
|
|
177
|
+
let headerSize = 2;
|
|
99
178
|
if (payloadLength === 126) {
|
|
100
|
-
if (this.buffer.length < 4)
|
|
101
|
-
|
|
102
|
-
payloadLength = this.buffer.readUInt16BE(2);
|
|
103
|
-
|
|
179
|
+
if (this.buffer.length - offset < 4)
|
|
180
|
+
break;
|
|
181
|
+
payloadLength = this.buffer.readUInt16BE(offset + 2);
|
|
182
|
+
headerSize = 4;
|
|
104
183
|
}
|
|
105
184
|
else if (payloadLength === 127) {
|
|
106
|
-
if (this.buffer.length < 10)
|
|
107
|
-
|
|
108
|
-
payloadLength = Number(this.buffer.readBigUInt64BE(2));
|
|
109
|
-
|
|
185
|
+
if (this.buffer.length - offset < 10)
|
|
186
|
+
break;
|
|
187
|
+
payloadLength = Number(this.buffer.readBigUInt64BE(offset + 2));
|
|
188
|
+
headerSize = 10;
|
|
110
189
|
}
|
|
111
190
|
if (payloadLength > this.maxPayload) {
|
|
112
191
|
this.close(1009, 'Message payload exceeds limit');
|
|
113
192
|
return;
|
|
114
193
|
}
|
|
115
194
|
const maskLength = 4;
|
|
116
|
-
const totalLength =
|
|
117
|
-
if (this.buffer.length < totalLength) {
|
|
195
|
+
const totalLength = headerSize + maskLength + payloadLength;
|
|
196
|
+
if (this.buffer.length - offset < totalLength) {
|
|
118
197
|
// Incomplete frame, wait for more data
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
const maskKey = this.buffer.subarray(offset, offset + 4);
|
|
122
|
-
offset += 4;
|
|
123
|
-
const payloadData = this.buffer.subarray(offset, offset + payloadLength);
|
|
124
|
-
const unmaskedPayload = Buffer.alloc(payloadLength);
|
|
125
|
-
for (let i = 0; i < payloadLength; i++) {
|
|
126
|
-
unmaskedPayload[i] = payloadData[i] ^ maskKey[i % 4];
|
|
198
|
+
break;
|
|
127
199
|
}
|
|
128
|
-
|
|
200
|
+
const maskKey = this.buffer.subarray(offset + headerSize, offset + headerSize + 4);
|
|
201
|
+
const payloadData = this.buffer.subarray(offset + headerSize + 4, offset + totalLength);
|
|
202
|
+
const unmaskedPayload = fastUnmask(payloadData, maskKey);
|
|
203
|
+
offset += totalLength;
|
|
129
204
|
// Handle Control Frames (Ping: 0x9, Pong: 0xA, Close: 0x8)
|
|
130
205
|
if (opcode === 0x8) {
|
|
131
206
|
// Close frame
|
|
132
207
|
this.close();
|
|
133
208
|
this.emit('close');
|
|
134
|
-
|
|
209
|
+
break;
|
|
135
210
|
}
|
|
136
211
|
else if (opcode === 0x9) {
|
|
137
212
|
// Ping -> respond with Pong
|
|
@@ -177,6 +252,14 @@ export class AeroWebSocket extends EventEmitter {
|
|
|
177
252
|
}
|
|
178
253
|
}
|
|
179
254
|
}
|
|
255
|
+
if (offset > 0) {
|
|
256
|
+
if (offset >= this.buffer.length) {
|
|
257
|
+
this.buffer = Buffer.alloc(0);
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
this.buffer = this.buffer.subarray(offset);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
180
263
|
}
|
|
181
264
|
}
|
|
182
265
|
/**
|
package/dist/ws/websocket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/ws/websocket.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,OAAO,GAAG,sCAAsC,CAAC;AAUvD;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,YAAY;IACtC,MAAM,CAAS;IACf,QAAQ,GAAG,KAAK,CAAC;IACR,UAAU,CAAS;IAC3B,MAAM,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,gBAAgB,GAAa,EAAE,CAAC;IAChC,aAAa,GAAkB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/ws/websocket.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shohaghinfo/aerojs",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "A minimal, blazing-fast, zero-dependency full-stack web framework for Node.js — supporting React, Vue 3, Inertia.js, and SSR monoliths.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|