@lwrjs/config 0.15.0-alpha.11 → 0.15.0-alpha.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.
@@ -37,11 +37,15 @@ __export(exports, {
37
37
  DEFAULT_ROOT_DIR: () => DEFAULT_ROOT_DIR,
38
38
  DEFAULT_SERVICE_PACKAGE_NAME: () => DEFAULT_SERVICE_PACKAGE_NAME,
39
39
  LWR_INFO_ROUTE: () => LWR_INFO_ROUTE,
40
+ MIN_LWC_VERSION: () => MIN_LWC_VERSION,
41
+ MIN_LWR_VERSION: () => MIN_LWR_VERSION,
40
42
  getDefaultBundleConfig: () => getDefaultBundleConfig
41
43
  });
42
44
  var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
43
45
  var import_runtime_config = __toModule(require("./runtime-config.cjs"));
44
46
  var import_package = __toModule(require("@lwrjs/config/package"));
47
+ var MIN_LWR_VERSION = "0.12.0";
48
+ var MIN_LWC_VERSION = "6.1.0";
45
49
  var PORT = process.env.PORT ? parseInt(process.env.PORT, 10) : 3e3;
46
50
  var MODE = process.env.MODE || "prod";
47
51
  var DEFAULT_BASE_PATH = "";
@@ -175,9 +179,14 @@ var DEFAULT_LWR_BOOTSTRAP_CONFIG = {
175
179
  configAsSrc: false,
176
180
  ssr: false,
177
181
  preloadData: false,
182
+ proxyForSSR: false,
183
+ includeCookiesForSSR: false,
178
184
  mixedMode: false,
179
185
  module: void 0,
180
186
  preloadModules: [],
181
187
  lwrVersion: import_package.lwrVersion,
182
- lwcVersion: import_package.lwcVersion
188
+ lwcVersion: import_package.lwcVersion,
189
+ preloadResources: {
190
+ patterns: []
191
+ }
183
192
  };
