@enonic/nextjs-adapter 3.0.0-B1 → 3.0.0-B3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/baseMappings.js +3 -2
  2. package/baseMappings.js.map +1 -0
  3. package/client.d.ts +1 -0
  4. package/client.js +3 -0
  5. package/client.js.map +1 -0
  6. package/common/ComponentRegistry.d.ts +34 -0
  7. package/{ComponentRegistry.js → common/ComponentRegistry.js} +26 -26
  8. package/common/ComponentRegistry.js.map +1 -0
  9. package/{UrlProcessor.d.ts → common/UrlProcessor.d.ts} +2 -2
  10. package/{UrlProcessor.js → common/UrlProcessor.js} +16 -8
  11. package/common/UrlProcessor.js.map +1 -0
  12. package/common/constants.d.ts +50 -0
  13. package/common/constants.js +79 -0
  14. package/common/constants.js.map +1 -0
  15. package/common/env.d.ts +11 -0
  16. package/common/env.js +29 -0
  17. package/common/env.js.map +1 -0
  18. package/guillotine/applyProcessors.d.ts +2 -0
  19. package/guillotine/applyProcessors.js +33 -0
  20. package/guillotine/applyProcessors.js.map +1 -0
  21. package/guillotine/buildComponentTree.d.ts +2 -0
  22. package/guillotine/buildComponentTree.js +45 -0
  23. package/guillotine/buildComponentTree.js.map +1 -0
  24. package/guillotine/buildErrorResponse.d.ts +3 -0
  25. package/guillotine/buildErrorResponse.js +26 -0
  26. package/guillotine/buildErrorResponse.js.map +1 -0
  27. package/guillotine/buildPage.d.ts +2 -0
  28. package/guillotine/buildPage.js +10 -0
  29. package/guillotine/buildPage.js.map +1 -0
  30. package/guillotine/collectComponentDescriptors.d.ts +6 -0
  31. package/guillotine/collectComponentDescriptors.js +43 -0
  32. package/guillotine/collectComponentDescriptors.js.map +1 -0
  33. package/guillotine/combineMultipleQueries.d.ts +2 -0
  34. package/guillotine/combineMultipleQueries.js +58 -0
  35. package/guillotine/combineMultipleQueries.js.map +1 -0
  36. package/guillotine/createMetaData.d.ts +17 -0
  37. package/guillotine/createMetaData.js +44 -0
  38. package/guillotine/createMetaData.js.map +1 -0
  39. package/guillotine/fetchContent.d.ts +2 -40
  40. package/guillotine/fetchContent.js +65 -676
  41. package/guillotine/fetchContent.js.map +1 -0
  42. package/guillotine/fetchContentData.d.ts +2 -0
  43. package/guillotine/fetchContentData.js +27 -0
  44. package/guillotine/fetchContentData.js.map +1 -0
  45. package/guillotine/fetchContentPathsForAllLocales.d.ts +2 -0
  46. package/guillotine/fetchContentPathsForAllLocales.js +21 -0
  47. package/guillotine/fetchContentPathsForAllLocales.js.map +1 -0
  48. package/guillotine/fetchContentPathsForLocale.d.ts +2 -0
  49. package/guillotine/fetchContentPathsForLocale.js +40 -0
  50. package/guillotine/fetchContentPathsForLocale.js.map +1 -0
  51. package/guillotine/fetchFromApi.d.ts +3 -0
  52. package/guillotine/fetchFromApi.js +67 -0
  53. package/guillotine/fetchFromApi.js.map +1 -0
  54. package/guillotine/fetchGuillotine.d.ts +3 -0
  55. package/guillotine/fetchGuillotine.js +57 -0
  56. package/guillotine/fetchGuillotine.js.map +1 -0
  57. package/guillotine/fetchMetaData.d.ts +2 -0
  58. package/guillotine/fetchMetaData.js +30 -0
  59. package/guillotine/fetchMetaData.js.map +1 -0
  60. package/guillotine/getCleanContentPathArrayOrThrow400.d.ts +2 -0
  61. package/guillotine/getCleanContentPathArrayOrThrow400.js +20 -0
  62. package/guillotine/getCleanContentPathArrayOrThrow400.js.map +1 -0
  63. package/guillotine/getComponentConfig.d.ts +2 -0
  64. package/guillotine/getComponentConfig.js +5 -0
  65. package/guillotine/getComponentConfig.js.map +1 -0
  66. package/guillotine/getContentAndComponentPaths.d.ts +1 -0
  67. package/guillotine/getContentAndComponentPaths.js +12 -0
  68. package/guillotine/getContentAndComponentPaths.js.map +1 -0
  69. package/guillotine/getMetaData.d.ts +0 -92
  70. package/guillotine/getMetaData.js +47 -109
  71. package/guillotine/getMetaData.js.map +1 -0
  72. package/guillotine/getParentRegion.d.ts +2 -0
  73. package/guillotine/getParentRegion.js +40 -0
  74. package/guillotine/getParentRegion.js.map +1 -0
  75. package/guillotine/getQueryAndVariables.d.ts +2 -0
  76. package/guillotine/getQueryAndVariables.js +32 -0
  77. package/guillotine/getQueryAndVariables.js.map +1 -0
  78. package/guillotine/metadata/configQuery.d.ts +2 -0
  79. package/guillotine/metadata/configQuery.js +36 -0
  80. package/guillotine/metadata/configQuery.js.map +1 -0
  81. package/guillotine/metadata/richTextQuery.d.ts +1 -0
  82. package/guillotine/metadata/richTextQuery.js +32 -0
  83. package/guillotine/metadata/richTextQuery.js.map +1 -0
  84. package/guillotine/parseComponentPath.d.ts +2 -0
  85. package/guillotine/parseComponentPath.js +22 -0
  86. package/guillotine/parseComponentPath.js.map +1 -0
  87. package/guillotine/prefixLayoutPath.d.ts +1 -0
  88. package/guillotine/prefixLayoutPath.js +13 -0
  89. package/guillotine/prefixLayoutPath.js.map +1 -0
  90. package/guillotine/processComponentConfig.d.ts +2 -0
  91. package/guillotine/processComponentConfig.js +30 -0
  92. package/guillotine/processComponentConfig.js.map +1 -0
  93. package/guillotine/restrictComponentsToPath.d.ts +2 -0
  94. package/guillotine/restrictComponentsToPath.js +35 -0
  95. package/guillotine/restrictComponentsToPath.js.map +1 -0
  96. package/guillotine/validateData.d.ts +2 -0
  97. package/guillotine/validateData.js +7 -0
  98. package/guillotine/validateData.js.map +1 -0
  99. package/guillotine/validateNotFound.d.ts +2 -0
  100. package/guillotine/validateNotFound.js +16 -0
  101. package/guillotine/validateNotFound.js.map +1 -0
  102. package/guillotine/validateShortcut.d.ts +2 -0
  103. package/guillotine/validateShortcut.js +29 -0
  104. package/guillotine/validateShortcut.js.map +1 -0
  105. package/i18n/LocaleContext.d.ts +2 -8
  106. package/i18n/LocaleContext.jsx +17 -13
  107. package/i18n/LocaleContext.jsx.map +1 -0
  108. package/i18n/i18n.d.ts +1 -3
  109. package/i18n/i18n.js +2 -1
  110. package/i18n/i18n.js.map +1 -0
  111. package/index.d.ts +14 -7
  112. package/index.js +14 -7
  113. package/index.js.map +1 -0
  114. package/package.json +63 -15
  115. package/query/Shortcut.js +1 -0
  116. package/query/Shortcut.js.map +1 -0
  117. package/server.d.ts +5 -0
  118. package/server.js.map +1 -0
  119. package/types/component.d.ts +114 -0
  120. package/types/component.js +2 -0
  121. package/types/component.js.map +1 -0
  122. package/types/componentProps.d.ts +104 -0
  123. package/types/componentProps.js +2 -0
  124. package/types/componentProps.js.map +1 -0
  125. package/types/guillotine.d.ts +342 -0
  126. package/types/guillotine.js +2 -0
  127. package/types/guillotine.js.map +1 -0
  128. package/types/i18n.d.ts +7 -0
  129. package/types/i18n.js +2 -0
  130. package/types/i18n.js.map +1 -0
  131. package/types/index.d.ts +45 -0
  132. package/types/index.js +3 -0
  133. package/types/index.js.map +1 -0
  134. package/types/next.d.ts +6 -0
  135. package/types/next.js +2 -0
  136. package/types/next.js.map +1 -0
  137. package/types/util.d.ts +3 -0
  138. package/types/util.js +3 -0
  139. package/types/util.js.map +1 -0
  140. package/utils/addLineNumbers.d.ts +1 -0
  141. package/utils/addLineNumbers.js +4 -0
  142. package/utils/addLineNumbers.js.map +1 -0
  143. package/utils/buildGuillotineRequestHeaders.d.ts +7 -0
  144. package/utils/buildGuillotineRequestHeaders.js +16 -0
  145. package/utils/buildGuillotineRequestHeaders.js.map +1 -0
  146. package/utils/commonChars.d.ts +1 -0
  147. package/utils/commonChars.js +17 -0
  148. package/utils/commonChars.js.map +1 -0
  149. package/utils/fixDoubleSlashes.d.ts +1 -0
  150. package/utils/fixDoubleSlashes.js +4 -0
  151. package/utils/fixDoubleSlashes.js.map +1 -0
  152. package/utils/getContentApiUrl.d.ts +2 -0
  153. package/utils/getContentApiUrl.js +15 -0
  154. package/utils/getContentApiUrl.js.map +1 -0
  155. package/utils/getProjectLocaleConfig.d.ts +2 -0
  156. package/utils/getProjectLocaleConfig.js +19 -0
  157. package/utils/getProjectLocaleConfig.js.map +1 -0
  158. package/utils/getProjectLocaleConfigById.d.ts +2 -0
  159. package/utils/getProjectLocaleConfigById.js +16 -0
  160. package/utils/getProjectLocaleConfigById.js.map +1 -0
  161. package/utils/getProjectLocaleConfigByLocale.d.ts +2 -0
  162. package/utils/getProjectLocaleConfigByLocale.js +13 -0
  163. package/utils/getProjectLocaleConfigByLocale.js.map +1 -0
  164. package/utils/getProjectLocaleConfigs.d.ts +2 -0
  165. package/utils/getProjectLocaleConfigs.js +30 -0
  166. package/utils/getProjectLocaleConfigs.js.map +1 -0
  167. package/utils/getProjectLocales.d.ts +1 -0
  168. package/utils/getProjectLocales.js +5 -0
  169. package/utils/getProjectLocales.js.map +1 -0
  170. package/utils/getRenderMode.d.ts +3 -0
  171. package/utils/getRenderMode.js +8 -0
  172. package/utils/getRenderMode.js.map +1 -0
  173. package/utils/getRequestLocaleInfo.d.ts +6 -0
  174. package/utils/getRequestLocaleInfo.js +26 -0
  175. package/utils/getRequestLocaleInfo.js.map +1 -0
  176. package/utils/getXpBaseUrl.d.ts +2 -0
  177. package/utils/getXpBaseUrl.js +8 -0
  178. package/utils/getXpBaseUrl.js.map +1 -0
  179. package/utils/indent.d.ts +1 -0
  180. package/utils/indent.js +5 -0
  181. package/utils/indent.js.map +1 -0
  182. package/utils/sanitizeGraphqlName.d.ts +1 -0
  183. package/utils/sanitizeGraphqlName.js +12 -0
  184. package/utils/sanitizeGraphqlName.js.map +1 -0
  185. package/views/BaseComponent.d.ts +6 -11
  186. package/views/BaseComponent.jsx +18 -21
  187. package/views/BaseComponent.jsx.map +1 -0
  188. package/views/BaseContent.d.ts +3 -3
  189. package/views/BaseContent.jsx +2 -5
  190. package/views/BaseContent.jsx.map +1 -0
  191. package/views/BaseLayout.d.ts +3 -16
  192. package/views/BaseLayout.jsx +3 -3
  193. package/views/BaseLayout.jsx.map +1 -0
  194. package/views/BaseMacro.d.ts +3 -13
  195. package/views/BaseMacro.jsx +4 -3
  196. package/views/BaseMacro.jsx.map +1 -0
  197. package/views/BasePage.d.ts +3 -18
  198. package/views/BasePage.jsx +3 -3
  199. package/views/BasePage.jsx.map +1 -0
  200. package/views/BasePart.d.ts +3 -18
  201. package/views/BasePart.jsx +3 -3
  202. package/views/BasePart.jsx.map +1 -0
  203. package/views/Empty.d.ts +2 -2
  204. package/views/Empty.jsx +2 -1
  205. package/views/Empty.jsx.map +1 -0
  206. package/views/Fragment.d.ts +3 -9
  207. package/views/Fragment.jsx +2 -2
  208. package/views/Fragment.jsx.map +1 -0
  209. package/views/MainView.d.ts +3 -3
  210. package/views/MainView.jsx +2 -2
  211. package/views/MainView.jsx.map +1 -0
  212. package/views/PropsView.d.ts +3 -0
  213. package/views/PropsView.jsx +21 -0
  214. package/views/PropsView.jsx.map +1 -0
  215. package/views/Region.d.ts +4 -17
  216. package/views/Region.jsx +2 -2
  217. package/views/Region.jsx.map +1 -0
  218. package/views/RichTextView.d.ts +3 -13
  219. package/views/RichTextView.jsx +2 -2
  220. package/views/RichTextView.jsx.map +1 -0
  221. package/views/SingleComponent.d.ts +3 -3
  222. package/views/SingleComponent.jsx +1 -2
  223. package/views/SingleComponent.jsx.map +1 -0
  224. package/views/StaticContent.d.ts +2 -6
  225. package/views/StaticContent.jsx +1 -0
  226. package/views/StaticContent.jsx.map +1 -0
  227. package/views/Text.d.ts +5 -5
  228. package/views/Text.jsx +1 -1
  229. package/views/Text.jsx.map +1 -0
  230. package/views/getClientHydratedHtml.d.ts +2 -0
  231. package/views/getClientHydratedHtml.jsx +9 -0
  232. package/views/getClientHydratedHtml.jsx.map +1 -0
  233. package/views/macros/DefaultMacro.d.ts +1 -1
  234. package/views/macros/DefaultMacro.jsx +1 -0
  235. package/views/macros/DefaultMacro.jsx.map +1 -0
  236. package/views/macros/DisableMacro.d.ts +1 -1
  237. package/views/macros/DisableMacro.jsx +1 -0
  238. package/views/macros/DisableMacro.jsx.map +1 -0
  239. package/ComponentRegistry.d.ts +0 -64
  240. package/utils.d.ts +0 -111
  241. package/utils.js +0 -255
