@lwrjs/core 0.11.0-alpha.0 → 0.11.0-alpha.10

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.
Files changed (44) hide show
  1. package/build/cjs/context/provider.cjs +2 -0
  2. package/build/cjs/index.cjs +4 -3
  3. package/build/cjs/middleware/asset-middleware.cjs +2 -1
  4. package/build/cjs/middleware/bundle-middleware.cjs +18 -7
  5. package/build/cjs/middleware/hmr-middleware.cjs +6 -5
  6. package/build/cjs/middleware/locale-middleware.cjs +2 -2
  7. package/build/cjs/middleware/mapping-middleware.cjs +9 -3
  8. package/build/cjs/middleware/module-middleware.cjs +9 -4
  9. package/build/cjs/middleware/redirects/unsigned-module-redirect.cjs +1 -1
  10. package/build/cjs/middleware/request-processor-middleware.cjs +64 -0
  11. package/build/cjs/middleware/resource-middleware.cjs +8 -3
  12. package/build/cjs/middleware/utils/error-handling.cjs +5 -4
  13. package/build/cjs/middleware/utils/metadata.cjs +2 -2
  14. package/build/cjs/middleware/utils/request.cjs +2 -2
  15. package/build/cjs/middleware/view-middleware.cjs +16 -14
  16. package/build/cjs/middleware.cjs +2 -0
  17. package/build/cjs/tools/server-warmup.cjs +7 -7
  18. package/build/cjs/tools/static-generation.cjs +68 -67
  19. package/build/cjs/tools/utils/network-dispatcher.cjs +12 -11
  20. package/build/es/context/provider.js +2 -1
  21. package/build/es/index.js +6 -5
  22. package/build/es/middleware/asset-middleware.js +2 -2
  23. package/build/es/middleware/bundle-middleware.js +9 -7
  24. package/build/es/middleware/hmr-middleware.js +6 -5
  25. package/build/es/middleware/locale-middleware.js +2 -2
  26. package/build/es/middleware/mapping-middleware.js +3 -3
  27. package/build/es/middleware/module-middleware.js +6 -4
  28. package/build/es/middleware/redirects/unsigned-module-redirect.js +1 -1
  29. package/build/es/middleware/request-processor-middleware.d.ts +3 -0
  30. package/build/es/middleware/request-processor-middleware.js +53 -0
  31. package/build/es/middleware/resource-middleware.js +3 -3
  32. package/build/es/middleware/utils/error-handling.js +5 -4
  33. package/build/es/middleware/utils/metadata.js +2 -2
  34. package/build/es/middleware/utils/request.d.ts +2 -2
  35. package/build/es/middleware/utils/request.js +2 -2
  36. package/build/es/middleware/view-middleware.js +17 -14
  37. package/build/es/middleware.d.ts +1 -0
  38. package/build/es/middleware.js +1 -0
  39. package/build/es/tools/server-warmup.js +3 -3
  40. package/build/es/tools/static-generation.d.ts +6 -2
  41. package/build/es/tools/static-generation.js +62 -54
  42. package/build/es/tools/types.d.ts +2 -1
  43. package/build/es/tools/utils/network-dispatcher.js +2 -1
  44. package/package.json +28 -28
