@enonic/nextjs-adapter 3.3.0-B1 → 3.3.0-B2

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 (296) hide show
  1. package/dist/baseMappings.d.ts +1 -0
  2. package/{src/baseMappings.ts → dist/baseMappings.js} +4 -14
  3. package/dist/baseMappings.js.map +1 -0
  4. package/dist/client/getClientHydratedHtml.d.ts +1 -0
  5. package/{src/client/getClientHydratedHtml.tsx → dist/client/getClientHydratedHtml.jsx} +3 -6
  6. package/dist/client/getClientHydratedHtml.jsx.map +1 -0
  7. package/dist/client.d.ts +1 -0
  8. package/dist/client.js +3 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/common/ComponentRegistry.d.ts +34 -0
  11. package/dist/common/ComponentRegistry.js +121 -0
  12. package/dist/common/ComponentRegistry.js.map +1 -0
  13. package/dist/common/UrlProcessor.d.ts +25 -0
  14. package/{src/common/UrlProcessor.ts → dist/common/UrlProcessor.js} +49 -70
  15. package/dist/common/UrlProcessor.js.map +1 -0
  16. package/dist/common/constants.d.ts +51 -0
  17. package/{src/common/constants.ts → dist/common/constants.js} +38 -44
  18. package/dist/common/constants.js.map +1 -0
  19. package/dist/common/env.d.ts +12 -0
  20. package/{src/common/env.ts → dist/common/env.js} +3 -14
  21. package/dist/common/env.js.map +1 -0
  22. package/dist/guillotine/applyProcessors.d.ts +2 -0
  23. package/dist/guillotine/applyProcessors.js +33 -0
  24. package/dist/guillotine/applyProcessors.js.map +1 -0
  25. package/dist/guillotine/buildComponentTree.d.ts +2 -0
  26. package/{src/guillotine/buildComponentTree.ts → dist/guillotine/buildComponentTree.js} +13 -25
  27. package/dist/guillotine/buildComponentTree.js.map +1 -0
  28. package/dist/guillotine/buildErrorResponse.d.ts +3 -0
  29. package/{src/guillotine/buildErrorResponse.ts → dist/guillotine/buildErrorResponse.js} +2 -10
  30. package/dist/guillotine/buildErrorResponse.js.map +1 -0
  31. package/dist/guillotine/buildPage.d.ts +2 -0
  32. package/dist/guillotine/buildPage.js +10 -0
  33. package/dist/guillotine/buildPage.js.map +1 -0
  34. package/dist/guillotine/collectComponentDescriptors.d.ts +6 -0
  35. package/{src/guillotine/collectComponentDescriptors.ts → dist/guillotine/collectComponentDescriptors.js} +13 -26
  36. package/dist/guillotine/collectComponentDescriptors.js.map +1 -0
  37. package/dist/guillotine/combineMultipleQueries.d.ts +2 -0
  38. package/{src/guillotine/combineMultipleQueries.ts → dist/guillotine/combineMultipleQueries.js} +9 -23
  39. package/dist/guillotine/combineMultipleQueries.js.map +1 -0
  40. package/dist/guillotine/createMetaData.d.ts +18 -0
  41. package/dist/guillotine/createMetaData.js +45 -0
  42. package/dist/guillotine/createMetaData.js.map +1 -0
  43. package/dist/guillotine/fetchContent.d.ts +9 -0
  44. package/dist/guillotine/fetchContent.js +222 -0
  45. package/dist/guillotine/fetchContent.js.map +1 -0
  46. package/dist/guillotine/fetchContentData.d.ts +2 -0
  47. package/dist/guillotine/fetchContentData.js +30 -0
  48. package/dist/guillotine/fetchContentData.js.map +1 -0
  49. package/dist/guillotine/fetchContentPathsForAllLocales.d.ts +2 -0
  50. package/dist/guillotine/fetchContentPathsForAllLocales.js +21 -0
  51. package/dist/guillotine/fetchContentPathsForAllLocales.js.map +1 -0
  52. package/dist/guillotine/fetchContentPathsForLocale.d.ts +2 -0
  53. package/dist/guillotine/fetchContentPathsForLocale.js +41 -0
  54. package/dist/guillotine/fetchContentPathsForLocale.js.map +1 -0
  55. package/dist/guillotine/fetchFromApi.d.ts +3 -0
  56. package/dist/guillotine/fetchFromApi.js +76 -0
  57. package/dist/guillotine/fetchFromApi.js.map +1 -0
  58. package/dist/guillotine/fetchGuillotine.d.ts +3 -0
  59. package/dist/guillotine/fetchGuillotine.js +75 -0
  60. package/dist/guillotine/fetchGuillotine.js.map +1 -0
  61. package/dist/guillotine/fetchMetaData.d.ts +2 -0
  62. package/dist/guillotine/fetchMetaData.js +33 -0
  63. package/dist/guillotine/fetchMetaData.js.map +1 -0
  64. package/dist/guillotine/getCleanContentPathArrayOrThrow400.d.ts +2 -0
  65. package/{src/guillotine/getCleanContentPathArrayOrThrow400.ts → dist/guillotine/getCleanContentPathArrayOrThrow400.js} +5 -7
  66. package/dist/guillotine/getCleanContentPathArrayOrThrow400.js.map +1 -0
  67. package/dist/guillotine/getComponentConfig.d.ts +2 -0
  68. package/{src/guillotine/getComponentConfig.ts → dist/guillotine/getComponentConfig.js} +3 -5
  69. package/dist/guillotine/getComponentConfig.js.map +1 -0
  70. package/dist/guillotine/getContentAndComponentPaths.d.ts +1 -0
  71. package/{src/guillotine/getContentAndComponentPaths.ts → dist/guillotine/getContentAndComponentPaths.js} +6 -5
  72. package/dist/guillotine/getContentAndComponentPaths.js.map +1 -0
  73. package/dist/guillotine/getMetaData.d.ts +2 -0
  74. package/{src/guillotine/getMetaData.ts → dist/guillotine/getMetaData.js} +11 -18
  75. package/dist/guillotine/getMetaData.js.map +1 -0
  76. package/dist/guillotine/getParentRegion.d.ts +2 -0
  77. package/{src/guillotine/getParentRegion.ts → dist/guillotine/getParentRegion.js} +9 -23
  78. package/dist/guillotine/getParentRegion.js.map +1 -0
  79. package/dist/guillotine/getQueryAndVariables.d.ts +2 -0
  80. package/{src/guillotine/getQueryAndVariables.ts → dist/guillotine/getQueryAndVariables.js} +7 -23
  81. package/dist/guillotine/getQueryAndVariables.js.map +1 -0
  82. package/dist/guillotine/metadata/configQuery.d.ts +2 -0
  83. package/dist/guillotine/metadata/configQuery.js +36 -0
  84. package/dist/guillotine/metadata/configQuery.js.map +1 -0
  85. package/dist/guillotine/metadata/richTextQuery.d.ts +1 -0
  86. package/{src/guillotine/metadata/richTextQuery.ts → dist/guillotine/metadata/richTextQuery.js} +6 -8
  87. package/dist/guillotine/metadata/richTextQuery.js.map +1 -0
  88. package/dist/guillotine/parseComponentPath.d.ts +2 -0
  89. package/{src/guillotine/parseComponentPath.ts → dist/guillotine/parseComponentPath.js} +4 -8
  90. package/dist/guillotine/parseComponentPath.js.map +1 -0
  91. package/dist/guillotine/prefixFragmentCmpPath.d.ts +1 -0
  92. package/{src/guillotine/prefixFragmentCmpPath.ts → dist/guillotine/prefixFragmentCmpPath.js} +5 -5
  93. package/dist/guillotine/prefixFragmentCmpPath.js.map +1 -0
  94. package/dist/guillotine/processComponentConfig.d.ts +2 -0
  95. package/{src/guillotine/processComponentConfig.ts → dist/guillotine/processComponentConfig.js} +4 -12
  96. package/dist/guillotine/processComponentConfig.js.map +1 -0
  97. package/dist/guillotine/restrictComponentsToPath.d.ts +2 -0
  98. package/{src/guillotine/restrictComponentsToPath.ts → dist/guillotine/restrictComponentsToPath.js} +9 -19
  99. package/dist/guillotine/restrictComponentsToPath.js.map +1 -0
  100. package/dist/guillotine/validateData.d.ts +2 -0
  101. package/dist/guillotine/validateData.js +7 -0
  102. package/dist/guillotine/validateData.js.map +1 -0
  103. package/dist/guillotine/validateNotFound.d.ts +2 -0
  104. package/{src/guillotine/validateNotFound.ts → dist/guillotine/validateNotFound.js} +5 -9
  105. package/dist/guillotine/validateNotFound.js.map +1 -0
  106. package/dist/guillotine/validateShortcut.d.ts +2 -0
  107. package/{src/guillotine/validateShortcut.ts → dist/guillotine/validateShortcut.js} +12 -20
  108. package/dist/guillotine/validateShortcut.js.map +1 -0
  109. package/dist/i18n/LocaleContext.d.ts +7 -0
  110. package/dist/i18n/LocaleContext.jsx +50 -0
  111. package/dist/i18n/LocaleContext.jsx.map +1 -0
  112. package/dist/i18n/i18n.d.ts +12 -0
  113. package/dist/i18n/i18n.js +59 -0
  114. package/dist/i18n/i18n.js.map +1 -0
  115. package/dist/index.d.ts +14 -0
  116. package/dist/index.js +14 -0
  117. package/dist/index.js.map +1 -0
  118. package/dist/query/Shortcut.d.ts +1 -0
  119. package/{src/query/Shortcut.ts → dist/query/Shortcut.js} +1 -0
  120. package/dist/query/Shortcut.js.map +1 -0
  121. package/dist/server/getServerRenderedHtml.d.ts +1 -0
  122. package/dist/server/getServerRenderedHtml.js +4 -0
  123. package/dist/server/getServerRenderedHtml.js.map +1 -0
  124. package/dist/server.d.ts +5 -0
  125. package/dist/server.js +6 -0
  126. package/dist/server.js.map +1 -0
  127. package/{src/types/component.ts → dist/types/component.d.ts} +23 -62
  128. package/dist/types/component.js +2 -0
  129. package/dist/types/component.js.map +1 -0
  130. package/dist/types/componentProps.d.ts +107 -0
  131. package/dist/types/componentProps.js +2 -0
  132. package/dist/types/componentProps.js.map +1 -0
  133. package/dist/types/guillotine.d.ts +344 -0
  134. package/dist/types/guillotine.js +2 -0
  135. package/dist/types/guillotine.js.map +1 -0
  136. package/dist/types/i18n.d.ts +7 -0
  137. package/dist/types/i18n.js +2 -0
  138. package/dist/types/i18n.js.map +1 -0
  139. package/{src/types/index.ts → dist/types/index.d.ts} +19 -34
  140. package/dist/types/index.js +3 -0
  141. package/dist/types/index.js.map +1 -0
  142. package/dist/types/next.d.ts +6 -0
  143. package/dist/types/next.js +2 -0
  144. package/dist/types/next.js.map +1 -0
  145. package/dist/types/util.d.ts +3 -0
  146. package/dist/types/util.js +3 -0
  147. package/dist/types/util.js.map +1 -0
  148. package/dist/utils/addLineNumbers.d.ts +1 -0
  149. package/dist/utils/addLineNumbers.js +4 -0
  150. package/dist/utils/addLineNumbers.js.map +1 -0
  151. package/dist/utils/buildGuillotineRequestHeaders.d.ts +7 -0
  152. package/dist/utils/buildGuillotineRequestHeaders.js +16 -0
  153. package/dist/utils/buildGuillotineRequestHeaders.js.map +1 -0
  154. package/dist/utils/commonChars.d.ts +1 -0
  155. package/{src/utils/commonChars.ts → dist/utils/commonChars.js} +5 -4
  156. package/dist/utils/commonChars.js.map +1 -0
  157. package/dist/utils/enonicLog.d.ts +5 -0
  158. package/dist/utils/enonicLog.js +23 -0
  159. package/dist/utils/enonicLog.js.map +1 -0
  160. package/dist/utils/fixDoubleSlashes.d.ts +1 -0
  161. package/dist/utils/fixDoubleSlashes.js +4 -0
  162. package/dist/utils/fixDoubleSlashes.js.map +1 -0
  163. package/dist/utils/getAllLocales.d.ts +1 -0
  164. package/dist/utils/getAllLocales.js +5 -0
  165. package/dist/utils/getAllLocales.js.map +1 -0
  166. package/dist/utils/getContentApiUrl.d.ts +2 -0
  167. package/dist/utils/getContentApiUrl.js +15 -0
  168. package/dist/utils/getContentApiUrl.js.map +1 -0
  169. package/dist/utils/getLocaleMapping.d.ts +2 -0
  170. package/dist/utils/getLocaleMapping.js +19 -0
  171. package/dist/utils/getLocaleMapping.js.map +1 -0
  172. package/dist/utils/getLocaleMappingByLocale.d.ts +2 -0
  173. package/dist/utils/getLocaleMappingByLocale.js +13 -0
  174. package/dist/utils/getLocaleMappingByLocale.js.map +1 -0
  175. package/dist/utils/getLocaleMappingByProjectId.d.ts +2 -0
  176. package/dist/utils/getLocaleMappingByProjectId.js +16 -0
  177. package/dist/utils/getLocaleMappingByProjectId.js.map +1 -0
  178. package/dist/utils/getLocaleMappings.d.ts +2 -0
  179. package/{src/utils/getLocaleMappings.ts → dist/utils/getLocaleMappings.js} +8 -14
  180. package/dist/utils/getLocaleMappings.js.map +1 -0
  181. package/dist/utils/getRenderMode.d.ts +3 -0
  182. package/dist/utils/getRenderMode.js +8 -0
  183. package/dist/utils/getRenderMode.js.map +1 -0
  184. package/dist/utils/getRequestLocaleInfo.d.ts +6 -0
  185. package/{src/utils/getRequestLocaleInfo.ts → dist/utils/getRequestLocaleInfo.js} +12 -13
  186. package/dist/utils/getRequestLocaleInfo.js.map +1 -0
  187. package/dist/utils/getXpBaseUrl.d.ts +2 -0
  188. package/dist/utils/getXpBaseUrl.js +8 -0
  189. package/dist/utils/getXpBaseUrl.js.map +1 -0
  190. package/dist/utils/indent.d.ts +1 -0
  191. package/dist/utils/indent.js +5 -0
  192. package/dist/utils/indent.js.map +1 -0
  193. package/dist/utils/sanitizeGraphqlName.d.ts +1 -0
  194. package/{src/utils/sanitizeGraphqlName.ts → dist/utils/sanitizeGraphqlName.js} +3 -2
  195. package/dist/utils/sanitizeGraphqlName.js.map +1 -0
  196. package/dist/views/BaseComponent.d.ts +20 -0
  197. package/{src/views/BaseComponent.tsx → dist/views/BaseComponent.jsx} +49 -76
  198. package/dist/views/BaseComponent.jsx.map +1 -0
  199. package/dist/views/BaseContent.d.ts +3 -0
  200. package/dist/views/BaseContent.jsx +38 -0
  201. package/dist/views/BaseContent.jsx.map +1 -0
  202. package/dist/views/BaseLayout.d.ts +3 -0
  203. package/dist/views/BaseLayout.jsx +24 -0
  204. package/dist/views/BaseLayout.jsx.map +1 -0
  205. package/dist/views/BaseMacro.d.ts +6 -0
  206. package/{src/views/BaseMacro.tsx → dist/views/BaseMacro.jsx} +37 -42
  207. package/dist/views/BaseMacro.jsx.map +1 -0
  208. package/dist/views/BasePage.d.ts +3 -0
  209. package/dist/views/BasePage.jsx +34 -0
  210. package/dist/views/BasePage.jsx.map +1 -0
  211. package/dist/views/BasePart.d.ts +3 -0
  212. package/dist/views/BasePart.jsx +24 -0
  213. package/dist/views/BasePart.jsx.map +1 -0
  214. package/dist/views/Empty.d.ts +2 -0
  215. package/{src/views/Empty.tsx → dist/views/Empty.jsx} +1 -2
  216. package/dist/views/Empty.jsx.map +1 -0
  217. package/dist/views/Fragment.d.ts +3 -0
  218. package/dist/views/Fragment.jsx +30 -0
  219. package/dist/views/Fragment.jsx.map +1 -0
  220. package/dist/views/MainView.d.ts +3 -0
  221. package/dist/views/MainView.jsx +14 -0
  222. package/dist/views/MainView.jsx.map +1 -0
  223. package/dist/views/PropsView.d.ts +2 -0
  224. package/dist/views/PropsView.jsx +21 -0
  225. package/dist/views/PropsView.jsx.map +1 -0
  226. package/dist/views/Region.d.ts +6 -0
  227. package/{src/views/Region.tsx → dist/views/Region.jsx} +17 -41
  228. package/dist/views/Region.jsx.map +1 -0
  229. package/dist/views/RichTextView.d.ts +3 -0
  230. package/dist/views/RichTextView.jsx +65 -0
  231. package/dist/views/RichTextView.jsx.map +1 -0
  232. package/dist/views/SingleComponent.d.ts +4 -0
  233. package/dist/views/SingleComponent.jsx +10 -0
  234. package/dist/views/SingleComponent.jsx.map +1 -0
  235. package/dist/views/StaticContent.d.ts +10 -0
  236. package/dist/views/StaticContent.jsx +37 -0
  237. package/dist/views/StaticContent.jsx.map +1 -0
  238. package/dist/views/Text.d.ts +8 -0
  239. package/dist/views/Text.jsx +4 -0
  240. package/dist/views/Text.jsx.map +1 -0
  241. package/dist/views/macros/DefaultMacro.d.ts +3 -0
  242. package/dist/views/macros/DefaultMacro.jsx +4 -0
  243. package/dist/views/macros/DefaultMacro.jsx.map +1 -0
  244. package/dist/views/macros/DisableMacro.d.ts +3 -0
  245. package/dist/views/macros/DisableMacro.jsx +3 -0
  246. package/dist/views/macros/DisableMacro.jsx.map +1 -0
  247. package/package.json +19 -31
  248. package/src/client.ts +0 -2
  249. package/src/common/ComponentRegistry.ts +0 -159
  250. package/src/guillotine/applyProcessors.ts +0 -34
  251. package/src/guillotine/buildPage.ts +0 -15
  252. package/src/guillotine/createMetaData.ts +0 -72
  253. package/src/guillotine/fetchContent.ts +0 -240
  254. package/src/guillotine/fetchContentData.ts +0 -31
  255. package/src/guillotine/fetchContentPathsForAllLocales.ts +0 -21
  256. package/src/guillotine/fetchContentPathsForLocale.ts +0 -43
  257. package/src/guillotine/fetchFromApi.ts +0 -76
  258. package/src/guillotine/fetchGuillotine.ts +0 -76
  259. package/src/guillotine/fetchMetaData.ts +0 -31
  260. package/src/guillotine/metadata/configQuery.ts +0 -46
  261. package/src/guillotine/validateData.ts +0 -11
  262. package/src/i18n/LocaleContext.tsx +0 -59
  263. package/src/i18n/i18n.ts +0 -57
  264. package/src/index.ts +0 -42
  265. package/src/server/getServerRenderedHtml.ts +0 -3
  266. package/src/server.ts +0 -5
  267. package/src/types/componentProps.ts +0 -143
  268. package/src/types/guillotine.ts +0 -428
  269. package/src/types/i18n.ts +0 -8
  270. package/src/types/next.ts +0 -7
  271. package/src/types/util.ts +0 -5
  272. package/src/utils/addLineNumbers.ts +0 -3
  273. package/src/utils/buildGuillotineRequestHeaders.ts +0 -29
  274. package/src/utils/enonicLog.ts +0 -28
  275. package/src/utils/fixDoubleSlashes.ts +0 -3
  276. package/src/utils/getAllLocales.ts +0 -6
  277. package/src/utils/getContentApiUrl.ts +0 -20
  278. package/src/utils/getLocaleMapping.ts +0 -24
  279. package/src/utils/getLocaleMappingByLocale.ts +0 -19
  280. package/src/utils/getLocaleMappingByProjectId.ts +0 -21
  281. package/src/utils/getRenderMode.ts +0 -11
  282. package/src/utils/getXpBaseUrl.ts +0 -12
  283. package/src/utils/indent.ts +0 -4
  284. package/src/views/BaseContent.tsx +0 -47
  285. package/src/views/BaseLayout.tsx +0 -33
  286. package/src/views/BasePage.tsx +0 -42
  287. package/src/views/BasePart.tsx +0 -34
  288. package/src/views/Fragment.tsx +0 -41
  289. package/src/views/MainView.tsx +0 -22
  290. package/src/views/PropsView.tsx +0 -38
  291. package/src/views/RichTextView.tsx +0 -106
  292. package/src/views/SingleComponent.tsx +0 -19
  293. package/src/views/StaticContent.tsx +0 -39
  294. package/src/views/Text.tsx +0 -19
  295. package/src/views/macros/DefaultMacro.tsx +0 -9
  296. package/src/views/macros/DisableMacro.tsx +0 -8
