@kontent-ai/delivery-sdk 15.1.1 → 16.0.0-0

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 (263) hide show
  1. package/dist/bundles/kontent-delivery.umd.js +188 -2284
  2. package/dist/bundles/kontent-delivery.umd.js.map +1 -1
  3. package/dist/bundles/kontent-delivery.umd.min.js +1 -1
  4. package/dist/bundles/kontent-delivery.umd.min.js.map +1 -1
  5. package/dist/bundles/report.json +1 -1
  6. package/dist/bundles/report.min.json +1 -1
  7. package/dist/bundles/stats.json +4433 -9234
  8. package/dist/bundles/stats.min.json +2500 -7425
  9. package/dist/cjs/client/delivery-client.d.ts +14 -14
  10. package/dist/cjs/client/delivery-client.factory.d.ts +2 -1
  11. package/dist/cjs/client/delivery-client.factory.js.map +1 -1
  12. package/dist/cjs/client/delivery-client.js.map +1 -1
  13. package/dist/cjs/client/idelivery-client.interface.d.ts +14 -14
  14. package/dist/cjs/mappers/element.mapper.d.ts +4 -4
  15. package/dist/cjs/mappers/element.mapper.js.map +1 -1
  16. package/dist/cjs/mappers/item.mapper.d.ts +11 -11
  17. package/dist/cjs/mappers/item.mapper.js +1 -1
  18. package/dist/cjs/mappers/item.mapper.js.map +1 -1
  19. package/dist/cjs/mappers/language.mapper.d.ts +2 -2
  20. package/dist/cjs/mappers/language.mapper.js +5 -1
  21. package/dist/cjs/mappers/language.mapper.js.map +1 -1
  22. package/dist/cjs/mappers/taxonomy.mapper.d.ts +3 -3
  23. package/dist/cjs/mappers/taxonomy.mapper.js.map +1 -1
  24. package/dist/cjs/mappers/type.mapper.d.ts +3 -3
  25. package/dist/cjs/mappers/type.mapper.js.map +1 -1
  26. package/dist/cjs/models/content-type-models.d.ts +4 -4
  27. package/dist/cjs/models/item-models.d.ts +15 -4
  28. package/dist/cjs/models/language-models.d.ts +4 -4
  29. package/dist/cjs/models/responses.d.ts +29 -29
  30. package/dist/cjs/models/taxonomy-models.d.ts +4 -4
  31. package/dist/cjs/query/common/base-item-listing-query.class.d.ts +4 -4
  32. package/dist/cjs/query/common/base-item-listing-query.class.js.map +1 -1
  33. package/dist/cjs/query/common/base-listing-query.class.d.ts +4 -4
  34. package/dist/cjs/query/common/base-listing-query.class.js.map +1 -1
  35. package/dist/cjs/query/common/base-query.class.d.ts +4 -4
  36. package/dist/cjs/query/common/base-query.class.js.map +1 -1
  37. package/dist/cjs/query/element/element-query.class.d.ts +4 -4
  38. package/dist/cjs/query/element/element-query.class.js.map +1 -1
  39. package/dist/cjs/query/item/multiple-items-query.class.d.ts +14 -14
  40. package/dist/cjs/query/item/multiple-items-query.class.js +3 -1
  41. package/dist/cjs/query/item/multiple-items-query.class.js.map +1 -1
  42. package/dist/cjs/query/item/single-item-query.class.d.ts +9 -9
  43. package/dist/cjs/query/item/single-item-query.class.js.map +1 -1
  44. package/dist/cjs/query/items-feed/items-feed-query.class.d.ts +7 -7
  45. package/dist/cjs/query/items-feed/items-feed-query.class.js +3 -1
  46. package/dist/cjs/query/items-feed/items-feed-query.class.js.map +1 -1
  47. package/dist/cjs/query/language/languages-query.class.d.ts +7 -7
  48. package/dist/cjs/query/language/languages-query.class.js.map +1 -1
  49. package/dist/cjs/query/sync/initialize-sync-query.class.d.ts +4 -4
  50. package/dist/cjs/query/sync/initialize-sync-query.class.js.map +1 -1
  51. package/dist/cjs/query/sync/sync-changes-query.class.d.ts +4 -4
  52. package/dist/cjs/query/sync/sync-changes-query.class.js.map +1 -1
  53. package/dist/cjs/query/taxonomy/taxonomies-query.class.d.ts +7 -7
  54. package/dist/cjs/query/taxonomy/taxonomies-query.class.js.map +1 -1
  55. package/dist/cjs/query/taxonomy/taxonomy-query.class.d.ts +6 -6
  56. package/dist/cjs/query/taxonomy/taxonomy-query.class.js.map +1 -1
  57. package/dist/cjs/query/type/multiple-type-query.class.d.ts +9 -9
  58. package/dist/cjs/query/type/multiple-type-query.class.js.map +1 -1
  59. package/dist/cjs/query/type/single-type-query.class.d.ts +6 -6
  60. package/dist/cjs/query/type/single-type-query.class.js.map +1 -1
  61. package/dist/cjs/sdk-info.generated.js +1 -1
  62. package/dist/cjs/sdk-info.generated.js.map +1 -1
  63. package/dist/cjs/services/base-delivery-query.service.d.ts +4 -4
  64. package/dist/cjs/services/base-delivery-query.service.js.map +1 -1
  65. package/dist/cjs/services/delivery-query.service.d.ts +11 -11
  66. package/dist/cjs/services/delivery-query.service.js.map +1 -1
  67. package/dist/cjs/services/mapping.service.d.ts +19 -19
  68. package/dist/cjs/services/mapping.service.js +1 -1
  69. package/dist/cjs/services/mapping.service.js.map +1 -1
  70. package/dist/cjs/utilities/delivery-url.helper.d.ts +1 -1
  71. package/dist/cjs/utilities/delivery-url.helper.js +3 -6
  72. package/dist/cjs/utilities/delivery-url.helper.js.map +1 -1
  73. package/dist/cjs/utilities/index.d.ts +0 -2
  74. package/dist/cjs/utilities/index.js +0 -2
  75. package/dist/cjs/utilities/index.js.map +1 -1
  76. package/dist/es6/client/delivery-client.d.ts +14 -14
  77. package/dist/es6/client/delivery-client.factory.d.ts +2 -1
  78. package/dist/es6/client/delivery-client.factory.js.map +1 -1
  79. package/dist/es6/client/delivery-client.js.map +1 -1
  80. package/dist/es6/client/idelivery-client.interface.d.ts +14 -14
  81. package/dist/es6/mappers/element.mapper.d.ts +4 -4
  82. package/dist/es6/mappers/element.mapper.js.map +1 -1
  83. package/dist/es6/mappers/item.mapper.d.ts +11 -11
  84. package/dist/es6/mappers/item.mapper.js +1 -1
  85. package/dist/es6/mappers/item.mapper.js.map +1 -1
  86. package/dist/es6/mappers/language.mapper.d.ts +2 -2
  87. package/dist/es6/mappers/language.mapper.js +5 -1
  88. package/dist/es6/mappers/language.mapper.js.map +1 -1
  89. package/dist/es6/mappers/taxonomy.mapper.d.ts +3 -3
  90. package/dist/es6/mappers/taxonomy.mapper.js.map +1 -1
  91. package/dist/es6/mappers/type.mapper.d.ts +3 -3
  92. package/dist/es6/mappers/type.mapper.js.map +1 -1
  93. package/dist/es6/models/content-type-models.d.ts +4 -4
  94. package/dist/es6/models/item-models.d.ts +15 -4
  95. package/dist/es6/models/language-models.d.ts +4 -4
  96. package/dist/es6/models/responses.d.ts +29 -29
  97. package/dist/es6/models/taxonomy-models.d.ts +4 -4
  98. package/dist/es6/query/common/base-item-listing-query.class.d.ts +4 -4
  99. package/dist/es6/query/common/base-item-listing-query.class.js.map +1 -1
  100. package/dist/es6/query/common/base-listing-query.class.d.ts +4 -4
  101. package/dist/es6/query/common/base-listing-query.class.js.map +1 -1
  102. package/dist/es6/query/common/base-query.class.d.ts +4 -4
  103. package/dist/es6/query/common/base-query.class.js.map +1 -1
  104. package/dist/es6/query/element/element-query.class.d.ts +4 -4
  105. package/dist/es6/query/element/element-query.class.js.map +1 -1
  106. package/dist/es6/query/item/multiple-items-query.class.d.ts +14 -14
  107. package/dist/es6/query/item/multiple-items-query.class.js +3 -1
  108. package/dist/es6/query/item/multiple-items-query.class.js.map +1 -1
  109. package/dist/es6/query/item/single-item-query.class.d.ts +9 -9
  110. package/dist/es6/query/item/single-item-query.class.js.map +1 -1
  111. package/dist/es6/query/items-feed/items-feed-query.class.d.ts +7 -7
  112. package/dist/es6/query/items-feed/items-feed-query.class.js +3 -1
  113. package/dist/es6/query/items-feed/items-feed-query.class.js.map +1 -1
  114. package/dist/es6/query/language/languages-query.class.d.ts +7 -7
  115. package/dist/es6/query/language/languages-query.class.js.map +1 -1
  116. package/dist/es6/query/sync/initialize-sync-query.class.d.ts +4 -4
  117. package/dist/es6/query/sync/initialize-sync-query.class.js.map +1 -1
  118. package/dist/es6/query/sync/sync-changes-query.class.d.ts +4 -4
  119. package/dist/es6/query/sync/sync-changes-query.class.js.map +1 -1
  120. package/dist/es6/query/taxonomy/taxonomies-query.class.d.ts +7 -7
  121. package/dist/es6/query/taxonomy/taxonomies-query.class.js.map +1 -1
  122. package/dist/es6/query/taxonomy/taxonomy-query.class.d.ts +6 -6
  123. package/dist/es6/query/taxonomy/taxonomy-query.class.js.map +1 -1
  124. package/dist/es6/query/type/multiple-type-query.class.d.ts +9 -9
  125. package/dist/es6/query/type/multiple-type-query.class.js.map +1 -1
  126. package/dist/es6/query/type/single-type-query.class.d.ts +6 -6
  127. package/dist/es6/query/type/single-type-query.class.js.map +1 -1
  128. package/dist/es6/sdk-info.generated.js +1 -1
  129. package/dist/es6/sdk-info.generated.js.map +1 -1
  130. package/dist/es6/services/base-delivery-query.service.d.ts +4 -4
  131. package/dist/es6/services/base-delivery-query.service.js.map +1 -1
  132. package/dist/es6/services/delivery-query.service.d.ts +11 -11
  133. package/dist/es6/services/delivery-query.service.js.map +1 -1
  134. package/dist/es6/services/mapping.service.d.ts +19 -19
  135. package/dist/es6/services/mapping.service.js +1 -1
  136. package/dist/es6/services/mapping.service.js.map +1 -1
  137. package/dist/es6/utilities/delivery-url.helper.d.ts +1 -1
  138. package/dist/es6/utilities/delivery-url.helper.js +3 -6
  139. package/dist/es6/utilities/delivery-url.helper.js.map +1 -1
  140. package/dist/es6/utilities/index.d.ts +0 -2
  141. package/dist/es6/utilities/index.js +0 -2
  142. package/dist/es6/utilities/index.js.map +1 -1
  143. package/dist/esnext/client/delivery-client.d.ts +14 -14
  144. package/dist/esnext/client/delivery-client.factory.d.ts +2 -1
  145. package/dist/esnext/client/delivery-client.factory.js.map +1 -1
  146. package/dist/esnext/client/delivery-client.js.map +1 -1
  147. package/dist/esnext/client/idelivery-client.interface.d.ts +14 -14
  148. package/dist/esnext/mappers/element.mapper.d.ts +4 -4
  149. package/dist/esnext/mappers/element.mapper.js.map +1 -1
  150. package/dist/esnext/mappers/item.mapper.d.ts +11 -11
  151. package/dist/esnext/mappers/item.mapper.js +1 -1
  152. package/dist/esnext/mappers/item.mapper.js.map +1 -1
  153. package/dist/esnext/mappers/language.mapper.d.ts +2 -2
  154. package/dist/esnext/mappers/language.mapper.js +5 -1
  155. package/dist/esnext/mappers/language.mapper.js.map +1 -1
  156. package/dist/esnext/mappers/taxonomy.mapper.d.ts +3 -3
  157. package/dist/esnext/mappers/taxonomy.mapper.js.map +1 -1
  158. package/dist/esnext/mappers/type.mapper.d.ts +3 -3
  159. package/dist/esnext/mappers/type.mapper.js.map +1 -1
  160. package/dist/esnext/models/content-type-models.d.ts +4 -4
  161. package/dist/esnext/models/item-models.d.ts +15 -4
  162. package/dist/esnext/models/language-models.d.ts +4 -4
  163. package/dist/esnext/models/responses.d.ts +29 -29
  164. package/dist/esnext/models/taxonomy-models.d.ts +4 -4
  165. package/dist/esnext/query/common/base-item-listing-query.class.d.ts +4 -4
  166. package/dist/esnext/query/common/base-item-listing-query.class.js.map +1 -1
  167. package/dist/esnext/query/common/base-listing-query.class.d.ts +4 -4
  168. package/dist/esnext/query/common/base-listing-query.class.js.map +1 -1
  169. package/dist/esnext/query/common/base-query.class.d.ts +4 -4
  170. package/dist/esnext/query/common/base-query.class.js.map +1 -1
  171. package/dist/esnext/query/element/element-query.class.d.ts +4 -4
  172. package/dist/esnext/query/element/element-query.class.js.map +1 -1
  173. package/dist/esnext/query/item/multiple-items-query.class.d.ts +14 -14
  174. package/dist/esnext/query/item/multiple-items-query.class.js +3 -1
  175. package/dist/esnext/query/item/multiple-items-query.class.js.map +1 -1
  176. package/dist/esnext/query/item/single-item-query.class.d.ts +9 -9
  177. package/dist/esnext/query/item/single-item-query.class.js.map +1 -1
  178. package/dist/esnext/query/items-feed/items-feed-query.class.d.ts +7 -7
  179. package/dist/esnext/query/items-feed/items-feed-query.class.js +3 -1
  180. package/dist/esnext/query/items-feed/items-feed-query.class.js.map +1 -1
  181. package/dist/esnext/query/language/languages-query.class.d.ts +7 -7
  182. package/dist/esnext/query/language/languages-query.class.js.map +1 -1
  183. package/dist/esnext/query/sync/initialize-sync-query.class.d.ts +4 -4
  184. package/dist/esnext/query/sync/initialize-sync-query.class.js.map +1 -1
  185. package/dist/esnext/query/sync/sync-changes-query.class.d.ts +4 -4
  186. package/dist/esnext/query/sync/sync-changes-query.class.js.map +1 -1
  187. package/dist/esnext/query/taxonomy/taxonomies-query.class.d.ts +7 -7
  188. package/dist/esnext/query/taxonomy/taxonomies-query.class.js.map +1 -1
  189. package/dist/esnext/query/taxonomy/taxonomy-query.class.d.ts +6 -6
  190. package/dist/esnext/query/taxonomy/taxonomy-query.class.js.map +1 -1
  191. package/dist/esnext/query/type/multiple-type-query.class.d.ts +9 -9
  192. package/dist/esnext/query/type/multiple-type-query.class.js.map +1 -1
  193. package/dist/esnext/query/type/single-type-query.class.d.ts +6 -6
  194. package/dist/esnext/query/type/single-type-query.class.js.map +1 -1
  195. package/dist/esnext/sdk-info.generated.js +1 -1
  196. package/dist/esnext/sdk-info.generated.js.map +1 -1
  197. package/dist/esnext/services/base-delivery-query.service.d.ts +4 -4
  198. package/dist/esnext/services/base-delivery-query.service.js.map +1 -1
  199. package/dist/esnext/services/delivery-query.service.d.ts +11 -11
  200. package/dist/esnext/services/delivery-query.service.js.map +1 -1
  201. package/dist/esnext/services/mapping.service.d.ts +19 -19
  202. package/dist/esnext/services/mapping.service.js +1 -1
  203. package/dist/esnext/services/mapping.service.js.map +1 -1
  204. package/dist/esnext/utilities/delivery-url.helper.d.ts +1 -1
  205. package/dist/esnext/utilities/delivery-url.helper.js +3 -6
  206. package/dist/esnext/utilities/delivery-url.helper.js.map +1 -1
  207. package/dist/esnext/utilities/index.d.ts +0 -2
  208. package/dist/esnext/utilities/index.js +0 -2
  209. package/dist/esnext/utilities/index.js.map +1 -1
  210. package/lib/client/delivery-client.factory.ts +4 -1
  211. package/lib/client/delivery-client.ts +30 -20
  212. package/lib/client/idelivery-client.interface.ts +25 -14
  213. package/lib/mappers/element.mapper.ts +14 -14
  214. package/lib/mappers/item.mapper.ts +29 -20
  215. package/lib/mappers/language.mapper.ts +8 -4
  216. package/lib/mappers/taxonomy.mapper.ts +6 -6
  217. package/lib/mappers/type.mapper.ts +6 -6
  218. package/lib/models/content-type-models.ts +4 -4
  219. package/lib/models/item-models.ts +23 -4
  220. package/lib/models/language-models.ts +4 -4
  221. package/lib/models/responses.ts +59 -38
  222. package/lib/models/taxonomy-models.ts +4 -4
  223. package/lib/query/common/base-item-listing-query.class.ts +4 -2
  224. package/lib/query/common/base-listing-query.class.ts +5 -3
  225. package/lib/query/common/base-query.class.ts +15 -3
  226. package/lib/query/element/element-query.class.ts +5 -8
  227. package/lib/query/item/multiple-items-query.class.ts +37 -18
  228. package/lib/query/item/single-item-query.class.ts +23 -9
  229. package/lib/query/items-feed/items-feed-query.class.ts +23 -11
  230. package/lib/query/language/languages-query.class.ts +16 -14
  231. package/lib/query/sync/initialize-sync-query.class.ts +4 -2
  232. package/lib/query/sync/sync-changes-query.class.ts +4 -3
  233. package/lib/query/taxonomy/taxonomies-query.class.ts +10 -14
  234. package/lib/query/taxonomy/taxonomy-query.class.ts +10 -6
  235. package/lib/query/type/multiple-type-query.class.ts +18 -11
  236. package/lib/query/type/single-type-query.class.ts +10 -6
  237. package/lib/sdk-info.generated.ts +1 -1
  238. package/lib/services/base-delivery-query.service.ts +4 -3
  239. package/lib/services/delivery-query.service.ts +52 -15
  240. package/lib/services/mapping.service.ts +50 -30
  241. package/lib/utilities/delivery-url.helper.ts +3 -9
  242. package/lib/utilities/index.ts +0 -2
  243. package/package.json +15 -19
  244. package/dist/cjs/utilities/guid.helper.d.ts +0 -4
  245. package/dist/cjs/utilities/guid.helper.js +0 -12
  246. package/dist/cjs/utilities/guid.helper.js.map +0 -1
  247. package/dist/cjs/utilities/linked-items.helper.d.ts +0 -5
  248. package/dist/cjs/utilities/linked-items.helper.js +0 -15
  249. package/dist/cjs/utilities/linked-items.helper.js.map +0 -1
  250. package/dist/es6/utilities/guid.helper.d.ts +0 -4
  251. package/dist/es6/utilities/guid.helper.js +0 -8
  252. package/dist/es6/utilities/guid.helper.js.map +0 -1
  253. package/dist/es6/utilities/linked-items.helper.d.ts +0 -5
  254. package/dist/es6/utilities/linked-items.helper.js +0 -11
  255. package/dist/es6/utilities/linked-items.helper.js.map +0 -1
  256. package/dist/esnext/utilities/guid.helper.d.ts +0 -4
  257. package/dist/esnext/utilities/guid.helper.js +0 -8
  258. package/dist/esnext/utilities/guid.helper.js.map +0 -1
  259. package/dist/esnext/utilities/linked-items.helper.d.ts +0 -5
  260. package/dist/esnext/utilities/linked-items.helper.js +0 -11
  261. package/dist/esnext/utilities/linked-items.helper.js.map +0 -1
  262. package/lib/utilities/guid.helper.ts +0 -9
  263. package/lib/utilities/linked-items.helper.ts +0 -16
