@commercetools/ts-client 0.0.0-beta.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 (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/dist/commercetools-ts-client.browser.cjs.js +1534 -0
  4. package/dist/commercetools-ts-client.browser.esm.js +1512 -0
  5. package/dist/commercetools-ts-client.cjs.d.ts +1 -0
  6. package/dist/commercetools-ts-client.cjs.dev.js +1534 -0
  7. package/dist/commercetools-ts-client.cjs.js +7 -0
  8. package/dist/commercetools-ts-client.cjs.prod.js +1534 -0
  9. package/dist/commercetools-ts-client.esm.js +1512 -0
  10. package/dist/declarations/src/client/builder.d.ts +33 -0
  11. package/dist/declarations/src/client/client.d.ts +6 -0
  12. package/dist/declarations/src/client/index.d.ts +3 -0
  13. package/dist/declarations/src/index.d.ts +12 -0
  14. package/dist/declarations/src/middleware/auth-middleware/anonymous-session-flow.d.ts +2 -0
  15. package/dist/declarations/src/middleware/auth-middleware/auth-request-builder.d.ts +24 -0
  16. package/dist/declarations/src/middleware/auth-middleware/auth-request-executor.d.ts +2 -0
  17. package/dist/declarations/src/middleware/auth-middleware/client-credentials-flow.d.ts +2 -0
  18. package/dist/declarations/src/middleware/auth-middleware/existing-token-flow.d.ts +2 -0
  19. package/dist/declarations/src/middleware/auth-middleware/index.d.ts +6 -0
  20. package/dist/declarations/src/middleware/auth-middleware/password-flow.d.ts +2 -0
  21. package/dist/declarations/src/middleware/auth-middleware/refresh-token-flow.d.ts +2 -0
  22. package/dist/declarations/src/middleware/create-concurrent-modification-middleware.d.ts +2 -0
  23. package/dist/declarations/src/middleware/create-correlation-id-middleware.d.ts +2 -0
  24. package/dist/declarations/src/middleware/create-error-middleware.d.ts +2 -0
  25. package/dist/declarations/src/middleware/create-http-middleware.d.ts +2 -0
  26. package/dist/declarations/src/middleware/create-logger-middleware.d.ts +2 -0
  27. package/dist/declarations/src/middleware/create-queue-middleware.d.ts +2 -0
  28. package/dist/declarations/src/middleware/create-retry-middleware.d.ts +2 -0
  29. package/dist/declarations/src/middleware/create-user-agent-middleware.d.ts +2 -0
  30. package/dist/declarations/src/middleware/index.d.ts +9 -0
  31. package/dist/declarations/src/types/types.d.ts +336 -0
  32. package/dist/declarations/src/utils/constants.d.ts +5 -0
  33. package/dist/declarations/src/utils/executor.d.ts +2 -0
  34. package/dist/declarations/src/utils/generateID.d.ts +1 -0
  35. package/dist/declarations/src/utils/headers.d.ts +2 -0
  36. package/dist/declarations/src/utils/index.d.ts +16 -0
  37. package/dist/declarations/src/utils/isBuffer.d.ts +1 -0
  38. package/dist/declarations/src/utils/logger.d.ts +2 -0
  39. package/dist/declarations/src/utils/maskAuthData.d.ts +2 -0
  40. package/dist/declarations/src/utils/mergeAuthHeader.d.ts +2 -0
  41. package/dist/declarations/src/utils/methods.d.ts +2 -0
  42. package/dist/declarations/src/utils/retryDelay.d.ts +8 -0
  43. package/dist/declarations/src/utils/sleep.d.ts +1 -0
  44. package/dist/declarations/src/utils/tokenCacheKey.d.ts +2 -0
  45. package/dist/declarations/src/utils/tokenExpirationTime.d.ts +1 -0
  46. package/dist/declarations/src/utils/tokenStore.d.ts +2 -0
  47. package/dist/declarations/src/utils/userAgent.d.ts +2 -0
  48. package/dist/declarations/src/utils/validate.d.ts +30 -0
  49. package/package.json +62 -0
@@ -0,0 +1,33 @@
1
+ import { Client, AuthMiddlewareOptions, CorrelationIdMiddlewareOptions, Credentials, ExistingTokenMiddlewareOptions, HttpMiddlewareOptions, HttpUserAgentOptions, Middleware, PasswordAuthMiddlewareOptions, QueueMiddlewareOptions, RefreshAuthMiddlewareOptions, LoggerMiddlewareOptions, RetryMiddlewareOptions, ErrorMiddlewareOptions } from '../types/types';
2
+ export default class ClientBuilder {
3
+ private projectKey;
4
+ private authMiddleware;
5
+ private httpMiddleware;
6
+ private userAgentMiddleware;
7
+ private correlationIdMiddleware;
8
+ private loggerMiddleware;
9
+ private queueMiddleware;
10
+ private retryMiddleware;
11
+ private concurrentMiddleware;
12
+ private errorMiddleware;
13
+ private middlewares;
14
+ constructor();
15
+ withProjectKey(key: string): ClientBuilder;
16
+ defaultClient(baseUri: string, credentials: Credentials, oauthUri?: string, projectKey?: string, scopes?: Array<string>, httpClient?: Function): ClientBuilder;
17
+ private withAuthMiddleware;
18
+ withMiddleware(middleware: Middleware): ClientBuilder;
19
+ withClientCredentialsFlow(options: AuthMiddlewareOptions): ClientBuilder;
20
+ withPasswordFlow(options: PasswordAuthMiddlewareOptions): ClientBuilder;
21
+ withAnonymousSessionFlow(options: AuthMiddlewareOptions): ClientBuilder;
22
+ withRefreshTokenFlow(options: RefreshAuthMiddlewareOptions): ClientBuilder;
23
+ withRetryMiddleware(options: RetryMiddlewareOptions): ClientBuilder;
24
+ withExistingTokenFlow(authorization: string, options?: ExistingTokenMiddlewareOptions): ClientBuilder;
25
+ withHttpMiddleware(options: HttpMiddlewareOptions): ClientBuilder;
26
+ withUserAgentMiddleware(options?: HttpUserAgentOptions): ClientBuilder;
27
+ withQueueMiddleware(options?: QueueMiddlewareOptions): ClientBuilder;
28
+ withLoggerMiddleware(options?: LoggerMiddlewareOptions): this;
29
+ withCorrelationIdMiddleware(options?: CorrelationIdMiddlewareOptions): ClientBuilder;
30
+ withConcurrentModificationMiddleware(): ClientBuilder;
31
+ withErrorMiddleware(options?: ErrorMiddlewareOptions): ClientBuilder;
32
+ build(): Client;
33
+ }
@@ -0,0 +1,6 @@
1
+ import { ClientResult, ClientRequest, ClientOptions, ProcessFn, ProcessOptions } from '../types/types';
2
+ export declare function process(request: ClientRequest, fn: ProcessFn, processOpt?: ProcessOptions): Promise<Array<ClientRequest>>;
3
+ export default function createClient(middlewares: ClientOptions): {
4
+ process: typeof process;
5
+ execute(request: ClientRequest): Promise<ClientResult>;
6
+ };
@@ -0,0 +1,3 @@
1
+ export { default as createClient } from './client';
2
+ export { default as ClientBuilder } from './builder';
3
+ export { process as Process } from './client';
@@ -0,0 +1,12 @@
1
+ export { ClientBuilder, createClient, Process } from './client';
2
+ export { createAuthMiddlewareForAnonymousSessionFlow } from './middleware';
3
+ export { createAuthMiddlewareForClientCredentialsFlow } from './middleware';
4
+ export { createAuthMiddlewareForExistingTokenFlow } from './middleware';
5
+ export { createAuthMiddlewareForPasswordFlow } from './middleware';
6
+ export { createAuthMiddlewareForRefreshTokenFlow } from './middleware';
7
+ export { createCorrelationIdMiddleware } from './middleware';
8
+ export { createHttpMiddleware } from './middleware';
9
+ export { createLoggerMiddleware } from './middleware';
10
+ export { createQueueMiddleware } from './middleware';
11
+ export { createUserAgentMiddleware } from './middleware';
12
+ export * from './types/types.d';
@@ -0,0 +1,2 @@
1
+ import { Middleware, AuthMiddlewareOptions } from '../../types/types';
2
+ export default function createAuthMiddlewareForAnonymousSessionFlow(options: AuthMiddlewareOptions): Middleware;
@@ -0,0 +1,24 @@
1
+ import { IBuiltRequestParams, AuthMiddlewareOptions, RefreshAuthMiddlewareOptions, PasswordAuthMiddlewareOptions } from '../../types/types';
2
+ /**
3
+ *
4
+ * @param {AuthMiddlewareOptions} options
5
+ * @returns { IBuiltRequestParams } *
6
+ */
7
+ export declare function buildRequestForClientCredentialsFlow(options: AuthMiddlewareOptions): IBuiltRequestParams;
8
+ /**
9
+ *
10
+ * @param {AuthMiddlewareOptions} options
11
+ * @returns {IBuiltRequestParams} *
12
+ */
13
+ export declare function buildRequestForAnonymousSessionFlow(options: AuthMiddlewareOptions): IBuiltRequestParams;
14
+ /**
15
+ *
16
+ * @param {RefreshAuthMiddlewareOptions} options
17
+ * @returns {IBuiltRequestParams}
18
+ */
19
+ export declare function buildRequestForRefreshTokenFlow(options: RefreshAuthMiddlewareOptions): IBuiltRequestParams;
20
+ /**
21
+ * @param {PasswordAuthMiddlewareOptions} options
22
+ * @returns {IBuiltRequestParams}
23
+ */
24
+ export declare function buildRequestForPasswordFlow(options: PasswordAuthMiddlewareOptions): IBuiltRequestParams;
@@ -0,0 +1,2 @@
1
+ import { ClientRequest, executeRequestOptions } from '../../types/types';
2
+ export declare function executeRequest(options: executeRequestOptions): Promise<ClientRequest>;
@@ -0,0 +1,2 @@
1
+ import { Middleware, AuthMiddlewareOptions } from '../../types/types';
2
+ export default function createAuthMiddlewareForClientCredentialsFlow(options: AuthMiddlewareOptions): Middleware;
@@ -0,0 +1,2 @@
1
+ import { Middleware, ExistingTokenMiddlewareOptions } from '../../types/types';
2
+ export default function createAuthMiddlewareForExistingTokenFlow(authorization: string, options?: ExistingTokenMiddlewareOptions): Middleware;
@@ -0,0 +1,6 @@
1
+ import createAuthMiddlewareForPasswordFlow from './password-flow';
2
+ import createAuthMiddlewareForAnonymousSessionFlow from './anonymous-session-flow';
3
+ import createAuthMiddlewareForClientCredentialsFlow from './client-credentials-flow';
4
+ import createAuthMiddlewareForRefreshTokenFlow from './refresh-token-flow';
5
+ import createAuthMiddlewareForExistingTokenFlow from './existing-token-flow';
6
+ export { createAuthMiddlewareForPasswordFlow, createAuthMiddlewareForAnonymousSessionFlow, createAuthMiddlewareForClientCredentialsFlow, createAuthMiddlewareForRefreshTokenFlow, createAuthMiddlewareForExistingTokenFlow };
@@ -0,0 +1,2 @@
1
+ import { Middleware, PasswordAuthMiddlewareOptions } from '../../types/types';
2
+ export default function createAuthMiddlewareForPasswordFlow(options: PasswordAuthMiddlewareOptions): Middleware;
@@ -0,0 +1,2 @@
1
+ import { Middleware, RefreshAuthMiddlewareOptions } from '../../types/types';
2
+ export default function createAuthMiddlewareForRefreshTokenFlow(options: RefreshAuthMiddlewareOptions): Middleware;
@@ -0,0 +1,2 @@
1
+ import { Middleware } from '../types/types';
2
+ export default function createConcurrentModificationMiddleware(): Middleware;
@@ -0,0 +1,2 @@
1
+ import { Middleware, CorrelationIdMiddlewareOptions } from '../types/types';
2
+ export default function createCorrelationIdMiddleware(options?: CorrelationIdMiddlewareOptions): Middleware;
@@ -0,0 +1,2 @@
1
+ import { Middleware, ErrorMiddlewareOptions } from '../types/types';
2
+ export default function createErrorMiddleware(options?: ErrorMiddlewareOptions): Middleware;
@@ -0,0 +1,2 @@
1
+ import { Middleware, HttpMiddlewareOptions } from '../types/types';
2
+ export default function createHttpMiddleware(options: HttpMiddlewareOptions): Middleware;
@@ -0,0 +1,2 @@
1
+ import { Middleware, LoggerMiddlewareOptions } from '../types/types';
2
+ export default function createLoggerMiddleware(options?: LoggerMiddlewareOptions): Middleware;
@@ -0,0 +1,2 @@
1
+ import { Middleware, QueueMiddlewareOptions } from '../types/types';
2
+ export default function createQueueMiddleware({ concurrency, }: QueueMiddlewareOptions): Middleware;
@@ -0,0 +1,2 @@
1
+ import { Middleware, RetryMiddlewareOptions } from '../types/types';
2
+ export default function createRetryMiddleware(options: RetryMiddlewareOptions): Middleware;
@@ -0,0 +1,2 @@
1
+ import { HttpUserAgentOptions, Middleware } from '../types/types';
2
+ export default function createUserAgentMiddleware(options?: HttpUserAgentOptions): Middleware;
@@ -0,0 +1,9 @@
1
+ export { default as createCorrelationIdMiddleware } from './create-correlation-id-middleware';
2
+ export { default as createHttpMiddleware } from './create-http-middleware';
3
+ export { default as createQueueMiddleware } from './create-queue-middleware';
4
+ export { default as createRetryMiddleware } from './create-retry-middleware';
5
+ export { default as createLoggerMiddleware } from './create-logger-middleware';
6
+ export { default as createUserAgentMiddleware } from './create-user-agent-middleware';
7
+ export { default as createConcurrentModificationMiddleware } from './create-concurrent-modification-middleware';
8
+ export { default as createErrorMiddleware } from './create-error-middleware';
9
+ export { createAuthMiddlewareForPasswordFlow, createAuthMiddlewareForClientCredentialsFlow, createAuthMiddlewareForAnonymousSessionFlow, createAuthMiddlewareForExistingTokenFlow, createAuthMiddlewareForRefreshTokenFlow } from './auth-middleware';
@@ -0,0 +1,336 @@
1
+ import { Buffer } from 'buffer/'
2
+ import fetch from 'node-fetch'
3
+ import axios from 'axios'
4
+
5
+ export type Nullable<T> = T | null
6
+ export type JsonObject<T = unknown> = { [key: string]: T }
7
+ export type MiddlewareRequest = ClientRequest
8
+
9
+ export type Middleware = (next: Next) => (request: MiddlewareRequest) => Promise<MiddlewareResponse>
10
+
11
+ export type MiddlewareResponse = {
12
+ resolve(response: JsonObject): void;
13
+ reject(error: JsonObject): void;
14
+ body?: JsonObject;
15
+ error?: HttpErrorType;
16
+ statusCode: number;
17
+ // headers?: JsonObject<string>;
18
+ headers?: Record<string, any>
19
+ request?: MiddlewareRequest;
20
+ }
21
+
22
+ export type HttpErrorType = {
23
+ name?: string
24
+ message: string
25
+ code?: number
26
+ status?: number
27
+ method: MethodType
28
+ statusCode: number
29
+ originalRequest?: ClientRequest
30
+ body?: JsonObject
31
+ retryCount?: number
32
+ // headers?: JsonObject<QueryParam>
33
+ headers?: Record<string, any>
34
+ [key: string]: any
35
+ }
36
+
37
+ export interface ClientRequest {
38
+ baseUri?: string
39
+ uri?: string
40
+ // headers?: VariableMap
41
+ headers?: Record<string, any>
42
+ method: MethodType
43
+ uriTemplate?: string
44
+ pathVariables?: VariableMap
45
+ queryParams?: VariableMap
46
+ body?: string | Buffer
47
+ response?: ClientResponse
48
+ resolve?: (response: JsonObject) => void;
49
+ reject?: (error: JsonObject) => void;
50
+ [key: string]: any
51
+ }
52
+
53
+ export type Next = (request: MiddlewareRequest) => Promise<MiddlewareResponse>
54
+
55
+ export type MethodType =
56
+ | 'GET'
57
+ | 'HEAD'
58
+ | 'POST'
59
+ | 'PUT'
60
+ | 'PATCH'
61
+ | 'DELETE'
62
+ | 'CONNECT'
63
+ | 'OPTIONS'
64
+ | 'TRACE'
65
+
66
+ export type QueryParam =
67
+ | string
68
+ | string[]
69
+ | number
70
+ | number[]
71
+ | boolean
72
+ | boolean[]
73
+ | undefined
74
+
75
+ export type VariableMap = {
76
+ [key: string]: QueryParam
77
+ }
78
+
79
+ export type ClientResponse<T = any> = {
80
+ body?: T
81
+ statusCode?: number
82
+ // headers?: JsonObject<string>
83
+ headers?: Record<string, any>
84
+ error?: HttpErrorType
85
+ // request?: Object
86
+ }
87
+
88
+ export type ClientResult = ClientResponse
89
+ export type ClientOptions = { middlewares: Array<Middleware> }
90
+
91
+ export type Credentials = {
92
+ clientId: string
93
+ clientSecret: string
94
+ anonymousId?: string
95
+ }
96
+
97
+ export type AuthMiddlewareOptions = {
98
+ host: string
99
+ projectKey: string
100
+ credentials: Credentials
101
+ scopes?: Array<string>
102
+ // For internal usage only
103
+ oauthUri?: string
104
+ httpClient?: fetch | typeof axios
105
+ tokenCache?: TokenCache
106
+ }
107
+
108
+ export type TokenCacheOptions = {
109
+ clientId: string
110
+ projectKey: string
111
+ host: string
112
+ }
113
+
114
+ export type TokenStore = {
115
+ token: string
116
+ expirationTime?: number
117
+ refreshToken?: string
118
+ tokenCacheKey?: TokenCacheOptions
119
+ }
120
+
121
+ export type TokenCache = {
122
+ get: (tokenCacheOptions?: TokenCacheOptions) => TokenStore
123
+ set: (cache: TokenStore, tokenCacheOptions?: TokenCacheOptions) => void
124
+ }
125
+
126
+ export type IBuiltRequestParams = {
127
+ basicAuth: string
128
+ url: string
129
+ body: string
130
+ data?: string
131
+ }
132
+
133
+ export type RefreshAuthMiddlewareOptions = {
134
+ host: string
135
+ projectKey: string
136
+ credentials: {
137
+ clientId: string
138
+ clientSecret: string
139
+ }
140
+ refreshToken: string
141
+ tokenCache?: TokenCache,
142
+ // For internal usage only
143
+ oauthUri?: string
144
+ httpClient?: any
145
+ }
146
+
147
+ export type RequestStateStore = {
148
+ get: () => RequestState
149
+ set: (requestState: RequestState) => void
150
+ }
151
+
152
+ /* Request */
153
+ type requestBaseOptions = {
154
+ url: string
155
+ body: string
156
+ basicAuth: string
157
+ request: MiddlewareRequest
158
+ tokenCache: TokenCache,
159
+ requestState: RequestStateStore,
160
+ pendingTasks: Array<Task>,
161
+ tokenCacheKey?: TokenCacheOptions,
162
+ }
163
+
164
+ export type executeRequestOptions = requestBaseOptions & {
165
+ next: Next
166
+ httpClient: any
167
+ userOption?: AuthMiddlewareOptions | PasswordAuthMiddlewareOptions
168
+ }
169
+
170
+ export type AuthMiddlewareBaseOptions = requestBaseOptions & {
171
+ request: MiddlewareRequest
172
+ httpClient?: any
173
+ }
174
+
175
+ export type RequestState = boolean
176
+
177
+ export type Task = {
178
+ request: MiddlewareRequest
179
+ next?: Next
180
+ }
181
+
182
+ export type UserAuthOptions = {
183
+ username: string
184
+ password: string
185
+ }
186
+
187
+ export type PasswordAuthMiddlewareOptions = {
188
+ host: string
189
+ projectKey: string
190
+ credentials: {
191
+ clientId: string
192
+ clientSecret: string
193
+ user: UserAuthOptions
194
+ }
195
+ scopes?: Array<string>
196
+ tokenCache?: TokenCache,
197
+ // For internal usage only
198
+ oauthUri?: string
199
+ httpClient?: any
200
+ }
201
+
202
+ export type TokenInfo = {
203
+ refresh_token: string
204
+ access_token: string
205
+ expires_at: number
206
+ expires_in: number // since this will always be used to calculate the expiration time, it shouldn't be made optional
207
+ scope?: string
208
+ token_type?: string
209
+ }
210
+
211
+ export type Dispatch = (next: Next) => (request: MiddlewareRequest) => Promise<MiddlewareResponse>
212
+
213
+ export type CredentialsMode = 'omit' | 'same-origin' | 'include'
214
+
215
+ export type HttpMiddlewareOptions = {
216
+ host: string
217
+ credentialsMode?: CredentialsMode
218
+ includeHeaders?: boolean
219
+ includeResponseHeaders?: boolean
220
+ includeOriginalRequest?: boolean
221
+ includeRequestInErrorResponse?: boolean
222
+ // maskSensitiveHeaderData?: boolean
223
+ timeout?: number
224
+ // enableRetry?: boolean
225
+ // retryConfig?: {
226
+ // maxRetries?: number
227
+ // retryDelay?: number
228
+ // backoff?: boolean
229
+ // maxDelay?: number
230
+ // retryCodes?: Array<number | string>,
231
+ // }
232
+ httpClient: Function
233
+ getAbortController?: () => AbortController
234
+ httpClientOptions?: object
235
+ }
236
+
237
+ export type HttpOptions = {
238
+ url: string
239
+ clientOptions: IClientOptions
240
+ httpClient: any
241
+ }
242
+
243
+ export type LogLevel = 'INFO' | 'ERROR'
244
+
245
+ export type LoggerMiddlewareOptions = {
246
+ logLevel?: LogLevel
247
+ maskSensitiveHeaderData?: boolean
248
+ includeOriginalRequest?: boolean
249
+ includeResponseHeaders?: boolean
250
+ includeRequestInErrorResponse?: boolean
251
+ loggerFn?: (options: MiddlewareResponse) => void
252
+ }
253
+
254
+ export type RetryMiddlewareOptions = {
255
+ backoff?: boolean
256
+ maxRetries?: number
257
+ retryDelay?: number
258
+ maxDelay?: typeof Infinity
259
+ retryCodes?: Array<number | string>
260
+ }
261
+
262
+ export type CorrelationIdMiddlewareOptions = {
263
+ generate?: () => string
264
+ }
265
+
266
+ /* HTTP User Agent */
267
+ export type HttpUserAgentOptions = {
268
+ name?: string
269
+ version?: string
270
+ libraryName?: string
271
+ libraryVersion?: string
272
+ contactUrl?: string
273
+ contactEmail?: string
274
+ customAgent?: string
275
+ }
276
+
277
+ export type QueueMiddlewareOptions = {
278
+ concurrency?: number
279
+ }
280
+
281
+ export type ExistingTokenMiddlewareOptions = {
282
+ force: boolean
283
+ }
284
+
285
+ export type IClientOptions = {
286
+ method: MethodType;
287
+ // headers: JsonObject<QueryParam>;
288
+ headers: Record<string, any>
289
+ credentialsMode?: CredentialsMode;
290
+ body?: string | Buffer
291
+ timeout?: number
292
+ abortController?: AbortController
293
+ [k: string | number | symbol]: unknown
294
+ }
295
+
296
+ export type HttpClientConfig = IClientOptions & {
297
+ url: string
298
+ httpClient: Function
299
+ }
300
+
301
+ export type TResponse = {
302
+ statusCode: number
303
+ // headers: JsonObject<QueryParam>
304
+ headers: Record<string, any>
305
+ data: {
306
+ statusCode?: number
307
+ errors?: any
308
+ error?: string
309
+ message: string
310
+ [k: string | number | symbol]: any
311
+ }
312
+ [k: string | number | symbol]: any
313
+ }
314
+
315
+ export type Client = {
316
+ execute(request: ClientRequest): Promise<ClientResult>
317
+ process: (
318
+ request: ClientRequest,
319
+ fn: ProcessFn,
320
+ processOpt: ProcessOptions
321
+ ) => Promise<unknown>
322
+ }
323
+
324
+ export type ProcessFn = (result: ClientResult) => Promise<unknown>
325
+ export type ProcessOptions = { accumulate?: boolean; total?: number }
326
+ export type ErrorMiddlewareOptions = {}
327
+ export type SuccessResult = {
328
+ body: {
329
+ results: Record<string | number | symbol, Record<string, any>>;
330
+ count: number;
331
+ };
332
+ statusCode: number;
333
+ headers?: JsonObject<string>;
334
+ }
335
+
336
+ export type executeRequest = (request: ClientRequest) => Promise<ClientResponse>
@@ -0,0 +1,5 @@
1
+ export declare const HEADERS_CONTENT_TYPES: string[];
2
+ export declare const CONCURRENCT_REQUEST = 20;
3
+ export declare const CTP_API_URL = "https://api.europe-west1.gcp.commercetools.com";
4
+ export declare const CTP_AUTH_URL = "https://auth.europe-west1.gcp.commercetools.com";
5
+ export declare const DEFAULT_HEADERS: string[];
@@ -0,0 +1,2 @@
1
+ import { HttpClientConfig } from '../types/types';
2
+ export default function executor(request: HttpClientConfig): Promise<any>;
@@ -0,0 +1 @@
1
+ export default function generateID(): string;
@@ -0,0 +1,2 @@
1
+ import { JsonObject } from '../types/types';
2
+ export default function getHeaders(headers: JsonObject<any>): JsonObject<string>;
@@ -0,0 +1,16 @@
1
+ export { default as logger } from './logger';
2
+ export { default as getHeaders } from './headers';
3
+ export { default as isBuffer } from './isBuffer';
4
+ export { default as calculateRetryDelay } from './retryDelay';
5
+ export { default as generate } from './generateID';
6
+ export { default as userAgent } from './userAgent';
7
+ export { default as maskAuthData } from './maskAuthData';
8
+ export { default as calculateExpirationTime } from './tokenExpirationTime';
9
+ export { default as buildTokenCacheKey } from './tokenCacheKey';
10
+ export { default as store } from './tokenStore';
11
+ export { default as mergeAuthHeader } from './mergeAuthHeader';
12
+ export { default as executor } from './executor';
13
+ export * as constants from './constants';
14
+ export { default as sleep } from './sleep';
15
+ export { default as METHODS } from './methods';
16
+ export { validateRetryCodes, validateHttpOptions, validateUserAgentOptions, validateClient, validate } from './validate';
@@ -0,0 +1 @@
1
+ export default function isBuffer(obj: any): boolean;
@@ -0,0 +1,2 @@
1
+ import { ClientResponse } from '../types/types';
2
+ export default function logger(res: ClientResponse): void;
@@ -0,0 +1,2 @@
1
+ import { MiddlewareRequest } from '../types/types';
2
+ export default function maskAuthData(request: MiddlewareRequest): void;
@@ -0,0 +1,2 @@
1
+ import { MiddlewareRequest } from '../types/types';
2
+ export default function mergeAuthHeader(token: string, req: MiddlewareRequest): MiddlewareRequest;
@@ -0,0 +1,2 @@
1
+ declare const _default: string[];
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ export declare type TRetryPolicy = {
2
+ retryCount: number;
3
+ retryDelay: number;
4
+ maxRetries: number;
5
+ backoff: boolean;
6
+ maxDelay: number;
7
+ };
8
+ export default function calculateRetryDelay({ retryCount, retryDelay, backoff, maxDelay, }: TRetryPolicy): number;
@@ -0,0 +1 @@
1
+ export default function sleep(ms: number): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import { AuthMiddlewareOptions, TokenCacheOptions } from '../types/types';
2
+ export default function buildTokenCacheKey(options: AuthMiddlewareOptions): TokenCacheOptions;
@@ -0,0 +1 @@
1
+ export default function calculateExpirationTime(expiresIn: number): number;
@@ -0,0 +1,2 @@
1
+ import { TokenCacheOptions } from '../types/types';
2
+ export default function store<T, V, S = TokenCacheOptions>(initVal: T): V;
@@ -0,0 +1,2 @@
1
+ import { HttpUserAgentOptions } from '../types/types';
2
+ export default function createUserAgent(options: HttpUserAgentOptions): string;
@@ -0,0 +1,30 @@
1
+ import { ClientRequest, HttpMiddlewareOptions, HttpUserAgentOptions, Middleware } from '../types/types';
2
+ /**
3
+ * validate some essential http options
4
+ * @param options
5
+ */
6
+ export declare function validateHttpOptions(options: HttpMiddlewareOptions): void;
7
+ /**
8
+ *
9
+ * @param retryCodes
10
+ * @example
11
+ * const retryCodes = [500, 504, "ETIMEDOUT"]
12
+ */
13
+ export declare function validateRetryCodes(retryCodes: Array<string | number>): void;
14
+ /**
15
+ *
16
+ * @param options
17
+ */
18
+ export declare function validateUserAgentOptions(options: HttpUserAgentOptions): void;
19
+ /**
20
+ * @param options
21
+ */
22
+ export declare function validateClient(options: {
23
+ middlewares: Array<Middleware>;
24
+ }): void;
25
+ /**
26
+ * @param options
27
+ */
28
+ export declare function validate(funcName: string, request: ClientRequest, options?: {
29
+ allowedMethods: Array<string>;
30
+ }): void;