@kontent-ai/delivery-sdk 16.4.3 → 16.4.5

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 (113) hide show
  1. package/.npmignore +15 -15
  2. package/LICENSE.md +9 -9
  3. package/dist/bundles/kontent-delivery.umd.js +5076 -4619
  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 +7015 -5766
  10. package/dist/bundles/stats.min.json +11376 -10250
  11. package/dist/cjs/query/element/element-query.class.js +1 -1
  12. package/dist/cjs/query/element/element-query.class.js.map +1 -1
  13. package/dist/cjs/query/item/single-item-query.class.js +1 -1
  14. package/dist/cjs/query/item/single-item-query.class.js.map +1 -1
  15. package/dist/cjs/query/taxonomy/taxonomy-query.class.js +1 -1
  16. package/dist/cjs/query/taxonomy/taxonomy-query.class.js.map +1 -1
  17. package/dist/cjs/query/type/single-type-query.class.js +1 -1
  18. package/dist/cjs/query/type/single-type-query.class.js.map +1 -1
  19. package/dist/cjs/query/used-in/used-in-query.class.js +1 -1
  20. package/dist/cjs/query/used-in/used-in-query.class.js.map +1 -1
  21. package/dist/cjs/sdk-info.generated.js +1 -1
  22. package/dist/es6/query/element/element-query.class.js +1 -1
  23. package/dist/es6/query/element/element-query.class.js.map +1 -1
  24. package/dist/es6/query/item/single-item-query.class.js +1 -1
  25. package/dist/es6/query/item/single-item-query.class.js.map +1 -1
  26. package/dist/es6/query/taxonomy/taxonomy-query.class.js +1 -1
  27. package/dist/es6/query/taxonomy/taxonomy-query.class.js.map +1 -1
  28. package/dist/es6/query/type/single-type-query.class.js +1 -1
  29. package/dist/es6/query/type/single-type-query.class.js.map +1 -1
  30. package/dist/es6/query/used-in/used-in-query.class.js +1 -1
  31. package/dist/es6/query/used-in/used-in-query.class.js.map +1 -1
  32. package/dist/es6/sdk-info.generated.js +1 -1
  33. package/dist/esnext/query/element/element-query.class.js +1 -1
  34. package/dist/esnext/query/element/element-query.class.js.map +1 -1
  35. package/dist/esnext/query/item/single-item-query.class.js +1 -1
  36. package/dist/esnext/query/item/single-item-query.class.js.map +1 -1
  37. package/dist/esnext/query/taxonomy/taxonomy-query.class.js +1 -1
  38. package/dist/esnext/query/taxonomy/taxonomy-query.class.js.map +1 -1
  39. package/dist/esnext/query/type/single-type-query.class.js +1 -1
  40. package/dist/esnext/query/type/single-type-query.class.js.map +1 -1
  41. package/dist/esnext/query/used-in/used-in-query.class.js +1 -1
  42. package/dist/esnext/query/used-in/used-in-query.class.js.map +1 -1
  43. package/dist/esnext/sdk-info.generated.js +1 -1
  44. package/lib/client/delivery-client.factory.ts +9 -9
  45. package/lib/client/delivery-client.ts +163 -163
  46. package/lib/client/idelivery-client.interface.ts +110 -110
  47. package/lib/client/index.ts +3 -3
  48. package/lib/config/delivery-configs.ts +98 -98
  49. package/lib/config/index.ts +1 -1
  50. package/lib/contracts/contracts.ts +265 -265
  51. package/lib/contracts/index.ts +1 -1
  52. package/lib/elements/element-models.ts +89 -89
  53. package/lib/elements/element-resolver.ts +3 -3
  54. package/lib/elements/element-type.ts +16 -16
  55. package/lib/elements/elements.ts +70 -70
  56. package/lib/elements/index.ts +4 -4
  57. package/lib/images/image-url-transformation-builder.factory.ts +5 -5
  58. package/lib/images/image-url-transformation-builder.ts +181 -181
  59. package/lib/images/image.models.ts +4 -4
  60. package/lib/images/index.ts +3 -3
  61. package/lib/index.ts +12 -12
  62. package/lib/mappers/element.mapper.ts +504 -504
  63. package/lib/mappers/generic-element.mapper.ts +20 -20
  64. package/lib/mappers/index.ts +8 -8
  65. package/lib/mappers/item.mapper.ts +181 -181
  66. package/lib/mappers/language.mapper.ts +24 -24
  67. package/lib/mappers/sync.mapper.ts +32 -32
  68. package/lib/mappers/taxonomy.mapper.ts +77 -77
  69. package/lib/mappers/type.mapper.ts +76 -76
  70. package/lib/mappers/used-in.mapper.ts +20 -20
  71. package/lib/models/common/base-responses.ts +13 -13
  72. package/lib/models/common/common-models.ts +118 -118
  73. package/lib/models/common/filters.ts +280 -280
  74. package/lib/models/common/headers.ts +5 -5
  75. package/lib/models/common/index.ts +7 -7
  76. package/lib/models/common/pagination.class.ts +7 -7
  77. package/lib/models/common/parameters.ts +189 -189
  78. package/lib/models/common/sort-order.ts +1 -1
  79. package/lib/models/content-type-models.ts +42 -42
  80. package/lib/models/element-models.ts +51 -51
  81. package/lib/models/index.ts +9 -9
  82. package/lib/models/item-models.ts +192 -192
  83. package/lib/models/language-models.ts +17 -17
  84. package/lib/models/responses.ts +137 -137
  85. package/lib/models/sync-models.ts +18 -18
  86. package/lib/models/taxonomy-models.ts +25 -25
  87. package/lib/query/common/base-item-listing-query.class.ts +274 -274
  88. package/lib/query/common/base-listing-query.class.ts +95 -95
  89. package/lib/query/common/base-query.class.ts +148 -148
  90. package/lib/query/element/element-query.class.ts +47 -45
  91. package/lib/query/index.ts +13 -13
  92. package/lib/query/item/multiple-items-query.class.ts +183 -183
  93. package/lib/query/item/single-item-query.class.ts +106 -106
  94. package/lib/query/items-feed/items-feed-query.class.ts +191 -191
  95. package/lib/query/language/languages-query.class.ts +91 -91
  96. package/lib/query/sync/initialize-sync-query.class.ts +83 -83
  97. package/lib/query/sync/sync-changes-query.class.ts +56 -56
  98. package/lib/query/taxonomy/taxonomies-query.class.ts +82 -82
  99. package/lib/query/taxonomy/taxonomy-query.class.ts +50 -50
  100. package/lib/query/type/multiple-type-query.class.ts +95 -95
  101. package/lib/query/type/single-type-query.class.ts +45 -45
  102. package/lib/query/used-in/used-in-query.class.ts +128 -126
  103. package/lib/sdk-info.generated.ts +1 -1
  104. package/lib/services/base-delivery-query.service.ts +375 -375
  105. package/lib/services/delivery-query.service.ts +336 -336
  106. package/lib/services/index.ts +2 -2
  107. package/lib/services/mapping.service.ts +223 -223
  108. package/lib/utilities/codename.helper.ts +10 -10
  109. package/lib/utilities/delivery-url.helper.ts +11 -11
  110. package/lib/utilities/enum.helper.ts +38 -38
  111. package/lib/utilities/index.ts +3 -3
  112. package/package.json +96 -96
  113. package/readme.md +531 -531
