@kontent-ai/core-sdk 12.0.0-preview.2 → 12.0.0-preview.20

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 (127) hide show
  1. package/.npmignore +1 -5
  2. package/LICENSE.md +1 -1
  3. package/README.md +177 -12
  4. package/dist/core-sdk-info.d.ts +2 -0
  5. package/dist/core-sdk-info.js +6 -0
  6. package/dist/core-sdk-info.js.map +1 -0
  7. package/dist/devkit/console.utils.d.ts +2 -0
  8. package/dist/devkit/console.utils.js +5 -0
  9. package/dist/devkit/console.utils.js.map +1 -0
  10. package/dist/devkit/environment.utils.d.ts +2 -0
  11. package/dist/devkit/environment.utils.js +12 -0
  12. package/dist/devkit/environment.utils.js.map +1 -0
  13. package/dist/devkit/script.utils.js +3 -3
  14. package/dist/devkit/script.utils.js.map +1 -1
  15. package/dist/devkit_api.d.ts +3 -0
  16. package/dist/devkit_api.js +3 -1
  17. package/dist/devkit_api.js.map +1 -1
  18. package/dist/http/http.adapter.d.ts +1 -1
  19. package/dist/http/http.adapter.js +78 -24
  20. package/dist/http/http.adapter.js.map +1 -1
  21. package/dist/http/http.models.d.ts +42 -32
  22. package/dist/http/http.service.js +294 -220
  23. package/dist/http/http.service.js.map +1 -1
  24. package/dist/models/core.models.d.ts +34 -29
  25. package/dist/models/error.models.d.ts +48 -27
  26. package/dist/models/error.models.js +40 -1
  27. package/dist/models/error.models.js.map +1 -1
  28. package/dist/models/json.models.d.ts +13 -4
  29. package/dist/models/json.models.js +10 -1
  30. package/dist/models/json.models.js.map +1 -1
  31. package/dist/models/utility.types.d.ts +16 -0
  32. package/dist/models/utility.types.js +2 -0
  33. package/dist/models/utility.types.js.map +1 -0
  34. package/dist/public_api.d.ts +19 -11
  35. package/dist/public_api.js +15 -6
  36. package/dist/public_api.js.map +1 -1
  37. package/dist/sdk/queries/fetch-sdk-query.d.ts +7 -0
  38. package/dist/sdk/queries/fetch-sdk-query.js +28 -0
  39. package/dist/sdk/queries/fetch-sdk-query.js.map +1 -0
  40. package/dist/sdk/queries/mutation-sdk-query.d.ts +4 -0
  41. package/dist/sdk/queries/mutation-sdk-query.js +17 -0
  42. package/dist/sdk/queries/mutation-sdk-query.js.map +1 -0
  43. package/dist/sdk/queries/paged-fetch-sdk-query.d.ts +10 -0
  44. package/dist/sdk/queries/paged-fetch-sdk-query.js +145 -0
  45. package/dist/sdk/queries/paged-fetch-sdk-query.js.map +1 -0
  46. package/dist/sdk/resolve-query.d.ts +8 -0
  47. package/dist/sdk/resolve-query.js +105 -0
  48. package/dist/sdk/resolve-query.js.map +1 -0
  49. package/dist/sdk/sdk-config.d.ts +3 -0
  50. package/dist/sdk/sdk-config.js +4 -0
  51. package/dist/sdk/sdk-config.js.map +1 -0
  52. package/dist/sdk/sdk-models.d.ts +100 -36
  53. package/dist/sdk/sdk-utils.d.ts +2 -0
  54. package/dist/sdk/sdk-utils.js +9 -0
  55. package/dist/sdk/sdk-utils.js.map +1 -0
  56. package/dist/testkit/poll.utils.d.ts +5 -0
  57. package/dist/testkit/poll.utils.js +24 -0
  58. package/dist/testkit/poll.utils.js.map +1 -0
  59. package/dist/testkit/testkit.utils.d.ts +20 -0
  60. package/dist/testkit/testkit.utils.js +100 -0
  61. package/dist/testkit/testkit.utils.js.map +1 -0
  62. package/dist/testkit_api.d.ts +3 -1
  63. package/dist/testkit_api.js +3 -2
  64. package/dist/testkit_api.js.map +1 -1
  65. package/dist/utils/abort.utils.d.ts +12 -0
  66. package/dist/utils/abort.utils.js +29 -0
  67. package/dist/utils/abort.utils.js.map +1 -0
  68. package/dist/utils/core.utils.d.ts +3 -1
  69. package/dist/utils/core.utils.js +22 -2
  70. package/dist/utils/core.utils.js.map +1 -1
  71. package/dist/utils/error.utils.d.ts +18 -7
  72. package/dist/utils/error.utils.js +35 -7
  73. package/dist/utils/error.utils.js.map +1 -1
  74. package/dist/utils/header.utils.d.ts +6 -1
  75. package/dist/utils/header.utils.js +37 -6
  76. package/dist/utils/header.utils.js.map +1 -1
  77. package/dist/utils/retry.utils.d.ts +16 -11
  78. package/dist/utils/retry.utils.js +131 -63
  79. package/dist/utils/retry.utils.js.map +1 -1
  80. package/dist/utils/sdk-version.utils.js +2 -2
  81. package/dist/utils/sdk-version.utils.js.map +1 -1
  82. package/dist/utils/try-catch.utils.d.ts +15 -0
  83. package/dist/utils/{try.utils.js → try-catch.utils.js} +1 -1
  84. package/dist/utils/try-catch.utils.js.map +1 -0
  85. package/dist/utils/type.utils.d.ts +2 -0
  86. package/dist/utils/type.utils.js +5 -0
  87. package/dist/utils/type.utils.js.map +1 -0
  88. package/dist/utils/url.utils.d.ts +5 -0
  89. package/dist/utils/url.utils.js +10 -0
  90. package/dist/utils/url.utils.js.map +1 -0
  91. package/package.json +18 -19
  92. package/dist/models/utility.models.d.ts +0 -20
  93. package/dist/models/utility.models.js +0 -2
  94. package/dist/models/utility.models.js.map +0 -1
  95. package/dist/sdk/sdk-queries.d.ts +0 -30
  96. package/dist/sdk/sdk-queries.js +0 -152
  97. package/dist/sdk/sdk-queries.js.map +0 -1
  98. package/dist/sdk-info.d.ts +0 -5
  99. package/dist/sdk-info.js +0 -6
  100. package/dist/sdk-info.js.map +0 -1
  101. package/dist/testkit/test.utils.d.ts +0 -15
  102. package/dist/testkit/test.utils.js +0 -42
  103. package/dist/testkit/test.utils.js.map +0 -1
  104. package/dist/utils/try.utils.d.ts +0 -14
  105. package/dist/utils/try.utils.js.map +0 -1
  106. package/lib/devkit/script.utils.ts +0 -12
  107. package/lib/devkit_api.ts +0 -3
  108. package/lib/http/http.adapter.ts +0 -38
  109. package/lib/http/http.models.ts +0 -122
  110. package/lib/http/http.service.ts +0 -320
  111. package/lib/models/core.models.ts +0 -89
  112. package/lib/models/error.models.ts +0 -83
  113. package/lib/models/json.models.ts +0 -9
  114. package/lib/models/utility.models.ts +0 -21
  115. package/lib/public_api.ts +0 -45
  116. package/lib/sdk/sdk-models.ts +0 -85
  117. package/lib/sdk/sdk-queries.ts +0 -232
  118. package/lib/sdk-info.ts +0 -5
  119. package/lib/testkit/test.utils.ts +0 -79
  120. package/lib/testkit/testkit.models.ts +0 -7
  121. package/lib/testkit_api.ts +0 -3
  122. package/lib/utils/core.utils.ts +0 -3
  123. package/lib/utils/error.utils.ts +0 -48
  124. package/lib/utils/header.utils.ts +0 -40
  125. package/lib/utils/retry.utils.ts +0 -156
  126. package/lib/utils/sdk-version.utils.ts +0 -16
  127. package/lib/utils/try.utils.ts +0 -30
