@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,186 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
18
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
19
+ if (ar || !(i in from)) {
20
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21
+ ar[i] = from[i];
22
+ }
23
+ }
24
+ return to.concat(ar || Array.prototype.slice.call(from));
25
+ };
26
+ var mockedRootSysId = 'root';
27
+ var mockedPage1SysId = 'page1';
28
+ var mockedPage1_1SysId = 'page1-1';
29
+ var mockedPage1_1_1SysId = 'page1-1-1';
30
+ var mockedPage1_1_2SysId = 'page1-1-2';
31
+ var mockedPage1_2SysId = 'page1-2';
32
+ var mockedPage2SysId = 'page2';
33
+ var mockedPage2_1SysId = 'page2_1';
34
+ var mockedPage3SysId = 'page3';
35
+ var mockedRedirect1SysId = 'redirect1';
36
+ var mockedRedirect2SysId = 'redirect2';
37
+ var mockedRedirect3SysId = 'redirect3';
38
+ export var mockedRoot = {
39
+ type: 'page',
40
+ sys: { id: mockedRootSysId },
41
+ parent: undefined,
42
+ slug: mockedRootSysId,
43
+ path: '/en',
44
+ childPages: [
45
+ { sys: { id: mockedPage1SysId } },
46
+ { sys: { id: mockedPage2SysId } },
47
+ { sys: { id: mockedPage3SysId } },
48
+ { sys: { id: mockedRedirect1SysId } },
49
+ { sys: { id: mockedRedirect2SysId } },
50
+ { sys: { id: mockedRedirect3SysId } },
51
+ ],
52
+ };
53
+ export var mockedPage1 = {
54
+ type: 'page',
55
+ sys: { id: mockedPage1SysId },
56
+ parent: { sys: mockedRoot.sys },
57
+ slug: mockedPage1SysId,
58
+ path: mockedRoot.path + '/' + mockedPage1SysId,
59
+ childPages: [
60
+ { sys: { id: mockedPage1_1SysId } },
61
+ { sys: { id: mockedPage1_2SysId } },
62
+ ],
63
+ };
64
+ export var mockedPage1_1 = {
65
+ type: 'page',
66
+ sys: { id: mockedPage1_1SysId },
67
+ parent: { sys: mockedPage1.sys },
68
+ path: mockedPage1.path + '/' + mockedPage1_1SysId,
69
+ slug: mockedPage1_1SysId,
70
+ childPages: [
71
+ { sys: { id: mockedPage1_1_1SysId } },
72
+ { sys: { id: mockedPage1_1_2SysId } },
73
+ ],
74
+ };
75
+ export var mockedPage1_2 = {
76
+ type: 'page',
77
+ sys: { id: mockedPage1_2SysId },
78
+ parent: { sys: mockedPage1.sys },
79
+ path: mockedPage1.path + '/' + mockedPage1_2SysId,
80
+ slug: mockedPage1_2SysId,
81
+ childPages: [],
82
+ };
83
+ export var mockedPage1_1_1 = {
84
+ type: 'page',
85
+ sys: { id: mockedPage1_1_1SysId },
86
+ parent: { sys: mockedPage1_1.sys },
87
+ path: mockedPage1_1.path + '/' + mockedPage1_1_1SysId,
88
+ slug: mockedPage1_1_1SysId,
89
+ childPages: [],
90
+ };
91
+ export var mockedPage1_1_2 = {
92
+ type: 'page',
93
+ sys: { id: mockedPage1_1_2SysId },
94
+ parent: { sys: mockedPage1_1.sys },
95
+ path: mockedPage1_1.path + '/' + mockedPage1_1_2SysId,
96
+ slug: mockedPage1_1_2SysId,
97
+ childPages: [],
98
+ };
99
+ export var mockedPage2 = {
100
+ type: 'page',
101
+ sys: { id: mockedPage2SysId },
102
+ parent: { sys: mockedRoot.sys },
103
+ path: mockedRoot.path + '/' + mockedPage2SysId,
104
+ slug: mockedPage2SysId,
105
+ childPages: [{ sys: { id: mockedPage2_1SysId } }],
106
+ };
107
+ export var mockedPage2_1 = {
108
+ type: 'page',
109
+ sys: { id: mockedPage2_1SysId },
110
+ parent: { sys: mockedPage2.sys },
111
+ path: mockedPage2.path + '/' + mockedPage2_1SysId,
112
+ slug: mockedPage2_1SysId,
113
+ childPages: [],
114
+ };
115
+ export var mockedPage3 = {
116
+ type: 'page',
117
+ sys: { id: mockedPage3SysId },
118
+ parent: { sys: mockedRoot.sys },
119
+ path: mockedRoot.path + '/' + mockedPage3SysId,
120
+ slug: mockedPage3SysId,
121
+ childPages: [],
122
+ };
123
+ var mockedRedirect1 = {
124
+ type: 'alias',
125
+ sys: { id: mockedRedirect1SysId },
126
+ page: { sys: { id: mockedRedirect1SysId } },
127
+ path: mockedRoot.path + '/' + mockedRedirect1SysId,
128
+ parent: { sys: { id: mockedRoot.sys.id } },
129
+ };
130
+ var mockedRedirect2 = {
131
+ type: 'redirect',
132
+ sys: { id: mockedRedirect2SysId },
133
+ page: { sys: { id: mockedRedirect2SysId } },
134
+ path: mockedRoot.path + '/' + mockedRedirect2SysId,
135
+ parent: { sys: { id: mockedRoot.sys.id } },
136
+ };
137
+ var mockedRedirect3 = {
138
+ type: 'alias',
139
+ sys: { id: mockedRedirect3SysId },
140
+ page: { sys: { id: mockedRedirect3SysId } },
141
+ path: mockedRoot.path + '/' + mockedRedirect3SysId,
142
+ parent: { sys: { id: mockedRoot.sys.id } },
143
+ };
144
+ export var mockedRedirects = [
145
+ mockedRedirect1,
146
+ mockedRedirect2,
147
+ mockedRedirect3,
148
+ ];
149
+ export var mockedPages = __spreadArray([
150
+ mockedRoot,
151
+ mockedPage1,
152
+ mockedPage1_1,
153
+ mockedPage1_1_1,
154
+ mockedPage1_1_2,
155
+ mockedPage1_2,
156
+ mockedPage2,
157
+ mockedPage2_1,
158
+ mockedPage3
159
+ ], __read(mockedRedirects), false);
160
+ export var mockedLocalizedSitemap = {
161
+ root: { sys: mockedRoot.sys },
162
+ sitemap: new Map(mockedPages.map(function (page) {
163
+ if (!page.parent && page.type === 'page') {
164
+ return [page.sys.id, page];
165
+ }
166
+ return [page.sys.id, page];
167
+ })),
168
+ pageIdByPath: new Map(mockedPages.map(function (page) { return [page.path, page.sys.id]; })),
169
+ };
170
+ export var mockedPage1WithCircularReference = {
171
+ type: 'page',
172
+ sys: { id: mockedPage1SysId },
173
+ parent: { sys: { id: mockedRoot.sys.id } },
174
+ path: mockedRoot.path + '/' + mockedPage1SysId,
175
+ slug: mockedPage1SysId,
176
+ childPages: [{ sys: { id: mockedRootSysId } }],
177
+ };
178
+ export var mockedCircularReferencesPages = [
179
+ mockedRoot,
180
+ mockedPage1WithCircularReference,
181
+ ];
182
+ export var mockedLocalizedSitemapWithCircularReference = {
183
+ root: { sys: mockedRoot.sys },
184
+ sitemap: new Map(mockedCircularReferencesPages.map(function (page) { return [page.sys.id, page]; })),
185
+ pageIdByPath: new Map(mockedCircularReferencesPages.map(function (page) { return [page.path, page.sys.id]; })),
186
+ };
@@ -0,0 +1,128 @@
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 { left, right } from '../../../utils/fp-utils';
38
+ import { pageEntryAdapter } from '../adapters/page-entry-adapter';
39
+ import { redirectEntryAdapter } from '../adapters/redirect-entry-adapter';
40
+ import { isRoot } from './is-root';
41
+ var getAllRedirects = function (data, options, locale, parent) {
42
+ var redirectContentType = options.id
43
+ ? data.contentTypes.get(options.id)
44
+ : undefined;
45
+ var findField = function (fieldId) {
46
+ return redirectContentType === null || redirectContentType === void 0 ? void 0 : redirectContentType.fields.get(fieldId);
47
+ };
48
+ var pageField = findField(options.pageFieldId);
49
+ var pathField = findField(options.pathFieldId);
50
+ var typeField = findField(options.typeFieldId);
51
+ var titleField = options.titleFieldId
52
+ ? findField(options.titleFieldId)
53
+ : undefined;
54
+ return data.redirects.flatMap(function (redirectEntry) {
55
+ var redirect = pageField && pathField && typeField
56
+ ? redirectEntryAdapter(data, pageField, pathField, typeField, titleField, parent, locale, redirectEntry)
57
+ : undefined;
58
+ return redirect ? [redirect] : [];
59
+ });
60
+ };
61
+ var buildLocalizedSitemapArrRecursively = function (data, options, locale, parent, pageEntry, acc) {
62
+ var pages = data.pages, contentTypes = data.contentTypes;
63
+ var pageContentType = contentTypes.get(pageEntry.sys.contentType.sys.id);
64
+ var pageContentTypeConfig = options.pageContentTypes[pageEntry.sys.contentType.sys.id];
65
+ var findPageField = function (fieldId) {
66
+ return pageContentType && pageContentTypeConfig
67
+ ? pageContentType.fields.get(fieldId)
68
+ : undefined;
69
+ };
70
+ var slugField = findPageField(pageContentTypeConfig.slugFieldId);
71
+ var titleField = pageContentTypeConfig.titleFieldId
72
+ ? findPageField(pageContentTypeConfig.titleFieldId)
73
+ : undefined;
74
+ var childPagesField = pageContentTypeConfig.childPagesFieldId
75
+ ? findPageField(pageContentTypeConfig.childPagesFieldId)
76
+ : undefined;
77
+ var page = slugField
78
+ ? pageEntryAdapter(data, slugField, titleField, childPagesField, locale, parent, pageEntry)
79
+ : undefined;
80
+ if (page) {
81
+ var validChildPages_1 = page.childPages.filter(function (c) { return pages.get(c.sys.id) && !acc.get(c.sys.id); });
82
+ var redirectChildPages = isRoot(page) && options.redirectContentType
83
+ ? getAllRedirects(data, options.redirectContentType, locale, page)
84
+ : [];
85
+ redirectChildPages.forEach(function (r) {
86
+ var id = r.sys.id;
87
+ acc.set(id, r);
88
+ validChildPages_1.push({ sys: { id: id } });
89
+ });
90
+ var pageWithValidChildPages = __assign(__assign({}, page), { childPages: validChildPages_1 });
91
+ acc.set(page.sys.id, pageWithValidChildPages);
92
+ validChildPages_1.forEach(function (_a) {
93
+ var id = _a.sys.id;
94
+ var childPageEntry = pages.get(id);
95
+ childPageEntry &&
96
+ buildLocalizedSitemapArrRecursively(data, options, locale, { sys: pageEntry.sys, path: page.path }, childPageEntry, acc);
97
+ });
98
+ return acc;
99
+ }
100
+ else {
101
+ return acc;
102
+ }
103
+ };
104
+ export var buildLocalizedSitemap = function (data, options, pageHomeTagId, locale) {
105
+ var _a, _b, _c, _d;
106
+ var homePagesByTagId = data.homePagesByTagId, pages = data.pages;
107
+ var homePageRef = (_d = (_c = (_b = (_a = homePagesByTagId === null || homePagesByTagId === void 0 ? void 0 : homePagesByTagId.get(locale.code)) === null || _a === void 0 ? void 0 : _a.get(pageHomeTagId)) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.sys) === null || _d === void 0 ? void 0 : _d.id;
108
+ var homePageEntry = homePageRef ? pages.get(homePageRef) : undefined;
109
+ if (homePageEntry) {
110
+ var sitemap = buildLocalizedSitemapArrRecursively(data, options, locale, undefined, homePageEntry, new Map());
111
+ return right({
112
+ root: { sys: homePageEntry.sys },
113
+ sitemap: sitemap,
114
+ pageIdByPath: new Map(__spreadArray([], __read(sitemap.values()), false).map(function (page) { return [page.path, page.sys.id]; })),
115
+ });
116
+ }
117
+ else {
118
+ return left("Homepage required but not defined (locale: ".concat(locale.code, ")"));
119
+ }
120
+ };
121
+ export var localizedSitemapFromCacheOrBuildEff = function (ctx, locale) {
122
+ var cachedLocalizedSitemap = ctx.sitemap.get(locale.code);
123
+ var sitemapE = cachedLocalizedSitemap
124
+ ? cachedLocalizedSitemap
125
+ : buildLocalizedSitemap(ctx.data, ctx.options, ctx.pageHomeTagId, locale);
126
+ ctx.sitemap.set(locale.code, sitemapE);
127
+ return sitemapE;
128
+ };
@@ -0,0 +1,208 @@
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 _a;
13
+ import { right } from '../../../utils/fp-utils';
14
+ import { jsonStrigifyMapReplacer } from '../../../utils/json-stringify-map-replacer';
15
+ import { buildLocalizedSitemap } from './build-localized-sitemap';
16
+ import { mockedPages, mockedCircularReferencesPages, mockedPage1WithCircularReference, mockedRoot, mockedLocalizedSitemap, } from './__mocks__/mocked-localized-sitemap';
17
+ var defaultLocale = {
18
+ code: 'en',
19
+ default: true,
20
+ fallbackCode: null,
21
+ name: 'English',
22
+ };
23
+ var pageContentTypeId = 'page';
24
+ var pageContentTypeSlugFieldId = 'slug';
25
+ var pageContentTypeChildPagesFieldId = 'childPages';
26
+ var redirectContentTypeId = 'redirect';
27
+ var redirectContentTypePage = 'page';
28
+ var redirectContentTypePath = 'path';
29
+ var redirectContentTypeType = 'type';
30
+ var contentTypes = new Map([
31
+ [
32
+ pageContentTypeId,
33
+ {
34
+ sys: { id: pageContentTypeId },
35
+ fields: new Map([
36
+ [
37
+ pageContentTypeSlugFieldId,
38
+ {
39
+ id: pageContentTypeSlugFieldId,
40
+ localized: true,
41
+ name: 'Slug',
42
+ type: "Symbol"
43
+ },
44
+ ],
45
+ [
46
+ pageContentTypeChildPagesFieldId,
47
+ {
48
+ id: pageContentTypeChildPagesFieldId,
49
+ localized: true,
50
+ name: 'Child Pages',
51
+ type: "Array"
52
+ },
53
+ ],
54
+ ]),
55
+ },
56
+ ],
57
+ [
58
+ redirectContentTypeId,
59
+ {
60
+ sys: { id: redirectContentTypeId },
61
+ fields: new Map([
62
+ [
63
+ redirectContentTypePage,
64
+ {
65
+ id: redirectContentTypePage,
66
+ localized: true,
67
+ name: 'Page',
68
+ type: "Link"
69
+ },
70
+ ],
71
+ [
72
+ redirectContentTypePath,
73
+ {
74
+ id: redirectContentTypePath,
75
+ localized: true,
76
+ name: 'Path',
77
+ type: "Symbol"
78
+ },
79
+ ],
80
+ [
81
+ redirectContentTypeType,
82
+ {
83
+ id: redirectContentTypeType,
84
+ localized: true,
85
+ name: 'Type',
86
+ type: "Symbol"
87
+ },
88
+ ],
89
+ ]),
90
+ },
91
+ ],
92
+ ]);
93
+ var options = {
94
+ pageContentTypes: (_a = {},
95
+ _a[pageContentTypeId] = {
96
+ slugFieldId: pageContentTypeSlugFieldId,
97
+ childPagesFieldId: pageContentTypeChildPagesFieldId,
98
+ },
99
+ _a),
100
+ redirectContentType: {
101
+ id: redirectContentTypeId,
102
+ pageFieldId: redirectContentTypePage,
103
+ pathFieldId: redirectContentTypePath,
104
+ typeFieldId: redirectContentTypeType,
105
+ },
106
+ };
107
+ var pageToEntry = function (page, tagsIds) {
108
+ var _a, _b, _c;
109
+ return ({
110
+ sys: { id: page.sys.id, contentType: { sys: { id: pageContentTypeId } } },
111
+ metadata: tagsIds
112
+ ? { tags: tagsIds.map(function (t) { return ({ sys: { id: t } }); }) }
113
+ : undefined,
114
+ fields: (_a = {},
115
+ _a[pageContentTypeSlugFieldId] = (_b = {}, _b[defaultLocale.code] = page.slug, _b),
116
+ _a[pageContentTypeChildPagesFieldId] = (_c = {},
117
+ _c[defaultLocale.code] = page.childPages.map(function (cp) { return ({ sys: cp.sys }); }),
118
+ _c),
119
+ _a),
120
+ });
121
+ };
122
+ var redirectToEntry = function (page, tagsIds) {
123
+ var _a, _b, _c, _d;
124
+ return ({
125
+ sys: { id: page.sys.id, contentType: { sys: { id: redirectContentTypeId } } },
126
+ metadata: tagsIds
127
+ ? { tags: tagsIds.map(function (t) { return ({ sys: { id: t } }); }) }
128
+ : undefined,
129
+ fields: (_a = {},
130
+ _a[redirectContentTypePage] = (_b = {},
131
+ _b[defaultLocale.code] = { sys: { id: page.page.sys.id } },
132
+ _b),
133
+ _a[redirectContentTypePath] = (_c = {},
134
+ _c[defaultLocale.code] = page.path.slice(("/" + defaultLocale.code).length),
135
+ _c),
136
+ _a[redirectContentTypeType] = (_d = {},
137
+ _d[defaultLocale.code] = page.type,
138
+ _d),
139
+ _a),
140
+ });
141
+ };
142
+ describe(buildLocalizedSitemap, function () {
143
+ test('Not enough data to build sitemap', function () {
144
+ var emptyData = {
145
+ contentTypes: contentTypes,
146
+ defaultLocaleCode: defaultLocale.code,
147
+ locales: new Map([[defaultLocale.code, defaultLocale]]),
148
+ homePagesByTagId: new Map(),
149
+ pages: new Map(),
150
+ redirects: [],
151
+ };
152
+ expect(buildLocalizedSitemap(emptyData, { pageContentTypes: {} }, 'pageHome', defaultLocale)._tag).toBe('Left');
153
+ });
154
+ test('Build localized sitemap', function () {
155
+ var pageHomeTagId = 'pagHome';
156
+ var pagesEntries = mockedPages.flatMap(function (page) {
157
+ return page.type === 'page'
158
+ ? [pageToEntry(page, page.sys.id === 'root' ? [pageHomeTagId] : [])]
159
+ : [];
160
+ });
161
+ var redirectsEntries = mockedPages.flatMap(function (page) {
162
+ return page.type !== 'page' ? [redirectToEntry(page)] : [];
163
+ });
164
+ var data = {
165
+ contentTypes: contentTypes,
166
+ defaultLocaleCode: defaultLocale.code,
167
+ locales: new Map([[defaultLocale.code, defaultLocale]]),
168
+ homePagesByTagId: new Map([
169
+ [
170
+ defaultLocale.code,
171
+ new Map([[pageHomeTagId, [{ sys: { id: mockedRoot.sys.id } }]]]),
172
+ ],
173
+ ]),
174
+ pages: new Map(pagesEntries.map(function (e) { return [e.sys.id, e]; })),
175
+ redirects: redirectsEntries,
176
+ };
177
+ expect(JSON.parse(JSON.stringify(buildLocalizedSitemap(data, options, pageHomeTagId, defaultLocale), jsonStrigifyMapReplacer))).toMatchObject(JSON.parse(JSON.stringify(right(mockedLocalizedSitemap), jsonStrigifyMapReplacer)));
178
+ });
179
+ test('Handle reference cycles', function () {
180
+ var pageHomeTagId = 'pagHome';
181
+ var entries = mockedCircularReferencesPages.map(function (page) {
182
+ return pageToEntry(page, page.sys.id === 'root' ? [pageHomeTagId] : []);
183
+ });
184
+ var data = {
185
+ contentTypes: contentTypes,
186
+ defaultLocaleCode: defaultLocale.code,
187
+ locales: new Map([[defaultLocale.code, defaultLocale]]),
188
+ homePagesByTagId: new Map([
189
+ [
190
+ defaultLocale.code,
191
+ new Map([[pageHomeTagId, [{ sys: { id: mockedRoot.sys.id } }]]]),
192
+ ],
193
+ ]),
194
+ pages: new Map(entries.map(function (e) { return [e.sys.id, e]; })),
195
+ redirects: [],
196
+ };
197
+ var expectedLocalizedSitemap = right({
198
+ root: { sys: mockedRoot.sys },
199
+ sitemap: new Map([
200
+ __assign(__assign({}, mockedRoot), { childPages: [
201
+ { sys: { id: mockedPage1WithCircularReference.sys.id } },
202
+ ] }),
203
+ __assign(__assign({}, mockedPage1WithCircularReference), { childPages: [] }),
204
+ ].map(function (page) { return [page.sys.id, page]; })),
205
+ });
206
+ expect(JSON.parse(JSON.stringify(buildLocalizedSitemap(data, options, pageHomeTagId, defaultLocale), jsonStrigifyMapReplacer))).toMatchObject(JSON.parse(JSON.stringify(expectedLocalizedSitemap, jsonStrigifyMapReplacer)));
207
+ });
208
+ });
@@ -0,0 +1,7 @@
1
+ import { arrayToMap } from '../../../utils/array-to-map';
2
+ import { buildLocalizedPagesByTagId } from './localized-pages-by-tag-id';
3
+ export var buildPagesByTagEagerly = function (ctx, locales) {
4
+ return arrayToMap(function (locale) { return locale.code; })(function (locale) {
5
+ return buildLocalizedPagesByTagId(ctx, locale);
6
+ })(Object.values(locales));
7
+ };
@@ -0,0 +1,32 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
18
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
19
+ if (ar || !(i in from)) {
20
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21
+ ar[i] = from[i];
22
+ }
23
+ }
24
+ return to.concat(ar || Array.prototype.slice.call(from));
25
+ };
26
+ import { buildLocalizedSitemap } from './build-localized-sitemap';
27
+ import { arrayToMap } from '../../../utils/array-to-map';
28
+ export var buildSitemapEagerly = function (ctx, locales) {
29
+ return arrayToMap(function (locale) { return locale.code; })(function (locale) {
30
+ return buildLocalizedSitemap(ctx.data, ctx.options, ctx.pageHomeTagId, locale);
31
+ })(__spreadArray([], __read(locales.values()), false));
32
+ };
@@ -0,0 +1,42 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
18
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
19
+ if (ar || !(i in from)) {
20
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21
+ ar[i] = from[i];
22
+ }
23
+ }
24
+ return to.concat(ar || Array.prototype.slice.call(from));
25
+ };
26
+ var findAncestorsRecursively = function (sitemap, page) {
27
+ var _a;
28
+ var maybeParentRef = (_a = page === null || page === void 0 ? void 0 : page.parent) === null || _a === void 0 ? void 0 : _a.sys;
29
+ var maybeParent = maybeParentRef
30
+ ? sitemap.get(maybeParentRef.id)
31
+ : undefined;
32
+ return maybeParent && maybeParent.type === 'page'
33
+ ? __spreadArray([maybeParent], __read(findAncestorsRecursively(sitemap, maybeParent)), false) : [];
34
+ };
35
+ export var findAncestors = function (_a, page) {
36
+ var root = _a.root, sitemap = _a.sitemap;
37
+ var ancestors = findAncestorsRecursively(sitemap, page);
38
+ var maybeHomePageAncestor = ancestors
39
+ .slice(-1)
40
+ .find(function (page) { return page.sys.id === root.sys.id; });
41
+ return maybeHomePageAncestor ? ancestors : undefined;
42
+ };
@@ -0,0 +1,33 @@
1
+ import { findAncestors } from './find-ancestors';
2
+ import { mockedPage1, mockedPage1_1, mockedPage1_1_1, mockedPage1_2, mockedPage2, mockedPage3, mockedRoot, mockedLocalizedSitemap, } from './__mocks__/mocked-localized-sitemap';
3
+ describe(findAncestors, function () {
4
+ test('Get home page ancestors', function () {
5
+ expect(findAncestors(mockedLocalizedSitemap, mockedRoot)).toBeUndefined();
6
+ });
7
+ test('Get first level nodes ancestors', function () {
8
+ expect(findAncestors(mockedLocalizedSitemap, mockedPage1)).toEqual([
9
+ mockedRoot,
10
+ ]);
11
+ expect(findAncestors(mockedLocalizedSitemap, mockedPage2)).toEqual([
12
+ mockedRoot,
13
+ ]);
14
+ expect(findAncestors(mockedLocalizedSitemap, mockedPage3)).toEqual([
15
+ mockedRoot,
16
+ ]);
17
+ });
18
+ test('Get nested nodes ancestors', function () {
19
+ expect(findAncestors(mockedLocalizedSitemap, mockedPage1_1)).toEqual([
20
+ mockedPage1,
21
+ mockedRoot,
22
+ ]);
23
+ expect(findAncestors(mockedLocalizedSitemap, mockedPage1_1_1)).toEqual([
24
+ mockedPage1_1,
25
+ mockedPage1,
26
+ mockedRoot,
27
+ ]);
28
+ expect(findAncestors(mockedLocalizedSitemap, mockedPage1_2)).toEqual([
29
+ mockedPage1,
30
+ mockedRoot,
31
+ ]);
32
+ });
33
+ });
@@ -0,0 +1,9 @@
1
+ export var findChildren = function (sitemap) {
2
+ return function (page) {
3
+ return page.childPages.flatMap(function (_a) {
4
+ var id = _a.sys.id;
5
+ var childPage = sitemap.get(id);
6
+ return childPage ? [childPage] : [];
7
+ });
8
+ };
9
+ };
@@ -0,0 +1,39 @@
1
+ var __read = (this && this.__read) || function (o, n) {
2
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
3
+ if (!m) return o;
4
+ var i = m.call(o), r, ar = [], e;
5
+ try {
6
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7
+ }
8
+ catch (error) { e = { error: error }; }
9
+ finally {
10
+ try {
11
+ if (r && !r.done && (m = i["return"])) m.call(i);
12
+ }
13
+ finally { if (e) throw e.error; }
14
+ }
15
+ return ar;
16
+ };
17
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
18
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
19
+ if (ar || !(i in from)) {
20
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21
+ ar[i] = from[i];
22
+ }
23
+ }
24
+ return to.concat(ar || Array.prototype.slice.call(from));
25
+ };
26
+ import { findChildren } from './find-children';
27
+ import { mockedPage1, mockedPage1_1, mockedPage1_1_1, mockedPage1_1_2, mockedPage2, mockedPage3, mockedRedirects, mockedRoot, mockedLocalizedSitemap, } from './__mocks__/mocked-localized-sitemap';
28
+ describe(findChildren, function () {
29
+ test('Home page children with redirects', function () {
30
+ expect(findChildren(mockedLocalizedSitemap.sitemap)(mockedRoot)).toEqual(__spreadArray([
31
+ mockedPage1,
32
+ mockedPage2,
33
+ mockedPage3
34
+ ], __read(mockedRedirects), false));
35
+ });
36
+ test('Nested page children', function () {
37
+ expect(findChildren(mockedLocalizedSitemap.sitemap)(mockedPage1_1)).toEqual([mockedPage1_1_1, mockedPage1_1_2]);
38
+ });
39
+ });