@@ -1,20 +1,24 @@
1
1
  import { Contracts } from '../contracts';
2
2
  import { ILanguage } from '../models';
3
3
 
4
- export class LanguageMapper {
5
- mapMultipleLanguages(response: Contracts.IListLanguagesContract): ILanguage[] {
4
+ export class LanguageMapper<TLanguageCodenames extends string> {
5
+ mapMultipleLanguages(response: Contracts.IListLanguagesContract): ILanguage<TLanguageCodenames>[] {
6
6
  return response.languages.map((language) => {
7
7
  return this.mapLanguage(language);
8
8
  });
9
9
  }
10
10
 
11
- private mapLanguage(language: Contracts.ILanguageContract): ILanguage {
11
+ private mapLanguage(language: Contracts.ILanguageContract): ILanguage<TLanguageCodenames> {
12
12
  if (!language) {
13
13
  throw Error(`Cannot map language`);
14
14
  }
15
15
 
16
16
  return {
17
- system: language.system
17
+ system: {
18
+ codename: language.system.codename as TLanguageCodenames,
19
+ id: language.system.id,
20
+ name: language.system.name
21
+ }
18
22
  };
19
23
  }
20
24
  }
@@ -1,11 +1,11 @@
1
1
  import { Contracts } from '../contracts';
2
2
  import { ITaxonomyGroup, ITaxonomySystemAttributes, ITaxonomyTerms } from '../models';
3
3
 
4
- export class TaxonomyMapper {
4
+ export class TaxonomyMapper<TaxonomyCodenames extends string> {
5
5
  mapTaxonomy(
6
6
  taxonomySystem: Contracts.ITaxonomySystemAttributesContract,
7
7
  taxonomyTerms: Contracts.ITaxonomyTermsContract[]
8
- ): ITaxonomyGroup {
8
+ ): ITaxonomyGroup<TaxonomyCodenames> {
9
9
  if (!taxonomySystem) {
10
10
  throw Error(`Cannot map taxonomy due to missing 'system' property`);
11
11
  }
@@ -18,9 +18,9 @@ export class TaxonomyMapper {
18
18
  throw Error(`Cannot map terms because no terms array was provided`);
19
19
  }
20
20
 
21
- const mappedSystemAttributes: ITaxonomySystemAttributes = {
21
+ const mappedSystemAttributes: ITaxonomySystemAttributes<TaxonomyCodenames> = {
22
22
  name: taxonomySystem.name,
23
- codename: taxonomySystem.codename,
23
+ codename: taxonomySystem.codename as TaxonomyCodenames,
24
24
  id: taxonomySystem.id,
25
25
  lastModified: taxonomySystem.last_modified
26
26
  };
@@ -33,7 +33,7 @@ export class TaxonomyMapper {
33
33
  };
34
34
  }
35
35
 
36
- mapTaxonomies(taxonomies: Contracts.ITaxonomyGroupContract[]): ITaxonomyGroup[] {
36
+ mapTaxonomies(taxonomies: Contracts.ITaxonomyGroupContract[]): ITaxonomyGroup<TaxonomyCodenames>[] {
37
37
  if (!taxonomies) {
38
38
  throw Error(`Cannot map taxonomy due to missing 'taxonomies' property`);
39
39
  }
@@ -42,7 +42,7 @@ export class TaxonomyMapper {
42
42
  throw Error(`Cannot map taxonomies because the 'taxonomies' property is not an array `);
43
43
  }
44
44
 
45
- const mappedTaxonomies: ITaxonomyGroup[] = [];
45
+ const mappedTaxonomies: ITaxonomyGroup<TaxonomyCodenames>[] = [];
46
46
 
47
47
  taxonomies.forEach((taxonomy) => {
48
48
  mappedTaxonomies.push(this.mapTaxonomy(taxonomy.system, taxonomy.terms));
@@ -1,18 +1,18 @@
1
1
  import { Contracts } from '../contracts';
2
2
  import { IContentType, IContentTypeSystemAttributes, IGenericElement } from '../models';
3
3
 
4
- export class TypeMapper {
5
- mapSingleType(response: Contracts.IViewContentTypeContract): IContentType {
4
+ export class TypeMapper<TContentTypeCodenames extends string> {
5
+ mapSingleType(response: Contracts.IViewContentTypeContract): IContentType<TContentTypeCodenames> {
6
6
  return this.mapType(response);
7
7
  }
8
8
 
9
- mapMultipleTypes(response: Contracts.IListContentTypeContract): IContentType[] {
9
+ mapMultipleTypes(response: Contracts.IListContentTypeContract): IContentType<TContentTypeCodenames>[] {
10
10
  return response.types.map((type) => {
11
11
  return this.mapType(type);
12
12
  });
13
13
  }
14
14
 
15
- private mapType(type: Contracts.IContentTypeContract): IContentType {
15
+ private mapType(type: Contracts.IContentTypeContract): IContentType<TContentTypeCodenames> {
16
16
  if (!type) {
17
17
  throw Error(`Cannot map type`);
18
18
  }
@@ -21,8 +21,8 @@ export class TypeMapper {
21
21
  throw Error(`Cannot map type elements`);
22
22
  }
23
23
 
24
- const system: IContentTypeSystemAttributes = {
25
- codename: type.system.codename,
24
+ const system: IContentTypeSystemAttributes<TContentTypeCodenames> = {
25
+ codename: type.system.codename as TContentTypeCodenames,
26
26
  id: type.system.id,
27
27
  name: type.system.name,
28
28
  lastModified: type.system.last_modified
@@ -1,7 +1,7 @@
1
1
  import { IQueryConfig } from './common/common-models';
2
2
  import { IGenericElement } from './element-models';
3
3
 
4
- export interface IContentTypeSystemAttributes {
4
+ export interface IContentTypeSystemAttributes<TContentTypeCodename extends string> {
5
5
  /**
6
6
  * Id of the type
7
7
  */
@@ -15,7 +15,7 @@ export interface IContentTypeSystemAttributes {
15
15
  /**
16
16
  * Codename of the type
17
17
  */
18
- codename: string;
18
+ codename: TContentTypeCodename;
19
19
 
20
20
  /**
21
21
  * Date of last modification
@@ -23,11 +23,11 @@ export interface IContentTypeSystemAttributes {
23
23
  lastModified: Date;
24
24
  }
25
25
 
26
- export interface IContentType {
26
+ export interface IContentType<TContentTypeCodename extends string> {
27
27
  /**
28
28
  * Content type system attributes
29
29
  */
30
- system: IContentTypeSystemAttributes;
30
+ system: IContentTypeSystemAttributes<TContentTypeCodename>;
31
31
 
32
32
  /**
33
33
  * Elements (elements) assigned to content type
@@ -2,9 +2,12 @@ import { Contracts } from '../contracts';
2
2
  import { ElementModels } from '../elements/element-models';
3
3
  import { IQueryConfig } from './common/common-models';
4
4
 
5
- export interface IMapElementsResult<TContentItem extends IContentItem = IContentItem> {
5
+ export interface IMapElementsResult<
6
+ TContentItem extends IContentItem = IContentItem,
7
+ TLinkedItemType extends IContentItem = IContentItem
8
+ > {
6
9
  item: TContentItem;
7
- processedItems: IContentItemsContainer;
10
+ processedItems: IContentItemsContainer<TLinkedItemType>;
8
11
  preparedItems: IContentItemWithRawDataContainer;
9
12
  processingStartedForCodenames: string[];
10
13
  }
@@ -83,6 +86,11 @@ export type IContentItemElements<TElementCodenames extends string = string> = Re
83
86
  ContentItemElementsIndexer
84
87
  >;
85
88
 
89
+ export type Snippet<
90
+ TElementCodenames extends string,
91
+ TElements extends IContentItemElements<TElementCodenames>
92
+ > = TElements;
93
+
86
94
  export interface IContentItem<
87
95
  TElements extends IContentItemElements<TTypeElementCodenames> = IContentItemElements,
88
96
  TTypeCodename extends string = string,
@@ -140,8 +148,8 @@ export interface IContentItemWithRawDataContainer {
140
148
  [key: string]: IContentItemWithRawElements;
141
149
  }
142
150
 
143
- export interface IContentItemsContainer {
144
- [key: string]: IContentItem;
151
+ export interface IContentItemsContainer<TContentItem extends IContentItem> {
152
+ [key: string]: TContentItem | undefined;
145
153
  }
146
154
 
147
155
  export interface IRichTextImage {
@@ -157,3 +165,14 @@ export interface IItemQueryConfig extends IQueryConfig {}
157
165
  export interface IItemFeedQueryConfig extends IQueryConfig {
158
166
  disableItemLinking?: boolean;
159
167
  }
168
+
169
+ export type ClientTypes = {
170
+ readonly contentItemType: IContentItem;
171
+ readonly contentTypeCodenames: string;
172
+ readonly workflowCodenames: string;
173
+ readonly worfklowStepCodenames: string;
174
+ readonly collectionCodenames: string;
175
+ readonly taxonomyCodenames: string;
176
+ readonly languageCodenames: string;
177
+ readonly elementCodenames: string;
178
+ };
@@ -1,13 +1,13 @@
1
1
  import { IQueryConfig } from './common';
2
2
 
3
- export interface ILanguageSystem {
3
+ export interface ILanguageSystem<TLanguageCodenames extends string> {
4
4
  id: string;
5
5
  name: string;
6
- codename: string;
6
+ codename: TLanguageCodenames;
7
7
  }
8
8
 
9
- export interface ILanguage {
10
- system: ILanguageSystem;
9
+ export interface ILanguage<TLanguageCodenames extends string> {
10
+ system: ILanguageSystem<TLanguageCodenames>;
11
11
  }
12
12
 
13
13
  export interface ILanguagesQueryConfig extends IQueryConfig {
@@ -10,61 +10,76 @@ import { IContentItemDelta } from './sync-models';
10
10
  import { ITaxonomyGroup } from './taxonomy-models';
11
11
 
12
12
  export namespace Responses {
13
- export interface IListContentTypesResponse extends IKontentListResponse {
14
- items: IContentType[];
13
+ export interface IListContentTypesResponse<TContentTypeCodename extends string> extends IKontentListResponse {
14
+ items: IContentType<TContentTypeCodename>[];
15
15
  pagination: IPagination;
16
16
  }
17
17
 
18
- export interface IListContentTypesAllResponse extends IKontentListAllResponse {
19
- items: IContentType[];
20
- responses: IDeliveryNetworkResponse<IListContentTypesResponse, Contracts.IListContentTypeContract>[];
18
+ export interface IListContentTypesAllResponse<TContentTypeCodename extends string> extends IKontentListAllResponse {
19
+ items: IContentType<TContentTypeCodename>[];
20
+ responses: IDeliveryNetworkResponse<
21
+ IListContentTypesResponse<TContentTypeCodename>,
22
+ Contracts.IListContentTypeContract
23
+ >[];
21
24
  }
22
25
 
23
- export interface IViewContentTypeResponse extends IKontentResponse {
24
- type: IContentType;
26
+ export interface IViewContentTypeResponse<TContentTypeCodename extends string> extends IKontentResponse {
27
+ type: IContentType<TContentTypeCodename>;
25
28
  }
26
29
 
27
-
28
30
  export interface IViewContentTypeElementResponse extends IKontentResponse {
29
- codename?: string,
30
- type: string,
31
+ codename?: string;
32
+ type: string;
31
33
  name: string;
32
- taxonomyGroup?: string
34
+ taxonomyGroup?: string;
33
35
  options: IGenericElementOption[];
34
36
  }
35
37
 
36
- export interface IListItemsFeedResponse<TContentItem extends IContentItem = IContentItem>
37
- extends IKontentListResponse {
38
+ export interface IListItemsFeedResponse<
39
+ TContentItem extends IContentItem = IContentItem,
40
+ TLinkedItemType extends IContentItem = IContentItem
41
+ > extends IKontentListResponse {
38
42
  items: TContentItem[];
39
- linkedItems: IContentItemsContainer;
43
+ linkedItems: IContentItemsContainer<TLinkedItemType>;
40
44
  }
41
45
 
42
- export interface IListItemsFeedAllResponse<TContentItem extends IContentItem = IContentItem>
43
- extends IKontentListAllResponse {
46
+ export interface IListItemsFeedAllResponse<
47
+ TContentItem extends IContentItem = IContentItem,
48
+ TLinkedItemType extends IContentItem = IContentItem
49
+ > extends IKontentListAllResponse {
44
50
  items: TContentItem[];
45
- responses: IDeliveryNetworkResponse<IListItemsFeedResponse<TContentItem>, Contracts.IItemsFeedContract>[];
51
+ responses: IDeliveryNetworkResponse<
52
+ IListItemsFeedResponse<TContentItem, TLinkedItemType>,
53
+ Contracts.IItemsFeedContract
54
+ >[];
46
55
  }
47
56
 
48
- export interface IListContentItemsResponse<TContentItem extends IContentItem = IContentItem>
49
- extends IKontentListResponse {
57
+ export interface IListContentItemsResponse<
58
+ TContentItem extends IContentItem = IContentItem,
59
+ TLinkedItemType extends IContentItem = IContentItem
60
+ > extends IKontentListResponse {
50
61
  items: TContentItem[];
51
62
  pagination: IPagination;
52
- linkedItems: IContentItemsContainer;
63
+ linkedItems: IContentItemsContainer<TLinkedItemType>;
53
64
  }
54
65
 
55
- export interface IListContentItemsAllResponse<TContentItem extends IContentItem = IContentItem>
56
- extends IKontentListAllResponse {
66
+ export interface IListContentItemsAllResponse<
67
+ TContentItem extends IContentItem = IContentItem,
68
+ TLinkedItemType extends IContentItem = IContentItem
69
+ > extends IKontentListAllResponse {
57
70
  items: TContentItem[];
58
71
  responses: IDeliveryNetworkResponse<
59
- IListContentItemsResponse<TContentItem>,
72
+ IListContentItemsResponse<TContentItem, TLinkedItemType>,
60
73
  Contracts.IListContentItemsContract
61
74
  >[];
62
75
  }
63
76
 
64
- export interface IViewContentItemResponse<TContentItem extends IContentItem = IContentItem>
65
- extends IKontentResponse {
77
+ export interface IViewContentItemResponse<
78
+ TContentItem extends IContentItem = IContentItem,
79
+ TLinkedItemType extends IContentItem = IContentItem
80
+ > extends IKontentResponse {
66
81
  item: TContentItem;
67
- linkedItems: IContentItemsContainer;
82
+ linkedItems: IContentItemsContainer<TLinkedItemType>;
68
83
  }
69
84
 
70
85
  export interface IInitializeSyncResponse extends IKontentResponse {
@@ -80,27 +95,33 @@ export namespace Responses {
80
95
  responses: IDeliveryNetworkResponse<ISyncChangesResponse, Contracts.ISyncChangesContract>[];
81
96
  }
82
97
 
83
- export interface IListLanguagesResponse extends IKontentListResponse {
84
- items: ILanguage[];
98
+ export interface IListLanguagesResponse<TLanguageCodenames extends string> extends IKontentListResponse {
99
+ items: ILanguage<TLanguageCodenames>[];
85
100
  pagination: IPagination;
86
101
  }
87
102
 
88
- export interface IListLanguagesAllResponse extends IKontentListAllResponse {
89
- items: ILanguage[];
90
- responses: IDeliveryNetworkResponse<IListLanguagesResponse, Contracts.IListLanguagesContract>[];
103
+ export interface IListLanguagesAllResponse<TLanguageCodenames extends string> extends IKontentListAllResponse {
104
+ items: ILanguage<TLanguageCodenames>[];
105
+ responses: IDeliveryNetworkResponse<
106
+ IListLanguagesResponse<TLanguageCodenames>,
107
+ Contracts.IListLanguagesContract
108
+ >[];
91
109
  }
92
110
 
93
- export interface IViewTaxonomyResponse extends IKontentResponse {
94
- taxonomy: ITaxonomyGroup;
111
+ export interface IViewTaxonomyResponse<TaxonomyCodename extends string> extends IKontentResponse {
112
+ taxonomy: ITaxonomyGroup<TaxonomyCodename>;
95
113
  }
96
114
 
97
- export interface IListTaxonomiesResponse extends IKontentListResponse {
98
- items: ITaxonomyGroup[];
115
+ export interface IListTaxonomiesResponse<TaxonomyCodename extends string> extends IKontentListResponse {
116
+ items: ITaxonomyGroup<TaxonomyCodename>[];
99
117
  pagination: IPagination;
100
118
  }
101
119
 
102
- export interface IListTaxonomiesAllResponse extends IKontentListAllResponse {
103
- items: ITaxonomyGroup[];
104
- responses: IDeliveryNetworkResponse<IListTaxonomiesResponse, Contracts.IListTaxonomyGroupsContract>[];
120
+ export interface IListTaxonomiesAllResponse<TaxonomyCodename extends string> extends IKontentListAllResponse {
121
+ items: ITaxonomyGroup<TaxonomyCodename>[];
122
+ responses: IDeliveryNetworkResponse<
123
+ IListTaxonomiesResponse<TaxonomyCodename>,
124
+ Contracts.IListTaxonomyGroupsContract
125
+ >[];
105
126
  }
106
127
  }
@@ -1,14 +1,14 @@
1
1
  import { IQueryConfig } from './common/common-models';
2
2
 
3
- export interface ITaxonomyGroup {
4
- system: ITaxonomySystemAttributes;
3
+ export interface ITaxonomyGroup<TaxonomyCodename extends string> {
4
+ system: ITaxonomySystemAttributes<TaxonomyCodename>;
5
5
  terms: ITaxonomyTerms[];
6
6
  }
7
7
 
8
- export interface ITaxonomySystemAttributes {
8
+ export interface ITaxonomySystemAttributes<TaxonomyCodename extends string> {
9
9
  id: string;
10
10
  name: string;
11
- codename: string;
11
+ codename: TaxonomyCodename;
12
12
  lastModified: Date;
13
13
  }
14
14
 
@@ -1,5 +1,6 @@
1
1
  import { IDeliveryClientConfig } from '../../config';
2
2
  import {
3
+ ClientTypes,
3
4
  Filters,
4
5
  IKontentListAllResponse,
5
6
  IKontentListResponse,
@@ -11,12 +12,13 @@ import { QueryService } from '../../services';
11
12
  import { BaseListingQuery } from './base-listing-query.class';
12
13
 
13
14
  export abstract class BaseItemListingQuery<
15
+ TClientTypes extends ClientTypes,
14
16
  TResponse extends IKontentListResponse,
15
17
  TAllResponse extends IKontentListAllResponse,
16
18
  TQueryConfig extends IQueryConfig,
17
19
  TContract
18
- > extends BaseListingQuery<TResponse, TAllResponse, TQueryConfig, TContract> {
19
- constructor(protected config: IDeliveryClientConfig, protected queryService: QueryService) {
20
+ > extends BaseListingQuery<TClientTypes, TResponse, TAllResponse, TQueryConfig, TContract> {
21
+ constructor(protected config: IDeliveryClientConfig, protected queryService: QueryService<TClientTypes>) {
20
22
  super(config, queryService);
21
23
  }
22
24
 
@@ -8,18 +8,20 @@ import {
8
8
  IDeliveryNetworkResponse,
9
9
  IListAllQueryConfig,
10
10
  IQueryConfig,
11
- IContentItem
11
+ IContentItem,
12
+ ClientTypes
12
13
  } from '../../models';
13
14
  import { QueryService } from '../../services';
14
15
  import { BaseQuery } from './base-query.class';
15
16
 
16
17
  export abstract class BaseListingQuery<
18
+ TClientTypes extends ClientTypes,
17
19
  TResponse extends IKontentListResponse,
18
20
  TAllResponse extends IKontentListAllResponse,
19
21
  TQueryConfig extends IQueryConfig,
20
22
  TContract
21
- > extends BaseQuery<TResponse, TQueryConfig, TContract> {
22
- constructor(protected config: IDeliveryClientConfig, protected queryService: QueryService) {
23
+ > extends BaseQuery<TClientTypes, TResponse, TQueryConfig, TContract> {
24
+ constructor(protected config: IDeliveryClientConfig, protected queryService: QueryService<TClientTypes>) {
23
25
  super(config, queryService);
24
26
  }
25
27
 
@@ -1,14 +1,26 @@
1
1
  import { IHeader, IQueryParameter } from '@kontent-ai/core-sdk';
2
2
 
3
3
  import { IDeliveryClientConfig } from '../../config';
4
- import { Filters, IDeliveryNetworkResponse, IKontentResponse, IQueryConfig, Parameters } from '../../models';
4
+ import {
5
+ ClientTypes,
6
+ Filters,
7
+ IDeliveryNetworkResponse,
8
+ IKontentResponse,
9
+ IQueryConfig,
10
+ Parameters
11
+ } from '../../models';
5
12
  import { QueryService } from '../../services';
6
13
 
7
- export abstract class BaseQuery<TResponse extends IKontentResponse, TQueryConfig extends IQueryConfig, TContract> {
14
+ export abstract class BaseQuery<
15
+ TClientTypes extends ClientTypes,
16
+ TResponse extends IKontentResponse,
17
+ TQueryConfig extends IQueryConfig,
18
+ TContract
19
+ > {
8
20
  protected parameters: IQueryParameter[] = [];
9
21
  protected customUrl?: string;
10
22
  protected abstract _queryConfig: TQueryConfig;
11
- constructor(protected config: IDeliveryClientConfig, protected queryService: QueryService) {}
23
+ constructor(protected config: IDeliveryClientConfig, protected queryService: QueryService<TClientTypes>) {}
12
24
 
13
25
  /**
14
26
  * Gets URL of the query
@@ -1,20 +1,20 @@
1
1
  import { Contracts } from '../../contracts';
2
2
  import { IDeliveryClientConfig } from '../../config';
3
- import { Responses, IElementQueryConfig, IDeliveryNetworkResponse } from '../../models';
3
+ import { Responses, IElementQueryConfig, IDeliveryNetworkResponse, ClientTypes } from '../../models';
4
4
  import { QueryService } from '../../services';
5
5
  import { BaseQuery } from '../common/base-query.class';
6
6
 
7
- export class ElementQuery extends BaseQuery<
7
+ export class ElementQuery<TClientTypes extends ClientTypes> extends BaseQuery<
8
+ TClientTypes,
8
9
  Responses.IViewContentTypeElementResponse,
9
10
  IElementQueryConfig,
10
11
  Contracts.IViewContentTypeElementContract
11
12
  > {
12
-
13
13
  protected _queryConfig: IElementQueryConfig = {};
14
14
 
15
15
  constructor(
16
16
  protected config: IDeliveryClientConfig,
17
- protected queryService: QueryService,
17
+ protected queryService: QueryService<TClientTypes>,
18
18
  private typeCodename: string,
19
19
  private elementCodename: string
20
20
  ) {
@@ -30,10 +30,7 @@ export class ElementQuery extends BaseQuery<
30
30
  }
31
31
 
32
32
  toPromise(): Promise<
33
- IDeliveryNetworkResponse<
34
- Responses.IViewContentTypeElementResponse,
35
- Contracts.IViewContentTypeElementContract
36
- >
33
+ IDeliveryNetworkResponse<Responses.IViewContentTypeElementResponse, Contracts.IViewContentTypeElementContract>
37
34
  > {
38
35
  return this.queryService.getElementAsync(this.getUrl(), this._queryConfig ?? {});
39
36
  }
@@ -1,18 +1,30 @@
1
1
  import { Contracts } from '../../contracts';
2
2
  import { IDeliveryClientConfig } from '../../config';
3
- import { Filters, IContentItem, IItemQueryConfig, IDeliveryNetworkResponse, Responses, Parameters } from '../../models';
3
+ import {
4
+ Filters,
5
+ IContentItem,
6
+ IItemQueryConfig,
7
+ IDeliveryNetworkResponse,
8
+ Responses,
9
+ Parameters,
10
+ ClientTypes
11
+ } from '../../models';
4
12
  import { QueryService } from '../../services';
5
13
  import { BaseItemListingQuery } from '../common/base-item-listing-query.class';
6
14
 
7
- export class MultipleItemsQuery<TContentItem extends IContentItem = IContentItem> extends BaseItemListingQuery<
8
- Responses.IListContentItemsResponse<TContentItem>,
9
- Responses.IListContentItemsAllResponse<TContentItem>,
15
+ export class MultipleItemsQuery<
16
+ TClientTypes extends ClientTypes,
17
+ TContentItem extends IContentItem = IContentItem
18
+ > extends BaseItemListingQuery<
19
+ TClientTypes,
20
+ Responses.IListContentItemsResponse<TContentItem, TClientTypes['contentItemType']>,
21
+ Responses.IListContentItemsAllResponse<TContentItem, TClientTypes['contentItemType']>,
10
22
  IItemQueryConfig,
11
23
  Contracts.IListContentItemsContract
12
24
  > {
13
25
  protected _queryConfig: IItemQueryConfig = {};
14
26
 
15
- constructor(protected config: IDeliveryClientConfig, protected queryService: QueryService) {
27
+ constructor(protected config: IDeliveryClientConfig, protected queryService: QueryService<TClientTypes>) {
16
28
  super(config, queryService);
17
29
  }
18
30
 
@@ -30,7 +42,7 @@ export class MultipleItemsQuery<TContentItem extends IContentItem = IContentItem
30
42
  * Gets only item of given type
31
43
  * @param type Codename of type to get
32
44
  */
33
- type(type: string): this {
45
+ type(type: TClientTypes['contentTypeCodenames']): this {
34
46
  this.parameters.push(new Filters.TypeFilter(type));
35
47
  return this;
36
48
  }
@@ -40,7 +52,7 @@ export class MultipleItemsQuery<TContentItem extends IContentItem = IContentItem
40
52
  * I.e. get items of either 'Actor' or 'Movie' type
41
53
  * @param types Types to get
42
54
  */
43
- types(types: string[]): this {
55
+ types(types: TClientTypes['contentTypeCodenames'][]): this {
44
56
  this.parameters.push(new Filters.TypeFilter(types));
45
57
  return this;
46
58
  }
@@ -49,7 +61,7 @@ export class MultipleItemsQuery<TContentItem extends IContentItem = IContentItem
49
61
  * Gets only item from given collection
50
62
  * @param collection Codename of collection to get
51
63
  */
52
- collection(collection: string): this {
64
+ collection(collection: TClientTypes['collectionCodenames']): this {
53
65
  this.parameters.push(new Filters.CollectionFilter(collection));
54
66
  return this;
55
67
  }
@@ -59,7 +71,7 @@ export class MultipleItemsQuery<TContentItem extends IContentItem = IContentItem
59
71
  * I.e. get items of either 'default' or 'christmas-campaign' collection
60
72
  * @param collections Collections to get
61
73
  */
62
- collections(collections: string[]): this {
74
+ collections(collections: TClientTypes['collectionCodenames'][]): this {
63
75
  this.parameters.push(new Filters.CollectionFilter(collections));
64
76
  return this;
65
77
  }
@@ -77,7 +89,7 @@ export class MultipleItemsQuery<TContentItem extends IContentItem = IContentItem
77
89
  * Language codename
78
90
  * @param languageCodename Codename of the language
79
91
  */
80
- languageParameter(languageCodename: string): this {
92
+ languageParameter(languageCodename: TClientTypes['languageCodenames']): this {
81
93
  this.parameters.push(new Parameters.LanguageParameter(languageCodename));
82
94
  return this;
83
95
  }
@@ -86,7 +98,7 @@ export class MultipleItemsQuery<TContentItem extends IContentItem = IContentItem
86
98
  * Used to limit the number of elements returned by query.
87
99
  * @param elementCodenames Array of element codenames to fetch
88
100
  */
89
- elementsParameter(elementCodenames: string[]): this {
101
+ elementsParameter(elementCodenames: TClientTypes['elementCodenames'][]): this {
90
102
  this.parameters.push(new Parameters.ElementsParameter(elementCodenames));
91
103
  return this;
92
104
  }
@@ -95,13 +107,16 @@ export class MultipleItemsQuery<TContentItem extends IContentItem = IContentItem
95
107
  * Used to exclude elements returned by query.
96
108
  * @param elementCodenames Array of element codenames to exclude
97
109
  */
98
- excludeElementsParameter(elementCodenames: string[]): this {
110
+ excludeElementsParameter(elementCodenames: TClientTypes['elementCodenames'][]): this {
99
111
  this.parameters.push(new Parameters.ExcludeElementsParameter(elementCodenames));
100
112
  return this;
101
113
  }
102
114
 
103
115
  toPromise(): Promise<
104
- IDeliveryNetworkResponse<Responses.IListContentItemsResponse<TContentItem>, Contracts.IListContentItemsContract>
116
+ IDeliveryNetworkResponse<
117
+ Responses.IListContentItemsResponse<TContentItem, TClientTypes['contentItemType']>,
118
+ Contracts.IListContentItemsContract
119
+ >
105
120
  > {
106
121
  return this.queryService.getMultipleItems(this.getUrl(), this._queryConfig ?? {});
107
122
  }
@@ -118,17 +133,17 @@ export class MultipleItemsQuery<TContentItem extends IContentItem = IContentItem
118
133
  return super.resolveUrlInternal(action);
119
134
  }
120
135
 
121
- map(json: any): Responses.IListContentItemsResponse<TContentItem> {
136
+ map(json: any): Responses.IListContentItemsResponse<TContentItem, TClientTypes['contentItemType']> {
122
137
  return this.queryService.mappingService.listContentItemsResponse(json);
123
138
  }
124
139
 
125
140
  protected allResponseFactory(
126
141
  items: any[],
127
142
  responses: IDeliveryNetworkResponse<
128
- Responses.IListContentItemsResponse<TContentItem>,
143
+ Responses.IListContentItemsResponse<TContentItem, TClientTypes['contentItemType']>,
129
144
  Contracts.IListContentItemsContract
130
145
  >[]
131
- ): Responses.IListContentItemsAllResponse<TContentItem> {
146
+ ): Responses.IListContentItemsAllResponse<TContentItem, TClientTypes['contentItemType']> {
132
147
  this.linkItems(items, responses);
133
148
 
134
149
  return {
@@ -140,7 +155,7 @@ export class MultipleItemsQuery<TContentItem extends IContentItem = IContentItem
140
155
  private linkItems(
141
156
  items: IContentItem[],
142
157
  responses: IDeliveryNetworkResponse<
143
- Responses.IListContentItemsResponse<TContentItem>,
158
+ Responses.IListContentItemsResponse<TContentItem, TClientTypes['contentItemType']>,
144
159
  Contracts.IListContentItemsContract
145
160
  >[]
146
161
  ): void {
@@ -149,7 +164,11 @@ export class MultipleItemsQuery<TContentItem extends IContentItem = IContentItem
149
164
 
150
165
  // process linked items (modular_content part of the response)
151
166
  for (const response of responses) {
152
- allContentItems.push(...Object.values(response.data.linkedItems));
167
+ allContentItems.push(
168
+ ...Object.values(response.data.linkedItems)
169
+ .filter((m) => m !== undefined)
170
+ .map((m) => m as TClientTypes['contentItemType'])
171
+ );
153
172
  }
154
173
 
155
174
  // add standard items