@lwrjs/view-registry 0.6.0-alpha.2 → 0.6.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/index.cjs +39 -39
- package/build/cjs/linkers/legacy_view_bootstrap.cjs +20 -19
- package/build/cjs/linkers/link-lwr-resources.cjs +11 -11
- package/build/cjs/linkers/utils.cjs +35 -14
- package/build/cjs/linkers/view_bootstrap.cjs +21 -20
- package/build/cjs/utils.cjs +30 -30
- package/build/cjs/view-handler.cjs +33 -33
- package/build/es/linkers/legacy_view_bootstrap.js +3 -2
- package/build/es/linkers/utils.d.ts +2 -1
- package/build/es/linkers/utils.js +20 -0
- package/build/es/linkers/view_bootstrap.js +3 -2
- package/build/es/view-handler.js +1 -0
- package/package.json +7 -7
package/build/cjs/index.cjs
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
var __create = Object.create;
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
3
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
8
8
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
9
|
for (var name in all)
|
|
11
|
-
__defProp(target, name, {
|
|
10
|
+
__defProp(target, name, {get: all[name], enumerable: true});
|
|
12
11
|
};
|
|
13
|
-
var
|
|
12
|
+
var __exportStar = (target, module2, desc) => {
|
|
14
13
|
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
14
|
for (let key of __getOwnPropNames(module2))
|
|
16
15
|
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
-
__defProp(target, key, {
|
|
16
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
18
17
|
}
|
|
19
18
|
return target;
|
|
20
19
|
};
|
|
21
20
|
var __toModule = (module2) => {
|
|
22
|
-
return
|
|
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);
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
// packages/@lwrjs/view-registry/src/index.ts
|
|
25
|
+
__markAsModule(exports);
|
|
26
26
|
__export(exports, {
|
|
27
27
|
LwrViewHandler: () => import_view_handler.LwrViewHandler,
|
|
28
28
|
LwrViewRegistry: () => LwrViewRegistry
|
|
@@ -49,14 +49,14 @@ var LwrViewRegistry = class {
|
|
|
49
49
|
this.globalData = context.globalData;
|
|
50
50
|
this.appEmitter = context.appEmitter;
|
|
51
51
|
const observer = context.appObserver;
|
|
52
|
-
observer.onViewSourceChange(({
|
|
53
|
-
observer.onModuleDefinitionChange(({
|
|
54
|
-
observer.onAssetSourceChange(({
|
|
52
|
+
observer.onViewSourceChange(({payload}) => this.onViewSourceChange(payload));
|
|
53
|
+
observer.onModuleDefinitionChange(({payload}) => this.onModuleDefinitionChange(payload));
|
|
54
|
+
observer.onAssetSourceChange(({payload}) => this.onAssetSourceChange(payload));
|
|
55
55
|
}
|
|
56
56
|
async onModuleDefinitionChange(moduleDefinition) {
|
|
57
57
|
const versionedSpecifier = (0, import_shared_utils.getSpecifier)(moduleDefinition);
|
|
58
|
-
for (const [id, {
|
|
59
|
-
const {
|
|
58
|
+
for (const [id, {viewDefinition}] of this.viewDefinitions.entries()) {
|
|
59
|
+
const {viewRecord} = viewDefinition;
|
|
60
60
|
const uriMap = viewRecord.bootstrapModule?.flatGraph.uriMap;
|
|
61
61
|
if (uriMap) {
|
|
62
62
|
Object.keys(uriMap);
|
|
@@ -71,10 +71,10 @@ var LwrViewRegistry = class {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
async onViewSourceChange(compiledView) {
|
|
74
|
-
const {
|
|
75
|
-
const compiledViewCacheKey = (0, import_shared_utils.getCacheKeyFromJson)({
|
|
74
|
+
const {contentTemplate, rootComponent} = compiledView.viewId;
|
|
75
|
+
const compiledViewCacheKey = (0, import_shared_utils.getCacheKeyFromJson)({contentTemplate, rootComponent});
|
|
76
76
|
this.compiledViews.set(compiledViewCacheKey, compiledView);
|
|
77
|
-
for (const [id, {
|
|
77
|
+
for (const [id, {view}] of this.viewDefinitions.entries()) {
|
|
78
78
|
const {
|
|
79
79
|
contentTemplate: eContentTempl,
|
|
80
80
|
layoutTemplate: eLayoutTemplate,
|
|
@@ -87,8 +87,8 @@ var LwrViewRegistry = class {
|
|
|
87
87
|
}
|
|
88
88
|
onAssetSourceChange(asset) {
|
|
89
89
|
const assetId = asset.entry;
|
|
90
|
-
for (const [id, {
|
|
91
|
-
const {
|
|
90
|
+
for (const [id, {viewDefinition}] of this.viewDefinitions.entries()) {
|
|
91
|
+
const {viewRecord} = viewDefinition;
|
|
92
92
|
const someAssets = viewRecord.assetReferences?.some((ref) => {
|
|
93
93
|
return ref.override?.entry === assetId;
|
|
94
94
|
});
|
|
@@ -122,8 +122,8 @@ var LwrViewRegistry = class {
|
|
|
122
122
|
throw new Error(`No View provider was able to resolve a view for template: ${viewId.contentTemplate}`);
|
|
123
123
|
}
|
|
124
124
|
async getView(viewId, skipCaching = false) {
|
|
125
|
-
const {
|
|
126
|
-
const compiledViewCacheKey = (0, import_shared_utils.getCacheKeyFromJson)({
|
|
125
|
+
const {contentTemplate, rootComponent} = viewId;
|
|
126
|
+
const compiledViewCacheKey = (0, import_shared_utils.getCacheKeyFromJson)({contentTemplate, rootComponent});
|
|
127
127
|
if (!skipCaching && this.compiledViews.has(compiledViewCacheKey)) {
|
|
128
128
|
return this.compiledViews.get(compiledViewCacheKey);
|
|
129
129
|
}
|
|
@@ -134,8 +134,8 @@ var LwrViewRegistry = class {
|
|
|
134
134
|
return compiledView;
|
|
135
135
|
}
|
|
136
136
|
hasViewDefinition(view, viewParams, runtimeEnvironment, runtimeParams, renderOptions) {
|
|
137
|
-
const {
|
|
138
|
-
const {
|
|
137
|
+
const {id, bootstrap, rootComponent, contentTemplate, layoutTemplate} = view;
|
|
138
|
+
const {freezeAssets, viewParamCacheKey} = (0, import_utils.normalizeRenderOptions)(this.runtimeEnvironment, renderOptions);
|
|
139
139
|
const viewDefId = (0, import_shared_utils.getCacheKeyFromJson)({
|
|
140
140
|
id,
|
|
141
141
|
bootstrap,
|
|
@@ -156,8 +156,8 @@ var LwrViewRegistry = class {
|
|
|
156
156
|
return false;
|
|
157
157
|
}
|
|
158
158
|
async getViewDefinition(view, viewParams, runtimeEnvironment, runtimeParams, renderOptions) {
|
|
159
|
-
const {
|
|
160
|
-
const {
|
|
159
|
+
const {id, bootstrap, rootComponent, contentTemplate, layoutTemplate} = view;
|
|
160
|
+
const {skipCaching, freezeAssets, viewParamCacheKey} = (0, import_utils.normalizeRenderOptions)(this.runtimeEnvironment, renderOptions);
|
|
161
161
|
const viewDefCacheKey = (0, import_shared_utils.getCacheKeyFromJson)({
|
|
162
162
|
id,
|
|
163
163
|
bootstrap,
|
|
@@ -180,13 +180,13 @@ var LwrViewRegistry = class {
|
|
|
180
180
|
if (this.pendingViewDefinitions.has(pendingViewDefCacheKey)) {
|
|
181
181
|
return this.pendingViewDefinitions.get(pendingViewDefCacheKey);
|
|
182
182
|
}
|
|
183
|
-
const pendingViewDefinition = this.renderView({
|
|
183
|
+
const pendingViewDefinition = this.renderView({id, bootstrap, rootComponent, contentTemplate, layoutTemplate}, viewParams, runtimeEnvironment, runtimeParams, renderOptions);
|
|
184
184
|
this.pendingViewDefinitions.set(pendingViewDefCacheKey, pendingViewDefinition);
|
|
185
185
|
const viewDefinition = await pendingViewDefinition;
|
|
186
186
|
this.pendingViewDefinitions.delete(pendingViewDefCacheKey);
|
|
187
187
|
if (cacheDisabled === false) {
|
|
188
188
|
this.viewDefinitions.set(viewDefCacheKey, {
|
|
189
|
-
view: {
|
|
189
|
+
view: {id, bootstrap, rootComponent, contentTemplate, layoutTemplate},
|
|
190
190
|
viewDefinition,
|
|
191
191
|
paramKey: viewParamKey
|
|
192
192
|
});
|
|
@@ -194,9 +194,9 @@ var LwrViewRegistry = class {
|
|
|
194
194
|
return viewDefinition;
|
|
195
195
|
}
|
|
196
196
|
async renderView(view, viewParams, runtimeEnvironment, runtimeParams = {}, renderOptions) {
|
|
197
|
-
const {
|
|
197
|
+
const {contentTemplate, rootComponent, layoutTemplate} = view;
|
|
198
198
|
const lwrResourcesId = `__LWR_RESOURCES__${Date.now()}`;
|
|
199
|
-
const renderedContent = await this.render({
|
|
199
|
+
const renderedContent = await this.render({contentTemplate, rootComponent}, {...viewParams, lwr_resources: lwrResourcesId}, renderOptions);
|
|
200
200
|
let normalizedRenderOptions = (0, import_utils.normalizeRenderOptions)(this.runtimeEnvironment, renderedContent.options, renderOptions);
|
|
201
201
|
const layout = layoutTemplate || renderedContent.compiledView.layoutTemplate;
|
|
202
202
|
if (!layout) {
|
|
@@ -206,12 +206,12 @@ var LwrViewRegistry = class {
|
|
|
206
206
|
runtimeEnvironment,
|
|
207
207
|
runtimeParams,
|
|
208
208
|
renderOptions: normalizedRenderOptions,
|
|
209
|
-
contentIds: {
|
|
209
|
+
contentIds: {lwrResourcesId}
|
|
210
210
|
});
|
|
211
211
|
return renderedViewDef2;
|
|
212
212
|
}
|
|
213
213
|
const layoutTemplatePath = (0, import_shared_utils.normalizeResourcePath)(layout, this.globalConfig);
|
|
214
|
-
const renderedLayout = await this.render({
|
|
214
|
+
const renderedLayout = await this.render({contentTemplate: layoutTemplatePath}, {
|
|
215
215
|
...renderedContent.compiledView.properties,
|
|
216
216
|
...viewParams,
|
|
217
217
|
body: renderedContent.renderedView,
|
|
@@ -235,19 +235,19 @@ var LwrViewRegistry = class {
|
|
|
235
235
|
]
|
|
236
236
|
}
|
|
237
237
|
}, {
|
|
238
|
-
view: {
|
|
238
|
+
view: {...view, layoutTemplate: layoutTemplatePath},
|
|
239
239
|
viewParams,
|
|
240
240
|
runtimeEnvironment,
|
|
241
241
|
runtimeParams,
|
|
242
242
|
renderOptions: normalizedRenderOptions,
|
|
243
|
-
contentIds: {
|
|
243
|
+
contentIds: {lwrResourcesId},
|
|
244
244
|
importer: renderedContent.compiledView.filePath
|
|
245
245
|
});
|
|
246
246
|
return renderedViewDef;
|
|
247
247
|
}
|
|
248
248
|
async render(viewId, viewParams, renderOptions) {
|
|
249
249
|
const globalContext = this.globalData;
|
|
250
|
-
const {
|
|
250
|
+
const {rootComponent, contentTemplate} = viewId;
|
|
251
251
|
const compiledView = await this.getView({
|
|
252
252
|
contentTemplate,
|
|
253
253
|
rootComponent
|
|
@@ -273,14 +273,14 @@ var LwrViewRegistry = class {
|
|
|
273
273
|
contentIds,
|
|
274
274
|
importer
|
|
275
275
|
} = viewContext;
|
|
276
|
-
const {
|
|
277
|
-
const {
|
|
278
|
-
const {
|
|
279
|
-
const runtimeEnvironment = {
|
|
276
|
+
const {skipMetadataCollection, freezeAssets} = renderOptions;
|
|
277
|
+
const {lwrResourcesId} = contentIds;
|
|
278
|
+
const {moduleRegistry, resourceRegistry, moduleBundler} = this;
|
|
279
|
+
const runtimeEnvironment = {...runtimeEnv, immutableAssets: freezeAssets};
|
|
280
280
|
const {
|
|
281
281
|
renderedView: renderedViewContent,
|
|
282
282
|
metadata: renderedViewMetadata,
|
|
283
|
-
compiledView: {
|
|
283
|
+
compiledView: {immutable = true}
|
|
284
284
|
} = renderedView;
|
|
285
285
|
const linkedMetadata = skipMetadataCollection ? renderedViewMetadata : await (0, import_shared_utils.extractMetadataFromHtml)(renderedViewContent);
|
|
286
286
|
const mergedViewContext = {
|
|
@@ -294,7 +294,7 @@ var LwrViewRegistry = class {
|
|
|
294
294
|
}
|
|
295
295
|
const linkedAssetContent = stringBuilder.toString();
|
|
296
296
|
if (linkedAssetContent.includes(lwrResourcesId)) {
|
|
297
|
-
const {
|
|
297
|
+
const {renderedView: linkedView, viewRecord} = await (0, import_link_lwr_resources.linkLwrResources)(linkedAssetContent, view, viewParams, {
|
|
298
298
|
lwrResourcesId,
|
|
299
299
|
viewMetadata: linkedMetadata,
|
|
300
300
|
moduleRegistry,
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
var __create = Object.create;
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
3
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
8
8
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
9
|
for (var name in all)
|
|
11
|
-
__defProp(target, name, {
|
|
10
|
+
__defProp(target, name, {get: all[name], enumerable: true});
|
|
12
11
|
};
|
|
13
|
-
var
|
|
12
|
+
var __exportStar = (target, module2, desc) => {
|
|
14
13
|
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
14
|
for (let key of __getOwnPropNames(module2))
|
|
16
15
|
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
-
__defProp(target, key, {
|
|
16
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
18
17
|
}
|
|
19
18
|
return target;
|
|
20
19
|
};
|
|
21
20
|
var __toModule = (module2) => {
|
|
22
|
-
return
|
|
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);
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
// packages/@lwrjs/view-registry/src/linkers/legacy_view_bootstrap.ts
|
|
25
|
+
__markAsModule(exports);
|
|
26
26
|
__export(exports, {
|
|
27
27
|
getHtmlResources: () => getHtmlResources
|
|
28
28
|
});
|
|
@@ -39,9 +39,9 @@ async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
39
39
|
resourceRegistry,
|
|
40
40
|
viewMetadata
|
|
41
41
|
} = resourceContext;
|
|
42
|
-
const {
|
|
43
|
-
const {
|
|
44
|
-
const {
|
|
42
|
+
const {id: appName, bootstrap: {services} = {services: []}} = view;
|
|
43
|
+
const {lwrVersion, format, hmrEnabled, bundle, debug, minify} = runtimeEnvironment;
|
|
44
|
+
const {customElements} = viewMetadata;
|
|
45
45
|
const version = lwrVersion;
|
|
46
46
|
const isAMD = format === "amd";
|
|
47
47
|
const appIdentity = {
|
|
@@ -60,7 +60,7 @@ async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
60
60
|
const preloadAmdModules = [];
|
|
61
61
|
if (isAMD) {
|
|
62
62
|
const shimBundle = !bundle ? "lwr-loader-shim-legacy.js" : debug || minify === false ? "lwr-loader-shim-legacy.bundle.js" : "lwr-loader-shim-legacy.bundle.min.js";
|
|
63
|
-
const def = await resourceRegistry.getResource({
|
|
63
|
+
const def = await resourceRegistry.getResource({specifier: shimBundle, version}, runtimeEnvironment, runtimeParams);
|
|
64
64
|
if (!def) {
|
|
65
65
|
throw Error("Failed to find definition of resource: " + shimBundle);
|
|
66
66
|
}
|
|
@@ -72,8 +72,8 @@ async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
72
72
|
}, moduleRegistry, runtimeEnvironment, runtimeParams));
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
const depth = isAMD ? {
|
|
76
|
-
const bootstrapModuleGraph = await (0, import_shared_utils.getModuleGraphs)(bootstrapSpecifier, {
|
|
75
|
+
const depth = isAMD ? {static: import_shared_utils.GraphDepth.ALL, dynamic: 1} : {static: import_shared_utils.GraphDepth.NONE, dynamic: 0};
|
|
76
|
+
const bootstrapModuleGraph = await (0, import_shared_utils.getModuleGraphs)(bootstrapSpecifier, {includeUris: true, includeLinkedDefinitions: true, depth}, moduleRegistry, bundle ? moduleBundler : moduleRegistry, runtimeEnvironment, runtimeParams, visitedCache);
|
|
77
77
|
const versionedSpecifier = bootstrapModuleGraph.graphs[0].specifier;
|
|
78
78
|
const uri = bootstrapModuleGraph.uriMap[versionedSpecifier];
|
|
79
79
|
moduleResources.push((0, import_utils.getModuleResourceByUri)(uri, runtimeEnvironment));
|
|
@@ -98,9 +98,10 @@ async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
const customElementsRecords = [];
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
const flattenedElements = (0, import_utils2.flattenCustomElements)(customElements);
|
|
102
|
+
await Promise.all(flattenedElements.map(async ({tagName: element}) => {
|
|
103
|
+
const graph = await (0, import_shared_utils.getModuleGraphs)((0, import_shared_utils.kebabcaseToCamelcase)(element), {includeUris: true, includeLinkedDefinitions: true, depth}, moduleRegistry, bundle ? moduleBundler : moduleRegistry, runtimeEnvironment, runtimeParams ? runtimeParams : {}, visitedCache);
|
|
104
|
+
customElementsRecords.push({elementName: element, flatGraph: graph});
|
|
104
105
|
const specifier = graph.graphs[0].specifier;
|
|
105
106
|
const uri2 = graph.uriMap[specifier];
|
|
106
107
|
moduleResources.push((0, import_utils.getModuleResourceByUri)(uri2, runtimeEnvironment, true));
|
|
@@ -130,8 +131,8 @@ async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
130
131
|
default: (0, import_shared_utils.getModuleUriPrefix)(runtimeEnvironment, runtimeParams)
|
|
131
132
|
},
|
|
132
133
|
rootComponents,
|
|
133
|
-
...isAMD && {
|
|
134
|
-
...isAMD && {
|
|
134
|
+
...isAMD && {requiredModules: requiredAmdModules},
|
|
135
|
+
...isAMD && {preloadModules: preloadAmdModules}
|
|
135
136
|
}, runtimeEnvironment, runtimeParams));
|
|
136
137
|
if (!isAMD && hmrEnabled) {
|
|
137
138
|
configResources.unshift(await (0, import_utils2.getViewHmrConfigurationResource)(view, viewMetadata));
|
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
var __create = Object.create;
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
3
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
8
8
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
9
|
for (var name in all)
|
|
11
|
-
__defProp(target, name, {
|
|
10
|
+
__defProp(target, name, {get: all[name], enumerable: true});
|
|
12
11
|
};
|
|
13
|
-
var
|
|
12
|
+
var __exportStar = (target, module2, desc) => {
|
|
14
13
|
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
14
|
for (let key of __getOwnPropNames(module2))
|
|
16
15
|
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
-
__defProp(target, key, {
|
|
16
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
18
17
|
}
|
|
19
18
|
return target;
|
|
20
19
|
};
|
|
21
20
|
var __toModule = (module2) => {
|
|
22
|
-
return
|
|
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);
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
// packages/@lwrjs/view-registry/src/linkers/link-lwr-resources.ts
|
|
25
|
+
__markAsModule(exports);
|
|
26
26
|
__export(exports, {
|
|
27
27
|
linkLwrResources: () => linkLwrResources
|
|
28
28
|
});
|
|
29
29
|
var import_view_bootstrap = __toModule(require("./view_bootstrap.cjs"));
|
|
30
30
|
var import_legacy_view_bootstrap = __toModule(require("./legacy_view_bootstrap.cjs"));
|
|
31
31
|
async function linkLwrResources(source, view, viewParams, cxt) {
|
|
32
|
-
const {
|
|
32
|
+
const {lwrResourcesId, ...resourceContext} = cxt;
|
|
33
33
|
const {
|
|
34
|
-
experimental_features: {
|
|
34
|
+
experimental_features: {ENABLE_FINGERPRINTS}
|
|
35
35
|
} = resourceContext.runtimeEnvironment;
|
|
36
|
-
const {
|
|
36
|
+
const {partial, viewRecord} = ENABLE_FINGERPRINTS ? await (0, import_view_bootstrap.getHtmlResources)(view, viewParams, resourceContext) : await (0, import_legacy_view_bootstrap.getHtmlResources)(view, viewParams, resourceContext);
|
|
37
37
|
return {
|
|
38
38
|
renderedView: source.replace(lwrResourcesId, partial),
|
|
39
39
|
viewRecord
|
|
@@ -1,48 +1,49 @@
|
|
|
1
1
|
var __create = Object.create;
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
3
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
8
8
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
9
|
for (var name in all)
|
|
11
|
-
__defProp(target, name, {
|
|
10
|
+
__defProp(target, name, {get: all[name], enumerable: true});
|
|
12
11
|
};
|
|
13
|
-
var
|
|
12
|
+
var __exportStar = (target, module2, desc) => {
|
|
14
13
|
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
14
|
for (let key of __getOwnPropNames(module2))
|
|
16
15
|
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
-
__defProp(target, key, {
|
|
16
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
18
17
|
}
|
|
19
18
|
return target;
|
|
20
19
|
};
|
|
21
20
|
var __toModule = (module2) => {
|
|
22
|
-
return
|
|
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);
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
// packages/@lwrjs/view-registry/src/linkers/utils.ts
|
|
25
|
+
__markAsModule(exports);
|
|
26
26
|
__export(exports, {
|
|
27
|
+
flattenCustomElements: () => flattenCustomElements,
|
|
27
28
|
getViewBootstrapConfigurationResource: () => getViewBootstrapConfigurationResource,
|
|
28
29
|
getViewHmrConfigurationResource: () => getViewHmrConfigurationResource
|
|
29
30
|
});
|
|
30
31
|
var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
|
|
31
32
|
var CONTENT_TYPE = "application/javascript";
|
|
32
33
|
function getViewBootstrapConfigurationResource(viewInfo, config, runtimeEnvironment, runtimeParams) {
|
|
33
|
-
const {
|
|
34
|
+
const {compat, debug, hmrEnabled, apiVersion, format} = runtimeEnvironment;
|
|
34
35
|
const isESM = format === "esm";
|
|
35
36
|
const defaultUrl = (0, import_shared_utils.getModuleUriPrefix)(runtimeEnvironment, runtimeParams);
|
|
36
37
|
const mapping = (0, import_shared_utils.getMappingUriPrefix)(runtimeEnvironment, runtimeParams);
|
|
37
38
|
const endpoints = {
|
|
38
39
|
uris: {
|
|
39
40
|
mapping,
|
|
40
|
-
...isESM && {
|
|
41
|
+
...isESM && {module: defaultUrl},
|
|
41
42
|
...isESM && hmrEnabled && {
|
|
42
43
|
hmr: `/${apiVersion}/hmr/${format}/${compat}?${debug ? "debug=true" : ""}`
|
|
43
44
|
}
|
|
44
45
|
},
|
|
45
|
-
...debug && {
|
|
46
|
+
...debug && {modifiers: {debug: "true"}}
|
|
46
47
|
};
|
|
47
48
|
const configString = [
|
|
48
49
|
"/* This script is generated */",
|
|
@@ -56,7 +57,7 @@ function getViewBootstrapConfigurationResource(viewInfo, config, runtimeEnvironm
|
|
|
56
57
|
].filter(Boolean).join("\n");
|
|
57
58
|
if (viewInfo.configAsSrc) {
|
|
58
59
|
const viewUrl = viewInfo.url || "/";
|
|
59
|
-
const url = (0, import_shared_utils.getClientBootstrapConfigurationUri)({
|
|
60
|
+
const url = (0, import_shared_utils.getClientBootstrapConfigurationUri)({id: viewInfo.id, url: viewUrl}, runtimeEnvironment, runtimeParams);
|
|
60
61
|
return {
|
|
61
62
|
type: CONTENT_TYPE,
|
|
62
63
|
content: configString,
|
|
@@ -72,8 +73,8 @@ function getViewBootstrapConfigurationResource(viewInfo, config, runtimeEnvironm
|
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
function getViewHmrConfigurationResource(view, viewMetadata) {
|
|
75
|
-
const {
|
|
76
|
-
const {
|
|
76
|
+
const {assetReferences} = viewMetadata;
|
|
77
|
+
const {contentTemplate, layoutTemplate} = view;
|
|
77
78
|
const refs = assetReferences.map((assetReference) => {
|
|
78
79
|
if (assetReference.override) {
|
|
79
80
|
return assetReference.override?.entry;
|
|
@@ -97,3 +98,23 @@ function getViewHmrConfigurationResource(view, viewMetadata) {
|
|
|
97
98
|
content: configString
|
|
98
99
|
};
|
|
99
100
|
}
|
|
101
|
+
function flattenCustomElements(arr) {
|
|
102
|
+
const ret = [];
|
|
103
|
+
const visitedTags = new Set();
|
|
104
|
+
function flatten(arr2) {
|
|
105
|
+
for (const val of arr2) {
|
|
106
|
+
const {tagName, children} = val;
|
|
107
|
+
if (!visitedTags.has(tagName)) {
|
|
108
|
+
ret.push({
|
|
109
|
+
tagName
|
|
110
|
+
});
|
|
111
|
+
visitedTags.add(tagName);
|
|
112
|
+
}
|
|
113
|
+
if (children) {
|
|
114
|
+
flatten(children);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
flatten(arr);
|
|
119
|
+
return ret;
|
|
120
|
+
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
var __create = Object.create;
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
3
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
8
8
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
9
|
for (var name in all)
|
|
11
|
-
__defProp(target, name, {
|
|
10
|
+
__defProp(target, name, {get: all[name], enumerable: true});
|
|
12
11
|
};
|
|
13
|
-
var
|
|
12
|
+
var __exportStar = (target, module2, desc) => {
|
|
14
13
|
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
14
|
for (let key of __getOwnPropNames(module2))
|
|
16
15
|
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
-
__defProp(target, key, {
|
|
16
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
18
17
|
}
|
|
19
18
|
return target;
|
|
20
19
|
};
|
|
21
20
|
var __toModule = (module2) => {
|
|
22
|
-
return
|
|
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);
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
// packages/@lwrjs/view-registry/src/linkers/view_bootstrap.ts
|
|
25
|
+
__markAsModule(exports);
|
|
26
26
|
__export(exports, {
|
|
27
27
|
getHtmlResources: () => getHtmlResources
|
|
28
28
|
});
|
|
@@ -39,9 +39,9 @@ async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
39
39
|
resourceRegistry,
|
|
40
40
|
viewMetadata
|
|
41
41
|
} = resourceContext;
|
|
42
|
-
const {
|
|
43
|
-
const {
|
|
44
|
-
const {
|
|
42
|
+
const {id: appName, bootstrap: {services} = {services: []}} = view;
|
|
43
|
+
const {lwrVersion, format, hmrEnabled, bundle, debug, minify} = runtimeEnvironment;
|
|
44
|
+
const {customElements} = viewMetadata;
|
|
45
45
|
const version = lwrVersion;
|
|
46
46
|
const isAMD = format === "amd";
|
|
47
47
|
const appIdentity = {
|
|
@@ -60,7 +60,7 @@ async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
60
60
|
const preloadAmdModules = [];
|
|
61
61
|
if (isAMD) {
|
|
62
62
|
const shimBundle = !bundle ? "lwr-loader-shim.js" : debug || minify === false ? "lwr-loader-shim.bundle.js" : "lwr-loader-shim.bundle.min.js";
|
|
63
|
-
const def = await resourceRegistry.getResource({
|
|
63
|
+
const def = await resourceRegistry.getResource({specifier: shimBundle, version}, runtimeEnvironment, runtimeParams);
|
|
64
64
|
if (!def) {
|
|
65
65
|
throw Error("Failed to find definition of resource: " + shimBundle);
|
|
66
66
|
}
|
|
@@ -72,8 +72,8 @@ async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
72
72
|
}, moduleRegistry, runtimeEnvironment, runtimeParams));
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
const depth = isAMD ? {
|
|
76
|
-
const bootstrapModuleGraph = await (0, import_shared_utils.getModuleGraphs)(bootstrapSpecifier, {
|
|
75
|
+
const depth = isAMD ? {static: import_shared_utils.GraphDepth.ALL, dynamic: 1} : {static: import_shared_utils.GraphDepth.NONE, dynamic: 0};
|
|
76
|
+
const bootstrapModuleGraph = await (0, import_shared_utils.getModuleGraphs)(bootstrapSpecifier, {includeUris: true, includeLinkedDefinitions: true, depth}, moduleRegistry, bundle ? moduleBundler : moduleRegistry, runtimeEnvironment, runtimeParams, visitedCache);
|
|
77
77
|
const versionedSpecifier = bootstrapModuleGraph.graphs[0].specifier;
|
|
78
78
|
const uri = bootstrapModuleGraph.uriMap[versionedSpecifier];
|
|
79
79
|
moduleResources.push((0, import_utils.getModuleResourceByUri)(uri, runtimeEnvironment));
|
|
@@ -97,11 +97,12 @@ async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
let importMetadata = await (0, import_shared_utils.toImportMetadata)(bootstrapModuleGraph, {
|
|
100
|
+
let importMetadata = await (0, import_shared_utils.toImportMetadata)(bootstrapModuleGraph, {imports: {}, index: {}}, moduleRegistry, runtimeEnvironment, runtimeParams);
|
|
101
101
|
const customElementsRecords = [];
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
const flattenedElements = (0, import_utils2.flattenCustomElements)(customElements);
|
|
103
|
+
await Promise.all(flattenedElements.map(async ({tagName: element}) => {
|
|
104
|
+
const graph = await (0, import_shared_utils.getModuleGraphs)((0, import_shared_utils.kebabcaseToCamelcase)(element), {includeUris: true, includeLinkedDefinitions: true, depth}, moduleRegistry, bundle ? moduleBundler : moduleRegistry, runtimeEnvironment, runtimeParams ? runtimeParams : {}, visitedCache);
|
|
105
|
+
customElementsRecords.push({elementName: element, flatGraph: graph});
|
|
105
106
|
const specifier = graph.graphs[0].specifier;
|
|
106
107
|
const uri2 = graph.uriMap[specifier];
|
|
107
108
|
moduleResources.push((0, import_utils.getModuleResourceByUri)(uri2, runtimeEnvironment, true));
|
|
@@ -130,8 +131,8 @@ async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
130
131
|
imports: importMetadata?.imports,
|
|
131
132
|
index: importMetadata?.index,
|
|
132
133
|
rootComponents,
|
|
133
|
-
...isAMD && {
|
|
134
|
-
...isAMD && {
|
|
134
|
+
...isAMD && {requiredModules: requiredAmdModules},
|
|
135
|
+
...isAMD && {preloadModules: preloadAmdModules}
|
|
135
136
|
}, runtimeEnvironment, runtimeParams));
|
|
136
137
|
if (!isAMD && hmrEnabled) {
|
|
137
138
|
configResources.unshift(await (0, import_utils2.getViewHmrConfigurationResource)(view, viewMetadata));
|
package/build/cjs/utils.cjs
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
var __create = Object.create;
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
3
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
8
8
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
9
|
for (var name in all)
|
|
11
|
-
__defProp(target, name, {
|
|
10
|
+
__defProp(target, name, {get: all[name], enumerable: true});
|
|
12
11
|
};
|
|
13
|
-
var
|
|
12
|
+
var __exportStar = (target, module2, desc) => {
|
|
14
13
|
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
14
|
for (let key of __getOwnPropNames(module2))
|
|
16
15
|
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
-
__defProp(target, key, {
|
|
16
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
18
17
|
}
|
|
19
18
|
return target;
|
|
20
19
|
};
|
|
21
20
|
var __toModule = (module2) => {
|
|
22
|
-
return
|
|
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);
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
// packages/@lwrjs/view-registry/src/utils.ts
|
|
25
|
+
__markAsModule(exports);
|
|
26
26
|
__export(exports, {
|
|
27
27
|
createJsonModule: () => createJsonModule,
|
|
28
28
|
generateHtmlTag: () => generateHtmlTag,
|
|
@@ -55,25 +55,25 @@ function generateExternalStyle(src) {
|
|
|
55
55
|
}
|
|
56
56
|
function generateExternalScript(type = "application/javascript", src, async) {
|
|
57
57
|
const asyncStr = async ? " async" : "";
|
|
58
|
-
return `<script type="${type}"${asyncStr} src="${src}"
|
|
58
|
+
return `<script type="${type}"${asyncStr} src="${src}"></script>`;
|
|
59
59
|
}
|
|
60
|
-
function generateLinkPreloadTag({
|
|
60
|
+
function generateLinkPreloadTag({href, type}) {
|
|
61
61
|
if (type === "module") {
|
|
62
62
|
return `<link rel="modulepreload" href="${href}" />`;
|
|
63
63
|
} else {
|
|
64
64
|
return `<link rel="preload" href="${href}" type="${type}" />`;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
function generateExternalTag({
|
|
67
|
+
function generateExternalTag({type, src = "", async, isPreload}) {
|
|
68
68
|
if (isPreload) {
|
|
69
|
-
return generateLinkPreloadTag({
|
|
69
|
+
return generateLinkPreloadTag({href: src, type});
|
|
70
70
|
} else if (type === "text/css") {
|
|
71
71
|
return generateExternalStyle(src);
|
|
72
72
|
} else {
|
|
73
73
|
return generateExternalScript(type, src, async);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
async function generateInlineTag({
|
|
76
|
+
async function generateInlineTag({specifier, type, content, stream, nonce}) {
|
|
77
77
|
const typeStr = type === "text/css" ? "" : ` type="${type}"`;
|
|
78
78
|
const tag = type === "text/css" ? "style" : "script";
|
|
79
79
|
const nonceStr = nonce ? ` nonce="${nonce}"` : "";
|
|
@@ -108,7 +108,7 @@ function normalizeRenderedResult({
|
|
|
108
108
|
};
|
|
109
109
|
}
|
|
110
110
|
function reduceSourceAssetReferences(assets) {
|
|
111
|
-
return assets.map(({
|
|
111
|
+
return assets.map(({url, tagName, override}) => {
|
|
112
112
|
return {
|
|
113
113
|
url,
|
|
114
114
|
tagName,
|
|
@@ -129,20 +129,20 @@ function normalizeRenderOptions(runtimeEnvironment, overrideRenderOptions, baseR
|
|
|
129
129
|
function getTitleFromFilePath(filePath) {
|
|
130
130
|
return filePath ? (0, import_path2.basename)(filePath, (0, import_path2.extname)(filePath)) : import_shared_utils.DEFAULT_TITLE;
|
|
131
131
|
}
|
|
132
|
-
function generatePageContext({
|
|
132
|
+
function generatePageContext({requestPath: url}, {id, contentTemplate, properties}) {
|
|
133
133
|
const title = properties?.title || getTitleFromFilePath(contentTemplate);
|
|
134
|
-
return {
|
|
134
|
+
return {id, title, url};
|
|
135
135
|
}
|
|
136
136
|
function isViewResponse(response) {
|
|
137
137
|
return response.body !== void 0;
|
|
138
138
|
}
|
|
139
|
-
async function getRouteHandler(path, {
|
|
139
|
+
async function getRouteHandler(path, {cacheDir, rootDir}) {
|
|
140
140
|
try {
|
|
141
141
|
const fullPath = (0, import_shared_utils.resolveFileExtension)(path);
|
|
142
142
|
if (fullPath.endsWith(".ts")) {
|
|
143
|
-
path = await (0, import_shared_utils.transpileTs)(path, {
|
|
143
|
+
path = await (0, import_shared_utils.transpileTs)(path, {rootDir, cacheDir: import_path.default.join(cacheDir, "routeHandlers")});
|
|
144
144
|
}
|
|
145
|
-
const moduleEntry = await
|
|
145
|
+
const moduleEntry = await Promise.resolve().then(() => __toModule(require(path)));
|
|
146
146
|
return moduleEntry.default || moduleEntry;
|
|
147
147
|
} catch (err) {
|
|
148
148
|
console.log(err);
|
|
@@ -150,8 +150,8 @@ async function getRouteHandler(path, { cacheDir, rootDir }) {
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
async function toJsonFormat(viewRequest, viewDefinition, route, runtimeEnvironment, runtimeParams, moduleRegistry) {
|
|
153
|
-
const {
|
|
154
|
-
const {
|
|
153
|
+
const {viewRecord} = viewDefinition;
|
|
154
|
+
const {bootstrap, id: appName} = route;
|
|
155
155
|
const workerSpecifiers = bootstrap?.workers || {};
|
|
156
156
|
const workers = {};
|
|
157
157
|
for (const id of Object.keys(workerSpecifiers)) {
|
|
@@ -181,7 +181,7 @@ async function toJsonFormat(viewRequest, viewDefinition, route, runtimeEnvironme
|
|
|
181
181
|
});
|
|
182
182
|
resources.push({
|
|
183
183
|
type: "application/javascript",
|
|
184
|
-
src: (0, import_shared_utils3.getClientBootstrapConfigurationUri)({
|
|
184
|
+
src: (0, import_shared_utils3.getClientBootstrapConfigurationUri)({url: viewRequest.url, id: route.id}, runtimeEnvironment, runtimeParams)
|
|
185
185
|
});
|
|
186
186
|
}
|
|
187
187
|
const mappingUrl = (0, import_shared_utils.getMappingUriPrefix)(runtimeEnvironment, runtimeParams);
|
|
@@ -189,7 +189,7 @@ async function toJsonFormat(viewRequest, viewDefinition, route, runtimeEnvironme
|
|
|
189
189
|
uris: {
|
|
190
190
|
mapping: mappingUrl
|
|
191
191
|
},
|
|
192
|
-
...runtimeEnvironment.debug && {
|
|
192
|
+
...runtimeEnvironment.debug && {modifiers: {debug: "true"}}
|
|
193
193
|
};
|
|
194
194
|
const preloadModules = viewRecord.customElements?.map((ce) => {
|
|
195
195
|
return {
|
|
@@ -202,11 +202,11 @@ async function toJsonFormat(viewRequest, viewDefinition, route, runtimeEnvironme
|
|
|
202
202
|
viewRecord.assetReferences?.forEach((asset) => {
|
|
203
203
|
if (asset.override?.uri) {
|
|
204
204
|
const type = (0, import_shared_utils2.mimeLookup)(asset.override?.uri);
|
|
205
|
-
resources.push({
|
|
205
|
+
resources.push({type, src: asset.override?.uri});
|
|
206
206
|
}
|
|
207
207
|
});
|
|
208
208
|
viewRecord.resources?.forEach((resource) => {
|
|
209
|
-
resources.push({
|
|
209
|
+
resources.push({type: resource.type, src: resource.src});
|
|
210
210
|
});
|
|
211
211
|
const body = {
|
|
212
212
|
modules,
|
|
@@ -224,7 +224,7 @@ async function toJsonFormat(viewRequest, viewDefinition, route, runtimeEnvironme
|
|
|
224
224
|
}
|
|
225
225
|
async function getModuleResource(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams, isPreload) {
|
|
226
226
|
const moduleUri = await moduleRegistry.resolveModuleUri(moduleId, runtimeEnvironment, runtimeParams);
|
|
227
|
-
const {
|
|
227
|
+
const {format} = runtimeEnvironment;
|
|
228
228
|
return {
|
|
229
229
|
src: moduleUri,
|
|
230
230
|
type: format === "amd" ? "application/javascript" : "module",
|
|
@@ -233,7 +233,7 @@ async function getModuleResource(moduleId, moduleRegistry, runtimeEnvironment, r
|
|
|
233
233
|
};
|
|
234
234
|
}
|
|
235
235
|
function getModuleResourceByUri(moduleUri, runtimeEnvironment, isPreload) {
|
|
236
|
-
const {
|
|
236
|
+
const {format} = runtimeEnvironment;
|
|
237
237
|
return {
|
|
238
238
|
src: moduleUri,
|
|
239
239
|
type: format === "amd" ? "application/javascript" : "module",
|
|
@@ -242,15 +242,15 @@ function getModuleResourceByUri(moduleUri, runtimeEnvironment, isPreload) {
|
|
|
242
242
|
};
|
|
243
243
|
}
|
|
244
244
|
async function createJsonModule(specifier, moduleRegistry, environment, params) {
|
|
245
|
-
const {
|
|
246
|
-
const {
|
|
245
|
+
const {version} = await moduleRegistry.getModuleEntry({specifier});
|
|
246
|
+
const {namespace, name} = (0, import_shared_utils.explodeSpecifier)(specifier);
|
|
247
247
|
const moduleIdentifier = {
|
|
248
248
|
specifier,
|
|
249
249
|
namespace,
|
|
250
250
|
name,
|
|
251
251
|
version
|
|
252
252
|
};
|
|
253
|
-
const {
|
|
253
|
+
const {ownHash} = await moduleRegistry.getModule(moduleIdentifier);
|
|
254
254
|
return {
|
|
255
255
|
specifier: (0, import_shared_utils.getSpecifier)(moduleIdentifier),
|
|
256
256
|
version,
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
var __create = Object.create;
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
3
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
8
8
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
9
|
for (var name in all)
|
|
11
|
-
__defProp(target, name, {
|
|
10
|
+
__defProp(target, name, {get: all[name], enumerable: true});
|
|
12
11
|
};
|
|
13
|
-
var
|
|
12
|
+
var __exportStar = (target, module2, desc) => {
|
|
14
13
|
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
15
14
|
for (let key of __getOwnPropNames(module2))
|
|
16
15
|
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
17
|
-
__defProp(target, key, {
|
|
16
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
18
17
|
}
|
|
19
18
|
return target;
|
|
20
19
|
};
|
|
21
20
|
var __toModule = (module2) => {
|
|
22
|
-
return
|
|
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);
|
|
23
22
|
};
|
|
24
23
|
|
|
25
24
|
// packages/@lwrjs/view-registry/src/view-handler.ts
|
|
25
|
+
__markAsModule(exports);
|
|
26
26
|
__export(exports, {
|
|
27
27
|
LwrViewHandler: () => LwrViewHandler
|
|
28
28
|
});
|
|
@@ -38,13 +38,13 @@ var LwrViewHandler = class {
|
|
|
38
38
|
this.moduleRegistry = context.moduleRegistry;
|
|
39
39
|
}
|
|
40
40
|
async getViewContent(viewRequest, route, runtimeEnvironment, runtimeParams = {}) {
|
|
41
|
-
const {
|
|
41
|
+
const {routeHandler} = route;
|
|
42
42
|
if (routeHandler) {
|
|
43
43
|
const response = await this.getRouteHandlerResponse(viewRequest, route, runtimeEnvironment, runtimeParams);
|
|
44
44
|
if ((0, import_utils.isViewResponse)(response)) {
|
|
45
45
|
return response;
|
|
46
46
|
}
|
|
47
|
-
const {
|
|
47
|
+
const {view, viewParams, renderOptions} = normalizeViewProperties(viewRequest, response, route, this.globalConfig);
|
|
48
48
|
const viewDefinition2 = await this.viewRegistry.getViewDefinition(view, viewParams, runtimeEnvironment, runtimeParams, renderOptions);
|
|
49
49
|
return {
|
|
50
50
|
...response,
|
|
@@ -63,13 +63,13 @@ var LwrViewHandler = class {
|
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
65
|
async getViewJson(viewRequest, route, runtimeEnvironment, runtimeParams = {}) {
|
|
66
|
-
const {
|
|
66
|
+
const {routeHandler} = route;
|
|
67
67
|
if (routeHandler) {
|
|
68
68
|
const response = await this.getRouteHandlerResponse(viewRequest, route, runtimeEnvironment, runtimeParams);
|
|
69
69
|
if ((0, import_utils.isViewResponse)(response)) {
|
|
70
70
|
return response;
|
|
71
71
|
}
|
|
72
|
-
const {
|
|
72
|
+
const {view, viewParams, renderOptions} = normalizeViewProperties(viewRequest, response, route, this.globalConfig);
|
|
73
73
|
const viewDefinition2 = await this.viewRegistry.getViewDefinition(view, viewParams, runtimeEnvironment, runtimeParams, renderOptions);
|
|
74
74
|
return {
|
|
75
75
|
...response,
|
|
@@ -80,14 +80,14 @@ var LwrViewHandler = class {
|
|
|
80
80
|
return await (0, import_utils.toJsonFormat)(viewRequest, viewDefinition, route, runtimeEnvironment, runtimeParams, this.moduleRegistry);
|
|
81
81
|
}
|
|
82
82
|
async getViewConfiguration(viewRequest, route, runtimeEnvironment, runtimeParams = {}) {
|
|
83
|
-
const {
|
|
83
|
+
const {routeHandler} = route;
|
|
84
84
|
let viewDefinition;
|
|
85
85
|
if (routeHandler) {
|
|
86
86
|
const response = await this.getRouteHandlerResponse(viewRequest, route, runtimeEnvironment, runtimeParams);
|
|
87
87
|
if ((0, import_utils.isViewResponse)(response)) {
|
|
88
88
|
return;
|
|
89
89
|
}
|
|
90
|
-
const {
|
|
90
|
+
const {view, viewParams, renderOptions} = normalizeViewProperties(viewRequest, response, route, this.globalConfig);
|
|
91
91
|
viewDefinition = await this.viewRegistry.getViewDefinition(view, viewParams, runtimeEnvironment, runtimeParams, renderOptions);
|
|
92
92
|
} else {
|
|
93
93
|
viewDefinition = await this.getDefaultRouteViewDefinition(viewRequest, route, runtimeEnvironment, runtimeParams);
|
|
@@ -106,7 +106,7 @@ var LwrViewHandler = class {
|
|
|
106
106
|
};
|
|
107
107
|
}
|
|
108
108
|
async getDefaultRouteViewDefinition(viewRequest, route, runtimeEnvironment, runtimeParams = {}) {
|
|
109
|
-
const {
|
|
109
|
+
const {id, bootstrap, rootComponent, contentTemplate, layoutTemplate, properties} = route;
|
|
110
110
|
const page = (0, import_utils.generatePageContext)(viewRequest, route);
|
|
111
111
|
const viewDefinition = await this.viewRegistry.getViewDefinition({
|
|
112
112
|
id,
|
|
@@ -114,13 +114,13 @@ var LwrViewHandler = class {
|
|
|
114
114
|
rootComponent,
|
|
115
115
|
contentTemplate,
|
|
116
116
|
layoutTemplate
|
|
117
|
-
}, {
|
|
117
|
+
}, {page, ...properties}, runtimeEnvironment, runtimeParams);
|
|
118
118
|
return viewDefinition;
|
|
119
119
|
}
|
|
120
120
|
async getRouteHandlerResponse(viewRequest, route, runtimeEnvironment, runtimeParams = {}) {
|
|
121
|
-
const {
|
|
122
|
-
const paths = {
|
|
123
|
-
const {
|
|
121
|
+
const {rootDir, assets, contentDir, layoutsDir, cacheDir} = this.globalConfig;
|
|
122
|
+
const paths = {rootDir, assets, contentDir, layoutsDir};
|
|
123
|
+
const {routeHandler} = route;
|
|
124
124
|
if (!routeHandler) {
|
|
125
125
|
throw new Error("Route Handler is required for a CustomView");
|
|
126
126
|
}
|
|
@@ -130,7 +130,7 @@ var LwrViewHandler = class {
|
|
|
130
130
|
if (inflightRouteHandlerPromise) {
|
|
131
131
|
routeHandlerFunction = await inflightRouteHandlerPromise;
|
|
132
132
|
} else {
|
|
133
|
-
const handlerPromise = (0, import_utils.getRouteHandler)(routeHandler, {
|
|
133
|
+
const handlerPromise = (0, import_utils.getRouteHandler)(routeHandler, {cacheDir, rootDir});
|
|
134
134
|
this.inflightRouteHandlerEvalMap.set(routeHandler, handlerPromise);
|
|
135
135
|
routeHandlerFunction = await handlerPromise;
|
|
136
136
|
}
|
|
@@ -138,7 +138,7 @@ var LwrViewHandler = class {
|
|
|
138
138
|
this.inflightRouteHandlerEvalMap.delete(routeHandler);
|
|
139
139
|
}
|
|
140
140
|
const viewApi = this.getBoundApi(route, runtimeEnvironment, runtimeParams);
|
|
141
|
-
const response = await routeHandlerFunction(viewRequest, {
|
|
141
|
+
const response = await routeHandlerFunction(viewRequest, {route, viewApi, ...paths});
|
|
142
142
|
return response;
|
|
143
143
|
}
|
|
144
144
|
getBoundApi(route, runtimeEnvironment, runtimeParams) {
|
|
@@ -148,13 +148,13 @@ var LwrViewHandler = class {
|
|
|
148
148
|
};
|
|
149
149
|
}
|
|
150
150
|
hasViewResponse(route, runtimeEnvironment, runtimeParams = {}, view, viewParams, renderOptions) {
|
|
151
|
-
const {
|
|
152
|
-
const managedView = {
|
|
151
|
+
const {id, bootstrap} = route;
|
|
152
|
+
const managedView = {...view, id, bootstrap};
|
|
153
153
|
return this.viewRegistry.hasViewDefinition(managedView, viewParams, runtimeEnvironment, runtimeParams, renderOptions);
|
|
154
154
|
}
|
|
155
155
|
async getViewResponse(route, runtimeEnvironment, runtimeParams = {}, view, viewParams, renderOptions) {
|
|
156
|
-
const {
|
|
157
|
-
const managedView = {
|
|
156
|
+
const {id, bootstrap} = route;
|
|
157
|
+
const managedView = {...view, id, bootstrap};
|
|
158
158
|
const viewDefinition = await this.viewRegistry.getViewDefinition(managedView, viewParams, runtimeEnvironment, runtimeParams, renderOptions);
|
|
159
159
|
return {
|
|
160
160
|
body: viewDefinition.renderedView,
|
|
@@ -166,27 +166,27 @@ var LwrViewHandler = class {
|
|
|
166
166
|
};
|
|
167
167
|
function normalizeViewProperties(viewRequest, response, route, config) {
|
|
168
168
|
const {
|
|
169
|
-
view: {
|
|
169
|
+
view: {rootComponent, contentTemplate: cTemplate, layoutTemplate: lTemplate},
|
|
170
170
|
viewParams,
|
|
171
171
|
renderOptions
|
|
172
172
|
} = response;
|
|
173
|
-
const {
|
|
174
|
-
const paths = {
|
|
173
|
+
const {rootDir, assets, contentDir, layoutsDir} = config;
|
|
174
|
+
const paths = {rootDir, assets, contentDir, layoutsDir};
|
|
175
175
|
const page = (0, import_utils.generatePageContext)(viewRequest, {
|
|
176
176
|
...route,
|
|
177
177
|
contentTemplate: cTemplate,
|
|
178
178
|
properties: viewParams
|
|
179
179
|
});
|
|
180
|
-
const {
|
|
180
|
+
const {id, bootstrap} = route;
|
|
181
181
|
return {
|
|
182
182
|
view: {
|
|
183
183
|
id,
|
|
184
184
|
bootstrap,
|
|
185
|
-
...rootComponent && {
|
|
186
|
-
...cTemplate && {
|
|
187
|
-
...lTemplate && {
|
|
185
|
+
...rootComponent && {rootComponent},
|
|
186
|
+
...cTemplate && {contentTemplate: (0, import_path.resolve)((0, import_shared_utils.normalizeResourcePath)(cTemplate, paths))},
|
|
187
|
+
...lTemplate && {layoutTemplate: (0, import_path.resolve)((0, import_shared_utils.normalizeResourcePath)(lTemplate, paths))}
|
|
188
188
|
},
|
|
189
|
-
viewParams: {
|
|
189
|
+
viewParams: {page, ...viewParams},
|
|
190
190
|
renderOptions
|
|
191
191
|
};
|
|
192
192
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { kebabcaseToCamelcase, getModuleGraphs, GraphDepth, getModuleUriPrefix } from '@lwrjs/shared-utils';
|
|
2
2
|
import { AppResourceEnum, getAppSpecifier } from '@lwrjs/app-service/identity';
|
|
3
3
|
import { generateHtmlTag, getModuleResource, getModuleResourceByUri } from '../utils.js';
|
|
4
|
-
import { getViewBootstrapConfigurationResource, getViewHmrConfigurationResource } from './utils.js';
|
|
4
|
+
import { flattenCustomElements, getViewBootstrapConfigurationResource, getViewHmrConfigurationResource, } from './utils.js';
|
|
5
5
|
export async function getHtmlResources(view, viewParams, resourceContext) {
|
|
6
6
|
const { runtimeEnvironment, runtimeParams, moduleRegistry, moduleBundler, resourceRegistry, viewMetadata, } = resourceContext;
|
|
7
7
|
const { id: appName, bootstrap: { services } = { services: [] } } = view;
|
|
@@ -102,7 +102,8 @@ export async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
102
102
|
}
|
|
103
103
|
// ------- View related custom element moduleResources
|
|
104
104
|
const customElementsRecords = [];
|
|
105
|
-
|
|
105
|
+
const flattenedElements = flattenCustomElements(customElements);
|
|
106
|
+
await Promise.all(flattenedElements.map(async ({ tagName: element }) => {
|
|
106
107
|
const graph = await getModuleGraphs(kebabcaseToCamelcase(element), { includeUris: true, includeLinkedDefinitions: true, depth }, moduleRegistry, bundle ? moduleBundler : moduleRegistry, runtimeEnvironment, runtimeParams ? runtimeParams : {}, visitedCache);
|
|
107
108
|
// add to the viewRecord
|
|
108
109
|
customElementsRecords.push({ elementName: element, flatGraph: graph });
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { ClientBootstrapConfig, RuntimeEnvironment, RuntimeParams, ResourceDefinition, RenderedViewMetadata } from '@lwrjs/types';
|
|
1
|
+
import { ClientBootstrapConfig, RuntimeEnvironment, RuntimeParams, ResourceDefinition, RenderedViewMetadata, CustomElementReference } from '@lwrjs/types';
|
|
2
2
|
import { View, ViewInfo } from '@lwrjs/types';
|
|
3
3
|
export declare function getViewBootstrapConfigurationResource(viewInfo: ViewInfo, config: ClientBootstrapConfig, runtimeEnvironment: RuntimeEnvironment, runtimeParams?: RuntimeParams): ResourceDefinition;
|
|
4
4
|
export declare function getViewHmrConfigurationResource(view: View, viewMetadata: RenderedViewMetadata): ResourceDefinition;
|
|
5
|
+
export declare function flattenCustomElements(arr: CustomElementReference[]): CustomElementReference[];
|
|
5
6
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -76,4 +76,24 @@ export function getViewHmrConfigurationResource(view, viewMetadata) {
|
|
|
76
76
|
content: configString,
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
|
+
export function flattenCustomElements(arr) {
|
|
80
|
+
const ret = [];
|
|
81
|
+
const visitedTags = new Set();
|
|
82
|
+
function flatten(arr) {
|
|
83
|
+
for (const val of arr) {
|
|
84
|
+
const { tagName, children } = val;
|
|
85
|
+
if (!visitedTags.has(tagName)) {
|
|
86
|
+
ret.push({
|
|
87
|
+
tagName,
|
|
88
|
+
});
|
|
89
|
+
visitedTags.add(tagName);
|
|
90
|
+
}
|
|
91
|
+
if (children) {
|
|
92
|
+
flatten(children);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
flatten(arr);
|
|
97
|
+
return ret;
|
|
98
|
+
}
|
|
79
99
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { kebabcaseToCamelcase, toImportMetadata, getModuleGraphs, getMappingUriPrefix, GraphDepth, } from '@lwrjs/shared-utils';
|
|
2
2
|
import { AppResourceEnum, getAppSpecifier } from '@lwrjs/app-service/identity';
|
|
3
3
|
import { generateHtmlTag, getModuleResource, getModuleResourceByUri } from '../utils.js';
|
|
4
|
-
import { getViewBootstrapConfigurationResource, getViewHmrConfigurationResource } from './utils.js';
|
|
4
|
+
import { flattenCustomElements, getViewBootstrapConfigurationResource, getViewHmrConfigurationResource, } from './utils.js';
|
|
5
5
|
export async function getHtmlResources(view, viewParams, resourceContext) {
|
|
6
6
|
const { runtimeEnvironment, runtimeParams, moduleRegistry, moduleBundler, resourceRegistry, viewMetadata, } = resourceContext;
|
|
7
7
|
const { id: appName, bootstrap: { services } = { services: [] } } = view;
|
|
@@ -103,7 +103,8 @@ export async function getHtmlResources(view, viewParams, resourceContext) {
|
|
|
103
103
|
let importMetadata = await toImportMetadata(bootstrapModuleGraph, { imports: {}, index: {} }, moduleRegistry, runtimeEnvironment, runtimeParams);
|
|
104
104
|
// ------- View related custom element moduleResources
|
|
105
105
|
const customElementsRecords = [];
|
|
106
|
-
|
|
106
|
+
const flattenedElements = flattenCustomElements(customElements);
|
|
107
|
+
await Promise.all(flattenedElements.map(async ({ tagName: element }) => {
|
|
107
108
|
const graph = await getModuleGraphs(kebabcaseToCamelcase(element), { includeUris: true, includeLinkedDefinitions: true, depth }, moduleRegistry, bundle ? moduleBundler : moduleRegistry, runtimeEnvironment, runtimeParams ? runtimeParams : {}, visitedCache);
|
|
108
109
|
// add to the viewRecord
|
|
109
110
|
customElementsRecords.push({ elementName: element, flatGraph: graph });
|
package/build/es/view-handler.js
CHANGED
|
@@ -3,6 +3,7 @@ import { generateHtmlTag, generatePageContext, getRouteHandler, isViewResponse,
|
|
|
3
3
|
import { resolve } from 'path';
|
|
4
4
|
export class LwrViewHandler {
|
|
5
5
|
constructor(context, globalConfig) {
|
|
6
|
+
// TODO convert to using InflightTasks in the shared utils
|
|
6
7
|
this.inflightRouteHandlerEvalMap = new Map();
|
|
7
8
|
this.routeHandlerFunctionMap = new Map();
|
|
8
9
|
this.viewRegistry = context.viewRegistry;
|
package/package.json
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "0.6.0-alpha.
|
|
8
|
-
"homepage": "https://
|
|
7
|
+
"version": "0.6.0-alpha.6",
|
|
8
|
+
"homepage": "https://developer.salesforce.com/docs/platform/lwr/overview",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
11
|
"url": "https://github.com/salesforce/lwr.git",
|
|
@@ -30,15 +30,15 @@
|
|
|
30
30
|
"build/**/*.d.ts"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@lwrjs/app-service": "0.6.0-alpha.
|
|
34
|
-
"@lwrjs/diagnostics": "0.6.0-alpha.
|
|
35
|
-
"@lwrjs/shared-utils": "0.6.0-alpha.
|
|
33
|
+
"@lwrjs/app-service": "0.6.0-alpha.6",
|
|
34
|
+
"@lwrjs/diagnostics": "0.6.0-alpha.6",
|
|
35
|
+
"@lwrjs/shared-utils": "0.6.0-alpha.6"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@lwrjs/types": "0.6.0-alpha.
|
|
38
|
+
"@lwrjs/types": "0.6.0-alpha.6"
|
|
39
39
|
},
|
|
40
40
|
"engines": {
|
|
41
41
|
"node": ">=14.15.4 <17"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "5d624e196dd46787399e6a269479508abe236081"
|
|
44
44
|
}
|