@@ -0,0 +1,222 @@
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 { draftMode, headers } from 'next/headers';
11
+ import { ComponentRegistry } from '../common/ComponentRegistry';
12
+ import { PAGE_TEMPLATE_CONTENTTYPE_NAME, PAGE_TEMPLATE_FOLDER, RENDER_MODE, XP_COMPONENT_TYPE, XP_REQUEST_TYPE } from '../common/constants';
13
+ import { APP_NAME, APP_NAME_DASHED, IS_DEV_MODE } from '../common/env';
14
+ import { getContentApiUrl } from '../utils/getContentApiUrl';
15
+ import { getLocaleMapping } from '../utils/getLocaleMapping';
16
+ import { getRenderMode } from '../utils/getRenderMode';
17
+ import { getXpBaseUrl } from '../utils/getXpBaseUrl';
18
+ import { getRequestLocaleInfo } from '../utils/getRequestLocaleInfo';
19
+ import { buildGuillotineRequestHeaders } from '../utils/buildGuillotineRequestHeaders';
20
+ import { buildPage } from './buildPage';
21
+ import { fetchMetaData } from './fetchMetaData';
22
+ import { getCleanContentPathArrayOrThrow400 } from './getCleanContentPathArrayOrThrow400';
23
+ import { buildErrorResponse } from './buildErrorResponse';
24
+ import { getContentAndComponentPaths } from './getContentAndComponentPaths';
25
+ import { restrictComponentsToPath } from './restrictComponentsToPath';
26
+ import { processComponentConfig } from './processComponentConfig';
27
+ import { getQueryAndVariables } from './getQueryAndVariables';
28
+ import { collectComponentDescriptors } from './collectComponentDescriptors';
29
+ import { combineMultipleQueries } from './combineMultipleQueries';
30
+ import { fetchContentData } from './fetchContentData';
31
+ import { applyProcessors } from './applyProcessors';
32
+ import { createMetaData } from './createMetaData';
33
+ /**
34
+ * Default fetchContent function, built with params from imports.
35
+ * It runs custom content-type-specific guillotine calls against an XP guillotine endpoint, returns content data, error and some meta data
36
+ * Sends one query to the guillotine API and asks for content type, then uses the type to select a second query and variables, which is sent to the API and fetches content data.
37
+ * @param context object from Next, contains .query info
38
+ * @returns FetchContentResult object: {data?: T, error?: {code, message}}
39
+ */
40
+ export function fetchContent(context) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ var _a, _b;
43
+ const { locale, locales, defaultLocale } = getRequestLocaleInfo(context);
44
+ const { isEnabled } = draftMode();
45
+ // we only want to read headers in draft mode, because they bail out static generation
46
+ if (isEnabled) {
47
+ const allHeaders = headers();
48
+ if (!context.headers) {
49
+ context.headers = new Headers();
50
+ }
51
+ allHeaders.forEach((value, key) => {
52
+ context.headers.set(key, value);
53
+ });
54
+ }
55
+ const outHeaders = buildGuillotineRequestHeaders({
56
+ context,
57
+ defaultLocale,
58
+ locale,
59
+ locales
60
+ });
61
+ const xpBaseUrl = getXpBaseUrl(context);
62
+ const contentApiUrl = getContentApiUrl(context);
63
+ const mapping = getLocaleMapping(context);
64
+ const renderMode = getRenderMode(context);
65
+ let requestType = XP_REQUEST_TYPE.TYPE;
66
+ const requestContentPath = getCleanContentPathArrayOrThrow400(context.contentPath);
67
+ try {
68
+ const [siteRelativeContentPath, componentPath] = getContentAndComponentPaths(requestContentPath);
69
+ if (componentPath) {
70
+ // set component request type because url contains component path
71
+ requestType = XP_REQUEST_TYPE.COMPONENT;
72
+ }
73
+ // ///////////// FIRST GUILLOTINE CALL FOR METADATA /////////////////
74
+ const metaResult = yield fetchMetaData(contentApiUrl, '${site}/' + siteRelativeContentPath, mapping, outHeaders);
75
+ // ///////////////////////////////////////////////////////////////////////
76
+ const { _id, _path, type } = metaResult.meta || {};
77
+ const contentPath = _path || siteRelativeContentPath;
78
+ const errorResponse = buildErrorResponse(requestType, renderMode, contentApiUrl, xpBaseUrl, locale, defaultLocale, requestContentPath, _id);
79
+ if (metaResult.error) {
80
+ console.error(metaResult.error);
81
+ return errorResponse(metaResult.error.code, metaResult.error.message);
82
+ }
83
+ if (!metaResult.meta) {
84
+ return errorResponse('404', 'No meta data found for content, most likely content does not exist');
85
+ }
86
+ else if (!type) {
87
+ return errorResponse('500', "Server responded with incomplete meta data: missing content 'type' attribute.");
88
+ }
89
+ else if (renderMode === RENDER_MODE.NEXT
90
+ && !IS_DEV_MODE
91
+ && (type === PAGE_TEMPLATE_CONTENTTYPE_NAME ||
92
+ type === PAGE_TEMPLATE_FOLDER)) {
93
+ return errorResponse('404', `Content type [${type}] is not accessible in ${renderMode} mode`);
94
+ }
95
+ const components = restrictComponentsToPath(type, metaResult.meta.components, componentPath);
96
+ if (componentPath && !components.length) {
97
+ // component was not found
98
+ return errorResponse('404', `Component ${componentPath} was not found`);
99
+ }
100
+ if (requestType !== XP_REQUEST_TYPE.COMPONENT && components.length > 0) {
101
+ requestType = XP_REQUEST_TYPE.PAGE;
102
+ }
103
+ // ////////////////////////////////////////////////// Content type established. Proceed to data call:
104
+ const allDescriptors = [];
105
+ // Add the content type query at all cases
106
+ const contentTypeDef = ComponentRegistry.getContentType(type);
107
+ const pageCmp = (components || []).find(cmp => cmp.type === XP_COMPONENT_TYPE.PAGE);
108
+ if (pageCmp) {
109
+ processComponentConfig(APP_NAME, APP_NAME_DASHED, pageCmp);
110
+ }
111
+ const contentQueryAndVars = getQueryAndVariables(type, contentPath, context, contentTypeDef === null || contentTypeDef === void 0 ? void 0 : contentTypeDef.query, (_a = pageCmp === null || pageCmp === void 0 ? void 0 : pageCmp.page) === null || _a === void 0 ? void 0 : _a.config);
112
+ if (contentQueryAndVars) {
113
+ allDescriptors.push({
114
+ type: contentTypeDef,
115
+ queryAndVariables: contentQueryAndVars
116
+ });
117
+ }
118
+ const commonQueryAndVars = getQueryAndVariables(type, contentPath, context, ComponentRegistry.getCommonQuery(), (_b = pageCmp === null || pageCmp === void 0 ? void 0 : pageCmp.page) === null || _b === void 0 ? void 0 : _b.config);
119
+ if (commonQueryAndVars) {
120
+ allDescriptors.push({
121
+ type: contentTypeDef,
122
+ queryAndVariables: commonQueryAndVars
123
+ });
124
+ }
125
+ if ((components === null || components === void 0 ? void 0 : components.length) && ComponentRegistry) {
126
+ for (const cmp of (components || [])) {
127
+ processComponentConfig(APP_NAME, APP_NAME_DASHED, cmp);
128
+ }
129
+ // Collect component queries if defined
130
+ const componentDescriptors = collectComponentDescriptors({
131
+ components,
132
+ xpContentPath: contentPath,
133
+ context
134
+ });
135
+ if (componentDescriptors.length) {
136
+ allDescriptors.push(...componentDescriptors);
137
+ }
138
+ }
139
+ const { query, variables } = combineMultipleQueries(allDescriptors);
140
+ if (!query.trim()) {
141
+ return errorResponse('400', `Missing or empty query override for content type ${type}`);
142
+ }
143
+ // /////////////// SECOND GUILLOTINE CALL FOR DATA //////////////////////
144
+ const contentResults = yield fetchContentData(contentApiUrl, contentPath, mapping, query, variables, outHeaders);
145
+ // ///////////////////////////////////////////////////////////////////////////
146
+ if (contentResults.error) {
147
+ console.error(contentResults.error);
148
+ return errorResponse(contentResults.error.code, contentResults.error.message);
149
+ }
150
+ // Apply processors to every component
151
+ const datas = yield applyProcessors(allDescriptors, contentResults, context);
152
+ // Unwind the data back to components
153
+ let contentData = null, common = null;
154
+ let startFrom = 0;
155
+ if (contentQueryAndVars) {
156
+ const item = datas[startFrom];
157
+ contentData = item.status === 'fulfilled' ? item.value : item.reason;
158
+ startFrom++;
159
+ }
160
+ if (commonQueryAndVars) {
161
+ const item = datas[startFrom];
162
+ common = item.status === 'fulfilled' ? item.value : item.reason;
163
+ startFrom++;
164
+ }
165
+ for (let i = startFrom; i < datas.length; i++) {
166
+ // component descriptors hold references to components
167
+ // that will later be used for creating page regions
168
+ const datum = datas[i];
169
+ if (datum.status === 'rejected') {
170
+ let reason = datum.reason;
171
+ if (reason instanceof Error) {
172
+ reason = reason.message;
173
+ }
174
+ else if (typeof reason !== 'string') {
175
+ reason = String(reason);
176
+ }
177
+ allDescriptors[i].component.error = reason;
178
+ }
179
+ else {
180
+ allDescriptors[i].component.data = datum.value;
181
+ }
182
+ }
183
+ const page = buildPage(type, components);
184
+ const meta = createMetaData({
185
+ apiUrl: contentApiUrl,
186
+ baseUrl: xpBaseUrl,
187
+ components,
188
+ contentPath: siteRelativeContentPath,
189
+ contentType: type,
190
+ contentId: _id,
191
+ defaultLocale,
192
+ locale,
193
+ pageCmp: page,
194
+ renderMode,
195
+ requestedComponentPath: componentPath,
196
+ requestType
197
+ });
198
+ return {
199
+ data: contentData,
200
+ common,
201
+ meta,
202
+ page
203
+ };
204
+ }
205
+ catch (e) {
206
+ console.error(e);
207
+ let error;
208
+ try {
209
+ error = JSON.parse(e.message);
210
+ }
211
+ catch (e2) {
212
+ error = {
213
+ code: 'Local',
214
+ message: e.message
215
+ };
216
+ }
217
+ const errorResponse = buildErrorResponse(requestType, renderMode, contentApiUrl, xpBaseUrl, locale, defaultLocale, requestContentPath);
218
+ return errorResponse(error.code, error.message);
219
+ }
220
+ });
221
+ }
222
+ //# sourceMappingURL=fetchContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchContent.js","sourceRoot":"","sources":["../../src/guillotine/fetchContent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ContentApiBaseBodyVariables, ContentResult, LocaleMapping, GuillotineRequestHeaders } from '../types';
2
+ export declare const fetchContentData: <Content = Record<string, unknown>>(contentApiUrl: string, xpContentPath: string, mapping: LocaleMapping, query: string, variables?: ContentApiBaseBodyVariables, headers?: GuillotineRequestHeaders) => Promise<ContentResult>;
@@ -0,0 +1,30 @@
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 { fetchGuillotine } from './fetchGuillotine';
11
+ export const fetchContentData = (contentApiUrl, xpContentPath, mapping, query, variables, headers) => __awaiter(void 0, void 0, void 0, function* () {
12
+ const body = { query };
13
+ if (variables && Object.keys(variables).length > 0) {
14
+ body.variables = variables;
15
+ }
16
+ const contentResults = yield fetchGuillotine(contentApiUrl, mapping, {
17
+ body,
18
+ headers
19
+ });
20
+ if (contentResults.error) {
21
+ return contentResults;
22
+ }
23
+ else {
24
+ return {
25
+ // omit the aliases and return values
26
+ contents: Object.values(contentResults)
27
+ };
28
+ }
29
+ });
30
+ //# sourceMappingURL=fetchContentData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchContentData.js","sourceRoot":"","sources":["../../src/guillotine/fetchContentData.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAGlD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,aAAqB,EACrB,aAAqB,EACrB,OAAsB,EACtB,KAAa,EACb,SAAuC,EACvC,OAAkC,EACZ,EAAE;IACxB,MAAM,IAAI,GAAuB,EAAC,KAAK,EAAC,CAAC;IACzC,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,eAAe,CAAyB,aAAa,EAAE,OAAO,EAAE;QACzF,IAAI;QACJ,OAAO;KACV,CAAC,CAAC;IAEH,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC;IAC1B,CAAC;SAAM,CAAC;QACJ,OAAO;YACH,qCAAqC;YACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;SAC1C,CAAC;IACN,CAAC;AACL,CAAC,CAAA,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { ContentPathItem } from '../types';
2
+ export declare function fetchContentPathsForAllLocales(path: string, query?: string, countPerLocale?: number): Promise<ContentPathItem[]>;
@@ -0,0 +1,21 @@
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 { GET_STATIC_PATHS_QUERY } from '../common/constants';
11
+ import { getLocaleMappings } from '../utils/getLocaleMappings';
12
+ import { fetchContentPathsForLocale } from './fetchContentPathsForLocale';
13
+ export function fetchContentPathsForAllLocales(path_1) {
14
+ return __awaiter(this, arguments, void 0, function* (path, query = GET_STATIC_PATHS_QUERY, countPerLocale = 999) {
15
+ const promises = Object.values(getLocaleMappings()).map(config => fetchContentPathsForLocale(path, config, query, countPerLocale));
16
+ return Promise.all(promises).then(results => {
17
+ return results.reduce((all, localePaths) => all.concat(localePaths), []);
18
+ });
19
+ });
20
+ }
21
+ //# sourceMappingURL=fetchContentPathsForAllLocales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchContentPathsForAllLocales.js","sourceRoot":"","sources":["../../src/guillotine/fetchContentPathsForAllLocales.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAC,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAC,0BAA0B,EAAC,MAAM,8BAA8B,CAAC;AAGxE,MAAM,UAAgB,8BAA8B;yDAChD,IAAY,EACZ,QAAgB,sBAAsB,EACtC,cAAc,GAAG,GAAG;QAEpB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,GAAG,CACnD,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAChC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CACtC,CACJ,CAAC;QACF,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACxC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACP,CAAC;CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { ContentPathItem, LocaleMapping } from '../types';
2
+ export declare function fetchContentPathsForLocale(path: string, config: LocaleMapping, query?: string, count?: number): Promise<ContentPathItem[]>;
@@ -0,0 +1,41 @@
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 { GET_STATIC_PATHS_QUERY } from '../common/constants';
11
+ import { getContentApiUrl } from '../utils/getContentApiUrl';
12
+ import { fetchGuillotine } from './fetchGuillotine';
13
+ export function fetchContentPathsForLocale(path_1, config_1) {
14
+ return __awaiter(this, arguments, void 0, function* (path, config, query = GET_STATIC_PATHS_QUERY, count = 999) {
15
+ const contentApiUrl = getContentApiUrl({
16
+ contentPath: path,
17
+ locale: config.locale
18
+ });
19
+ const body = {
20
+ query,
21
+ variables: {
22
+ path,
23
+ pathRegex: `/content${config.site}/*`,
24
+ count
25
+ }
26
+ };
27
+ return fetchGuillotine(contentApiUrl, config, { body }).then((results) => {
28
+ return results.guillotine.queryDsl.reduce((prev, child) => {
29
+ var _a;
30
+ const regexp = new RegExp(`^/${((_a = child.site) === null || _a === void 0 ? void 0 : _a._name) ? `${child.site._name}/?` : ''}`);
31
+ const contentPath = child._path.replace(regexp, '');
32
+ prev.push({
33
+ contentPath: contentPath.split('/'),
34
+ locale: config.locale
35
+ });
36
+ return prev;
37
+ }, []);
38
+ });
39
+ });
40
+ }
41
+ //# sourceMappingURL=fetchContentPathsForLocale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchContentPathsForLocale.js","sourceRoot":"","sources":["../../src/guillotine/fetchContentPathsForLocale.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAC,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAGlD,MAAM,UAAgB,0BAA0B;yDAC5C,IAAY,EACZ,MAAqB,EACrB,QAAgB,sBAAsB,EACtC,KAAK,GAAG,GAAG;QAEX,MAAM,aAAa,GAAG,gBAAgB,CAAC;YACnC,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;SACxB,CAAC,CAAC;QACH,MAAM,IAAI,GAAuB;YAC7B,KAAK;YACL,SAAS,EAAE;gBACP,IAAI;gBACJ,SAAS,EAAE,WAAW,MAAM,CAAC,IAAI,IAAI;gBACrC,KAAK;aACR;SACJ,CAAC;QACF,OAAO,eAAe,CAAoB,aAAa,EAAE,MAAM,EAAE,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,CAAC,CAC1E,OAAyB,EAC3B,EAAE;YACA,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CACtC,IAAuB,EACvB,KAAU,EACZ,EAAE;;gBACA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,KAAK,EAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnF,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,IAAI,CAAC;oBACN,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;oBACnC,MAAM,EAAE,MAAM,CAAC,MAAM;iBACxB,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YAChB,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACP,CAAC;CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { FetchOptions, GuillotineResponseJson, LocaleMapping } from '../types';
2
+ /** Generic fetch */
3
+ export declare function fetchFromApi<Data = Record<string, unknown>>(apiUrl: string, mapping: LocaleMapping, options?: FetchOptions): Promise<GuillotineResponseJson>;
@@ -0,0 +1,76 @@
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
+ /** Generic fetch */
11
+ export function fetchFromApi(apiUrl, mapping, options) {
12
+ return __awaiter(this, void 0, void 0, function* () {
13
+ const opts = {
14
+ method: (options === null || options === void 0 ? void 0 : options.method) || 'POST',
15
+ body: (options === null || options === void 0 ? void 0 : options.body) ? JSON.stringify(options === null || options === void 0 ? void 0 : options.body) : null,
16
+ headers: mergeHeaders(mapping, options === null || options === void 0 ? void 0 : options.headers),
17
+ next: options === null || options === void 0 ? void 0 : options.next,
18
+ cache: options === null || options === void 0 ? void 0 : options.cache
19
+ };
20
+ let res;
21
+ try {
22
+ res = yield fetch(apiUrl, opts);
23
+ }
24
+ catch (e) {
25
+ console.warn(apiUrl, e);
26
+ throw new Error(JSON.stringify({
27
+ code: 'API',
28
+ message: e.message
29
+ }));
30
+ }
31
+ if (!res.ok) {
32
+ throw new Error(JSON.stringify({
33
+ code: res.status,
34
+ message: `Data fetching failed (message: '${yield res.text()}')`
35
+ }));
36
+ }
37
+ let json;
38
+ try {
39
+ json = yield res.json();
40
+ }
41
+ catch (e) {
42
+ throw new Error(JSON.stringify({
43
+ code: 500,
44
+ message: `API call completed but with non-JSON data: ${JSON.stringify(yield res.text())}`
45
+ }));
46
+ }
47
+ if (!json) {
48
+ throw new Error(JSON.stringify({
49
+ code: 500,
50
+ message: `API call completed but with unexpectedly empty data: ${JSON.stringify(yield res.text())}`
51
+ }));
52
+ }
53
+ if (Array.isArray(json)) {
54
+ throw new Error(JSON.stringify({
55
+ code: 500,
56
+ message: `API call completed but with unexpected array data: ${JSON.stringify(json)}`
57
+ }));
58
+ }
59
+ return json;
60
+ });
61
+ }
62
+ function mergeHeaders(mapping, headers) {
63
+ const newHeaders = new Headers({
64
+ 'Accept': 'application/json',
65
+ 'Content-Type': 'application/json'
66
+ });
67
+ if (headers) {
68
+ Object.keys(headers).forEach((headersKey) => {
69
+ newHeaders.set(headersKey, headers[headersKey]);
70
+ });
71
+ }
72
+ // append last to make sure it is not overwritten
73
+ newHeaders.set('X-Guillotine-SiteKey', mapping.site);
74
+ return newHeaders;
75
+ }
76
+ //# sourceMappingURL=fetchFromApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchFromApi.js","sourceRoot":"","sources":["../../src/guillotine/fetchFromApi.ts"],"names":[],"mappings":";;;;;;;;;AAEA,oBAAoB;AACpB,MAAM,UAAgB,YAAY,CAC9B,MAAc,EACd,OAAsB,EACtB,OAAsB;;QAGtB,MAAM,IAAI,GAAG;YACT,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,MAAM;YACjC,IAAI,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAC1D,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC;YAChD,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;YACnB,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;SACxB,CAAC;QAEF,IAAI,GAA6B,CAAC;QAClC,IAAI,CAAC;YACD,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,IAAmB,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3B,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,CAAC,CAAC,OAAO;aACrB,CAAC,CAAC,CAAC;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3B,IAAI,EAAE,GAAG,CAAC,MAAM;gBAChB,OAAO,EAAE,mCAAmC,MAAM,GAAG,CAAC,IAAI,EAAE,IAAI;aACnE,CAAC,CAAC,CAAC;QACR,CAAC;QAED,IAAI,IAAkC,CAAC;QACvC,IAAI,CAAC;YACD,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3B,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,8CAA8C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE;aAC5F,CAAC,CAAC,CAAC;QACR,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3B,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,wDAAwD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE;aACtG,CAAC,CAAC,CAAC;QACR,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3B,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,sDAAsD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;aACxF,CAAC,CAAC,CAAC;QACR,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CAAA;AAED,SAAS,YAAY,CAAC,OAAsB,EAAE,OAAqB;IAC/D,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC;QAC3B,QAAQ,EAAE,kBAAkB;QAC5B,cAAc,EAAE,kBAAkB;KACrC,CAAC,CAAC;IACH,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACxC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;IACD,iDAAiD;IACjD,UAAU,CAAC,GAAG,CAAC,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,UAAU,CAAC;AACtB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FetchOptions, GuillotineResult, LocaleMapping } from '../types';
2
+ /** Guillotine-specialized fetch, using the generic fetch above */
3
+ export declare function fetchGuillotine<Data = Record<string, unknown>>(contentApiUrl: string, mapping: LocaleMapping, options?: FetchOptions): Promise<GuillotineResult>;
@@ -0,0 +1,75 @@
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 gqlmin from 'gqlmin';
11
+ import { fetchFromApi } from './fetchFromApi';
12
+ const XP_ERROR_PATTERN = '/_/error/';
13
+ /** Guillotine-specialized fetch, using the generic fetch above */
14
+ export function fetchGuillotine(contentApiUrl, mapping, options) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ var _a;
17
+ const body = options === null || options === void 0 ? void 0 : options.body;
18
+ const path = (_a = body === null || body === void 0 ? void 0 : body.variables) === null || _a === void 0 ? void 0 : _a.path;
19
+ if (typeof body.query !== 'string' || !body.query.trim()) {
20
+ return {
21
+ error: {
22
+ code: '400',
23
+ message: `Invalid or missing query. JSON.stringify(query) = ${JSON.stringify(body.query)}`
24
+ }
25
+ };
26
+ }
27
+ else {
28
+ // special case for not sending XP generated error paths to guillotine
29
+ const pathArr = path === null || path === void 0 ? void 0 : path.split(XP_ERROR_PATTERN);
30
+ if ((pathArr === null || pathArr === void 0 ? void 0 : pathArr.length) === 2) {
31
+ return {
32
+ error: {
33
+ code: pathArr[1],
34
+ message: `XP error URL detected`
35
+ }
36
+ };
37
+ }
38
+ else {
39
+ // Minify the query to avoid hitting 200k space limit
40
+ body.query = gqlmin(body.query);
41
+ }
42
+ }
43
+ const pathMessage = path ? JSON.stringify(path) : '';
44
+ return yield fetchFromApi(contentApiUrl, mapping, options)
45
+ .then(json => {
46
+ let errors = json.errors; // fetchFromApi ensures json is an object
47
+ if (errors) {
48
+ if (!Array.isArray(errors)) {
49
+ errors = [errors];
50
+ }
51
+ console.error(`${errors.length} error(s) when fetching data from: ${contentApiUrl}`);
52
+ errors.forEach(error => {
53
+ console.error(error);
54
+ });
55
+ return {
56
+ error: {
57
+ code: '500',
58
+ message: `Server responded with ${errors.length} error(s), probably from guillotine - see log.`
59
+ }
60
+ };
61
+ }
62
+ return json.data;
63
+ })
64
+ .catch((err) => {
65
+ console.warn(`Client-side error when trying to fetch data ${pathMessage}`, err);
66
+ try {
67
+ return { error: JSON.parse(err.message) };
68
+ }
69
+ catch (e2) {
70
+ return { error: { code: 'Client-side error', message: err.message } };
71
+ }
72
+ });
73
+ });
74
+ }
75
+ //# sourceMappingURL=fetchGuillotine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchGuillotine.js","sourceRoot":"","sources":["../../src/guillotine/fetchGuillotine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { MetaResult, LocaleMapping, GuillotineRequestHeaders } from '../types';
2
+ export declare const fetchMetaData: (contentApiUrl: string, xpContentPath: string, mapping: LocaleMapping, headers?: GuillotineRequestHeaders) => Promise<MetaResult>;
@@ -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 { getMetaQuery, pageFragmentQuery } from './getMetaData';
11
+ import { fetchGuillotine } from './fetchGuillotine';
12
+ export const fetchMetaData = (contentApiUrl, xpContentPath, mapping, headers) => __awaiter(void 0, void 0, void 0, function* () {
13
+ var _a;
14
+ const body = {
15
+ query: getMetaQuery(pageFragmentQuery()),
16
+ variables: {
17
+ path: xpContentPath
18
+ }
19
+ };
20
+ const metaResult = yield fetchGuillotine(contentApiUrl, mapping, {
21
+ body,
22
+ headers
23
+ });
24
+ if (metaResult.error) {
25
+ return metaResult;
26
+ }
27
+ else {
28
+ return {
29
+ meta: (_a = metaResult === null || metaResult === void 0 ? void 0 : metaResult.guillotine) === null || _a === void 0 ? void 0 : _a.get
30
+ };
31
+ }
32
+ });
33
+ //# sourceMappingURL=fetchMetaData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchMetaData.js","sourceRoot":"","sources":["../../src/guillotine/fetchMetaData.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAC,YAAY,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAGlD,MAAM,CAAC,MAAM,aAAa,GAAG,CACzB,aAAqB,EACrB,aAAqB,EACrB,OAAsB,EACtB,OAAkC,EACf,EAAE;;IACrB,MAAM,IAAI,GAAuB;QAC7B,KAAK,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACxC,SAAS,EAAE;YACP,IAAI,EAAE,aAAa;SACtB;KACJ,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,eAAe,CAAa,aAAa,EAAE,OAAO,EAAE;QACzE,IAAI;QACJ,OAAO;KACV,CAAC,CAAC;IACH,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,UAAU,CAAC;IACtB,CAAC;SAAM,CAAC;QACJ,OAAO;YACH,IAAI,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,0CAAE,GAAG;SACpC,CAAC;IACN,CAAC;AACL,CAAC,CAAA,CAAC"}
@@ -0,0 +1,2 @@
1
+ /** Checks a site-relative contentPath as a slash-delimited string or a string array, and returns a pure site-relative path string (no double slashes, starts with a slash, does not end with one). */
2
+ export declare const getCleanContentPathArrayOrThrow400: (contentPath: string | string[] | undefined) => string;
@@ -1,22 +1,20 @@
1
1
  /** Checks a site-relative contentPath as a slash-delimited string or a string array, and returns a pure site-relative path string (no double slashes, starts with a slash, does not end with one). */