package/baseMappings.js CHANGED
@@ -1,5 +1,5 @@
1
- import { ComponentRegistry } from './ComponentRegistry';
2
- import { FRAGMENT_CONTENTTYPE_NAME, XP_COMPONENT_TYPE } from './utils';
1
+ import { ComponentRegistry } from './common/ComponentRegistry';
2
+ import { FRAGMENT_CONTENTTYPE_NAME, XP_COMPONENT_TYPE } from './common/constants';
3
3
  import FragmentView from './views/Fragment';
4
4
  import BasePage from './views/BasePage';
5
5
  import BasePart from './views/BasePart';
@@ -40,3 +40,4 @@ ComponentRegistry.addMacro('system:disable', {
40
40
  view: DisableMacro,
41
41
  configQuery: '{body}',
42
42
  });
43
+ //# sourceMappingURL=baseMappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseMappings.js","sourceRoot":"","sources":["../src/baseMappings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAC,yBAAyB,EAAE,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAChF,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,QAAQ,MAAM,cAAc,CAAC;AACpC,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAGlD,qBAAqB;AAErB,iBAAiB,CAAC,cAAc,CAAC,yBAAyB,EAAE;IACxD,IAAI,EAAE,YAAY;CACrB,CAAC,CAAC;AAEH,iBAAiB,CAAC,cAAc,CAAC,eAAe,EAAE;IAC9C,KAAK,EAAE,gBAAgB;CAC1B,CAAC,CAAC;AAEH,kBAAkB;AAElB,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE;IACnD,IAAI,EAAE,QAAQ;CACjB,CAAC,CAAC;AAEH,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE;IACnD,IAAI,EAAE,QAAQ;CACjB,CAAC,CAAC;AAEH,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE;IACrD,IAAI,EAAE,UAAU;CACnB,CAAC,CAAC;AAEH,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC,QAAQ,EAAE;IACvD,IAAI,EAAE,YAAY;CACrB,CAAC,CAAC;AAEH,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,EAAE;IACnD,IAAI,EAAE,QAAQ;CACjB,CAAC,CAAC;AAEH,iBAAiB;AACjB,iBAAiB,CAAC,QAAQ,CAAC,cAAc,EAAE;IACvC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,QAAQ;CACxB,CAAC,CAAC;AACH,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,EAAE;IACzC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,QAAQ;CACxB,CAAC,CAAC"}
package/client.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { LocaleContextProvider, useLocaleContext } from './i18n/LocaleContext';
package/client.js ADDED
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ export { LocaleContextProvider, useLocaleContext } from './i18n/LocaleContext';
3
+ //# sourceMappingURL=client.js.map
package/client.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAC,qBAAqB,EAAE,gBAAgB,EAAC,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { ComponentDefinition, ComponentDefinitionParams, PageComponent, SelectedQueryMaybeVariablesFunc } from '../types';
2
+ export declare class ComponentRegistry {
3
+ private static contentTypes;
4
+ private static pages;
5
+ private static components;
6
+ private static parts;
7
+ private static layouts;
8
+ private static macros;
9
+ private static commonQuery;
10
+ static addComponent(name: string, obj: ComponentDefinitionParams): void;
11
+ static addContentType(name: string, obj: ComponentDefinitionParams): void;
12
+ static addMacro(name: string, obj: ComponentDefinitionParams): void;
13
+ static addLayout(name: string, obj: ComponentDefinitionParams): void;
14
+ static addPage(name: string, obj: ComponentDefinitionParams): void;
15
+ static addPart(name: string, obj: ComponentDefinitionParams): void;
16
+ private static addType;
17
+ private static getSelector;
18
+ private static getType;
19
+ static getByComponent(component: PageComponent): ComponentDefinition | undefined;
20
+ static setCommonQuery(query: SelectedQueryMaybeVariablesFunc): void;
21
+ static getCommonQuery(): SelectedQueryMaybeVariablesFunc;
22
+ static getMacro(name: string): ComponentDefinition | undefined;
23
+ static getMacros(): [string, ComponentDefinition][];
24
+ static getParts(): [string, ComponentDefinition][];
25
+ static getLayouts(): [string, ComponentDefinition][];
26
+ static getPages(): [string, ComponentDefinition][];
27
+ static getContentTypes(): [string, ComponentDefinition][];
28
+ static getComponents(): [string, ComponentDefinition][];
29
+ static getContentType(name: string): ComponentDefinition | undefined;
30
+ static getPage(name: string): ComponentDefinition | undefined;
31
+ static getPart(name: string): ComponentDefinition | undefined;
32
+ static getLayout(name: string): ComponentDefinition | undefined;
33
+ static getComponent(name: string): ComponentDefinition | undefined;
34
+ }
@@ -1,4 +1,4 @@
1
- import { XP_COMPONENT_TYPE } from './utils';
1
+ import { CATCH_ALL, XP_COMPONENT_TYPE, } from './constants';
2
2
  function toSelectorName(type) {
3
3
  switch (type) {
4
4
  case XP_COMPONENT_TYPE.PAGE:
@@ -9,8 +9,30 @@ function toSelectorName(type) {
9
9
  return 'part';
10
10
  }
11
11
  }
12
- export const CATCH_ALL = '*';
13
12
  export class ComponentRegistry {
13
+ static addComponent(name, obj) {
14
+ return ComponentRegistry.addType('component', name, obj);
15
+ }
16
+ static addContentType(name, obj) {
17
+ return ComponentRegistry.addType('contentType', name, obj);
18
+ }
19
+ static addMacro(name, obj) {
20
+ return ComponentRegistry.addType('macro', name, obj);
21
+ }
22
+ static addLayout(name, obj) {
23
+ return ComponentRegistry.addType('layout', name, obj);
24
+ }
25
+ static addPage(name, obj) {
26
+ return ComponentRegistry.addType('page', name, obj);
27
+ }
28
+ static addPart(name, obj) {
29
+ return ComponentRegistry.addType('part', name, obj);
30
+ }
31
+ static addType(selectorName, name, obj) {
32
+ const selector = ComponentRegistry.getSelector(selectorName);
33
+ const curr = selector[name];
34
+ selector[name] = curr ? Object.assign(curr, obj) : obj;
35
+ }
14
36
  static getSelector(name) {
15
37
  switch (name) {
16
38
  case 'contentType':
@@ -31,7 +53,7 @@ export class ComponentRegistry {
31
53
  const selector = ComponentRegistry.getSelector(selectorName);
32
54
  let type = selector[typeName];
33
55
  if (type) {
34
- type.catchAll = false;
56
+ type.catchAll = typeName === CATCH_ALL;
35
57
  }
36
58
  else if (!type && useCatchAll) {
37
59
  type = selector[CATCH_ALL];
@@ -41,11 +63,6 @@ export class ComponentRegistry {
41
63
  }
42
64
  return type;
43
65
  }
44
- static addType(selectorName, name, obj) {
45
- const selector = ComponentRegistry.getSelector(selectorName);
46
- const curr = selector[name];
47
- selector[name] = curr ? Object.assign(curr, obj) : obj;
48
- }
49
66
  static getByComponent(component) {
50
67
  const selName = toSelectorName(component.type);
51
68
  const cmpData = component[component.type];
@@ -58,9 +75,6 @@ export class ComponentRegistry {
58
75
  static getCommonQuery() {
59
76
  return this.commonQuery;
60
77
  }
61
- static addMacro(name, obj) {
62
- return ComponentRegistry.addType('macro', name, obj);
63
- }
64
78
  static getMacro(name) {
65
79
  return ComponentRegistry.getType('macro', name);
66
80
  }
@@ -82,33 +96,18 @@ export class ComponentRegistry {
82
96
  static getComponents() {
83
97
  return Object.entries(this.components);
84
98
  }
85
- static addContentType(name, obj) {
86
- return ComponentRegistry.addType('contentType', name, obj);
87
- }
88
99
  static getContentType(name) {
89
100
  return ComponentRegistry.getType('contentType', name);
90
101
  }
91
- static addPage(name, obj) {
92
- return ComponentRegistry.addType('page', name, obj);
93
- }
94
102
  static getPage(name) {
95
103
  return ComponentRegistry.getType('page', name);
96
104
  }
97
- static addPart(name, obj) {
98
- return ComponentRegistry.addType('part', name, obj);
99
- }
100
105
  static getPart(name) {
101
106
  return ComponentRegistry.getType('part', name);
102
107
  }
103
- static addLayout(name, obj) {
104
- return ComponentRegistry.addType('layout', name, obj);
105
- }
106
108
  static getLayout(name) {
107
109
  return ComponentRegistry.getType('layout', name);
108
110
  }
109
- static addComponent(name, obj) {
110
- return ComponentRegistry.addType('component', name, obj);
111
- }
112
111
  static getComponent(name) {
113
112
  return ComponentRegistry.getType('component', name);
114
113
  }
@@ -119,3 +118,4 @@ ComponentRegistry.components = {};
119
118
  ComponentRegistry.parts = {};
120
119
  ComponentRegistry.layouts = {};
121
120
  ComponentRegistry.macros = {};
121
+ //# sourceMappingURL=ComponentRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentRegistry.js","sourceRoot":"","sources":["../../src/common/ComponentRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ImageData, LinkData, MetaData } from './guillotine/getMetaData';
1
+ import type { ImageData, LinkData, MetaData } from '../types';
2
2
  export declare class UrlProcessor {
3
3
  static IMG_TAG: string;
4
4
  static LINK_TAG: string;
@@ -14,7 +14,7 @@ export declare class UrlProcessor {
14
14
  static process(url: string, meta: MetaData, serverSide?: boolean, isResource?: boolean): string;
15
15
  static setSiteKey(key: string): void;
16
16
  static isMediaLink(ref: string, linkData: LinkData[]): boolean;
17
- static isContentImage(ref: string, linkData: ImageData[]): boolean;
17
+ static isContentImage(ref: string, imageData: ImageData[]): boolean;
18
18
  static processSrcSet(srcset: string, meta: MetaData): string;
19
19
  private static stripApiUrl;
20
20
  private static isAttachmentUrl;
@@ -1,4 +1,7 @@
1
- import { commonChars, fixDoubleSlashes, getProjectLocaleConfigById, RENDER_MODE } from './utils';
1
+ import { RENDER_MODE } from './constants';
2
+ import { fixDoubleSlashes } from '../utils/fixDoubleSlashes';
3
+ import { getProjectLocaleConfigById } from '../utils/getProjectLocaleConfigById';
4
+ import { commonChars } from '../utils/commonChars';
2
5
  import { addBasePath } from 'next/dist/client/add-base-path';
3
6
  export class UrlProcessor {
4
7
  static process(url, meta, serverSide = false, isResource = false) {
@@ -10,7 +13,6 @@ export class UrlProcessor {
10
13
  return url;
11
14
  }
12
15
  let normalUrl;
13
- let result;
14
16
  if (this.isRelative(url)) {
15
17
  normalUrl = url;
16
18
  }
@@ -21,6 +23,7 @@ export class UrlProcessor {
21
23
  normalUrl = this.stripApiUrl(url, apiUrl);
22
24
  }
23
25
  const baseUrl = (meta === null || meta === void 0 ? void 0 : meta.baseUrl) && (meta === null || meta === void 0 ? void 0 : meta.baseUrl) !== '/' ? meta.baseUrl : '';
26
+ let result;
24
27
  if (meta.renderMode === RENDER_MODE.NEXT) {
25
28
  // only add basePath and locale in next mode
26
29
  result = `/${normalUrl}`;
@@ -45,20 +48,24 @@ export class UrlProcessor {
45
48
  }
46
49
  static isMediaLink(ref, linkData) {
47
50
  var _a;
48
- return ((_a = linkData.find(data => data.ref === ref)) === null || _a === void 0 ? void 0 : _a.media) !== null;
51
+ // Assuming linkData can't contain more than one entry with the same ref
52
+ return Array.isArray(linkData) && !!((_a = linkData.find(data => (data === null || data === void 0 ? void 0 : data.ref) === ref)) === null || _a === void 0 ? void 0 : _a.media);
49
53
  }
50
- static isContentImage(ref, linkData) {
54
+ static isContentImage(ref, imageData) {
51
55
  var _a;
52
- return ((_a = linkData.find(data => data.ref === ref)) === null || _a === void 0 ? void 0 : _a.image) !== null;
56
+ // Assuming imageData can't contain more than one entry with the same ref
57
+ return Array.isArray(imageData) && !!((_a = imageData.find(data => data.ref === ref)) === null || _a === void 0 ? void 0 : _a.image);
53
58
  }
54
59
  static processSrcSet(srcset, meta) {
55
60
  return srcset.split(/, */g).map(src => {
56
61
  const srcParts = src.trim().split(' ');
57
62
  switch (srcParts.length) {
58
- case 1:
63
+ case 1: // src only
59
64
  return this.process(src, meta);
60
- case 2:
61
- return this.process(srcParts[0], meta) + ' ' + srcParts[1];
65
+ case 2: // width descriptor
66
+ return `${this.process(srcParts[0], meta)} ${srcParts[1]}`;
67
+ case 3: // pixel density descriptor
68
+ return `${this.process(srcParts[0], meta)} ${srcParts[1]} ${srcParts[2]}`;
62
69
  default:
63
70
  console.warn('Can not process image srcset: ' + src);
64
71
  return src;
@@ -110,3 +117,4 @@ export function getUrl(url, meta) {
110
117
  export function getAsset(url, meta) {
111
118
  return UrlProcessor.process(url, meta, false, true);
112
119
  }
120
+ //# sourceMappingURL=UrlProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UrlProcessor.js","sourceRoot":"","sources":["../../src/common/UrlProcessor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,0BAA0B,EAAC,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAG3D,MAAM,OAAO,YAAY;IAiBd,MAAM,CAAC,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,UAAU,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK;QACrF,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YAC3G,qBAAqB;YACrB,sBAAsB;YACtB,mBAAmB;YACnB,iCAAiC;YACjC,OAAO,GAAG,CAAC;QACf,CAAC;QAED,IAAI,SAAiB,CAAC;QACtB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,SAAS,GAAG,GAAG,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,8DAA8D;YAC9D,sEAAsE;YACtE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACpC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3E,IAAI,MAAc,CAAC;QACnB,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;YACvC,4CAA4C;YAC5C,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpD,4CAA4C;gBAC5C,6CAA6C;gBAC7C,wCAAwC;gBACxC,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YACxC,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,6CAA6C;gBAC7C,MAAM,GAAG,WAAW,CAAC,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC;QACvC,CAAC;QAED,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,GAAW;QAChC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,QAAoB;;QACvD,wEAAwE;QACxE,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,MAAK,GAAG,CAAC,0CAAE,KAAK,CAAA,CAAC;IACxF,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,GAAW,EAAE,SAAsB;;QAC5D,yEAAyE;QACzE,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA,MAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,0CAAE,KAAK,CAAA,CAAC;IACzF,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,MAAc,EAAE,IAAc;QACtD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACtB,KAAK,CAAC,EAAE,WAAW;oBACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACnC,KAAK,CAAC,EAAE,mBAAmB;oBACvB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,KAAK,CAAC,EAAE,2BAA2B;oBAC/B,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E;oBACI,OAAO,CAAC,IAAI,CAAC,gCAAgC,GAAG,GAAG,CAAC,CAAC;oBACrD,OAAO,GAAG,CAAC;YACnB,CAAC;QACL,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,MAAc;QAClD,mDAAmD;QACnD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtG,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,GAAW;QACtC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,GAAW;QACrC,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,CAAC,CAAC,CAAC,KAAI,GAAG,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,GAAW;QACjC,OAAO,CAAC,gCAAgC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,IAAc;;QACnC,IAAI,WAAW,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,KAAI,EAAE,CAAC;QACvE,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,EAAE,CAAC;YACvB,WAAW,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,WAAW,CAAC;IACvB,CAAC;;AAnHa,oBAAO,GAAG,KAAK,CAAC;AAChB,qBAAQ,GAAG,GAAG,CAAC;AACf,sBAAS,GAAG,cAAc,CAAC;AAE3B,qBAAQ,GAAG,gBAAgB,CAAC;AAC5B,sBAAS,GAAG,eAAe,CAAC;AAC5B,uBAAU,GAAG,gBAAgB,CAAC;AAE7B,4BAAe,GAAG,4BAA4B,CAAC;AAC/C,4BAAe,GAAG,MAAM,CAAC;AACzB,8BAAiB,GAAG,MAAM,CAAC;AAC3B,6BAAgB,GAAG,WAAW,CAAC;AA2GlD,6FAA6F;AAC7F,MAAM,aAAa,GAAG,0BAA0B,EAAE,CAAC;AACnD,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAE5C,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,IAAc;IAC9C,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,IAAc;IAChD,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,50 @@
1
+ export declare const CATCH_ALL = "*";
2
+ export declare enum ENV_VARS {
3
+ PROJECTS = "ENONIC_PROJECTS",
4
+ API_URL = "ENONIC_API",
5
+ APP_NAME = "ENONIC_APP_NAME"
6
+ }
7
+ export declare const FRAGMENT_CONTENTTYPE_NAME = "portal:fragment";
8
+ export declare const FRAGMENT_DEFAULT_REGION_NAME = "fragment";
9
+ /** excluded contents:
10
+ * - folder
11
+ * - shortcuts (redirect can't be used in prerender)
12
+ * - media
13
+ * - paths with '/_' in them
14
+ */
15
+ export declare const GET_STATIC_PATHS_QUERY = "query ($count: Int) {\n guillotine {\n queryDsl(\n first: $count,\n sort: {\n field: \"modifiedTime\",\n direction: DESC\n }\n query: {boolean: {mustNot: [\n {in: {field: \"type\", stringValues: [\"base:folder\", \"base:shortcut\"]}}\n {like: {field: \"type\", value: \"media:*\"}}\n {like: {field: \"_path\", value: \"*/_*\"}}\n ]}}\n ) {\n _name\n _path\n site {_name}\n }\n }\n}";
16
+ export declare enum GUILLOTINE_REQUEST_HEADERS {
17
+ COOKIE = "Cookie",
18
+ LOCALE = "locale",
19
+ LOCALES = "locales",
20
+ DEFAULT_LOCALE = "default-locale"
21
+ }
22
+ export declare const JSESSIONID_HEADER = "jsessionid";
23
+ export declare const PAGE_TEMPLATE_CONTENTTYPE_NAME = "portal:page-template";
24
+ export declare const PAGE_TEMPLATE_FOLDER = "portal:template-folder";
25
+ export declare const PORTAL_COMPONENT_ATTRIBUTE = "data-portal-component-type";
26
+ export declare const PORTAL_REGION_ATTRIBUTE = "data-portal-region";
27
+ export declare const PROJECT_ID_HEADER = "content-studio-project";
28
+ export declare enum RENDER_MODE {
29
+ INLINE = "inline",
30
+ EDIT = "edit",
31
+ PREVIEW = "preview",
32
+ LIVE = "live",
33
+ ADMIN = "admin",
34
+ NEXT = "next"
35
+ }
36
+ export declare const RENDER_MODE_HEADER = "content-studio-mode";
37
+ export declare const SITE_CONTENTTYPE_NAME = "portal:site";
38
+ export declare const XP_BASE_URL_HEADER = "xpbaseurl";
39
+ export declare enum XP_COMPONENT_TYPE {
40
+ PART = "part",
41
+ LAYOUT = "layout",
42
+ TEXT = "text",
43
+ FRAGMENT = "fragment",
44
+ PAGE = "page"
45
+ }
46
+ export declare enum XP_REQUEST_TYPE {
47
+ COMPONENT = "component",
48
+ TYPE = "type",
49
+ PAGE = "page"
50
+ }
@@ -0,0 +1,79 @@
1
+ export const CATCH_ALL = '*';
2
+ export var ENV_VARS;
3
+ (function (ENV_VARS) {
4
+ ENV_VARS["PROJECTS"] = "ENONIC_PROJECTS";
5
+ ENV_VARS["API_URL"] = "ENONIC_API";
6
+ ENV_VARS["APP_NAME"] = "ENONIC_APP_NAME";
7
+ })(ENV_VARS || (ENV_VARS = {}));
8
+ export const FRAGMENT_CONTENTTYPE_NAME = 'portal:fragment';
9
+ export const FRAGMENT_DEFAULT_REGION_NAME = 'fragment';
10
+ /** excluded contents:
11
+ * - folder
12
+ * - shortcuts (redirect can't be used in prerender)
13
+ * - media
14
+ * - paths with '/_' in them
15
+ */
16
+ export const GET_STATIC_PATHS_QUERY = `query ($count: Int) {
17
+ guillotine {
18
+ queryDsl(
19
+ first: $count,
20
+ sort: {
21
+ field: "modifiedTime",
22
+ direction: DESC
23
+ }
24
+ query: {boolean: {mustNot: [
25
+ {in: {field: "type", stringValues: ["base:folder", "base:shortcut"]}}
26
+ {like: {field: "type", value: "media:*"}}
27
+ {like: {field: "_path", value: "*/_*"}}
28
+ ]}}
29
+ ) {
30
+ _name
31
+ _path
32
+ site {_name}
33
+ }
34
+ }
35
+ }`;
36
+ // Seems like NodeJS.fetch lowercases all headers, so we need to lowercase the
37
+ // header names here.
38
+ export var GUILLOTINE_REQUEST_HEADERS;
39
+ (function (GUILLOTINE_REQUEST_HEADERS) {
40
+ GUILLOTINE_REQUEST_HEADERS["COOKIE"] = "Cookie";
41
+ GUILLOTINE_REQUEST_HEADERS["LOCALE"] = "locale";
42
+ GUILLOTINE_REQUEST_HEADERS["LOCALES"] = "locales";
43
+ GUILLOTINE_REQUEST_HEADERS["DEFAULT_LOCALE"] = "default-locale";
44
+ })(GUILLOTINE_REQUEST_HEADERS || (GUILLOTINE_REQUEST_HEADERS = {}));
45
+ export const JSESSIONID_HEADER = 'jsessionid';
46
+ export const PAGE_TEMPLATE_CONTENTTYPE_NAME = 'portal:page-template';
47
+ export const PAGE_TEMPLATE_FOLDER = 'portal:template-folder';
48
+ export const PORTAL_COMPONENT_ATTRIBUTE = 'data-portal-component-type';
49
+ export const PORTAL_REGION_ATTRIBUTE = 'data-portal-region';
50
+ export const PROJECT_ID_HEADER = 'content-studio-project';
51
+ export var RENDER_MODE;
52
+ (function (RENDER_MODE) {
53
+ RENDER_MODE["INLINE"] = "inline";
54
+ RENDER_MODE["EDIT"] = "edit";
55
+ RENDER_MODE["PREVIEW"] = "preview";
56
+ RENDER_MODE["LIVE"] = "live";
57
+ RENDER_MODE["ADMIN"] = "admin";
58
+ RENDER_MODE["NEXT"] = "next"; // Fallback: not using XP proxy but rendering directly with next.js
59
+ })(RENDER_MODE || (RENDER_MODE = {}));
60
+ export const RENDER_MODE_HEADER = 'content-studio-mode';
61
+ export const SITE_CONTENTTYPE_NAME = 'portal:site';
62
+ // URI parameter marking that a request is for a preview for CS. MUST MATCH THE VALUE OF 'FROM_XP_PARAM' on XP side.
63
+ export const XP_BASE_URL_HEADER = 'xpbaseurl';
64
+ // TODO: Use these instead of hardcoded strings everywhere
65
+ export var XP_COMPONENT_TYPE;
66
+ (function (XP_COMPONENT_TYPE) {
67
+ XP_COMPONENT_TYPE["PART"] = "part";
68
+ XP_COMPONENT_TYPE["LAYOUT"] = "layout";
69
+ XP_COMPONENT_TYPE["TEXT"] = "text";
70
+ XP_COMPONENT_TYPE["FRAGMENT"] = "fragment";
71
+ XP_COMPONENT_TYPE["PAGE"] = "page";
72
+ })(XP_COMPONENT_TYPE || (XP_COMPONENT_TYPE = {}));
73
+ export var XP_REQUEST_TYPE;
74
+ (function (XP_REQUEST_TYPE) {
75
+ XP_REQUEST_TYPE["COMPONENT"] = "component";
76
+ XP_REQUEST_TYPE["TYPE"] = "type";
77
+ XP_REQUEST_TYPE["PAGE"] = "page";
78
+ })(XP_REQUEST_TYPE || (XP_REQUEST_TYPE = {}));
79
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAE7B,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,wCAA4B,CAAA;IAC5B,kCAAsB,CAAA;IACtB,wCAA4B,CAAA;AAChC,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AAC3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,UAAU,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;EAmBpC,CAAC;AAEH,8EAA8E;AAC9E,qBAAqB;AACrB,MAAM,CAAN,IAAY,0BAKX;AALD,WAAY,0BAA0B;IAClC,+CAAiB,CAAA;IACjB,+CAAiB,CAAA;IACjB,iDAAmB,CAAA;IACnB,+DAAiC,CAAA;AACrC,CAAC,EALW,0BAA0B,KAA1B,0BAA0B,QAKrC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAE9C,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAC7D,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAE1D,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,4BAAa,CAAA,CAAO,mEAAmE;AAC3F,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAExD,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD,oHAAoH;AACpH,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE9C,0DAA0D;AAC1D,MAAM,CAAN,IAAY,iBAMX;AAND,WAAY,iBAAiB;IACzB,kCAAa,CAAA;IACb,sCAAiB,CAAA;IACjB,kCAAa,CAAA;IACb,0CAAqB,CAAA;IACrB,kCAAa,CAAA;AACjB,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,QAM5B;AAED,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,0CAAuB,CAAA;IACvB,gCAAa,CAAA;IACb,gCAAa,CAAA;AACjB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B"}
@@ -0,0 +1,11 @@
1
+ /** URL to the guillotine API */
2
+ export declare const API_URL: string;
3
+ /** Optional utility value - defining in one place the name of the target app (the app that defines the content types, the app name is therefore part of the content type strings used both in typeselector and in query introspections) */
4
+ export declare const APP_NAME: string;
5
+ /** Optional utility value - derived from APP_NAME, only with underscores instead of dots */
6
+ export declare const APP_NAME_UNDERSCORED: string;
7
+ /** Optional utility value - derived from APP_NAME, only with dashes instead of dots */
8
+ export declare const APP_NAME_DASHED: string;
9
+ export declare const IS_DEV_MODE: boolean;
10
+ /** Locales and Enonic XP projects correspondence list */
11
+ export declare const PROJECTS: string;
package/common/env.js ADDED
@@ -0,0 +1,29 @@
1
+ import { ENV_VARS } from './constants';
2
+ const isServer = typeof window === 'undefined';
3
+ // IMPORTANT:
4
+ // NEXT_PUBLIC_ vars should be explicitly referenced to be made available on the client side (substituted with constants) !!!
5
+ /** URL to the guillotine API */
6
+ export const API_URL = isServer ? process.env[ENV_VARS.API_URL] : process.env['NEXT_PUBLIC_ENONIC_API'];
7
+ /** Optional utility value - defining in one place the name of the target app (the app that defines the content types, the app name is therefore part of the content type strings used both in typeselector and in query introspections) */
8
+ export const APP_NAME = isServer ? process.env[ENV_VARS.APP_NAME] : process.env['NEXT_PUBLIC_ENONIC_APP_NAME'];
9
+ /** Optional utility value - derived from APP_NAME, only with underscores instead of dots */
10
+ export const APP_NAME_UNDERSCORED = (APP_NAME || '').replace(/\./g, '_');
11
+ /** Optional utility value - derived from APP_NAME, only with dashes instead of dots */
12
+ export const APP_NAME_DASHED = (APP_NAME || '').replace(/\./g, '-');
13
+ const mode = isServer ? process.env.MODE : process.env.NEXT_PUBLIC_MODE;
14
+ export const IS_DEV_MODE = (mode === 'development');
15
+ /** Locales and Enonic XP projects correspondence list */
16
+ export const PROJECTS = isServer ? process.env[ENV_VARS.PROJECTS] : process.env['NEXT_PUBLIC_ENONIC_PROJECTS'];
17
+ const requiredConstants = {
18
+ [ENV_VARS.APP_NAME]: APP_NAME,
19
+ [ENV_VARS.API_URL]: API_URL,
20
+ [ENV_VARS.PROJECTS]: PROJECTS,
21
+ };
22
+ // Verify required values on server-side only
23
+ Object.keys(requiredConstants).forEach((key) => {
24
+ const val = requiredConstants[key];
25
+ if (!val) {
26
+ throw new Error(`Environment variable '${isServer ? '' : 'NEXT_PUBLIC_'}${key}' is missing (from .env?)`);
27
+ }
28
+ });
29
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/common/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAErC,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;AAE/C,aAAa;AACb,6HAA6H;AAC7H,gCAAgC;AAChC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAExG,2OAA2O;AAC3O,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAE/G,4FAA4F;AAC5F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAEzE,uFAAuF;AACvF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAEpE,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAExE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;AAEpD,yDAAyD;AACzD,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAE/G,MAAM,iBAAiB,GAAG;IACtB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC7B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO;IAC3B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ;CAChC,CAAC;AAEF,6CAA6C;AAC7C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;IACnD,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,GAAG,2BAA2B,CAAC,CAAC;IAC9G,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ComponentDescriptor, ContentResult, Context } from '../types';
2
+ export declare function applyProcessors(componentDescriptors: ComponentDescriptor[], contentResults: ContentResult, context: Context): Promise<PromiseSettledResult<any>[]>;
@@ -0,0 +1,33 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { getComponentConfig } from './getComponentConfig';
11
+ const NO_PROPS_PROCESSOR = (props) => __awaiter(void 0, void 0, void 0, function* () { var _a; return (_a = yield props) !== null && _a !== void 0 ? _a : {}; });
12
+ export function applyProcessors(componentDescriptors, contentResults, context) {
13
+ return __awaiter(this, void 0, void 0, function* () {
14
+ let dataCounter = 0;
15
+ const processorPromises = componentDescriptors.map((desc) => __awaiter(this, void 0, void 0, function* () {
16
+ var _a;
17
+ // we're iterating component descriptors here
18
+ // some of them might not have provided graphql requests
19
+ // but we still need to run props processor for them
20
+ // in case they want to fetch their data from elsewhere
21
+ const propsProcessor = ((_a = desc.type) === null || _a === void 0 ? void 0 : _a.processor) || NO_PROPS_PROCESSOR;
22
+ let data;
23
+ if (desc.queryAndVariables) {
24
+ // if there is a query then there must be a result for it
25
+ data = contentResults.contents[dataCounter++];
26
+ }
27
+ const config = getComponentConfig(desc.component);
28
+ return yield propsProcessor(data, context, config);
29
+ }));
30
+ return Promise.allSettled(processorPromises);
31
+ });
32
+ }
33
+ //# sourceMappingURL=applyProcessors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyProcessors.js","sourceRoot":"","sources":["../../src/guillotine/applyProcessors.ts"],"names":[],"mappings":";;;;;;;;;AAOA,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAGxD,MAAM,kBAAkB,GAAG,CAAO,KAAU,EAAE,EAAE,0DAAC,OAAA,MAAA,MAAM,KAAK,mCAAI,EAAE,CAAA,GAAA,CAAC;AAGnE,MAAM,UAAgB,eAAe,CACjC,oBAA2C,EAC3C,cAA6B,EAC7B,OAAgB;;QAGhB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAO,IAAyB,EAAE,EAAE;;YACnF,6CAA6C;YAC7C,wDAAwD;YACxD,oDAAoD;YACpD,uDAAuD;YACvD,MAAM,cAAc,GAAG,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,KAAI,kBAAkB,CAAC;YAClE,IAAI,IAAI,CAAC;YACT,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,yDAAyD;gBACzD,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClD,OAAO,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC,CAAA,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { PageComponent } from '../types';
2
+ export declare function buildComponentTree(comps: PageComponent[], rootComp: PageComponent, contentType?: string): PageComponent;
@@ -0,0 +1,45 @@
1
+ import { FRAGMENT_CONTENTTYPE_NAME, XP_COMPONENT_TYPE, } from '../common/constants';
2
+ import { parseComponentPath } from './parseComponentPath';
3
+ import { getParentRegion } from './getParentRegion';
4
+ export function buildComponentTree(comps, rootComp, contentType) {
5
+ const rootTree = {};
6
+ const isFragmentType = contentType === FRAGMENT_CONTENTTYPE_NAME;
7
+ if (isFragmentType) {
8
+ rootComp.regions = rootTree;
9
+ }
10
+ (comps || []).forEach(cmp => {
11
+ var _a, _b, _c;
12
+ const cmpPath = parseComponentPath(contentType, cmp.path);
13
+ if (cmp.path === '/') {
14
+ if (cmp.type === XP_COMPONENT_TYPE.PAGE && rootComp.type === XP_COMPONENT_TYPE.PAGE) {
15
+ // add page values to page object
16
+ rootComp = Object.assign(rootComp, cmp);
17
+ rootComp.page.regions = rootTree;
18
+ return;
19
+ }
20
+ else if (cmp.type === XP_COMPONENT_TYPE.LAYOUT && rootComp.type === XP_COMPONENT_TYPE.FRAGMENT) {
21
+ // when rendering fragment as part of the page with layout at root path
22
+ // remove other children from list as they will be included in layout
23
+ rootComp.fragment.fragment.components = [cmp];
24
+ cmp.regions = rootTree;
25
+ }
26
+ }
27
+ if (cmp.type === XP_COMPONENT_TYPE.FRAGMENT) {
28
+ // build component subtree for fragment
29
+ cmp = buildComponentTree((_b = (_a = cmp.fragment) === null || _a === void 0 ? void 0 : _a.fragment) === null || _b === void 0 ? void 0 : _b.components, cmp, contentType);
30
+ }
31
+ const region = getParentRegion(rootTree, contentType, cmpPath, comps, true);
32
+ if (region) {
33
+ // getting the index of component from string like '/main/0/left/11'
34
+ const cmpIndex = (_c = cmpPath[cmpPath.length - 1]) === null || _c === void 0 ? void 0 : _c.index;
35
+ if (cmpIndex >= 0) {
36
+ region.components.splice(cmpIndex, 0, cmp);
37
+ }
38
+ else {
39
+ throw Error(`Could not find [${cmp.type}] component index at ${JSON.stringify(cmpPath, null, 2)}, rendering not possible.`);
40
+ }
41
+ }
42
+ });
43
+ return rootComp;
44
+ }
45
+ //# sourceMappingURL=buildComponentTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildComponentTree.js","sourceRoot":"","sources":["../../src/guillotine/buildComponentTree.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,yBAAyB,EACzB,iBAAiB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAGlD,MAAM,UAAU,kBAAkB,CAC9B,KAAsB,EACtB,QAAuB,EACvB,WAAoB;IAEpB,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,MAAM,cAAc,GAAG,WAAW,KAAK,yBAAyB,CAAC;IAEjE,IAAI,cAAc,EAAE,CAAC;QACjB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;IAChC,CAAC;IAED,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;QACxB,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YACnB,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBAClF,iCAAiC;gBACjC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACxC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;gBACjC,OAAO;YACX,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,CAAC,QAAQ,EAAE,CAAC;gBAC/F,uEAAuE;gBACvE,qEAAqE;gBACrE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9C,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAC1C,uCAAuC;YACvC,GAAG,GAAG,kBAAkB,CAAC,MAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,QAAQ,0CAAE,UAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE5E,IAAI,MAAM,EAAE,CAAC;YACT,oEAAoE;YACpE,MAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,0CAAE,KAAK,CAAC;YACpD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAChB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,MAAM,KAAK,CAAC,mBAAmB,GAAG,CAAC,IAAI,wBAAwB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,2BAA2B,CAAC,CAAC;YAChI,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FetchContentResult } from '../types';
2
+ import { RENDER_MODE, XP_REQUEST_TYPE } from '../common/constants';
3
+ export declare function buildErrorResponse(requestType: XP_REQUEST_TYPE, renderMode: RENDER_MODE, apiUrl: string, baseUrl: string, locale: string, defaultLocale: string, contentPath?: string): (code?: string, message?: string) => FetchContentResult;
@@ -0,0 +1,26 @@
1
+ export function buildErrorResponse(requestType, renderMode, apiUrl, baseUrl, locale, defaultLocale, contentPath) {
2
+ return function (code = '500', message = 'Unknown error') {
3
+ return {
4
+ error: {
5
+ code,
6
+ message,
7
+ },
8
+ page: null,
9
+ common: null,
10
+ data: null,
11
+ meta: {
12
+ type: '',
13
+ requestType: requestType,
14
+ renderMode: renderMode,
15
+ path: contentPath || '',
16
+ canRender: false,
17
+ catchAll: false,
18
+ apiUrl,
19
+ baseUrl,
20
+ locale,
21
+ defaultLocale,
22
+ },
23
+ };
24
+ };
25
+ }
26
+ //# sourceMappingURL=buildErrorResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildErrorResponse.js","sourceRoot":"","sources":["../../src/guillotine/buildErrorResponse.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,kBAAkB,CAAC,WAA4B,EAAE,UAAuB,EACpF,MAAc,EAAE,OAAe,EAAE,MAAc,EAAE,aAAqB,EACtE,WAAsB;IAEtB,OAAO,UAAU,IAAI,GAAG,KAAK,EAAE,OAAO,GAAG,eAAe;QACpD,OAAO;YACH,KAAK,EAAE;gBACH,IAAI;gBACJ,OAAO;aACV;YACD,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,IAAI;YACV,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;gBACR,WAAW,EAAE,WAAW;gBACxB,UAAU,EAAE,UAAU;gBACtB,IAAI,EAAE,WAAW,IAAI,EAAE;gBACvB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK;gBACf,MAAM;gBACN,OAAO;gBACP,MAAM;gBACN,aAAa;aAChB;SACJ,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { PageComponent } from '../types';
2
+ export declare function buildPage(contentType: string, comps?: PageComponent[]): PageComponent;
@@ -0,0 +1,10 @@
1
+ import { XP_COMPONENT_TYPE } from '../common/constants';
2
+ import { buildComponentTree } from './buildComponentTree';
3
+ export function buildPage(contentType, comps = []) {
4
+ const page = {
5
+ type: XP_COMPONENT_TYPE.PAGE,
6
+ path: '/',
7
+ };
8
+ return buildComponentTree(comps, page, contentType);
9
+ }
10
+ //# sourceMappingURL=buildPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildPage.js","sourceRoot":"","sources":["../../src/guillotine/buildPage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAGxD,MAAM,UAAU,SAAS,CAAC,WAAmB,EAAE,QAAyB,EAAE;IACtE,MAAM,IAAI,GAAkB;QACxB,IAAI,EAAE,iBAAiB,CAAC,IAAI;QAC5B,IAAI,EAAE,GAAG;KACZ,CAAC;IAEF,OAAO,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ComponentDescriptor, Context, PageComponent } from '../types';
2
+ export declare function collectComponentDescriptors({ components, xpContentPath, context, }: {
3
+ components: PageComponent[];
4
+ xpContentPath: string;
5
+ context: Context;
6
+ }): ComponentDescriptor[];