@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.
@@ -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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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, { get: all[name], enumerable: true });
10
+ __defProp(target, name, {get: all[name], enumerable: true});
12
11
  };
13
- var __reExport = (target, module2, desc) => {
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, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
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 __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
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(({ payload }) => this.onViewSourceChange(payload));
53
- observer.onModuleDefinitionChange(({ payload }) => this.onModuleDefinitionChange(payload));
54
- observer.onAssetSourceChange(({ payload }) => this.onAssetSourceChange(payload));
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, { viewDefinition }] of this.viewDefinitions.entries()) {
59
- const { viewRecord } = viewDefinition;
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 { contentTemplate, rootComponent } = compiledView.viewId;
75
- const compiledViewCacheKey = (0, import_shared_utils.getCacheKeyFromJson)({ contentTemplate, rootComponent });
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, { view }] of this.viewDefinitions.entries()) {
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, { viewDefinition }] of this.viewDefinitions.entries()) {
91
- const { viewRecord } = viewDefinition;
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 { contentTemplate, rootComponent } = viewId;
126
- const compiledViewCacheKey = (0, import_shared_utils.getCacheKeyFromJson)({ contentTemplate, rootComponent });
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 { id, bootstrap, rootComponent, contentTemplate, layoutTemplate } = view;
138
- const { freezeAssets, viewParamCacheKey } = (0, import_utils.normalizeRenderOptions)(this.runtimeEnvironment, renderOptions);
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 { id, bootstrap, rootComponent, contentTemplate, layoutTemplate } = view;
160
- const { skipCaching, freezeAssets, viewParamCacheKey } = (0, import_utils.normalizeRenderOptions)(this.runtimeEnvironment, renderOptions);
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({ id, bootstrap, rootComponent, contentTemplate, layoutTemplate }, viewParams, runtimeEnvironment, runtimeParams, renderOptions);
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: { id, bootstrap, rootComponent, contentTemplate, layoutTemplate },
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 { contentTemplate, rootComponent, layoutTemplate } = view;
197
+ const {contentTemplate, rootComponent, layoutTemplate} = view;
198
198
  const lwrResourcesId = `__LWR_RESOURCES__${Date.now()}`;
199
- const renderedContent = await this.render({ contentTemplate, rootComponent }, { ...viewParams, lwr_resources: lwrResourcesId }, renderOptions);
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: { lwrResourcesId }
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({ contentTemplate: layoutTemplatePath }, {
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: { ...view, layoutTemplate: layoutTemplatePath },
238
+ view: {...view, layoutTemplate: layoutTemplatePath},
239
239
  viewParams,
240
240
  runtimeEnvironment,
241
241
  runtimeParams,
242
242
  renderOptions: normalizedRenderOptions,
243
- contentIds: { lwrResourcesId },
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 { rootComponent, contentTemplate } = viewId;
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 { skipMetadataCollection, freezeAssets } = renderOptions;
277
- const { lwrResourcesId } = contentIds;
278
- const { moduleRegistry, resourceRegistry, moduleBundler } = this;
279
- const runtimeEnvironment = { ...runtimeEnv, immutableAssets: freezeAssets };
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: { immutable = true }
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 { renderedView: linkedView, viewRecord } = await (0, import_link_lwr_resources.linkLwrResources)(linkedAssetContent, view, viewParams, {
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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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, { get: all[name], enumerable: true });
10
+ __defProp(target, name, {get: all[name], enumerable: true});
12
11
  };
13
- var __reExport = (target, module2, desc) => {
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, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
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 __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
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 { id: appName, bootstrap: { services } = { services: [] } } = view;
43
- const { lwrVersion, format, hmrEnabled, bundle, debug, minify } = runtimeEnvironment;
44
- const { customElements } = viewMetadata;
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({ specifier: shimBundle, version }, runtimeEnvironment, runtimeParams);
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 ? { 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);
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
- await Promise.all(customElements.map(async ({ tagName: element }) => {
102
- 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);
103
- customElementsRecords.push({ elementName: element, flatGraph: graph });
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 && { requiredModules: requiredAmdModules },
134
- ...isAMD && { preloadModules: preloadAmdModules }
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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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, { get: all[name], enumerable: true });
10
+ __defProp(target, name, {get: all[name], enumerable: true});
12
11
  };
13
- var __reExport = (target, module2, desc) => {
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, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
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 __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
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 { lwrResourcesId, ...resourceContext } = cxt;
32
+ const {lwrResourcesId, ...resourceContext} = cxt;
33
33
  const {
34
- experimental_features: { ENABLE_FINGERPRINTS }
34
+ experimental_features: {ENABLE_FINGERPRINTS}
35
35
  } = resourceContext.runtimeEnvironment;
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);
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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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, { get: all[name], enumerable: true });
10
+ __defProp(target, name, {get: all[name], enumerable: true});
12
11
  };
13
- var __reExport = (target, module2, desc) => {
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, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
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 __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
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 { compat, debug, hmrEnabled, apiVersion, format } = runtimeEnvironment;
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 && { module: defaultUrl },
41
+ ...isESM && {module: defaultUrl},
41
42
  ...isESM && hmrEnabled && {
42
43
  hmr: `/${apiVersion}/hmr/${format}/${compat}?${debug ? "debug=true" : ""}`
43
44
  }
44
45
  },
45
- ...debug && { modifiers: { debug: "true" } }
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)({ id: viewInfo.id, url: viewUrl }, runtimeEnvironment, runtimeParams);
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 { assetReferences } = viewMetadata;
76
- const { contentTemplate, layoutTemplate } = view;
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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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, { get: all[name], enumerable: true });
10
+ __defProp(target, name, {get: all[name], enumerable: true});
12
11
  };