2
- export const getCleanContentPathArrayOrThrow400 = (contentPath: string | string[] | undefined): string => {
2
+ export const getCleanContentPathArrayOrThrow400 = (contentPath) => {
3
3
  if (contentPath === undefined) {
4
4
  return '';
5
5
  }
6
6
  const isArray = Array.isArray(contentPath);
7
-
8
7
  if (!isArray) {
9
8
  if (typeof contentPath !== 'string') {
10
9
  throw Error(JSON.stringify({
11
10
  code: 400,
12
- message: `Unexpected target content _path: contentPath must be a string or pure string array (contentPath=${JSON.stringify(
13
- contentPath)})`
11
+ message: `Unexpected target content _path: contentPath must be a string or pure string array (contentPath=${JSON.stringify(contentPath)})`
14
12
  }));
15
13
  }
16
-
17
14
  return contentPath;
18
-
19
- } else {
15
+ }
16
+ else {
20
17
  return (contentPath).join('/');
21
18
  }
22
19
  };
20
+ //# sourceMappingURL=getCleanContentPathArrayOrThrow400.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCleanContentPathArrayOrThrow400.js","sourceRoot":"","sources":["../../src/guillotine/getCleanContentPathArrayOrThrow400.ts"],"names":[],"mappings":"AAAA,sMAAsM;AACtM,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,WAA0C,EAAU,EAAE;IACrG,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBACvB,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,mGAAmG,IAAI,CAAC,SAAS,CACtH,WAAW,CAAC,GAAG;aACtB,CAAC,CAAC,CAAC;QACR,CAAC;QAED,OAAO,WAAW,CAAC;IAEvB,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { PageComponent } from '../types';
2
+ export declare function getComponentConfig(cmp?: PageComponent): any;
@@ -1,7 +1,5 @@
1
- import type {PageComponent} from '../types';
2
-
3
-
4
- export function getComponentConfig(cmp?: PageComponent) {
1
+ export function getComponentConfig(cmp) {
5
2
  const cmpData = cmp && cmp[cmp.type];
6
3
  return cmpData && 'config' in cmpData ? cmpData.config : undefined;
7
- }
4
+ }
5
+ //# sourceMappingURL=getComponentConfig.js.map