@bright.global/arboretum-sdk 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/README.md +223 -0
  2. package/dist/arboretum-client.js +2 -0
  3. package/dist/clients/contentful-client/contentful-client.js +2 -0
  4. package/dist/clients/contentful-client/impl/contentful-client-impl.js +54 -0
  5. package/dist/es6/arboretum-client.js +1 -0
  6. package/dist/es6/clients/contentful-client/contentful-client.js +1 -0
  7. package/dist/es6/clients/contentful-client/impl/contentful-client-impl.js +50 -0
  8. package/dist/es6/impl/arboretum-client.impl.js +182 -0
  9. package/dist/es6/impl/data/content-types.js +136 -0
  10. package/dist/es6/impl/data/helpers/__mocks__/mocked-contentful-entries-client-api.js +66 -0
  11. package/dist/es6/impl/data/helpers/entry-status.js +19 -0
  12. package/dist/es6/impl/data/helpers/get-all-entries-recursively.js +113 -0
  13. package/dist/es6/impl/data/helpers/get-all-entries-recursively.test.js +114 -0
  14. package/dist/es6/impl/data/helpers/home-pages-by-tag-id.js +66 -0
  15. package/dist/es6/impl/data/helpers/home-pages-by-tag-id.test.js +105 -0
  16. package/dist/es6/impl/data/helpers/locale-codes-from-metadata.js +7 -0
  17. package/dist/es6/impl/data/helpers/locale-codes-from-metadata.test.js +52 -0
  18. package/dist/es6/impl/data/helpers/parse-locale-tag.js +24 -0
  19. package/dist/es6/impl/data/helpers/parse-locale-tag.test.js +19 -0
  20. package/dist/es6/impl/data/helpers/validate-content-types.js +112 -0
  21. package/dist/es6/impl/data/helpers/validate-content-types.test.js +103 -0
  22. package/dist/es6/impl/data/home-page.js +75 -0
  23. package/dist/es6/impl/data/locales.js +60 -0
  24. package/dist/es6/impl/data/page-entries.js +169 -0
  25. package/dist/es6/impl/data/page-entries.test.js +170 -0
  26. package/dist/es6/impl/data/redirect-entries.js +163 -0
  27. package/dist/es6/impl/data/sitemap-data.js +109 -0
  28. package/dist/es6/impl/sitemap/adapters/page-entry-adapter.js +27 -0
  29. package/dist/es6/impl/sitemap/adapters/redirect-entry-adapter.js +26 -0
  30. package/dist/es6/impl/sitemap/adapters/redirect-to-arboretum-page-adapter.js +11 -0
  31. package/dist/es6/impl/sitemap/adapters/to-arboretum-page-adapter.js +14 -0
  32. package/dist/es6/impl/sitemap/adapters/to-arboretum-page-adapter.test.js +100 -0
  33. package/dist/es6/impl/sitemap/adapters/to-arboretum-page-with-missing-data-adapter.js +16 -0
  34. package/dist/es6/impl/sitemap/helpers/__mocks__/mocked-localized-sitemap.js +186 -0
  35. package/dist/es6/impl/sitemap/helpers/build-localized-sitemap.js +128 -0
  36. package/dist/es6/impl/sitemap/helpers/build-localized-sitemap.test.js +208 -0
  37. package/dist/es6/impl/sitemap/helpers/build-pages-by-tag-eagerly.js +7 -0
  38. package/dist/es6/impl/sitemap/helpers/build-sitemap-eagerly.js +32 -0
  39. package/dist/es6/impl/sitemap/helpers/find-ancestors.js +42 -0
  40. package/dist/es6/impl/sitemap/helpers/find-ancestors.test.js +33 -0
  41. package/dist/es6/impl/sitemap/helpers/find-children.js +9 -0
  42. package/dist/es6/impl/sitemap/helpers/find-children.test.js +39 -0
  43. package/dist/es6/impl/sitemap/helpers/is-root.js +1 -0
  44. package/dist/es6/impl/sitemap/helpers/localize-contentful-field.js +22 -0
  45. package/dist/es6/impl/sitemap/helpers/localize-contentful-field.test.js +137 -0
  46. package/dist/es6/impl/sitemap/helpers/localized-pages-by-tag-id.js +79 -0
  47. package/dist/es6/impl/sitemap/helpers/localized-path.js +4 -0
  48. package/dist/es6/impl/sitemap/helpers/page-ancestors.js +8 -0
  49. package/dist/es6/impl/sitemap/helpers/page-children.js +10 -0
  50. package/dist/es6/impl/sitemap/methods/cached-data.js +7 -0
  51. package/dist/es6/impl/sitemap/methods/home-page.js +27 -0
  52. package/dist/es6/impl/sitemap/methods/page-by-id.js +29 -0
  53. package/dist/es6/impl/sitemap/methods/page-by-path.js +52 -0
  54. package/dist/es6/impl/sitemap/methods/pages-by-ids.js +6 -0
  55. package/dist/es6/impl/sitemap/methods/pages-by-paths.js +6 -0
  56. package/dist/es6/impl/sitemap/methods/pages-by-tag-id.js +37 -0
  57. package/dist/es6/impl/sitemap/methods/pages.js +75 -0
  58. package/dist/es6/impl/sitemap/methods/regenerate.js +64 -0
  59. package/dist/es6/impl/sitemap/methods/search.js +97 -0
  60. package/dist/es6/impl/sitemap/methods/status.js +47 -0
  61. package/dist/es6/index.js +2 -0
  62. package/dist/es6/utils/array-to-map.js +7 -0
  63. package/dist/es6/utils/fp-utils.js +5 -0
  64. package/dist/es6/utils/group-by.js +13 -0
  65. package/dist/es6/utils/json-stringify-map-replacer.js +6 -0
  66. package/dist/es6/utils/string-similarity.js +59 -0
  67. package/dist/impl/arboretum-client.impl.js +189 -0
  68. package/dist/impl/data/content-types.js +140 -0
  69. package/dist/impl/data/helpers/__mocks__/mocked-contentful-entries-client-api.js +72 -0
  70. package/dist/impl/data/helpers/entry-status.js +23 -0
  71. package/dist/impl/data/helpers/get-all-entries-recursively.js +117 -0
  72. package/dist/impl/data/helpers/get-all-entries-recursively.test.js +116 -0
  73. package/dist/impl/data/helpers/home-pages-by-tag-id.js +70 -0
  74. package/dist/impl/data/helpers/home-pages-by-tag-id.test.js +107 -0
  75. package/dist/impl/data/helpers/locale-codes-from-metadata.js +11 -0
  76. package/dist/impl/data/helpers/locale-codes-from-metadata.test.js +54 -0
  77. package/dist/impl/data/helpers/parse-locale-tag.js +28 -0
  78. package/dist/impl/data/helpers/parse-locale-tag.test.js +21 -0
  79. package/dist/impl/data/helpers/validate-content-types.js +117 -0
  80. package/dist/impl/data/helpers/validate-content-types.test.js +105 -0
  81. package/dist/impl/data/home-page.js +79 -0
  82. package/dist/impl/data/locales.js +64 -0
  83. package/dist/impl/data/page-entries.js +173 -0
  84. package/dist/impl/data/page-entries.test.js +172 -0
  85. package/dist/impl/data/redirect-entries.js +168 -0
  86. package/dist/impl/data/sitemap-data.js +113 -0
  87. package/dist/impl/sitemap/adapters/page-entry-adapter.js +31 -0
  88. package/dist/impl/sitemap/adapters/redirect-entry-adapter.js +30 -0
  89. package/dist/impl/sitemap/adapters/redirect-to-arboretum-page-adapter.js +15 -0
  90. package/dist/impl/sitemap/adapters/to-arboretum-page-adapter.js +18 -0
  91. package/dist/impl/sitemap/adapters/to-arboretum-page-adapter.test.js +102 -0
  92. package/dist/impl/sitemap/adapters/to-arboretum-page-with-missing-data-adapter.js +20 -0
  93. package/dist/impl/sitemap/helpers/__mocks__/mocked-localized-sitemap.js +189 -0
  94. package/dist/impl/sitemap/helpers/build-localized-sitemap.js +133 -0
  95. package/dist/impl/sitemap/helpers/build-localized-sitemap.test.js +210 -0
  96. package/dist/impl/sitemap/helpers/build-pages-by-tag-eagerly.js +11 -0
  97. package/dist/impl/sitemap/helpers/build-sitemap-eagerly.js +36 -0
  98. package/dist/impl/sitemap/helpers/find-ancestors.js +46 -0
  99. package/dist/impl/sitemap/helpers/find-ancestors.test.js +35 -0
  100. package/dist/impl/sitemap/helpers/find-children.js +13 -0
  101. package/dist/impl/sitemap/helpers/find-children.test.js +41 -0
  102. package/dist/impl/sitemap/helpers/is-root.js +5 -0
  103. package/dist/impl/sitemap/helpers/localize-contentful-field.js +26 -0
  104. package/dist/impl/sitemap/helpers/localize-contentful-field.test.js +139 -0
  105. package/dist/impl/sitemap/helpers/localized-pages-by-tag-id.js +84 -0
  106. package/dist/impl/sitemap/helpers/localized-path.js +8 -0
  107. package/dist/impl/sitemap/helpers/page-ancestors.js +12 -0
  108. package/dist/impl/sitemap/helpers/page-children.js +14 -0
  109. package/dist/impl/sitemap/methods/cached-data.js +11 -0
  110. package/dist/impl/sitemap/methods/home-page.js +31 -0
  111. package/dist/impl/sitemap/methods/page-by-id.js +33 -0
  112. package/dist/impl/sitemap/methods/page-by-path.js +56 -0
  113. package/dist/impl/sitemap/methods/pages-by-ids.js +10 -0
  114. package/dist/impl/sitemap/methods/pages-by-paths.js +10 -0
  115. package/dist/impl/sitemap/methods/pages-by-tag-id.js +41 -0
  116. package/dist/impl/sitemap/methods/pages.js +79 -0
  117. package/dist/impl/sitemap/methods/regenerate.js +68 -0
  118. package/dist/impl/sitemap/methods/search.js +101 -0
  119. package/dist/impl/sitemap/methods/status.js +51 -0
  120. package/dist/index.js +8 -0
  121. package/dist/types/arboretum-client.d.ts +110 -0
  122. package/dist/types/clients/contentful-client/contentful-client.d.ts +95 -0
  123. package/dist/types/clients/contentful-client/impl/contentful-client-impl.d.ts +3 -0
  124. package/dist/types/impl/arboretum-client.impl.d.ts +107 -0
  125. package/dist/types/impl/data/content-types.d.ts +11 -0
  126. package/dist/types/impl/data/helpers/__mocks__/mocked-contentful-entries-client-api.d.ts +7 -0
  127. package/dist/types/impl/data/helpers/entry-status.d.ts +2 -0
  128. package/dist/types/impl/data/helpers/get-all-entries-recursively.d.ts +6 -0
  129. package/dist/types/impl/data/helpers/get-all-entries-recursively.test.d.ts +1 -0
  130. package/dist/types/impl/data/helpers/home-pages-by-tag-id.d.ts +15 -0
  131. package/dist/types/impl/data/helpers/home-pages-by-tag-id.test.d.ts +1 -0
  132. package/dist/types/impl/data/helpers/locale-codes-from-metadata.d.ts +2 -0
  133. package/dist/types/impl/data/helpers/locale-codes-from-metadata.test.d.ts +1 -0
  134. package/dist/types/impl/data/helpers/parse-locale-tag.d.ts +3 -0
  135. package/dist/types/impl/data/helpers/parse-locale-tag.test.d.ts +1 -0
  136. package/dist/types/impl/data/helpers/validate-content-types.d.ts +5 -0
  137. package/dist/types/impl/data/helpers/validate-content-types.test.d.ts +1 -0
  138. package/dist/types/impl/data/home-page.d.ts +3 -0
  139. package/dist/types/impl/data/locales.d.ts +10 -0
  140. package/dist/types/impl/data/page-entries.d.ts +3 -0
  141. package/dist/types/impl/data/page-entries.test.d.ts +1 -0
  142. package/dist/types/impl/data/redirect-entries.d.ts +4 -0
  143. package/dist/types/impl/data/sitemap-data.d.ts +17 -0
  144. package/dist/types/impl/sitemap/adapters/page-entry-adapter.d.ts +6 -0
  145. package/dist/types/impl/sitemap/adapters/redirect-entry-adapter.d.ts +4 -0
  146. package/dist/types/impl/sitemap/adapters/redirect-to-arboretum-page-adapter.d.ts +3 -0
  147. package/dist/types/impl/sitemap/adapters/to-arboretum-page-adapter.d.ts +3 -0
  148. package/dist/types/impl/sitemap/adapters/to-arboretum-page-adapter.test.d.ts +1 -0
  149. package/dist/types/impl/sitemap/adapters/to-arboretum-page-with-missing-data-adapter.d.ts +3 -0
  150. package/dist/types/impl/sitemap/helpers/__mocks__/mocked-localized-sitemap.d.ts +16 -0
  151. package/dist/types/impl/sitemap/helpers/build-localized-sitemap.d.ts +5 -0
  152. package/dist/types/impl/sitemap/helpers/build-localized-sitemap.test.d.ts +1 -0
  153. package/dist/types/impl/sitemap/helpers/build-pages-by-tag-eagerly.d.ts +3 -0
  154. package/dist/types/impl/sitemap/helpers/build-sitemap-eagerly.d.ts +3 -0
  155. package/dist/types/impl/sitemap/helpers/find-ancestors.d.ts +2 -0
  156. package/dist/types/impl/sitemap/helpers/find-ancestors.test.d.ts +1 -0
  157. package/dist/types/impl/sitemap/helpers/find-children.d.ts +2 -0
  158. package/dist/types/impl/sitemap/helpers/find-children.test.d.ts +1 -0
  159. package/dist/types/impl/sitemap/helpers/is-root.d.ts +2 -0
  160. package/dist/types/impl/sitemap/helpers/localize-contentful-field.d.ts +4 -0
  161. package/dist/types/impl/sitemap/helpers/localize-contentful-field.test.d.ts +1 -0
  162. package/dist/types/impl/sitemap/helpers/localized-pages-by-tag-id.d.ts +4 -0
  163. package/dist/types/impl/sitemap/helpers/localized-path.d.ts +1 -0
  164. package/dist/types/impl/sitemap/helpers/page-ancestors.d.ts +3 -0
  165. package/dist/types/impl/sitemap/helpers/page-children.d.ts +5 -0
  166. package/dist/types/impl/sitemap/methods/cached-data.d.ts +3 -0
  167. package/dist/types/impl/sitemap/methods/home-page.d.ts +3 -0
  168. package/dist/types/impl/sitemap/methods/page-by-id.d.ts +3 -0
  169. package/dist/types/impl/sitemap/methods/page-by-path.d.ts +3 -0
  170. package/dist/types/impl/sitemap/methods/pages-by-ids.d.ts +3 -0
  171. package/dist/types/impl/sitemap/methods/pages-by-paths.d.ts +3 -0
  172. package/dist/types/impl/sitemap/methods/pages-by-tag-id.d.ts +3 -0
  173. package/dist/types/impl/sitemap/methods/pages.d.ts +3 -0
  174. package/dist/types/impl/sitemap/methods/regenerate.d.ts +3 -0
  175. package/dist/types/impl/sitemap/methods/search.d.ts +3 -0
  176. package/dist/types/impl/sitemap/methods/status.d.ts +3 -0
  177. package/dist/types/index.d.ts +6 -0
  178. package/dist/types/utils/array-to-map.d.ts +1 -0
  179. package/dist/types/utils/fp-utils.d.ts +11 -0
  180. package/dist/types/utils/group-by.d.ts +1 -0
  181. package/dist/types/utils/json-stringify-map-replacer.d.ts +1 -0
  182. package/dist/types/utils/string-similarity.d.ts +9 -0
  183. package/dist/utils/array-to-map.js +11 -0
  184. package/dist/utils/fp-utils.js +10 -0
  185. package/dist/utils/group-by.js +17 -0
  186. package/dist/utils/json-stringify-map-replacer.js +10 -0
  187. package/dist/utils/string-similarity.js +63 -0
  188. package/docs/.nojekyll +1 -0
  189. package/docs/assets/highlight.css +78 -0
  190. package/docs/assets/main.js +58 -0
  191. package/docs/assets/search.js +1 -0
  192. package/docs/assets/style.css +1367 -0
  193. package/docs/functions/createArboretumClient.html +72 -0
  194. package/docs/functions/createArboretumClientFromCdaClient.html +72 -0
  195. package/docs/functions/createArboretumClientFromCdaParams.html +72 -0
  196. package/docs/functions/createArboretumClientFromCma.html +72 -0
  197. package/docs/index.html +228 -0
  198. package/docs/modules.html +88 -0
  199. package/docs/types/ArboretumAliasT.html +70 -0
  200. package/docs/types/ArboretumClientConfigFromCdaParamsT.html +74 -0
  201. package/docs/types/ArboretumClientConfigFromCdaT.html +79 -0
  202. package/docs/types/ArboretumClientConfigFromCmaT.html +79 -0
  203. package/docs/types/ArboretumClientConfigT.html +63 -0
  204. package/docs/types/ArboretumClientContentfulConfigOptionsT.html +93 -0
  205. package/docs/types/ArboretumClientOptions.html +72 -0
  206. package/docs/types/ArboretumClientOptionsT.html +63 -0
  207. package/docs/types/ArboretumClientT.html +235 -0
  208. package/docs/types/ArboretumPageNodeT.html +63 -0
  209. package/docs/types/ArboretumPageT.html +76 -0
  210. package/docs/types/ArboretumRedirectT.html +70 -0
  211. package/docs/types/CachedDataT.html +63 -0
  212. package/docs/types/Either.html +70 -0
  213. package/docs/types/EitherL.html +75 -0
  214. package/docs/types/EitherR.html +75 -0
  215. package/docs/types/LocaleT.html +63 -0
  216. package/docs/types/OptionsT.html +70 -0
  217. package/logo.svg +12 -0
  218. package/package.json +47 -0