13
- var __reExport = (target, module2, desc) => {
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, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
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 __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
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 { id: appName, bootstrap: { services } = { services: [] } } = view;
43
- const { lwrVersion, format, hmrEnabled, bundle, debug, minify } = runtimeEnvironment;
44
- const { customElements } = viewMetadata;
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({ specifier: shimBundle, version }, runtimeEnvironment, runtimeParams);
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 ? { 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);
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, { imports: {}, index: {} }, moduleRegistry, runtimeEnvironment, runtimeParams);
100
+ let importMetadata = await (0, import_shared_utils.toImportMetadata)(bootstrapModuleGraph, {imports: {}, index: {}}, moduleRegistry, runtimeEnvironment, runtimeParams);
101
101
  const customElementsRecords = [];
102
- await Promise.all(customElements.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 });
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 && { requiredModules: requiredAmdModules },
134
- ...isAMD && { preloadModules: preloadAmdModules }
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,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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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, { get: all[name], enumerable: true });
10
+ __defProp(target, name, {get: all[name], enumerable: true});
12
11
  };
13
- var __reExport = (target, module2, desc) => {
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, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
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 __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
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}"><\/script>`;
58
+ return `<script type="${type}"${asyncStr} src="${src}"></script>`;
59
59
  }
60
- function generateLinkPreloadTag({ href, type }) {
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({ type, src = "", async, isPreload }) {
67
+ function generateExternalTag({type, src = "", async, isPreload}) {
68
68
  if (isPreload) {
69
- return generateLinkPreloadTag({ href: src, type });
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({ specifier, type, content, stream, nonce }) {
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(({ url, tagName, override }) => {
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({ requestPath: url }, { id, contentTemplate, properties }) {
132
+ function generatePageContext({requestPath: url}, {id, contentTemplate, properties}) {
133
133
  const title = properties?.title || getTitleFromFilePath(contentTemplate);
134
- return { id, title, url };
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, { cacheDir, rootDir }) {
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, { rootDir, cacheDir: import_path.default.join(cacheDir, "routeHandlers") });
143
+ path = await (0, import_shared_utils.transpileTs)(path, {rootDir, cacheDir: import_path.default.join(cacheDir, "routeHandlers")});
144
144
  }
145
- const moduleEntry = await import(path);
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 { viewRecord } = viewDefinition;
154
- const { bootstrap, id: appName } = route;
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)({ url: viewRequest.url, id: route.id }, runtimeEnvironment, runtimeParams)
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 && { modifiers: { debug: "true" } }
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({ type, src: asset.override?.uri });
205
+ resources.push({type, src: asset.override?.uri});
206
206
  }
207
207
  });
208
208
  viewRecord.resources?.forEach((resource) => {
209
- resources.push({ type: resource.type, src: resource.src });
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 { format } = runtimeEnvironment;
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 { format } = runtimeEnvironment;
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 { version } = await moduleRegistry.getModuleEntry({ specifier });
246
- const { namespace, name } = (0, import_shared_utils.explodeSpecifier)(specifier);
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 { ownHash } = await moduleRegistry.getModule(moduleIdentifier);
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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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, { get: all[name], enumerable: true });
10
+ __defProp(target, name, {get: all[name], enumerable: true});
12
11
  };
13
- var __reExport = (target, module2, desc) => {
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, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
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 __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
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 { routeHandler } = route;
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 { view, viewParams, renderOptions } = normalizeViewProperties(viewRequest, response, route, this.globalConfig);
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 { routeHandler } = route;
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 { view, viewParams, renderOptions } = normalizeViewProperties(viewRequest, response, route, this.globalConfig);
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 { routeHandler } = route;
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 { view, viewParams, renderOptions } = normalizeViewProperties(viewRequest, response, route, this.globalConfig);
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 { id, bootstrap, rootComponent, contentTemplate, layoutTemplate, properties } = route;
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
- }, { page, ...properties }, runtimeEnvironment, runtimeParams);
117
+ }, {page, ...properties}, runtimeEnvironment, runtimeParams);
118
118
  return viewDefinition;
