@commercetools/ts-client
Advanced tools
Comparing version 2.1.0-alpha.1 to 2.1.0
# @commercetools/ts-client | ||
## 2.1.0 | ||
### Minor Changes | ||
- [#814](https://github.com/commercetools/commercetools-sdk-typescript/pull/814) [`57a16d7`](https://github.com/commercetools/commercetools-sdk-typescript/commit/57a16d75ded60923bf080ef2270c3396fe8bc0e5) Thanks [@ajimae](https://github.com/ajimae)! - Restructure middleware logic | ||
## 2.0.5 | ||
@@ -4,0 +10,0 @@ |
@@ -262,12 +262,5 @@ 'use strict'; | ||
// import { v4 as uuidv4 } from 'uuid' | ||
// export default function generateID() { | ||
// return uuidv4() | ||
// } | ||
function generateID() { | ||
// @ts-ignore | ||
const str = ([1e6] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)); | ||
return 'abcdef'[Math.floor(Math.random() * 'abcdef'.length)] + '' + str; | ||
return ([1e6] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (parseInt(c) ^ Math.floor(Math.random() * 256) & 15 >> parseInt(c) / 4).toString(16)); | ||
} | ||
@@ -755,7 +748,5 @@ | ||
// Now the token is present in the tokenCache | ||
// Now the token is present in the tokenCache and can be accessed | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -813,5 +804,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -892,5 +881,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -944,5 +931,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -966,3 +951,3 @@ }; | ||
if (version) { | ||
if (modifierFunction) { | ||
if (modifierFunction && typeof modifierFunction == 'function') { | ||
request.body = await modifierFunction(version, request, response); | ||
@@ -1221,4 +1206,4 @@ } else { | ||
let runningCount = 0; | ||
const queue = []; | ||
const waitForSlot = () => { | ||
// dont allow negative or 0 value for concurrency | ||
if (0 >= concurrency) return Promise.resolve(); | ||
@@ -1231,33 +1216,38 @@ return new Promise(resolve => { | ||
} else { | ||
// Retry until a slot becomes available | ||
setTimeout(tryNext, 10); | ||
queue.push(tryNext); | ||
} | ||
}; | ||
// start | ||
tryNext(); | ||
}); | ||
}; | ||
return next => { | ||
return async request => { | ||
return waitForSlot().then(async () => { | ||
// Patch the request to override resolve and reject | ||
const patchedRequest = { | ||
...request, | ||
resolve(data) { | ||
request.resolve(data); | ||
runningCount--; | ||
}, | ||
reject(error) { | ||
request.reject(error); | ||
runningCount--; | ||
} | ||
}; | ||
try { | ||
return next(patchedRequest); | ||
} finally { | ||
runningCount--; | ||
// Function to free up a slot after a request is completed | ||
const freeSlot = () => { | ||
runningCount--; | ||
if (queue.length > 0) { | ||
const nextInQueue = queue.shift(); | ||
if (nextInQueue) { | ||
nextInQueue(); | ||
} | ||
} | ||
}; | ||
return next => request => { | ||
return waitForSlot().then(() => { | ||
const patchedRequest = { | ||
...request, | ||
resolve(data) { | ||
request.resolve(data); | ||
freeSlot(); | ||
}, | ||
reject(error) { | ||
request.reject(error); | ||
freeSlot(); | ||
} | ||
}; | ||
// Process the next middleware | ||
return next(patchedRequest).finally(() => { | ||
freeSlot(); | ||
}); | ||
}; | ||
}); | ||
}; | ||
@@ -1268,3 +1258,3 @@ } | ||
name: "@commercetools/ts-client", | ||
version: "2.1.0-alpha.1", | ||
version: "2.1.0", | ||
engines: { | ||
@@ -1307,6 +1297,3 @@ node: ">=14" | ||
"dist", | ||
"CHANGELOG.md", | ||
"LICENSE", | ||
"README.md", | ||
"package.json" | ||
"CHANGELOG.md" | ||
], | ||
@@ -1313,0 +1300,0 @@ author: "Chukwuemeka Ajima <meeky.ae@gmail.com>", |
@@ -253,12 +253,5 @@ import fetch$1 from 'node-fetch'; | ||
// import { v4 as uuidv4 } from 'uuid' | ||
// export default function generateID() { | ||
// return uuidv4() | ||
// } | ||
function generateID() { | ||
// @ts-ignore | ||
const str = ([1e6] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)); | ||
return 'abcdef'[Math.floor(Math.random() * 'abcdef'.length)] + '' + str; | ||
return ([1e6] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (parseInt(c) ^ Math.floor(Math.random() * 256) & 15 >> parseInt(c) / 4).toString(16)); | ||
} | ||
@@ -746,7 +739,5 @@ | ||
// Now the token is present in the tokenCache | ||
// Now the token is present in the tokenCache and can be accessed | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -804,5 +795,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -883,5 +872,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -935,5 +922,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -957,3 +942,3 @@ }; | ||
if (version) { | ||
if (modifierFunction) { | ||
if (modifierFunction && typeof modifierFunction == 'function') { | ||
request.body = await modifierFunction(version, request, response); | ||
@@ -1212,4 +1197,4 @@ } else { | ||
let runningCount = 0; | ||
const queue = []; | ||
const waitForSlot = () => { | ||
// dont allow negative or 0 value for concurrency | ||
if (0 >= concurrency) return Promise.resolve(); | ||
@@ -1222,33 +1207,38 @@ return new Promise(resolve => { | ||
} else { | ||
// Retry until a slot becomes available | ||
setTimeout(tryNext, 10); | ||
queue.push(tryNext); | ||
} | ||
}; | ||
// start | ||
tryNext(); | ||
}); | ||
}; | ||
return next => { | ||
return async request => { | ||
return waitForSlot().then(async () => { | ||
// Patch the request to override resolve and reject | ||
const patchedRequest = { | ||
...request, | ||
resolve(data) { | ||
request.resolve(data); | ||
runningCount--; | ||
}, | ||
reject(error) { | ||
request.reject(error); | ||
runningCount--; | ||
} | ||
}; | ||
try { | ||
return next(patchedRequest); | ||
} finally { | ||
runningCount--; | ||
// Function to free up a slot after a request is completed | ||
const freeSlot = () => { | ||
runningCount--; | ||
if (queue.length > 0) { | ||
const nextInQueue = queue.shift(); | ||
if (nextInQueue) { | ||
nextInQueue(); | ||
} | ||
} | ||
}; | ||
return next => request => { | ||
return waitForSlot().then(() => { | ||
const patchedRequest = { | ||
...request, | ||
resolve(data) { | ||
request.resolve(data); | ||
freeSlot(); | ||
}, | ||
reject(error) { | ||
request.reject(error); | ||
freeSlot(); | ||
} | ||
}; | ||
// Process the next middleware | ||
return next(patchedRequest).finally(() => { | ||
freeSlot(); | ||
}); | ||
}; | ||
}); | ||
}; | ||
@@ -1259,3 +1249,3 @@ } | ||
name: "@commercetools/ts-client", | ||
version: "2.1.0-alpha.1", | ||
version: "2.1.0", | ||
engines: { | ||
@@ -1298,6 +1288,3 @@ node: ">=14" | ||
"dist", | ||
"CHANGELOG.md", | ||
"LICENSE", | ||
"README.md", | ||
"package.json" | ||
"CHANGELOG.md" | ||
], | ||
@@ -1304,0 +1291,0 @@ author: "Chukwuemeka Ajima <meeky.ae@gmail.com>", |
@@ -262,12 +262,5 @@ 'use strict'; | ||
// import { v4 as uuidv4 } from 'uuid' | ||
// export default function generateID() { | ||
// return uuidv4() | ||
// } | ||
function generateID() { | ||
// @ts-ignore | ||
const str = ([1e6] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)); | ||
return 'abcdef'[Math.floor(Math.random() * 'abcdef'.length)] + '' + str; | ||
return ([1e6] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (parseInt(c) ^ Math.floor(Math.random() * 256) & 15 >> parseInt(c) / 4).toString(16)); | ||
} | ||
@@ -755,7 +748,5 @@ | ||
// Now the token is present in the tokenCache | ||
// Now the token is present in the tokenCache and can be accessed | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -813,5 +804,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -892,5 +881,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -944,5 +931,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -966,3 +951,3 @@ }; | ||
if (version) { | ||
if (modifierFunction) { | ||
if (modifierFunction && typeof modifierFunction == 'function') { | ||
request.body = await modifierFunction(version, request, response); | ||
@@ -1221,4 +1206,4 @@ } else { | ||
let runningCount = 0; | ||
const queue = []; | ||
const waitForSlot = () => { | ||
// dont allow negative or 0 value for concurrency | ||
if (0 >= concurrency) return Promise.resolve(); | ||
@@ -1231,33 +1216,38 @@ return new Promise(resolve => { | ||
} else { | ||
// Retry until a slot becomes available | ||
setTimeout(tryNext, 10); | ||
queue.push(tryNext); | ||
} | ||
}; | ||
// start | ||
tryNext(); | ||
}); | ||
}; | ||
return next => { | ||
return async request => { | ||
return waitForSlot().then(async () => { | ||
// Patch the request to override resolve and reject | ||
const patchedRequest = { | ||
...request, | ||
resolve(data) { | ||
request.resolve(data); | ||
runningCount--; | ||
}, | ||
reject(error) { | ||
request.reject(error); | ||
runningCount--; | ||
} | ||
}; | ||
try { | ||
return next(patchedRequest); | ||
} finally { | ||
runningCount--; | ||
// Function to free up a slot after a request is completed | ||
const freeSlot = () => { | ||
runningCount--; | ||
if (queue.length > 0) { | ||
const nextInQueue = queue.shift(); | ||
if (nextInQueue) { | ||
nextInQueue(); | ||
} | ||
} | ||
}; | ||
return next => request => { | ||
return waitForSlot().then(() => { | ||
const patchedRequest = { | ||
...request, | ||
resolve(data) { | ||
request.resolve(data); | ||
freeSlot(); | ||
}, | ||
reject(error) { | ||
request.reject(error); | ||
freeSlot(); | ||
} | ||
}; | ||
// Process the next middleware | ||
return next(patchedRequest).finally(() => { | ||
freeSlot(); | ||
}); | ||
}; | ||
}); | ||
}; | ||
@@ -1268,3 +1258,3 @@ } | ||
name: "@commercetools/ts-client", | ||
version: "2.1.0-alpha.1", | ||
version: "2.1.0", | ||
engines: { | ||
@@ -1307,6 +1297,3 @@ node: ">=14" | ||
"dist", | ||
"CHANGELOG.md", | ||
"LICENSE", | ||
"README.md", | ||
"package.json" | ||
"CHANGELOG.md" | ||
], | ||
@@ -1313,0 +1300,0 @@ author: "Chukwuemeka Ajima <meeky.ae@gmail.com>", |
@@ -262,12 +262,5 @@ 'use strict'; | ||
// import { v4 as uuidv4 } from 'uuid' | ||
// export default function generateID() { | ||
// return uuidv4() | ||
// } | ||
function generateID() { | ||
// @ts-ignore | ||
const str = ([1e6] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)); | ||
return 'abcdef'[Math.floor(Math.random() * 'abcdef'.length)] + '' + str; | ||
return ([1e6] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (parseInt(c) ^ Math.floor(Math.random() * 256) & 15 >> parseInt(c) / 4).toString(16)); | ||
} | ||
@@ -755,7 +748,5 @@ | ||
// Now the token is present in the tokenCache | ||
// Now the token is present in the tokenCache and can be accessed | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -813,5 +804,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -892,5 +881,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -944,5 +931,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -966,3 +951,3 @@ }; | ||
if (version) { | ||
if (modifierFunction) { | ||
if (modifierFunction && typeof modifierFunction == 'function') { | ||
request.body = await modifierFunction(version, request, response); | ||
@@ -1221,4 +1206,4 @@ } else { | ||
let runningCount = 0; | ||
const queue = []; | ||
const waitForSlot = () => { | ||
// dont allow negative or 0 value for concurrency | ||
if (0 >= concurrency) return Promise.resolve(); | ||
@@ -1231,33 +1216,38 @@ return new Promise(resolve => { | ||
} else { | ||
// Retry until a slot becomes available | ||
setTimeout(tryNext, 10); | ||
queue.push(tryNext); | ||
} | ||
}; | ||
// start | ||
tryNext(); | ||
}); | ||
}; | ||
return next => { | ||
return async request => { | ||
return waitForSlot().then(async () => { | ||
// Patch the request to override resolve and reject | ||
const patchedRequest = { | ||
...request, | ||
resolve(data) { | ||
request.resolve(data); | ||
runningCount--; | ||
}, | ||
reject(error) { | ||
request.reject(error); | ||
runningCount--; | ||
} | ||
}; | ||
try { | ||
return next(patchedRequest); | ||
} finally { | ||
runningCount--; | ||
// Function to free up a slot after a request is completed | ||
const freeSlot = () => { | ||
runningCount--; | ||
if (queue.length > 0) { | ||
const nextInQueue = queue.shift(); | ||
if (nextInQueue) { | ||
nextInQueue(); | ||
} | ||
} | ||
}; | ||
return next => request => { | ||
return waitForSlot().then(() => { | ||
const patchedRequest = { | ||
...request, | ||
resolve(data) { | ||
request.resolve(data); | ||
freeSlot(); | ||
}, | ||
reject(error) { | ||
request.reject(error); | ||
freeSlot(); | ||
} | ||
}; | ||
// Process the next middleware | ||
return next(patchedRequest).finally(() => { | ||
freeSlot(); | ||
}); | ||
}; | ||
}); | ||
}; | ||
@@ -1268,3 +1258,3 @@ } | ||
name: "@commercetools/ts-client", | ||
version: "2.1.0-alpha.1", | ||
version: "2.1.0", | ||
engines: { | ||
@@ -1307,6 +1297,3 @@ node: ">=14" | ||
"dist", | ||
"CHANGELOG.md", | ||
"LICENSE", | ||
"README.md", | ||
"package.json" | ||
"CHANGELOG.md" | ||
], | ||
@@ -1313,0 +1300,0 @@ author: "Chukwuemeka Ajima <meeky.ae@gmail.com>", |
@@ -253,12 +253,5 @@ import fetch$1 from 'node-fetch'; | ||
// import { v4 as uuidv4 } from 'uuid' | ||
// export default function generateID() { | ||
// return uuidv4() | ||
// } | ||
function generateID() { | ||
// @ts-ignore | ||
const str = ([1e6] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)); | ||
return 'abcdef'[Math.floor(Math.random() * 'abcdef'.length)] + '' + str; | ||
return ([1e6] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (parseInt(c) ^ Math.floor(Math.random() * 256) & 15 >> parseInt(c) / 4).toString(16)); | ||
} | ||
@@ -746,7 +739,5 @@ | ||
// Now the token is present in the tokenCache | ||
// Now the token is present in the tokenCache and can be accessed | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -804,5 +795,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -883,5 +872,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -935,5 +922,3 @@ }; | ||
tokenCacheObject = tokenCache.get(tokenCacheKey); | ||
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) { | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
} | ||
return next(mergeAuthHeader(tokenCacheObject.token, request)); | ||
}; | ||
@@ -957,3 +942,3 @@ }; | ||
if (version) { | ||
if (modifierFunction) { | ||
if (modifierFunction && typeof modifierFunction == 'function') { | ||
request.body = await modifierFunction(version, request, response); | ||
@@ -1212,4 +1197,4 @@ } else { | ||
let runningCount = 0; | ||
const queue = []; | ||
const waitForSlot = () => { | ||
// dont allow negative or 0 value for concurrency | ||
if (0 >= concurrency) return Promise.resolve(); | ||
@@ -1222,33 +1207,38 @@ return new Promise(resolve => { | ||
} else { | ||
// Retry until a slot becomes available | ||
setTimeout(tryNext, 10); | ||
queue.push(tryNext); | ||
} | ||
}; | ||
// start | ||
tryNext(); | ||
}); | ||
}; | ||
return next => { | ||
return async request => { | ||
return waitForSlot().then(async () => { | ||
// Patch the request to override resolve and reject | ||
const patchedRequest = { | ||
...request, | ||
resolve(data) { | ||
request.resolve(data); | ||
runningCount--; | ||
}, | ||
reject(error) { | ||
request.reject(error); | ||
runningCount--; | ||
} | ||
}; | ||
try { | ||
return next(patchedRequest); | ||
} finally { | ||
runningCount--; | ||
// Function to free up a slot after a request is completed | ||
const freeSlot = () => { | ||
runningCount--; | ||
if (queue.length > 0) { | ||
const nextInQueue = queue.shift(); | ||
if (nextInQueue) { | ||
nextInQueue(); | ||
} | ||
} | ||
}; | ||
return next => request => { | ||
return waitForSlot().then(() => { | ||
const patchedRequest = { | ||
...request, | ||
resolve(data) { | ||
request.resolve(data); | ||
freeSlot(); | ||
}, | ||
reject(error) { | ||
request.reject(error); | ||
freeSlot(); | ||
} | ||
}; | ||
// Process the next middleware | ||
return next(patchedRequest).finally(() => { | ||
freeSlot(); | ||
}); | ||
}; | ||
}); | ||
}; | ||
@@ -1259,3 +1249,3 @@ } | ||
name: "@commercetools/ts-client", | ||
version: "2.1.0-alpha.1", | ||
version: "2.1.0", | ||
engines: { | ||
@@ -1298,6 +1288,3 @@ node: ">=14" | ||
"dist", | ||
"CHANGELOG.md", | ||
"LICENSE", | ||
"README.md", | ||
"package.json" | ||
"CHANGELOG.md" | ||
], | ||
@@ -1304,0 +1291,0 @@ author: "Chukwuemeka Ajima <meeky.ae@gmail.com>", |
@@ -1,1 +0,1 @@ | ||
var window;(window||={})["@commercetools/ts-client"]=(()=>{var $e=Object.create;var ie=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var Qe=Object.getOwnPropertyNames;var Je=Object.getPrototypeOf,Ve=Object.prototype.hasOwnProperty;var Ee=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),me=(e,t)=>{for(var r in t)ie(e,r,{get:t[r],enumerable:!0})},Oe=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Qe(t))!Ve.call(e,i)&&i!==r&&ie(e,i,{get:()=>t[i],enumerable:!(o=ze(t,i))||o.enumerable});return e};var V=(e,t,r)=>(r=e!=null?$e(Je(e)):{},Oe(t||!e||!e.__esModule?ie(r,"default",{value:e,enumerable:!0}):r,e)),Ge=e=>Oe(ie({},"__esModule",{value:!0}),e);var G=Ee((q,Pe)=>{"use strict";var Ye=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")},F=Ye();Pe.exports=q=F.fetch;F.fetch&&(q.default=F.fetch.bind(F));q.Headers=F.Headers;q.Request=F.Request;q.Response=F.Response});var _e=Ee((ro,he)=>{"use strict";var{AbortController:Ne,AbortSignal:yt}=typeof self<"u"?self:typeof window<"u"?window:void 0;he.exports=Ne;he.exports.AbortSignal=yt;he.exports.default=Ne});var Ft={};me(Ft,{ClientBuilder:()=>z,Process:()=>we,createAuthMiddlewareForAnonymousSessionFlow:()=>K,createAuthMiddlewareForClientCredentialsFlow:()=>D,createAuthMiddlewareForExistingTokenFlow:()=>L,createAuthMiddlewareForPasswordFlow:()=>B,createAuthMiddlewareForRefreshTokenFlow:()=>$,createClient:()=>j,createConcurrentModificationMiddleware:()=>W,createCorrelationIdMiddleware:()=>X,createHttpMiddleware:()=>Z,createLoggerMiddleware:()=>ee,createQueueMiddleware:()=>te,createUserAgentMiddleware:()=>re});var v=V(G());var ke={};me(ke,{createAuthMiddlewareForAnonymousSessionFlow:()=>K,createAuthMiddlewareForClientCredentialsFlow:()=>D,createAuthMiddlewareForExistingTokenFlow:()=>L,createAuthMiddlewareForPasswordFlow:()=>B,createAuthMiddlewareForRefreshTokenFlow:()=>$,createConcurrentModificationMiddleware:()=>W,createCorrelationIdMiddleware:()=>X,createErrorMiddleware:()=>xe,createHttpMiddleware:()=>Z,createLoggerMiddleware:()=>ee,createQueueMiddleware:()=>te,createUserAgentMiddleware:()=>re});var Ie=V(G());var y={};me(y,{CONCURRENCT_REQUEST:()=>Xe,CTP_API_URL:()=>Ze,CTP_AUTH_URL:()=>et,DEFAULT_HEADERS:()=>ye,HEADERS_CONTENT_TYPES:()=>We});var We=["application/json","application/graphql"],Xe=20,Ze="https://api.europe-west1.gcp.commercetools.com",et="https://auth.europe-west1.gcp.commercetools.com",ye=["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 k(e,t,r={}){this.status=this.statusCode=this.code=e,this.message=t,Object.assign(this,r),this.name=this.constructor.name,this.constructor.prototype.__proto__=Error.prototype,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}function Se(...e){k.call(this,0,...e)}function Fe(...e){k.call(this,...e)}function tt(...e){k.call(this,400,...e)}function rt(...e){k.call(this,401,...e)}function ot(...e){k.call(this,403,...e)}function it(...e){k.call(this,404,...e)}function nt(...e){k.call(this,409,...e)}function at(...e){k.call(this,500,...e)}function st(...e){k.call(this,503,...e)}function Me(e){switch(e){case 0:return Se;case 400:return tt;case 401:return rt;case 403:return ot;case 404:return it;case 409:return nt;case 500:return at;case 503:return st;default:return}}function lt({statusCode:e,message:t,...r}){let o=t||"Unexpected non-JSON error response";e===404&&(o=`URI not found: ${r.originalRequest?.uri||r.uri}`);let i=Me(e);return i?new i(o,r):new Fe(e,o,r)}var H=lt;function dt(e,t){return[503,...e].includes(t?.status||t?.statusCode)}async function ut(e,t){async function r(){return await e({...t,headers:{...t.headers}})}return r().catch(o=>Promise.reject(o))}async function N(e){let{url:t,httpClient:r,...o}=e;return await ut(async n=>{let{enableRetry:a,retryConfig:l,abortController:u}=o,{retryCodes:d=[],maxDelay:s=1/0,maxRetries:p=3,backoff:f=!0,retryDelay:M=200,retryOnAbort:c=!0}=l||{},g,x,w=0;ge(d);async function C(){return r(t,{...o,...n,headers:{...o.headers,...n.headers,"Accept-Encoding":"application/json"},...o.body?{data:o.body}:{},withCredentials:n.credentialsMode==="include"})}async function R(){let O=async(S,Q)=>{let J={};try{if(J=await C(),J.status>399&&dt(S,J))return{_response:J,shouldRetry:!0}}catch(fe){if(fe.name.includes("AbortError")&&Q)return{_response:fe,shouldRetry:!0};throw fe}return{_response:J,shouldRetry:!1}},P=c||!u||!u.signal,{_response:oe,shouldRetry:I}=await O(d,P);for(;a&&I&&w<p;){w++;let S=await O(d,P);oe=S._response,I=S.shouldRetry;let Q=ne({retryCount:w,retryDelay:M,maxRetries:p,backoff:f,maxDelay:s});await ae(Q)}return oe}let h=await R();try{h.text&&typeof h.text=="function"?(g=await h.text()||h[Object.getOwnPropertySymbols(h)[1]],x=JSON.parse(g)):x=h.data||h}catch{x=g}return{data:x,retryCount:w,statusCode:h.status||h.statusCode||x.statusCode,headers:h.headers}},{})}function se(){let e=("1000000-1000-4000-8000"+-1e11).replace(/[018]/g,t=>(t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16));return"abcdef"[Math.floor(Math.random()*6)]+""+e}function ct(e){return ye.reduce((t,r)=>{let o=e[r]?e[r]:typeof e.get=="function"?e.get(r):null;return o&&(t[r]=o),t},{})}function b(e){if(!e)return null;if(e.raw&&typeof e.raw=="function")return e.raw();if(!e.forEach)return ct(e);let t={};return e.forEach((r,o)=>t[o]=r)}function Y(e){return e!=null&&e.constructor!=null&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function U(e){let t=Object.assign({},e);return t?.headers&&(t.headers.Authorization&&(t.headers.Authorization="Bearer ********"),t.headers.authorization&&(t.headers.authorization="Bearer ********")),t}function m(e,t){return{...t,headers:{...t.headers,Authorization:`Bearer ${e}`}}}var Ce=["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 ne({retryCount:e,retryDelay:t,backoff:r,maxDelay:o}){return r&&e!==0?Math.min(Math.round((Math.random()+1)*t*2**e),o):t}Math.min(Math.round((Math.random()+1)*200*2**10),1/0);function ae(e){return new Promise(t=>{setTimeout(t,e)})}function A(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 le(e){return Date.now()+e*1e3-5*60*1e3}function T(e){let t=e;return{get:r=>t,set:(r,o)=>{t=r}}}function Ue(e){return typeof e<"u"&&e!==null}function pt(e){return Ue(e)?typeof e=="string"?e:Object.fromEntries(Object.entries(e).filter(([t,r])=>![null,void 0,""].includes(r))):""}function ht(e){let t={},r=new URLSearchParams(e);for(let o of r.keys())r.getAll(o).length>1?t[o]=r.getAll(o):t[o]=r.get(o);return t}function wt(e){if(e=pt(e),!e)return"";let t=new URLSearchParams(e);for(let[r,o]of Object.entries(e))Array.isArray(o)&&(t.delete(r),o.filter(Ue).forEach(i=>t.append(r,i)));return t.toString()}function Re(e,t=ht){return t(e)}function de(e,t=wt){return t(e)}var ft=()=>typeof window<"u"&&window.document&&window.document.nodeType===9;function mt(){if(ft())return window.navigator.userAgent;let e=process?.version.slice(1)||"unknow",t=`(${process.platform}; ${process.arch})`;return`node.js/${e} ${t}`}function ue(e){let t=null,r=null;if(!e)throw new Error("Missing required option `name`");let o=e.version?`${e.name}/${e.version}`:e.name;e.libraryName&&!e.libraryVersion?t=e.libraryName:e.libraryName&&e.libraryVersion&&(t=`${e.libraryName}/${e.libraryVersion}`),e.contactUrl&&!e.contactEmail?r=`(+${e.contactUrl})`:!e.contactUrl&&e.contactEmail?r=`(+${e.contactEmail})`:e.contactUrl&&e.contactEmail&&(r=`(+${e.contactUrl}; +${e.contactEmail})`);let i=mt(),n=e.customAgent||"";return[o,i,t,r,n].filter(Boolean).join(" ")}function _(e){return typeof e=="string"?e.length.toString():e&&typeof e=="object"?new TextEncoder().encode(JSON.stringify(e)).length.toString():e instanceof Uint8Array?e.length.toString():"0"}function be(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.")}function ge(e){if(!Array.isArray(e))throw new Error("`retryCodes` option must be an array of retry status (error) codes and/or messages.")}function Ae(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 ce(e,t,r={allowedMethods:Ce}){if(!t)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 t.uri!="string")throw new Error(`The "${e}" Request object requires a valid uri. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(!r.allowedMethods.includes(t.method))throw new Error(`The "${e}" Request object requires a valid method. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`)}function Te(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:t,clientSecret:r}=e.credentials||{};if(!(t&&r))throw new Error("Missing required credentials (clientId, clientSecret)");let o=e.scopes?e.scopes.join(" "):void 0,i=btoa(`${t}:${r}`),n=e.oauthUri||"/oauth/token",a=e.host.replace(/\/$/,"")+n,l=`grant_type=client_credentials${o?`&scope=${o}`:""}`;return{url:a,body:l,basicAuth:i}}function je(e){if(!e)throw new Error("Missing required options");if(!e.projectKey)throw new Error("Missing required option (projectKey)");let t=e.projectKey;e.oauthUri=e.oauthUri||`/oauth/${t}/anonymous/token`;let r=Te(e);return e.credentials.anonymousId&&(r.body+=`&anonymous_id=${e.credentials.anonymousId}`),{...r}}function pe(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:t,clientSecret:r}=e.credentials;if(!(t&&r))throw new Error("Missing required credentials (clientId, clientSecret)");let o=btoa(`${t}:${r}`),i=e.oauthUri||"/oauth/token",n=e.host.replace(/\/$/,"")+i,a=`grant_type=refresh_token&refresh_token=${encodeURIComponent(e.refreshToken)}`;return{basicAuth:o,url:n,body:a}}function ve(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:t,clientSecret:r,user:o}=e.credentials,i=e.projectKey;if(!(t&&r&&o))throw new Error("Missing required credentials (clientId, clientSecret, user)");let{username:n,password:a}=o;if(!(n&&a))throw new Error("Missing required user credentials (username, password)");let l=(e.scopes||[]).join(" "),u=l?`&scope=${l}`:"",d=btoa(`${t}:${r}`),s=e.oauthUri||`/oauth/${i}/customers/token`,p=e.host.replace(/\/$/,"")+s,f=`grant_type=password&username=${encodeURIComponent(n)}&password=${encodeURIComponent(a)}${u}`;return{basicAuth:d,url:p,body:f}}async function E(e){let{httpClient:t,tokenCache:r,userOption:o,tokenCacheObject:i}=e,n=e.url,a=e.body,l=e.basicAuth;if(!t||typeof t!="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(i&&i.refreshToken&&(!i.token||i.token&&Date.now()>i.expirationTime)){if(!o)throw new Error("Missing required options.");let d={...pe({...o,refreshToken:i.refreshToken})};n=d.url,a=d.body,l=d.basicAuth}let u;try{if(u=await N({url:n,method:"POST",headers:{Authorization:`Basic ${l}`,"Content-Type":"application/x-www-form-urlencoded","Content-Length":_(a)},httpClient:t,body:a}),u.statusCode>=200&&u.statusCode<300){let{access_token:d,expires_in:s,refresh_token:p}=u?.data,f=le(s);return r.set({token:d,expirationTime:f,refreshToken:p}),Promise.resolve(!0)}throw H({code:u.data.error,statusCode:u.data.statusCode,message:u.data.message,error:u.data.errors})}catch(d){throw d}}function K(e){let t=e.tokenCache||T({token:"",expirationTime:-1}),r,o=null,i=A(e);return n=>async a=>{if(a.headers&&(a.headers.Authorization||a.headers.authorization))return n(a);if(r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a));let l={request:a,tokenCache:t,tokenCacheKey:i,httpClient:e.httpClient||Ie.default,...je(e),userOption:e,next:n};if(o?await o:(o=E(l),await o,o=null),r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a))}}var qe=V(G());function D(e){let t=e.tokenCache||T({token:"",expirationTime:-1}),r,o=null,i=A(e);return n=>async a=>{if(a.headers&&(a.headers.Authorization||a.headers.authorization))return n(a);if(r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a));let l={request:a,tokenCache:t,tokenCacheKey:i,tokenCacheObject:r,httpClient:e.httpClient||qe.default,...Te(e),next:n};if(o?await o:(o=E(l),await o,o=null),r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a))}}function L(e,t){return r=>async o=>{if(typeof e!="string")throw new Error("authorization must be a string");let i=t?.force===void 0?!0:t.force;if(!e||o.headers&&(o.headers.Authorization||o.headers.authorization)&&i===!1)return r(o);let n={...o,headers:{...o.headers,Authorization:e}};return r(n)}}var He=V(G());function B(e){let t=e.tokenCache||T({token:"",expirationTime:-1}),r,o=null,i=A(e);return n=>async a=>{if(a.headers&&(a.headers.Authorization||a.headers.authorization))return n(a);if(r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a));let l={request:a,tokenCache:t,tokenCacheKey:i,httpClient:e.httpClient||He.default,...ve(e),userOption:e,next:n};if(o?await o:(o=E(l),await o,o=null),r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a))}}function $(e){let t=e.tokenCache||T({token:"",tokenCacheKey:null}),r,o=null,i=A(e);return n=>async a=>{if(a.headers&&(a.headers.Authorization||a.headers.authorization))return n(a);if(r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a));let l={request:a,tokenCache:t,httpClient:e.httpClient||fetch,...pe(e),next:n};if(o?await o:(o=E(l),await o,o=null),r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a))}}function W(e){return t=>async r=>{let o=await t(r);if(o.statusCode==409){let i=o.error.body?.errors?.[0]?.currentVersion;if(i)return e?r.body=await e(i,r,o):r.body=typeof r.body=="string"?{...JSON.parse(r.body),version:i}:{...r.body,version:i},t(r)}return o}}function X(e){return t=>r=>{let o={...r,headers:{...r.headers,"X-Correlation-ID":e.generate&&typeof e.generate=="function"?e.generate():se()}};return t(o)}}function xe(e){return t=>async r=>{let o=await t(r);if(o.error){let{error:i}=o;return{...o,statusCode:i.statusCode||0,headers:i.headers||b({}),error:{...i,body:i.data||i}}}return o}}var Ke=V(_e());async function Mt({url:e,httpClient:t,clientOptions:r}){let o,{timeout:i,request:n,abortController:a,maskSensitiveHeaderData:l,includeRequestInErrorResponse:u,includeResponseHeaders:d}=r;try{i&&(o=setTimeout(()=>{a.abort()},i));let s=await N({url:e,...r,httpClient:t,method:r.method,...r.body?{body:r.body}:{}});if(d||(s.headers=null),s.statusCode>=200&&s.statusCode<300)return r.method=="HEAD"?{body:null,statusCode:s.statusCode,retryCount:s.retryCount,headers:b(s.headers)}:{body:s.data,statusCode:s.statusCode,retryCount:s.retryCount,headers:b(s.headers)};let p=H({message:s?.data?.message||s?.message,statusCode:s.statusCode||s?.data?.statusCode,headers:b(s.headers),method:r.method,body:s.data,retryCount:s.retryCount,...u?{originalRequest:l?U(n):n}:{uri:n.uri}});return{body:s.data,code:s.statusCode,statusCode:s.statusCode,headers:b(s.headers),error:p}}catch(s){let p=d?b(s.response?.headers):null,f=s.response?.status||s.response?.data0||0,M=s.response?.data?.message,c=H({statusCode:f,code:f,status:f,message:M||s.message,headers:p,body:s.response?.data||s,error:s.response?.data,...u?{originalRequest:l?U(n):n}:{uri:n.uri}});throw{body:c,error:c}}finally{clearTimeout(o)}}function Z(e){be(e);let{host:t,credentialsMode:r,httpClient:o,timeout:i,enableRetry:n,retryConfig:a,getAbortController:l,includeOriginalRequest:u,includeRequestInErrorResponse:d=!0,includeResponseHeaders:s=!0,maskSensitiveHeaderData:p,httpClientOptions:f}=e;return M=>async c=>{let g;(i||l)&&(g=(l?l():null)||new Ke.default);let x=t.replace(/\/$/,"")+c.uri,w={...c.headers};Object.prototype.hasOwnProperty.call(w,"Content-Type")||Object.prototype.hasOwnProperty.call(w,"content-type")||(w["Content-Type"]="application/json"),w["Content-Type"]===null&&delete w["Content-Type"];let C=y.HEADERS_CONTENT_TYPES.indexOf(w["Content-Type"])>-1&&typeof c.body=="string"||Y(c.body)?c.body:JSON.stringify(c.body||void 0);C&&(typeof C=="string"||Y(C))&&(w["Content-Length"]=_(C));let R={enableRetry:n,retryConfig:a,request:c,method:c.method,headers:w,includeRequestInErrorResponse:d,maskSensitiveHeaderData:p,includeResponseHeaders:s,...f};r&&(R.credentialsMode=r),g&&(R.signal=g.signal),i&&(R.timeout=i,R.abortController=g),C&&(R.body=C);let h=await Mt({url:x,clientOptions:R,httpClient:o}),O={...c,includeOriginalRequest:u,maskSensitiveHeaderData:p,response:h};return M(O)}}function ee(e){return t=>async r=>{let o=await t(r),i=Object.assign({},o),{loggerFn:n=console.log}=e||{};return n&&typeof n=="function"&&n(o),i}}function te({concurrency:e=20}){let t=0,r=()=>0>=e?Promise.resolve():new Promise(o=>{let i=()=>{t<e?(t++,o()):setTimeout(i,10)};i()});return o=>async i=>r().then(async()=>{let n={...i,resolve(a){i.resolve(a),t--},reject(a){i.reject(a),t--}};try{return o(n)}finally{t--}})}var De={name:"@commercetools/ts-client",version:"2.1.0-alpha.1",engines:{node:">=14"},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:{"abort-controller":"3.0.0","node-fetch":"^2.6.1"},files:["dist","CHANGELOG.md","LICENSE","README.md","package.json"],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.4.5",jest:"29.7.0",nock:"12.0.3","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 re(e){return t=>async r=>{let o=ue({...e,name:`${e.name?e.name+"/":""}commercetools-sdk-javascript-v3/${De.version}`}),i={...r,headers:{...r.headers,"User-Agent":o}};return t(i)}}function Ct({middlewares:e}){return e.length===1?e[0]:e.slice().reduce((r,o)=>(...i)=>r(o.apply(null,i)))}var Le;function we(e,t,r){if(ce("process",e,{allowedMethods:["GET"]}),typeof t!="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,...r};return new Promise((i,n)=>{let a,l="";if(e&&e.uri){let[M,c]=e.uri.split("?");a=M,l=c}let d={limit:20,...{...Re(l)}},s=o.total,p=!1,f=async(M,c=[])=>{let g=d.limit<s?d.limit:s,x=de({...d,limit:g}),w={sort:"id asc",withTotal:!1,...M?{where:`id > "${M}"`}:{}},C=de(w),R={...e,uri:`${a}?${C}&${x}`};try{let h=await j(Le).execute(R),{results:O,count:P}=h?.body||{};if(!P&&p)return i(c||[]);let oe=await Promise.resolve(t(h)),I;if(p=!0,o.accumulate&&(I=c.concat(oe||[])),s-=P,P<d.limit||!s)return i(I||[]);let S=O[P-1],Q=S&&S.id;f(Q,I)}catch(h){n(h)}};f()})}function j(e){Le=e,Ae(e);let t=!1,r={async resolve(i){let{response:n,includeOriginalRequest:a,maskSensitiveHeaderData:l,...u}=i,{retryCount:d,...s}=n;return t=l,{body:null,error:null,reject:i.reject,resolve:i.resolve,...s,...a?{originalRequest:u}:{},...n?.retryCount?{retryCount:n.retryCount}:{}}}},o=Ct(e)(r.resolve);return{process:we,execute(i){return ce("exec",i),new Promise(async(n,a)=>{try{let l=await o({reject:a,resolve:n,...i});if(l.error)return a(l.error);l.originalRequest&&t&&(l.originalRequest=U(l.originalRequest)),n(l)}catch(l){a(l)}})}}}var{createAuthMiddlewareForPasswordFlow:Rt,createAuthMiddlewareForAnonymousSessionFlow:bt,createAuthMiddlewareForClientCredentialsFlow:At,createAuthMiddlewareForRefreshTokenFlow:Tt,createAuthMiddlewareForExistingTokenFlow:xt,createCorrelationIdMiddleware:kt,createHttpMiddleware:Et,createLoggerMiddleware:Ot,createQueueMiddleware:Pt,createUserAgentMiddleware:Be,createConcurrentModificationMiddleware:St}=ke,z=class{projectKey;authMiddleware;httpMiddleware;userAgentMiddleware;correlationIdMiddleware;loggerMiddleware;queueMiddleware;concurrentMiddleware;telemetryMiddleware;beforeMiddleware;afterMiddleware;middlewares=[];constructor(){this.userAgentMiddleware=Be({})}withProjectKey(t){return this.projectKey=t,this}defaultClient(t,r,o,i,n,a){return this.withClientCredentialsFlow({host:o,projectKey:i||this.projectKey,credentials:r,scopes:n}).withHttpMiddleware({host:t,httpClient:a||v.default})}withAuthMiddleware(t){return this.authMiddleware=t,this}withMiddleware(t){return this.middlewares.push(t),this}withClientCredentialsFlow(t){return this.withAuthMiddleware(At({host:t.host||y.CTP_AUTH_URL,projectKey:t.projectKey||this.projectKey,credentials:{clientId:t.credentials.clientId||null,clientSecret:t.credentials.clientSecret||null},oauthUri:t.oauthUri||null,scopes:t.scopes,httpClient:t.httpClient||v.default,...t}))}withPasswordFlow(t){return this.withAuthMiddleware(Rt({host:t.host||y.CTP_AUTH_URL,projectKey:t.projectKey||this.projectKey,credentials:{clientId:t.credentials.clientId||null,clientSecret:t.credentials.clientSecret||null,user:{username:t.credentials.user.username||null,password:t.credentials.user.password||null}},httpClient:t.httpClient||v.default,...t}))}withAnonymousSessionFlow(t){return this.withAuthMiddleware(bt({host:t.host||y.CTP_AUTH_URL,projectKey:this.projectKey||t.projectKey,credentials:{clientId:t.credentials.clientId||null,clientSecret:t.credentials.clientSecret||null,anonymousId:t.credentials.anonymousId||null},httpClient:t.httpClient||v.default,...t}))}withRefreshTokenFlow(t){return this.withAuthMiddleware(Tt({host:t.host||y.CTP_AUTH_URL,projectKey:this.projectKey||t.projectKey,credentials:{clientId:t.credentials.clientId||null,clientSecret:t.credentials.clientSecret||null},httpClient:t.httpClient||v.default,refreshToken:t.refreshToken||null,...t}))}withExistingTokenFlow(t,r){return this.withAuthMiddleware(xt(t,{force:r.force||!0,...r}))}withHttpMiddleware(t){return this.httpMiddleware=Et({host:t.host||y.CTP_API_URL,httpClient:t.httpClient||v.default,...t}),this}withUserAgentMiddleware(t){return this.userAgentMiddleware=Be(t),this}withQueueMiddleware(t){return this.queueMiddleware=Pt({concurrency:t.concurrency||y.CONCURRENCT_REQUEST,...t}),this}withLoggerMiddleware(t){return this.loggerMiddleware=Ot(t),this}withCorrelationIdMiddleware(t){return this.correlationIdMiddleware=kt({generate:t?.generate,...t}),this}withConcurrentModificationMiddleware(t){return this.concurrentMiddleware=St(t?.concurrentModificationHandlerFn),this}withTelemetryMiddleware(t){let{createTelemetryMiddleware:r,...o}=t;return this.withUserAgentMiddleware({customAgent:o?.userAgent||"typescript-sdk-apm-middleware"}),this.telemetryMiddleware=r(o),this}withBeforeExecutionMiddleware(t){let{middleware:r,...o}=t||{};return this.beforeMiddleware=t.middleware(o),this}withAfterExecutionMiddleware(t){let{middleware:r,...o}=t||{};return this.afterMiddleware=t.middleware(o),this}build(){let t=this.middlewares.slice();return this.telemetryMiddleware&&t.push(this.telemetryMiddleware),this.correlationIdMiddleware&&t.push(this.correlationIdMiddleware),this.userAgentMiddleware&&t.push(this.userAgentMiddleware),this.authMiddleware&&t.push(this.authMiddleware),this.beforeMiddleware&&t.push(this.beforeMiddleware),this.queueMiddleware&&t.push(this.queueMiddleware),this.loggerMiddleware&&t.push(this.loggerMiddleware),this.concurrentMiddleware&&t.push(this.concurrentMiddleware),this.httpMiddleware&&t.push(this.httpMiddleware),this.afterMiddleware&&t.push(this.afterMiddleware),j({middlewares:t})}};return Ge(Ft);})(); | ||
var window;(window||={})["@commercetools/ts-client"]=(()=>{var $e=Object.create;var ie=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var Qe=Object.getOwnPropertyNames;var Je=Object.getPrototypeOf,Ge=Object.prototype.hasOwnProperty;var Ee=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),me=(e,t)=>{for(var r in t)ie(e,r,{get:t[r],enumerable:!0})},Oe=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Qe(t))!Ge.call(e,i)&&i!==r&&ie(e,i,{get:()=>t[i],enumerable:!(o=ze(t,i))||o.enumerable});return e};var G=(e,t,r)=>(r=e!=null?$e(Je(e)):{},Oe(t||!e||!e.__esModule?ie(r,"default",{value:e,enumerable:!0}):r,e)),Ve=e=>Oe(ie({},"__esModule",{value:!0}),e);var V=Ee((H,Pe)=>{"use strict";var Ye=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")},F=Ye();Pe.exports=H=F.fetch;F.fetch&&(H.default=F.fetch.bind(F));H.Headers=F.Headers;H.Request=F.Request;H.Response=F.Response});var _e=Ee((Xr,pe)=>{"use strict";var{AbortController:ve,AbortSignal:yt}=typeof self<"u"?self:typeof window<"u"?window:void 0;pe.exports=ve;pe.exports.AbortSignal=yt;pe.exports.default=ve});var Ft={};me(Ft,{ClientBuilder:()=>z,Process:()=>we,createAuthMiddlewareForAnonymousSessionFlow:()=>K,createAuthMiddlewareForClientCredentialsFlow:()=>B,createAuthMiddlewareForExistingTokenFlow:()=>L,createAuthMiddlewareForPasswordFlow:()=>D,createAuthMiddlewareForRefreshTokenFlow:()=>$,createClient:()=>j,createConcurrentModificationMiddleware:()=>W,createCorrelationIdMiddleware:()=>X,createHttpMiddleware:()=>Z,createLoggerMiddleware:()=>ee,createQueueMiddleware:()=>te,createUserAgentMiddleware:()=>re});var q=G(V());var ke={};me(ke,{createAuthMiddlewareForAnonymousSessionFlow:()=>K,createAuthMiddlewareForClientCredentialsFlow:()=>B,createAuthMiddlewareForExistingTokenFlow:()=>L,createAuthMiddlewareForPasswordFlow:()=>D,createAuthMiddlewareForRefreshTokenFlow:()=>$,createConcurrentModificationMiddleware:()=>W,createCorrelationIdMiddleware:()=>X,createErrorMiddleware:()=>xe,createHttpMiddleware:()=>Z,createLoggerMiddleware:()=>ee,createQueueMiddleware:()=>te,createUserAgentMiddleware:()=>re});var Ue=G(V());var y={};me(y,{CONCURRENCT_REQUEST:()=>Xe,CTP_API_URL:()=>Ze,CTP_AUTH_URL:()=>et,DEFAULT_HEADERS:()=>ye,HEADERS_CONTENT_TYPES:()=>We});var We=["application/json","application/graphql"],Xe=20,Ze="https://api.europe-west1.gcp.commercetools.com",et="https://auth.europe-west1.gcp.commercetools.com",ye=["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 k(e,t,r={}){this.status=this.statusCode=this.code=e,this.message=t,Object.assign(this,r),this.name=this.constructor.name,this.constructor.prototype.__proto__=Error.prototype,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}function Se(...e){k.call(this,0,...e)}function Fe(...e){k.call(this,...e)}function tt(...e){k.call(this,400,...e)}function rt(...e){k.call(this,401,...e)}function ot(...e){k.call(this,403,...e)}function it(...e){k.call(this,404,...e)}function nt(...e){k.call(this,409,...e)}function at(...e){k.call(this,500,...e)}function st(...e){k.call(this,503,...e)}function Me(e){switch(e){case 0:return Se;case 400:return tt;case 401:return rt;case 403:return ot;case 404:return it;case 409:return nt;case 500:return at;case 503:return st;default:return}}function lt({statusCode:e,message:t,...r}){let o=t||"Unexpected non-JSON error response";e===404&&(o=`URI not found: ${r.originalRequest?.uri||r.uri}`);let i=Me(e);return i?new i(o,r):new Fe(e,o,r)}var N=lt;function dt(e,t){return[503,...e].includes(t?.status||t?.statusCode)}async function ut(e,t){async function r(){return await e({...t,headers:{...t.headers}})}return r().catch(o=>Promise.reject(o))}async function v(e){let{url:t,httpClient:r,...o}=e;return await ut(async n=>{let{enableRetry:a,retryConfig:l,abortController:d}=o,{retryCodes:u=[],maxDelay:s=1/0,maxRetries:h=3,backoff:f=!0,retryDelay:M=200,retryOnAbort:c=!0}=l||{},g,x,w=0;ge(u);async function C(){return r(t,{...o,...n,headers:{...o.headers,...n.headers,"Accept-Encoding":"application/json"},...o.body?{data:o.body}:{},withCredentials:n.credentialsMode==="include"})}async function R(){let O=async(S,Q)=>{let J={};try{if(J=await C(),J.status>399&&dt(S,J))return{_response:J,shouldRetry:!0}}catch(fe){if(fe.name.includes("AbortError")&&Q)return{_response:fe,shouldRetry:!0};throw fe}return{_response:J,shouldRetry:!1}},P=c||!d||!d.signal,{_response:oe,shouldRetry:U}=await O(u,P);for(;a&&U&&w<h;){w++;let S=await O(u,P);oe=S._response,U=S.shouldRetry;let Q=ne({retryCount:w,retryDelay:M,maxRetries:h,backoff:f,maxDelay:s});await ae(Q)}return oe}let p=await R();try{p.text&&typeof p.text=="function"?(g=await p.text()||p[Object.getOwnPropertySymbols(p)[1]],x=JSON.parse(g)):x=p.data||p}catch{x=g}return{data:x,retryCount:w,statusCode:p.status||p.statusCode||x.statusCode,headers:p.headers}},{})}function se(){return("1000000-1000-4000-8000"+-1e11).replace(/[018]/g,e=>(parseInt(e)^Math.floor(Math.random()*256)&15>>parseInt(e)/4).toString(16))}function ct(e){return ye.reduce((t,r)=>{let o=e[r]?e[r]:typeof e.get=="function"?e.get(r):null;return o&&(t[r]=o),t},{})}function b(e){if(!e)return null;if(e.raw&&typeof e.raw=="function")return e.raw();if(!e.forEach)return ct(e);let t={};return e.forEach((r,o)=>t[o]=r)}function Y(e){return e!=null&&e.constructor!=null&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function I(e){let t=Object.assign({},e);return t?.headers&&(t.headers.Authorization&&(t.headers.Authorization="Bearer ********"),t.headers.authorization&&(t.headers.authorization="Bearer ********")),t}function m(e,t){return{...t,headers:{...t.headers,Authorization:`Bearer ${e}`}}}var Ce=["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 ne({retryCount:e,retryDelay:t,backoff:r,maxDelay:o}){return r&&e!==0?Math.min(Math.round((Math.random()+1)*t*2**e),o):t}Math.min(Math.round((Math.random()+1)*200*2**10),1/0);function ae(e){return new Promise(t=>{setTimeout(t,e)})}function A(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 le(e){return Date.now()+e*1e3-5*60*1e3}function T(e){let t=e;return{get:r=>t,set:(r,o)=>{t=r}}}function Ie(e){return typeof e<"u"&&e!==null}function ht(e){return Ie(e)?typeof e=="string"?e:Object.fromEntries(Object.entries(e).filter(([t,r])=>![null,void 0,""].includes(r))):""}function pt(e){let t={},r=new URLSearchParams(e);for(let o of r.keys())r.getAll(o).length>1?t[o]=r.getAll(o):t[o]=r.get(o);return t}function wt(e){if(e=ht(e),!e)return"";let t=new URLSearchParams(e);for(let[r,o]of Object.entries(e))Array.isArray(o)&&(t.delete(r),o.filter(Ie).forEach(i=>t.append(r,i)));return t.toString()}function Re(e,t=pt){return t(e)}function de(e,t=wt){return t(e)}var ft=()=>typeof window<"u"&&window.document&&window.document.nodeType===9;function mt(){if(ft())return window.navigator.userAgent;let e=process?.version.slice(1)||"unknow",t=`(${process.platform}; ${process.arch})`;return`node.js/${e} ${t}`}function ue(e){let t=null,r=null;if(!e)throw new Error("Missing required option `name`");let o=e.version?`${e.name}/${e.version}`:e.name;e.libraryName&&!e.libraryVersion?t=e.libraryName:e.libraryName&&e.libraryVersion&&(t=`${e.libraryName}/${e.libraryVersion}`),e.contactUrl&&!e.contactEmail?r=`(+${e.contactUrl})`:!e.contactUrl&&e.contactEmail?r=`(+${e.contactEmail})`:e.contactUrl&&e.contactEmail&&(r=`(+${e.contactUrl}; +${e.contactEmail})`);let i=mt(),n=e.customAgent||"";return[o,i,t,r,n].filter(Boolean).join(" ")}function _(e){return typeof e=="string"?e.length.toString():e&&typeof e=="object"?new TextEncoder().encode(JSON.stringify(e)).length.toString():e instanceof Uint8Array?e.length.toString():"0"}function be(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.")}function ge(e){if(!Array.isArray(e))throw new Error("`retryCodes` option must be an array of retry status (error) codes and/or messages.")}function Ae(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 ce(e,t,r={allowedMethods:Ce}){if(!t)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 t.uri!="string")throw new Error(`The "${e}" Request object requires a valid uri. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(!r.allowedMethods.includes(t.method))throw new Error(`The "${e}" Request object requires a valid method. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`)}function Te(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:t,clientSecret:r}=e.credentials||{};if(!(t&&r))throw new Error("Missing required credentials (clientId, clientSecret)");let o=e.scopes?e.scopes.join(" "):void 0,i=btoa(`${t}:${r}`),n=e.oauthUri||"/oauth/token",a=e.host.replace(/\/$/,"")+n,l=`grant_type=client_credentials${o?`&scope=${o}`:""}`;return{url:a,body:l,basicAuth:i}}function je(e){if(!e)throw new Error("Missing required options");if(!e.projectKey)throw new Error("Missing required option (projectKey)");let t=e.projectKey;e.oauthUri=e.oauthUri||`/oauth/${t}/anonymous/token`;let r=Te(e);return e.credentials.anonymousId&&(r.body+=`&anonymous_id=${e.credentials.anonymousId}`),{...r}}function he(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:t,clientSecret:r}=e.credentials;if(!(t&&r))throw new Error("Missing required credentials (clientId, clientSecret)");let o=btoa(`${t}:${r}`),i=e.oauthUri||"/oauth/token",n=e.host.replace(/\/$/,"")+i,a=`grant_type=refresh_token&refresh_token=${encodeURIComponent(e.refreshToken)}`;return{basicAuth:o,url:n,body:a}}function qe(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:t,clientSecret:r,user:o}=e.credentials,i=e.projectKey;if(!(t&&r&&o))throw new Error("Missing required credentials (clientId, clientSecret, user)");let{username:n,password:a}=o;if(!(n&&a))throw new Error("Missing required user credentials (username, password)");let l=(e.scopes||[]).join(" "),d=l?`&scope=${l}`:"",u=btoa(`${t}:${r}`),s=e.oauthUri||`/oauth/${i}/customers/token`,h=e.host.replace(/\/$/,"")+s,f=`grant_type=password&username=${encodeURIComponent(n)}&password=${encodeURIComponent(a)}${d}`;return{basicAuth:u,url:h,body:f}}async function E(e){let{httpClient:t,tokenCache:r,userOption:o,tokenCacheObject:i}=e,n=e.url,a=e.body,l=e.basicAuth;if(!t||typeof t!="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(i&&i.refreshToken&&(!i.token||i.token&&Date.now()>i.expirationTime)){if(!o)throw new Error("Missing required options.");let u={...he({...o,refreshToken:i.refreshToken})};n=u.url,a=u.body,l=u.basicAuth}let d;try{if(d=await v({url:n,method:"POST",headers:{Authorization:`Basic ${l}`,"Content-Type":"application/x-www-form-urlencoded","Content-Length":_(a)},httpClient:t,body:a}),d.statusCode>=200&&d.statusCode<300){let{access_token:u,expires_in:s,refresh_token:h}=d?.data,f=le(s);return r.set({token:u,expirationTime:f,refreshToken:h}),Promise.resolve(!0)}throw N({code:d.data.error,statusCode:d.data.statusCode,message:d.data.message,error:d.data.errors})}catch(u){throw u}}function K(e){let t=e.tokenCache||T({token:"",expirationTime:-1}),r,o=null,i=A(e);return n=>async a=>{if(a.headers&&(a.headers.Authorization||a.headers.authorization))return n(a);if(r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a));let l={request:a,tokenCache:t,tokenCacheKey:i,httpClient:e.httpClient||Ue.default,...je(e),userOption:e,next:n};return o?await o:(o=E(l),await o,o=null),r=t.get(i),n(m(r.token,a))}}var He=G(V());function B(e){let t=e.tokenCache||T({token:"",expirationTime:-1}),r,o=null,i=A(e);return n=>async a=>{if(a.headers&&(a.headers.Authorization||a.headers.authorization))return n(a);if(r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a));let l={request:a,tokenCache:t,tokenCacheKey:i,tokenCacheObject:r,httpClient:e.httpClient||He.default,...Te(e),next:n};return o?await o:(o=E(l),await o,o=null),r=t.get(i),n(m(r.token,a))}}function L(e,t){return r=>async o=>{if(typeof e!="string")throw new Error("authorization must be a string");let i=t?.force===void 0?!0:t.force;if(!e||o.headers&&(o.headers.Authorization||o.headers.authorization)&&i===!1)return r(o);let n={...o,headers:{...o.headers,Authorization:e}};return r(n)}}var Ne=G(V());function D(e){let t=e.tokenCache||T({token:"",expirationTime:-1}),r,o=null,i=A(e);return n=>async a=>{if(a.headers&&(a.headers.Authorization||a.headers.authorization))return n(a);if(r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a));let l={request:a,tokenCache:t,tokenCacheKey:i,httpClient:e.httpClient||Ne.default,...qe(e),userOption:e,next:n};return o?await o:(o=E(l),await o,o=null),r=t.get(i),n(m(r.token,a))}}function $(e){let t=e.tokenCache||T({token:"",tokenCacheKey:null}),r,o=null,i=A(e);return n=>async a=>{if(a.headers&&(a.headers.Authorization||a.headers.authorization))return n(a);if(r=t.get(i),r&&r.token&&Date.now()<r.expirationTime)return n(m(r.token,a));let l={request:a,tokenCache:t,httpClient:e.httpClient||fetch,...he(e),next:n};return o?await o:(o=E(l),await o,o=null),r=t.get(i),n(m(r.token,a))}}function W(e){return t=>async r=>{let o=await t(r);if(o.statusCode==409){let i=o.error.body?.errors?.[0]?.currentVersion;if(i)return e&&typeof e=="function"?r.body=await e(i,r,o):r.body=typeof r.body=="string"?{...JSON.parse(r.body),version:i}:{...r.body,version:i},t(r)}return o}}function X(e){return t=>r=>{let o={...r,headers:{...r.headers,"X-Correlation-ID":e.generate&&typeof e.generate=="function"?e.generate():se()}};return t(o)}}function xe(e){return t=>async r=>{let o=await t(r);if(o.error){let{error:i}=o;return{...o,statusCode:i.statusCode||0,headers:i.headers||b({}),error:{...i,body:i.data||i}}}return o}}var Ke=G(_e());async function Mt({url:e,httpClient:t,clientOptions:r}){let o,{timeout:i,request:n,abortController:a,maskSensitiveHeaderData:l,includeRequestInErrorResponse:d,includeResponseHeaders:u}=r;try{i&&(o=setTimeout(()=>{a.abort()},i));let s=await v({url:e,...r,httpClient:t,method:r.method,...r.body?{body:r.body}:{}});if(u||(s.headers=null),s.statusCode>=200&&s.statusCode<300)return r.method=="HEAD"?{body:null,statusCode:s.statusCode,retryCount:s.retryCount,headers:b(s.headers)}:{body:s.data,statusCode:s.statusCode,retryCount:s.retryCount,headers:b(s.headers)};let h=N({message:s?.data?.message||s?.message,statusCode:s.statusCode||s?.data?.statusCode,headers:b(s.headers),method:r.method,body:s.data,retryCount:s.retryCount,...d?{originalRequest:l?I(n):n}:{uri:n.uri}});return{body:s.data,code:s.statusCode,statusCode:s.statusCode,headers:b(s.headers),error:h}}catch(s){let h=u?b(s.response?.headers):null,f=s.response?.status||s.response?.data0||0,M=s.response?.data?.message,c=N({statusCode:f,code:f,status:f,message:M||s.message,headers:h,body:s.response?.data||s,error:s.response?.data,...d?{originalRequest:l?I(n):n}:{uri:n.uri}});throw{body:c,error:c}}finally{clearTimeout(o)}}function Z(e){be(e);let{host:t,credentialsMode:r,httpClient:o,timeout:i,enableRetry:n,retryConfig:a,getAbortController:l,includeOriginalRequest:d,includeRequestInErrorResponse:u=!0,includeResponseHeaders:s=!0,maskSensitiveHeaderData:h,httpClientOptions:f}=e;return M=>async c=>{let g;(i||l)&&(g=(l?l():null)||new Ke.default);let x=t.replace(/\/$/,"")+c.uri,w={...c.headers};Object.prototype.hasOwnProperty.call(w,"Content-Type")||Object.prototype.hasOwnProperty.call(w,"content-type")||(w["Content-Type"]="application/json"),w["Content-Type"]===null&&delete w["Content-Type"];let C=y.HEADERS_CONTENT_TYPES.indexOf(w["Content-Type"])>-1&&typeof c.body=="string"||Y(c.body)?c.body:JSON.stringify(c.body||void 0);C&&(typeof C=="string"||Y(C))&&(w["Content-Length"]=_(C));let R={enableRetry:n,retryConfig:a,request:c,method:c.method,headers:w,includeRequestInErrorResponse:u,maskSensitiveHeaderData:h,includeResponseHeaders:s,...f};r&&(R.credentialsMode=r),g&&(R.signal=g.signal),i&&(R.timeout=i,R.abortController=g),C&&(R.body=C);let p=await Mt({url:x,clientOptions:R,httpClient:o}),O={...c,includeOriginalRequest:d,maskSensitiveHeaderData:h,response:p};return M(O)}}function ee(e){return t=>async r=>{let o=await t(r),i=Object.assign({},o),{loggerFn:n=console.log}=e||{};return n&&typeof n=="function"&&n(o),i}}function te({concurrency:e=20}){let t=0,r=[],o=()=>0>=e?Promise.resolve():new Promise(n=>{let a=()=>{t<e?(t++,n()):r.push(a)};a()}),i=()=>{if(t--,r.length>0){let n=r.shift();n&&n()}};return n=>a=>o().then(()=>{let l={...a,resolve(d){a.resolve(d),i()},reject(d){a.reject(d),i()}};return n(l).finally(()=>{i()})})}var Be={name:"@commercetools/ts-client",version:"2.1.0",engines:{node:">=14"},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:{"abort-controller":"3.0.0","node-fetch":"^2.6.1"},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.4.5",jest:"29.7.0",nock:"12.0.3","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 re(e){return t=>async r=>{let o=ue({...e,name:`${e.name?e.name+"/":""}commercetools-sdk-javascript-v3/${Be.version}`}),i={...r,headers:{...r.headers,"User-Agent":o}};return t(i)}}function Ct({middlewares:e}){return e.length===1?e[0]:e.slice().reduce((r,o)=>(...i)=>r(o.apply(null,i)))}var Le;function we(e,t,r){if(ce("process",e,{allowedMethods:["GET"]}),typeof t!="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,...r};return new Promise((i,n)=>{let a,l="";if(e&&e.uri){let[M,c]=e.uri.split("?");a=M,l=c}let u={limit:20,...{...Re(l)}},s=o.total,h=!1,f=async(M,c=[])=>{let g=u.limit<s?u.limit:s,x=de({...u,limit:g}),w={sort:"id asc",withTotal:!1,...M?{where:`id > "${M}"`}:{}},C=de(w),R={...e,uri:`${a}?${C}&${x}`};try{let p=await j(Le).execute(R),{results:O,count:P}=p?.body||{};if(!P&&h)return i(c||[]);let oe=await Promise.resolve(t(p)),U;if(h=!0,o.accumulate&&(U=c.concat(oe||[])),s-=P,P<u.limit||!s)return i(U||[]);let S=O[P-1],Q=S&&S.id;f(Q,U)}catch(p){n(p)}};f()})}function j(e){Le=e,Ae(e);let t=!1,r={async resolve(i){let{response:n,includeOriginalRequest:a,maskSensitiveHeaderData:l,...d}=i,{retryCount:u,...s}=n;return t=l,{body:null,error:null,reject:i.reject,resolve:i.resolve,...s,...a?{originalRequest:d}:{},...n?.retryCount?{retryCount:n.retryCount}:{}}}},o=Ct(e)(r.resolve);return{process:we,execute(i){return ce("exec",i),new Promise(async(n,a)=>{try{let l=await o({reject:a,resolve:n,...i});if(l.error)return a(l.error);l.originalRequest&&t&&(l.originalRequest=I(l.originalRequest)),n(l)}catch(l){a(l)}})}}}var{createAuthMiddlewareForPasswordFlow:Rt,createAuthMiddlewareForAnonymousSessionFlow:bt,createAuthMiddlewareForClientCredentialsFlow:At,createAuthMiddlewareForRefreshTokenFlow:Tt,createAuthMiddlewareForExistingTokenFlow:xt,createCorrelationIdMiddleware:kt,createHttpMiddleware:Et,createLoggerMiddleware:Ot,createQueueMiddleware:Pt,createUserAgentMiddleware:De,createConcurrentModificationMiddleware:St}=ke,z=class{projectKey;authMiddleware;httpMiddleware;userAgentMiddleware;correlationIdMiddleware;loggerMiddleware;queueMiddleware;concurrentMiddleware;telemetryMiddleware;beforeMiddleware;afterMiddleware;middlewares=[];constructor(){this.userAgentMiddleware=De({})}withProjectKey(t){return this.projectKey=t,this}defaultClient(t,r,o,i,n,a){return this.withClientCredentialsFlow({host:o,projectKey:i||this.projectKey,credentials:r,scopes:n}).withHttpMiddleware({host:t,httpClient:a||q.default})}withAuthMiddleware(t){return this.authMiddleware=t,this}withMiddleware(t){return this.middlewares.push(t),this}withClientCredentialsFlow(t){return this.withAuthMiddleware(At({host:t.host||y.CTP_AUTH_URL,projectKey:t.projectKey||this.projectKey,credentials:{clientId:t.credentials.clientId||null,clientSecret:t.credentials.clientSecret||null},oauthUri:t.oauthUri||null,scopes:t.scopes,httpClient:t.httpClient||q.default,...t}))}withPasswordFlow(t){return this.withAuthMiddleware(Rt({host:t.host||y.CTP_AUTH_URL,projectKey:t.projectKey||this.projectKey,credentials:{clientId:t.credentials.clientId||null,clientSecret:t.credentials.clientSecret||null,user:{username:t.credentials.user.username||null,password:t.credentials.user.password||null}},httpClient:t.httpClient||q.default,...t}))}withAnonymousSessionFlow(t){return this.withAuthMiddleware(bt({host:t.host||y.CTP_AUTH_URL,projectKey:this.projectKey||t.projectKey,credentials:{clientId:t.credentials.clientId||null,clientSecret:t.credentials.clientSecret||null,anonymousId:t.credentials.anonymousId||null},httpClient:t.httpClient||q.default,...t}))}withRefreshTokenFlow(t){return this.withAuthMiddleware(Tt({host:t.host||y.CTP_AUTH_URL,projectKey:this.projectKey||t.projectKey,credentials:{clientId:t.credentials.clientId||null,clientSecret:t.credentials.clientSecret||null},httpClient:t.httpClient||q.default,refreshToken:t.refreshToken||null,...t}))}withExistingTokenFlow(t,r){return this.withAuthMiddleware(xt(t,{force:r.force||!0,...r}))}withHttpMiddleware(t){return this.httpMiddleware=Et({host:t.host||y.CTP_API_URL,httpClient:t.httpClient||q.default,...t}),this}withUserAgentMiddleware(t){return this.userAgentMiddleware=De(t),this}withQueueMiddleware(t){return this.queueMiddleware=Pt({concurrency:t.concurrency||y.CONCURRENCT_REQUEST,...t}),this}withLoggerMiddleware(t){return this.loggerMiddleware=Ot(t),this}withCorrelationIdMiddleware(t){return this.correlationIdMiddleware=kt({generate:t?.generate,...t}),this}withConcurrentModificationMiddleware(t){return this.concurrentMiddleware=St(t?.concurrentModificationHandlerFn),this}withTelemetryMiddleware(t){let{createTelemetryMiddleware:r,...o}=t;return this.withUserAgentMiddleware({customAgent:o?.userAgent||"typescript-sdk-apm-middleware"}),this.telemetryMiddleware=r(o),this}withBeforeExecutionMiddleware(t){let{middleware:r,...o}=t||{};return this.beforeMiddleware=t.middleware(o),this}withAfterExecutionMiddleware(t){let{middleware:r,...o}=t||{};return this.afterMiddleware=t.middleware(o),this}build(){let t=this.middlewares.slice();return this.telemetryMiddleware&&t.push(this.telemetryMiddleware),this.correlationIdMiddleware&&t.push(this.correlationIdMiddleware),this.userAgentMiddleware&&t.push(this.userAgentMiddleware),this.authMiddleware&&t.push(this.authMiddleware),this.beforeMiddleware&&t.push(this.beforeMiddleware),this.queueMiddleware&&t.push(this.queueMiddleware),this.loggerMiddleware&&t.push(this.loggerMiddleware),this.concurrentMiddleware&&t.push(this.concurrentMiddleware),this.httpMiddleware&&t.push(this.httpMiddleware),this.afterMiddleware&&t.push(this.afterMiddleware),j({middlewares:t})}};return Ve(Ft);})(); |
@@ -151,4 +151,2 @@ import AbortController from 'abort-controller' | ||
tokenCache: TokenCache, | ||
// requestState: unknown, | ||
// pendingTasks: Array<Task>, | ||
tokenCacheKey?: TokenCacheOptions, | ||
@@ -155,0 +153,0 @@ tokenCacheObject?: TokenStore |
{ | ||
"name": "@commercetools/ts-client", | ||
"version": "2.1.0-alpha.1", | ||
"version": "2.1.0", | ||
"engines": { | ||
@@ -39,9 +39,3 @@ "node": ">=14" | ||
}, | ||
"files": [ | ||
"dist", | ||
"CHANGELOG.md", | ||
"LICENSE", | ||
"README.md", | ||
"package.json" | ||
], | ||
"files": ["dist", "CHANGELOG.md"], | ||
"author": "Chukwuemeka Ajima <meeky.ae@gmail.com>", | ||
@@ -67,2 +61,2 @@ "main": "dist/commercetools-ts-client.cjs.js", | ||
} | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
0
329531
8472