@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.
@@ -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
+ }
@@ -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
@@ -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';
@@ -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.8",
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.8",
43
- "@lwrjs/asset-registry": "0.11.0-alpha.8",
44
- "@lwrjs/asset-transformer": "0.11.0-alpha.8",
45
- "@lwrjs/base-view-provider": "0.11.0-alpha.8",
46
- "@lwrjs/base-view-transformer": "0.11.0-alpha.8",
47
- "@lwrjs/client-modules": "0.11.0-alpha.8",
48
- "@lwrjs/config": "0.11.0-alpha.8",
49
- "@lwrjs/diagnostics": "0.11.0-alpha.8",
50
- "@lwrjs/fs-asset-provider": "0.11.0-alpha.8",
51
- "@lwrjs/html-view-provider": "0.11.0-alpha.8",
52
- "@lwrjs/instrumentation": "0.11.0-alpha.8",
53
- "@lwrjs/loader": "0.11.0-alpha.8",
54
- "@lwrjs/lwc-module-provider": "0.11.0-alpha.8",
55
- "@lwrjs/markdown-view-provider": "0.11.0-alpha.8",
56
- "@lwrjs/module-bundler": "0.11.0-alpha.8",
57
- "@lwrjs/module-registry": "0.11.0-alpha.8",
58
- "@lwrjs/npm-module-provider": "0.11.0-alpha.8",
59
- "@lwrjs/nunjucks-view-provider": "0.11.0-alpha.8",
60
- "@lwrjs/o11y": "0.11.0-alpha.8",
61
- "@lwrjs/resource-registry": "0.11.0-alpha.8",
62
- "@lwrjs/router": "0.11.0-alpha.8",
63
- "@lwrjs/server": "0.11.0-alpha.8",
64
- "@lwrjs/shared-utils": "0.11.0-alpha.8",
65
- "@lwrjs/static": "0.11.0-alpha.8",
66
- "@lwrjs/view-registry": "0.11.0-alpha.8",
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.8",
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": "bba3cfa996e84ee702f287e7e7b6361b807434db"
88
+ "gitHead": "bc50e3f828be56ebdd2f8206cafe8158ab722470"
89
89
  }