@@ -1,77 +1,77 @@
1
- import { Contracts } from '../contracts';
2
- import { ITaxonomyGroup, ITaxonomySystemAttributes, ITaxonomyTerms } from '../models';
3
-
4
- export class TaxonomyMapper<TaxonomyCodenames extends string> {
5
- mapTaxonomy(
6
- taxonomySystem: Contracts.ITaxonomySystemAttributesContract,
7
- taxonomyTerms: Contracts.ITaxonomyTermsContract[]
8
- ): ITaxonomyGroup<TaxonomyCodenames> {
9
- if (!taxonomySystem) {
10
- throw Error(`Cannot map taxonomy due to missing 'system' property`);
11
- }
12
-
13
- if (!taxonomyTerms) {
14
- throw Error(`Cannot map taxonomy due to missing 'terms' property`);
15
- }
16
-
17
- if (!Array.isArray(taxonomyTerms)) {
18
- throw Error(`Cannot map terms because no terms array was provided`);
19
- }
20
-
21
- const mappedSystemAttributes: ITaxonomySystemAttributes<TaxonomyCodenames> = {
22
- name: taxonomySystem.name,
23
- codename: taxonomySystem.codename as TaxonomyCodenames,
24
- id: taxonomySystem.id,
25
- lastModified: taxonomySystem.last_modified
26
- };
27
-
28
- const mappedTerms: ITaxonomyTerms[] = this.mapTaxonomyTerms(taxonomyTerms);
29
-
30
- return {
31
- system: mappedSystemAttributes,
32
- terms: mappedTerms
33
- };
34
- }
35
-
36
- mapTaxonomies(taxonomies: Contracts.ITaxonomyGroupContract[]): ITaxonomyGroup<TaxonomyCodenames>[] {
37
- if (!taxonomies) {
38
- throw Error(`Cannot map taxonomy due to missing 'taxonomies' property`);
39
- }
40
-
41
- if (!Array.isArray(taxonomies)) {
42
- throw Error(`Cannot map taxonomies because the 'taxonomies' property is not an array `);
43
- }
44
-
45
- const mappedTaxonomies: ITaxonomyGroup<TaxonomyCodenames>[] = [];
46
-
47
- taxonomies.forEach((taxonomy) => {
48
- mappedTaxonomies.push(this.mapTaxonomy(taxonomy.system, taxonomy.terms));
49
- });
50
-
51
- return mappedTaxonomies;
52
- }
53
-
54
- /**
55
- * Recursively map array of taxonomy terms
56
- * @param termsArray Terms array to map
57
- */
58
- private mapTaxonomyTerms(termsArray: Contracts.ITaxonomyTermsContract[]): ITaxonomyTerms[] {
59
- if (termsArray.length === 0) {
60
- return [];
61
- }
62
-
63
- const mappedTermsArray: ITaxonomyTerms[] = [];
64
-
65
- termsArray.forEach((terms) => {
66
- const mappedTerms: ITaxonomyTerms = {
67
- codename: terms.codename,
68
- name: terms.name,
69
- terms: this.mapTaxonomyTerms(terms.terms)
70
- };
71
-
72
- mappedTermsArray.push(mappedTerms);
73
- });
74
-
75
- return mappedTermsArray;
76
- }
77
- }
1
+ import { Contracts } from '../contracts';
2
+ import { ITaxonomyGroup, ITaxonomySystemAttributes, ITaxonomyTerms } from '../models';
3
+
4
+ export class TaxonomyMapper<TaxonomyCodenames extends string> {
5
+ mapTaxonomy(
6
+ taxonomySystem: Contracts.ITaxonomySystemAttributesContract,
7
+ taxonomyTerms: Contracts.ITaxonomyTermsContract[]
8
+ ): ITaxonomyGroup<TaxonomyCodenames> {
9
+ if (!taxonomySystem) {
10
+ throw Error(`Cannot map taxonomy due to missing 'system' property`);
11
+ }
12
+
13
+ if (!taxonomyTerms) {
14
+ throw Error(`Cannot map taxonomy due to missing 'terms' property`);
15
+ }
16
+
17
+ if (!Array.isArray(taxonomyTerms)) {
18
+ throw Error(`Cannot map terms because no terms array was provided`);
19
+ }
20
+
21
+ const mappedSystemAttributes: ITaxonomySystemAttributes<TaxonomyCodenames> = {
22
+ name: taxonomySystem.name,
23
+ codename: taxonomySystem.codename as TaxonomyCodenames,
24
+ id: taxonomySystem.id,
25
+ lastModified: taxonomySystem.last_modified
26
+ };
27
+
28
+ const mappedTerms: ITaxonomyTerms[] = this.mapTaxonomyTerms(taxonomyTerms);
29
+
30
+ return {
31
+ system: mappedSystemAttributes,
32
+ terms: mappedTerms
33
+ };
34
+ }
35
+
36
+ mapTaxonomies(taxonomies: Contracts.ITaxonomyGroupContract[]): ITaxonomyGroup<TaxonomyCodenames>[] {
37
+ if (!taxonomies) {
38
+ throw Error(`Cannot map taxonomy due to missing 'taxonomies' property`);
39
+ }
40
+
41
+ if (!Array.isArray(taxonomies)) {
42
+ throw Error(`Cannot map taxonomies because the 'taxonomies' property is not an array `);
43
+ }
44
+
45
+ const mappedTaxonomies: ITaxonomyGroup<TaxonomyCodenames>[] = [];
46
+
47
+ taxonomies.forEach((taxonomy) => {
48
+ mappedTaxonomies.push(this.mapTaxonomy(taxonomy.system, taxonomy.terms));
49
+ });
50
+
51
+ return mappedTaxonomies;
52
+ }
53
+
54
+ /**
55
+ * Recursively map array of taxonomy terms
56
+ * @param termsArray Terms array to map
57
+ */
58
+ private mapTaxonomyTerms(termsArray: Contracts.ITaxonomyTermsContract[]): ITaxonomyTerms[] {
59
+ if (termsArray.length === 0) {
60
+ return [];
61
+ }
62
+
63
+ const mappedTermsArray: ITaxonomyTerms[] = [];
64
+
65
+ termsArray.forEach((terms) => {
66
+ const mappedTerms: ITaxonomyTerms = {
67
+ codename: terms.codename,
68
+ name: terms.name,
69
+ terms: this.mapTaxonomyTerms(terms.terms)
70
+ };
71
+
72
+ mappedTermsArray.push(mappedTerms);
73
+ });
74
+
75
+ return mappedTermsArray;
76
+ }
77
+ }
@@ -1,76 +1,76 @@
1
- import { Contracts } from '../contracts';
2
- import { IContentType, IContentTypeSystemAttributes, IGenericElement } from '../models';
3
-
4
- export class TypeMapper<TContentTypeCodenames extends string> {
5
- mapSingleType(response: Contracts.IViewContentTypeContract): IContentType<TContentTypeCodenames> {
6
- return this.mapType(response);
7
- }
8
-
9
- mapMultipleTypes(response: Contracts.IListContentTypeContract): IContentType<TContentTypeCodenames>[] {
10
- return response.types.map((type) => {
11
- return this.mapType(type);
12
- });
13
- }
14
-
15
- private mapType(type: Contracts.IContentTypeContract): IContentType<TContentTypeCodenames> {
16
- if (!type) {
17
- throw Error(`Cannot map type`);
18
- }
19
-
20
- if (!type.elements) {
21
- throw Error(`Cannot map type elements`);
22
- }
23
-
24
- const system: IContentTypeSystemAttributes<TContentTypeCodenames> = {
25
- codename: type.system.codename as TContentTypeCodenames,
26
- id: type.system.id,
27
- name: type.system.name,
28
- lastModified: type.system.last_modified
29
- };
30
-
31
- const elements: IGenericElement[] = [];
32
-
33
- const elementNames = Object.getOwnPropertyNames(type.elements);
34
- elementNames.forEach((elementName: string) => {
35
- const typeElement = type.elements[elementName];
36
-
37
- if (!typeElement) {
38
- throw Error(`Cannot find element '${elementName}' on type '${type.system.codename}'`);
39
- }
40
-
41
- // use json property as a codename of the type element
42
- const elementCodename = elementName;
43
-
44
- // extra properties for certain element types
45
- const options: Contracts.IElementOptionContract[] = [];
46
-
47
- // some elements can contain options
48
- const rawOptions = typeElement.options;
49
- if (rawOptions) {
50
- if (!Array.isArray(rawOptions)) {
51
- throw Error(`Content type 'options' property has to be an array`);
52
- }
53
-
54
- rawOptions.forEach((rawOption) => {
55
- options.push({
56
- codename: rawOption.codename,
57
- name: rawOption.name
58
- });
59
- });
60
- }
61
-
62
- elements.push({
63
- codename: elementCodename,
64
- taxonomyGroup: typeElement.taxonomy_group,
65
- options: options,
66
- name: typeElement.name,
67
- type: typeElement.type
68
- });
69
- });
70
-
71
- return {
72
- elements: elements,
73
- system: system
74
- };
75
- }
76
- }
1
+ import { Contracts } from '../contracts';
2
+ import { IContentType, IContentTypeSystemAttributes, IGenericElement } from '../models';
3
+
4
+ export class TypeMapper<TContentTypeCodenames extends string> {
5
+ mapSingleType(response: Contracts.IViewContentTypeContract): IContentType<TContentTypeCodenames> {
6
+ return this.mapType(response);
7
+ }
8
+
9
+ mapMultipleTypes(response: Contracts.IListContentTypeContract): IContentType<TContentTypeCodenames>[] {
10
+ return response.types.map((type) => {
11
+ return this.mapType(type);
12
+ });
13
+ }
14
+
15
+ private mapType(type: Contracts.IContentTypeContract): IContentType<TContentTypeCodenames> {
16
+ if (!type) {
17
+ throw Error(`Cannot map type`);
18
+ }
19
+
20
+ if (!type.elements) {
21
+ throw Error(`Cannot map type elements`);
22
+ }
23
+
24
+ const system: IContentTypeSystemAttributes<TContentTypeCodenames> = {
25
+ codename: type.system.codename as TContentTypeCodenames,
26
+ id: type.system.id,
27
+ name: type.system.name,
28
+ lastModified: type.system.last_modified
29
+ };
30
+
31
+ const elements: IGenericElement[] = [];
32
+
33
+ const elementNames = Object.getOwnPropertyNames(type.elements);
34
+ elementNames.forEach((elementName: string) => {
35
+ const typeElement = type.elements[elementName];
36
+
37
+ if (!typeElement) {
38
+ throw Error(`Cannot find element '${elementName}' on type '${type.system.codename}'`);
39
+ }
40
+
41
+ // use json property as a codename of the type element
42
+ const elementCodename = elementName;
43
+
44
+ // extra properties for certain element types
45
+ const options: Contracts.IElementOptionContract[] = [];
46
+
47
+ // some elements can contain options
48
+ const rawOptions = typeElement.options;
49
+ if (rawOptions) {
50
+ if (!Array.isArray(rawOptions)) {
51
+ throw Error(`Content type 'options' property has to be an array`);
52
+ }
53
+
54
+ rawOptions.forEach((rawOption) => {
55
+ options.push({
56
+ codename: rawOption.codename,
57
+ name: rawOption.name
58
+ });
59
+ });
60
+ }
61
+
62
+ elements.push({
63
+ codename: elementCodename,
64
+ taxonomyGroup: typeElement.taxonomy_group,
65
+ options: options,
66
+ name: typeElement.name,
67
+ type: typeElement.type
68
+ });
69
+ });
70
+
71
+ return {
72
+ elements: elements,
73
+ system: system
74
+ };
75
+ }
76
+ }
@@ -1,20 +1,20 @@
1
- import { Contracts } from '../contracts';
2
- import { ClientTypes, IUsedInItemRecord } from '../models';
3
-
4
- export class UsedInMapper<TClientTypes extends ClientTypes> {
5
- mapUsedInItem(response: Contracts.IUsedInItemContract): IUsedInItemRecord<TClientTypes> {
6
- return {
7
- system: {
8
- id: response.system.id,
9
- name: response.system.name,
10
- codename: response.system.codename,
11
- language: response.system.language,
12
- type: response.system.type,
13
- collection: response.system.collection,
14
- workflow: response.system.workflow,
15
- workflowStep: response.system.workflow_step,
16
- lastModified: response.system.last_modified
17
- }
18
- };
19
- }
20
- }
1
+ import { Contracts } from '../contracts';
2
+ import { ClientTypes, IUsedInItemRecord } from '../models';
3
+
4
+ export class UsedInMapper<TClientTypes extends ClientTypes> {
5
+ mapUsedInItem(response: Contracts.IUsedInItemContract): IUsedInItemRecord<TClientTypes> {
6
+ return {
7
+ system: {
8
+ id: response.system.id,
9
+ name: response.system.name,
10
+ codename: response.system.codename,
11
+ language: response.system.language,
12
+ type: response.system.type,
13
+ collection: response.system.collection,
14
+ workflow: response.system.workflow,
15
+ workflowStep: response.system.workflow_step,
16
+ lastModified: response.system.last_modified
17
+ }
18
+ };
19
+ }
20
+ }
@@ -1,13 +1,13 @@
1
- import { IResponse } from '@kontent-ai/core-sdk';
2
-
3
- export interface IDeliveryNetworkResponse<TData, TContract> {
4
- data: TData;
5
- response: IResponse<TContract>;
6
- xContinuationToken?: string;
7
- hasStaleContent: boolean;
8
- }
9
-
10
- export interface IGroupedNetworkResponse<TData> {
11
- data: TData;
12
- responses: IDeliveryNetworkResponse<any, any>[];
13
- }
1
+ import { IResponse } from '@kontent-ai/core-sdk';
2
+
3
+ export interface IDeliveryNetworkResponse<TData, TContract> {
4
+ data: TData;
5
+ response: IResponse<TContract>;
6
+ xContinuationToken?: string;
7
+ hasStaleContent: boolean;
8
+ }
9
+
10
+ export interface IGroupedNetworkResponse<TData> {
11
+ data: TData;
12
+ responses: IDeliveryNetworkResponse<any, any>[];
13
+ }
@@ -1,118 +1,118 @@
1
- import { IHeader, IHttpCancelRequestToken, IQueryParameter } from '@kontent-ai/core-sdk';
2
- import { IDeliveryNetworkResponse } from './base-responses';
3
- import { IPagination } from './pagination.class';
4
-
5
- export type LinkedItemsReferenceHandler = 'map' | 'ignore';
6
-
7
- export interface IProxyUrlData {
8
- action: string;
9
- domain: string;
10
- queryParameters: IQueryParameter[];
11
- queryString: string;
12
- queryConfig: IQueryConfig;
13
- environmentId: string;
14
- }
15
-
16
- export interface ISDKInfo {
17
- /**
18
- * Name of SDK
19
- */
20
- name: string;
21
- /**
22
- * Version SDK
23
- */
24
- version: string;
25
- /**
26
- * Host of SDK
27
- */
28
- host: string;
29
- }
30
-
31
- export interface IKontentResponse {}
32
-
33
- export interface IKontentListWithHeaderResponse extends IKontentResponse {
34
- items: any[];
35
- }
36
-
37
- export interface IKontentListResponse extends IKontentResponse {
38
- pagination?: IPagination;
39
- items: any[];
40
- }
41
-
42
- export interface IKontentListAllResponse extends IKontentResponse {
43
- responses: any[];
44
- items: any[];
45
- }
46
-
47
- export interface IListAllQueryConfig<TResponse extends IKontentListResponse, TContract> {
48
- /**
49
- * Number of pages to get. If not set, all available pages are fetched.
50
- */
51
- pages?: number;
52
-
53
- /**
54
- * Delay between each HTTP requests
55
- */
56
- delayBetweenRequests?: number;
57
-
58
- /**
59
- * Executed when a list response is loaded
60
- */
61
- responseFetched?: (
62
- response: IDeliveryNetworkResponse<TResponse, TContract>,
63
- nextPageUrl?: string,
64
- continuationToken?: string
65
- ) => void;
66
- }
67
-
68
- export interface IQueryConfig {
69
- /**
70
- * Indicates if query should use preview mode. Overrides default configuration
71
- */
72
- usePreviewMode?: boolean;
73
-
74
- /**
75
- * Indicates if query should use secured delivery API mode. Overrides default configuration
76
- */
77
- useSecuredMode?: boolean;
78
-
79
- /**
80
- * If the requested content has changed since the last request, the header determines whether
81
- * to wait while fetching content. This can be useful when retrieving changed content
82
- * in reaction to a webhook call. By default, when the header is not set, the API
83
- * serves old content (if cached by the CDN) while it's fetching the new content
84
- * to minimize wait time.
85
- */
86
- waitForLoadingNewContent?: boolean;
87
-
88
- /**
89
- * Extra headers added to request
90
- */
91
- customHeaders?: IHeader[];
92
-
93
- /**
94
- * Cancel token
95
- */
96
- cancelToken?: IHttpCancelRequestToken<any>;
97
- }
98
-
99
- export interface IDeliveryErrorRaw {
100
- message: string;
101
- request_id: string | null;
102
- error_code: number;
103
- specific_code: number;
104
- }
105
-
106
- export class DeliveryError {
107
- public message: string;
108
- public requestId: string | null;
109
- public errorCode: number;
110
- public specificCode: number;
111
-
112
- constructor(data: { message: string; requestId: string | null; errorCode: number; specificCode: number }) {
113
- this.message = data.message;
114
- this.requestId = data.requestId;
115
- this.errorCode = data.errorCode;
116
- this.specificCode = data.specificCode;
117
- }
118
- }
1
+ import { IHeader, IHttpCancelRequestToken, IQueryParameter } from '@kontent-ai/core-sdk';
2
+ import { IDeliveryNetworkResponse } from './base-responses';
3
+ import { IPagination } from './pagination.class';
4
+
5
+ export type LinkedItemsReferenceHandler = 'map' | 'ignore';
6
+
7
+ export interface IProxyUrlData {
8
+ action: string;
9
+ domain: string;
10
+ queryParameters: IQueryParameter[];
11
+ queryString: string;
12
+ queryConfig: IQueryConfig;
13
+ environmentId: string;
14
+ }
15
+
16
+ export interface ISDKInfo {
17
+ /**
18
+ * Name of SDK
19
+ */
20
+ name: string;
21
+ /**
22
+ * Version SDK
23
+ */
24
+ version: string;
25
+ /**
26
+ * Host of SDK
27
+ */
28
+ host: string;
29
+ }
30
+
31
+ export interface IKontentResponse {}
32
+
33
+ export interface IKontentListWithHeaderResponse extends IKontentResponse {
34
+ items: any[];
35
+ }
36
+
37
+ export interface IKontentListResponse extends IKontentResponse {
38
+ pagination?: IPagination;
39
+ items: any[];
40
+ }
41
+
42
+ export interface IKontentListAllResponse extends IKontentResponse {
43
+ responses: any[];
44
+ items: any[];
45
+ }
46
+
47
+ export interface IListAllQueryConfig<TResponse extends IKontentListResponse, TContract> {
48
+ /**
49
+ * Number of pages to get. If not set, all available pages are fetched.
50
+ */
51
+ pages?: number;
52
+
53
+ /**
54
+ * Delay between each HTTP requests
55
+ */
56
+ delayBetweenRequests?: number;
57
+
58
+ /**
59
+ * Executed when a list response is loaded
60
+ */
61
+ responseFetched?: (
62
+ response: IDeliveryNetworkResponse<TResponse, TContract>,
63
+ nextPageUrl?: string,
64
+ continuationToken?: string
65
+ ) => void;
66
+ }
67
+
68
+ export interface IQueryConfig {
69
+ /**
70
+ * Indicates if query should use preview mode. Overrides default configuration
71
+ */
72
+ usePreviewMode?: boolean;
73
+
74
+ /**
75
+ * Indicates if query should use secured delivery API mode. Overrides default configuration
76
+ */
77
+ useSecuredMode?: boolean;
78
+
79
+ /**
80
+ * If the requested content has changed since the last request, the header determines whether
81
+ * to wait while fetching content. This can be useful when retrieving changed content
82
+ * in reaction to a webhook call. By default, when the header is not set, the API
83
+ * serves old content (if cached by the CDN) while it's fetching the new content
84
+ * to minimize wait time.
85
+ */
86
+ waitForLoadingNewContent?: boolean;
87
+
88
+ /**
89
+ * Extra headers added to request
90
+ */
91
+ customHeaders?: IHeader[];
92
+
93
+ /**
94
+ * Cancel token
95
+ */
96
+ cancelToken?: IHttpCancelRequestToken<any>;
97
+ }
98
+
99
+ export interface IDeliveryErrorRaw {
100
+ message: string;
101
+ request_id: string | null;
102
+ error_code: number;
103
+ specific_code: number;
104
+ }
105
+
106
+ export class DeliveryError {
107
+ public message: string;
108
+ public requestId: string | null;
109
+ public errorCode: number;
110
+ public specificCode: number;
111
+
112
+ constructor(data: { message: string; requestId: string | null; errorCode: number; specificCode: number }) {
113
+ this.message = data.message;
114
+ this.requestId = data.requestId;
115
+ this.errorCode = data.errorCode;
116
+ this.specificCode = data.specificCode;
117
+ }
118
+ }