@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,172 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __read = (this && this.__read) || function (o, n) {
39
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
40
+ if (!m) return o;
41
+ var i = m.call(o), r, ar = [], e;
42
+ try {
43
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
+ }
45
+ catch (error) { e = { error: error }; }
46
+ finally {
47
+ try {
48
+ if (r && !r.done && (m = i["return"])) m.call(i);
49
+ }
50
+ finally { if (e) throw e.error; }
51
+ }
52
+ return ar;
53
+ };
54
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
56
+ if (ar || !(i in from)) {
57
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
58
+ ar[i] = from[i];
59
+ }
60
+ }
61
+ return to.concat(ar || Array.prototype.slice.call(from));
62
+ };
63
+ Object.defineProperty(exports, "__esModule", { value: true });
64
+ var mocked_contentful_entries_client_api_1 = require("./helpers/__mocks__/mocked-contentful-entries-client-api");
65
+ var page_entries_1 = require("./page-entries");
66
+ var productTypesOptions = function (productTypesIds) {
67
+ var seed = {};
68
+ return productTypesIds.reduce(function (acc, ct) {
69
+ acc[ct] = {
70
+ slugFieldId: 'slug',
71
+ };
72
+ return acc;
73
+ }, seed);
74
+ };
75
+ describe(page_entries_1.pageEntries, function () {
76
+ test('Handle case where there are no page entries', function () { return __awaiter(void 0, void 0, void 0, function () {
77
+ var singleTestPageContentType, testPageContentTypes, entries1, entries2;
78
+ return __generator(this, function (_a) {
79
+ switch (_a.label) {
80
+ case 0:
81
+ singleTestPageContentType = ['page1ContentType'];
82
+ testPageContentTypes = __spreadArray(__spreadArray([], __read(singleTestPageContentType), false), [
83
+ 'page2ContentType',
84
+ ], false);
85
+ return [4 /*yield*/, (0, page_entries_1.pageEntries)({
86
+ contentfulClientType: 'cda-client',
87
+ options: {
88
+ pageContentTypes: productTypesOptions(singleTestPageContentType),
89
+ },
90
+ preview: false,
91
+ }, (0, mocked_contentful_entries_client_api_1.multipleContentTypesMockedContentfulEntriesClientApi)(singleTestPageContentType.map(function (contentType) { return ({
92
+ contentType: contentType,
93
+ total: 0,
94
+ }); })))];
95
+ case 1:
96
+ entries1 = _a.sent();
97
+ expect(entries1.size).toBe(0);
98
+ return [4 /*yield*/, (0, page_entries_1.pageEntries)({
99
+ contentfulClientType: 'cda-client',
100
+ options: {
101
+ pageContentTypes: productTypesOptions(testPageContentTypes),
102
+ },
103
+ preview: false,
104
+ }, (0, mocked_contentful_entries_client_api_1.multipleContentTypesMockedContentfulEntriesClientApi)(testPageContentTypes.map(function (contentType) { return ({
105
+ contentType: contentType,
106
+ total: 0,
107
+ }); })))];
108
+ case 2:
109
+ entries2 = _a.sent();
110
+ expect(entries2.size).toBe(0);
111
+ return [2 /*return*/];
112
+ }
113
+ });
114
+ }); });
115
+ describe(page_entries_1.pageEntries, function () {
116
+ test('Handle case where there are page entries', function () { return __awaiter(void 0, void 0, void 0, function () {
117
+ var singleTestPageContentType, testPageContentTypes, entries1, entries1Ids, expectedEntries1Ids, entries2, entries2Ids, expectedEntries2Ids;
118
+ return __generator(this, function (_a) {
119
+ switch (_a.label) {
120
+ case 0:
121
+ singleTestPageContentType = [
122
+ { contentType: 'page1ContentType', total: 101 },
123
+ ];
124
+ testPageContentTypes = __spreadArray(__spreadArray([], __read(singleTestPageContentType), false), [
125
+ { contentType: 'page2ContentType', total: 1001 },
126
+ ], false);
127
+ return [4 /*yield*/, (0, page_entries_1.pageEntries)({
128
+ contentfulClientType: 'cda-client',
129
+ options: {
130
+ pageContentTypes: productTypesOptions(singleTestPageContentType.map(function (_a) {
131
+ var contentType = _a.contentType;
132
+ return contentType;
133
+ })),
134
+ },
135
+ preview: false,
136
+ }, (0, mocked_contentful_entries_client_api_1.multipleContentTypesMockedContentfulEntriesClientApi)(singleTestPageContentType))];
137
+ case 1:
138
+ entries1 = _a.sent();
139
+ entries1Ids = __spreadArray([], __read(entries1.values()), false).map(function (e) { return e.sys.id; });
140
+ expectedEntries1Ids = singleTestPageContentType.flatMap(function (_a) {
141
+ var total = _a.total, contentType = _a.contentType;
142
+ return __spreadArray([], __read(Array(total).keys()), false).map(function (_, idx) {
143
+ return (0, mocked_contentful_entries_client_api_1.mockedEntrySysId)(contentType, idx);
144
+ });
145
+ });
146
+ expect(entries1Ids).toEqual(expectedEntries1Ids);
147
+ return [4 /*yield*/, (0, page_entries_1.pageEntries)({
148
+ contentfulClientType: 'cda-client',
149
+ options: {
150
+ pageContentTypes: productTypesOptions(testPageContentTypes.map(function (_a) {
151
+ var contentType = _a.contentType;
152
+ return contentType;
153
+ })),
154
+ },
155
+ preview: false,
156
+ }, (0, mocked_contentful_entries_client_api_1.multipleContentTypesMockedContentfulEntriesClientApi)(testPageContentTypes))];
157
+ case 2:
158
+ entries2 = _a.sent();
159
+ entries2Ids = __spreadArray([], __read(entries2.values()), false).map(function (e) { return e.sys.id; });
160
+ expectedEntries2Ids = testPageContentTypes.flatMap(function (_a) {
161
+ var total = _a.total, contentType = _a.contentType;
162
+ return __spreadArray([], __read(Array(total).keys()), false).map(function (_, idx) {
163
+ return (0, mocked_contentful_entries_client_api_1.mockedEntrySysId)(contentType, idx);
164
+ });
165
+ });
166
+ expect(entries2Ids).toEqual(expectedEntries2Ids);
167
+ return [2 /*return*/];
168
+ }
169
+ });
170
+ }); });
171
+ });
172
+ });
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __read = (this && this.__read) || function (o, n) {
50
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
51
+ if (!m) return o;
52
+ var i = m.call(o), r, ar = [], e;
53
+ try {
54
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
55
+ }
56
+ catch (error) { e = { error: error }; }
57
+ finally {
58
+ try {
59
+ if (r && !r.done && (m = i["return"])) m.call(i);
60
+ }
61
+ finally { if (e) throw e.error; }
62
+ }
63
+ return ar;
64
+ };
65
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
66
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
67
+ if (ar || !(i in from)) {
68
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
69
+ ar[i] = from[i];
70
+ }
71
+ }
72
+ return to.concat(ar || Array.prototype.slice.call(from));
73
+ };
74
+ Object.defineProperty(exports, "__esModule", { value: true });
75
+ exports.redirectEntries = exports.cmaOnlyEntriesStatusRecord = void 0;
76
+ var entry_status_1 = require("./helpers/entry-status");
77
+ var get_all_entries_recursively_1 = require("./helpers/get-all-entries-recursively");
78
+ var array_to_map_1 = require("../../utils/array-to-map");
79
+ var getAllRedirectEntriesRecursively = function (ctx, redirectContentType, skip, acc, select) { return __awaiter(void 0, void 0, void 0, function () {
80
+ var fieldsSelect;
81
+ return __generator(this, function (_a) {
82
+ fieldsSelect = [
83
+ redirectContentType.titleFieldId,
84
+ redirectContentType.pageFieldId,
85
+ redirectContentType.typeFieldId,
86
+ redirectContentType.pathFieldId,
87
+ ].flatMap(function (id) { return (id ? ["fields.".concat(id)] : []); });
88
+ return [2 /*return*/, (0, get_all_entries_recursively_1.getAllEntriesRecursively)(ctx.clientApi, redirectContentType.id, skip, acc,
89
+ /* For some reason select param causes errors in CMA. I'm getting the following response:
90
+ {
91
+ "status": 400,
92
+ "statusText": "Bad Request",
93
+ "message": "The query you sent was invalid. Probably a filter or ordering specification is not applicable to the type of a field.",
94
+ "details": {
95
+ "errors": [
96
+ {
97
+ "name": "select",
98
+ "details": "Select is only applicable when querying a collection of entities."
99
+ }
100
+ ]
101
+ },
102
+ "request": {
103
+ "url": "/spaces/8h4rcnu50txt/environments/dacjan-test/public/entries",
104
+ "method": "get",
105
+ ...
106
+ },
107
+ }*/
108
+ select || ctx.contentfulClientType === "cma-client"
109
+ ? undefined
110
+ : __spreadArray(["sys", "metadata"], __read(fieldsSelect), false).join(","), [redirectContentType.pageFieldId])];
111
+ });
112
+ }); };
113
+ var cmaOnlyEntriesStatusRecord = function (ctx) { return __awaiter(void 0, void 0, void 0, function () {
114
+ var redirectEntries, _a;
115
+ return __generator(this, function (_b) {
116
+ switch (_b.label) {
117
+ case 0:
118
+ if (!ctx.options.redirectContentType) return [3 /*break*/, 2];
119
+ return [4 /*yield*/, getAllRedirectEntriesRecursively(ctx, ctx.options.redirectContentType, 0, [])];
120
+ case 1:
121
+ _a = _b.sent();
122
+ return [3 /*break*/, 3];
123
+ case 2:
124
+ _a = [];
125
+ _b.label = 3;
126
+ case 3:
127
+ redirectEntries = _a;
128
+ return [2 /*return*/, (0, array_to_map_1.arrayToMap)(function (e) { return e.sys.id; })(function (entry) {
129
+ return (0, entry_status_1.entryStatus)(entry.sys);
130
+ })(redirectEntries)];
131
+ }
132
+ });
133
+ }); };
134
+ exports.cmaOnlyEntriesStatusRecord = cmaOnlyEntriesStatusRecord;
135
+ var redirectEntries = function (ctx) { return __awaiter(void 0, void 0, void 0, function () {
136
+ var cmaPreviewClientApi, options, redirectEntriesPromise, statusRecordPromise, _a, redirectEntries, cmaOnlyStatusRecord;
137
+ return __generator(this, function (_b) {
138
+ switch (_b.label) {
139
+ case 0:
140
+ cmaPreviewClientApi = ctx.cmaPreviewClientApi, options = ctx.options;
141
+ redirectEntriesPromise = options.redirectContentType
142
+ ? getAllRedirectEntriesRecursively(ctx, options.redirectContentType, 0, [])
143
+ : Promise.resolve([]);
144
+ statusRecordPromise = ctx.options.includeEntryStatus &&
145
+ ctx.contentfulClientType === "cma-client" &&
146
+ !ctx.preview &&
147
+ cmaPreviewClientApi
148
+ ? (0, exports.cmaOnlyEntriesStatusRecord)(__assign(__assign({}, ctx), { clientApi: cmaPreviewClientApi }))
149
+ : Promise.resolve(new Map());
150
+ return [4 /*yield*/, Promise.all([
151
+ redirectEntriesPromise,
152
+ statusRecordPromise,
153
+ ])];
154
+ case 1:
155
+ _a = __read.apply(void 0, [_b.sent(), 2]), redirectEntries = _a[0], cmaOnlyStatusRecord = _a[1];
156
+ return [2 /*return*/, redirectEntries.map(function (entry) {
157
+ var cmaOnlyStatus = ctx.contentfulClientType === "cma-client"
158
+ ? (0, entry_status_1.entryStatus)(entry.sys) || cmaOnlyStatusRecord.get(entry.sys.id)
159
+ : undefined;
160
+ if (cmaOnlyStatus) {
161
+ entry.sys = __assign(__assign({}, entry.sys), { cmaOnlyStatus: cmaOnlyStatus });
162
+ }
163
+ return entry;
164
+ })];
165
+ }
166
+ });
167
+ }); };
168
+ exports.redirectEntries = redirectEntries;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __read = (this && this.__read) || function (o, n) {
50
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
51
+ if (!m) return o;
52
+ var i = m.call(o), r, ar = [], e;
53
+ try {
54
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
55
+ }
56
+ catch (error) { e = { error: error }; }
57
+ finally {
58
+ try {
59
+ if (r && !r.done && (m = i["return"])) m.call(i);
60
+ }
61
+ finally { if (e) throw e.error; }
62
+ }
63
+ return ar;
64
+ };
65
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
66
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
67
+ if (ar || !(i in from)) {
68
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
69
+ ar[i] = from[i];
70
+ }
71
+ }
72
+ return to.concat(ar || Array.prototype.slice.call(from));
73
+ };
74
+ Object.defineProperty(exports, "__esModule", { value: true });
75
+ exports.sitemapData = void 0;
76
+ var page_entries_1 = require("./page-entries");
77
+ var fp_utils_1 = require("../../utils/fp-utils");
78
+ var content_types_1 = require("./content-types");
79
+ var locales_1 = require("./locales");
80
+ var home_page_1 = require("./home-page");
81
+ var redirect_entries_1 = require("./redirect-entries");
82
+ var home_pages_by_tag_id_1 = require("./helpers/home-pages-by-tag-id");
83
+ var sitemapData = function (ctx) { return __awaiter(void 0, void 0, void 0, function () {
84
+ var _a, pages, redirects, ct, l, hp, warnings, pagesByTagId;
85
+ return __generator(this, function (_b) {
86
+ switch (_b.label) {
87
+ case 0: return [4 /*yield*/, Promise.all([
88
+ (0, page_entries_1.pageEntries)(ctx, ctx.clientApi, ctx.cmaPreviewClientApi),
89
+ (0, redirect_entries_1.redirectEntries)(ctx),
90
+ (0, content_types_1.contentTypes)(ctx),
91
+ (0, locales_1.locales)(ctx),
92
+ (0, home_page_1.homePages)(ctx, ctx.pageHomeTagId),
93
+ ])];
94
+ case 1:
95
+ _a = __read.apply(void 0, [_b.sent(), 5]), pages = _a[0], redirects = _a[1], ct = _a[2], l = _a[3], hp = _a[4];
96
+ warnings = [];
97
+ ct.warnings && warnings.push.apply(warnings, __spreadArray([], __read(ct.warnings), false));
98
+ if (l._tag === 'Left') {
99
+ return [2 /*return*/, (0, fp_utils_1.left)([l.left])];
100
+ }
101
+ else {
102
+ pagesByTagId = (0, home_pages_by_tag_id_1.homePagesByTagId)(ctx, l.right, hp);
103
+ pagesByTagId.warnings && warnings.push.apply(warnings, __spreadArray([], __read(pagesByTagId.warnings), false));
104
+ return [2 /*return*/, (0, fp_utils_1.right)({
105
+ data: __assign(__assign({}, l.right), { homePagesByTagId: pagesByTagId.homePagesByTagId, contentTypes: ct.contentTypes, pages: pages, redirects: redirects }),
106
+ warnings: warnings.length > 0 ? warnings : undefined,
107
+ })];
108
+ }
109
+ return [2 /*return*/];
110
+ }
111
+ });
112
+ }); };
113
+ exports.sitemapData = sitemapData;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pageEntryAdapter = void 0;
4
+ var localize_contentful_field_1 = require("../helpers/localize-contentful-field");
5
+ var pageEntryAdapter = function (data, slugField, titleField, childPagesField, locale, parent, entry) {
6
+ var _a;
7
+ var fieldValue = (0, localize_contentful_field_1.localizeField)(data, locale);
8
+ var slug = (_a = fieldValue(slugField.localized, entry.fields[slugField.id])) === null || _a === void 0 ? void 0 : _a.toLowerCase();
9
+ var title = titleField
10
+ ? fieldValue(titleField.localized, entry.fields[titleField.id])
11
+ : undefined;
12
+ var childPages = childPagesField
13
+ ? fieldValue(childPagesField.localized, entry.fields[childPagesField.id])
14
+ : undefined;
15
+ return slug
16
+ ? {
17
+ type: 'page',
18
+ parent: parent ? { sys: parent.sys } : undefined,
19
+ path: parent ? parent.path + '/' + slug : '/' + locale.code,
20
+ slug: slug,
21
+ title: title || undefined,
22
+ sys: {
23
+ id: entry.sys.id,
24
+ cmaOnlyStatus: entry.sys.cmaOnlyStatus,
25
+ },
26
+ metadata: entry.metadata,
27
+ 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 } }] : []; })) || [],
28
+ }
29
+ : undefined;
30
+ };
31
+ exports.pageEntryAdapter = pageEntryAdapter;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redirectEntryAdapter = void 0;
4
+ var localize_contentful_field_1 = require("../helpers/localize-contentful-field");
5
+ var redirectEntryAdapter = function (data, pageField, pathField, typeField, titleField, parent, locale, entry) {
6
+ var _a, _b;
7
+ var fieldValue = (0, localize_contentful_field_1.localizeField)(data, locale);
8
+ var page = fieldValue(pageField.localized, entry.fields[pageField.id]);
9
+ var path = (_a = fieldValue(pathField.localized, entry.fields[pathField.id])) === null || _a === void 0 ? void 0 : _a.toLowerCase();
10
+ var type = fieldValue(typeField.localized, entry.fields[typeField.id]);
11
+ var title = titleField
12
+ ? fieldValue(titleField.localized, entry.fields[titleField.id])
13
+ : undefined;
14
+ var pageSysId = (_b = page === null || page === void 0 ? void 0 : page.sys) === null || _b === void 0 ? void 0 : _b.id;
15
+ return pageSysId && path && (type === "redirect" || type === "alias")
16
+ ? {
17
+ page: { sys: { id: pageSysId } },
18
+ path: parent.path + path,
19
+ title: title || undefined,
20
+ metadata: entry.metadata,
21
+ type: type,
22
+ parent: { sys: { id: parent.sys.id } },
23
+ sys: {
24
+ id: entry.sys.id,
25
+ cmaOnlyStatus: entry.sys.cmaOnlyStatus,
26
+ },
27
+ }
28
+ : undefined;
29
+ };
30
+ exports.redirectEntryAdapter = redirectEntryAdapter;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redirectToArboretumPage = void 0;
4
+ var redirectToArboretumPage = function (localeCode) {
5
+ return function (redirect) { return ({
6
+ type: redirect.type,
7
+ id: redirect.sys.id,
8
+ localeCode: localeCode,
9
+ pageId: redirect.page.sys.id,
10
+ path: redirect.path,
11
+ cmaOnlyStatus: redirect.sys.cmaOnlyStatus,
12
+ title: redirect.title,
13
+ }); };
14
+ };
15
+ exports.redirectToArboretumPage = redirectToArboretumPage;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toArboretumPage = void 0;
4
+ var page_ancestors_1 = require("../helpers/page-ancestors");
5
+ var page_children_1 = require("../helpers/page-children");
6
+ var to_arboretum_page_with_missing_data_adapter_1 = require("./to-arboretum-page-with-missing-data-adapter");
7
+ var toArboretumPage = function (sitemap, localeCode, options) {
8
+ return function (page) {
9
+ var ancestors = (options === null || options === void 0 ? void 0 : options.withAncestors)
10
+ ? (0, page_ancestors_1.pageAncestors)(localeCode, sitemap, page)
11
+ : undefined;
12
+ var children = (options === null || options === void 0 ? void 0 : options.withChildren)
13
+ ? (0, page_children_1.pageChildren)(localeCode, sitemap.sitemap, page)
14
+ : undefined;
15
+ return (0, to_arboretum_page_with_missing_data_adapter_1.toArboretumPageWithMissingData)(localeCode)(page, ancestors, children);
16
+ };
17
+ };
18
+ exports.toArboretumPage = toArboretumPage;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
30
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31
+ if (ar || !(i in from)) {
32
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
33
+ ar[i] = from[i];
34
+ }
35
+ }
36
+ return to.concat(ar || Array.prototype.slice.call(from));
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var mocked_localized_sitemap_1 = require("../helpers/__mocks__/mocked-localized-sitemap");
40
+ var to_arboretum_page_adapter_1 = require("./to-arboretum-page-adapter");
41
+ var localeCode = 'en';
42
+ var toArboretumPageF = function (options) {
43
+ return (0, to_arboretum_page_adapter_1.toArboretumPage)(mocked_localized_sitemap_1.mockedLocalizedSitemap, localeCode, options);
44
+ };
45
+ var arboretumPageRoot = {
46
+ type: 'page',
47
+ id: mocked_localized_sitemap_1.mockedRoot.sys.id,
48
+ localeCode: localeCode,
49
+ path: mocked_localized_sitemap_1.mockedRoot.path,
50
+ slug: mocked_localized_sitemap_1.mockedRoot.slug,
51
+ totalDirectChildrenCount: mocked_localized_sitemap_1.mockedRoot.childPages.length,
52
+ };
53
+ var arboretumPagePage1 = {
54
+ id: mocked_localized_sitemap_1.mockedPage1.sys.id,
55
+ localeCode: localeCode,
56
+ path: mocked_localized_sitemap_1.mockedPage1.path,
57
+ slug: mocked_localized_sitemap_1.mockedPage1.slug,
58
+ totalDirectChildrenCount: mocked_localized_sitemap_1.mockedPage1.childPages.length,
59
+ type: 'page',
60
+ };
61
+ var arboretumPagePage1_1 = {
62
+ id: mocked_localized_sitemap_1.mockedPage1_1.sys.id,
63
+ localeCode: localeCode,
64
+ path: mocked_localized_sitemap_1.mockedPage1_1.path,
65
+ slug: mocked_localized_sitemap_1.mockedPage1_1.slug,
66
+ totalDirectChildrenCount: mocked_localized_sitemap_1.mockedPage1_1.childPages.length,
67
+ type: 'page',
68
+ };
69
+ var arboretumPage1_1_1 = {
70
+ id: mocked_localized_sitemap_1.mockedPage1_1_1.sys.id,
71
+ localeCode: localeCode,
72
+ path: mocked_localized_sitemap_1.mockedPage1_1_1.path,
73
+ slug: mocked_localized_sitemap_1.mockedPage1_1_1.slug,
74
+ totalDirectChildrenCount: mocked_localized_sitemap_1.mockedPage1_1_1.childPages.length,
75
+ type: 'page',
76
+ };
77
+ var arboretumPage1_1_2 = {
78
+ id: mocked_localized_sitemap_1.mockedPage1_1_2.sys.id,
79
+ localeCode: localeCode,
80
+ path: mocked_localized_sitemap_1.mockedPage1_1_2.path,
81
+ slug: mocked_localized_sitemap_1.mockedPage1_1_2.slug,
82
+ totalDirectChildrenCount: mocked_localized_sitemap_1.mockedPage1_1_2.childPages.length,
83
+ type: 'page',
84
+ };
85
+ describe(to_arboretum_page_adapter_1.toArboretumPage, function () {
86
+ test('Transform root to arboretum page', function () {
87
+ mocked_localized_sitemap_1.mockedLocalizedSitemap;
88
+ expect(toArboretumPageF()(mocked_localized_sitemap_1.mockedRoot)).toMatchObject(arboretumPageRoot);
89
+ });
90
+ test('Transform nested pages to arboretum page', function () {
91
+ expect(toArboretumPageF()(mocked_localized_sitemap_1.mockedPage1_1)).toMatchObject(arboretumPagePage1_1);
92
+ expect(toArboretumPageF()(mocked_localized_sitemap_1.mockedPage1_1_1)).toMatchObject(arboretumPage1_1_1);
93
+ });
94
+ test('Transform pages with optional parameters to arboretum page', function () {
95
+ var arboretumPage1_1WithAncestors = __assign(__assign({}, arboretumPagePage1_1), { ancestors: [arboretumPagePage1, arboretumPageRoot], children: [arboretumPage1_1_1, arboretumPage1_1_2] });
96
+ expect(toArboretumPageF({ withAncestors: true, withChildren: true })(mocked_localized_sitemap_1.mockedPage1_1)).toMatchObject(arboretumPage1_1WithAncestors);
97
+ var arboretumPage1_1_1WithAncestors = __assign(__assign({}, arboretumPage1_1_1), { ancestors: __spreadArray([
98
+ arboretumPagePage1_1
99
+ ], __read((arboretumPage1_1WithAncestors.ancestors || [])), false), children: [] });
100
+ expect(toArboretumPageF({ withAncestors: true, withChildren: true })(mocked_localized_sitemap_1.mockedPage1_1_1)).toMatchObject(arboretumPage1_1_1WithAncestors);
101
+ });
102
+ });