@@ -1,247 +1,321 @@
1
- import { sdkInfo } from "../sdk-info.js";
2
- import { isNotUndefined } from "../utils/core.utils.js";
3
- import { getErrorMessage } from "../utils/error.utils.js";
4
- import { getSdkIdHeader } from "../utils/header.utils.js";
5
- import { runWithRetryAsync, toRequiredRetryStrategyOptions } from "../utils/retry.utils.js";
6
- import { tryCatch, tryCatchAsync } from "../utils/try.utils.js";
1
+ import { match, P } from "ts-pattern";
2
+ import { coreSdkInfo } from "../core-sdk-info.js";
3
+ import { isBlob, isDefined } from "../utils/core.utils.js";
4
+ import { createSdkError, isAdapterAbortError, isAdapterParseError, isKontentErrorResponseData, isKontentSdkError, toInvalidResponseMessage, } from "../utils/error.utils.js";
5
+ import { findHeaderByName, getSdkIdHeader, isApplicationJsonResponseType } from "../utils/header.utils.js";
6
+ import { resolveDefaultRetryStrategyOptions, runWithRetry } from "../utils/retry.utils.js";
7
+ import { tryCatch, tryCatchAsync } from "../utils/try-catch.utils.js";
7
8
  import { getDefaultHttpAdapter } from "./http.adapter.js";
