@lwrjs/core 0.11.0-alpha.8 → 0.11.0-alpha.9
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/build/cjs/index.cjs +2 -0
- package/build/cjs/middleware/request-processor-middleware.cjs +64 -0
- package/build/cjs/middleware.cjs +2 -0
- package/build/es/index.js +3 -0
- package/build/es/middleware/request-processor-middleware.d.ts +3 -0
- package/build/es/middleware/request-processor-middleware.js +53 -0
- package/build/es/middleware.d.ts +1 -0
- package/build/es/middleware.js +1 -0
- package/package.json +28 -28
package/build/cjs/index.cjs
CHANGED
|
@@ -37,6 +37,7 @@ var import_static_generation = __toModule(require("./tools/static-generation.cjs
|
|
|
37
37
|
var import_server_warmup = __toModule(require("./tools/server-warmup.cjs"));
|
|
38
38
|
var import_server2 = __toModule(require("./context/server.cjs"));
|
|
39
39
|
var import_provider = __toModule(require("./context/provider.cjs"));
|
|
40
|
+
var import_request_processor_middleware = __toModule(require("./middleware/request-processor-middleware.cjs"));
|
|
40
41
|
var import_locale_middleware = __toModule(require("./middleware/locale-middleware.cjs"));
|
|
41
42
|
var import_module_middleware = __toModule(require("./middleware/module-middleware.cjs"));
|
|
42
43
|
var import_bundle_middleware = __toModule(require("./middleware/bundle-middleware.cjs"));
|
|
@@ -47,6 +48,7 @@ var import_resource_middleware = __toModule(require("./middleware/resource-middl
|
|
|
47
48
|
var import_hmr_middleware = __toModule(require("./middleware/hmr-middleware.cjs"));
|
|
48
49
|
var import_instrumentation = __toModule(require("@lwrjs/instrumentation"));
|
|
49
50
|
function initMiddleware(app, server, serverContext) {
|
|
51
|
+
(0, import_request_processor_middleware.requestProcessorMiddleware)(app, serverContext);
|
|
50
52
|
(0, import_locale_middleware.localeMiddleware)(app, serverContext);
|
|
51
53
|
(0, import_module_middleware.moduleMiddleware)(app, serverContext);
|
|
52
54
|
(0, import_bundle_middleware.bundleMiddleware)(app, serverContext);
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, {get: all[name], enumerable: true});
|
|
11
|
+
};
|
|
12
|
+
var __exportStar = (target, module2, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
16
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toModule = (module2) => {
|
|
21
|
+
return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// packages/@lwrjs/core/src/middleware/request-processor-middleware.ts
|
|
25
|
+
__markAsModule(exports);
|
|
26
|
+
__export(exports, {
|
|
27
|
+
requestProcessorMiddleware: () => requestProcessorMiddleware
|
|
28
|
+
});
|
|
29
|
+
var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
|
|
30
|
+
var MRT_REQUEST_CLASS = "X-Mobify-Request-Class";
|
|
31
|
+
var MRT_REQUEST_CLASS_KEY = MRT_REQUEST_CLASS.toLowerCase();
|
|
32
|
+
function requestProcessorMiddleware(app, context) {
|
|
33
|
+
const {basePath} = context.runtimeEnvironment;
|
|
34
|
+
app.use(async (req, _res, next) => {
|
|
35
|
+
let requestClass;
|
|
36
|
+
if (req.headers) {
|
|
37
|
+
if (import_shared_utils.logger.currentLevel === "debug" || import_shared_utils.logger.currentLevel == "verbose") {
|
|
38
|
+
for (const headerName in req.headers) {
|
|
39
|
+
import_shared_utils.logger.debug(`[request-processor-middleware] Header ${headerName}: ${req.headers[headerName]}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
requestClass = req.headers[MRT_REQUEST_CLASS_KEY];
|
|
43
|
+
}
|
|
44
|
+
if (req.headers && typeof requestClass === "string") {
|
|
45
|
+
const parsedRequestClass = parseRequestClass(requestClass);
|
|
46
|
+
import_shared_utils.logger.debug(`[request-processor-middleware] parsedRequestClass?.basePath: ${parsedRequestClass?.basePath}`);
|
|
47
|
+
const pathValue = parsedRequestClass?.basePath || basePath || "";
|
|
48
|
+
req.basePath = pathValue === "" || pathValue.indexOf("/") === 0 ? pathValue : `/${pathValue}`;
|
|
49
|
+
} else {
|
|
50
|
+
import_shared_utils.logger.debug(`[request-processor-middleware] ${MRT_REQUEST_CLASS_KEY} ignored ${req.headers ? req.headers[MRT_REQUEST_CLASS_KEY] : "no-headers"}`);
|
|
51
|
+
req.basePath = basePath;
|
|
52
|
+
}
|
|
53
|
+
await next();
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function parseRequestClass(requestClass) {
|
|
57
|
+
const keyValuePairs = requestClass.split(";");
|
|
58
|
+
const parsed = {};
|
|
59
|
+
for (const pair of keyValuePairs) {
|
|
60
|
+
const [key, value] = pair.split("=");
|
|
61
|
+
parsed[key] = value;
|
|
62
|
+
}
|
|
63
|
+
return parsed;
|
|
64
|
+
}
|
package/build/cjs/middleware.cjs
CHANGED
|
@@ -30,9 +30,11 @@ __export(exports, {
|
|
|
30
30
|
localeMiddleware: () => import_locale_middleware.localeMiddleware,
|
|
31
31
|
mappingMiddleware: () => import_mapping_middleware.mappingMiddleware,
|
|
32
32
|
moduleMiddleware: () => import_module_middleware.moduleMiddleware,
|
|
33
|
+
requestProcessorMiddleware: () => import_request_processor_middleware.requestProcessorMiddleware,
|
|
33
34
|
resourceMiddleware: () => import_resource_middleware.resourceMiddleware,
|
|
34
35
|
viewMiddleware: () => import_view_middleware.viewMiddleware
|
|
35
36
|
});
|
|
37
|
+
var import_request_processor_middleware = __toModule(require("./middleware/request-processor-middleware.cjs"));
|
|
36
38
|
var import_locale_middleware = __toModule(require("./middleware/locale-middleware.cjs"));
|
|
37
39
|
var import_hmr_middleware = __toModule(require("./middleware/hmr-middleware.cjs"));
|
|
38
40
|
var import_module_middleware = __toModule(require("./middleware/module-middleware.cjs"));
|
package/build/es/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import SiteGenerator from './tools/static-generation.js';
|
|
|
7
7
|
import { warmupServer } from './tools/server-warmup.js';
|
|
8
8
|
import { createServerContext } from './context/server.js';
|
|
9
9
|
import { createProviderContext } from './context/provider.js';
|
|
10
|
+
import { requestProcessorMiddleware } from './middleware/request-processor-middleware.js';
|
|
10
11
|
import { localeMiddleware } from './middleware/locale-middleware.js';
|
|
11
12
|
import { moduleMiddleware } from './middleware/module-middleware.js';
|
|
12
13
|
import { bundleMiddleware } from './middleware/bundle-middleware.js';
|
|
@@ -17,6 +18,8 @@ import { resourceMiddleware } from './middleware/resource-middleware.js';
|
|
|
17
18
|
import { hmrMiddleware } from './middleware/hmr-middleware.js';
|
|
18
19
|
import { getTracer, CoreSpan } from '@lwrjs/instrumentation';
|
|
19
20
|
function initMiddleware(app, server, serverContext) {
|
|
21
|
+
// TODO if we knew the target here we could make this middleware optional to target=mrt
|
|
22
|
+
requestProcessorMiddleware(app, serverContext);
|
|
20
23
|
localeMiddleware(app, serverContext);
|
|
21
24
|
moduleMiddleware(app, serverContext);
|
|
22
25
|
bundleMiddleware(app, serverContext);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ServerContext, InternalAppServer, ServerTypes } from '@lwrjs/types';
|
|
2
|
+
export declare function requestProcessorMiddleware<T extends ServerTypes>(app: InternalAppServer<T>, context: ServerContext): void;
|
|
3
|
+
//# sourceMappingURL=request-processor-middleware.d.ts.map
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse passed to us via the X-Mobify-Request-Class.
|
|
3
|
+
*
|
|
4
|
+
* basePath: The dynamic base path
|
|
5
|
+
* '' or undefined -> LWR basePath ''
|
|
6
|
+
* token or /token -> LWR basePath '/token'
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
import { logger } from '@lwrjs/shared-utils';
|
|
10
|
+
const MRT_REQUEST_CLASS = 'X-Mobify-Request-Class';
|
|
11
|
+
const MRT_REQUEST_CLASS_KEY = MRT_REQUEST_CLASS.toLowerCase();
|
|
12
|
+
export function requestProcessorMiddleware(app, context) {
|
|
13
|
+
const { basePath } = context.runtimeEnvironment;
|
|
14
|
+
app.use(async (req, _res, next) => {
|
|
15
|
+
let requestClass;
|
|
16
|
+
if (req.headers) {
|
|
17
|
+
// If debug print log all the headers
|
|
18
|
+
if (logger.currentLevel === 'debug' || logger.currentLevel == 'verbose') {
|
|
19
|
+
// Loop through and print each header
|
|
20
|
+
for (const headerName in req.headers) {
|
|
21
|
+
logger.debug(`[request-processor-middleware] Header ${headerName}: ${req.headers[headerName]}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
requestClass = req.headers[MRT_REQUEST_CLASS_KEY];
|
|
25
|
+
}
|
|
26
|
+
if (req.headers && typeof requestClass === 'string') {
|
|
27
|
+
const parsedRequestClass = parseRequestClass(requestClass);
|
|
28
|
+
logger.debug(`[request-processor-middleware] parsedRequestClass?.basePath: ${parsedRequestClass?.basePath}`);
|
|
29
|
+
const pathValue = parsedRequestClass?.basePath || basePath || '';
|
|
30
|
+
// If base path is '' or starts with / leave it alone
|
|
31
|
+
req.basePath = pathValue === '' || pathValue.indexOf('/') === 0 ? pathValue : `/${pathValue}`;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
logger.debug(`[request-processor-middleware] ${MRT_REQUEST_CLASS_KEY} ignored ${req.headers ? req.headers[MRT_REQUEST_CLASS_KEY] : 'no-headers'}`);
|
|
35
|
+
req.basePath = basePath;
|
|
36
|
+
}
|
|
37
|
+
// await is required when calling next to support koa
|
|
38
|
+
await next();
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function parseRequestClass(requestClass) {
|
|
42
|
+
// Split the Forwarded header into individual key-value pairs
|
|
43
|
+
const keyValuePairs = requestClass.split(';');
|
|
44
|
+
// Create an object to store the parsed values
|
|
45
|
+
const parsed = {};
|
|
46
|
+
// Iterate through the key-value pairs and populate the parsed object
|
|
47
|
+
for (const pair of keyValuePairs) {
|
|
48
|
+
const [key, value] = pair.split('=');
|
|
49
|
+
parsed[key] = value;
|
|
50
|
+
}
|
|
51
|
+
return parsed;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=request-processor-middleware.js.map
|
package/build/es/middleware.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { requestProcessorMiddleware } from './middleware/request-processor-middleware.js';
|
|
1
2
|
export { localeMiddleware } from './middleware/locale-middleware.js';
|
|
2
3
|
export { hmrMiddleware } from './middleware/hmr-middleware.js';
|
|
3
4
|
export { moduleMiddleware } from './middleware/module-middleware.js';
|
package/build/es/middleware.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// handler bundle size. For example, importing `@lwrjs/core` will pull in ALL `@lwrjs/server` dependencies
|
|
3
3
|
// which includes both `koa` and `express`. Importing `@lwrjs/core/middleware` will only pull in the
|
|
4
4
|
// middleware dependencies.
|
|
5
|
+
export { requestProcessorMiddleware } from './middleware/request-processor-middleware.js';
|
|
5
6
|
export { localeMiddleware } from './middleware/locale-middleware.js';
|
|
6
7
|
export { hmrMiddleware } from './middleware/hmr-middleware.js';
|
|
7
8
|
export { moduleMiddleware } from './middleware/module-middleware.js';
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "0.11.0-alpha.
|
|
7
|
+
"version": "0.11.0-alpha.9",
|
|
8
8
|
"homepage": "https://developer.salesforce.com/docs/platform/lwr/overview",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
@@ -39,31 +39,31 @@
|
|
|
39
39
|
"build": "tsc -b"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@lwrjs/app-service": "0.11.0-alpha.
|
|
43
|
-
"@lwrjs/asset-registry": "0.11.0-alpha.
|
|
44
|
-
"@lwrjs/asset-transformer": "0.11.0-alpha.
|
|
45
|
-
"@lwrjs/base-view-provider": "0.11.0-alpha.
|
|
46
|
-
"@lwrjs/base-view-transformer": "0.11.0-alpha.
|
|
47
|
-
"@lwrjs/client-modules": "0.11.0-alpha.
|
|
48
|
-
"@lwrjs/config": "0.11.0-alpha.
|
|
49
|
-
"@lwrjs/diagnostics": "0.11.0-alpha.
|
|
50
|
-
"@lwrjs/fs-asset-provider": "0.11.0-alpha.
|
|
51
|
-
"@lwrjs/html-view-provider": "0.11.0-alpha.
|
|
52
|
-
"@lwrjs/instrumentation": "0.11.0-alpha.
|
|
53
|
-
"@lwrjs/loader": "0.11.0-alpha.
|
|
54
|
-
"@lwrjs/lwc-module-provider": "0.11.0-alpha.
|
|
55
|
-
"@lwrjs/markdown-view-provider": "0.11.0-alpha.
|
|
56
|
-
"@lwrjs/module-bundler": "0.11.0-alpha.
|
|
57
|
-
"@lwrjs/module-registry": "0.11.0-alpha.
|
|
58
|
-
"@lwrjs/npm-module-provider": "0.11.0-alpha.
|
|
59
|
-
"@lwrjs/nunjucks-view-provider": "0.11.0-alpha.
|
|
60
|
-
"@lwrjs/o11y": "0.11.0-alpha.
|
|
61
|
-
"@lwrjs/resource-registry": "0.11.0-alpha.
|
|
62
|
-
"@lwrjs/router": "0.11.0-alpha.
|
|
63
|
-
"@lwrjs/server": "0.11.0-alpha.
|
|
64
|
-
"@lwrjs/shared-utils": "0.11.0-alpha.
|
|
65
|
-
"@lwrjs/static": "0.11.0-alpha.
|
|
66
|
-
"@lwrjs/view-registry": "0.11.0-alpha.
|
|
42
|
+
"@lwrjs/app-service": "0.11.0-alpha.9",
|
|
43
|
+
"@lwrjs/asset-registry": "0.11.0-alpha.9",
|
|
44
|
+
"@lwrjs/asset-transformer": "0.11.0-alpha.9",
|
|
45
|
+
"@lwrjs/base-view-provider": "0.11.0-alpha.9",
|
|
46
|
+
"@lwrjs/base-view-transformer": "0.11.0-alpha.9",
|
|
47
|
+
"@lwrjs/client-modules": "0.11.0-alpha.9",
|
|
48
|
+
"@lwrjs/config": "0.11.0-alpha.9",
|
|
49
|
+
"@lwrjs/diagnostics": "0.11.0-alpha.9",
|
|
50
|
+
"@lwrjs/fs-asset-provider": "0.11.0-alpha.9",
|
|
51
|
+
"@lwrjs/html-view-provider": "0.11.0-alpha.9",
|
|
52
|
+
"@lwrjs/instrumentation": "0.11.0-alpha.9",
|
|
53
|
+
"@lwrjs/loader": "0.11.0-alpha.9",
|
|
54
|
+
"@lwrjs/lwc-module-provider": "0.11.0-alpha.9",
|
|
55
|
+
"@lwrjs/markdown-view-provider": "0.11.0-alpha.9",
|
|
56
|
+
"@lwrjs/module-bundler": "0.11.0-alpha.9",
|
|
57
|
+
"@lwrjs/module-registry": "0.11.0-alpha.9",
|
|
58
|
+
"@lwrjs/npm-module-provider": "0.11.0-alpha.9",
|
|
59
|
+
"@lwrjs/nunjucks-view-provider": "0.11.0-alpha.9",
|
|
60
|
+
"@lwrjs/o11y": "0.11.0-alpha.9",
|
|
61
|
+
"@lwrjs/resource-registry": "0.11.0-alpha.9",
|
|
62
|
+
"@lwrjs/router": "0.11.0-alpha.9",
|
|
63
|
+
"@lwrjs/server": "0.11.0-alpha.9",
|
|
64
|
+
"@lwrjs/shared-utils": "0.11.0-alpha.9",
|
|
65
|
+
"@lwrjs/static": "0.11.0-alpha.9",
|
|
66
|
+
"@lwrjs/view-registry": "0.11.0-alpha.9",
|
|
67
67
|
"chokidar": "^3.5.3",
|
|
68
68
|
"esbuild": "^0.9.7",
|
|
69
69
|
"fs-extra": "^11.1.1",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"ws": "^8.8.1"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
|
-
"@lwrjs/types": "0.11.0-alpha.
|
|
76
|
+
"@lwrjs/types": "0.11.0-alpha.9",
|
|
77
77
|
"@types/ws": "^8.5.3"
|
|
78
78
|
},
|
|
79
79
|
"peerDependencies": {
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"volta": {
|
|
86
86
|
"extends": "../../../package.json"
|
|
87
87
|
},
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "bc50e3f828be56ebdd2f8206cafe8158ab722470"
|
|
89
89
|
}
|