@@ -28,6 +28,8 @@ __export(exports, {
28
28
  DEFAULT_LWR_BOOTSTRAP_CONFIG: () => import_defaults.DEFAULT_LWR_BOOTSTRAP_CONFIG,
29
29
  LWC_VERSION: () => import_package.lwcVersion,
30
30
  LWR_VERSION: () => import_package.lwrVersion,
31
+ MIN_LWC_VERSION: () => import_defaults.MIN_LWC_VERSION,
32
+ MIN_LWR_VERSION: () => import_defaults.MIN_LWR_VERSION,
31
33
  NODE_VERSION: () => import_package.nodeVersion,
32
34
  PWA_KIT_RUNTIME_VERSION: () => import_package.pwaKitRuntimeVersion,
33
35
  getLwrConfigFromFile: () => import_global_config.getLwrConfigFromFile,
@@ -125,11 +125,14 @@ var BOOTSTRAP_ATTRIBUTE_KEYS = createKeys("bootstrap", [
125
125
  "configAsSrc",
126
126
  "ssr",
127
127
  "preloadData",
128
+ "proxyForSSR",
129
+ "includeCookiesForSSR",
128
130
  "mixedMode",
129
131
  "module",
130
132
  "preloadModules",
131
133
  "lwrVersion",
132
- "lwcVersion"
134
+ "lwcVersion",
135
+ "preloadResources"
133
136
  ]);
134
137
  function isNotEmptyString(node) {
135
138
  return node.type === "string" && node.value.length > 0;
@@ -144,7 +147,7 @@ var ValidationContext = class {
144
147
  return (0, import_helpers.calculatePositionFromSource)(this.sourceText, node);
145
148
  }
146
149
  assertIsObject(node, property) {
147
- if (node.type !== "object") {
150
+ if (node?.type !== "object" && node) {
148
151
  this.diagnostics.push({
149
152
  description: import_diagnostics.descriptions.CONFIG_PARSER.INCORRECT_NODE_TYPE(property, "object", node.type),
150
153
  location: this.getLocationFromNode(node)
@@ -175,6 +178,22 @@ var ValidationContext = class {
175
178
  });
176
179
  }
177
180
  }
181
+ assertIsFilePattern(node, property) {
182
+ const fileExtRegex = /^\.[a-zA-Z0-9]+$/;
183
+ if (node) {
184
+ const children = node.children || [];
185
+ for (const [index, child] of children.entries()) {
186
+ const match = (0, import_jsonc_parser.findNodeAtLocation)(child, ["match"])?.value;
187
+ if (!fileExtRegex.test(match)) {
188
+ this.diagnostics.push({
189
+ description: import_diagnostics.descriptions.CONFIG_PARSER.INVALID_FILE_PATTERN(`${property}[${index}].match`, match),
190
+ location: this.getLocationFromNode(node)
191
+ });
192
+ break;
193
+ }
194
+ }
195
+ }
196
+ }
178
197
  assertIsPath(node, property) {
179
198
  if (node && (node.type !== "string" || node.value[0] !== "/")) {
180
199
  this.diagnostics.push({
@@ -48,6 +48,8 @@ function validateBootstrap(node, validationContext, propPrefix) {
48
48
  validationContext.assertIsBoolean((0, import_jsonc_parser.findNodeAtLocation)(node, ["autoBoot"]), `${propPrefix}.autoBoot`);
49
49
  validationContext.assertIsBoolean((0, import_jsonc_parser.findNodeAtLocation)(node, ["ssr"]), `${propPrefix}.ssr`);
50
50
  validationContext.assertIsBoolean((0, import_jsonc_parser.findNodeAtLocation)(node, ["preloadData"]), `${propPrefix}.preloadData`);
51
+ validationContext.assertIsBoolean((0, import_jsonc_parser.findNodeAtLocation)(node, ["proxyForSSR"]), `${propPrefix}.proxyForSSR`);
52
+ validationContext.assertIsBoolean((0, import_jsonc_parser.findNodeAtLocation)(node, ["includeCookiesForSSR"]), `${propPrefix}.includeCookiesForSSR`);
51
53
  validationContext.assertIsBoolean((0, import_jsonc_parser.findNodeAtLocation)(node, ["mixedMode"]), `${propPrefix}.mixedMode`);
52
54
  validationContext.assertIsBoolean((0, import_jsonc_parser.findNodeAtLocation)(node, ["configAsSrc"]), `${propPrefix}.configAsSrc`);
53
55
  validationContext.assertIsSpecifier((0, import_jsonc_parser.findNodeAtLocation)(node, ["module"]), `${propPrefix}.module`);
@@ -55,6 +57,7 @@ function validateBootstrap(node, validationContext, propPrefix) {
55
57
  validationContext.assertNotEmptyString((0, import_jsonc_parser.findNodeAtLocation)(node, ["lwrVersion"]), `${propPrefix}.lwrVersion`);
56
58
  validationContext.assertNotEmptyString((0, import_jsonc_parser.findNodeAtLocation)(node, ["lwcVersion"]), `${propPrefix}.lwcVersion`);
57
59
  validationContext.assertSsrPreloadData(node, propPrefix);
60
+ validationContext.assertIsFilePattern((0, import_jsonc_parser.findNodeAtLocation)(node, ["preloadResources", "patterns"]), `${propPrefix}.preloadResources.patterns`);
58
61
  const workers = (0, import_jsonc_parser.findNodeAtLocation)(node, ["workers"]);
59
62
  if (workers && workers.children) {
60
63
  workers.children.forEach((w, index) => {
@@ -1,4 +1,18 @@
1
1
  import type { BundleConfig, LwrGlobalConfig, LwrRoute, NormalizedLwrAppBootstrapConfig, StaticSiteGenerator } from '@lwrjs/types';
2
+ /**
3
+ * MIN_LWR_VERSION
4
+ * Minimum LWR version required for the routes to function properly.
5
+ * Anytime we believe we are checking in a breaking change, the required version should be updated
6
+ * manually for all routes to continue functioning properly.
7
+ */
8
+ export declare const MIN_LWR_VERSION = "0.12.0";
9
+ /**
10
+ * MIN_LWC_VERSION
11
+ * Minimum LWC version required for the routes to function properly.
12
+ * Anytime we believe we are checking in a breaking change, the required version should be updated
13
+ * manually for all routes to continue functioning properly.
14
+ */
15
+ export declare const MIN_LWC_VERSION = "6.1.0";
2
16
  export declare const DEFAULT_LWR_CONFIG_JSON = "$rootDir/lwr.config.json";
3
17
  export declare const DEFAULT_GENERATOR_CONFIG: StaticSiteGenerator;
4
18
  export declare const DEFAULT_ROOT_DIR: string;
@@ -1,6 +1,20 @@
1
1
  import { DEFAULT_LWR_LOCKER_CONFIG, getFeatureFlags } from '@lwrjs/shared-utils';
2
2
  import { DEFAULT_I18N_CONFIG, getServerModeConfig } from './runtime-config.js';
3
3
  import { lwrVersion as LWR_VERSION, lwcVersion as LWC_VERSION } from '@lwrjs/config/package';
4
+ /**
5
+ * MIN_LWR_VERSION
6
+ * Minimum LWR version required for the routes to function properly.
7
+ * Anytime we believe we are checking in a breaking change, the required version should be updated
8
+ * manually for all routes to continue functioning properly.
9
+ */
10
+ export const MIN_LWR_VERSION = '0.12.0';
11
+ /**
12
+ * MIN_LWC_VERSION
13
+ * Minimum LWC version required for the routes to function properly.
14
+ * Anytime we believe we are checking in a breaking change, the required version should be updated
15
+ * manually for all routes to continue functioning properly.
16
+ */
17
+ export const MIN_LWC_VERSION = '6.1.0';
4
18
  const PORT = process.env.PORT ? parseInt(process.env.PORT, 10) : 3000;
5
19
  const MODE = process.env.MODE || 'prod';
6
20
  const DEFAULT_BASE_PATH = '';
@@ -140,10 +154,15 @@ export const DEFAULT_LWR_BOOTSTRAP_CONFIG = {
140
154
  configAsSrc: false,
141
155
  ssr: false,
142
156
  preloadData: false,
157
+ proxyForSSR: false,
158
+ includeCookiesForSSR: false,
143
159
  mixedMode: false,
144
160
  module: undefined,
145
161
  preloadModules: [],
146
162
  lwrVersion: LWR_VERSION,
147
- lwcVersion: LWC_VERSION
163
+ lwcVersion: LWC_VERSION,
164
+ preloadResources: {
165
+ patterns: []
166
+ },
148
167
  };
149
168
  //# sourceMappingURL=defaults.js.map
@@ -2,6 +2,6 @@ export { lwrVersion as LWR_VERSION, lwcVersion as LWC_VERSION, nodeVersion as NO
2
2
  export { loadConfig, resolveGlobalConfig as normalizeConfig, getLwrConfigFromFile } from './global-config.js';
3
3
  export { getRuntimeEnvironment, DEFAULT_I18N_CONFIG } from './runtime-config.js';
4
4
  export * from './hooks.js';
5
- export { DEFAULT_LWR_BOOTSTRAP_CONFIG } from './defaults.js';
5
+ export { DEFAULT_LWR_BOOTSTRAP_CONFIG, MIN_LWR_VERSION, MIN_LWC_VERSION } from './defaults.js';
6
6
  export { validateLwrAppConfig } from './validation/app-config.js';
7
7
  //# sourceMappingURL=index.d.ts.map
package/build/es/index.js CHANGED
@@ -2,6 +2,6 @@ export { lwrVersion as LWR_VERSION, lwcVersion as LWC_VERSION, nodeVersion as NO
2
2
  export { loadConfig, resolveGlobalConfig as normalizeConfig, getLwrConfigFromFile } from './global-config.js';
3
3
  export { getRuntimeEnvironment, DEFAULT_I18N_CONFIG } from './runtime-config.js';
4
4
  export * from './hooks.js';
5
- export { DEFAULT_LWR_BOOTSTRAP_CONFIG } from './defaults.js';
5
+ export { DEFAULT_LWR_BOOTSTRAP_CONFIG, MIN_LWR_VERSION, MIN_LWC_VERSION } from './defaults.js';
6
6
  export { validateLwrAppConfig } from './validation/app-config.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -33,17 +33,18 @@ export declare const I18N_ATTRIBUTE_KEYS: ["defaultLocale", "locales", "uriPatte
33
33
  export declare const STATIC_SITE_GENERATOR_ATTRIBUTE_KEYS: ["outputDir", "skipBaseDocumentGeneration", "skipCleanOutputDir", "_additionalModules", "_additionalRoutePaths"];
34
34
  export declare const ROUTE_ATTRIBUTE_KEYS: ["bootstrap", "subRoutes", "contentTemplate", "id", "cache", "layoutTemplate", "method", "path", "rootComponent", "routeHandler", "properties"];
35
35
  export declare const ERROR_ROUTE_ATTRIBUTE_KEYS: ["bootstrap", "subRoutes", "contentTemplate", "id", "layoutTemplate", "rootComponent", "routeHandler", "status", "properties", "cache"];
36
- export declare const BOOTSTRAP_ATTRIBUTE_KEYS: ["autoBoot", "syntheticShadow", "workers", "services", "configAsSrc", "ssr", "preloadData", "mixedMode", "module", "preloadModules", "lwrVersion", "lwcVersion"];
36
+ export declare const BOOTSTRAP_ATTRIBUTE_KEYS: ["autoBoot", "syntheticShadow", "workers", "services", "configAsSrc", "ssr", "preloadData", "proxyForSSR", "includeCookiesForSSR", "mixedMode", "module", "preloadModules", "lwrVersion", "lwcVersion", "preloadResources"];
37
37
  export declare const BASE_PATH_REGEX: RegExp;
38
38
  export declare class ValidationContext {
39
39
  diagnostics: Diagnostic[];
40
40
  sourceText: string;
41
41
  constructor(sourceText: string);
42
42
  private getLocationFromNode;
43
- assertIsObject<T extends keyof ConfigMap>(node: Node, property: T): void;
43
+ assertIsObject(node: Node | undefined, property: string): void;
44
44
  assertIsBoolean(node: Node | undefined, property: string): void;
45
45
  assertIsArray(node: Node | undefined, property: string): void;
46
46
  assertIsSpecifier(node: Node | undefined, property: string): void;
47
+ assertIsFilePattern(node: Node | undefined, property: string): void;
47
48
  assertIsPath(node: Node | undefined, property: string): void;
48
49
  assertIsPort(node: Node | undefined, property: string): void;
49
50
  assertIsServerType(node: Node | undefined, property: string): void;
@@ -89,11 +89,14 @@ export const BOOTSTRAP_ATTRIBUTE_KEYS = createKeys('bootstrap', [
89
89
  'configAsSrc',
90
90
  'ssr',
91
91
  'preloadData',
92
+ 'proxyForSSR',
93
+ 'includeCookiesForSSR',
92
94
  'mixedMode',
93
95
  'module',
94
96
  'preloadModules',
95
97
  'lwrVersion',
96
- 'lwcVersion'
98
+ 'lwcVersion',
99
+ 'preloadResources'
97
100
  ]);
98
101
  function isNotEmptyString(node) {
99
102
  return node.type === 'string' && node.value.length > 0;
@@ -108,7 +111,7 @@ export class ValidationContext {
108
111
  return calculatePositionFromSource(this.sourceText, node);
109
112
  }
110
113
  assertIsObject(node, property) {
111
- if (node.type !== 'object') {
114
+ if (node?.type !== 'object' && node) {
112
115
  this.diagnostics.push({
113
116
  description: descriptions.CONFIG_PARSER.INCORRECT_NODE_TYPE(property, 'object', node.type),
114
117
  location: this.getLocationFromNode(node),
@@ -139,6 +142,22 @@ export class ValidationContext {
139
142
  });
140
143
  }
141
144
  }
145
+ assertIsFilePattern(node, property) {
146
+ const fileExtRegex = /^\.[a-zA-Z0-9]+$/;
147
+ if (node) {
148
+ const children = node.children || [];
149
+ for (const [index, child] of children.entries()) {
150
+ const match = findNodeAtLocation(child, ['match'])?.value;
151
+ if (!fileExtRegex.test(match)) {
152
+ this.diagnostics.push({
153
+ description: descriptions.CONFIG_PARSER.INVALID_FILE_PATTERN(`${property}[${index}].match`, match),
154
+ location: this.getLocationFromNode(node)
155
+ });
156
+ break;
157
+ }
158
+ }
159
+ }
160
+ }
142
161
  assertIsPath(node, property) {
143
162
  if (node && (node.type !== 'string' || node.value[0] !== '/')) {
144
163
  this.diagnostics.push({
@@ -17,10 +17,12 @@ export const SOURCE_BY_PHASE = {
17
17
  * - syntheticShadow: optional boolean
18
18
  * - workers: optional map of string:specifier pairs
19
19
  * - ssr: optional boolean
20
+ * - proxyForSSR: optional boolean
20
21
  * - configAsSrc: optional boolean to include the client bootstrap config as src via in-lined
21
22
  * - module: optional string specifier
22
23
  * - lwrVersion: optional string version
23
24
  * - lwcVersion: optional string version
25
+ * - preloadResources: optional object
24
26
  */
25
27
  function validateBootstrap(node, validationContext, propPrefix) {
26
28
  if (node) {
@@ -31,6 +33,8 @@ function validateBootstrap(node, validationContext, propPrefix) {
31
33
  validationContext.assertIsBoolean(findNode(node, ['autoBoot']), `${propPrefix}.autoBoot`);
32
34
  validationContext.assertIsBoolean(findNode(node, ['ssr']), `${propPrefix}.ssr`);
33
35
  validationContext.assertIsBoolean(findNode(node, ['preloadData']), `${propPrefix}.preloadData`);
36
+ validationContext.assertIsBoolean(findNode(node, ['proxyForSSR']), `${propPrefix}.proxyForSSR`);
37
+ validationContext.assertIsBoolean(findNode(node, ['includeCookiesForSSR']), `${propPrefix}.includeCookiesForSSR`);
34
38
  validationContext.assertIsBoolean(findNode(node, ['mixedMode']), `${propPrefix}.mixedMode`);
35
39
  validationContext.assertIsBoolean(findNode(node, ['configAsSrc']), `${propPrefix}.configAsSrc`);
36
40
  validationContext.assertIsSpecifier(findNode(node, ['module']), `${propPrefix}.module`);
@@ -38,6 +42,7 @@ function validateBootstrap(node, validationContext, propPrefix) {
38
42
  validationContext.assertNotEmptyString(findNode(node, ['lwrVersion']), `${propPrefix}.lwrVersion`);
39
43
  validationContext.assertNotEmptyString(findNode(node, ['lwcVersion']), `${propPrefix}.lwcVersion`);
40
44
  validationContext.assertSsrPreloadData(node, propPrefix);
45
+ validationContext.assertIsFilePattern(findNode(node, ['preloadResources', 'patterns']), `${propPrefix}.preloadResources.patterns`);
41
46
  // Each value in the worker map msut be a specifier
42
47
  const workers = findNode(node, ['workers']);
43
48
  if (workers && workers.children) {
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.15.0-alpha.11",
7
+ "version": "0.15.0-alpha.13",
8
8
  "homepage": "https://developer.salesforce.com/docs/platform/lwr/overview",
9
9
  "repository": {
10
10
  "type": "git",
@@ -42,14 +42,14 @@
42
42
  "test": "jest"
43
43
  },
44
44
  "dependencies": {
45
- "@lwrjs/diagnostics": "0.15.0-alpha.11",
46
- "@lwrjs/instrumentation": "0.15.0-alpha.11",
47
- "@lwrjs/shared-utils": "0.15.0-alpha.11",
45
+ "@lwrjs/diagnostics": "0.15.0-alpha.13",
46
+ "@lwrjs/instrumentation": "0.15.0-alpha.13",
47
+ "@lwrjs/shared-utils": "0.15.0-alpha.13",
48
48
  "fs-extra": "^11.2.0",
49
49
  "jsonc-parser": "^3.3.1"
50
50
  },
51
51
  "devDependencies": {
52
- "@lwrjs/types": "0.15.0-alpha.11",
52
+ "@lwrjs/types": "0.15.0-alpha.13",
53
53
  "jest": "^26.6.3",
54
54
  "memfs": "^4.9.3",
55
55
  "ts-jest": "^26.5.6"
@@ -71,5 +71,5 @@
71
71
  "volta": {
72
72
  "extends": "../../../package.json"
73
73
  },
74
- "gitHead": "86f6f83ff30c750aab3b29448fa484d58918fb05"
74
+ "gitHead": "687327a328b33a1abc3ac45e1406d72ebe7d37b4"
75
75
  }