@kontent-ai/delivery-sdk 16.4.3 → 16.4.4

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 (83) hide show
  1. package/.npmignore +15 -15
  2. package/LICENSE.md +9 -9
  3. package/dist/bundles/kontent-delivery.umd.js +5077 -4620
  4. package/dist/bundles/kontent-delivery.umd.js.map +1 -1
  5. package/dist/bundles/kontent-delivery.umd.min.js +1 -1
  6. package/dist/bundles/kontent-delivery.umd.min.js.map +1 -1
  7. package/dist/bundles/report.json +1 -1
  8. package/dist/bundles/report.min.json +1 -1
  9. package/dist/bundles/stats.json +7195 -5946
  10. package/dist/bundles/stats.min.json +11923 -10797
  11. package/dist/cjs/sdk-info.generated.js +1 -1
  12. package/dist/es6/sdk-info.generated.js +1 -1
  13. package/dist/esnext/sdk-info.generated.js +1 -1
  14. package/lib/client/delivery-client.factory.ts +9 -9
  15. package/lib/client/delivery-client.ts +163 -163
  16. package/lib/client/idelivery-client.interface.ts +110 -110
  17. package/lib/client/index.ts +3 -3
  18. package/lib/config/delivery-configs.ts +98 -98
  19. package/lib/config/index.ts +1 -1
  20. package/lib/contracts/contracts.ts +265 -265
  21. package/lib/contracts/index.ts +1 -1
  22. package/lib/elements/element-models.ts +89 -89
  23. package/lib/elements/element-resolver.ts +3 -3
  24. package/lib/elements/element-type.ts +16 -16
  25. package/lib/elements/elements.ts +70 -70
  26. package/lib/elements/index.ts +4 -4
  27. package/lib/images/image-url-transformation-builder.factory.ts +5 -5
  28. package/lib/images/image-url-transformation-builder.ts +181 -181
  29. package/lib/images/image.models.ts +4 -4
  30. package/lib/images/index.ts +3 -3
  31. package/lib/index.ts +12 -12
  32. package/lib/mappers/element.mapper.ts +504 -504
  33. package/lib/mappers/generic-element.mapper.ts +20 -20
  34. package/lib/mappers/index.ts +8 -8
  35. package/lib/mappers/item.mapper.ts +181 -181
  36. package/lib/mappers/language.mapper.ts +24 -24
  37. package/lib/mappers/sync.mapper.ts +32 -32
  38. package/lib/mappers/taxonomy.mapper.ts +77 -77
  39. package/lib/mappers/type.mapper.ts +76 -76
  40. package/lib/mappers/used-in.mapper.ts +20 -20
  41. package/lib/models/common/base-responses.ts +13 -13
  42. package/lib/models/common/common-models.ts +118 -118
  43. package/lib/models/common/filters.ts +280 -280
  44. package/lib/models/common/headers.ts +5 -5
  45. package/lib/models/common/index.ts +7 -7
  46. package/lib/models/common/pagination.class.ts +7 -7
  47. package/lib/models/common/parameters.ts +189 -189
  48. package/lib/models/common/sort-order.ts +1 -1
  49. package/lib/models/content-type-models.ts +42 -42
  50. package/lib/models/element-models.ts +51 -51
  51. package/lib/models/index.ts +9 -9
  52. package/lib/models/item-models.ts +192 -192
  53. package/lib/models/language-models.ts +17 -17
  54. package/lib/models/responses.ts +137 -137
  55. package/lib/models/sync-models.ts +18 -18
  56. package/lib/models/taxonomy-models.ts +25 -25
  57. package/lib/query/common/base-item-listing-query.class.ts +274 -274
  58. package/lib/query/common/base-listing-query.class.ts +95 -95
  59. package/lib/query/common/base-query.class.ts +148 -148
  60. package/lib/query/element/element-query.class.ts +45 -45
  61. package/lib/query/index.ts +13 -13
  62. package/lib/query/item/multiple-items-query.class.ts +183 -183
  63. package/lib/query/item/single-item-query.class.ts +106 -106
  64. package/lib/query/items-feed/items-feed-query.class.ts +191 -191
  65. package/lib/query/language/languages-query.class.ts +91 -91
  66. package/lib/query/sync/initialize-sync-query.class.ts +83 -83
  67. package/lib/query/sync/sync-changes-query.class.ts +56 -56
  68. package/lib/query/taxonomy/taxonomies-query.class.ts +82 -82
  69. package/lib/query/taxonomy/taxonomy-query.class.ts +50 -50
  70. package/lib/query/type/multiple-type-query.class.ts +95 -95
  71. package/lib/query/type/single-type-query.class.ts +45 -45
  72. package/lib/query/used-in/used-in-query.class.ts +126 -126
  73. package/lib/sdk-info.generated.ts +1 -1
  74. package/lib/services/base-delivery-query.service.ts +375 -375
  75. package/lib/services/delivery-query.service.ts +336 -336
  76. package/lib/services/index.ts +2 -2
  77. package/lib/services/mapping.service.ts +223 -223
  78. package/lib/utilities/codename.helper.ts +10 -10
  79. package/lib/utilities/delivery-url.helper.ts +11 -11
  80. package/lib/utilities/enum.helper.ts +38 -38
  81. package/lib/utilities/index.ts +3 -3
  82. package/package.json +96 -96
  83. package/readme.md +531 -531
