@morojs/moro 1.8.12 → 1.8.13
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 +4 -2
- package/dist/core/cluster/thread-cluster.d.ts +25 -0
- package/dist/core/cluster/thread-cluster.js +95 -3
- package/dist/core/cluster/thread-cluster.js.map +1 -1
- package/dist/core/config/config-validator.js +15 -0
- package/dist/core/config/config-validator.js.map +1 -1
- package/dist/core/config/index.js +19 -2
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/framework.d.ts +26 -0
- package/dist/core/framework.js +195 -6
- package/dist/core/framework.js.map +1 -1
- package/dist/core/http/http-server.d.ts +17 -0
- package/dist/core/http/http-server.js +21 -1
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/http2-server.d.ts +13 -0
- package/dist/core/http/http2-server.js +11 -0
- package/dist/core/http/http2-server.js.map +1 -1
- package/dist/core/http/moro-engine-server.d.ts +28 -0
- package/dist/core/http/moro-engine-server.js +115 -11
- package/dist/core/http/moro-engine-server.js.map +1 -1
- package/dist/core/http/utils/body-type.d.ts +12 -0
- package/dist/core/http/utils/body-type.js +70 -0
- package/dist/core/http/utils/body-type.js.map +1 -0
- package/dist/core/http/utils/ssl-config.d.ts +11 -0
- package/dist/core/http/utils/ssl-config.js +3 -0
- package/dist/core/http/utils/ssl-config.js.map +1 -1
- package/dist/core/http/utils/uws-worker-clustering.js +5 -4
- package/dist/core/http/utils/uws-worker-clustering.js.map +1 -1
- package/dist/core/http/uws-http-server.d.ts +3 -0
- package/dist/core/http/uws-http-server.js +22 -1
- package/dist/core/http/uws-http-server.js.map +1 -1
- package/dist/core/middleware/built-in/body-parsers/index.d.ts +18 -0
- package/dist/core/middleware/built-in/body-parsers/index.js +41 -0
- package/dist/core/middleware/built-in/body-parsers/index.js.map +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/redis.d.ts +32 -8
- package/dist/core/middleware/built-in/cache/adapters/cache/redis.js +117 -25
- package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -1
- package/dist/core/middleware/built-in/compression/core.js +5 -0
- package/dist/core/middleware/built-in/compression/core.js.map +1 -1
- package/dist/core/middleware/built-in/session/core.d.ts +1 -0
- package/dist/core/middleware/built-in/session/core.js.map +1 -1
- package/dist/core/middleware/built-in/static/core.d.ts +18 -0
- package/dist/core/middleware/built-in/static/core.js +128 -7
- package/dist/core/middleware/built-in/static/core.js.map +1 -1
- package/dist/core/networking/adapters/engine-adapter.d.ts +2 -2
- package/dist/core/networking/adapters/engine-adapter.js +40 -1
- package/dist/core/networking/adapters/engine-adapter.js.map +1 -1
- package/dist/core/networking/adapters/socketio-adapter.d.ts +2 -2
- package/dist/core/networking/adapters/socketio-adapter.js +10 -1
- package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
- package/dist/core/networking/adapters/uws-adapter.d.ts +2 -2
- package/dist/core/networking/adapters/uws-adapter.js +54 -3
- package/dist/core/networking/adapters/uws-adapter.js.map +1 -1
- package/dist/core/networking/adapters/ws-adapter.d.ts +9 -2
- package/dist/core/networking/adapters/ws-adapter.js +97 -12
- package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
- package/dist/core/networking/websocket-adapter.d.ts +19 -1
- package/dist/core/networking/websocket-adapter.js.map +1 -1
- package/dist/core/routing/index.d.ts +12 -8
- package/dist/core/routing/index.js +7 -2
- package/dist/core/routing/index.js.map +1 -1
- package/dist/core/routing/unified-router.d.ts +46 -8
- package/dist/core/routing/unified-router.js +108 -32
- package/dist/core/routing/unified-router.js.map +1 -1
- package/dist/core/utilities/package-utils.d.ts +7 -0
- package/dist/core/utilities/package-utils.js +2 -0
- package/dist/core/utilities/package-utils.js.map +1 -1
- package/dist/core/workers/worker-manager.js +2 -2
- package/dist/core/workers/worker-manager.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/moro.d.ts +12 -1
- package/dist/moro.js +63 -7
- package/dist/moro.js.map +1 -1
- package/dist/types/cache.d.ts +2 -0
- package/dist/types/cache.js.map +1 -1
- package/dist/types/config.d.ts +9 -0
- package/dist/types/config.js.map +1 -1
- package/dist/types/http.d.ts +6 -0
- package/dist/types/http.js.map +1 -1
- package/dist/types/session.d.ts +1 -0
- package/dist/types/session.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bodyIsText } from './utils/body-type.js';
|
|
1
2
|
import { createRequire } from 'module';
|
|
2
3
|
import { promisify } from 'util';
|
|
3
4
|
import { randomUUID } from 'crypto';
|
|
@@ -115,6 +116,10 @@ export class MoroIncomingMessage extends http.IncomingMessage {
|
|
|
115
116
|
body = null;
|
|
116
117
|
path = '';
|
|
117
118
|
_queryString = null;
|
|
119
|
+
/** The request body exactly as received, before any parsing; null when empty. */
|
|
120
|
+
get rawBody() {
|
|
121
|
+
return this._rawBody ?? null;
|
|
122
|
+
}
|
|
118
123
|
// Single slot for every lazily-computed/assigned helper value (query,
|
|
119
124
|
// cookies, requestId, hostname, ...). Allocated on first access - a plain
|
|
120
125
|
// JSON GET that never touches the helpers never allocates it, and the
|
|
@@ -1562,6 +1567,8 @@ export class MoroHttpServer {
|
|
|
1562
1567
|
const body = chunks.length === 1 && firstChunk !== undefined
|
|
1563
1568
|
? firstChunk
|
|
1564
1569
|
: Buffer.concat(chunks, totalLength);
|
|
1570
|
+
if (totalLength > 0)
|
|
1571
|
+
req._rawBody = body;
|
|
1565
1572
|
if (contentType.includes('application/json')) {
|
|
1566
1573
|
// Empty JSON body -> null (parity with the engine/uWS servers, and
|
|
1567
1574
|
// avoids JSON.parse('') throwing and 500ing an empty POST).
|
|
@@ -1574,7 +1581,9 @@ export class MoroHttpServer {
|
|
|
1574
1581
|
resolve(this.parseMultipart(body, contentType));
|
|
1575
1582
|
}
|
|
1576
1583
|
else {
|
|
1577
|
-
|
|
1584
|
+
// Text decodes to a string; binary (octet-stream, images, protobuf,
|
|
1585
|
+
// ...) stays a Buffer - decoding it would corrupt it irreversibly.
|
|
1586
|
+
resolve(bodyIsText(contentType) ? body.toString() : body);
|
|
1578
1587
|
}
|
|
1579
1588
|
}
|
|
1580
1589
|
catch (error) {
|
|
@@ -1788,6 +1797,17 @@ export class MoroHttpServer {
|
|
|
1788
1797
|
forceCleanup() {
|
|
1789
1798
|
this.forceCleanupPools();
|
|
1790
1799
|
}
|
|
1800
|
+
/**
|
|
1801
|
+
* Replace the TLS certificate/key for new handshakes (node's
|
|
1802
|
+
* tls.Server#setSecureContext). Throws when the server is plain HTTP.
|
|
1803
|
+
*/
|
|
1804
|
+
updateSsl(ssl) {
|
|
1805
|
+
const server = this.server;
|
|
1806
|
+
if (typeof server.setSecureContext !== 'function') {
|
|
1807
|
+
throw new Error('updateSsl: this server was not started with TLS (server.ssl)');
|
|
1808
|
+
}
|
|
1809
|
+
server.setSecureContext(ssl);
|
|
1810
|
+
}
|
|
1791
1811
|
getServer() {
|
|
1792
1812
|
return this.server;
|
|
1793
1813
|
}
|