@lwrjs/config 0.15.0-alpha.2 → 0.15.0-alpha.21
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/defaults.cjs +13 -2
- package/build/cjs/hooks.cjs +1 -1
- package/build/cjs/index.cjs +2 -0
- package/build/cjs/validation/app-config-context.cjs +54 -4
- package/build/cjs/validation/app-config.cjs +5 -0
- package/build/es/defaults.d.ts +14 -0
- package/build/es/defaults.js +22 -1
- package/build/es/hooks.js +1 -1
- package/build/es/index.d.ts +1 -1
- package/build/es/index.js +1 -1
- package/build/es/validation/app-config-context.d.ts +11 -5
- package/build/es/validation/app-config-context.js +54 -4
- package/build/es/validation/app-config.js +7 -0
- package/package.json +6 -6
package/build/cjs/defaults.cjs
CHANGED
|
@@ -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 = "";
|
|
@@ -156,6 +160,7 @@ var DEFAULT_LWR_CONFIG = {
|
|
|
156
160
|
viewTransformers: DEFAULT_VIEW_TRANSFORM_PLUGINS,
|
|
157
161
|
environment: {},
|
|
158
162
|
lwc: {modules: []},
|
|
163
|
+
caseSensitiveRoutes: false,
|
|
159
164
|
routes: [
|
|
160
165
|
LWR_INFO_ROUTE
|
|
161
166
|
],
|
|
@@ -165,7 +170,8 @@ var DEFAULT_LWR_CONFIG = {
|
|
|
165
170
|
serverType: DEFAULT_SERVER_TYPE,
|
|
166
171
|
locker: import_shared_utils.DEFAULT_LWR_LOCKER_CONFIG,
|
|
167
172
|
uriTransformers: DEFAULT_URI_TRANSFORM_PLUGINS,
|
|
168
|
-
i18n: import_runtime_config.DEFAULT_I18N_CONFIG
|
|
173
|
+
i18n: import_runtime_config.DEFAULT_I18N_CONFIG,
|
|
174
|
+
coreProxy: null
|
|
169
175
|
};
|
|
170
176
|
var DEFAULT_LWR_BOOTSTRAP_CONFIG = {
|
|
171
177
|
autoBoot: true,
|
|
@@ -175,9 +181,14 @@ var DEFAULT_LWR_BOOTSTRAP_CONFIG = {
|
|
|
175
181
|
configAsSrc: false,
|
|
176
182
|
ssr: false,
|
|
177
183
|
preloadData: false,
|
|
184
|
+
proxyForSSR: false,
|
|
185
|
+
includeCookiesForSSR: false,
|
|
178
186
|
mixedMode: false,
|
|
179
187
|
module: void 0,
|
|
180
188
|
preloadModules: [],
|
|
181
189
|
lwrVersion: import_package.lwrVersion,
|
|
182
|
-
lwcVersion: import_package.lwcVersion
|
|
190
|
+
lwcVersion: import_package.lwcVersion,
|
|
191
|
+
preloadResources: {
|
|
192
|
+
patterns: []
|
|
193
|
+
}
|
|
183
194
|
};
|
package/build/cjs/hooks.cjs
CHANGED
|
@@ -96,7 +96,7 @@ function executeStartHooks(hooks, globalConfig, runtimeEnvironment, skipValidate
|
|
|
96
96
|
};
|
|
97
97
|
hook.onStart(onStartConfig);
|
|
98
98
|
runtimeEnvironment.basePath = globalConfig.basePath = onStartConfig.basePath || "";
|
|
99
|
-
globalConfig.i18n = onStartConfig.i18n;
|
|
99
|
+
runtimeEnvironment.i18n = globalConfig.i18n = onStartConfig.i18n;
|
|
100
100
|
globalConfig.routes = onStartConfig.routes || [];
|
|
101
101
|
globalConfig.errorRoutes = onStartConfig.errorRoutes || [];
|
|
102
102
|
}
|
package/build/cjs/index.cjs
CHANGED
|
@@ -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,
|
|
@@ -28,6 +28,7 @@ __export(exports, {
|
|
|
28
28
|
ASSET_FILE_ATTRIBUTE_KEYS: () => ASSET_FILE_ATTRIBUTE_KEYS,
|
|
29
29
|
BASE_PATH_REGEX: () => BASE_PATH_REGEX,
|
|
30
30
|
BOOTSTRAP_ATTRIBUTE_KEYS: () => BOOTSTRAP_ATTRIBUTE_KEYS,
|
|
31
|
+
CORE_PROXY_ATTRIBUTE_KEYS: () => CORE_PROXY_ATTRIBUTE_KEYS,
|
|
31
32
|
ERROR_ROUTE_ATTRIBUTE_KEYS: () => ERROR_ROUTE_ATTRIBUTE_KEYS,
|
|
32
33
|
I18N_ATTRIBUTE_KEYS: () => I18N_ATTRIBUTE_KEYS,
|
|
33
34
|
LOCKER_ATTRIBUTE_KEYS: () => LOCKER_ATTRIBUTE_KEYS,
|
|
@@ -52,7 +53,9 @@ var ROOT_ATTRIBUTE_KEYS = createKeys("root", [
|
|
|
52
53
|
"bundleConfig",
|
|
53
54
|
"bundleProviders",
|
|
54
55
|
"cacheDir",
|
|
56
|
+
"caseSensitiveRoutes",
|
|
55
57
|
"contentDir",
|
|
58
|
+
"coreProxy",
|
|
56
59
|
"environment",
|
|
57
60
|
"errorRoutes",
|
|
58
61
|
"esmLoader",
|
|
@@ -85,6 +88,7 @@ var ASSET_DIR_ATTRIBUTE_KEYS = createKeys("assetDir", ["alias", "dir", "urlPath"
|
|
|
85
88
|
var ASSET_FILE_ATTRIBUTE_KEYS = createKeys("assetFile", ["alias", "file", "urlPath"]);
|
|
86
89
|
var LOCKER_ATTRIBUTE_KEYS = createKeys("locker", ["enabled", "trustedComponents"]);
|
|
87
90
|
var I18N_ATTRIBUTE_KEYS = createKeys("i18n", ["defaultLocale", "locales", "uriPattern"]);
|
|
91
|
+
var CORE_PROXY_ATTRIBUTE_KEYS = createKeys("coreProxy", ["origin", "host", "servername", "sitePath"]);
|
|
88
92
|
var STATIC_SITE_GENERATOR_ATTRIBUTE_KEYS = createKeys("staticSiteGenerator", [
|
|
89
93
|
"outputDir",
|
|
90
94
|
"skipBaseDocumentGeneration",
|
|
@@ -125,11 +129,14 @@ var BOOTSTRAP_ATTRIBUTE_KEYS = createKeys("bootstrap", [
|
|
|
125
129
|
"configAsSrc",
|
|
126
130
|
"ssr",
|
|
127
131
|
"preloadData",
|
|
132
|
+
"proxyForSSR",
|
|
133
|
+
"includeCookiesForSSR",
|
|
128
134
|
"mixedMode",
|
|
129
135
|
"module",
|
|
130
136
|
"preloadModules",
|
|
131
137
|
"lwrVersion",
|
|
132
|
-
"lwcVersion"
|
|
138
|
+
"lwcVersion",
|
|
139
|
+
"preloadResources"
|
|
133
140
|
]);
|
|
134
141
|
function isNotEmptyString(node) {
|
|
135
142
|
return node.type === "string" && node.value.length > 0;
|
|
@@ -144,7 +151,7 @@ var ValidationContext = class {
|
|
|
144
151
|
return (0, import_helpers.calculatePositionFromSource)(this.sourceText, node);
|
|
145
152
|
}
|
|
146
153
|
assertIsObject(node, property) {
|
|
147
|
-
if (node
|
|
154
|
+
if (node?.type !== "object" && node) {
|
|
148
155
|
this.diagnostics.push({
|
|
149
156
|
description: import_diagnostics.descriptions.CONFIG_PARSER.INCORRECT_NODE_TYPE(property, "object", node.type),
|
|
150
157
|
location: this.getLocationFromNode(node)
|
|
@@ -175,6 +182,22 @@ var ValidationContext = class {
|
|
|
175
182
|
});
|
|
176
183
|
}
|
|
177
184
|
}
|
|
185
|
+
assertIsFilePattern(node, property) {
|
|
186
|
+
const fileExtRegex = /^\.[a-zA-Z0-9]+$/;
|
|
187
|
+
if (node) {
|
|
188
|
+
const children = node.children || [];
|
|
189
|
+
for (const [index, child] of children.entries()) {
|
|
190
|
+
const match = (0, import_jsonc_parser.findNodeAtLocation)(child, ["match"])?.value;
|
|
191
|
+
if (!fileExtRegex.test(match)) {
|
|
192
|
+
this.diagnostics.push({
|
|
193
|
+
description: import_diagnostics.descriptions.CONFIG_PARSER.INVALID_FILE_PATTERN(`${property}[${index}].match`, match),
|
|
194
|
+
location: this.getLocationFromNode(node)
|
|
195
|
+
});
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
178
201
|
assertIsPath(node, property) {
|
|
179
202
|
if (node && (node.type !== "string" || node.value[0] !== "/")) {
|
|
180
203
|
this.diagnostics.push({
|
|
@@ -183,6 +206,14 @@ var ValidationContext = class {
|
|
|
183
206
|
});
|
|
184
207
|
}
|
|
185
208
|
}
|
|
209
|
+
assertIsOrigin(node, property) {
|
|
210
|
+
if (node && (node.type !== "string" || !/^https?:\/\//i.test(node.value))) {
|
|
211
|
+
this.diagnostics.push({
|
|
212
|
+
description: import_diagnostics.descriptions.CONFIG_PARSER.INVALID_ORIGIN(property, node.value),
|
|
213
|
+
location: this.getLocationFromNode(node)
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
186
217
|
assertIsPort(node, property) {
|
|
187
218
|
if (node && (node.type !== "number" || node.value < 0 || node.value > 65353)) {
|
|
188
219
|
this.diagnostics.push({
|
|
@@ -248,7 +279,7 @@ var ValidationContext = class {
|
|
|
248
279
|
});
|
|
249
280
|
}
|
|
250
281
|
}
|
|
251
|
-
assertIsBasePath(node, property) {
|
|
282
|
+
assertIsBasePath(node, property, allowSlash = false) {
|
|
252
283
|
if (!node) {
|
|
253
284
|
return;
|
|
254
285
|
}
|
|
@@ -257,7 +288,7 @@ var ValidationContext = class {
|
|
|
257
288
|
description: import_diagnostics.descriptions.CONFIG_PARSER.INCORRECT_NODE_TYPE(property, "string", node.type),
|
|
258
289
|
location: this.getLocationFromNode(node)
|
|
259
290
|
});
|
|
260
|
-
} else if (node.value === "") {
|
|
291
|
+
} else if (node.value === "" || allowSlash && node.value === "/") {
|
|
261
292
|
return;
|
|
262
293
|
} else if (node.value.match(BASE_PATH_REGEX) === null) {
|
|
263
294
|
this.diagnostics.push({
|
|
@@ -515,4 +546,23 @@ var ValidationContext = class {
|
|
|
515
546
|
});
|
|
516
547
|
}
|
|
517
548
|
}
|
|
549
|
+
assertIsCoreProxy(node, validationContext) {
|
|
550
|
+
if (node && node.type !== "null") {
|
|
551
|
+
validationContext.assertIsObject(node, "coreProxy");
|
|
552
|
+
validationContext.assertValidKeys(node, "coreProxy", CORE_PROXY_ATTRIBUTE_KEYS);
|
|
553
|
+
validationContext.assertRequiredKeys(node, "coreProxy", ["origin", "host"]);
|
|
554
|
+
validationContext.assertIsOrigin((0, import_jsonc_parser.findNodeAtLocation)(node, ["origin"]), "coreProxy.origin");
|
|
555
|
+
validationContext.assertNotEmptyString((0, import_jsonc_parser.findNodeAtLocation)(node, ["host"]), "coreProxy.host");
|
|
556
|
+
const servername = (0, import_jsonc_parser.findNodeAtLocation)(node, ["servername"]);
|
|
557
|
+
const sitePath = (0, import_jsonc_parser.findNodeAtLocation)(node, ["sitePath"]);
|
|
558
|
+
if (!servername && !sitePath) {
|
|
559
|
+
this.diagnostics.push({
|
|
560
|
+
description: import_diagnostics.descriptions.CONFIG_PARSER.INCOMPLETE_CORE_PROXY(),
|
|
561
|
+
location: this.getLocationFromNode(node)
|
|
562
|
+
});
|
|
563
|
+
}
|
|
564
|
+
servername && validationContext.assertNotEmptyString(servername, "coreProxy.servername");
|
|
565
|
+
sitePath && validationContext.assertIsBasePath(sitePath, "coreProxy.sitePath", true);
|
|
566
|
+
}
|
|
567
|
+
}
|
|
518
568
|
};
|
|
@@ -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) => {
|
|
@@ -239,6 +242,7 @@ function validateRoot(node, validationContext, preMerge) {
|
|
|
239
242
|
validationContext.assertUniqueIds([...routes?.children || [], ...errorRoutes?.children || []], "routes");
|
|
240
243
|
const lockerNode = (0, import_jsonc_parser.findNodeAtLocation)(node, ["locker"]);
|
|
241
244
|
const bundleConfigNode = (0, import_jsonc_parser.findNodeAtLocation)(node, ["bundleConfig"]);
|
|
245
|
+
validationContext.assertIsBoolean((0, import_jsonc_parser.findNodeAtLocation)(node, ["caseSensitiveRoutes"]), "caseSensitiveRoutes");
|
|
242
246
|
validateRoutes(routes, validationContext, preMerge);
|
|
243
247
|
validateErrorRoutes(errorRoutes, validationContext);
|
|
244
248
|
validateRouteHandlers((0, import_jsonc_parser.findNodeAtLocation)(node, ["routeHandlers"]), validationContext);
|
|
@@ -268,6 +272,7 @@ function validateRoot(node, validationContext, preMerge) {
|
|
|
268
272
|
validationContext.assertNotEmptyArray((0, import_jsonc_parser.findNodeAtLocation)(node, ["lwc", "modules"]), "lwc.modules");
|
|
269
273
|
validationContext.assertIsEnvironment((0, import_jsonc_parser.findNodeAtLocation)(node, ["environment"]), "environment");
|
|
270
274
|
validationContext.assertIsBasePath((0, import_jsonc_parser.findNodeAtLocation)(node, ["basePath"]), "basePath");
|
|
275
|
+
validationContext.assertIsCoreProxy((0, import_jsonc_parser.findNodeAtLocation)(node, ["coreProxy"]), validationContext);
|
|
271
276
|
}
|
|
272
277
|
function validateLwrAppConfig(config, phase) {
|
|
273
278
|
const span = (0, import_instrumentation.getTracer)().startSpan({name: import_instrumentation.ConfigSpan.ValidateConfig});
|
package/build/es/defaults.d.ts
CHANGED
|
@@ -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;
|
package/build/es/defaults.js
CHANGED
|
@@ -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 = '';
|
|
@@ -121,6 +135,7 @@ export const DEFAULT_LWR_CONFIG = {
|
|
|
121
135
|
viewTransformers: DEFAULT_VIEW_TRANSFORM_PLUGINS,
|
|
122
136
|
environment: {},
|
|
123
137
|
lwc: { modules: [] },
|
|
138
|
+
caseSensitiveRoutes: false,
|
|
124
139
|
routes: [
|
|
125
140
|
LWR_INFO_ROUTE,
|
|
126
141
|
],
|
|
@@ -131,6 +146,7 @@ export const DEFAULT_LWR_CONFIG = {
|
|
|
131
146
|
locker: DEFAULT_LWR_LOCKER_CONFIG,
|
|
132
147
|
uriTransformers: DEFAULT_URI_TRANSFORM_PLUGINS,
|
|
133
148
|
i18n: DEFAULT_I18N_CONFIG,
|
|
149
|
+
coreProxy: null, // unset by default
|
|
134
150
|
};
|
|
135
151
|
export const DEFAULT_LWR_BOOTSTRAP_CONFIG = {
|
|
136
152
|
autoBoot: true,
|
|
@@ -140,10 +156,15 @@ export const DEFAULT_LWR_BOOTSTRAP_CONFIG = {
|
|
|
140
156
|
configAsSrc: false,
|
|
141
157
|
ssr: false,
|
|
142
158
|
preloadData: false,
|
|
159
|
+
proxyForSSR: false,
|
|
160
|
+
includeCookiesForSSR: false,
|
|
143
161
|
mixedMode: false,
|
|
144
162
|
module: undefined,
|
|
145
163
|
preloadModules: [],
|
|
146
164
|
lwrVersion: LWR_VERSION,
|
|
147
|
-
lwcVersion: LWC_VERSION
|
|
165
|
+
lwcVersion: LWC_VERSION,
|
|
166
|
+
preloadResources: {
|
|
167
|
+
patterns: []
|
|
168
|
+
},
|
|
148
169
|
};
|
|
149
170
|
//# sourceMappingURL=defaults.js.map
|
package/build/es/hooks.js
CHANGED
|
@@ -98,7 +98,7 @@ export function executeStartHooks(hooks, globalConfig, runtimeEnvironment, skipV
|
|
|
98
98
|
hook.onStart(onStartConfig);
|
|
99
99
|
// copy updated values back to the globalConfig
|
|
100
100
|
runtimeEnvironment.basePath = globalConfig.basePath = onStartConfig.basePath || '';
|
|
101
|
-
globalConfig.i18n = onStartConfig.i18n;
|
|
101
|
+
runtimeEnvironment.i18n = globalConfig.i18n = onStartConfig.i18n;
|
|
102
102
|
globalConfig.routes = (onStartConfig.routes || []);
|
|
103
103
|
globalConfig.errorRoutes = (onStartConfig.errorRoutes || []);
|
|
104
104
|
}
|
package/build/es/index.d.ts
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.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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AssetDirConfig, AssetFileConfig, LwrErrorRoute, LwrRoute, NormalizedLwrGlobalConfig, NormalizedLwrAppBootstrapConfig, LwrLockerConfig, RouteHandlersConfig, BundleConfig, I18NConfig, Locale, StaticSiteGenerator } from '@lwrjs/types';
|
|
1
|
+
import type { AssetDirConfig, AssetFileConfig, DirectToCoreProxy, LwrErrorRoute, LwrRoute, NormalizedLwrGlobalConfig, NormalizedLwrAppBootstrapConfig, LwrLockerConfig, RouteHandlersConfig, BundleConfig, I18NConfig, Locale, StaticSiteGenerator } from '@lwrjs/types';
|
|
2
2
|
import { Node } from 'jsonc-parser';
|
|
3
3
|
import { Diagnostic } from '@lwrjs/diagnostics';
|
|
4
4
|
type RequiredAssetDirConfig = Required<AssetDirConfig>;
|
|
@@ -9,6 +9,7 @@ type RequiredLwrLockerConfig = Required<LwrLockerConfig>;
|
|
|
9
9
|
type RequiredI18NConfig = Required<I18NConfig>;
|
|
10
10
|
type RequiredLocalesConfig = Required<Locale>;
|
|
11
11
|
type RequiredSSGConfig = Required<StaticSiteGenerator>;
|
|
12
|
+
type RequiredDirectToCoreProxy = Required<DirectToCoreProxy>;
|
|
12
13
|
interface ConfigMap {
|
|
13
14
|
root: NormalizedLwrGlobalConfig;
|
|
14
15
|
assetDir: RequiredAssetDirConfig;
|
|
@@ -24,34 +25,38 @@ interface ConfigMap {
|
|
|
24
25
|
i18n: RequiredI18NConfig;
|
|
25
26
|
'i18n.locales': RequiredLocalesConfig;
|
|
26
27
|
staticSiteGenerator: RequiredSSGConfig;
|
|
28
|
+
coreProxy: RequiredDirectToCoreProxy;
|
|
27
29
|
}
|
|
28
|
-
export declare const ROOT_ATTRIBUTE_KEYS: ["amdLoader", "apiVersion", "assets", "assetProviders", "assetTransformers", "bundleConfig", "bundleProviders", "cacheDir", "contentDir", "environment", "errorRoutes", "esmLoader", "staticSiteGenerator", "globalData", "globalDataDir", "hooks", "i18n", "ignoreLwrConfigFile", "lwrConfigFile", "layoutsDir", "locker", "lwc", "lwrVersion", "moduleProviders", "port", "basePath", "resourceProviders", "rootDir", "routeHandlers", "routes", "serverMode", "minify", "serverType", "uriTransformers", "viewProviders", "viewTransformers"];
|
|
30
|
+
export declare const ROOT_ATTRIBUTE_KEYS: ["amdLoader", "apiVersion", "assets", "assetProviders", "assetTransformers", "bundleConfig", "bundleProviders", "cacheDir", "caseSensitiveRoutes", "contentDir", "coreProxy", "environment", "errorRoutes", "esmLoader", "staticSiteGenerator", "globalData", "globalDataDir", "hooks", "i18n", "ignoreLwrConfigFile", "lwrConfigFile", "layoutsDir", "locker", "lwc", "lwrVersion", "moduleProviders", "port", "basePath", "resourceProviders", "rootDir", "routeHandlers", "routes", "serverMode", "minify", "serverType", "uriTransformers", "viewProviders", "viewTransformers"];
|
|
29
31
|
export declare const ASSET_DIR_ATTRIBUTE_KEYS: ["alias", "dir", "urlPath", "root"];
|
|
30
32
|
export declare const ASSET_FILE_ATTRIBUTE_KEYS: ["alias", "file", "urlPath"];
|
|
31
33
|
export declare const LOCKER_ATTRIBUTE_KEYS: ["enabled", "trustedComponents"];
|
|
32
34
|
export declare const I18N_ATTRIBUTE_KEYS: ["defaultLocale", "locales", "uriPattern"];
|
|
35
|
+
export declare const CORE_PROXY_ATTRIBUTE_KEYS: ["origin", "host", "servername", "sitePath"];
|
|
33
36
|
export declare const STATIC_SITE_GENERATOR_ATTRIBUTE_KEYS: ["outputDir", "skipBaseDocumentGeneration", "skipCleanOutputDir", "_additionalModules", "_additionalRoutePaths"];
|
|
34
37
|
export declare const ROUTE_ATTRIBUTE_KEYS: ["bootstrap", "subRoutes", "contentTemplate", "id", "cache", "layoutTemplate", "method", "path", "rootComponent", "routeHandler", "properties"];
|
|
35
38
|
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"];
|
|
39
|
+
export declare const BOOTSTRAP_ATTRIBUTE_KEYS: ["autoBoot", "syntheticShadow", "workers", "services", "configAsSrc", "ssr", "preloadData", "proxyForSSR", "includeCookiesForSSR", "mixedMode", "module", "preloadModules", "lwrVersion", "lwcVersion", "preloadResources"];
|
|
37
40
|
export declare const BASE_PATH_REGEX: RegExp;
|
|
38
41
|
export declare class ValidationContext {
|
|
39
42
|
diagnostics: Diagnostic[];
|
|
40
43
|
sourceText: string;
|
|
41
44
|
constructor(sourceText: string);
|
|
42
45
|
private getLocationFromNode;
|
|
43
|
-
assertIsObject
|
|
46
|
+
assertIsObject(node: Node | undefined, property: string): void;
|
|
44
47
|
assertIsBoolean(node: Node | undefined, property: string): void;
|
|
45
48
|
assertIsArray(node: Node | undefined, property: string): void;
|
|
46
49
|
assertIsSpecifier(node: Node | undefined, property: string): void;
|
|
50
|
+
assertIsFilePattern(node: Node | undefined, property: string): void;
|
|
47
51
|
assertIsPath(node: Node | undefined, property: string): void;
|
|
52
|
+
assertIsOrigin(node: Node | undefined, property: string): void;
|
|
48
53
|
assertIsPort(node: Node | undefined, property: string): void;
|
|
49
54
|
assertIsServerType(node: Node | undefined, property: string): void;
|
|
50
55
|
assertIsStaticSiteGenerator(node: Node | undefined, property: string): void;
|
|
51
56
|
assertIsMethod(node: Node | undefined, property: string): void;
|
|
52
57
|
assertIsStatus(node: Node | undefined, property: string): void;
|
|
53
58
|
assertIsEnvironment(node: Node | undefined, property: string): void;
|
|
54
|
-
assertIsBasePath(node: Node | undefined, property: string): void;
|
|
59
|
+
assertIsBasePath(node: Node | undefined, property: string, allowSlash?: boolean): void;
|
|
55
60
|
assertNotEmptyString(node: Node | undefined, property: string): void;
|
|
56
61
|
assertNotEmptyArray(node: Node | undefined, property: string): void;
|
|
57
62
|
assertHasOneOrMore(node: Node, property: string, childProps: string[]): void;
|
|
@@ -69,6 +74,7 @@ export declare class ValidationContext {
|
|
|
69
74
|
assertDefaultInLocales(node: Node, defaultLocale: string, localesIds: string[]): void;
|
|
70
75
|
assertFallbackIds(nodes: Node[]): void;
|
|
71
76
|
assertSsrPreloadData(node: Node, propPrefix: string): void;
|
|
77
|
+
assertIsCoreProxy(node: Node | undefined, validationContext: ValidationContext): void;
|
|
72
78
|
}
|
|
73
79
|
export {};
|
|
74
80
|
//# sourceMappingURL=app-config-context.d.ts.map
|
|
@@ -16,7 +16,9 @@ export const ROOT_ATTRIBUTE_KEYS = createKeys('root', [
|
|
|
16
16
|
'bundleConfig',
|
|
17
17
|
'bundleProviders',
|
|
18
18
|
'cacheDir',
|
|
19
|
+
'caseSensitiveRoutes',
|
|
19
20
|
'contentDir',
|
|
21
|
+
'coreProxy',
|
|
20
22
|
'environment',
|
|
21
23
|
'errorRoutes',
|
|
22
24
|
'esmLoader',
|
|
@@ -49,6 +51,7 @@ export const ASSET_DIR_ATTRIBUTE_KEYS = createKeys('assetDir', ['alias', 'dir',
|
|
|
49
51
|
export const ASSET_FILE_ATTRIBUTE_KEYS = createKeys('assetFile', ['alias', 'file', 'urlPath']);
|
|
50
52
|
export const LOCKER_ATTRIBUTE_KEYS = createKeys('locker', ['enabled', 'trustedComponents']);
|
|
51
53
|
export const I18N_ATTRIBUTE_KEYS = createKeys('i18n', ['defaultLocale', 'locales', 'uriPattern']);
|
|
54
|
+
export const CORE_PROXY_ATTRIBUTE_KEYS = createKeys('coreProxy', ['origin', 'host', 'servername', 'sitePath']);
|
|
52
55
|
export const STATIC_SITE_GENERATOR_ATTRIBUTE_KEYS = createKeys('staticSiteGenerator', [
|
|
53
56
|
'outputDir',
|
|
54
57
|
'skipBaseDocumentGeneration',
|
|
@@ -89,11 +92,14 @@ export const BOOTSTRAP_ATTRIBUTE_KEYS = createKeys('bootstrap', [
|
|
|
89
92
|
'configAsSrc',
|
|
90
93
|
'ssr',
|
|
91
94
|
'preloadData',
|
|
95
|
+
'proxyForSSR',
|
|
96
|
+
'includeCookiesForSSR',
|
|
92
97
|
'mixedMode',
|
|
93
98
|
'module',
|
|
94
99
|
'preloadModules',
|
|
95
100
|
'lwrVersion',
|
|
96
|
-
'lwcVersion'
|
|
101
|
+
'lwcVersion',
|
|
102
|
+
'preloadResources'
|
|
97
103
|
]);
|
|
98
104
|
function isNotEmptyString(node) {
|
|
99
105
|
return node.type === 'string' && node.value.length > 0;
|
|
@@ -108,7 +114,7 @@ export class ValidationContext {
|
|
|
108
114
|
return calculatePositionFromSource(this.sourceText, node);
|
|
109
115
|
}
|
|
110
116
|
assertIsObject(node, property) {
|
|
111
|
-
if (node
|
|
117
|
+
if (node?.type !== 'object' && node) {
|
|
112
118
|
this.diagnostics.push({
|
|
113
119
|
description: descriptions.CONFIG_PARSER.INCORRECT_NODE_TYPE(property, 'object', node.type),
|
|
114
120
|
location: this.getLocationFromNode(node),
|
|
@@ -139,6 +145,22 @@ export class ValidationContext {
|
|
|
139
145
|
});
|
|
140
146
|
}
|
|
141
147
|
}
|
|
148
|
+
assertIsFilePattern(node, property) {
|
|
149
|
+
const fileExtRegex = /^\.[a-zA-Z0-9]+$/;
|
|
150
|
+
if (node) {
|
|
151
|
+
const children = node.children || [];
|
|
152
|
+
for (const [index, child] of children.entries()) {
|
|
153
|
+
const match = findNodeAtLocation(child, ['match'])?.value;
|
|
154
|
+
if (!fileExtRegex.test(match)) {
|
|
155
|
+
this.diagnostics.push({
|
|
156
|
+
description: descriptions.CONFIG_PARSER.INVALID_FILE_PATTERN(`${property}[${index}].match`, match),
|
|
157
|
+
location: this.getLocationFromNode(node)
|
|
158
|
+
});
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
142
164
|
assertIsPath(node, property) {
|
|
143
165
|
if (node && (node.type !== 'string' || node.value[0] !== '/')) {
|
|
144
166
|
this.diagnostics.push({
|
|
@@ -147,6 +169,14 @@ export class ValidationContext {
|
|
|
147
169
|
});
|
|
148
170
|
}
|
|
149
171
|
}
|
|
172
|
+
assertIsOrigin(node, property) {
|
|
173
|
+
if (node && (node.type !== 'string' || !/^https?:\/\//i.test(node.value))) {
|
|
174
|
+
this.diagnostics.push({
|
|
175
|
+
description: descriptions.CONFIG_PARSER.INVALID_ORIGIN(property, node.value),
|
|
176
|
+
location: this.getLocationFromNode(node),
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
150
180
|
assertIsPort(node, property) {
|
|
151
181
|
if (node && (node.type !== 'number' || node.value < 0 || node.value > 65353)) {
|
|
152
182
|
this.diagnostics.push({
|
|
@@ -212,7 +242,7 @@ export class ValidationContext {
|
|
|
212
242
|
});
|
|
213
243
|
}
|
|
214
244
|
}
|
|
215
|
-
assertIsBasePath(node, property) {
|
|
245
|
+
assertIsBasePath(node, property, allowSlash = false) {
|
|
216
246
|
if (!node) {
|
|
217
247
|
return;
|
|
218
248
|
}
|
|
@@ -222,7 +252,7 @@ export class ValidationContext {
|
|
|
222
252
|
location: this.getLocationFromNode(node),
|
|
223
253
|
});
|
|
224
254
|
}
|
|
225
|
-
else if (node.value === '') {
|
|
255
|
+
else if (node.value === '' || allowSlash && node.value === '/') {
|
|
226
256
|
return;
|
|
227
257
|
}
|
|
228
258
|
else if (node.value.match(BASE_PATH_REGEX) === null) {
|
|
@@ -502,5 +532,25 @@ export class ValidationContext {
|
|
|
502
532
|
});
|
|
503
533
|
}
|
|
504
534
|
}
|
|
535
|
+
assertIsCoreProxy(node, validationContext) {
|
|
536
|
+
if (node && node.type !== 'null') {
|
|
537
|
+
validationContext.assertIsObject(node, 'coreProxy');
|
|
538
|
+
validationContext.assertValidKeys(node, 'coreProxy', CORE_PROXY_ATTRIBUTE_KEYS);
|
|
539
|
+
validationContext.assertRequiredKeys(node, 'coreProxy', ['origin', 'host']);
|
|
540
|
+
validationContext.assertIsOrigin(findNodeAtLocation(node, ['origin']), 'coreProxy.origin');
|
|
541
|
+
validationContext.assertNotEmptyString(findNodeAtLocation(node, ['host']), 'coreProxy.host');
|
|
542
|
+
// Validate locales the config has one of [servername, sitePath]
|
|
543
|
+
const servername = findNodeAtLocation(node, ['servername']);
|
|
544
|
+
const sitePath = findNodeAtLocation(node, ['sitePath']);
|
|
545
|
+
if (!servername && !sitePath) {
|
|
546
|
+
this.diagnostics.push({
|
|
547
|
+
description: descriptions.CONFIG_PARSER.INCOMPLETE_CORE_PROXY(),
|
|
548
|
+
location: this.getLocationFromNode(node),
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
servername && validationContext.assertNotEmptyString(servername, 'coreProxy.servername');
|
|
552
|
+
sitePath && validationContext.assertIsBasePath(sitePath, 'coreProxy.sitePath', true);
|
|
553
|
+
}
|
|
554
|
+
}
|
|
505
555
|
}
|
|
506
556
|
//# sourceMappingURL=app-config-context.js.map
|
|
@@ -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) {
|
|
@@ -306,6 +311,7 @@ function validateRoot(node, validationContext, preMerge) {
|
|
|
306
311
|
validationContext.assertUniqueIds([...(routes?.children || []), ...(errorRoutes?.children || [])], 'routes');
|
|
307
312
|
const lockerNode = findNode(node, ['locker']);
|
|
308
313
|
const bundleConfigNode = findNode(node, ['bundleConfig']);
|
|
314
|
+
validationContext.assertIsBoolean(findNode(node, ['caseSensitiveRoutes']), 'caseSensitiveRoutes');
|
|
309
315
|
validateRoutes(routes, validationContext, preMerge);
|
|
310
316
|
validateErrorRoutes(errorRoutes, validationContext);
|
|
311
317
|
validateRouteHandlers(findNode(node, ['routeHandlers']), validationContext);
|
|
@@ -335,6 +341,7 @@ function validateRoot(node, validationContext, preMerge) {
|
|
|
335
341
|
validationContext.assertNotEmptyArray(findNode(node, ['lwc', 'modules']), 'lwc.modules');
|
|
336
342
|
validationContext.assertIsEnvironment(findNode(node, ['environment']), 'environment');
|
|
337
343
|
validationContext.assertIsBasePath(findNode(node, ['basePath']), 'basePath');
|
|
344
|
+
validationContext.assertIsCoreProxy(findNode(node, ['coreProxy']), validationContext);
|
|
338
345
|
}
|
|
339
346
|
export function validateLwrAppConfig(config, phase) {
|
|
340
347
|
const span = getTracer().startSpan({ name: ConfigSpan.ValidateConfig });
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "0.15.0-alpha.
|
|
7
|
+
"version": "0.15.0-alpha.21",
|
|
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.
|
|
46
|
-
"@lwrjs/instrumentation": "0.15.0-alpha.
|
|
47
|
-
"@lwrjs/shared-utils": "0.15.0-alpha.
|
|
45
|
+
"@lwrjs/diagnostics": "0.15.0-alpha.21",
|
|
46
|
+
"@lwrjs/instrumentation": "0.15.0-alpha.21",
|
|
47
|
+
"@lwrjs/shared-utils": "0.15.0-alpha.21",
|
|
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.
|
|
52
|
+
"@lwrjs/types": "0.15.0-alpha.21",
|
|
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": "
|
|
74
|
+
"gitHead": "4c09ff654569ab490fc77f196d3230b31404940e"
|
|
75
75
|
}
|