@@ -0,0 +1,170 @@
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
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ var __read = (this && this.__read) || function (o, n) {
38
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
39
+ if (!m) return o;
40
+ var i = m.call(o), r, ar = [], e;
41
+ try {
42
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
43
+ }
44
+ catch (error) { e = { error: error }; }
45
+ finally {
46
+ try {
47
+ if (r && !r.done && (m = i["return"])) m.call(i);
48
+ }
49
+ finally { if (e) throw e.error; }
50
+ }
51
+ return ar;
52
+ };
53
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
55
+ if (ar || !(i in from)) {
56
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
57
+ ar[i] = from[i];
58
+ }
59
+ }
60
+ return to.concat(ar || Array.prototype.slice.call(from));
61
+ };
62
+ import { mockedEntrySysId, multipleContentTypesMockedContentfulEntriesClientApi, } from './helpers/__mocks__/mocked-contentful-entries-client-api';
63
+ import { pageEntries } from './page-entries';
64
+ var productTypesOptions = function (productTypesIds) {
65
+ var seed = {};
66
+ return productTypesIds.reduce(function (acc, ct) {
67
+ acc[ct] = {
68
+ slugFieldId: 'slug',
69
+ };
70
+ return acc;
71
+ }, seed);
72
+ };
73
+ describe(pageEntries, function () {
74
+ test('Handle case where there are no page entries', function () { return __awaiter(void 0, void 0, void 0, function () {
75
+ var singleTestPageContentType, testPageContentTypes, entries1, entries2;
76
+ return __generator(this, function (_a) {
77
+ switch (_a.label) {
78
+ case 0:
79
+ singleTestPageContentType = ['page1ContentType'];
80
+ testPageContentTypes = __spreadArray(__spreadArray([], __read(singleTestPageContentType), false), [
81
+ 'page2ContentType',
82
+ ], false);
83
+ return [4 /*yield*/, pageEntries({
84
+ contentfulClientType: 'cda-client',
85
+ options: {
86
+ pageContentTypes: productTypesOptions(singleTestPageContentType),
87
+ },
88
+ preview: false,
89
+ }, multipleContentTypesMockedContentfulEntriesClientApi(singleTestPageContentType.map(function (contentType) { return ({
90
+ contentType: contentType,
91
+ total: 0,
92
+ }); })))];
93
+ case 1:
94
+ entries1 = _a.sent();
95
+ expect(entries1.size).toBe(0);
96
+ return [4 /*yield*/, pageEntries({
97
+ contentfulClientType: 'cda-client',
98
+ options: {
99
+ pageContentTypes: productTypesOptions(testPageContentTypes),
100
+ },
101
+ preview: false,
102
+ }, multipleContentTypesMockedContentfulEntriesClientApi(testPageContentTypes.map(function (contentType) { return ({
103
+ contentType: contentType,
104
+ total: 0,
105
+ }); })))];
106
+ case 2:
107
+ entries2 = _a.sent();
108
+ expect(entries2.size).toBe(0);
109
+ return [2 /*return*/];
110
+ }
111
+ });
112
+ }); });
113
+ describe(pageEntries, function () {
114
+ test('Handle case where there are page entries', function () { return __awaiter(void 0, void 0, void 0, function () {
115
+ var singleTestPageContentType, testPageContentTypes, entries1, entries1Ids, expectedEntries1Ids, entries2, entries2Ids, expectedEntries2Ids;
116
+ return __generator(this, function (_a) {
117
+ switch (_a.label) {
118
+ case 0:
119
+ singleTestPageContentType = [
120
+ { contentType: 'page1ContentType', total: 101 },
121
+ ];
122
+ testPageContentTypes = __spreadArray(__spreadArray([], __read(singleTestPageContentType), false), [
123
+ { contentType: 'page2ContentType', total: 1001 },
124
+ ], false);
125
+ return [4 /*yield*/, pageEntries({
126
+ contentfulClientType: 'cda-client',
127
+ options: {
128
+ pageContentTypes: productTypesOptions(singleTestPageContentType.map(function (_a) {
129
+ var contentType = _a.contentType;
130
+ return contentType;
131
+ })),
132
+ },
133
+ preview: false,
134
+ }, multipleContentTypesMockedContentfulEntriesClientApi(singleTestPageContentType))];
135
+ case 1:
136
+ entries1 = _a.sent();
137
+ entries1Ids = __spreadArray([], __read(entries1.values()), false).map(function (e) { return e.sys.id; });
138
+ expectedEntries1Ids = singleTestPageContentType.flatMap(function (_a) {
139
+ var total = _a.total, contentType = _a.contentType;
140
+ return __spreadArray([], __read(Array(total).keys()), false).map(function (_, idx) {
141
+ return mockedEntrySysId(contentType, idx);
142
+ });
143
+ });
144
+ expect(entries1Ids).toEqual(expectedEntries1Ids);
145
+ return [4 /*yield*/, pageEntries({
146
+ contentfulClientType: 'cda-client',
147
+ options: {
148
+ pageContentTypes: productTypesOptions(testPageContentTypes.map(function (_a) {
149
+ var contentType = _a.contentType;
150
+ return contentType;
151
+ })),
152
+ },
153
+ preview: false,
154
+ }, multipleContentTypesMockedContentfulEntriesClientApi(testPageContentTypes))];
155
+ case 2:
156
+ entries2 = _a.sent();
157
+ entries2Ids = __spreadArray([], __read(entries2.values()), false).map(function (e) { return e.sys.id; });
158
+ expectedEntries2Ids = testPageContentTypes.flatMap(function (_a) {
159
+ var total = _a.total, contentType = _a.contentType;
160
+ return __spreadArray([], __read(Array(total).keys()), false).map(function (_, idx) {
161
+ return mockedEntrySysId(contentType, idx);
162
+ });
163
+ });
164
+ expect(entries2Ids).toEqual(expectedEntries2Ids);
165
+ return [2 /*return*/];
166
+ }
167
+ });
168
+ }); });
169
+ });
170
+ });
@@ -0,0 +1,163 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ var __read = (this && this.__read) || function (o, n) {
49
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
50
+ if (!m) return o;
51
+ var i = m.call(o), r, ar = [], e;
52
+ try {
53
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
54
+ }
55
+ catch (error) { e = { error: error }; }
56
+ finally {
57
+ try {
58
+ if (r && !r.done && (m = i["return"])) m.call(i);
59
+ }
60
+ finally { if (e) throw e.error; }
61
+ }
62
+ return ar;
63
+ };
64
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
65
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
66
+ if (ar || !(i in from)) {
67
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
68
+ ar[i] = from[i];
69
+ }
70
+ }
71
+ return to.concat(ar || Array.prototype.slice.call(from));
72
+ };
73
+ import { entryStatus } from "./helpers/entry-status";
74
+ import { getAllEntriesRecursively } from "./helpers/get-all-entries-recursively";
75
+ import { arrayToMap } from "../../utils/array-to-map";
76
+ var getAllRedirectEntriesRecursively = function (ctx, redirectContentType, skip, acc, select) { return __awaiter(void 0, void 0, void 0, function () {
77
+ var fieldsSelect;
78
+ return __generator(this, function (_a) {
79
+ fieldsSelect = [
80
+ redirectContentType.titleFieldId,
81
+ redirectContentType.pageFieldId,
82
+ redirectContentType.typeFieldId,
83
+ redirectContentType.pathFieldId,
84
+ ].flatMap(function (id) { return (id ? ["fields.".concat(id)] : []); });
85
+ return [2 /*return*/, getAllEntriesRecursively(ctx.clientApi, redirectContentType.id, skip, acc,
86
+ /* For some reason select param causes errors in CMA. I'm getting the following response:
87
+ {
88
+ "status": 400,
89
+ "statusText": "Bad Request",
90
+ "message": "The query you sent was invalid. Probably a filter or ordering specification is not applicable to the type of a field.",
91
+ "details": {
92
+ "errors": [
93
+ {
94
+ "name": "select",
95
+ "details": "Select is only applicable when querying a collection of entities."
96
+ }
97
+ ]
98
+ },
99
+ "request": {
100
+ "url": "/spaces/8h4rcnu50txt/environments/dacjan-test/public/entries",
101
+ "method": "get",
102
+ ...
103
+ },
104
+ }*/
105
+ select || ctx.contentfulClientType === "cma-client"
106
+ ? undefined
107
+ : __spreadArray(["sys", "metadata"], __read(fieldsSelect), false).join(","), [redirectContentType.pageFieldId])];
108
+ });
109
+ }); };
110
+ export var cmaOnlyEntriesStatusRecord = function (ctx) { return __awaiter(void 0, void 0, void 0, function () {
111
+ var redirectEntries, _a;
112
+ return __generator(this, function (_b) {
113
+ switch (_b.label) {
114
+ case 0:
115
+ if (!ctx.options.redirectContentType) return [3 /*break*/, 2];
116
+ return [4 /*yield*/, getAllRedirectEntriesRecursively(ctx, ctx.options.redirectContentType, 0, [])];
117
+ case 1:
118
+ _a = _b.sent();
119
+ return [3 /*break*/, 3];
120
+ case 2:
121
+ _a = [];
122
+ _b.label = 3;
123
+ case 3:
124
+ redirectEntries = _a;
125
+ return [2 /*return*/, arrayToMap(function (e) { return e.sys.id; })(function (entry) {
126
+ return entryStatus(entry.sys);
127
+ })(redirectEntries)];
128
+ }
129
+ });
130
+ }); };
131
+ export var redirectEntries = function (ctx) { return __awaiter(void 0, void 0, void 0, function () {
132
+ var cmaPreviewClientApi, options, redirectEntriesPromise, statusRecordPromise, _a, redirectEntries, cmaOnlyStatusRecord;
133
+ return __generator(this, function (_b) {
134
+ switch (_b.label) {
135
+ case 0:
136
+ cmaPreviewClientApi = ctx.cmaPreviewClientApi, options = ctx.options;
137
+ redirectEntriesPromise = options.redirectContentType
138
+ ? getAllRedirectEntriesRecursively(ctx, options.redirectContentType, 0, [])
139
+ : Promise.resolve([]);
140
+ statusRecordPromise = ctx.options.includeEntryStatus &&
141
+ ctx.contentfulClientType === "cma-client" &&
142
+ !ctx.preview &&
143
+ cmaPreviewClientApi
144
+ ? cmaOnlyEntriesStatusRecord(__assign(__assign({}, ctx), { clientApi: cmaPreviewClientApi }))
145
+ : Promise.resolve(new Map());
146
+ return [4 /*yield*/, Promise.all([
147
+ redirectEntriesPromise,
148
+ statusRecordPromise,
149
+ ])];
150
+ case 1:
151
+ _a = __read.apply(void 0, [_b.sent(), 2]), redirectEntries = _a[0], cmaOnlyStatusRecord = _a[1];
152
+ return [2 /*return*/, redirectEntries.map(function (entry) {
153
+ var cmaOnlyStatus = ctx.contentfulClientType === "cma-client"
154
+ ? entryStatus(entry.sys) || cmaOnlyStatusRecord.get(entry.sys.id)
155
+ : undefined;
156
+ if (cmaOnlyStatus) {
157
+ entry.sys = __assign(__assign({}, entry.sys), { cmaOnlyStatus: cmaOnlyStatus });
158
+ }
159
+ return entry;
160
+ })];
161
+ }
162
+ });
163
+ }); };
@@ -0,0 +1,109 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ var __read = (this && this.__read) || function (o, n) {
49
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
50
+ if (!m) return o;
51
+ var i = m.call(o), r, ar = [], e;
52
+ try {
53
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
54
+ }
55
+ catch (error) { e = { error: error }; }
56
+ finally {
57
+ try {
58
+ if (r && !r.done && (m = i["return"])) m.call(i);
59
+ }
60
+ finally { if (e) throw e.error; }
61
+ }
62
+ return ar;
63
+ };
64
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
65
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
66
+ if (ar || !(i in from)) {
67
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
68
+ ar[i] = from[i];
69
+ }
70
+ }
71
+ return to.concat(ar || Array.prototype.slice.call(from));
72
+ };
73
+ import { pageEntries } from './page-entries';
74
+ import { left, right } from '../../utils/fp-utils';
75
+ import { contentTypes } from './content-types';
76
+ import { locales } from './locales';
77
+ import { homePages } from './home-page';
78
+ import { redirectEntries } from './redirect-entries';
79
+ import { homePagesByTagId } from './helpers/home-pages-by-tag-id';
80
+ export var sitemapData = function (ctx) { return __awaiter(void 0, void 0, void 0, function () {
81
+ var _a, pages, redirects, ct, l, hp, warnings, pagesByTagId;
82
+ return __generator(this, function (_b) {
83
+ switch (_b.label) {
84
+ case 0: return [4 /*yield*/, Promise.all([
85
+ pageEntries(ctx, ctx.clientApi, ctx.cmaPreviewClientApi),
86
+ redirectEntries(ctx),
87
+ contentTypes(ctx),
88
+ locales(ctx),
89
+ homePages(ctx, ctx.pageHomeTagId),
90
+ ])];
91
+ case 1:
92
+ _a = __read.apply(void 0, [_b.sent(), 5]), pages = _a[0], redirects = _a[1], ct = _a[2], l = _a[3], hp = _a[4];
93
+ warnings = [];
94
+ ct.warnings && warnings.push.apply(warnings, __spreadArray([], __read(ct.warnings), false));
95
+ if (l._tag === 'Left') {
96
+ return [2 /*return*/, left([l.left])];
97
+ }
98
+ else {
99
+ pagesByTagId = homePagesByTagId(ctx, l.right, hp);
100
+ pagesByTagId.warnings && warnings.push.apply(warnings, __spreadArray([], __read(pagesByTagId.warnings), false));
101
+ return [2 /*return*/, right({
102
+ data: __assign(__assign({}, l.right), { homePagesByTagId: pagesByTagId.homePagesByTagId, contentTypes: ct.contentTypes, pages: pages, redirects: redirects }),
103
+ warnings: warnings.length > 0 ? warnings : undefined,
104
+ })];
105
+ }
106
+ return [2 /*return*/];
107
+ }
108
+ });
109
+ }); };
@@ -0,0 +1,27 @@
1
+ import { localizeField } from '../helpers/localize-contentful-field';
2
+ export var pageEntryAdapter = function (data, slugField, titleField, childPagesField, locale, parent, entry) {
3
+ var _a;
4
+ var fieldValue = localizeField(data, locale);
5
+ var slug = (_a = fieldValue(slugField.localized, entry.fields[slugField.id])) === null || _a === void 0 ? void 0 : _a.toLowerCase();
6
+ var title = titleField
7
+ ? fieldValue(titleField.localized, entry.fields[titleField.id])
8
+ : undefined;
9
+ var childPages = childPagesField
10
+ ? fieldValue(childPagesField.localized, entry.fields[childPagesField.id])
11
+ : undefined;
12
+ return slug
13
+ ? {
14
+ type: 'page',
15
+ parent: parent ? { sys: parent.sys } : undefined,
16
+ path: parent ? parent.path + '/' + slug : '/' + locale.code,
17
+ slug: slug,
18
+ title: title || undefined,
19
+ sys: {
20
+ id: entry.sys.id,
21
+ cmaOnlyStatus: entry.sys.cmaOnlyStatus,
22
+ },
23
+ metadata: entry.metadata,
24
+ childPages: (childPages === null || childPages === void 0 ? void 0 : childPages.flatMap(function (childPage) { var _a; return ((_a = childPage === null || childPage === void 0 ? void 0 : childPage.sys) === null || _a === void 0 ? void 0 : _a.id) ? [{ sys: { id: childPage === null || childPage === void 0 ? void 0 : childPage.sys.id } }] : []; })) || [],
25
+ }
26
+ : undefined;
27
+ };
@@ -0,0 +1,26 @@
1
+ import { localizeField } from "../helpers/localize-contentful-field";
2
+ export var redirectEntryAdapter = function (data, pageField, pathField, typeField, titleField, parent, locale, entry) {
3
+ var _a, _b;
4
+ var fieldValue = localizeField(data, locale);
5
+ var page = fieldValue(pageField.localized, entry.fields[pageField.id]);
6
+ var path = (_a = fieldValue(pathField.localized, entry.fields[pathField.id])) === null || _a === void 0 ? void 0 : _a.toLowerCase();
7
+ var type = fieldValue(typeField.localized, entry.fields[typeField.id]);
8
+ var title = titleField
9
+ ? fieldValue(titleField.localized, entry.fields[titleField.id])
10
+ : undefined;
11
+ var pageSysId = (_b = page === null || page === void 0 ? void 0 : page.sys) === null || _b === void 0 ? void 0 : _b.id;
12
+ return pageSysId && path && (type === "redirect" || type === "alias")
13
+ ? {
14
+ page: { sys: { id: pageSysId } },
15
+ path: parent.path + path,
16
+ title: title || undefined,
17
+ metadata: entry.metadata,
18
+ type: type,
19
+ parent: { sys: { id: parent.sys.id } },
20
+ sys: {
21
+ id: entry.sys.id,
22
+ cmaOnlyStatus: entry.sys.cmaOnlyStatus,
23
+ },
24
+ }
25
+ : undefined;
26
+ };
@@ -0,0 +1,11 @@
1
+ export var redirectToArboretumPage = function (localeCode) {
2
+ return function (redirect) { return ({
3
+ type: redirect.type,
4
+ id: redirect.sys.id,
5
+ localeCode: localeCode,
6
+ pageId: redirect.page.sys.id,
7
+ path: redirect.path,
8
+ cmaOnlyStatus: redirect.sys.cmaOnlyStatus,
9
+ title: redirect.title,
10
+ }); };
11
+ };
@@ -0,0 +1,14 @@
1
+ import { pageAncestors } from '../helpers/page-ancestors';
2
+ import { pageChildren } from '../helpers/page-children';
3
+ import { toArboretumPageWithMissingData } from './to-arboretum-page-with-missing-data-adapter';
4
+ export var toArboretumPage = function (sitemap, localeCode, options) {
5
+ return function (page) {
6
+ var ancestors = (options === null || options === void 0 ? void 0 : options.withAncestors)
7
+ ? pageAncestors(localeCode, sitemap, page)
8
+ : undefined;
9
+ var children = (options === null || options === void 0 ? void 0 : options.withChildren)
10
+ ? pageChildren(localeCode, sitemap.sitemap, page)
11
+ : undefined;
12
+ return toArboretumPageWithMissingData(localeCode)(page, ancestors, children);
13
+ };
14
+ };
@@ -0,0 +1,100 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __read = (this && this.__read) || function (o, n) {
13
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
14
+ if (!m) return o;
15
+ var i = m.call(o), r, ar = [], e;
16
+ try {
17
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
18
+ }
19
+ catch (error) { e = { error: error }; }
20
+ finally {
21
+ try {
22
+ if (r && !r.done && (m = i["return"])) m.call(i);
23
+ }
24
+ finally { if (e) throw e.error; }
25
+ }
26
+ return ar;
27
+ };
28
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
29
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30
+ if (ar || !(i in from)) {
31
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32
+ ar[i] = from[i];
33
+ }
34
+ }
35
+ return to.concat(ar || Array.prototype.slice.call(from));
36
+ };
37
+ import { mockedPage1, mockedPage1_1, mockedPage1_1_1, mockedPage1_1_2, mockedRoot, mockedLocalizedSitemap, } from '../helpers/__mocks__/mocked-localized-sitemap';
38
+ import { toArboretumPage } from './to-arboretum-page-adapter';
39
+ var localeCode = 'en';
40
+ var toArboretumPageF = function (options) {
41
+ return toArboretumPage(mockedLocalizedSitemap, localeCode, options);
42
+ };
43
+ var arboretumPageRoot = {
44
+ type: 'page',
45
+ id: mockedRoot.sys.id,
46
+ localeCode: localeCode,
47
+ path: mockedRoot.path,
48
+ slug: mockedRoot.slug,
49
+ totalDirectChildrenCount: mockedRoot.childPages.length,
50
+ };
51
+ var arboretumPagePage1 = {
52
+ id: mockedPage1.sys.id,
53
+ localeCode: localeCode,
54
+ path: mockedPage1.path,
55
+ slug: mockedPage1.slug,
56
+ totalDirectChildrenCount: mockedPage1.childPages.length,
57
+ type: 'page',
58
+ };
59
+ var arboretumPagePage1_1 = {
60
+ id: mockedPage1_1.sys.id,
61
+ localeCode: localeCode,
62
+ path: mockedPage1_1.path,
63
+ slug: mockedPage1_1.slug,
64
+ totalDirectChildrenCount: mockedPage1_1.childPages.length,
65
+ type: 'page',
66
+ };
67
+ var arboretumPage1_1_1 = {
68
+ id: mockedPage1_1_1.sys.id,
69
+ localeCode: localeCode,
70
+ path: mockedPage1_1_1.path,
71
+ slug: mockedPage1_1_1.slug,
72
+ totalDirectChildrenCount: mockedPage1_1_1.childPages.length,
73
+ type: 'page',
74
+ };
75
+ var arboretumPage1_1_2 = {
76
+ id: mockedPage1_1_2.sys.id,
77
+ localeCode: localeCode,
78
+ path: mockedPage1_1_2.path,
79
+ slug: mockedPage1_1_2.slug,
80
+ totalDirectChildrenCount: mockedPage1_1_2.childPages.length,
81
+ type: 'page',
82
+ };
83
+ describe(toArboretumPage, function () {
84
+ test('Transform root to arboretum page', function () {
85
+ mockedLocalizedSitemap;
86
+ expect(toArboretumPageF()(mockedRoot)).toMatchObject(arboretumPageRoot);
87
+ });
88
+ test('Transform nested pages to arboretum page', function () {
89
+ expect(toArboretumPageF()(mockedPage1_1)).toMatchObject(arboretumPagePage1_1);
90
+ expect(toArboretumPageF()(mockedPage1_1_1)).toMatchObject(arboretumPage1_1_1);
91
+ });
92
+ test('Transform pages with optional parameters to arboretum page', function () {
93
+ var arboretumPage1_1WithAncestors = __assign(__assign({}, arboretumPagePage1_1), { ancestors: [arboretumPagePage1, arboretumPageRoot], children: [arboretumPage1_1_1, arboretumPage1_1_2] });
94
+ expect(toArboretumPageF({ withAncestors: true, withChildren: true })(mockedPage1_1)).toMatchObject(arboretumPage1_1WithAncestors);
95
+ var arboretumPage1_1_1WithAncestors = __assign(__assign({}, arboretumPage1_1_1), { ancestors: __spreadArray([
96
+ arboretumPagePage1_1
97
+ ], __read((arboretumPage1_1WithAncestors.ancestors || [])), false), children: [] });
98
+ expect(toArboretumPageF({ withAncestors: true, withChildren: true })(mockedPage1_1_1)).toMatchObject(arboretumPage1_1_1WithAncestors);
99
+ });
100
+ });
@@ -0,0 +1,16 @@
1
+ export var toArboretumPageWithMissingData = function (localeCode) {
2
+ return function (page, ancestors, children) { return ({
3
+ type: 'page',
4
+ id: page.sys.id,
5
+ title: page.title,
6
+ cmaOnlyStatus: page.sys.cmaOnlyStatus,
7
+ localeCode: localeCode,
8
+ path: page.path,
9
+ slug: page.slug,
10
+ totalDirectChildrenCount: children
11
+ ? children.length
12
+ : page.childPages.length,
13
+ children: children,
14
+ ancestors: ancestors,
15
+ }); };
16
+ };