@commercetools/ts-client 3.4.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/commercetools-ts-client.browser.cjs.js +10 -7
- package/dist/commercetools-ts-client.browser.esm.js +10 -7
- package/dist/commercetools-ts-client.cjs.dev.js +10 -7
- package/dist/commercetools-ts-client.cjs.prod.js +10 -7
- package/dist/commercetools-ts-client.esm.js +10 -7
- package/dist/commercetools-ts-client.umd.js +1 -1
- package/dist/declarations/src/types/types.d.ts +5 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @commercetools/ts-client
|
|
2
2
|
|
|
3
|
+
## 4.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [#1126](https://github.com/commercetools/commercetools-sdk-typescript/pull/1126) [`98415e1`](https://github.com/commercetools/commercetools-sdk-typescript/commit/98415e159e68fc59d7fcdb11cd406e9995fa4430) Thanks [@ajimae](https://github.com/ajimae)! - Add support for async token cache stores
|
|
8
|
+
|
|
3
9
|
## 3.4.1
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -645,7 +645,8 @@ async function executeRequest$1(options) {
|
|
|
645
645
|
httpClientOptions,
|
|
646
646
|
tokenCache,
|
|
647
647
|
userOption,
|
|
648
|
-
tokenCacheObject
|
|
648
|
+
tokenCacheObject,
|
|
649
|
+
tokenCacheKey
|
|
649
650
|
} = options;
|
|
650
651
|
let url = options.url;
|
|
651
652
|
let body = options.body;
|
|
@@ -699,11 +700,12 @@ async function executeRequest$1(options) {
|
|
|
699
700
|
const expirationTime = calculateExpirationTime(expiresIn);
|
|
700
701
|
|
|
701
702
|
// cache new generated token, refreshToken and expiration time
|
|
702
|
-
|
|
703
|
+
const cache = {
|
|
703
704
|
token,
|
|
704
705
|
expirationTime,
|
|
705
706
|
refreshToken
|
|
706
|
-
}
|
|
707
|
+
};
|
|
708
|
+
await tokenCache.set(cache, tokenCacheKey);
|
|
707
709
|
return Promise.resolve(true);
|
|
708
710
|
}
|
|
709
711
|
|
|
@@ -725,6 +727,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
725
727
|
const requestOptions = {
|
|
726
728
|
request,
|
|
727
729
|
tokenCache,
|
|
730
|
+
tokenCacheKey,
|
|
728
731
|
httpClient: options.httpClient || fetch,
|
|
729
732
|
httpClientOptions: options.httpClientOptions,
|
|
730
733
|
...builder(options),
|
|
@@ -743,7 +746,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
743
746
|
tokenFetchPromise = executeRequest$1(requestOptions);
|
|
744
747
|
await tokenFetchPromise;
|
|
745
748
|
tokenFetchPromise = null;
|
|
746
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
749
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
747
750
|
_response = await next(mergeAuthHeader(tokenCacheObject.token, request));
|
|
748
751
|
}
|
|
749
752
|
return _response;
|
|
@@ -757,7 +760,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
757
760
|
* If there is a token in the tokenCache, and it's not
|
|
758
761
|
* expired, append the token in the `Authorization` header.
|
|
759
762
|
*/
|
|
760
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
763
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
761
764
|
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
|
|
762
765
|
return checkAndRetryUnauthorizedError(await next(mergeAuthHeader(tokenCacheObject.token, request)));
|
|
763
766
|
}
|
|
@@ -773,7 +776,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
773
776
|
}
|
|
774
777
|
|
|
775
778
|
// Now the token is present in the tokenCache and can be accessed
|
|
776
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
779
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
777
780
|
return next(mergeAuthHeader(tokenCacheObject.token, request));
|
|
778
781
|
}
|
|
779
782
|
|
|
@@ -1175,7 +1178,7 @@ function createQueueMiddleware$1({
|
|
|
1175
1178
|
|
|
1176
1179
|
var packageJson = {
|
|
1177
1180
|
name: "@commercetools/ts-client",
|
|
1178
|
-
version: "
|
|
1181
|
+
version: "4.0.0",
|
|
1179
1182
|
engines: {
|
|
1180
1183
|
node: ">=18"
|
|
1181
1184
|
},
|
|
@@ -641,7 +641,8 @@ async function executeRequest$1(options) {
|
|
|
641
641
|
httpClientOptions,
|
|
642
642
|
tokenCache,
|
|
643
643
|
userOption,
|
|
644
|
-
tokenCacheObject
|
|
644
|
+
tokenCacheObject,
|
|
645
|
+
tokenCacheKey
|
|
645
646
|
} = options;
|
|
646
647
|
let url = options.url;
|
|
647
648
|
let body = options.body;
|
|
@@ -695,11 +696,12 @@ async function executeRequest$1(options) {
|
|
|
695
696
|
const expirationTime = calculateExpirationTime(expiresIn);
|
|
696
697
|
|
|
697
698
|
// cache new generated token, refreshToken and expiration time
|
|
698
|
-
|
|
699
|
+
const cache = {
|
|
699
700
|
token,
|
|
700
701
|
expirationTime,
|
|
701
702
|
refreshToken
|
|
702
|
-
}
|
|
703
|
+
};
|
|
704
|
+
await tokenCache.set(cache, tokenCacheKey);
|
|
703
705
|
return Promise.resolve(true);
|
|
704
706
|
}
|
|
705
707
|
|
|
@@ -721,6 +723,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
721
723
|
const requestOptions = {
|
|
722
724
|
request,
|
|
723
725
|
tokenCache,
|
|
726
|
+
tokenCacheKey,
|
|
724
727
|
httpClient: options.httpClient || fetch,
|
|
725
728
|
httpClientOptions: options.httpClientOptions,
|
|
726
729
|
...builder(options),
|
|
@@ -739,7 +742,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
739
742
|
tokenFetchPromise = executeRequest$1(requestOptions);
|
|
740
743
|
await tokenFetchPromise;
|
|
741
744
|
tokenFetchPromise = null;
|
|
742
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
745
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
743
746
|
_response = await next(mergeAuthHeader(tokenCacheObject.token, request));
|
|
744
747
|
}
|
|
745
748
|
return _response;
|
|
@@ -753,7 +756,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
753
756
|
* If there is a token in the tokenCache, and it's not
|
|
754
757
|
* expired, append the token in the `Authorization` header.
|
|
755
758
|
*/
|
|
756
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
759
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
757
760
|
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
|
|
758
761
|
return checkAndRetryUnauthorizedError(await next(mergeAuthHeader(tokenCacheObject.token, request)));
|
|
759
762
|
}
|
|
@@ -769,7 +772,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
769
772
|
}
|
|
770
773
|
|
|
771
774
|
// Now the token is present in the tokenCache and can be accessed
|
|
772
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
775
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
773
776
|
return next(mergeAuthHeader(tokenCacheObject.token, request));
|
|
774
777
|
}
|
|
775
778
|
|
|
@@ -1171,7 +1174,7 @@ function createQueueMiddleware$1({
|
|
|
1171
1174
|
|
|
1172
1175
|
var packageJson = {
|
|
1173
1176
|
name: "@commercetools/ts-client",
|
|
1174
|
-
version: "
|
|
1177
|
+
version: "4.0.0",
|
|
1175
1178
|
engines: {
|
|
1176
1179
|
node: ">=18"
|
|
1177
1180
|
},
|
|
@@ -645,7 +645,8 @@ async function executeRequest$1(options) {
|
|
|
645
645
|
httpClientOptions,
|
|
646
646
|
tokenCache,
|
|
647
647
|
userOption,
|
|
648
|
-
tokenCacheObject
|
|
648
|
+
tokenCacheObject,
|
|
649
|
+
tokenCacheKey
|
|
649
650
|
} = options;
|
|
650
651
|
let url = options.url;
|
|
651
652
|
let body = options.body;
|
|
@@ -699,11 +700,12 @@ async function executeRequest$1(options) {
|
|
|
699
700
|
const expirationTime = calculateExpirationTime(expiresIn);
|
|
700
701
|
|
|
701
702
|
// cache new generated token, refreshToken and expiration time
|
|
702
|
-
|
|
703
|
+
const cache = {
|
|
703
704
|
token,
|
|
704
705
|
expirationTime,
|
|
705
706
|
refreshToken
|
|
706
|
-
}
|
|
707
|
+
};
|
|
708
|
+
await tokenCache.set(cache, tokenCacheKey);
|
|
707
709
|
return Promise.resolve(true);
|
|
708
710
|
}
|
|
709
711
|
|
|
@@ -725,6 +727,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
725
727
|
const requestOptions = {
|
|
726
728
|
request,
|
|
727
729
|
tokenCache,
|
|
730
|
+
tokenCacheKey,
|
|
728
731
|
httpClient: options.httpClient || fetch,
|
|
729
732
|
httpClientOptions: options.httpClientOptions,
|
|
730
733
|
...builder(options),
|
|
@@ -743,7 +746,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
743
746
|
tokenFetchPromise = executeRequest$1(requestOptions);
|
|
744
747
|
await tokenFetchPromise;
|
|
745
748
|
tokenFetchPromise = null;
|
|
746
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
749
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
747
750
|
_response = await next(mergeAuthHeader(tokenCacheObject.token, request));
|
|
748
751
|
}
|
|
749
752
|
return _response;
|
|
@@ -757,7 +760,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
757
760
|
* If there is a token in the tokenCache, and it's not
|
|
758
761
|
* expired, append the token in the `Authorization` header.
|
|
759
762
|
*/
|
|
760
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
763
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
761
764
|
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
|
|
762
765
|
return checkAndRetryUnauthorizedError(await next(mergeAuthHeader(tokenCacheObject.token, request)));
|
|
763
766
|
}
|
|
@@ -773,7 +776,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
773
776
|
}
|
|
774
777
|
|
|
775
778
|
// Now the token is present in the tokenCache and can be accessed
|
|
776
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
779
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
777
780
|
return next(mergeAuthHeader(tokenCacheObject.token, request));
|
|
778
781
|
}
|
|
779
782
|
|
|
@@ -1175,7 +1178,7 @@ function createQueueMiddleware$1({
|
|
|
1175
1178
|
|
|
1176
1179
|
var packageJson = {
|
|
1177
1180
|
name: "@commercetools/ts-client",
|
|
1178
|
-
version: "
|
|
1181
|
+
version: "4.0.0",
|
|
1179
1182
|
engines: {
|
|
1180
1183
|
node: ">=18"
|
|
1181
1184
|
},
|
|
@@ -645,7 +645,8 @@ async function executeRequest$1(options) {
|
|
|
645
645
|
httpClientOptions,
|
|
646
646
|
tokenCache,
|
|
647
647
|
userOption,
|
|
648
|
-
tokenCacheObject
|
|
648
|
+
tokenCacheObject,
|
|
649
|
+
tokenCacheKey
|
|
649
650
|
} = options;
|
|
650
651
|
let url = options.url;
|
|
651
652
|
let body = options.body;
|
|
@@ -699,11 +700,12 @@ async function executeRequest$1(options) {
|
|
|
699
700
|
const expirationTime = calculateExpirationTime(expiresIn);
|
|
700
701
|
|
|
701
702
|
// cache new generated token, refreshToken and expiration time
|
|
702
|
-
|
|
703
|
+
const cache = {
|
|
703
704
|
token,
|
|
704
705
|
expirationTime,
|
|
705
706
|
refreshToken
|
|
706
|
-
}
|
|
707
|
+
};
|
|
708
|
+
await tokenCache.set(cache, tokenCacheKey);
|
|
707
709
|
return Promise.resolve(true);
|
|
708
710
|
}
|
|
709
711
|
|
|
@@ -725,6 +727,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
725
727
|
const requestOptions = {
|
|
726
728
|
request,
|
|
727
729
|
tokenCache,
|
|
730
|
+
tokenCacheKey,
|
|
728
731
|
httpClient: options.httpClient || fetch,
|
|
729
732
|
httpClientOptions: options.httpClientOptions,
|
|
730
733
|
...builder(options),
|
|
@@ -743,7 +746,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
743
746
|
tokenFetchPromise = executeRequest$1(requestOptions);
|
|
744
747
|
await tokenFetchPromise;
|
|
745
748
|
tokenFetchPromise = null;
|
|
746
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
749
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
747
750
|
_response = await next(mergeAuthHeader(tokenCacheObject.token, request));
|
|
748
751
|
}
|
|
749
752
|
return _response;
|
|
@@ -757,7 +760,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
757
760
|
* If there is a token in the tokenCache, and it's not
|
|
758
761
|
* expired, append the token in the `Authorization` header.
|
|
759
762
|
*/
|
|
760
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
763
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
761
764
|
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
|
|
762
765
|
return checkAndRetryUnauthorizedError(await next(mergeAuthHeader(tokenCacheObject.token, request)));
|
|
763
766
|
}
|
|
@@ -773,7 +776,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
773
776
|
}
|
|
774
777
|
|
|
775
778
|
// Now the token is present in the tokenCache and can be accessed
|
|
776
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
779
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
777
780
|
return next(mergeAuthHeader(tokenCacheObject.token, request));
|
|
778
781
|
}
|
|
779
782
|
|
|
@@ -1175,7 +1178,7 @@ function createQueueMiddleware$1({
|
|
|
1175
1178
|
|
|
1176
1179
|
var packageJson = {
|
|
1177
1180
|
name: "@commercetools/ts-client",
|
|
1178
|
-
version: "
|
|
1181
|
+
version: "4.0.0",
|
|
1179
1182
|
engines: {
|
|
1180
1183
|
node: ">=18"
|
|
1181
1184
|
},
|
|
@@ -641,7 +641,8 @@ async function executeRequest$1(options) {
|
|
|
641
641
|
httpClientOptions,
|
|
642
642
|
tokenCache,
|
|
643
643
|
userOption,
|
|
644
|
-
tokenCacheObject
|
|
644
|
+
tokenCacheObject,
|
|
645
|
+
tokenCacheKey
|
|
645
646
|
} = options;
|
|
646
647
|
let url = options.url;
|
|
647
648
|
let body = options.body;
|
|
@@ -695,11 +696,12 @@ async function executeRequest$1(options) {
|
|
|
695
696
|
const expirationTime = calculateExpirationTime(expiresIn);
|
|
696
697
|
|
|
697
698
|
// cache new generated token, refreshToken and expiration time
|
|
698
|
-
|
|
699
|
+
const cache = {
|
|
699
700
|
token,
|
|
700
701
|
expirationTime,
|
|
701
702
|
refreshToken
|
|
702
|
-
}
|
|
703
|
+
};
|
|
704
|
+
await tokenCache.set(cache, tokenCacheKey);
|
|
703
705
|
return Promise.resolve(true);
|
|
704
706
|
}
|
|
705
707
|
|
|
@@ -721,6 +723,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
721
723
|
const requestOptions = {
|
|
722
724
|
request,
|
|
723
725
|
tokenCache,
|
|
726
|
+
tokenCacheKey,
|
|
724
727
|
httpClient: options.httpClient || fetch,
|
|
725
728
|
httpClientOptions: options.httpClientOptions,
|
|
726
729
|
...builder(options),
|
|
@@ -739,7 +742,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
739
742
|
tokenFetchPromise = executeRequest$1(requestOptions);
|
|
740
743
|
await tokenFetchPromise;
|
|
741
744
|
tokenFetchPromise = null;
|
|
742
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
745
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
743
746
|
_response = await next(mergeAuthHeader(tokenCacheObject.token, request));
|
|
744
747
|
}
|
|
745
748
|
return _response;
|
|
@@ -753,7 +756,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
753
756
|
* If there is a token in the tokenCache, and it's not
|
|
754
757
|
* expired, append the token in the `Authorization` header.
|
|
755
758
|
*/
|
|
756
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
759
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
757
760
|
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
|
|
758
761
|
return checkAndRetryUnauthorizedError(await next(mergeAuthHeader(tokenCacheObject.token, request)));
|
|
759
762
|
}
|
|
@@ -769,7 +772,7 @@ async function authProcessor(request, tokenFetchPromise = null, tokenCacheObject
|
|
|
769
772
|
}
|
|
770
773
|
|
|
771
774
|
// Now the token is present in the tokenCache and can be accessed
|
|
772
|
-
tokenCacheObject = tokenCache.get(tokenCacheKey);
|
|
775
|
+
tokenCacheObject = await tokenCache.get(tokenCacheKey);
|
|
773
776
|
return next(mergeAuthHeader(tokenCacheObject.token, request));
|
|
774
777
|
}
|
|
775
778
|
|
|
@@ -1171,7 +1174,7 @@ function createQueueMiddleware$1({
|
|
|
1171
1174
|
|
|
1172
1175
|
var packageJson = {
|
|
1173
1176
|
name: "@commercetools/ts-client",
|
|
1174
|
-
version: "
|
|
1177
|
+
version: "4.0.0",
|
|
1175
1178
|
engines: {
|
|
1176
1179
|
node: ">=18"
|
|
1177
1180
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var window;(window||={})["@commercetools/ts-client"]=(()=>{var ce=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ie=Object.getOwnPropertyNames;var Ne=Object.prototype.hasOwnProperty;var pe=(e,r)=>{for(var t in r)ce(e,t,{get:r[t],enumerable:!0})},Ue=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of Ie(r))!Ne.call(e,i)&&i!==t&&ce(e,i,{get:()=>r[i],enumerable:!(o=Fe(r,i))||o.enumerable});return e};var je=e=>Ue(ce({},"__esModule",{value:!0}),e);var yr={};pe(yr,{ClientBuilder:()=>L,Process:()=>ue,createAuthMiddlewareForAnonymousSessionFlow:()=>v,createAuthMiddlewareForClientCredentialsFlow:()=>H,createAuthMiddlewareForExistingTokenFlow:()=>_,createAuthMiddlewareForPasswordFlow:()=>B,createAuthMiddlewareForRefreshTokenFlow:()=>K,createClient:()=>P,createConcurrentModificationMiddleware:()=>z,createCorrelationIdMiddleware:()=>J,createErrorMiddleware:()=>V,createHttpMiddleware:()=>G,createLoggerMiddleware:()=>Y,createQueueMiddleware:()=>W,createUserAgentMiddleware:()=>X});var Ae={};pe(Ae,{createAuthMiddlewareForAnonymousSessionFlow:()=>v,createAuthMiddlewareForClientCredentialsFlow:()=>H,createAuthMiddlewareForExistingTokenFlow:()=>_,createAuthMiddlewareForPasswordFlow:()=>B,createAuthMiddlewareForRefreshTokenFlow:()=>K,createConcurrentModificationMiddleware:()=>z,createCorrelationIdMiddleware:()=>J,createErrorMiddleware:()=>V,createHttpMiddleware:()=>G,createLoggerMiddleware:()=>Y,createQueueMiddleware:()=>W,createUserAgentMiddleware:()=>X});function I(e){return e&&typeof e=="string"?new TextEncoder().encode(e).length.toString():e&&e instanceof Uint8Array?e.byteLength.toString():e&&typeof e=="object"?new TextEncoder().encode(JSON.stringify(e)).length.toString():"0"}var g={};pe(g,{CONCURRENCT_REQUEST:()=>He,CTP_API_URL:()=>_e,CTP_AUTH_URL:()=>Be,DEFAULT_HEADERS:()=>he,HEADERS_CONTENT_TYPES:()=>ve});var ve=["application/json","application/graphql"],He=20,_e="https://api.europe-west1.gcp.commercetools.com",Be="https://auth.europe-west1.gcp.commercetools.com",he=["content-type","access-control-allow-origin","access-control-allow-headers","access-control-allow-methods","access-control-expose-headers","access-control-max-ag","x-correlation-id","server-timing","date","server","transfer-encoding","access-control-max-age","content-encoding","x-envoy-upstream-service-time","via","alt-svc","connection"];function b(e,r,t={}){this.code=t.code??=this.constructor.name,this.statusCode=e,this.status=e,this.message=r,Object.assign(this,t),this.name=this.constructor.name,this.constructor.prototype.__proto__=Error.prototype,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}function be(...e){b.call(this,0,...e)}function Te(...e){b.call(this,...e)}function Ke(...e){b.call(this,400,...e)}function Le(...e){b.call(this,401,...e)}function $e(...e){b.call(this,403,...e)}function De(...e){b.call(this,404,...e)}function Qe(...e){b.call(this,409,...e)}function ze(...e){b.call(this,500,...e)}function Je(...e){b.call(this,503,...e)}function we(e){switch(e){case 0:return be;case 400:return Ke;case 401:return Le;case 403:return $e;case 404:return De;case 409:return Qe;case 500:return ze;case 503:return Je;default:return}}function Ve({statusCode:e,message:r,...t}){let o=r||"Unexpected non-JSON error response";e===404&&(o=`URI not found: ${t.originalRequest?.uri||t.uri}`);let i=we(e);return i?new i(o,t):new Te(e,o,t)}var N=Ve;function Ge(e,r){return[503,...e].includes(r?.status||r?.statusCode)}async function Ye(e,r){async function t(){return await e({...r,headers:{...r.headers}})}return t().catch(o=>Promise.reject(o))}async function U(e){let{url:r,httpClient:t,...o}=e;return await Ye(async s=>{let{enableRetry:a,retryConfig:n,timeout:u,getAbortController:l}=o,{retryCodes:d=[],maxDelay:c=1/0,maxRetries:M=3,backoff:C=!0,retryDelay:p=200,retryOnAbort:S=!0}=n||{},h,w,f=0,q;fe(d);async function x(){return t(r,{...s,...o,headers:{...o.headers},...o.body?{data:o.body}:{},withCredentials:s.credentialsMode==="include"})}function Z(){let y=(l?l():null)||new AbortController;return o.abortController=y,o.signal=y.signal,y}async function F(){let y=async(re,qe)=>{let D={};if(u){let O=Z();q=setTimeout(()=>{O.abort(),O=Z()},u)}try{if(D=await x(),D.status>399&&Ge(re,D))return{_response:D,shouldRetry:!0}}catch(O){if((O.name.includes("AbortError")||O.name.includes("TimeoutError"))&&qe)return{_response:O,shouldRetry:!0};throw O}finally{clearTimeout(q)}return{_response:D,shouldRetry:!1}},{_response:$,shouldRetry:ee}=await y(d,S);for(;a&&ee&&f<M;){f++,await oe(te({retryCount:f,retryDelay:p,maxRetries:M,backoff:C,maxDelay:c}));let re=await y(d,S);$=re._response,ee=re.shouldRetry}return $}let m=await F();try{m.text&&typeof m.text=="function"?(h=await m.text()||JSON.stringify(m[Object.getOwnPropertySymbols(m)[1]]),w=JSON.parse(h)):w=m.data||m}catch(y){throw y}return{data:w,retryCount:f,statusCode:m.status||m.statusCode||w.statusCode,headers:m.headers}},{validateStatus:s=>!0})}function ie(){return("1000000-1000-4000-8000"+-1e11).replace(/[018]/g,e=>(parseInt(e)^Math.floor(Math.random()*256)&15>>parseInt(e)/4).toString(16))}function We(e){return he.reduce((r,t)=>{let o=e[t]?e[t]:typeof e.get=="function"?e.get(t):null;return o&&(r[t]=o),r},{})}function T(e){if(!e)return null;if(e.raw&&typeof e.raw=="function")return e.raw();if(!e.forEach)return We(e);let r={};return e.forEach((t,o)=>r[o]=t),r}function Q(e){return e!=null&&e.constructor!=null&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function k(e){let r=JSON.parse(JSON.stringify(e));return r?.headers&&(r.headers.Authorization&&(r.headers.Authorization="Bearer ********"),r.headers.authorization&&(r.headers.authorization="Bearer ********")),r}function j(e,r){return{...r,headers:{...r.headers,Authorization:`Bearer ${e}`}}}var me=["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"];function te({retryCount:e,retryDelay:r,backoff:t,maxDelay:o}){return t&&e!==0?Math.min(Math.round((Math.random()+1)*r*2**e),o):r}Math.min(Math.round((Math.random()+1)*200*2**10),1/0);function oe(e){return new Promise(r=>{setTimeout(r,e)})}function R(e){if(!e?.credentials?.clientId||!e.projectKey||!e.host)throw new Error("Missing required options.");return{clientId:e.credentials.clientId,host:e.host,projectKey:e.projectKey}}function ne(e){return Date.now()+e*1e3-5*60*1e3}function A(e){let r=e;return{get:t=>r,set:(t,o)=>{r=t}}}function xe(e){return typeof e<"u"&&e!==null}function Xe(e){return xe(e)?typeof e=="string"?e:Object.fromEntries(Object.entries(e).filter(([r,t])=>![null,void 0,""].includes(t))):""}function Ze(e){let r={},t=new URLSearchParams(e);for(let o of t.keys())t.getAll(o).length>1?r[o]=t.getAll(o):r[o]=t.get(o);return r}function er(e){if(e=Xe(e),!e)return"";let r=new URLSearchParams(e);for(let[t,o]of Object.entries(e))Array.isArray(o)&&(r.delete(t),o.filter(xe).forEach(i=>r.append(t,i)));return r.toString()}function ye(e,r=Ze){return r(e)}function se(e,r=er){return r(e)}var rr=()=>typeof window<"u"&&window.document&&window.document.nodeType===9;function tr(){if(rr())return window.navigator.userAgent;let e=process?.version?.slice(1)||"unknown",r=`(${process?.platform||""}; ${process?.arch||""})`;return`node.js/${e} ${r.trim()}`}function ae(e){let r=null,t=null;if(!e)throw new Error("Missing required option `name`");let o=e.version?`${e.name}/${e.version}`:e.name;e.libraryName&&!e.libraryVersion?r=e.libraryName:e.libraryName&&e.libraryVersion&&(r=`${e.libraryName}/${e.libraryVersion}`),e.contactUrl&&!e.contactEmail?t=`(+${e.contactUrl})`:!e.contactUrl&&e.contactEmail?t=`(+${e.contactEmail})`:e.contactUrl&&e.contactEmail&&(t=`(+${e.contactUrl}; +${e.contactEmail})`);let i=tr(),s=e.customAgent||"";return[o,i,r,t,s].filter(Boolean).join(" ")}function Me(e){if(!e.host)throw new Error("Request `host` or `url` is missing or invalid, please pass in a valid host e.g `host: http://a-valid-host-url`");if(!e.httpClient&&typeof e.httpClient!="function")throw new Error("An `httpClient` is not available, please pass in a `fetch` or `axios` instance as an option or have them globally available.");if(e.httpClientOptions&&Object.prototype.toString.call(e.httpClientOptions)!=="[object Object]")throw new Error("`httpClientOptions` must be an object type")}function fe(e){if(!Array.isArray(e))throw new Error("`retryCodes` option must be an array of retry status (error) codes and/or messages.")}function ge(e){if(!e)throw new Error("Missing required options");if(e.middlewares&&!Array.isArray(e.middlewares))throw new Error("Middlewares should be an array");if(!e.middlewares||!Array.isArray(e.middlewares)||!e.middlewares.length)throw new Error("You need to provide at least one middleware")}function le(e,r,t={allowedMethods:me}){if(!r)throw new Error(`The "${e}" function requires a "Request" object as an argument. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(typeof r.uri!="string")throw new Error(`The "${e}" Request object requires a valid uri. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(!t.allowedMethods.includes(r.method))throw new Error(`The "${e}" Request object requires a valid method. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`)}function Ce(e){if(!e)throw new Error("Missing required options");if(!e.host)throw new Error("Missing required option (host)");if(!e.projectKey)throw new Error("Missing required option (projectKey)");if(!e.credentials)throw new Error("Missing required option (credentials)");let{clientId:r,clientSecret:t}=e.credentials||{};if(!(r&&t))throw new Error("Missing required credentials (clientId, clientSecret)");let o=e.scopes?e.scopes.join(" "):void 0,i=btoa(`${r}:${t}`),s=e.oauthUri||"/oauth/token",a=e.host.replace(/\/$/,"")+s,n=`grant_type=client_credentials${o?`&scope=${o}`:""}`;return{url:a,body:n,basicAuth:i}}function Ee(e){if(!e)throw new Error("Missing required options");if(!e.projectKey)throw new Error("Missing required option (projectKey)");let r=e.projectKey;e.oauthUri=e.oauthUri||`/oauth/${r}/anonymous/token`;let t=Ce(e);return e.credentials.anonymousId&&(t.body+=`&anonymous_id=${e.credentials.anonymousId}`),{...t}}function de(e){if(!e)throw new Error("Missing required options");if(!e.host)throw new Error("Missing required option (host)");if(!e.projectKey)throw new Error("Missing required option (projectKey)");if(!e.credentials)throw new Error("Missing required option (credentials)");if(!e.refreshToken)throw new Error("Missing required option (refreshToken)");let{clientId:r,clientSecret:t}=e.credentials;if(!(r&&t))throw new Error("Missing required credentials (clientId, clientSecret)");let o=btoa(`${r}:${t}`),i=e.oauthUri||"/oauth/token",s=e.host.replace(/\/$/,"")+i,a=`grant_type=refresh_token&refresh_token=${encodeURIComponent(e.refreshToken)}`;return{basicAuth:o,url:s,body:a}}function Oe(e){if(!e)throw new Error("Missing required options");if(!e.host)throw new Error("Missing required option (host)");if(!e.projectKey)throw new Error("Missing required option (projectKey)");if(!e.credentials)throw new Error("Missing required option (credentials)");let{clientId:r,clientSecret:t,user:o}=e.credentials,i=e.projectKey;if(!(r&&t&&o))throw new Error("Missing required credentials (clientId, clientSecret, user)");let{username:s,password:a}=o;if(!(s&&a))throw new Error("Missing required user credentials (username, password)");let n=(e.scopes||[]).join(" "),u=n?`&scope=${n}`:"",l=btoa(`${r}:${t}`),d=e.oauthUri||`/oauth/${i}/customers/token`,c=e.host.replace(/\/$/,"")+d,M=`grant_type=password&username=${encodeURIComponent(s)}&password=${encodeURIComponent(a)}${u}`;return{basicAuth:l,url:c,body:M}}async function Re(e){let{httpClient:r,httpClientOptions:t,tokenCache:o,userOption:i,tokenCacheObject:s}=e,a=e.url,n=e.body,u=e.basicAuth;if(!r||typeof r!="function")throw new Error("an `httpClient` is not available, please pass in a `fetch` or `axios` instance as an option or have them globally available.");if(s&&s.refreshToken&&(!s.token||s.token&&Date.now()>s.expirationTime)){if(!i)throw new Error("Missing required options.");let d={...de({...i,refreshToken:s.refreshToken})};a=d.url,n=d.body,u=d.basicAuth}let l;try{if(l=await U({url:a,method:"POST",headers:{Authorization:`Basic ${u}`,"Content-Type":"application/x-www-form-urlencoded","Content-Length":I(n)},httpClient:r,httpClientOptions:t,body:n}),l.statusCode>=200&&l.statusCode<300){let{access_token:d,expires_in:c,refresh_token:M}=l?.data,C=ne(c);return o.set({token:d,expirationTime:C,refreshToken:M}),Promise.resolve(!0)}throw N({code:l.data.error,statusCode:l.data.statusCode,message:l.data.message,error:l.data.errors})}catch(d){throw d}}async function E(e,r=null,t,o,i,s,a,n){let u={request:e,tokenCache:i,httpClient:a.httpClient||fetch,httpClientOptions:a.httpClientOptions,...s(a),userOption:a,next:n},l=async d=>{let c=Object.assign({},d);return c.statusCode==401&&(r=Re(u),await r,r=null,t=i.get(o),c=await n(j(t.token,e))),c};return e.headers&&(e.headers.Authorization||e.headers.authorization)?l(await n(e)):(t=i.get(o),t&&t.token&&Date.now()<t.expirationTime?l(await n(j(t.token,e))):(r?await r:(r=Re(u),await r,r=null),t=i.get(o),n(j(t.token,e))))}function v(e){let r=e.tokenCache||A({token:"",expirationTime:-1}),t,o=null,i=R(e);return s=>async a=>E(a,o,t,i,r,Ee,e,s)}function H(e){let r=e.tokenCache||A({token:"",expirationTime:-1}),t,o=null,i=R(e);return s=>async a=>E(a,o,t,i,r,Ce,e,s)}function _(e,r){return t=>async o=>{if(typeof e!="string")throw new Error("authorization must be a string");let i=r?.force===void 0?!0:r.force;if(!e||o.headers&&(o.headers.Authorization||o.headers.authorization)&&i===!1)return t(o);let s={...o,headers:{...o.headers,Authorization:e}};return t(s)}}function B(e){let r=e.tokenCache||A({token:"",expirationTime:-1}),t,o=null,i=R(e);return s=>async a=>E(a,o,t,i,r,Oe,e,s)}function K(e){let r=e.tokenCache||A({token:"",tokenCacheKey:null}),t,o=null,i=R(e);return s=>async a=>E(a,o,t,i,r,de,e,s)}function z(e){return r=>async t=>{let o=await r(t);if(o.statusCode==409){let i=o.error.body?.errors?.[0]?.currentVersion;if(i)return e&&typeof e=="function"?t.body=await e(i,t,o):t.body=typeof t.body=="string"?{...JSON.parse(t.body),version:i}:{...t.body,version:i},r(t)}return o}}function J(e){return r=>t=>{let o={...t,headers:{...t.headers,"X-Correlation-ID":e?.generate&&typeof e.generate=="function"?e.generate():ie()}};return r(o)}}function V(e={}){return r=>async t=>{let o=await r(t);if(o.error){let{error:i}=o;return e.handler&&typeof e.handler=="function"?e.handler({error:i,request:t,response:o,next:r}):{...o,statusCode:i.statusCode||0,headers:i.headers||T({}),body:i,error:i}}return o}}async function or({url:e,httpClient:r,clientOptions:t}){let{request:o,maskSensitiveHeaderData:i,includeRequestInErrorResponse:s,includeResponseHeaders:a}=t;try{let n=await U({url:e,...t,httpClient:r,method:t.method,...t.body?{body:t.body}:{}});if(a||(n.headers=null),n.statusCode>=200&&n.statusCode<300)return t.method=="HEAD"?{body:null,statusCode:n.statusCode,retryCount:n.retryCount,headers:T(n.headers)}:{body:n.data,statusCode:n.statusCode,retryCount:n.retryCount,headers:T(n.headers)};let u=N({code:n.data?.errors?.[0].code,message:n?.data?.message||n?.message,statusCode:n.statusCode||n?.data?.statusCode,method:t.method,headers:T(n.headers),body:n.data,error:n.data,retryCount:n.retryCount,...s?{originalRequest:i?k(o):o}:{uri:o.uri}});return{...u,error:u}}catch(n){let u=a?T(n.response?.headers):null,l=n.response?.status||n.response?.statusCode||n.response?.data.statusCode||0,d=n.response?.data?.message;throw{body:null,error:N({statusCode:l,code:"NetworkError",status:l,message:d||n.message,headers:u,body:n.response?.data||n,error:n.response?.data||n,...s?{originalRequest:i?k(o):o}:{uri:o.uri}})}}}function G(e){Me(e);let{host:r,credentialsMode:t,httpClient:o,timeout:i,enableRetry:s,retryConfig:a,getAbortController:n,includeOriginalRequest:u,includeRequestInErrorResponse:l=!0,includeResponseHeaders:d=!0,maskSensitiveHeaderData:c,httpClientOptions:M}=e;return C=>async p=>{let S=r.replace(/\/$/,"")+p.uri,h={...p.headers};Object.prototype.hasOwnProperty.call(h,"Content-Type")||Object.prototype.hasOwnProperty.call(h,"content-type")||(h["Content-Type"]="application/json"),h["Content-Type"]===null&&delete h["Content-Type"];let w=g.HEADERS_CONTENT_TYPES.indexOf(h["Content-Type"])>-1&&typeof p.body=="string"||Q(p.body)?p.body:JSON.stringify(p.body||void 0);w&&(typeof w=="string"||Q(w))&&(h["Content-Length"]=I(w));let f={enableRetry:s,retryConfig:a,request:p,method:p.method,headers:h,includeRequestInErrorResponse:l,maskSensitiveHeaderData:c,includeResponseHeaders:d,...M};t&&(f.credentialsMode=t),i&&(f.timeout=i,f.getAbortController=n),w&&(f.body=w);let q=await or({url:S,clientOptions:f,httpClient:o}),x={...p,includeOriginalRequest:u,maskSensitiveHeaderData:c,response:q};return C(x)}}function Y(e){return r=>async t=>{let o=await r(t),i=Object.assign({},o),{loggerFn:s=console.log}=e||{};return s&&typeof s=="function"&&s(o),i}}function W({concurrency:e=20}){let r=0,t=[],o=()=>0>=e?Promise.resolve():new Promise(s=>{let a=()=>{r<e?(r++,s()):t.push(a)};a()}),i=()=>{if(r--,t.length>0){let s=t.shift();s&&s()}};return s=>a=>o().then(()=>{let n={...a,resolve(u){a.resolve(u),i()},reject(u){a.reject(u),i()}};return s(n).finally(()=>{i()})})}var ke={name:"@commercetools/ts-client",version:"3.4.1",engines:{node:">=18"},description:"commercetools Composable Commerce TypeScript SDK client.",keywords:["commercetools","composable commerce","sdk","typescript","client","middleware","http","oauth","auth"],homepage:"https://github.com/commercetools/commercetools-sdk-typescript",license:"MIT",directories:{lib:"lib",test:"test"},publishConfig:{access:"public"},repository:{type:"git",url:"git+https://github.com/commercetools/commercetools-sdk-typescript.git"},bugs:{url:"https://github.com/commercetools/commercetools-sdk-typescript/issues"},dependencies:{buffer:"^6.0.3"},files:["dist","CHANGELOG.md"],author:"Chukwuemeka Ajima <meeky.ae@gmail.com>",main:"dist/commercetools-ts-client.cjs.js",module:"dist/commercetools-ts-client.esm.js",browser:{"./dist/commercetools-ts-client.cjs.js":"./dist/commercetools-ts-client.browser.cjs.js","./dist/commercetools-ts-client.esm.js":"./dist/commercetools-ts-client.browser.esm.js"},devDependencies:{"common-tags":"1.8.2",dotenv:"16.5.0",jest:"29.7.0",nock:"14.0.4","organize-imports-cli":"0.10.0"},scripts:{organize_imports:"find src -type f -name '*.ts' | xargs organize-imports-cli",postbuild:"yarn organize_imports",post_process_generate:"yarn organize_imports",docs:"typedoc --out docs"}};function X(e){return r=>async t=>{let o=ae({...e,name:`${e.name?e.name+"/":""}commercetools-sdk-javascript-v3/${ke.version}`}),i={...t,headers:{...t.headers,"User-Agent":o}};return r(i)}}function nr({middlewares:e}){return e.length===1?e[0]:e.slice().reduce((t,o)=>(...i)=>t(o.apply(null,i)))}var Pe;function ue(e,r,t){if(le("process",e,{allowedMethods:["GET"]}),typeof r!="function")throw new Error('The "process" function accepts a "Function" as a second argument that returns a Promise. See https://commercetools.github.io/nodejs/sdk/api/sdkClient.html#processrequest-processfn-options');let o={total:Number.POSITIVE_INFINITY,accumulate:!0,...t};return new Promise((i,s)=>{let a,n="";if(e&&e.uri){let[C,p]=e.uri.split("?");a=C,n=p}let l={limit:20,...{...ye(n)}},d=o.total,c=!1,M=async(C,p=[])=>{let S=l.limit<d?l.limit:d,h=se({...l,limit:S}),w={sort:"id asc",withTotal:!1,...C?{where:`id > "${C}"`}:{}},f=se(w),q={...e,uri:`${a}?${f}&${h}`};try{let x=await P(Pe).execute(q),{results:Z,count:F}=x?.body||{};if(!F&&c)return i(p||[]);let m=await Promise.resolve(r(x)),y;if(c=!0,o.accumulate&&(y=p.concat(m||[])),d-=F,F<l.limit||!d)return i(y||[]);let $=Z[F-1],ee=$&&$.id;M(ee,y)}catch(x){s(x)}};M()})}function P(e){Pe=e,ge(e);let r=!1,t={async resolve(i){let{response:s,includeOriginalRequest:a,maskSensitiveHeaderData:n,...u}=i,{retryCount:l,...d}=s;return r=n,{body:null,error:null,reject:i.reject,resolve:i.resolve,...d,...a?{originalRequest:u}:{},...s?.retryCount?{retryCount:s.retryCount}:{}}}},o=nr(e)(t.resolve);return{process:ue,execute(i){return le("exec",i),new Promise(async(s,a)=>{try{let n=await o({reject:a,resolve:s,...i});if(n.error)return a(n.error);n.originalRequest&&r&&(n.originalRequest=k(n.originalRequest)),s(n)}catch(n){a(n)}})}}}var{createAuthMiddlewareForPasswordFlow:sr,createAuthMiddlewareForAnonymousSessionFlow:ar,createAuthMiddlewareForClientCredentialsFlow:lr,createAuthMiddlewareForRefreshTokenFlow:dr,createAuthMiddlewareForExistingTokenFlow:ur,createCorrelationIdMiddleware:cr,createHttpMiddleware:pr,createLoggerMiddleware:hr,createQueueMiddleware:wr,createUserAgentMiddleware:Se,createConcurrentModificationMiddleware:fr,createErrorMiddleware:mr}=Ae,L=class{projectKey;authMiddleware;httpMiddleware;userAgentMiddleware;correlationIdMiddleware;loggerMiddleware;queueMiddleware;concurrentMiddleware;telemetryMiddleware;beforeMiddleware;afterMiddleware;errorMiddleware;middlewares=[];constructor(){this.userAgentMiddleware=Se({})}withProjectKey(r){return this.projectKey=r,this}defaultClient(r,t,o,i,s,a){return this.withClientCredentialsFlow({host:o,projectKey:i||this.projectKey,credentials:t,httpClient:a||fetch,scopes:s}).withHttpMiddleware({host:r,httpClient:a||fetch})}withAuthMiddleware(r){return this.authMiddleware=r,this}withMiddleware(r){return this.middlewares.push(r),this}withErrorMiddleware(r){return this.errorMiddleware=mr(r),this}withClientCredentialsFlow(r){return this.withAuthMiddleware(lr({host:r.host||g.CTP_AUTH_URL,projectKey:r.projectKey||this.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null},oauthUri:r.oauthUri||null,scopes:r.scopes,httpClient:r.httpClient||fetch,...r}))}withPasswordFlow(r){return this.withAuthMiddleware(sr({host:r.host||g.CTP_AUTH_URL,projectKey:r.projectKey||this.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null,user:{username:r.credentials.user.username||null,password:r.credentials.user.password||null}},httpClient:r.httpClient||fetch,...r}))}withAnonymousSessionFlow(r){return this.withAuthMiddleware(ar({host:r.host||g.CTP_AUTH_URL,projectKey:this.projectKey||r.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null,anonymousId:r.credentials.anonymousId||null},httpClient:r.httpClient||fetch,...r}))}withRefreshTokenFlow(r){return this.withAuthMiddleware(dr({host:r.host||g.CTP_AUTH_URL,projectKey:this.projectKey||r.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null},httpClient:r.httpClient||fetch,refreshToken:r.refreshToken||null,...r}))}withExistingTokenFlow(r,t){return this.withAuthMiddleware(ur(r,{force:t.force||!0,...t}))}withHttpMiddleware(r){return this.httpMiddleware=pr({host:r.host||g.CTP_API_URL,httpClient:r.httpClient||fetch,...r}),this}withUserAgentMiddleware(r){return this.userAgentMiddleware=Se(r),this}withQueueMiddleware(r){return this.queueMiddleware=wr({concurrency:r.concurrency||g.CONCURRENCT_REQUEST,...r}),this}withLoggerMiddleware(r){return this.loggerMiddleware=hr(r),this}withCorrelationIdMiddleware(r){return this.correlationIdMiddleware=cr({generate:r?.generate,...r}),this}withConcurrentModificationMiddleware(r){return this.concurrentMiddleware=fr(r?.concurrentModificationHandlerFn),this}withTelemetryMiddleware(r){let{createTelemetryMiddleware:t,...o}=r;return this.withUserAgentMiddleware({customAgent:o?.userAgent||"typescript-sdk-apm-middleware"}),this.telemetryMiddleware=t(o),this}withBeforeExecutionMiddleware(r){let{middleware:t,...o}=r||{};return this.beforeMiddleware=r.middleware(o),this}withAfterExecutionMiddleware(r){let{middleware:t,...o}=r||{};return this.afterMiddleware=r.middleware(o),this}build(){let r=this.middlewares.slice();return this.telemetryMiddleware&&r.push(this.telemetryMiddleware),this.correlationIdMiddleware&&r.push(this.correlationIdMiddleware),this.userAgentMiddleware&&r.push(this.userAgentMiddleware),this.errorMiddleware&&r.push(this.errorMiddleware),this.authMiddleware&&r.push(this.authMiddleware),this.beforeMiddleware&&r.push(this.beforeMiddleware),this.queueMiddleware&&r.push(this.queueMiddleware),this.loggerMiddleware&&r.push(this.loggerMiddleware),this.concurrentMiddleware&&r.push(this.concurrentMiddleware),this.httpMiddleware&&r.push(this.httpMiddleware),this.afterMiddleware&&r.push(this.afterMiddleware),P({middlewares:r})}};return je(yr);})();
|
|
1
|
+
var window;(window||={})["@commercetools/ts-client"]=(()=>{var ce=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ie=Object.getOwnPropertyNames;var Ne=Object.prototype.hasOwnProperty;var pe=(e,r)=>{for(var t in r)ce(e,t,{get:r[t],enumerable:!0})},Ue=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of Ie(r))!Ne.call(e,i)&&i!==t&&ce(e,i,{get:()=>r[i],enumerable:!(o=Fe(r,i))||o.enumerable});return e};var je=e=>Ue(ce({},"__esModule",{value:!0}),e);var yr={};pe(yr,{ClientBuilder:()=>L,Process:()=>ue,createAuthMiddlewareForAnonymousSessionFlow:()=>v,createAuthMiddlewareForClientCredentialsFlow:()=>H,createAuthMiddlewareForExistingTokenFlow:()=>_,createAuthMiddlewareForPasswordFlow:()=>B,createAuthMiddlewareForRefreshTokenFlow:()=>K,createClient:()=>S,createConcurrentModificationMiddleware:()=>z,createCorrelationIdMiddleware:()=>J,createErrorMiddleware:()=>V,createHttpMiddleware:()=>G,createLoggerMiddleware:()=>Y,createQueueMiddleware:()=>W,createUserAgentMiddleware:()=>X});var Ae={};pe(Ae,{createAuthMiddlewareForAnonymousSessionFlow:()=>v,createAuthMiddlewareForClientCredentialsFlow:()=>H,createAuthMiddlewareForExistingTokenFlow:()=>_,createAuthMiddlewareForPasswordFlow:()=>B,createAuthMiddlewareForRefreshTokenFlow:()=>K,createConcurrentModificationMiddleware:()=>z,createCorrelationIdMiddleware:()=>J,createErrorMiddleware:()=>V,createHttpMiddleware:()=>G,createLoggerMiddleware:()=>Y,createQueueMiddleware:()=>W,createUserAgentMiddleware:()=>X});function I(e){return e&&typeof e=="string"?new TextEncoder().encode(e).length.toString():e&&e instanceof Uint8Array?e.byteLength.toString():e&&typeof e=="object"?new TextEncoder().encode(JSON.stringify(e)).length.toString():"0"}var g={};pe(g,{CONCURRENCT_REQUEST:()=>He,CTP_API_URL:()=>_e,CTP_AUTH_URL:()=>Be,DEFAULT_HEADERS:()=>he,HEADERS_CONTENT_TYPES:()=>ve});var ve=["application/json","application/graphql"],He=20,_e="https://api.europe-west1.gcp.commercetools.com",Be="https://auth.europe-west1.gcp.commercetools.com",he=["content-type","access-control-allow-origin","access-control-allow-headers","access-control-allow-methods","access-control-expose-headers","access-control-max-ag","x-correlation-id","server-timing","date","server","transfer-encoding","access-control-max-age","content-encoding","x-envoy-upstream-service-time","via","alt-svc","connection"];function b(e,r,t={}){this.code=t.code??=this.constructor.name,this.statusCode=e,this.status=e,this.message=r,Object.assign(this,t),this.name=this.constructor.name,this.constructor.prototype.__proto__=Error.prototype,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}function be(...e){b.call(this,0,...e)}function Te(...e){b.call(this,...e)}function Ke(...e){b.call(this,400,...e)}function Le(...e){b.call(this,401,...e)}function $e(...e){b.call(this,403,...e)}function De(...e){b.call(this,404,...e)}function Qe(...e){b.call(this,409,...e)}function ze(...e){b.call(this,500,...e)}function Je(...e){b.call(this,503,...e)}function we(e){switch(e){case 0:return be;case 400:return Ke;case 401:return Le;case 403:return $e;case 404:return De;case 409:return Qe;case 500:return ze;case 503:return Je;default:return}}function Ve({statusCode:e,message:r,...t}){let o=r||"Unexpected non-JSON error response";e===404&&(o=`URI not found: ${t.originalRequest?.uri||t.uri}`);let i=we(e);return i?new i(o,t):new Te(e,o,t)}var N=Ve;function Ge(e,r){return[503,...e].includes(r?.status||r?.statusCode)}async function Ye(e,r){async function t(){return await e({...r,headers:{...r.headers}})}return t().catch(o=>Promise.reject(o))}async function U(e){let{url:r,httpClient:t,...o}=e;return await Ye(async s=>{let{enableRetry:a,retryConfig:n,timeout:d,getAbortController:c}=o,{retryCodes:l=[],maxDelay:u=1/0,maxRetries:M=3,backoff:C=!0,retryDelay:p=200,retryOnAbort:x=!0}=n||{},h,w,f=0,q;fe(l);async function E(){return t(r,{...s,...o,headers:{...o.headers},...o.body?{data:o.body}:{},withCredentials:s.credentialsMode==="include"})}function Z(){let y=(c?c():null)||new AbortController;return o.abortController=y,o.signal=y.signal,y}async function F(){let y=async(re,qe)=>{let D={};if(d){let k=Z();q=setTimeout(()=>{k.abort(),k=Z()},d)}try{if(D=await E(),D.status>399&&Ge(re,D))return{_response:D,shouldRetry:!0}}catch(k){if((k.name.includes("AbortError")||k.name.includes("TimeoutError"))&&qe)return{_response:k,shouldRetry:!0};throw k}finally{clearTimeout(q)}return{_response:D,shouldRetry:!1}},{_response:$,shouldRetry:ee}=await y(l,x);for(;a&&ee&&f<M;){f++,await oe(te({retryCount:f,retryDelay:p,maxRetries:M,backoff:C,maxDelay:u}));let re=await y(l,x);$=re._response,ee=re.shouldRetry}return $}let m=await F();try{m.text&&typeof m.text=="function"?(h=await m.text()||JSON.stringify(m[Object.getOwnPropertySymbols(m)[1]]),w=JSON.parse(h)):w=m.data||m}catch(y){throw y}return{data:w,retryCount:f,statusCode:m.status||m.statusCode||w.statusCode,headers:m.headers}},{validateStatus:s=>!0})}function ie(){return("1000000-1000-4000-8000"+-1e11).replace(/[018]/g,e=>(parseInt(e)^Math.floor(Math.random()*256)&15>>parseInt(e)/4).toString(16))}function We(e){return he.reduce((r,t)=>{let o=e[t]?e[t]:typeof e.get=="function"?e.get(t):null;return o&&(r[t]=o),r},{})}function T(e){if(!e)return null;if(e.raw&&typeof e.raw=="function")return e.raw();if(!e.forEach)return We(e);let r={};return e.forEach((t,o)=>r[o]=t),r}function Q(e){return e!=null&&e.constructor!=null&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function P(e){let r=JSON.parse(JSON.stringify(e));return r?.headers&&(r.headers.Authorization&&(r.headers.Authorization="Bearer ********"),r.headers.authorization&&(r.headers.authorization="Bearer ********")),r}function j(e,r){return{...r,headers:{...r.headers,Authorization:`Bearer ${e}`}}}var me=["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"];function te({retryCount:e,retryDelay:r,backoff:t,maxDelay:o}){return t&&e!==0?Math.min(Math.round((Math.random()+1)*r*2**e),o):r}Math.min(Math.round((Math.random()+1)*200*2**10),1/0);function oe(e){return new Promise(r=>{setTimeout(r,e)})}function R(e){if(!e?.credentials?.clientId||!e.projectKey||!e.host)throw new Error("Missing required options.");return{clientId:e.credentials.clientId,host:e.host,projectKey:e.projectKey}}function ne(e){return Date.now()+e*1e3-5*60*1e3}function A(e){let r=e;return{get:t=>r,set:(t,o)=>{r=t}}}function xe(e){return typeof e<"u"&&e!==null}function Xe(e){return xe(e)?typeof e=="string"?e:Object.fromEntries(Object.entries(e).filter(([r,t])=>![null,void 0,""].includes(t))):""}function Ze(e){let r={},t=new URLSearchParams(e);for(let o of t.keys())t.getAll(o).length>1?r[o]=t.getAll(o):r[o]=t.get(o);return r}function er(e){if(e=Xe(e),!e)return"";let r=new URLSearchParams(e);for(let[t,o]of Object.entries(e))Array.isArray(o)&&(r.delete(t),o.filter(xe).forEach(i=>r.append(t,i)));return r.toString()}function ye(e,r=Ze){return r(e)}function se(e,r=er){return r(e)}var rr=()=>typeof window<"u"&&window.document&&window.document.nodeType===9;function tr(){if(rr())return window.navigator.userAgent;let e=process?.version?.slice(1)||"unknown",r=`(${process?.platform||""}; ${process?.arch||""})`;return`node.js/${e} ${r.trim()}`}function ae(e){let r=null,t=null;if(!e)throw new Error("Missing required option `name`");let o=e.version?`${e.name}/${e.version}`:e.name;e.libraryName&&!e.libraryVersion?r=e.libraryName:e.libraryName&&e.libraryVersion&&(r=`${e.libraryName}/${e.libraryVersion}`),e.contactUrl&&!e.contactEmail?t=`(+${e.contactUrl})`:!e.contactUrl&&e.contactEmail?t=`(+${e.contactEmail})`:e.contactUrl&&e.contactEmail&&(t=`(+${e.contactUrl}; +${e.contactEmail})`);let i=tr(),s=e.customAgent||"";return[o,i,r,t,s].filter(Boolean).join(" ")}function Me(e){if(!e.host)throw new Error("Request `host` or `url` is missing or invalid, please pass in a valid host e.g `host: http://a-valid-host-url`");if(!e.httpClient&&typeof e.httpClient!="function")throw new Error("An `httpClient` is not available, please pass in a `fetch` or `axios` instance as an option or have them globally available.");if(e.httpClientOptions&&Object.prototype.toString.call(e.httpClientOptions)!=="[object Object]")throw new Error("`httpClientOptions` must be an object type")}function fe(e){if(!Array.isArray(e))throw new Error("`retryCodes` option must be an array of retry status (error) codes and/or messages.")}function ge(e){if(!e)throw new Error("Missing required options");if(e.middlewares&&!Array.isArray(e.middlewares))throw new Error("Middlewares should be an array");if(!e.middlewares||!Array.isArray(e.middlewares)||!e.middlewares.length)throw new Error("You need to provide at least one middleware")}function le(e,r,t={allowedMethods:me}){if(!r)throw new Error(`The "${e}" function requires a "Request" object as an argument. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(typeof r.uri!="string")throw new Error(`The "${e}" Request object requires a valid uri. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(!t.allowedMethods.includes(r.method))throw new Error(`The "${e}" Request object requires a valid method. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`)}function Ce(e){if(!e)throw new Error("Missing required options");if(!e.host)throw new Error("Missing required option (host)");if(!e.projectKey)throw new Error("Missing required option (projectKey)");if(!e.credentials)throw new Error("Missing required option (credentials)");let{clientId:r,clientSecret:t}=e.credentials||{};if(!(r&&t))throw new Error("Missing required credentials (clientId, clientSecret)");let o=e.scopes?e.scopes.join(" "):void 0,i=btoa(`${r}:${t}`),s=e.oauthUri||"/oauth/token",a=e.host.replace(/\/$/,"")+s,n=`grant_type=client_credentials${o?`&scope=${o}`:""}`;return{url:a,body:n,basicAuth:i}}function Ee(e){if(!e)throw new Error("Missing required options");if(!e.projectKey)throw new Error("Missing required option (projectKey)");let r=e.projectKey;e.oauthUri=e.oauthUri||`/oauth/${r}/anonymous/token`;let t=Ce(e);return e.credentials.anonymousId&&(t.body+=`&anonymous_id=${e.credentials.anonymousId}`),{...t}}function de(e){if(!e)throw new Error("Missing required options");if(!e.host)throw new Error("Missing required option (host)");if(!e.projectKey)throw new Error("Missing required option (projectKey)");if(!e.credentials)throw new Error("Missing required option (credentials)");if(!e.refreshToken)throw new Error("Missing required option (refreshToken)");let{clientId:r,clientSecret:t}=e.credentials;if(!(r&&t))throw new Error("Missing required credentials (clientId, clientSecret)");let o=btoa(`${r}:${t}`),i=e.oauthUri||"/oauth/token",s=e.host.replace(/\/$/,"")+i,a=`grant_type=refresh_token&refresh_token=${encodeURIComponent(e.refreshToken)}`;return{basicAuth:o,url:s,body:a}}function Oe(e){if(!e)throw new Error("Missing required options");if(!e.host)throw new Error("Missing required option (host)");if(!e.projectKey)throw new Error("Missing required option (projectKey)");if(!e.credentials)throw new Error("Missing required option (credentials)");let{clientId:r,clientSecret:t,user:o}=e.credentials,i=e.projectKey;if(!(r&&t&&o))throw new Error("Missing required credentials (clientId, clientSecret, user)");let{username:s,password:a}=o;if(!(s&&a))throw new Error("Missing required user credentials (username, password)");let n=(e.scopes||[]).join(" "),d=n?`&scope=${n}`:"",c=btoa(`${r}:${t}`),l=e.oauthUri||`/oauth/${i}/customers/token`,u=e.host.replace(/\/$/,"")+l,M=`grant_type=password&username=${encodeURIComponent(s)}&password=${encodeURIComponent(a)}${d}`;return{basicAuth:c,url:u,body:M}}async function Re(e){let{httpClient:r,httpClientOptions:t,tokenCache:o,userOption:i,tokenCacheObject:s,tokenCacheKey:a}=e,n=e.url,d=e.body,c=e.basicAuth;if(!r||typeof r!="function")throw new Error("an `httpClient` is not available, please pass in a `fetch` or `axios` instance as an option or have them globally available.");if(s&&s.refreshToken&&(!s.token||s.token&&Date.now()>s.expirationTime)){if(!i)throw new Error("Missing required options.");let u={...de({...i,refreshToken:s.refreshToken})};n=u.url,d=u.body,c=u.basicAuth}let l;try{if(l=await U({url:n,method:"POST",headers:{Authorization:`Basic ${c}`,"Content-Type":"application/x-www-form-urlencoded","Content-Length":I(d)},httpClient:r,httpClientOptions:t,body:d}),l.statusCode>=200&&l.statusCode<300){let{access_token:u,expires_in:M,refresh_token:C}=l?.data,p=ne(M),x={token:u,expirationTime:p,refreshToken:C};return await o.set(x,a),Promise.resolve(!0)}throw N({code:l.data.error,statusCode:l.data.statusCode,message:l.data.message,error:l.data.errors})}catch(u){throw u}}async function O(e,r=null,t,o,i,s,a,n){let d={request:e,tokenCache:i,tokenCacheKey:o,httpClient:a.httpClient||fetch,httpClientOptions:a.httpClientOptions,...s(a),userOption:a,next:n},c=async l=>{let u=Object.assign({},l);return u.statusCode==401&&(r=Re(d),await r,r=null,t=await i.get(o),u=await n(j(t.token,e))),u};return e.headers&&(e.headers.Authorization||e.headers.authorization)?c(await n(e)):(t=await i.get(o),t&&t.token&&Date.now()<t.expirationTime?c(await n(j(t.token,e))):(r?await r:(r=Re(d),await r,r=null),t=await i.get(o),n(j(t.token,e))))}function v(e){let r=e.tokenCache||A({token:"",expirationTime:-1}),t,o=null,i=R(e);return s=>async a=>O(a,o,t,i,r,Ee,e,s)}function H(e){let r=e.tokenCache||A({token:"",expirationTime:-1}),t,o=null,i=R(e);return s=>async a=>O(a,o,t,i,r,Ce,e,s)}function _(e,r){return t=>async o=>{if(typeof e!="string")throw new Error("authorization must be a string");let i=r?.force===void 0?!0:r.force;if(!e||o.headers&&(o.headers.Authorization||o.headers.authorization)&&i===!1)return t(o);let s={...o,headers:{...o.headers,Authorization:e}};return t(s)}}function B(e){let r=e.tokenCache||A({token:"",expirationTime:-1}),t,o=null,i=R(e);return s=>async a=>O(a,o,t,i,r,Oe,e,s)}function K(e){let r=e.tokenCache||A({token:"",tokenCacheKey:null}),t,o=null,i=R(e);return s=>async a=>O(a,o,t,i,r,de,e,s)}function z(e){return r=>async t=>{let o=await r(t);if(o.statusCode==409){let i=o.error.body?.errors?.[0]?.currentVersion;if(i)return e&&typeof e=="function"?t.body=await e(i,t,o):t.body=typeof t.body=="string"?{...JSON.parse(t.body),version:i}:{...t.body,version:i},r(t)}return o}}function J(e){return r=>t=>{let o={...t,headers:{...t.headers,"X-Correlation-ID":e?.generate&&typeof e.generate=="function"?e.generate():ie()}};return r(o)}}function V(e={}){return r=>async t=>{let o=await r(t);if(o.error){let{error:i}=o;return e.handler&&typeof e.handler=="function"?e.handler({error:i,request:t,response:o,next:r}):{...o,statusCode:i.statusCode||0,headers:i.headers||T({}),body:i,error:i}}return o}}async function or({url:e,httpClient:r,clientOptions:t}){let{request:o,maskSensitiveHeaderData:i,includeRequestInErrorResponse:s,includeResponseHeaders:a}=t;try{let n=await U({url:e,...t,httpClient:r,method:t.method,...t.body?{body:t.body}:{}});if(a||(n.headers=null),n.statusCode>=200&&n.statusCode<300)return t.method=="HEAD"?{body:null,statusCode:n.statusCode,retryCount:n.retryCount,headers:T(n.headers)}:{body:n.data,statusCode:n.statusCode,retryCount:n.retryCount,headers:T(n.headers)};let d=N({code:n.data?.errors?.[0].code,message:n?.data?.message||n?.message,statusCode:n.statusCode||n?.data?.statusCode,method:t.method,headers:T(n.headers),body:n.data,error:n.data,retryCount:n.retryCount,...s?{originalRequest:i?P(o):o}:{uri:o.uri}});return{...d,error:d}}catch(n){let d=a?T(n.response?.headers):null,c=n.response?.status||n.response?.statusCode||n.response?.data.statusCode||0,l=n.response?.data?.message;throw{body:null,error:N({statusCode:c,code:"NetworkError",status:c,message:l||n.message,headers:d,body:n.response?.data||n,error:n.response?.data||n,...s?{originalRequest:i?P(o):o}:{uri:o.uri}})}}}function G(e){Me(e);let{host:r,credentialsMode:t,httpClient:o,timeout:i,enableRetry:s,retryConfig:a,getAbortController:n,includeOriginalRequest:d,includeRequestInErrorResponse:c=!0,includeResponseHeaders:l=!0,maskSensitiveHeaderData:u,httpClientOptions:M}=e;return C=>async p=>{let x=r.replace(/\/$/,"")+p.uri,h={...p.headers};Object.prototype.hasOwnProperty.call(h,"Content-Type")||Object.prototype.hasOwnProperty.call(h,"content-type")||(h["Content-Type"]="application/json"),h["Content-Type"]===null&&delete h["Content-Type"];let w=g.HEADERS_CONTENT_TYPES.indexOf(h["Content-Type"])>-1&&typeof p.body=="string"||Q(p.body)?p.body:JSON.stringify(p.body||void 0);w&&(typeof w=="string"||Q(w))&&(h["Content-Length"]=I(w));let f={enableRetry:s,retryConfig:a,request:p,method:p.method,headers:h,includeRequestInErrorResponse:c,maskSensitiveHeaderData:u,includeResponseHeaders:l,...M};t&&(f.credentialsMode=t),i&&(f.timeout=i,f.getAbortController=n),w&&(f.body=w);let q=await or({url:x,clientOptions:f,httpClient:o}),E={...p,includeOriginalRequest:d,maskSensitiveHeaderData:u,response:q};return C(E)}}function Y(e){return r=>async t=>{let o=await r(t),i=Object.assign({},o),{loggerFn:s=console.log}=e||{};return s&&typeof s=="function"&&s(o),i}}function W({concurrency:e=20}){let r=0,t=[],o=()=>0>=e?Promise.resolve():new Promise(s=>{let a=()=>{r<e?(r++,s()):t.push(a)};a()}),i=()=>{if(r--,t.length>0){let s=t.shift();s&&s()}};return s=>a=>o().then(()=>{let n={...a,resolve(d){a.resolve(d),i()},reject(d){a.reject(d),i()}};return s(n).finally(()=>{i()})})}var ke={name:"@commercetools/ts-client",version:"4.0.0",engines:{node:">=18"},description:"commercetools Composable Commerce TypeScript SDK client.",keywords:["commercetools","composable commerce","sdk","typescript","client","middleware","http","oauth","auth"],homepage:"https://github.com/commercetools/commercetools-sdk-typescript",license:"MIT",directories:{lib:"lib",test:"test"},publishConfig:{access:"public"},repository:{type:"git",url:"git+https://github.com/commercetools/commercetools-sdk-typescript.git"},bugs:{url:"https://github.com/commercetools/commercetools-sdk-typescript/issues"},dependencies:{buffer:"^6.0.3"},files:["dist","CHANGELOG.md"],author:"Chukwuemeka Ajima <meeky.ae@gmail.com>",main:"dist/commercetools-ts-client.cjs.js",module:"dist/commercetools-ts-client.esm.js",browser:{"./dist/commercetools-ts-client.cjs.js":"./dist/commercetools-ts-client.browser.cjs.js","./dist/commercetools-ts-client.esm.js":"./dist/commercetools-ts-client.browser.esm.js"},devDependencies:{"common-tags":"1.8.2",dotenv:"16.5.0",jest:"29.7.0",nock:"14.0.4","organize-imports-cli":"0.10.0"},scripts:{organize_imports:"find src -type f -name '*.ts' | xargs organize-imports-cli",postbuild:"yarn organize_imports",post_process_generate:"yarn organize_imports",docs:"typedoc --out docs"}};function X(e){return r=>async t=>{let o=ae({...e,name:`${e.name?e.name+"/":""}commercetools-sdk-javascript-v3/${ke.version}`}),i={...t,headers:{...t.headers,"User-Agent":o}};return r(i)}}function nr({middlewares:e}){return e.length===1?e[0]:e.slice().reduce((t,o)=>(...i)=>t(o.apply(null,i)))}var Pe;function ue(e,r,t){if(le("process",e,{allowedMethods:["GET"]}),typeof r!="function")throw new Error('The "process" function accepts a "Function" as a second argument that returns a Promise. See https://commercetools.github.io/nodejs/sdk/api/sdkClient.html#processrequest-processfn-options');let o={total:Number.POSITIVE_INFINITY,accumulate:!0,...t};return new Promise((i,s)=>{let a,n="";if(e&&e.uri){let[C,p]=e.uri.split("?");a=C,n=p}let c={limit:20,...{...ye(n)}},l=o.total,u=!1,M=async(C,p=[])=>{let x=c.limit<l?c.limit:l,h=se({...c,limit:x}),w={sort:"id asc",withTotal:!1,...C?{where:`id > "${C}"`}:{}},f=se(w),q={...e,uri:`${a}?${f}&${h}`};try{let E=await S(Pe).execute(q),{results:Z,count:F}=E?.body||{};if(!F&&u)return i(p||[]);let m=await Promise.resolve(r(E)),y;if(u=!0,o.accumulate&&(y=p.concat(m||[])),l-=F,F<c.limit||!l)return i(y||[]);let $=Z[F-1],ee=$&&$.id;M(ee,y)}catch(E){s(E)}};M()})}function S(e){Pe=e,ge(e);let r=!1,t={async resolve(i){let{response:s,includeOriginalRequest:a,maskSensitiveHeaderData:n,...d}=i,{retryCount:c,...l}=s;return r=n,{body:null,error:null,reject:i.reject,resolve:i.resolve,...l,...a?{originalRequest:d}:{},...s?.retryCount?{retryCount:s.retryCount}:{}}}},o=nr(e)(t.resolve);return{process:ue,execute(i){return le("exec",i),new Promise(async(s,a)=>{try{let n=await o({reject:a,resolve:s,...i});if(n.error)return a(n.error);n.originalRequest&&r&&(n.originalRequest=P(n.originalRequest)),s(n)}catch(n){a(n)}})}}}var{createAuthMiddlewareForPasswordFlow:sr,createAuthMiddlewareForAnonymousSessionFlow:ar,createAuthMiddlewareForClientCredentialsFlow:lr,createAuthMiddlewareForRefreshTokenFlow:dr,createAuthMiddlewareForExistingTokenFlow:ur,createCorrelationIdMiddleware:cr,createHttpMiddleware:pr,createLoggerMiddleware:hr,createQueueMiddleware:wr,createUserAgentMiddleware:Se,createConcurrentModificationMiddleware:fr,createErrorMiddleware:mr}=Ae,L=class{projectKey;authMiddleware;httpMiddleware;userAgentMiddleware;correlationIdMiddleware;loggerMiddleware;queueMiddleware;concurrentMiddleware;telemetryMiddleware;beforeMiddleware;afterMiddleware;errorMiddleware;middlewares=[];constructor(){this.userAgentMiddleware=Se({})}withProjectKey(r){return this.projectKey=r,this}defaultClient(r,t,o,i,s,a){return this.withClientCredentialsFlow({host:o,projectKey:i||this.projectKey,credentials:t,httpClient:a||fetch,scopes:s}).withHttpMiddleware({host:r,httpClient:a||fetch})}withAuthMiddleware(r){return this.authMiddleware=r,this}withMiddleware(r){return this.middlewares.push(r),this}withErrorMiddleware(r){return this.errorMiddleware=mr(r),this}withClientCredentialsFlow(r){return this.withAuthMiddleware(lr({host:r.host||g.CTP_AUTH_URL,projectKey:r.projectKey||this.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null},oauthUri:r.oauthUri||null,scopes:r.scopes,httpClient:r.httpClient||fetch,...r}))}withPasswordFlow(r){return this.withAuthMiddleware(sr({host:r.host||g.CTP_AUTH_URL,projectKey:r.projectKey||this.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null,user:{username:r.credentials.user.username||null,password:r.credentials.user.password||null}},httpClient:r.httpClient||fetch,...r}))}withAnonymousSessionFlow(r){return this.withAuthMiddleware(ar({host:r.host||g.CTP_AUTH_URL,projectKey:this.projectKey||r.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null,anonymousId:r.credentials.anonymousId||null},httpClient:r.httpClient||fetch,...r}))}withRefreshTokenFlow(r){return this.withAuthMiddleware(dr({host:r.host||g.CTP_AUTH_URL,projectKey:this.projectKey||r.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null},httpClient:r.httpClient||fetch,refreshToken:r.refreshToken||null,...r}))}withExistingTokenFlow(r,t){return this.withAuthMiddleware(ur(r,{force:t.force||!0,...t}))}withHttpMiddleware(r){return this.httpMiddleware=pr({host:r.host||g.CTP_API_URL,httpClient:r.httpClient||fetch,...r}),this}withUserAgentMiddleware(r){return this.userAgentMiddleware=Se(r),this}withQueueMiddleware(r){return this.queueMiddleware=wr({concurrency:r.concurrency||g.CONCURRENCT_REQUEST,...r}),this}withLoggerMiddleware(r){return this.loggerMiddleware=hr(r),this}withCorrelationIdMiddleware(r){return this.correlationIdMiddleware=cr({generate:r?.generate,...r}),this}withConcurrentModificationMiddleware(r){return this.concurrentMiddleware=fr(r?.concurrentModificationHandlerFn),this}withTelemetryMiddleware(r){let{createTelemetryMiddleware:t,...o}=r;return this.withUserAgentMiddleware({customAgent:o?.userAgent||"typescript-sdk-apm-middleware"}),this.telemetryMiddleware=t(o),this}withBeforeExecutionMiddleware(r){let{middleware:t,...o}=r||{};return this.beforeMiddleware=r.middleware(o),this}withAfterExecutionMiddleware(r){let{middleware:t,...o}=r||{};return this.afterMiddleware=r.middleware(o),this}build(){let r=this.middlewares.slice();return this.telemetryMiddleware&&r.push(this.telemetryMiddleware),this.correlationIdMiddleware&&r.push(this.correlationIdMiddleware),this.userAgentMiddleware&&r.push(this.userAgentMiddleware),this.errorMiddleware&&r.push(this.errorMiddleware),this.authMiddleware&&r.push(this.authMiddleware),this.beforeMiddleware&&r.push(this.beforeMiddleware),this.queueMiddleware&&r.push(this.queueMiddleware),this.loggerMiddleware&&r.push(this.loggerMiddleware),this.concurrentMiddleware&&r.push(this.concurrentMiddleware),this.httpMiddleware&&r.push(this.httpMiddleware),this.afterMiddleware&&r.push(this.afterMiddleware),S({middlewares:r})}};return je(yr);})();
|
|
@@ -119,8 +119,8 @@ export type TokenStore = {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
export type TokenCache = {
|
|
122
|
-
get: (tokenCacheOptions?: TokenCacheOptions) => TokenStore
|
|
123
|
-
set: (cache: TokenStore, tokenCacheOptions?: TokenCacheOptions) => void
|
|
122
|
+
get: (tokenCacheOptions?: TokenCacheOptions) => Promise<TokenStore>
|
|
123
|
+
set: (cache: TokenStore, tokenCacheOptions?: TokenCacheOptions) => Promise<void>
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
export type IBuiltRequestParams = {
|
|
@@ -146,7 +146,7 @@ export type RefreshAuthMiddlewareOptions = {
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
/* Request */
|
|
149
|
-
type
|
|
149
|
+
type RequestBaseOptions = {
|
|
150
150
|
url: string
|
|
151
151
|
body: string
|
|
152
152
|
basicAuth: string
|
|
@@ -157,13 +157,13 @@ type requestBaseOptions = {
|
|
|
157
157
|
httpClientOptions?: object
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
export type
|
|
160
|
+
export type ExecuteRequestOptions = RequestBaseOptions & {
|
|
161
161
|
next: Next
|
|
162
162
|
httpClient?: Function
|
|
163
163
|
userOption?: AuthMiddlewareOptions | PasswordAuthMiddlewareOptions
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
-
export type AuthMiddlewareBaseOptions =
|
|
166
|
+
export type AuthMiddlewareBaseOptions = RequestBaseOptions & {
|
|
167
167
|
request: MiddlewareRequest
|
|
168
168
|
httpClient?: Function
|
|
169
169
|
}
|