8
9
  export function getDefaultHttpService(config) {
9
- const withUnknownErrorHandlingAsync = async ({ url, funcAsync, }) => {
10
- const { success, data, error } = await tryCatchAsync(funcAsync);
11
- if (success) {
12
- return data;
13
- }
14
- return {
15
- success: false,
16
- error: {
17
- reason: "unknown",
18
- message: "Unknown error. See the error object for more details.",
19
- url: url,
20
- originalError: error,
21
- },
22
- };
23
- };
24
- const resolveRequestAsync = async ({ options, resolveDataAsync, }) => {
25
- return await withUnknownErrorHandlingAsync({
26
- url: options.url,
27
- funcAsync: async () => {
28
- const adapter = config?.adapter ?? getDefaultHttpAdapter();
29
- const getCombinedRequestHeaders = () => {
30
- return getRequestHeaders([...(config?.requestHeaders ?? []), ...(options.requestHeaders ?? [])], options.body);
31
- };
32
- const getRequestBody = () => {
33
- if (options.body === null) {
34
- return {
35
- success: true,
36
- data: null,
37
- };
38
- }
39
- if (options.body instanceof Blob) {
40
- return {
41
- success: true,
42
- data: options.body,
43
- };
44
- }
45
- const { success, data: parsedBody, error } = tryCatch(() => JSON.stringify(options.body));
46
- if (!success) {
47
- return {
48
- success: false,
49
- error: {
50
- message: "Failed to stringify body of request.",
51
- url: options.url,
52
- reason: "invalidBody",
53
- originalError: error,
54
- },
55
- };
56
- }
57
- return {
58
- success: true,
59
- data: parsedBody,
60
- };
61
- };
62
- const getUrl = () => {
63
- const { success, data: parsedUrl, error } = tryCatch(() => new URL(options.url));
64
- if (!success) {
65
- return {
66
- success: false,
67
- error: {
68
- message: `Failed to parse url '${options.url}'.`,
69
- url: options.url,
70
- reason: "invalidUrl",
71
- originalError: error,
72
- },
73
- };
74
- }
75
- return {
76
- success: true,
77
- data: parsedUrl,
78
- };
79
- };
80
- const requestHeaders = getCombinedRequestHeaders();
81
- const retryStrategyOptions = toRequiredRetryStrategyOptions(config?.retryStrategy);
82
- const withRetryAsync = async (funcAsync) => {
83
- return await runWithRetryAsync({
84
- url: options.url,
85
- retryStrategyOptions,
86
- retryAttempt: 0,
87
- requestHeaders,
88
- method: options.method,
89
- funcAsync: async () => {
90
- return await funcAsync();
91
- },
92
- });
93
- };
94
- const { success: urlParsedSuccess, data: parsedUrl, error: urlError } = getUrl();
95
- if (!urlParsedSuccess) {
96
- return {
97
- success: false,
98
- error: urlError,
99
- };
100
- }
101
- const { success: requestBodyParsedSuccess, data: requestBody, error: requestBodyError } = getRequestBody();
102
- if (!requestBodyParsedSuccess) {
103
- return {
104
- success: false,
105
- error: requestBodyError,
106
- };
107
- }
108
- const getResponseAsync = async () => {
109
- return await adapter.requestAsync({
110
- url: parsedUrl.toString(),
111
- method: options.method,
112
- requestHeaders,
113
- body: requestBody,
114
- });
115
- };
116
- const getErrorForInvalidResponseAsync = async (response) => {
117
- const sharedErrorData = {
118
- message: getErrorMessage({
119
- url: options.url,
120
- adapterResponse: response,
121
- method: options.method,
122
- }),
123
- url: options.url,
124
- };
125
- if (response.status === 404) {
126
- const error = {
127
- ...sharedErrorData,
128
- reason: "notFound",
129
- isValidResponse: response.isValidResponse,
130
- responseHeaders: response.responseHeaders,
131
- status: 404,
132
- statusText: response.statusText,
133
- kontentErrorResponse: await getKontentErrorDataAsync(response),
134
- };
135
- return error;
136
- }
137
- const error = {
138
- ...sharedErrorData,
139
- reason: "invalidResponse",
140
- isValidResponse: response.isValidResponse,
141
- responseHeaders: response.responseHeaders,
142
- status: response.status,
143
- statusText: response.statusText,
144
- kontentErrorResponse: await getKontentErrorDataAsync(response),
145
- };
146
- return error;
147
- };
148
- const resolveResponseAsync = async (response) => {
149
- if (!response.isValidResponse) {
150
- return {
151
- success: false,
152
- error: await getErrorForInvalidResponseAsync(response),
153
- };
154
- }
155
- return {
156
- success: true,
157
- response: {
158
- data: await resolveDataAsync(response),
159
- body: options.body,
160
- method: options.method,
161
- adapterResponse: {
162
- isValidResponse: response.isValidResponse,
163
- responseHeaders: response.responseHeaders,
164
- status: response.status,
165
- statusText: response.statusText,
166
- },
167
- requestHeaders: requestHeaders,
168
- },
169
- };
170
- };
171
- return await withRetryAsync(async () => await resolveResponseAsync(await getResponseAsync()));
172
- },
173
- });
10
+ const adapter = resolveHttpAdapter(config);
11
+ const executeWithAdapter = async ({ parsedUrl, method, requestHeaders, parsedBody, abortSignal, }) => {
12
+ return (await adapter.executeRequest({
13
+ url: parsedUrl.toString(),
14
+ method,
15
+ requestHeaders,
16
+ body: parsedBody ?? null,
17
+ abortSignal,
18
+ }));
174
19
  };
175
20
  return {
176
- requestAsync: async (options) => {
177
- return await resolveRequestAsync({
21
+ request: async (options) => {
22
+ return await processHttpRequest({
23
+ config,
178
24
  options,
179
- resolveDataAsync: async (response) => {
180
- return (await response.toJsonAsync());
181
- },
25
+ runAdapterFunc: executeWithAdapter,
182
26
  });
183
27
  },
184
- downloadFileAsync: async (options) => {
185
- return await resolveRequestAsync({
28
+ downloadFile: async (options) => {
29
+ return await processHttpRequest({
30
+ config,
186
31
  options: {
187
32
  ...options,
188
33
  method: "GET",
189
- body: null,
190
34
  },
191
- resolveDataAsync: async (response) => {
192
- return await response.toBlobAsync();
35
+ runAdapterFunc: async ({ parsedUrl, requestHeaders }) => {
36
+ return await adapter.downloadFile({
37
+ url: parsedUrl.toString(),
38
+ requestHeaders,
39
+ abortSignal: options.abortSignal,
40
+ });
193
41
  },
194
42
  });
195
43
  },
196
- uploadFileAsync: async (options) => {
197
- return await resolveRequestAsync({
44
+ uploadFile: async (options) => {
45
+ return await processHttpRequest({
46
+ config,
198
47
  options,
199
- resolveDataAsync: async (response) => {
200
- return (await response.toJsonAsync());
201
- },
48
+ runAdapterFunc: executeWithAdapter,
202
49
  });
203
50
  },
204
51
  };
205
52
  }
206
- async function getKontentErrorDataAsync(response) {
207
- if (response.responseHeaders
208
- .find((header) => header.name.toLowerCase() === "Content-Type".toLowerCase())
209
- ?.value.toLowerCase()
210
- .includes("application/json")) {
211
- const json = (await response.toJsonAsync());
212
- // We check the existence of 'message' property which should always be set when the error is a Kontent API error
213
- if (!json.message) {
214
- return undefined;
215
- }
53
+ function resolveHttpAdapter(config) {
54
+ const defaultAdapter = getDefaultHttpAdapter();
55
+ return {
56
+ downloadFile: config?.adapter?.downloadFile ?? defaultAdapter.downloadFile,
57
+ executeRequest: config?.adapter?.executeRequest ?? defaultAdapter.executeRequest,
58
+ };
59
+ }
60
+ async function processHttpRequest({ options, runAdapterFunc, config, }) {
61
+ const retryStrategyOptions = resolveDefaultRetryStrategyOptions(config?.retryStrategy);
62
+ const { success, data: parsedRequest, error } = parseAndValidateRequest({ options, retryStrategyOptions, config });
63
+ if (!success) {
64
+ return {
65
+ success: false,
66
+ error: error,
67
+ };
68
+ }
69
+ return await runWithRetry({
70
+ retryAttempt: 0,
71
+ abortSignal: options.abortSignal,
72
+ func: async (retryAttempt) => {
73
+ const responseOrError = await runAdapterRequest({
74
+ parsedUrl: parsedRequest.parsedUrl,
75
+ method: options.method,
76
+ requestHeaders: parsedRequest.requestHeaders,
77
+ parsedBody: parsedRequest.parsedBody,
78
+ runAdapterRequest: runAdapterFunc,
79
+ abortSignal: options.abortSignal,
80
+ retryAttempt,
81
+ retryStrategyOptions,
82
+ });
83
+ if (isKontentSdkError(responseOrError)) {
84
+ return {
85
+ success: false,
86
+ error: responseOrError,
87
+ };
88
+ }
89
+ return mapAdapterResponse({
90
+ retryStrategyOptions,
91
+ method: options.method,
92
+ requestHeaders: parsedRequest.requestHeaders,
93
+ response: responseOrError,
94
+ retryAttempt,
95
+ ...(options.body === undefined ? {} : { requestBody: options.body }),
96
+ });
97
+ },
98
+ url: options.url,
99
+ retryStrategyOptions,
100
+ });
101
+ }
102
+ function createAdapterError({ url, error, retryAttempt, retryStrategyOptions, }) {
103
+ return match(error)
104
+ .returnType()
105
+ .when(isAdapterAbortError, (abortError) => createSdkError({
106
+ baseErrorData: {
107
+ message: `Adapter has aborted the request for url '${url}'. See the error object for more details.`,
108
+ url: url,
109
+ retryStrategyOptions,
110
+ retryAttempt,
111
+ },
112
+ details: {
113
+ reason: "aborted",
114
+ originalError: abortError,
115
+ },
116
+ }))
117
+ .when(isAdapterParseError, (parseError) => createSdkError({
118
+ baseErrorData: {
119
+ message: `Adapter failed to parse the response for url '${url}'. See the error object for more details.`,
120
+ url: url,
121
+ retryStrategyOptions,
122
+ retryAttempt,
123
+ },
124
+ details: {
125
+ reason: "parseError",
126
+ originalError: parseError,
127
+ },
128
+ }))
129
+ .otherwise(() => createSdkError({
130
+ baseErrorData: {
131
+ message: `Adapter failed to execute the request for url '${url}'. See the error object for more details.`,
132
+ url: url,
133
+ retryStrategyOptions,
134
+ retryAttempt,
135
+ },
136
+ details: {
137
+ reason: "adapterError",
138
+ originalError: error,
139
+ },
140
+ }));
141
+ }
142
+ function mapAdapterResponse({ response, method, requestHeaders, requestBody, retryAttempt, retryStrategyOptions, }) {
143
+ if (!isSuccessfulResponse(response)) {
216
144
  return {
217
- ...json,
218
- message: json.message,
145
+ success: false,
146
+ error: createInvalidResponseError({ response, method, retryAttempt, retryStrategyOptions }),
219
147
  };
220
148
  }
149
+ return {
150
+ success: true,
151
+ response: {
152
+ payload: response.payload,
153
+ method: method,
154
+ adapterResponse: response,
155
+ requestHeaders: requestHeaders,
156
+ ...(requestBody === undefined ? {} : { body: requestBody }),
157
+ },
158
+ };
159
+ }
160
+ async function runAdapterRequest({ parsedUrl, method, requestHeaders, parsedBody, runAdapterRequest, abortSignal, retryAttempt, retryStrategyOptions, }) {
161
+ const { error, data } = await tryCatchAsync(async () => await runAdapterRequest({
162
+ parsedUrl,
163
+ method,
164
+ requestHeaders,
165
+ parsedBody,
166
+ abortSignal,
167
+ }));
168
+ return data ?? createAdapterError({ url: parsedUrl.toString(), error, retryAttempt, retryStrategyOptions });
169
+ }
170
+ function isSuccessfulResponse(response) {
171
+ return response.status >= 200 && response.status < 300;
172
+ }
173
+ function createInvalidResponseError({ response, method, retryAttempt, retryStrategyOptions, }) {
174
+ return createSdkError({
175
+ baseErrorData: {
176
+ message: toInvalidResponseMessage({
177
+ url: response.url,
178
+ adapterResponse: response,
179
+ method: method,
180
+ }),
181
+ url: response.url,
182
+ retryAttempt,
183
+ retryStrategyOptions,
184
+ },
185
+ details: extractInvalidResponseErrorDetails({ response }),
186
+ });
187
+ }
188
+ function extractInvalidResponseErrorDetails({ response }) {
189
+ const reason = match(response.status)
190
+ .returnType()
191
+ .with(401, () => "unauthorized")
192
+ .with(404, () => "notFound")
193
+ .otherwise(() => "invalidResponse");
194
+ return {
195
+ reason,
196
+ responseHeaders: response.responseHeaders,
197
+ status: response.status,
198
+ statusText: response.statusText,
199
+ kontentErrorResponse: tryExtractKontentErrorData(response),
200
+ };
201
+ }
202
+ function parseRequestBody({ requestBody, url, retryStrategyOptions, }) {
203
+ return match(requestBody)
204
+ .returnType()
205
+ .with(P.nullish, () => ({
206
+ success: true,
207
+ data: null,
208
+ }))
209
+ .when(isBlob, (blob) => ({
210
+ success: true,
211
+ data: blob,
212
+ }))
213
+ .otherwise((m) => stringifyJson({ url, retryStrategyOptions, json: m }));
214
+ }
215
+ function stringifyJson({ url, retryStrategyOptions, json, }) {
216
+ const { success, data, error } = tryCatch(() => JSON.stringify(json));
217
+ if (success) {
218
+ return {
219
+ success: true,
220
+ data,
221
+ };
222
+ }
223
+ return {
224
+ success: false,
225
+ error: createSdkError({
226
+ baseErrorData: {
227
+ message: "Failed to stringify body of the request.",
228
+ url: url,
229
+ retryStrategyOptions,
230
+ retryAttempt: 0,
231
+ },
232
+ details: {
233
+ reason: "invalidBody",
234
+ originalError: error,
235
+ },
236
+ }),
237
+ };
238
+ }
239
+ function tryExtractKontentErrorData(response) {
240
+ if (isApplicationJsonResponseType(response.responseHeaders) && isKontentErrorResponseData(response.payload)) {
241
+ return response.payload;
242
+ }
221
243
  return undefined;
222
244
  }
223
- function getRequestHeaders(headers, body) {
224
- const existingContentTypeHeader = headers?.find((header) => header.name.toLowerCase() === "Content-Type".toLowerCase());
225
- const existingSdkVersionHeader = headers?.find((header) => header.name.toLowerCase() === "X-KC-SDKID".toLowerCase());
226
- const contentTypeHeader = existingContentTypeHeader
227
- ? undefined
228
- : {
229
- name: "Content-Type",
230
- value: body instanceof Blob ? body.type : "application/json",
245
+ function parseAndValidateRequest({ options, retryStrategyOptions, config, }) {
246
+ const { success: urlParsedSuccess, data: parsedUrl, error: urlError } = parseUrl({ url: options.url, retryStrategyOptions });
247
+ if (!urlParsedSuccess) {
248
+ return {
249
+ success: false,
250
+ error: urlError,
231
251
  };
232
- const sdkVersionHeader = existingSdkVersionHeader
233
- ? undefined
234
- : getSdkIdHeader({
235
- host: sdkInfo.host,
236
- name: sdkInfo.name,
237
- version: sdkInfo.version,
238
- });
239
- const contentLengthHeader = body instanceof Blob
240
- ? {
241
- name: "Content-Length",
242
- value: body.size.toString(),
243
- }
244
- : undefined;
245
- return [...(headers ?? []), contentTypeHeader, contentLengthHeader, sdkVersionHeader].filter(isNotUndefined);
252
+ }
253
+ const { success: requestBodyParsedSuccess, data: parsedRequestBody, error: requestBodyError, } = parseRequestBody({ requestBody: options.body ?? null, url: options.url, retryStrategyOptions });
254
+ if (!requestBodyParsedSuccess) {
255
+ return {
256
+ success: false,
257
+ error: requestBodyError,
258
+ };
259
+ }
260
+ return {
261
+ success: true,
262
+ data: {
263
+ parsedUrl,
264
+ parsedBody: parsedRequestBody,
265
+ requestHeaders: buildRequestHeaders({
266
+ configHeaders: config?.requestHeaders,
267
+ optionHeaders: options.requestHeaders,
268
+ body: options.body ?? null,
269
+ }),
270
+ },
271
+ };
272
+ }
273
+ function parseUrl({ url, retryStrategyOptions, }) {
274
+ const { success, data: parsedUrl, error } = tryCatch(() => new URL(url));
275
+ if (success) {
276
+ return {
277
+ success: true,
278
+ data: parsedUrl,
279
+ };
280
+ }
281
+ return {
282
+ success: false,
283
+ error: createSdkError({
284
+ baseErrorData: {
285
+ message: `Failed to parse url '${url}'.`,
286
+ url: url,
287
+ retryStrategyOptions,
288
+ retryAttempt: 0,
289
+ },
290
+ details: {
291
+ reason: "invalidUrl",
292
+ originalError: error,
293
+ },
294
+ }),
295
+ };
296
+ }
297
+ function buildRequestHeaders({ configHeaders, optionHeaders, body, }) {
298
+ const combinedHeaders = [...(configHeaders ?? []), ...(optionHeaders ?? [])];
299
+ const existingContentTypeHeader = findHeaderByName(combinedHeaders, "Content-Type");
300
+ const existingSdkVersionHeader = findHeaderByName(combinedHeaders, "X-KC-SDKID");
301
+ const contentTypeHeader = match({ existingContentTypeHeader, body })
302
+ .returnType()
303
+ .with({ existingContentTypeHeader: P.nullish, body: P.nonNullable }, ({ body }) => createDefaultContentTypeHeader(body))
304
+ .otherwise(() => undefined);
305
+ const sdkVersionHeader = existingSdkVersionHeader ? undefined : getSdkIdHeader(coreSdkInfo);
306
+ const contentLengthHeader = isBlob(body) ? createDefaultContentLengthHeader(body) : undefined;
307
+ return [...combinedHeaders, contentTypeHeader, contentLengthHeader, sdkVersionHeader].filter(isDefined);
308
+ }
309
+ function createDefaultContentTypeHeader(body) {
310
+ return {
311
+ name: "Content-Type",
312
+ value: isBlob(body) ? body.type : "application/json",
313
+ };
314
+ }
315
+ function createDefaultContentLengthHeader(body) {
316
+ return {
317
+ name: "Content-Length",
318
+ value: body.size.toString(),
319
+ };
246
320
  }
247
321
  //# sourceMappingURL=http.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.service.js","sourceRoot":"","sources":["../../lib/http/http.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.service.js","sourceRoot":"","sources":["../../lib/http/http.service.ts"],"names":[],"mappings":"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"}