@@ -31,6 +31,7 @@ function createProviderContext(serverContext) {
31
31
  const {
32
32
  assets,
33
33
  cacheDir,
34
+ i18n,
34
35
  lwc: {modules = []},
35
36
  routes,
36
37
  errorRoutes,
@@ -67,6 +68,7 @@ function createProviderContext(serverContext) {
67
68
  config: (0, import_shared_utils.deepFreeze)({
68
69
  assets,
69
70
  cacheDir,
71
+ i18n,
70
72
  modules,
71
73
  routes,
72
74
  errorRoutes,
@@ -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,7 +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) {
50
- app.useCompression();
51
+ (0, import_request_processor_middleware.requestProcessorMiddleware)(app, serverContext);
51
52
  (0, import_locale_middleware.localeMiddleware)(app, serverContext);
52
53
  (0, import_module_middleware.moduleMiddleware)(app, serverContext);
53
54
  (0, import_bundle_middleware.bundleMiddleware)(app, serverContext);
@@ -69,7 +70,7 @@ async function initContext(appConfig, runtimeEnvironment, globalData) {
69
70
  const skipValidation = true;
70
71
  await (0, import_config.executeConfigHooks)(hooks, appConfig, runtimeEnvironment, globalData, skipValidation);
71
72
  (0, import_config.executeInstrumentationHooks)(hooks);
72
- (0, import_config.executeStartHooks)(hooks, appConfig);
73
+ (0, import_config.executeStartHooks)(hooks, appConfig, runtimeEnvironment);
73
74
  }
74
75
  const services = await (0, import_modules.loadServices)(appConfig);
75
76
  const serverContext = (0, import_instrumentation.getTracer)().trace({name: import_instrumentation.CoreSpan.CreateServerContext}, () => (0, import_server2.createServerContext)(appConfig, runtimeEnvironment, globalData));
@@ -191,7 +192,7 @@ async function generateStaticSite(config) {
191
192
  config.serverType = "fs";
192
193
  const {serverMode} = config;
193
194
  if (serverMode === "dev" || serverMode === "compat") {
194
- import_shared_utils.logger.warn("static generation in `dev` or `compat` mode is currently not fully supported");
195
+ import_diagnostics.logger.warn("static generation in `dev` or `compat` mode is currently not fully supported");
195
196
  }
196
197
  const lwrApp = createServer(config);
197
198
  overrideConfigAsSrc(lwrApp);
@@ -32,11 +32,12 @@ var import_error_handling = __toModule(require("./utils/error-handling.cjs"));
32
32
  var import_diagnostics = __toModule(require("@lwrjs/diagnostics"));
33
33
  function createAssetMiddleware(context) {
34
34
  const {
35
+ appConfig: {i18n},
35
36
  assetRegistry,
36
37
  runtimeEnvironment: {basePath}
37
38
  } = context;
38
39
  return async (req, res, next) => {
39
- const {runtimeEnvironment} = req.getRuntimeContext(context.runtimeEnvironment);
40
+ const {runtimeEnvironment} = req.getRuntimeContext(context.runtimeEnvironment, i18n);
40
41
  const {assetId, immutable, signature} = (0, import_identity.getAssetIdentity)(req);
41
42
  if (basePath && !assetId.specifier.startsWith(basePath)) {
42
43
  assetId.specifier = import_path.default.join(basePath, assetId.specifier);
@@ -34,10 +34,16 @@ var import_metadata = __toModule(require("./utils/metadata.cjs"));
34
34
  var import_unsigned_module_redirect = __toModule(require("./redirects/unsigned-module-redirect.cjs"));
35
35
  var import_error_handling = __toModule(require("./utils/error-handling.cjs"));
36
36
  function createBundleMiddleware(context) {
37
- const {moduleRegistry, moduleBundler} = context;
37
+ const {
38
+ appConfig,
39
+ appConfig: {i18n},
40
+ moduleRegistry,
41
+ moduleBundler,
42
+ runtimeEnvironment: defaultRuntimeEnvironment
43
+ } = context;
38
44
  const unsignedBundleRedirect = (0, import_unsigned_module_redirect.createUnsignedBundleRedirect)(moduleBundler);
39
45
  return async (req, res) => {
40
- if (!req.validateEnvironmentRequest(context.appConfig)) {
46
+ if (!req.validateEnvironmentRequest(appConfig)) {
41
47
  res.status(400);
42
48
  res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_ENVIRONMENT(req.params.environment).message);
43
49
  return;
@@ -47,8 +53,8 @@ function createBundleMiddleware(context) {
47
53
  res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_JSON().message);
48
54
  return;
49
55
  }
50
- const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(context.runtimeEnvironment);
51
- const importer = req.query.importer ? await (0, import_request.getRequestImporter)(req, moduleRegistry) : void 0;
56
+ const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(defaultRuntimeEnvironment, i18n);
57
+ const importer = req.query.importer ? await (0, import_request.getRequestImporter)(req, moduleRegistry, runtimeParams) : void 0;
52
58
  const {moduleId, signature} = (0, import_identity.getModuleIdentity)(req, importer);
53
59
  if (moduleId.importer || !signature) {
54
60
  await unsignedBundleRedirect(req, res, moduleId, runtimeEnvironment, runtimeParams);
@@ -69,14 +75,19 @@ function createBundleMiddleware(context) {
69
75
  };
70
76
  }
71
77
  function createSourceMapMiddleware(context) {
72
- const {moduleBundler} = context;
78
+ const {
79
+ appConfig,
80
+ appConfig: {i18n},
81
+ moduleBundler,
82
+ runtimeEnvironment: defaultRuntimeEnvironment
83
+ } = context;
73
84
  return async (req, res) => {
74
- if (!req.validateEnvironmentRequest(context.appConfig)) {
85
+ if (!req.validateEnvironmentRequest(appConfig)) {
75
86
  res.status(400);
76
87
  res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_ENVIRONMENT(req.params.environment).message);
77
88
  return;
78
89
  }
79
- const {runtimeEnvironment} = req.getRuntimeContext(context.runtimeEnvironment);
90
+ const {runtimeEnvironment} = req.getRuntimeContext(defaultRuntimeEnvironment, i18n);
80
91
  const {moduleId, signature} = (0, import_identity.getModuleIdentity)(req);
81
92
  const bundleDef = await moduleBundler.getModuleBundle(moduleId, runtimeEnvironment);
82
93
  if (signature !== import_shared_utils.LATEST_SIGNATURE) {
@@ -27,6 +27,7 @@ __export(exports, {
27
27
  hmrMiddleware: () => hmrMiddleware
28
28
  });
29
29
  var import_ws = __toModule(require("ws"));
30
+ var import_diagnostics = __toModule(require("@lwrjs/diagnostics"));
30
31
  var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
31
32
  var import_request = __toModule(require("./utils/request.cjs"));
32
33
  var hmr;
@@ -60,9 +61,9 @@ var Hmr = class {
60
61
  });
61
62
  wss.on("error", (error) => {
62
63
  if (error.code === "EADDRINUSE") {
63
- console.error(`HMR Socket Server: Port ${this.context.appConfig.port} already in use.`);
64
+ import_diagnostics.logger.error(`HMR Socket Server: Port ${this.context.appConfig.port} already in use.`);
64
65
  } else {
65
- console.error(error);
66
+ import_diagnostics.logger.error(error);
66
67
  }
67
68
  });
68
69
  }
@@ -78,7 +79,7 @@ var Hmr = class {
78
79
  runtimeParams
79
80
  } = moduleDefinition;
80
81
  const {format, debug, compat} = runtimeEnvironment;
81
- console.log("Recompiled module:", specifier, signature);
82
+ import_diagnostics.logger.info(`Recompiled module: ${specifier}, ${signature}`);
82
83
  const moduleId = {
83
84
  specifier,
84
85
  namespace,
@@ -106,7 +107,7 @@ var Hmr = class {
106
107
  }
107
108
  }
108
109
  updateTemplateOnClients(compiledView) {
109
- console.log("Recompiled view source:", compiledView.viewId);
110
+ import_diagnostics.logger.info("Recompiled view source", compiledView.viewId);
110
111
  const {contentTemplate} = compiledView.viewId;
111
112
  if (this.connectedClients && contentTemplate) {
112
113
  for (const ws of this.connectedClients.keys()) {
@@ -121,7 +122,7 @@ var Hmr = class {
121
122
  }
122
123
  updateAssetOnClients(asset) {
123
124
  const assetId = asset.entry;
124
- console.log("Updated asset:", assetId);
125
+ import_diagnostics.logger.info(`Updated asset: ${assetId}`);
125
126
  if (this.connectedClients) {
126
127
  for (const ws of this.connectedClients.keys()) {
127
128
  ws.send(JSON.stringify({
@@ -12,9 +12,9 @@ __export(exports, {
12
12
  });
13
13
  function localeMiddleware(app, context) {
14
14
  const {defaultLocale} = context.runtimeEnvironment;
15
- app.use(async (req, res, next) => {
15
+ app.use(async (req, _res, next) => {
16
16
  const langs = req.acceptsLanguages();
17
- req.locale = langs?.length > 0 ? langs[0] : defaultLocale;
17
+ req.locale = langs?.length > 0 && langs[0] != "*" ? langs[0] : defaultLocale;
18
18
  await next();
19
19
  });
20
20
  }
@@ -31,14 +31,20 @@ var import_diagnostics = __toModule(require("@lwrjs/diagnostics"));
31
31
  var import_identity = __toModule(require("./utils/identity.cjs"));
32
32
  var import_error_handling = __toModule(require("./utils/error-handling.cjs"));
33
33
  function createMappingMiddleware(context) {
34
- const {moduleBundler, moduleRegistry} = context;
34
+ const {
35
+ appConfig,
36
+ appConfig: {i18n},
37
+ moduleBundler,
38
+ moduleRegistry,
39
+ runtimeEnvironment: defaultRuntimeEnvironment
40
+ } = context;
35
41
  return async (req, res) => {
36
- if (!req.validateEnvironmentRequest(context.appConfig)) {
42
+ if (!req.validateEnvironmentRequest(appConfig)) {
37
43
  res.status(400);
38
44
  res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_ENVIRONMENT(req.params.environment).message);
39
45
  return;
40
46
  }
41
- const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(context.runtimeEnvironment);
47
+ const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(defaultRuntimeEnvironment, i18n);
42
48
  const {moduleIds} = (0, import_identity.getMappingIdentity)(req);
43
49
  const importMetadata = await (0, import_shared_utils.getImportMetadataMappings)(moduleIds, runtimeEnvironment, runtimeParams, moduleRegistry, moduleBundler);
44
50
  if (req.isSiteGeneration()) {
@@ -33,10 +33,15 @@ var import_identity = __toModule(require("./utils/identity.cjs"));
33
33
  var import_unsigned_module_redirect = __toModule(require("./redirects/unsigned-module-redirect.cjs"));
34
34
  var import_error_handling = __toModule(require("./utils/error-handling.cjs"));
35
35
  function createModuleMiddleware(context) {
36
- const {moduleRegistry} = context;
36
+ const {
37
+ appConfig,
38
+ appConfig: {i18n},
39
+ moduleRegistry,
40
+ runtimeEnvironment: defaultRuntimeEnvironment
41
+ } = context;
37
42
  const unsignedRedirect = (0, import_unsigned_module_redirect.createUnsignedModuleRedirect)(moduleRegistry);
38
43
  return async (req, res) => {
39
- if (!req.validateEnvironmentRequest(context.appConfig)) {
44
+ if (!req.validateEnvironmentRequest(appConfig)) {
40
45
  res.status(400);
41
46
  res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_ENVIRONMENT(req.params.environment).message);
42
47
  return;
@@ -46,8 +51,8 @@ function createModuleMiddleware(context) {
46
51
  res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_JSON().message);
47
52
  return;
48
53
  }
49
- const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(context.runtimeEnvironment);
50
- const importer = req.query.importer ? await (0, import_request.getRequestImporter)(req, moduleRegistry) : void 0;
54
+ const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(defaultRuntimeEnvironment, i18n);
55
+ const importer = req.query.importer ? await (0, import_request.getRequestImporter)(req, moduleRegistry, runtimeParams) : void 0;
51
56
  const {moduleId, signature} = (0, import_identity.getModuleIdentity)(req, importer);
52
57
  if (moduleId.importer || !signature) {
53
58
  await unsignedRedirect(req, res, moduleId, runtimeEnvironment, runtimeParams);
@@ -16,7 +16,7 @@ var STATUS_FOUND = 302;
16
16
  function createUnsignedModuleRedirect(moduleRegistry) {
17
17
  return async (req, res, moduleId, runtimeEnvironment, runtimeParams) => {
18
18
  const jsonQuery = getJsonQualifier(req, runtimeEnvironment);
19
- const {moduleEntry, ownHash} = await moduleRegistry.getModule(moduleId);
19
+ const {moduleEntry, ownHash} = await moduleRegistry.getModule(moduleId, runtimeParams);
20
20
  const uri = await moduleRegistry.resolveModuleUri({...moduleId, version: moduleEntry.version}, runtimeEnvironment, runtimeParams, ownHash);
21
21
  sendRedirect(res, `${uri}${jsonQuery}`);
22
22
  };
@@ -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_diagnostics = __toModule(require("@lwrjs/diagnostics"));
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_diagnostics.logger.currentLevel === "debug" || import_diagnostics.logger.currentLevel == "verbose") {
38
+ for (const headerName in req.headers) {
39
+ import_diagnostics.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_diagnostics.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_diagnostics.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,13 +30,18 @@ var import_diagnostics = __toModule(require("@lwrjs/diagnostics"));
30
30
  var import_identity = __toModule(require("./utils/identity.cjs"));
31
31
  var import_error_handling = __toModule(require("./utils/error-handling.cjs"));
32
32
  function createResourceMiddleware(context) {
33
- const {resourceRegistry} = context;
33
+ const {
34
+ appConfig,
35
+ appConfig: {i18n},
36
+ resourceRegistry,
37
+ runtimeEnvironment: defaultRuntimeEnvironment
38
+ } = context;
34
39
  return async (req, res) => {
35
- if (!req.validateEnvironmentRequest(context.appConfig)) {
40
+ if (!req.validateEnvironmentRequest(appConfig)) {
36
41
  res.status(400).send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_ENVIRONMENT(req.params.environment).message);
37
42
  return;
38
43
  }
39
- const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(context.runtimeEnvironment);
44
+ const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(defaultRuntimeEnvironment, i18n);
40
45
  const {resourceId} = (0, import_identity.getResourceIdentity)(req);
41
46
  const resource = await resourceRegistry.getResource(resourceId, runtimeEnvironment, runtimeParams);
42
47
  if (req.isSiteGeneration()) {
@@ -27,6 +27,7 @@ __export(exports, {
27
27
  handleErrors: () => handleErrors
28
28
  });
29
29
  var import_diagnostics = __toModule(require("@lwrjs/diagnostics"));
30
+ var import_diagnostics2 = __toModule(require("@lwrjs/diagnostics"));
30
31
  function createReturnStatus(error, url) {
31
32
  if (error instanceof import_diagnostics.LwrUnresolvableError && error.diagnostics[0].description.category === "lwrUnresolvable/invalid") {
32
33
  return {status: 400, message: error.message};
@@ -42,11 +43,11 @@ function handleErrors(middleware) {
42
43
  await middleware(req, res, next);
43
44
  } catch (err) {
44
45
  if (err instanceof import_diagnostics.DiagnosticsError) {
45
- console.error("LWR Diagnostic Error: " + err.message);
46
- console.error(err.diagnostics);
47
- console.error(err.stack);
46
+ import_diagnostics2.logger.error("LWR Diagnostic Error: " + err.message);
47
+ import_diagnostics2.logger.error(err.diagnostics);
48
+ import_diagnostics2.logger.error(err.stack);
48
49
  } else {
49
- console.error(err);
50
+ import_diagnostics2.logger.error(err);
50
51
  }
51
52
  const {status, message} = createReturnStatus(err, req.originalUrl);
52
53
  res.status(status);
@@ -32,7 +32,7 @@ async function normalizeResolvedUris(bundleDefinition, runtimeEnvironment, runti
32
32
  if (bundleDefinition.bundleRecord.imports) {
33
33
  for (const theImport of bundleDefinition.bundleRecord.imports) {
34
34
  const childSpecifier = theImport.specifier;
35
- const id = await (0, import_shared_utils.getVersionedModuleId)(childSpecifier, moduleRegistry);
35
+ const id = await (0, import_shared_utils.getVersionedModuleId)(childSpecifier, moduleRegistry, runtimeParams);
36
36
  const uri = await moduleBundler.resolveModuleUri(id, runtimeEnvironment, runtimeParams);
37
37
  resolvedUris.push(uri);
38
38
  }
@@ -40,7 +40,7 @@ async function normalizeResolvedUris(bundleDefinition, runtimeEnvironment, runti
40
40
  if (bundleDefinition.bundleRecord.dynamicImports) {
41
41
  for (const theImport of bundleDefinition.bundleRecord.dynamicImports) {
42
42
  const childSpecifier = theImport.specifier;
43
- const id = await (0, import_shared_utils.getVersionedModuleId)(childSpecifier, moduleRegistry);
43
+ const id = await (0, import_shared_utils.getVersionedModuleId)(childSpecifier, moduleRegistry, runtimeParams);
44
44
  const uri = await moduleBundler.resolveModuleUri(id, runtimeEnvironment, runtimeParams);
45
45
  resolvedUris.push(uri);
46
46
  }
@@ -61,9 +61,9 @@ function getRequestProperties(pattern, req) {
61
61
  }
62
62
  return;
63
63
  }
64
- async function getRequestImporter(req, moduleRegistry) {
64
+ async function getRequestImporter(req, moduleRegistry, runtimeParams) {
65
65
  const importerSpecifier = req.query.importer;
66
66
  const importerModuleId = (0, import_shared_utils.explodeSpecifier)(importerSpecifier);
67
- const {entry} = await moduleRegistry.getModuleEntry(importerModuleId);
67
+ const {entry} = await moduleRegistry.getModuleEntry(importerModuleId, runtimeParams);
68
68
  return entry;
69
69
  }
@@ -31,16 +31,12 @@ var import_router = __toModule(require("@lwrjs/router"));
31
31
  var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
32
32
  var import_error_handling = __toModule(require("./utils/error-handling.cjs"));
33
33
  var import_view_registry = __toModule(require("@lwrjs/view-registry"));
34
- var CANONICAL_VIEW_ROUTES = [
35
- `/:apiVersion/application/:format/l/:locale/ai/:appId`,
36
- `/:apiVersion/application/:format/l/:locale/e/:environment/ai/:appId`,
37
- `/:apiVersion/application/:format/ai/:appId`,
38
- `/:apiVersion/application/:format/e/:environment/ai/:appId`
39
- ];
40
34
  function createViewMiddleware(route, errorRoutes, context, viewHandler) {
41
35
  const errorRoute = errorRoutes.find((route2) => route2.status === 500);
36
+ const appConfig = context.appConfig;
37
+ const {environment: environmentConfig, i18n} = appConfig;
42
38
  return async (req, res) => {
43
- if (!req.validateEnvironmentRequest(context.appConfig)) {
39
+ if (!req.validateEnvironmentRequest(appConfig)) {
44
40
  res.status(400);
45
41
  res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_ENVIRONMENT(req.params.environment).message);
46
42
  return;
@@ -50,8 +46,7 @@ function createViewMiddleware(route, errorRoutes, context, viewHandler) {
50
46
  res.send(import_diagnostics.descriptions.UNRESOLVABLE.INVALID_JSON().message);
51
47
  return;
52
48
  }
53
- const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(context.runtimeEnvironment);
54
- const {environment: environmentConfig} = context.appConfig;
49
+ const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(context.runtimeEnvironment, i18n);
55
50
  if (!runtimeParams.environment && environmentConfig?.default) {
56
51
  runtimeParams.environment = environmentConfig.default;
57
52
  }
@@ -71,8 +66,8 @@ function createViewMiddleware(route, errorRoutes, context, viewHandler) {
71
66
  if (!errorRoute) {
72
67
  throw err;
73
68
  }
74
- import_shared_utils.logger.error(`[view-middleware] Route Error ${req.originalUrl}`);
75
- import_shared_utils.logger.error(err);
69
+ import_diagnostics.logger.error(`[view-middleware] Route Error ${req.originalUrl}`);
70
+ import_diagnostics.logger.error(err);
76
71
  viewResponse = await resolve.call(viewHandler, viewRequest, errorRoute, runtimeEnvironment, runtimeParams);
77
72
  resolvedRoute = errorRoute;
78
73
  }
@@ -94,7 +89,7 @@ function createViewMiddleware(route, errorRoutes, context, viewHandler) {
94
89
  }
95
90
  function createConfigMiddleware(routes, context, viewHandler) {
96
91
  return async (req, res) => {
97
- const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(context.runtimeEnvironment);
92
+ const {runtimeEnvironment, runtimeParams} = req.getRuntimeContext(context.runtimeEnvironment, context.appConfig.i18n);
98
93
  const {appId, encodedViewPath} = req.params;
99
94
  const route = routes.find((route2) => route2.id === appId);
100
95
  if (!route) {
@@ -138,7 +133,7 @@ function createNotFoundMiddleware(errorRoutes, context, viewHandler) {
138
133
  }
139
134
  function viewMiddleware(app, context) {
140
135
  const {appConfig, viewRegistry, moduleRegistry, routeHandlers} = context;
141
- const {routes, errorRoutes} = appConfig;
136
+ const {i18n, routes, errorRoutes} = appConfig;
142
137
  const viewHandler = new import_view_registry.LwrViewHandler({viewRegistry, moduleRegistry, routeHandlers}, appConfig);
143
138
  for (const route of routes) {
144
139
  const paths = [route.path];
@@ -147,7 +142,14 @@ function viewMiddleware(app, context) {
147
142
  const prefix = route.path === "/" ? "" : route.path;
148
143
  subRoutes.routes.forEach((subRoute) => subRoute.uri !== route.path && paths.push(`${prefix}${subRoute.uri}`));
149
144
  }
150
- paths.forEach((routePath) => paths.push(...CANONICAL_VIEW_ROUTES.map((viewRoute) => viewRoute + routePath)));
145
+ if (i18n.uriPattern === "path-prefix") {
146
+ const supportedStr = i18n.locales.map((l) => l.id).join("|");
147
+ paths.forEach((routePath) => {
148
+ const localizedPath = `/:locale(${supportedStr})${routePath}`;
149
+ import_diagnostics.logger.debug(`[view-middleware] Add localized path ${localizedPath}`);
150
+ paths.push(localizedPath);
151
+ });
152
+ }
151
153
  app.get(paths, (0, import_error_handling.handleErrors)(createViewMiddleware(route, errorRoutes, context, viewHandler)));
152
154
  }
153
155
  app.get((0, import_shared_utils.getClientBootstrapConfigurationRoutes)(), (0, import_error_handling.handleErrors)(createConfigMiddleware(routes, context, viewHandler)));
@@ -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"));
@@ -30,16 +30,16 @@ var import_static_generation = __toModule(require("./static-generation.cjs"));
30
30
  var import_dir = __toModule(require("./utils/dir.cjs"));
31
31
  var import_network_dispatcher = __toModule(require("./utils/network-dispatcher.cjs"));
32
32
  var import_config = __toModule(require("@lwrjs/config"));
33
- var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
33
+ var import_diagnostics = __toModule(require("@lwrjs/diagnostics"));
34
34
  async function warmupServer(config, internalRequestKey) {
35
- if (!import_shared_utils.logger.currentLevel || import_shared_utils.logger.currentLevel == import_shared_utils.WARN || import_shared_utils.logger.currentLevel == import_shared_utils.INFO) {
36
- import_shared_utils.logger.setOptions({dedupe: new Set([import_shared_utils.WARN])});
35
+ if (!import_diagnostics.logger.currentLevel || import_diagnostics.logger.currentLevel == import_diagnostics.WARN || import_diagnostics.logger.currentLevel == import_diagnostics.INFO) {
36
+ import_diagnostics.logger.setOptions({dedupe: new Set([import_diagnostics.WARN])});
37
37
  }
38
- import_shared_utils.logger.info("[Server Warmup] starting");
39
- const {routes, staticSiteGenerator, port, basePath} = config;
38
+ import_diagnostics.logger.info("[Server Warmup] starting");
39
+ const {basePath, i18n, port, routes, staticSiteGenerator} = config;
40
40
  staticSiteGenerator.outputDir = import_dir.skipDirCreation;
41
41
  const urlRewriteMap = new Map();
42
42
  const runtimeEnvironment = (0, import_config.getRuntimeEnvironment)(config);
43
- await new import_static_generation.default().generateRoutes(runtimeEnvironment, staticSiteGenerator, routes, basePath, new import_network_dispatcher.default(port, internalRequestKey), staticSiteGenerator.outputDir, urlRewriteMap);
44
- import_shared_utils.logger.info("[Server Warmup] complete");
43
+ await new import_static_generation.default().generateRoutes(runtimeEnvironment, staticSiteGenerator, routes, basePath, new import_network_dispatcher.default(port, internalRequestKey), staticSiteGenerator.outputDir, i18n, urlRewriteMap);
44
+ import_diagnostics.logger.info("[Server Warmup] complete");
45
45
  }