@lwrjs/core 0.12.0-alpha.17 → 0.12.0-alpha.19
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.
|
@@ -27,16 +27,20 @@ __export(exports, {
|
|
|
27
27
|
requestProcessorMiddleware: () => requestProcessorMiddleware
|
|
28
28
|
});
|
|
29
29
|
var import_diagnostics = __toModule(require("@lwrjs/diagnostics"));
|
|
30
|
+
var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
|
|
30
31
|
var MRT_REQUEST_CLASS = "X-Mobify-Request-Class";
|
|
31
|
-
var FORWARDED = "forwarded";
|
|
32
32
|
var MRT_REQUEST_CLASS_KEY = MRT_REQUEST_CLASS.toLowerCase();
|
|
33
33
|
function requestProcessorMiddleware(app, context) {
|
|
34
34
|
const {basePath} = context.runtimeEnvironment;
|
|
35
35
|
app.use(async (req, res, next) => {
|
|
36
36
|
let requestClass;
|
|
37
|
-
let
|
|
37
|
+
let requestDepth;
|
|
38
38
|
if (req.headers) {
|
|
39
39
|
if (import_diagnostics.logger.isDebugEnabled()) {
|
|
40
|
+
import_diagnostics.logger.debug({
|
|
41
|
+
label: `request-processor-middleware`,
|
|
42
|
+
message: `Request: ${req.originalUrl}`
|
|
43
|
+
});
|
|
40
44
|
for (const headerName in req.headers) {
|
|
41
45
|
import_diagnostics.logger.debug({
|
|
42
46
|
label: `request-processor-middleware`,
|
|
@@ -45,11 +49,14 @@ function requestProcessorMiddleware(app, context) {
|
|
|
45
49
|
}
|
|
46
50
|
}
|
|
47
51
|
requestClass = req.headers[MRT_REQUEST_CLASS_KEY];
|
|
48
|
-
|
|
52
|
+
requestDepth = (0, import_shared_utils.parseRequestDepthHeader)(req.headers);
|
|
49
53
|
}
|
|
50
|
-
if (
|
|
51
|
-
|
|
52
|
-
|
|
54
|
+
if (requestDepth && requestDepth > 1) {
|
|
55
|
+
import_diagnostics.logger.warn({
|
|
56
|
+
label: "request-processor-middleware",
|
|
57
|
+
message: "Lambda SSR request cycle detected"
|
|
58
|
+
});
|
|
59
|
+
return res.status(400).send("Request depth limit reached");
|
|
53
60
|
}
|
|
54
61
|
if (req.headers && typeof requestClass === "string") {
|
|
55
62
|
const parsedRequestClass = parseRequestClass(requestClass);
|
|
@@ -7,17 +7,21 @@
|
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
9
|
import { logger } from '@lwrjs/diagnostics';
|
|
10
|
+
import { parseRequestDepthHeader } from '@lwrjs/shared-utils';
|
|
10
11
|
const MRT_REQUEST_CLASS = 'X-Mobify-Request-Class';
|
|
11
|
-
const FORWARDED = 'forwarded';
|
|
12
12
|
const MRT_REQUEST_CLASS_KEY = MRT_REQUEST_CLASS.toLowerCase();
|
|
13
13
|
export function requestProcessorMiddleware(app, context) {
|
|
14
14
|
const { basePath } = context.runtimeEnvironment;
|
|
15
15
|
app.use(async (req, res, next) => {
|
|
16
16
|
let requestClass;
|
|
17
|
-
let
|
|
17
|
+
let requestDepth;
|
|
18
18
|
if (req.headers) {
|
|
19
19
|
// If debug print log all the headers
|
|
20
20
|
if (logger.isDebugEnabled()) {
|
|
21
|
+
logger.debug({
|
|
22
|
+
label: `request-processor-middleware`,
|
|
23
|
+
message: `Request: ${req.originalUrl}`,
|
|
24
|
+
});
|
|
21
25
|
// Loop through and print each header
|
|
22
26
|
for (const headerName in req.headers) {
|
|
23
27
|
logger.debug({
|
|
@@ -27,14 +31,16 @@ export function requestProcessorMiddleware(app, context) {
|
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
requestClass = req.headers[MRT_REQUEST_CLASS_KEY];
|
|
30
|
-
|
|
34
|
+
requestDepth = parseRequestDepthHeader(req.headers);
|
|
31
35
|
}
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
// TODO Clean up once we have a long term solution
|
|
37
|
+
if (requestDepth && requestDepth > 1) {
|
|
38
|
+
logger.warn({
|
|
39
|
+
label: 'request-processor-middleware',
|
|
40
|
+
message: 'Lambda SSR request cycle detected',
|
|
41
|
+
});
|
|
42
|
+
// Return 400 Too Many Requests status
|
|
43
|
+
return res.status(400).send('Request depth limit reached');
|
|
38
44
|
}
|
|
39
45
|
if (req.headers && typeof requestClass === 'string') {
|
|
40
46
|
const parsedRequestClass = parseRequestClass(requestClass);
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "0.12.0-alpha.
|
|
7
|
+
"version": "0.12.0-alpha.19",
|
|
8
8
|
"homepage": "https://developer.salesforce.com/docs/platform/lwr/overview",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
@@ -43,34 +43,34 @@
|
|
|
43
43
|
"build": "tsc -b"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@lwrjs/app-service": "0.12.0-alpha.
|
|
47
|
-
"@lwrjs/asset-registry": "0.12.0-alpha.
|
|
48
|
-
"@lwrjs/asset-transformer": "0.12.0-alpha.
|
|
49
|
-
"@lwrjs/base-view-provider": "0.12.0-alpha.
|
|
50
|
-
"@lwrjs/base-view-transformer": "0.12.0-alpha.
|
|
51
|
-
"@lwrjs/client-modules": "0.12.0-alpha.
|
|
52
|
-
"@lwrjs/config": "0.12.0-alpha.
|
|
53
|
-
"@lwrjs/diagnostics": "0.12.0-alpha.
|
|
54
|
-
"@lwrjs/esbuild": "0.12.0-alpha.
|
|
55
|
-
"@lwrjs/fs-asset-provider": "0.12.0-alpha.
|
|
56
|
-
"@lwrjs/fs-watch": "0.12.0-alpha.
|
|
57
|
-
"@lwrjs/html-view-provider": "0.12.0-alpha.
|
|
58
|
-
"@lwrjs/instrumentation": "0.12.0-alpha.
|
|
59
|
-
"@lwrjs/loader": "0.12.0-alpha.
|
|
60
|
-
"@lwrjs/lwc-module-provider": "0.12.0-alpha.
|
|
61
|
-
"@lwrjs/lwc-ssr": "0.12.0-alpha.
|
|
62
|
-
"@lwrjs/markdown-view-provider": "0.12.0-alpha.
|
|
63
|
-
"@lwrjs/module-bundler": "0.12.0-alpha.
|
|
64
|
-
"@lwrjs/module-registry": "0.12.0-alpha.
|
|
65
|
-
"@lwrjs/npm-module-provider": "0.12.0-alpha.
|
|
66
|
-
"@lwrjs/nunjucks-view-provider": "0.12.0-alpha.
|
|
67
|
-
"@lwrjs/o11y": "0.12.0-alpha.
|
|
68
|
-
"@lwrjs/resource-registry": "0.12.0-alpha.
|
|
69
|
-
"@lwrjs/router": "0.12.0-alpha.
|
|
70
|
-
"@lwrjs/server": "0.12.0-alpha.
|
|
71
|
-
"@lwrjs/shared-utils": "0.12.0-alpha.
|
|
72
|
-
"@lwrjs/static": "0.12.0-alpha.
|
|
73
|
-
"@lwrjs/view-registry": "0.12.0-alpha.
|
|
46
|
+
"@lwrjs/app-service": "0.12.0-alpha.19",
|
|
47
|
+
"@lwrjs/asset-registry": "0.12.0-alpha.19",
|
|
48
|
+
"@lwrjs/asset-transformer": "0.12.0-alpha.19",
|
|
49
|
+
"@lwrjs/base-view-provider": "0.12.0-alpha.19",
|
|
50
|
+
"@lwrjs/base-view-transformer": "0.12.0-alpha.19",
|
|
51
|
+
"@lwrjs/client-modules": "0.12.0-alpha.19",
|
|
52
|
+
"@lwrjs/config": "0.12.0-alpha.19",
|
|
53
|
+
"@lwrjs/diagnostics": "0.12.0-alpha.19",
|
|
54
|
+
"@lwrjs/esbuild": "0.12.0-alpha.19",
|
|
55
|
+
"@lwrjs/fs-asset-provider": "0.12.0-alpha.19",
|
|
56
|
+
"@lwrjs/fs-watch": "0.12.0-alpha.19",
|
|
57
|
+
"@lwrjs/html-view-provider": "0.12.0-alpha.19",
|
|
58
|
+
"@lwrjs/instrumentation": "0.12.0-alpha.19",
|
|
59
|
+
"@lwrjs/loader": "0.12.0-alpha.19",
|
|
60
|
+
"@lwrjs/lwc-module-provider": "0.12.0-alpha.19",
|
|
61
|
+
"@lwrjs/lwc-ssr": "0.12.0-alpha.19",
|
|
62
|
+
"@lwrjs/markdown-view-provider": "0.12.0-alpha.19",
|
|
63
|
+
"@lwrjs/module-bundler": "0.12.0-alpha.19",
|
|
64
|
+
"@lwrjs/module-registry": "0.12.0-alpha.19",
|
|
65
|
+
"@lwrjs/npm-module-provider": "0.12.0-alpha.19",
|
|
66
|
+
"@lwrjs/nunjucks-view-provider": "0.12.0-alpha.19",
|
|
67
|
+
"@lwrjs/o11y": "0.12.0-alpha.19",
|
|
68
|
+
"@lwrjs/resource-registry": "0.12.0-alpha.19",
|
|
69
|
+
"@lwrjs/router": "0.12.0-alpha.19",
|
|
70
|
+
"@lwrjs/server": "0.12.0-alpha.19",
|
|
71
|
+
"@lwrjs/shared-utils": "0.12.0-alpha.19",
|
|
72
|
+
"@lwrjs/static": "0.12.0-alpha.19",
|
|
73
|
+
"@lwrjs/view-registry": "0.12.0-alpha.19",
|
|
74
74
|
"chokidar": "^3.6.0",
|
|
75
75
|
"esbuild": "^0.9.7",
|
|
76
76
|
"fs-extra": "^11.1.1",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"ws": "^8.16.0"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
|
-
"@lwrjs/types": "0.12.0-alpha.
|
|
83
|
+
"@lwrjs/types": "0.12.0-alpha.19",
|
|
84
84
|
"@types/ws": "^8.5.10",
|
|
85
85
|
"mock-fs": "^5.2.0"
|
|
86
86
|
},
|
|
@@ -93,5 +93,5 @@
|
|
|
93
93
|
"volta": {
|
|
94
94
|
"extends": "../../../package.json"
|
|
95
95
|
},
|
|
96
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "5e1cd0d97d8e90cbd8b43868e2d7b33df6f8fa82"
|
|
97
97
|
}
|