119
119
  }
120
120
  async getRouteHandlerResponse(viewRequest, route, runtimeEnvironment, runtimeParams = {}) {
121
- const { rootDir, assets, contentDir, layoutsDir, cacheDir } = this.globalConfig;
122
- const paths = { rootDir, assets, contentDir, layoutsDir };
123
- const { routeHandler } = route;
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, { cacheDir, rootDir });
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, { route, viewApi, ...paths });
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 { id, bootstrap } = route;
152
- const managedView = { ...view, id, bootstrap };
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 { id, bootstrap } = route;
157
- const managedView = { ...view, id, bootstrap };
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: { rootComponent, contentTemplate: cTemplate, layoutTemplate: lTemplate },
169
+ view: {rootComponent, contentTemplate: cTemplate, layoutTemplate: lTemplate},
170
170
  viewParams,
171
171
  renderOptions
172
172
  } = response;
173
- const { rootDir, assets, contentDir, layoutsDir } = config;
174
- const paths = { rootDir, assets, contentDir, layoutsDir };
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 { id, bootstrap } = route;
180
+ const {id, bootstrap} = route;
181
181
  return {
182
182
  view: {
183
183
  id,
184
184
  bootstrap,
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)) }
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: { page, ...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
- await Promise.all(customElements.map(async ({ tagName: element }) => {
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
- await Promise.all(customElements.map(async ({ tagName: element }) => {
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 });
@@ -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.2",
8
- "homepage": "https://lwr.dev/",
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.2",
34
- "@lwrjs/diagnostics": "0.6.0-alpha.2",
35
- "@lwrjs/shared-utils": "0.6.0-alpha.2"
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.2"
38
+ "@lwrjs/types": "0.6.0-alpha.6"
39
39
  },
40
40
  "engines": {
41
41
  "node": ">=14.15.4 <17"
42
42
  },
43
- "gitHead": "5b0f761312e566fdaeec26ac3dbb704f8421b1a9"
43
+ "gitHead": "5d624e196dd46787399e6a269479508abe236081"
44
44
  }