@@ -1,274 +1,274 @@
1
- import { ElementType, Elements } from '../../elements';
2
- import { IDeliveryClientConfig } from '../../config';
3
- import {
4
- ClientTypes,
5
- Filters,
6
- IContentItem,
7
- IKontentListAllResponse,
8
- IKontentListResponse,
9
- IQueryConfig,
10
- Parameters,
11
- SortOrder
12
- } from '../../models';
13
- import { QueryService } from '../../services';
14
- import { BaseListingQuery } from './base-listing-query.class';
15
-
16
- export abstract class BaseItemListingQuery<
17
- TClientTypes extends ClientTypes,
18
- TResponse extends IKontentListResponse,
19
- TAllResponse extends IKontentListAllResponse,
20
- TQueryConfig extends IQueryConfig,
21
- TContract
22
- > extends BaseListingQuery<TClientTypes, IContentItem, TResponse, TAllResponse, TQueryConfig, TContract> {
23
- constructor(protected config: IDeliveryClientConfig, protected queryService: QueryService<TClientTypes>) {
24
- super(config, queryService);
25
- }
26
-
27
- /**
28
- * Empty filter condition
29
- * @param element Element with empty value
30
- */
31
- emptyFilter(element: string): this {
32
- this.parameters.push(new Filters.EmptyFilter(element));
33
- return this;
34
- }
35
-
36
- /**
37
- * Not empty filter condition
38
- * @param element Element with non-empty value
39
- */
40
- notEmptyFilter(element: string): this {
41
- this.parameters.push(new Filters.NotEmptyFilter(element));
42
- return this;
43
- }
44
-
45
- /**
46
- * Equals filter condition
47
- * @param element Element to filter. Example: 'elements.movie'
48
- * @param value Value to match. Example: 'Kingsman'
49
- */
50
- equalsFilter(element: string, value: string): this {
51
- this.parameters.push(new Filters.EqualsFilter(element, value));
52
- return this;
53
- }
54
-
55
- /**
56
- * Not equals filter condition
57
- * @param element Element to filter. Example: 'elements.movie'
58
- * @param value Value to match. Example: 'Kingsman'
59
- */
60
- notEqualsFilter(element: string, value: string): this {
61
- this.parameters.push(new Filters.NotEqualsFilter(element, value));
62
- return this;
63
- }
64
-
65
- /**
66
- * All filter
67
- * @param element Element to filter.
68
- * @param values Values
69
- */
70
- allFilter(element: string, values: string[]): this {
71
- this.parameters.push(new Filters.AllFilter(element, values));
72
- return this;
73
- }
74
-
75
- /**
76
- * Any filter
77
- * @param element Element to filter.
78
- * @param values Values
79
- */
80
- anyFilter(element: string, values: string[]): this {
81
- this.parameters.push(new Filters.AnyFilter(element, values));
82
- return this;
83
- }
84
-
85
- /**
86
- * Contains filter
87
- * @param element Element to filter.
88
- * @param values Values
89
- */
90
- containsFilter(element: string, values: string[]): this {
91
- this.parameters.push(new Filters.ContainsFilter(element, values));
92
- return this;
93
- }
94
-
95
- /**
96
- * Greater then filter
97
- * @param element Element to filter.
98
- * @param value Value
99
- */
100
- greaterThanFilter(element: string, value: string | number): this {
101
- this.parameters.push(new Filters.GreaterThanFilter(element, value));
102
- return this;
103
- }
104
-
105
- /**
106
- * Greater then or equals filter
107
- * @param element Element to filter.
108
- * @param value Value
109
- */
110
- greaterThanOrEqualFilter(element: string, value: string | number): this {
111
- this.parameters.push(new Filters.GreaterThanOrEqualFilter(element, value));
112
- return this;
113
- }
114
-
115
- /**
116
- * In filter
117
- * @param element Element to filter.
118
- * @param values Values
119
- */
120
- inFilter(element: string, values: string[]): this {
121
- this.parameters.push(new Filters.InFilter(element, values));
122
- return this;
123
- }
124
-
125
- /**
126
- * Not in filter
127
- * @param element Element to filter.
128
- * @param values Values
129
- */
130
- notInFilter(element: string, values: string[]): this {
131
- this.parameters.push(new Filters.NotInFilter(element, values));
132
- return this;
133
- }
134
-
135
- /**
136
- * Less then filter
137
- * @param element Element to filter.
138
- * @param value Value
139
- */
140
- lessThanFilter(element: string, value: string | number): this {
141
- this.parameters.push(new Filters.LessThanFilter(element, value));
142
- return this;
143
- }
144
-
145
- /**
146
- * @param element Element to filter.
147
- * @param value Value
148
- */
149
- lessThanOrEqualFilter(element: string, value: string | number): this {
150
- this.parameters.push(new Filters.LessThanOrEqualFilter(element, value));
151
- return this;
152
- }
153
-
154
- /**
155
- * @param element Element to filter.
156
- * @param lowerValue Lower value of range (e.g. 2)
157
- * @param higherValue Higher value of range (e.g. 10)
158
- */
159
- rangeFilter(element: string, lowerValue: number | string, higherValue: number | string): this {
160
- this.parameters.push(new Filters.RangeFilter(element, lowerValue, higherValue));
161
- return this;
162
- }
163
-
164
- /**
165
- * Limits the number of items returned by query
166
- * @param limit Number of items to load
167
- */
168
- limitParameter(limit: number): this {
169
- this.parameters.push(new Parameters.LimitParameter(limit));
170
- return this;
171
- }
172
-
173
- /**
174
- * Orders query based on given element and sort order
175
- * @param element Element by which to order
176
- * @param sortOrder Asc/Desc order type
177
- */
178
- orderParameter(element: string, sortOrder: SortOrder): this {
179
- this.parameters.push(new Parameters.OrderParameter(element, sortOrder));
180
- return this;
181
- }
182
-
183
- /**
184
- * Sets descending order on given element
185
- * @param element Element by which to order
186
- */
187
- orderByDescending(element: string): this {
188
- this.parameters.push(new Parameters.OrderParameter(element, 'desc'));
189
- return this;
190
- }
191
-
192
- /**
193
- * Sets Ascending order on given element
194
- * @param element Element by which to order
195
- */
196
- orderByAscending(element: string): this {
197
- this.parameters.push(new Parameters.OrderParameter(element, 'asc'));
198
- return this;
199
- }
200
-
201
- /**
202
- * Skips the selected number of items
203
- * @param skip Number of items to skip
204
- */
205
- skipParameter(skip: number): this {
206
- this.parameters.push(new Parameters.SkipParameter(skip));
207
- return this;
208
- }
209
-
210
- protected linkItemsInRte(allContentItems: IContentItem[]): void {
211
- for (const item of allContentItems) {
212
- for (const elementKey of Object.keys(item.elements)) {
213
- const element = item.elements[elementKey];
214
-
215
- if (element.type === ElementType.ModularContent) {
216
- const linkedItemElement = element as Elements.LinkedItemsElement;
217
-
218
- // We create separate array for ordered items because the 'linkedItems' from response might be incomplete
219
- // e.g. If 4 items are linked, only 2 might be available in the response. Rest needs to be mapped from all available items
220
- const orderedLinkedItems: IContentItem[] = [];
221
-
222
- for (const linkedItemCodename of linkedItemElement.value) {
223
- let linkedItem: IContentItem | undefined;
224
-
225
- const linkedItemInElement = linkedItemElement.linkedItems.find(
226
- (m) => m.system.codename.toLowerCase() === linkedItemCodename.toLowerCase()
227
- );
228
- if (linkedItemInElement) {
229
- linkedItem = linkedItemInElement;
230
- } else {
231
- linkedItem = allContentItems.find(
232
- (m) => m.system.codename.toLowerCase() === linkedItemCodename.toLowerCase()
233
- );
234
- }
235
-
236
- if (linkedItem) {
237
- orderedLinkedItems.push(linkedItem);
238
- }
239
- }
240
-
241
- // Replace linked items with the ordered one
242
- linkedItemElement.linkedItems = orderedLinkedItems;
243
- }
244
-
245
- if (element.type === ElementType.RichText) {
246
- const orderedLinkedItems: IContentItem[] = [];
247
-
248
- const richTextElement = element as Elements.RichTextElement;
249
-
250
- for (const linkedItemCodename of richTextElement.linkedItemCodenames) {
251
- let linkedItem: IContentItem | undefined;
252
-
253
- const linkedItemInElement = richTextElement.linkedItems.find(
254
- (m) => m.system.codename.toLowerCase() === linkedItemCodename.toLowerCase()
255
- );
256
- if (linkedItemInElement) {
257
- linkedItem = linkedItemInElement;
258
- } else {
259
- linkedItem = allContentItems.find(
260
- (m) => m.system.codename.toLowerCase() === linkedItemCodename.toLowerCase()
261
- );
262
- }
263
-
264
- if (linkedItem) {
265
- orderedLinkedItems.push(linkedItem);
266
- }
267
- }
268
-
269
- richTextElement.linkedItems = orderedLinkedItems;
270
- }
271
- }
272
- }
273
- }
274
- }
1
+ import { ElementType, Elements } from '../../elements';
2
+ import { IDeliveryClientConfig } from '../../config';
3
+ import {
4
+ ClientTypes,
5
+ Filters,
6
+ IContentItem,
7
+ IKontentListAllResponse,
8
+ IKontentListResponse,
9
+ IQueryConfig,
10
+ Parameters,
11
+ SortOrder
12
+ } from '../../models';
13
+ import { QueryService } from '../../services';
14
+ import { BaseListingQuery } from './base-listing-query.class';
15
+
16
+ export abstract class BaseItemListingQuery<
17
+ TClientTypes extends ClientTypes,
18
+ TResponse extends IKontentListResponse,
19
+ TAllResponse extends IKontentListAllResponse,
20
+ TQueryConfig extends IQueryConfig,
21
+ TContract
22
+ > extends BaseListingQuery<TClientTypes, IContentItem, TResponse, TAllResponse, TQueryConfig, TContract> {
23
+ constructor(protected config: IDeliveryClientConfig, protected queryService: QueryService<TClientTypes>) {
24
+ super(config, queryService);
25
+ }
26
+
27
+ /**
28
+ * Empty filter condition
29
+ * @param element Element with empty value
30
+ */
31
+ emptyFilter(element: string): this {
32
+ this.parameters.push(new Filters.EmptyFilter(element));
33
+ return this;
34
+ }
35
+
36
+ /**
37
+ * Not empty filter condition
38
+ * @param element Element with non-empty value
39
+ */
40
+ notEmptyFilter(element: string): this {
41
+ this.parameters.push(new Filters.NotEmptyFilter(element));
42
+ return this;
43
+ }
44
+
45
+ /**
46
+ * Equals filter condition
47
+ * @param element Element to filter. Example: 'elements.movie'
48
+ * @param value Value to match. Example: 'Kingsman'
49
+ */
50
+ equalsFilter(element: string, value: string): this {
51
+ this.parameters.push(new Filters.EqualsFilter(element, value));
52
+ return this;
53
+ }
54
+
55
+ /**
56
+ * Not equals filter condition
57
+ * @param element Element to filter. Example: 'elements.movie'
58
+ * @param value Value to match. Example: 'Kingsman'
59
+ */
60
+ notEqualsFilter(element: string, value: string): this {
61
+ this.parameters.push(new Filters.NotEqualsFilter(element, value));
62
+ return this;
63
+ }
64
+
65
+ /**
66
+ * All filter
67
+ * @param element Element to filter.
68
+ * @param values Values
69
+ */
70
+ allFilter(element: string, values: string[]): this {
71
+ this.parameters.push(new Filters.AllFilter(element, values));
72
+ return this;
73
+ }
74
+
75
+ /**
76
+ * Any filter
77
+ * @param element Element to filter.
78
+ * @param values Values
79
+ */
80
+ anyFilter(element: string, values: string[]): this {
81
+ this.parameters.push(new Filters.AnyFilter(element, values));
82
+ return this;
83
+ }
84
+
85
+ /**
86
+ * Contains filter
87
+ * @param element Element to filter.
88
+ * @param values Values
89
+ */
90
+ containsFilter(element: string, values: string[]): this {
91
+ this.parameters.push(new Filters.ContainsFilter(element, values));
92
+ return this;
93
+ }
94
+
95
+ /**
96
+ * Greater then filter
97
+ * @param element Element to filter.
98
+ * @param value Value
99
+ */
100
+ greaterThanFilter(element: string, value: string | number): this {
101
+ this.parameters.push(new Filters.GreaterThanFilter(element, value));
102
+ return this;
103
+ }
104
+
105
+ /**
106
+ * Greater then or equals filter
107
+ * @param element Element to filter.
108
+ * @param value Value
109
+ */
110
+ greaterThanOrEqualFilter(element: string, value: string | number): this {
111
+ this.parameters.push(new Filters.GreaterThanOrEqualFilter(element, value));
112
+ return this;
113
+ }
114
+
115
+ /**
116
+ * In filter
117
+ * @param element Element to filter.
118
+ * @param values Values
119
+ */
120
+ inFilter(element: string, values: string[]): this {
121
+ this.parameters.push(new Filters.InFilter(element, values));
122
+ return this;
123
+ }
124
+
125
+ /**
126
+ * Not in filter
127
+ * @param element Element to filter.
128
+ * @param values Values
129
+ */
130
+ notInFilter(element: string, values: string[]): this {
131
+ this.parameters.push(new Filters.NotInFilter(element, values));
132
+ return this;
133
+ }
134
+
135
+ /**
136
+ * Less then filter
137
+ * @param element Element to filter.
138
+ * @param value Value
139
+ */
140
+ lessThanFilter(element: string, value: string | number): this {
141
+ this.parameters.push(new Filters.LessThanFilter(element, value));
142
+ return this;
143
+ }
144
+
145
+ /**
146
+ * @param element Element to filter.
147
+ * @param value Value
148
+ */
149
+ lessThanOrEqualFilter(element: string, value: string | number): this {
150
+ this.parameters.push(new Filters.LessThanOrEqualFilter(element, value));
151
+ return this;
152
+ }
153
+
154
+ /**
155
+ * @param element Element to filter.
156
+ * @param lowerValue Lower value of range (e.g. 2)
157
+ * @param higherValue Higher value of range (e.g. 10)
158
+ */
159
+ rangeFilter(element: string, lowerValue: number | string, higherValue: number | string): this {
160
+ this.parameters.push(new Filters.RangeFilter(element, lowerValue, higherValue));
161
+ return this;
162
+ }
163
+
164
+ /**
165
+ * Limits the number of items returned by query
166
+ * @param limit Number of items to load
167
+ */
168
+ limitParameter(limit: number): this {
169
+ this.parameters.push(new Parameters.LimitParameter(limit));
170
+ return this;
171
+ }
172
+
173
+ /**
174
+ * Orders query based on given element and sort order
175
+ * @param element Element by which to order
176
+ * @param sortOrder Asc/Desc order type
177
+ */
178
+ orderParameter(element: string, sortOrder: SortOrder): this {
179
+ this.parameters.push(new Parameters.OrderParameter(element, sortOrder));
180
+ return this;
181
+ }
182
+
183
+ /**
184
+ * Sets descending order on given element
185
+ * @param element Element by which to order
186
+ */
187
+ orderByDescending(element: string): this {
188
+ this.parameters.push(new Parameters.OrderParameter(element, 'desc'));
189
+ return this;
190
+ }
191
+
192
+ /**
193
+ * Sets Ascending order on given element
194
+ * @param element Element by which to order
195
+ */
196
+ orderByAscending(element: string): this {
197
+ this.parameters.push(new Parameters.OrderParameter(element, 'asc'));
198
+ return this;
199
+ }
200
+
201
+ /**
202
+ * Skips the selected number of items
203
+ * @param skip Number of items to skip
204
+ */
205
+ skipParameter(skip: number): this {
206
+ this.parameters.push(new Parameters.SkipParameter(skip));
207
+ return this;
208
+ }
209
+
210
+ protected linkItemsInRte(allContentItems: IContentItem[]): void {
211
+ for (const item of allContentItems) {
212
+ for (const elementKey of Object.keys(item.elements)) {
213
+ const element = item.elements[elementKey];
214
+
215
+ if (element.type === ElementType.ModularContent) {
216
+ const linkedItemElement = element as Elements.LinkedItemsElement;
217
+
218
+ // We create separate array for ordered items because the 'linkedItems' from response might be incomplete
219
+ // e.g. If 4 items are linked, only 2 might be available in the response. Rest needs to be mapped from all available items
220
+ const orderedLinkedItems: IContentItem[] = [];
221
+
222
+ for (const linkedItemCodename of linkedItemElement.value) {
223
+ let linkedItem: IContentItem | undefined;
224
+
225
+ const linkedItemInElement = linkedItemElement.linkedItems.find(
226
+ (m) => m.system.codename.toLowerCase() === linkedItemCodename.toLowerCase()
227
+ );
228
+ if (linkedItemInElement) {
229
+ linkedItem = linkedItemInElement;
230
+ } else {
231
+ linkedItem = allContentItems.find(
232
+ (m) => m.system.codename.toLowerCase() === linkedItemCodename.toLowerCase()
233
+ );
234
+ }
235
+
236
+ if (linkedItem) {
237
+ orderedLinkedItems.push(linkedItem);
238
+ }
239
+ }
240
+
241
+ // Replace linked items with the ordered one
242
+ linkedItemElement.linkedItems = orderedLinkedItems;
243
+ }
244
+
245
+ if (element.type === ElementType.RichText) {
246
+ const orderedLinkedItems: IContentItem[] = [];
247
+
248
+ const richTextElement = element as Elements.RichTextElement;
249
+
250
+ for (const linkedItemCodename of richTextElement.linkedItemCodenames) {
251
+ let linkedItem: IContentItem | undefined;
252
+
253
+ const linkedItemInElement = richTextElement.linkedItems.find(
254
+ (m) => m.system.codename.toLowerCase() === linkedItemCodename.toLowerCase()
255
+ );
256
+ if (linkedItemInElement) {
257
+ linkedItem = linkedItemInElement;
258
+ } else {
259
+ linkedItem = allContentItems.find(
260
+ (m) => m.system.codename.toLowerCase() === linkedItemCodename.toLowerCase()
261
+ );
262
+ }
263
+
264
+ if (linkedItem) {
265
+ orderedLinkedItems.push(linkedItem);
266
+ }
267
+ }
268
+
269
+ richTextElement.linkedItems = orderedLinkedItems;
270
+ }
271
+ }
272
+ }
273
+ }
274
+ }