New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@commercetools/ts-client

Package Overview
Dependencies
Maintainers
0
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@commercetools/ts-client - npm Package Compare versions

Comparing version 2.1.0-alpha.0 to 2.1.0-alpha.1

384

dist/commercetools-ts-client.browser.cjs.js

@@ -6,4 +6,2 @@ 'use strict';

var fetch$1 = require('node-fetch');
var uuid = require('uuid');
var _ = require('buffer/');
var AbortController = require('abort-controller');

@@ -16,3 +14,3 @@

function toPrimitive(t, r) {
function _toPrimitive(t, r) {
if ("object" != typeof t || !t) return t;

@@ -28,20 +26,14 @@ var e = t[Symbol.toPrimitive];

function toPropertyKey(t) {
var i = toPrimitive(t, "string");
function _toPropertyKey(t) {
var i = _toPrimitive(t, "string");
return "symbol" == typeof i ? i : i + "";
}
function _defineProperty(obj, key, value) {
key = toPropertyKey(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
function _defineProperty(e, r, t) {
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
value: t,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[r] = t, e;
}

@@ -198,6 +190,8 @@

_response = await execute();
if (_response.status > 399 && hasResponseRetryCode(retryCodes, _response)) return {
_response,
shouldRetry: true
};
if (_response.status > 399 && hasResponseRetryCode(retryCodes, _response)) {
return {
_response,
shouldRetry: true
};
}
} catch (e) {

@@ -247,3 +241,3 @@ if (e.name.includes('AbortError') && retryWhenAborted) {

if (response.text && typeof response.text == 'function') {
result = await response.text();
result = (await response.text()) || response[Object.getOwnPropertySymbols(response)[1]];
data = JSON.parse(result);

@@ -273,4 +267,12 @@ } else {

// import { v4 as uuidv4 } from 'uuid'
// export default function generateID() {
// return uuidv4()
// }
function generateID() {
return uuid.v4();
// @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;
}

@@ -464,12 +466,7 @@

function responseCache() {
let val;
return {
set(response) {
val = response;
},
get() {
return val;
}
};
function byteLength(body) {
if (typeof body === 'string') return body.length.toString();
if (body && typeof body === 'object') return new TextEncoder().encode(JSON.stringify(body)).length.toString();
if (body instanceof Uint8Array) return body.length.toString();
return '0';
}

@@ -537,3 +534,4 @@

const scope = options.scopes ? options.scopes.join(' ') : undefined;
const basicAuth = _.Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
const basicAuth = btoa(`${clientId}:${clientSecret}`);
// This is mostly useful for internal testing purposes to be able to check

@@ -584,5 +582,6 @@ // other oauth endpoints.

if (!(clientId && clientSecret)) throw new Error('Missing required credentials (clientId, clientSecret)');
const basicAuth = _.Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
// This is mostly useful for internal testing purposes to be able to check
// other oauth endpoints.
const basicAuth = btoa(`${clientId}:${clientSecret}`);
// This is mostly useful for internal testing
// purposes to be able to check other oauth endpoints.
const oauthUri = options.oauthUri || '/oauth/token';

@@ -621,3 +620,3 @@ const url = options.host.replace(/\/$/, '') + oauthUri;

const scopeStr = scope ? `&scope=${scope}` : '';
const basicAuth = _.Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
const basicAuth = btoa(`${clientId}:${clientSecret}`);

@@ -642,9 +641,6 @@ /**

const {
request,
httpClient,
tokenCache,
tokenCacheKey,
userOption,
tokenCacheObject,
next
tokenCacheObject
} = options;

@@ -654,34 +650,5 @@ let url = options.url;

let basicAuth = options.basicAuth;
// get the pending object from option
// let pendingTasks: Array<Task> = options.pendingTasks
if (!httpClient || typeof 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 there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
// const tokenCacheObject = tokenCache.get(tokenCacheKey)
// if (
// tokenCacheObject && tokenCacheObject.token
// && Date.now() < tokenCacheObject.expirationTime
// ) {
// return next(
// mergeAuthHeader(
// tokenCacheObject.token, request
// )
// );
// }
/**
* Keep pending tasks until a token is fetched
* Save next function as well, to call it once the token has been fetched, which prevents
* unexpected behaviour in a context in which the next function uses global vars
* or Promises to capture the token to hand it to other libraries, e.g. Apollo
*/
// pendingTasks.push({ request, next })
/**
* use refreshToken flow if there is refresh-token

@@ -716,3 +683,3 @@ * and there's either no token or the token is expired

'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': _.Buffer.byteLength(body).toString()
'Content-Length': byteLength(body)
},

@@ -738,64 +705,15 @@ httpClient,

});
/**
* Freeze and copy pending queue, reset
* original one for accepting new pending tasks
*/
// const requestQueue = pendingTasks.slice()
// // reset pendingTask queue
// pendingTasks = []
// if (requestQueue.length === 1) {
// return mergeAuthHeader(token, requestQueue.pop().request)
// }
// // execute all pending tasks if any
// for (let i = 0; i < pendingTasks.length; i++) {
// const task: Task = pendingTasks[i];
// const requestWithAuth = mergeAuthHeader(token, task.request)
// // execute task
// // task.next(requestWithAuth)
// pendingTasks[i].request = requestWithAuth;
// }
// return pendingTasks;
return Promise.resolve(true);
}
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
/**
* reject the error immediately
* and free up the middleware chain
*/
return request.reject({
...request,
headers: {
...request.headers
},
response: {
statusCode: response.statusCode || response.data.statusCode,
error: {
error,
body: response
}
}
// bubble up the error for the catch block
throw createError({
code: response.data.error,
statusCode: response.data.statusCode,
message: response.data.message,
error: response.data.errors
});
} catch (error) {
request.reject({
...request,
headers: {
...request.headers
},
response: {
body: null,
statusCode: error.statusCode || 0,
error: {
...response,
error,
body: response
}
}
});
// throw error and free up the middleware chain
throw error;
}

@@ -805,4 +723,2 @@ }

function createAuthMiddlewareForAnonymousSessionFlow$1(options) {
// const pendingTasks: Array<Task> = []
// const requestState = new Mutex()
const tokenCache = options.tokenCache || store({

@@ -822,2 +738,7 @@ token: '',

}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);

@@ -830,4 +751,2 @@ if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {

const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -862,4 +781,2 @@ tokenCache,

function createAuthMiddlewareForClientCredentialsFlow$1(options) {
// const requestState = new Mutex()
// const pendingTasks: Array<Task> = []
const tokenCache = options.tokenCache || store({

@@ -879,2 +796,7 @@ token: '',

}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);

@@ -887,4 +809,2 @@ if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {

const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -954,8 +874,16 @@ tokenCache,

return async request => {
// if here is a token in the header, then move on to the next middleware
if (request.headers && (request.headers.Authorization || request.headers.authorization)) {
return next(request);
}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
return next(mergeAuthHeader(tokenCacheObject.token, request));
}
const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -994,6 +922,2 @@ tokenCache,

});
// const pendingTasks: Array<Task> = []
// const requestState = new Mutex()
let tokenCacheObject;

@@ -1008,6 +932,13 @@ let tokenFetchPromise = null;

/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
return next(mergeAuthHeader(tokenCacheObject.token, request));
}
// prepare request options
const requestOptions = {
// pendingTasks,
// requestState,
request,

@@ -1042,3 +973,2 @@ tokenCache,

return async request => {
request['concurrent'] = true;
const response = await next(request);

@@ -1051,3 +981,3 @@ if (response.statusCode == 409) {

*/
const version = response.error?.body?.errors?.[0]?.currentVersion;
const version = response.error.body?.errors?.[0]?.currentVersion;

@@ -1067,14 +997,6 @@ // update the resource version here

}
return next({
...request,
response
});
return next(request);
}
}
request.continue = true;
delete request['concurrent'];
return next({
...request,
response
});
return response;
};

@@ -1118,4 +1040,2 @@ };

let result;
const cache = responseCache();
async function executeRequest({

@@ -1127,8 +1047,2 @@ url,

let timer;
// don't make further api calls
if (clientOptions.request['continue']) {
delete clientOptions.request['continue'];
return cache.get();
}
const {

@@ -1160,3 +1074,3 @@ timeout,

if (clientOptions.method == 'HEAD') {
const _result = {
return {
body: null,

@@ -1167,6 +1081,4 @@ statusCode: response.statusCode,

};
cache.set(_result);
return _result;
}
result = {
return {
body: response.data,

@@ -1177,3 +1089,2 @@ statusCode: response.statusCode,

};
return result;
}

@@ -1198,3 +1109,3 @@ const error = createError({

*/
result = {
return {
body: response.data,

@@ -1206,7 +1117,6 @@ code: response.statusCode,

};
return result;
} catch (e) {
// We know that this is a network error
const headers = includeResponseHeaders ? getHeaders(e.response?.headers) : null;
const statusCode = e.response?.status || e.response?.data || 0;
const statusCode = e.response?.status || e.response?.data0 || 0;
const message = e.response?.data?.message;

@@ -1227,12 +1137,7 @@ const error = createError({

});
result = {
throw {
body: error,
error
};
return result;
} finally {
/**
* finally cache the response
*/
cache.set(result);
clearTimeout(timer);

@@ -1280,3 +1185,3 @@ }

if (body && (typeof body === 'string' || isBuffer(body))) {
requestHeader['Content-Length'] = _.Buffer.byteLength(body).toString();
requestHeader['Content-Length'] = byteLength(body);
}

@@ -1314,5 +1219,2 @@ const clientOptions = {

});
if (request['concurrent']) {
return response;
}
const responseWithRequest = {

@@ -1349,40 +1251,43 @@ ...request,

let runningCount = 0;
const queue = [];
const dequeue = next => {
runningCount--;
if (queue.length && runningCount <= concurrency) {
const nextTask = queue.shift();
runningCount++;
return next(nextTask.request);
}
};
const enqueue = ({
request
}) => queue.push({
request
});
return next => request => {
// wrap and override resolve and reject functions
const patchedRequest = {
...request,
resolve(data) {
request.resolve(data);
dequeue(next);
},
reject(error) {
request.reject(error);
dequeue(next);
}
};
const waitForSlot = () => {
// dont allow negative or 0 value for concurrency
if (0 >= concurrency) return Promise.resolve();
return new Promise(resolve => {
const tryNext = () => {
if (runningCount < concurrency) {
runningCount++;
resolve();
} else {
// Retry until a slot becomes available
setTimeout(tryNext, 10);
}
};
// enqueue requests
enqueue({
request: patchedRequest
// start
tryNext();
});
if (runningCount < concurrency) {
runningCount++;
const nextTask = queue.shift();
return next(nextTask.request);
}
};
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--;
}
});
};
};
}

@@ -1392,3 +1297,3 @@

name: "@commercetools/ts-client",
version: "2.1.0-alpha.0",
version: "2.1.0-alpha.1",
engines: {

@@ -1427,5 +1332,3 @@ node: ">=14"

"abort-controller": "3.0.0",
buffer: "^6.0.3",
"node-fetch": "^2.6.1",
uuid: "10.0.0"
"node-fetch": "^2.6.1"
},

@@ -1592,2 +1495,3 @@ files: [

validateClient(middlewares);
let _maskSensitiveHeaderData = false;
const resolver = {

@@ -1605,4 +1509,3 @@ async resolve(rs) {

} = response;
// _maskSensitiveHeaderData = maskSensitiveHeaderData
_maskSensitiveHeaderData = maskSensitiveHeaderData;
const res = {

@@ -1614,13 +1517,9 @@ body: null,

...rest,
...(includeOriginalRequest ? {
originalRequest: request
} : {}),
...(response?.retryCount ? {
retryCount: response.retryCount
} : {}),
...(includeOriginalRequest ? {
originalRequest: maskSensitiveHeaderData ? maskAuthData(request) : request
} : {})
};
if (res.error) {
rs.reject(res.error);
}
rs.resolve(res);
return res;

@@ -1635,7 +1534,16 @@ }

return new Promise(async (resolve, reject) => {
return dispatch({
reject,
resolve,
...request
});
try {
const response = await dispatch({
reject,
resolve,
...request
});
if (response.error) return reject(response.error);
if (response.originalRequest && _maskSensitiveHeaderData) {
response.originalRequest = maskAuthData(response.originalRequest);
}
resolve(response);
} catch (err) {
reject(err);
}
});

@@ -1642,0 +1550,0 @@ }

import fetch$1 from 'node-fetch';
import { v4 } from 'uuid';
import { Buffer } from 'buffer/';
import AbortController from 'abort-controller';
function toPrimitive(t, r) {
function _toPrimitive(t, r) {
if ("object" != typeof t || !t) return t;

@@ -17,20 +15,14 @@ var e = t[Symbol.toPrimitive];

function toPropertyKey(t) {
var i = toPrimitive(t, "string");
function _toPropertyKey(t) {
var i = _toPrimitive(t, "string");
return "symbol" == typeof i ? i : i + "";
}
function _defineProperty(obj, key, value) {
key = toPropertyKey(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
function _defineProperty(e, r, t) {
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
value: t,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[r] = t, e;
}

@@ -187,6 +179,8 @@

_response = await execute();
if (_response.status > 399 && hasResponseRetryCode(retryCodes, _response)) return {
_response,
shouldRetry: true
};
if (_response.status > 399 && hasResponseRetryCode(retryCodes, _response)) {
return {
_response,
shouldRetry: true
};
}
} catch (e) {

@@ -236,3 +230,3 @@ if (e.name.includes('AbortError') && retryWhenAborted) {

if (response.text && typeof response.text == 'function') {
result = await response.text();
result = (await response.text()) || response[Object.getOwnPropertySymbols(response)[1]];
data = JSON.parse(result);

@@ -262,4 +256,12 @@ } else {

// import { v4 as uuidv4 } from 'uuid'
// export default function generateID() {
// return uuidv4()
// }
function generateID() {
return v4();
// @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;
}

@@ -453,12 +455,7 @@

function responseCache() {
let val;
return {
set(response) {
val = response;
},
get() {
return val;
}
};
function byteLength(body) {
if (typeof body === 'string') return body.length.toString();
if (body && typeof body === 'object') return new TextEncoder().encode(JSON.stringify(body)).length.toString();
if (body instanceof Uint8Array) return body.length.toString();
return '0';
}

@@ -526,3 +523,4 @@

const scope = options.scopes ? options.scopes.join(' ') : undefined;
const basicAuth = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
const basicAuth = btoa(`${clientId}:${clientSecret}`);
// This is mostly useful for internal testing purposes to be able to check

@@ -573,5 +571,6 @@ // other oauth endpoints.

if (!(clientId && clientSecret)) throw new Error('Missing required credentials (clientId, clientSecret)');
const basicAuth = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
// This is mostly useful for internal testing purposes to be able to check
// other oauth endpoints.
const basicAuth = btoa(`${clientId}:${clientSecret}`);
// This is mostly useful for internal testing
// purposes to be able to check other oauth endpoints.
const oauthUri = options.oauthUri || '/oauth/token';

@@ -610,3 +609,3 @@ const url = options.host.replace(/\/$/, '') + oauthUri;

const scopeStr = scope ? `&scope=${scope}` : '';
const basicAuth = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
const basicAuth = btoa(`${clientId}:${clientSecret}`);

@@ -631,9 +630,6 @@ /**

const {
request,
httpClient,
tokenCache,
tokenCacheKey,
userOption,
tokenCacheObject,
next
tokenCacheObject
} = options;

@@ -643,34 +639,5 @@ let url = options.url;

let basicAuth = options.basicAuth;
// get the pending object from option
// let pendingTasks: Array<Task> = options.pendingTasks
if (!httpClient || typeof 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 there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
// const tokenCacheObject = tokenCache.get(tokenCacheKey)
// if (
// tokenCacheObject && tokenCacheObject.token
// && Date.now() < tokenCacheObject.expirationTime
// ) {
// return next(
// mergeAuthHeader(
// tokenCacheObject.token, request
// )
// );
// }
/**
* Keep pending tasks until a token is fetched
* Save next function as well, to call it once the token has been fetched, which prevents
* unexpected behaviour in a context in which the next function uses global vars
* or Promises to capture the token to hand it to other libraries, e.g. Apollo
*/
// pendingTasks.push({ request, next })
/**
* use refreshToken flow if there is refresh-token

@@ -705,3 +672,3 @@ * and there's either no token or the token is expired

'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(body).toString()
'Content-Length': byteLength(body)
},

@@ -727,64 +694,15 @@ httpClient,

});
/**
* Freeze and copy pending queue, reset
* original one for accepting new pending tasks
*/
// const requestQueue = pendingTasks.slice()
// // reset pendingTask queue
// pendingTasks = []
// if (requestQueue.length === 1) {
// return mergeAuthHeader(token, requestQueue.pop().request)
// }
// // execute all pending tasks if any
// for (let i = 0; i < pendingTasks.length; i++) {
// const task: Task = pendingTasks[i];
// const requestWithAuth = mergeAuthHeader(token, task.request)
// // execute task
// // task.next(requestWithAuth)
// pendingTasks[i].request = requestWithAuth;
// }
// return pendingTasks;
return Promise.resolve(true);
}
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
/**
* reject the error immediately
* and free up the middleware chain
*/
return request.reject({
...request,
headers: {
...request.headers
},
response: {
statusCode: response.statusCode || response.data.statusCode,
error: {
error,
body: response
}
}
// bubble up the error for the catch block
throw createError({
code: response.data.error,
statusCode: response.data.statusCode,
message: response.data.message,
error: response.data.errors
});
} catch (error) {
request.reject({
...request,
headers: {
...request.headers
},
response: {
body: null,
statusCode: error.statusCode || 0,
error: {
...response,
error,
body: response
}
}
});
// throw error and free up the middleware chain
throw error;
}

@@ -794,4 +712,2 @@ }

function createAuthMiddlewareForAnonymousSessionFlow$1(options) {
// const pendingTasks: Array<Task> = []
// const requestState = new Mutex()
const tokenCache = options.tokenCache || store({

@@ -811,2 +727,7 @@ token: '',

}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);

@@ -819,4 +740,2 @@ if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {

const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -851,4 +770,2 @@ tokenCache,

function createAuthMiddlewareForClientCredentialsFlow$1(options) {
// const requestState = new Mutex()
// const pendingTasks: Array<Task> = []
const tokenCache = options.tokenCache || store({

@@ -868,2 +785,7 @@ token: '',

}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);

@@ -876,4 +798,2 @@ if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {

const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -943,8 +863,16 @@ tokenCache,

return async request => {
// if here is a token in the header, then move on to the next middleware
if (request.headers && (request.headers.Authorization || request.headers.authorization)) {
return next(request);
}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
return next(mergeAuthHeader(tokenCacheObject.token, request));
}
const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -983,6 +911,2 @@ tokenCache,

});
// const pendingTasks: Array<Task> = []
// const requestState = new Mutex()
let tokenCacheObject;

@@ -997,6 +921,13 @@ let tokenFetchPromise = null;

/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
return next(mergeAuthHeader(tokenCacheObject.token, request));
}
// prepare request options
const requestOptions = {
// pendingTasks,
// requestState,
request,

@@ -1031,3 +962,2 @@ tokenCache,

return async request => {
request['concurrent'] = true;
const response = await next(request);

@@ -1040,3 +970,3 @@ if (response.statusCode == 409) {

*/
const version = response.error?.body?.errors?.[0]?.currentVersion;
const version = response.error.body?.errors?.[0]?.currentVersion;

@@ -1056,14 +986,6 @@ // update the resource version here

}
return next({
...request,
response
});
return next(request);
}
}
request.continue = true;
delete request['concurrent'];
return next({
...request,
response
});
return response;
};

@@ -1107,4 +1029,2 @@ };

let result;
const cache = responseCache();
async function executeRequest({

@@ -1116,8 +1036,2 @@ url,

let timer;
// don't make further api calls
if (clientOptions.request['continue']) {
delete clientOptions.request['continue'];
return cache.get();
}
const {

@@ -1149,3 +1063,3 @@ timeout,

if (clientOptions.method == 'HEAD') {
const _result = {
return {
body: null,

@@ -1156,6 +1070,4 @@ statusCode: response.statusCode,

};
cache.set(_result);
return _result;
}
result = {
return {
body: response.data,

@@ -1166,3 +1078,2 @@ statusCode: response.statusCode,

};
return result;
}

@@ -1187,3 +1098,3 @@ const error = createError({

*/
result = {
return {
body: response.data,

@@ -1195,7 +1106,6 @@ code: response.statusCode,

};
return result;
} catch (e) {
// We know that this is a network error
const headers = includeResponseHeaders ? getHeaders(e.response?.headers) : null;
const statusCode = e.response?.status || e.response?.data || 0;
const statusCode = e.response?.status || e.response?.data0 || 0;
const message = e.response?.data?.message;

@@ -1216,12 +1126,7 @@ const error = createError({

});
result = {
throw {
body: error,
error
};
return result;
} finally {
/**
* finally cache the response
*/
cache.set(result);
clearTimeout(timer);

@@ -1269,3 +1174,3 @@ }

if (body && (typeof body === 'string' || isBuffer(body))) {
requestHeader['Content-Length'] = Buffer.byteLength(body).toString();
requestHeader['Content-Length'] = byteLength(body);
}

@@ -1303,5 +1208,2 @@ const clientOptions = {

});
if (request['concurrent']) {
return response;
}
const responseWithRequest = {

@@ -1338,40 +1240,43 @@ ...request,

let runningCount = 0;
const queue = [];
const dequeue = next => {
runningCount--;
if (queue.length && runningCount <= concurrency) {
const nextTask = queue.shift();
runningCount++;
return next(nextTask.request);
}
};
const enqueue = ({
request
}) => queue.push({
request
});
return next => request => {
// wrap and override resolve and reject functions
const patchedRequest = {
...request,
resolve(data) {
request.resolve(data);
dequeue(next);
},
reject(error) {
request.reject(error);
dequeue(next);
}
};
const waitForSlot = () => {
// dont allow negative or 0 value for concurrency
if (0 >= concurrency) return Promise.resolve();
return new Promise(resolve => {
const tryNext = () => {
if (runningCount < concurrency) {
runningCount++;
resolve();
} else {
// Retry until a slot becomes available
setTimeout(tryNext, 10);
}
};
// enqueue requests
enqueue({
request: patchedRequest
// start
tryNext();
});
if (runningCount < concurrency) {
runningCount++;
const nextTask = queue.shift();
return next(nextTask.request);
}
};
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--;
}
});
};
};
}

@@ -1381,3 +1286,3 @@

name: "@commercetools/ts-client",
version: "2.1.0-alpha.0",
version: "2.1.0-alpha.1",
engines: {

@@ -1416,5 +1321,3 @@ node: ">=14"

"abort-controller": "3.0.0",
buffer: "^6.0.3",
"node-fetch": "^2.6.1",
uuid: "10.0.0"
"node-fetch": "^2.6.1"
},

@@ -1581,2 +1484,3 @@ files: [

validateClient(middlewares);
let _maskSensitiveHeaderData = false;
const resolver = {

@@ -1594,4 +1498,3 @@ async resolve(rs) {

} = response;
// _maskSensitiveHeaderData = maskSensitiveHeaderData
_maskSensitiveHeaderData = maskSensitiveHeaderData;
const res = {

@@ -1603,13 +1506,9 @@ body: null,

...rest,
...(includeOriginalRequest ? {
originalRequest: request
} : {}),
...(response?.retryCount ? {
retryCount: response.retryCount
} : {}),
...(includeOriginalRequest ? {
originalRequest: maskSensitiveHeaderData ? maskAuthData(request) : request
} : {})
};
if (res.error) {
rs.reject(res.error);
}
rs.resolve(res);
return res;

@@ -1624,7 +1523,16 @@ }

return new Promise(async (resolve, reject) => {
return dispatch({
reject,
resolve,
...request
});
try {
const response = await dispatch({
reject,
resolve,
...request
});
if (response.error) return reject(response.error);
if (response.originalRequest && _maskSensitiveHeaderData) {
response.originalRequest = maskAuthData(response.originalRequest);
}
resolve(response);
} catch (err) {
reject(err);
}
});

@@ -1631,0 +1539,0 @@ }

@@ -6,4 +6,2 @@ 'use strict';

var fetch$1 = require('node-fetch');
var uuid = require('uuid');
var _ = require('buffer/');
var AbortController = require('abort-controller');

@@ -16,3 +14,3 @@

function toPrimitive(t, r) {
function _toPrimitive(t, r) {
if ("object" != typeof t || !t) return t;

@@ -28,20 +26,14 @@ var e = t[Symbol.toPrimitive];

function toPropertyKey(t) {
var i = toPrimitive(t, "string");
function _toPropertyKey(t) {
var i = _toPrimitive(t, "string");
return "symbol" == typeof i ? i : i + "";
}
function _defineProperty(obj, key, value) {
key = toPropertyKey(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
function _defineProperty(e, r, t) {
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
value: t,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[r] = t, e;
}

@@ -198,6 +190,8 @@

_response = await execute();
if (_response.status > 399 && hasResponseRetryCode(retryCodes, _response)) return {
_response,
shouldRetry: true
};
if (_response.status > 399 && hasResponseRetryCode(retryCodes, _response)) {
return {
_response,
shouldRetry: true
};
}
} catch (e) {

@@ -247,3 +241,3 @@ if (e.name.includes('AbortError') && retryWhenAborted) {

if (response.text && typeof response.text == 'function') {
result = await response.text();
result = (await response.text()) || response[Object.getOwnPropertySymbols(response)[1]];
data = JSON.parse(result);

@@ -273,4 +267,12 @@ } else {

// import { v4 as uuidv4 } from 'uuid'
// export default function generateID() {
// return uuidv4()
// }
function generateID() {
return uuid.v4();
// @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;
}

@@ -464,12 +466,7 @@

function responseCache() {
let val;
return {
set(response) {
val = response;
},
get() {
return val;
}
};
function byteLength(body) {
if (typeof body === 'string') return body.length.toString();
if (body && typeof body === 'object') return new TextEncoder().encode(JSON.stringify(body)).length.toString();
if (body instanceof Uint8Array) return body.length.toString();
return '0';
}

@@ -537,3 +534,4 @@

const scope = options.scopes ? options.scopes.join(' ') : undefined;
const basicAuth = _.Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
const basicAuth = btoa(`${clientId}:${clientSecret}`);
// This is mostly useful for internal testing purposes to be able to check

@@ -584,5 +582,6 @@ // other oauth endpoints.

if (!(clientId && clientSecret)) throw new Error('Missing required credentials (clientId, clientSecret)');
const basicAuth = _.Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
// This is mostly useful for internal testing purposes to be able to check
// other oauth endpoints.
const basicAuth = btoa(`${clientId}:${clientSecret}`);
// This is mostly useful for internal testing
// purposes to be able to check other oauth endpoints.
const oauthUri = options.oauthUri || '/oauth/token';

@@ -621,3 +620,3 @@ const url = options.host.replace(/\/$/, '') + oauthUri;

const scopeStr = scope ? `&scope=${scope}` : '';
const basicAuth = _.Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
const basicAuth = btoa(`${clientId}:${clientSecret}`);

@@ -642,9 +641,6 @@ /**

const {
request,
httpClient,
tokenCache,
tokenCacheKey,
userOption,
tokenCacheObject,
next
tokenCacheObject
} = options;

@@ -654,34 +650,5 @@ let url = options.url;

let basicAuth = options.basicAuth;
// get the pending object from option
// let pendingTasks: Array<Task> = options.pendingTasks
if (!httpClient || typeof 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 there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
// const tokenCacheObject = tokenCache.get(tokenCacheKey)
// if (
// tokenCacheObject && tokenCacheObject.token
// && Date.now() < tokenCacheObject.expirationTime
// ) {
// return next(
// mergeAuthHeader(
// tokenCacheObject.token, request
// )
// );
// }
/**
* Keep pending tasks until a token is fetched
* Save next function as well, to call it once the token has been fetched, which prevents
* unexpected behaviour in a context in which the next function uses global vars
* or Promises to capture the token to hand it to other libraries, e.g. Apollo
*/
// pendingTasks.push({ request, next })
/**
* use refreshToken flow if there is refresh-token

@@ -716,3 +683,3 @@ * and there's either no token or the token is expired

'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': _.Buffer.byteLength(body).toString()
'Content-Length': byteLength(body)
},

@@ -738,64 +705,15 @@ httpClient,

});
/**
* Freeze and copy pending queue, reset
* original one for accepting new pending tasks
*/
// const requestQueue = pendingTasks.slice()
// // reset pendingTask queue
// pendingTasks = []
// if (requestQueue.length === 1) {
// return mergeAuthHeader(token, requestQueue.pop().request)
// }
// // execute all pending tasks if any
// for (let i = 0; i < pendingTasks.length; i++) {
// const task: Task = pendingTasks[i];
// const requestWithAuth = mergeAuthHeader(token, task.request)
// // execute task
// // task.next(requestWithAuth)
// pendingTasks[i].request = requestWithAuth;
// }
// return pendingTasks;
return Promise.resolve(true);
}
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
/**
* reject the error immediately
* and free up the middleware chain
*/
return request.reject({
...request,
headers: {
...request.headers
},
response: {
statusCode: response.statusCode || response.data.statusCode,
error: {
error,
body: response
}
}
// bubble up the error for the catch block
throw createError({
code: response.data.error,
statusCode: response.data.statusCode,
message: response.data.message,
error: response.data.errors
});
} catch (error) {
request.reject({
...request,
headers: {
...request.headers
},
response: {
body: null,
statusCode: error.statusCode || 0,
error: {
...response,
error,
body: response
}
}
});
// throw error and free up the middleware chain
throw error;
}

@@ -805,4 +723,2 @@ }

function createAuthMiddlewareForAnonymousSessionFlow$1(options) {
// const pendingTasks: Array<Task> = []
// const requestState = new Mutex()
const tokenCache = options.tokenCache || store({

@@ -822,2 +738,7 @@ token: '',

}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);

@@ -830,4 +751,2 @@ if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {

const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -862,4 +781,2 @@ tokenCache,

function createAuthMiddlewareForClientCredentialsFlow$1(options) {
// const requestState = new Mutex()
// const pendingTasks: Array<Task> = []
const tokenCache = options.tokenCache || store({

@@ -879,2 +796,7 @@ token: '',

}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);

@@ -887,4 +809,2 @@ if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {

const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -954,8 +874,16 @@ tokenCache,

return async request => {
// if here is a token in the header, then move on to the next middleware
if (request.headers && (request.headers.Authorization || request.headers.authorization)) {
return next(request);
}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
return next(mergeAuthHeader(tokenCacheObject.token, request));
}
const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -994,6 +922,2 @@ tokenCache,

});
// const pendingTasks: Array<Task> = []
// const requestState = new Mutex()
let tokenCacheObject;

@@ -1008,6 +932,13 @@ let tokenFetchPromise = null;

/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
return next(mergeAuthHeader(tokenCacheObject.token, request));
}
// prepare request options
const requestOptions = {
// pendingTasks,
// requestState,
request,

@@ -1042,3 +973,2 @@ tokenCache,

return async request => {
request['concurrent'] = true;
const response = await next(request);

@@ -1051,3 +981,3 @@ if (response.statusCode == 409) {

*/
const version = response.error?.body?.errors?.[0]?.currentVersion;
const version = response.error.body?.errors?.[0]?.currentVersion;

@@ -1067,14 +997,6 @@ // update the resource version here

}
return next({
...request,
response
});
return next(request);
}
}
request.continue = true;
delete request['concurrent'];
return next({
...request,
response
});
return response;
};

@@ -1118,4 +1040,2 @@ };

let result;
const cache = responseCache();
async function executeRequest({

@@ -1127,8 +1047,2 @@ url,

let timer;
// don't make further api calls
if (clientOptions.request['continue']) {
delete clientOptions.request['continue'];
return cache.get();
}
const {

@@ -1160,3 +1074,3 @@ timeout,

if (clientOptions.method == 'HEAD') {
const _result = {
return {
body: null,

@@ -1167,6 +1081,4 @@ statusCode: response.statusCode,

};
cache.set(_result);
return _result;
}
result = {
return {
body: response.data,

@@ -1177,3 +1089,2 @@ statusCode: response.statusCode,

};
return result;
}

@@ -1198,3 +1109,3 @@ const error = createError({

*/
result = {
return {
body: response.data,

@@ -1206,7 +1117,6 @@ code: response.statusCode,

};
return result;
} catch (e) {
// We know that this is a network error
const headers = includeResponseHeaders ? getHeaders(e.response?.headers) : null;
const statusCode = e.response?.status || e.response?.data || 0;
const statusCode = e.response?.status || e.response?.data0 || 0;
const message = e.response?.data?.message;

@@ -1227,12 +1137,7 @@ const error = createError({

});
result = {
throw {
body: error,
error
};
return result;
} finally {
/**
* finally cache the response
*/
cache.set(result);
clearTimeout(timer);

@@ -1280,3 +1185,3 @@ }

if (body && (typeof body === 'string' || isBuffer(body))) {
requestHeader['Content-Length'] = _.Buffer.byteLength(body).toString();
requestHeader['Content-Length'] = byteLength(body);
}

@@ -1314,5 +1219,2 @@ const clientOptions = {

});
if (request['concurrent']) {
return response;
}
const responseWithRequest = {

@@ -1349,40 +1251,43 @@ ...request,

let runningCount = 0;
const queue = [];
const dequeue = next => {
runningCount--;
if (queue.length && runningCount <= concurrency) {
const nextTask = queue.shift();
runningCount++;
return next(nextTask.request);
}
};
const enqueue = ({
request
}) => queue.push({
request
});
return next => request => {
// wrap and override resolve and reject functions
const patchedRequest = {
...request,
resolve(data) {
request.resolve(data);
dequeue(next);
},
reject(error) {
request.reject(error);
dequeue(next);
}
};
const waitForSlot = () => {
// dont allow negative or 0 value for concurrency
if (0 >= concurrency) return Promise.resolve();
return new Promise(resolve => {
const tryNext = () => {
if (runningCount < concurrency) {
runningCount++;
resolve();
} else {
// Retry until a slot becomes available
setTimeout(tryNext, 10);
}
};
// enqueue requests
enqueue({
request: patchedRequest
// start
tryNext();
});
if (runningCount < concurrency) {
runningCount++;
const nextTask = queue.shift();
return next(nextTask.request);
}
};
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--;
}
});
};
};
}

@@ -1392,3 +1297,3 @@

name: "@commercetools/ts-client",
version: "2.1.0-alpha.0",
version: "2.1.0-alpha.1",
engines: {

@@ -1427,5 +1332,3 @@ node: ">=14"

"abort-controller": "3.0.0",
buffer: "^6.0.3",
"node-fetch": "^2.6.1",
uuid: "10.0.0"
"node-fetch": "^2.6.1"
},

@@ -1592,2 +1495,3 @@ files: [

validateClient(middlewares);
let _maskSensitiveHeaderData = false;
const resolver = {

@@ -1605,4 +1509,3 @@ async resolve(rs) {

} = response;
// _maskSensitiveHeaderData = maskSensitiveHeaderData
_maskSensitiveHeaderData = maskSensitiveHeaderData;
const res = {

@@ -1614,13 +1517,9 @@ body: null,

...rest,
...(includeOriginalRequest ? {
originalRequest: request
} : {}),
...(response?.retryCount ? {
retryCount: response.retryCount
} : {}),
...(includeOriginalRequest ? {
originalRequest: maskSensitiveHeaderData ? maskAuthData(request) : request
} : {})
};
if (res.error) {
rs.reject(res.error);
}
rs.resolve(res);
return res;

@@ -1635,7 +1534,16 @@ }

return new Promise(async (resolve, reject) => {
return dispatch({
reject,
resolve,
...request
});
try {
const response = await dispatch({
reject,
resolve,
...request
});
if (response.error) return reject(response.error);
if (response.originalRequest && _maskSensitiveHeaderData) {
response.originalRequest = maskAuthData(response.originalRequest);
}
resolve(response);
} catch (err) {
reject(err);
}
});

@@ -1642,0 +1550,0 @@ }

@@ -6,4 +6,2 @@ 'use strict';

var fetch$1 = require('node-fetch');
var uuid = require('uuid');
var _ = require('buffer/');
var AbortController = require('abort-controller');

@@ -16,3 +14,3 @@

function toPrimitive(t, r) {
function _toPrimitive(t, r) {
if ("object" != typeof t || !t) return t;

@@ -28,20 +26,14 @@ var e = t[Symbol.toPrimitive];

function toPropertyKey(t) {
var i = toPrimitive(t, "string");
function _toPropertyKey(t) {
var i = _toPrimitive(t, "string");
return "symbol" == typeof i ? i : i + "";
}
function _defineProperty(obj, key, value) {
key = toPropertyKey(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
function _defineProperty(e, r, t) {
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
value: t,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[r] = t, e;
}

@@ -198,6 +190,8 @@

_response = await execute();
if (_response.status > 399 && hasResponseRetryCode(retryCodes, _response)) return {
_response,
shouldRetry: true
};
if (_response.status > 399 && hasResponseRetryCode(retryCodes, _response)) {
return {
_response,
shouldRetry: true
};
}
} catch (e) {

@@ -247,3 +241,3 @@ if (e.name.includes('AbortError') && retryWhenAborted) {

if (response.text && typeof response.text == 'function') {
result = await response.text();
result = (await response.text()) || response[Object.getOwnPropertySymbols(response)[1]];
data = JSON.parse(result);

@@ -273,4 +267,12 @@ } else {

// import { v4 as uuidv4 } from 'uuid'
// export default function generateID() {
// return uuidv4()
// }
function generateID() {
return uuid.v4();
// @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;
}

@@ -464,12 +466,7 @@

function responseCache() {
let val;
return {
set(response) {
val = response;
},
get() {
return val;
}
};
function byteLength(body) {
if (typeof body === 'string') return body.length.toString();
if (body && typeof body === 'object') return new TextEncoder().encode(JSON.stringify(body)).length.toString();
if (body instanceof Uint8Array) return body.length.toString();
return '0';
}

@@ -537,3 +534,4 @@

const scope = options.scopes ? options.scopes.join(' ') : undefined;
const basicAuth = _.Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
const basicAuth = btoa(`${clientId}:${clientSecret}`);
// This is mostly useful for internal testing purposes to be able to check

@@ -584,5 +582,6 @@ // other oauth endpoints.

if (!(clientId && clientSecret)) throw new Error('Missing required credentials (clientId, clientSecret)');
const basicAuth = _.Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
// This is mostly useful for internal testing purposes to be able to check
// other oauth endpoints.
const basicAuth = btoa(`${clientId}:${clientSecret}`);
// This is mostly useful for internal testing
// purposes to be able to check other oauth endpoints.
const oauthUri = options.oauthUri || '/oauth/token';

@@ -621,3 +620,3 @@ const url = options.host.replace(/\/$/, '') + oauthUri;

const scopeStr = scope ? `&scope=${scope}` : '';
const basicAuth = _.Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
const basicAuth = btoa(`${clientId}:${clientSecret}`);

@@ -642,9 +641,6 @@ /**

const {
request,
httpClient,
tokenCache,
tokenCacheKey,
userOption,
tokenCacheObject,
next
tokenCacheObject
} = options;

@@ -654,34 +650,5 @@ let url = options.url;

let basicAuth = options.basicAuth;
// get the pending object from option
// let pendingTasks: Array<Task> = options.pendingTasks
if (!httpClient || typeof 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 there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
// const tokenCacheObject = tokenCache.get(tokenCacheKey)
// if (
// tokenCacheObject && tokenCacheObject.token
// && Date.now() < tokenCacheObject.expirationTime
// ) {
// return next(
// mergeAuthHeader(
// tokenCacheObject.token, request
// )
// );
// }
/**
* Keep pending tasks until a token is fetched
* Save next function as well, to call it once the token has been fetched, which prevents
* unexpected behaviour in a context in which the next function uses global vars
* or Promises to capture the token to hand it to other libraries, e.g. Apollo
*/
// pendingTasks.push({ request, next })
/**
* use refreshToken flow if there is refresh-token

@@ -716,3 +683,3 @@ * and there's either no token or the token is expired

'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': _.Buffer.byteLength(body).toString()
'Content-Length': byteLength(body)
},

@@ -738,64 +705,15 @@ httpClient,

});
/**
* Freeze and copy pending queue, reset
* original one for accepting new pending tasks
*/
// const requestQueue = pendingTasks.slice()
// // reset pendingTask queue
// pendingTasks = []
// if (requestQueue.length === 1) {
// return mergeAuthHeader(token, requestQueue.pop().request)
// }
// // execute all pending tasks if any
// for (let i = 0; i < pendingTasks.length; i++) {
// const task: Task = pendingTasks[i];
// const requestWithAuth = mergeAuthHeader(token, task.request)
// // execute task
// // task.next(requestWithAuth)
// pendingTasks[i].request = requestWithAuth;
// }
// return pendingTasks;
return Promise.resolve(true);
}
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
/**
* reject the error immediately
* and free up the middleware chain
*/
return request.reject({
...request,
headers: {
...request.headers
},
response: {
statusCode: response.statusCode || response.data.statusCode,
error: {
error,
body: response
}
}
// bubble up the error for the catch block
throw createError({
code: response.data.error,
statusCode: response.data.statusCode,
message: response.data.message,
error: response.data.errors
});
} catch (error) {
request.reject({
...request,
headers: {
...request.headers
},
response: {
body: null,
statusCode: error.statusCode || 0,
error: {
...response,
error,
body: response
}
}
});
// throw error and free up the middleware chain
throw error;
}

@@ -805,4 +723,2 @@ }

function createAuthMiddlewareForAnonymousSessionFlow$1(options) {
// const pendingTasks: Array<Task> = []
// const requestState = new Mutex()
const tokenCache = options.tokenCache || store({

@@ -822,2 +738,7 @@ token: '',

}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);

@@ -830,4 +751,2 @@ if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {

const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -862,4 +781,2 @@ tokenCache,

function createAuthMiddlewareForClientCredentialsFlow$1(options) {
// const requestState = new Mutex()
// const pendingTasks: Array<Task> = []
const tokenCache = options.tokenCache || store({

@@ -879,2 +796,7 @@ token: '',

}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);

@@ -887,4 +809,2 @@ if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {

const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -954,8 +874,16 @@ tokenCache,

return async request => {
// if here is a token in the header, then move on to the next middleware
if (request.headers && (request.headers.Authorization || request.headers.authorization)) {
return next(request);
}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
return next(mergeAuthHeader(tokenCacheObject.token, request));
}
const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -994,6 +922,2 @@ tokenCache,

});
// const pendingTasks: Array<Task> = []
// const requestState = new Mutex()
let tokenCacheObject;

@@ -1008,6 +932,13 @@ let tokenFetchPromise = null;

/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
return next(mergeAuthHeader(tokenCacheObject.token, request));
}
// prepare request options
const requestOptions = {
// pendingTasks,
// requestState,
request,

@@ -1042,3 +973,2 @@ tokenCache,

return async request => {
request['concurrent'] = true;
const response = await next(request);

@@ -1051,3 +981,3 @@ if (response.statusCode == 409) {

*/
const version = response.error?.body?.errors?.[0]?.currentVersion;
const version = response.error.body?.errors?.[0]?.currentVersion;

@@ -1067,14 +997,6 @@ // update the resource version here

}
return next({
...request,
response
});
return next(request);
}
}
request.continue = true;
delete request['concurrent'];
return next({
...request,
response
});
return response;
};

@@ -1118,4 +1040,2 @@ };

let result;
const cache = responseCache();
async function executeRequest({

@@ -1127,8 +1047,2 @@ url,

let timer;
// don't make further api calls
if (clientOptions.request['continue']) {
delete clientOptions.request['continue'];
return cache.get();
}
const {

@@ -1160,3 +1074,3 @@ timeout,

if (clientOptions.method == 'HEAD') {
const _result = {
return {
body: null,

@@ -1167,6 +1081,4 @@ statusCode: response.statusCode,

};
cache.set(_result);
return _result;
}
result = {
return {
body: response.data,

@@ -1177,3 +1089,2 @@ statusCode: response.statusCode,

};
return result;
}

@@ -1198,3 +1109,3 @@ const error = createError({

*/
result = {
return {
body: response.data,

@@ -1206,7 +1117,6 @@ code: response.statusCode,

};
return result;
} catch (e) {
// We know that this is a network error
const headers = includeResponseHeaders ? getHeaders(e.response?.headers) : null;
const statusCode = e.response?.status || e.response?.data || 0;
const statusCode = e.response?.status || e.response?.data0 || 0;
const message = e.response?.data?.message;

@@ -1227,12 +1137,7 @@ const error = createError({

});
result = {
throw {
body: error,
error
};
return result;
} finally {
/**
* finally cache the response
*/
cache.set(result);
clearTimeout(timer);

@@ -1280,3 +1185,3 @@ }

if (body && (typeof body === 'string' || isBuffer(body))) {
requestHeader['Content-Length'] = _.Buffer.byteLength(body).toString();
requestHeader['Content-Length'] = byteLength(body);
}

@@ -1314,5 +1219,2 @@ const clientOptions = {

});
if (request['concurrent']) {
return response;
}
const responseWithRequest = {

@@ -1349,40 +1251,43 @@ ...request,

let runningCount = 0;
const queue = [];
const dequeue = next => {
runningCount--;
if (queue.length && runningCount <= concurrency) {
const nextTask = queue.shift();
runningCount++;
return next(nextTask.request);
}
};
const enqueue = ({
request
}) => queue.push({
request
});
return next => request => {
// wrap and override resolve and reject functions
const patchedRequest = {
...request,
resolve(data) {
request.resolve(data);
dequeue(next);
},
reject(error) {
request.reject(error);
dequeue(next);
}
};
const waitForSlot = () => {
// dont allow negative or 0 value for concurrency
if (0 >= concurrency) return Promise.resolve();
return new Promise(resolve => {
const tryNext = () => {
if (runningCount < concurrency) {
runningCount++;
resolve();
} else {
// Retry until a slot becomes available
setTimeout(tryNext, 10);
}
};
// enqueue requests
enqueue({
request: patchedRequest
// start
tryNext();
});
if (runningCount < concurrency) {
runningCount++;
const nextTask = queue.shift();
return next(nextTask.request);
}
};
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--;
}
});
};
};
}

@@ -1392,3 +1297,3 @@

name: "@commercetools/ts-client",
version: "2.1.0-alpha.0",
version: "2.1.0-alpha.1",
engines: {

@@ -1427,5 +1332,3 @@ node: ">=14"

"abort-controller": "3.0.0",
buffer: "^6.0.3",
"node-fetch": "^2.6.1",
uuid: "10.0.0"
"node-fetch": "^2.6.1"
},

@@ -1592,2 +1495,3 @@ files: [

validateClient(middlewares);
let _maskSensitiveHeaderData = false;
const resolver = {

@@ -1605,4 +1509,3 @@ async resolve(rs) {

} = response;
// _maskSensitiveHeaderData = maskSensitiveHeaderData
_maskSensitiveHeaderData = maskSensitiveHeaderData;
const res = {

@@ -1614,13 +1517,9 @@ body: null,

...rest,
...(includeOriginalRequest ? {
originalRequest: request
} : {}),
...(response?.retryCount ? {
retryCount: response.retryCount
} : {}),
...(includeOriginalRequest ? {
originalRequest: maskSensitiveHeaderData ? maskAuthData(request) : request
} : {})
};
if (res.error) {
rs.reject(res.error);
}
rs.resolve(res);
return res;

@@ -1635,7 +1534,16 @@ }

return new Promise(async (resolve, reject) => {
return dispatch({
reject,
resolve,
...request
});
try {
const response = await dispatch({
reject,
resolve,
...request
});
if (response.error) return reject(response.error);
if (response.originalRequest && _maskSensitiveHeaderData) {
response.originalRequest = maskAuthData(response.originalRequest);
}
resolve(response);
} catch (err) {
reject(err);
}
});

@@ -1642,0 +1550,0 @@ }

import fetch$1 from 'node-fetch';
import { v4 } from 'uuid';
import { Buffer } from 'buffer/';
import AbortController from 'abort-controller';
function toPrimitive(t, r) {
function _toPrimitive(t, r) {
if ("object" != typeof t || !t) return t;

@@ -17,20 +15,14 @@ var e = t[Symbol.toPrimitive];

function toPropertyKey(t) {
var i = toPrimitive(t, "string");
function _toPropertyKey(t) {
var i = _toPrimitive(t, "string");
return "symbol" == typeof i ? i : i + "";
}
function _defineProperty(obj, key, value) {
key = toPropertyKey(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
function _defineProperty(e, r, t) {
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
value: t,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[r] = t, e;
}

@@ -187,6 +179,8 @@

_response = await execute();
if (_response.status > 399 && hasResponseRetryCode(retryCodes, _response)) return {
_response,
shouldRetry: true
};
if (_response.status > 399 && hasResponseRetryCode(retryCodes, _response)) {
return {
_response,
shouldRetry: true
};
}
} catch (e) {

@@ -236,3 +230,3 @@ if (e.name.includes('AbortError') && retryWhenAborted) {

if (response.text && typeof response.text == 'function') {
result = await response.text();
result = (await response.text()) || response[Object.getOwnPropertySymbols(response)[1]];
data = JSON.parse(result);

@@ -262,4 +256,12 @@ } else {

// import { v4 as uuidv4 } from 'uuid'
// export default function generateID() {
// return uuidv4()
// }
function generateID() {
return v4();
// @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;
}

@@ -453,12 +455,7 @@

function responseCache() {
let val;
return {
set(response) {
val = response;
},
get() {
return val;
}
};
function byteLength(body) {
if (typeof body === 'string') return body.length.toString();
if (body && typeof body === 'object') return new TextEncoder().encode(JSON.stringify(body)).length.toString();
if (body instanceof Uint8Array) return body.length.toString();
return '0';
}

@@ -526,3 +523,4 @@

const scope = options.scopes ? options.scopes.join(' ') : undefined;
const basicAuth = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
const basicAuth = btoa(`${clientId}:${clientSecret}`);
// This is mostly useful for internal testing purposes to be able to check

@@ -573,5 +571,6 @@ // other oauth endpoints.

if (!(clientId && clientSecret)) throw new Error('Missing required credentials (clientId, clientSecret)');
const basicAuth = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
// This is mostly useful for internal testing purposes to be able to check
// other oauth endpoints.
const basicAuth = btoa(`${clientId}:${clientSecret}`);
// This is mostly useful for internal testing
// purposes to be able to check other oauth endpoints.
const oauthUri = options.oauthUri || '/oauth/token';

@@ -610,3 +609,3 @@ const url = options.host.replace(/\/$/, '') + oauthUri;

const scopeStr = scope ? `&scope=${scope}` : '';
const basicAuth = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
const basicAuth = btoa(`${clientId}:${clientSecret}`);

@@ -631,9 +630,6 @@ /**

const {
request,
httpClient,
tokenCache,
tokenCacheKey,
userOption,
tokenCacheObject,
next
tokenCacheObject
} = options;

@@ -643,34 +639,5 @@ let url = options.url;

let basicAuth = options.basicAuth;
// get the pending object from option
// let pendingTasks: Array<Task> = options.pendingTasks
if (!httpClient || typeof 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 there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
// const tokenCacheObject = tokenCache.get(tokenCacheKey)
// if (
// tokenCacheObject && tokenCacheObject.token
// && Date.now() < tokenCacheObject.expirationTime
// ) {
// return next(
// mergeAuthHeader(
// tokenCacheObject.token, request
// )
// );
// }
/**
* Keep pending tasks until a token is fetched
* Save next function as well, to call it once the token has been fetched, which prevents
* unexpected behaviour in a context in which the next function uses global vars
* or Promises to capture the token to hand it to other libraries, e.g. Apollo
*/
// pendingTasks.push({ request, next })
/**
* use refreshToken flow if there is refresh-token

@@ -705,3 +672,3 @@ * and there's either no token or the token is expired

'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(body).toString()
'Content-Length': byteLength(body)
},

@@ -727,64 +694,15 @@ httpClient,

});
/**
* Freeze and copy pending queue, reset
* original one for accepting new pending tasks
*/
// const requestQueue = pendingTasks.slice()
// // reset pendingTask queue
// pendingTasks = []
// if (requestQueue.length === 1) {
// return mergeAuthHeader(token, requestQueue.pop().request)
// }
// // execute all pending tasks if any
// for (let i = 0; i < pendingTasks.length; i++) {
// const task: Task = pendingTasks[i];
// const requestWithAuth = mergeAuthHeader(token, task.request)
// // execute task
// // task.next(requestWithAuth)
// pendingTasks[i].request = requestWithAuth;
// }
// return pendingTasks;
return Promise.resolve(true);
}
const error = new Error(response.data.message ? response.data.message : JSON.stringify(response.data));
/**
* reject the error immediately
* and free up the middleware chain
*/
return request.reject({
...request,
headers: {
...request.headers
},
response: {
statusCode: response.statusCode || response.data.statusCode,
error: {
error,
body: response
}
}
// bubble up the error for the catch block
throw createError({
code: response.data.error,
statusCode: response.data.statusCode,
message: response.data.message,
error: response.data.errors
});
} catch (error) {
request.reject({
...request,
headers: {
...request.headers
},
response: {
body: null,
statusCode: error.statusCode || 0,
error: {
...response,
error,
body: response
}
}
});
// throw error and free up the middleware chain
throw error;
}

@@ -794,4 +712,2 @@ }

function createAuthMiddlewareForAnonymousSessionFlow$1(options) {
// const pendingTasks: Array<Task> = []
// const requestState = new Mutex()
const tokenCache = options.tokenCache || store({

@@ -811,2 +727,7 @@ token: '',

}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);

@@ -819,4 +740,2 @@ if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {

const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -851,4 +770,2 @@ tokenCache,

function createAuthMiddlewareForClientCredentialsFlow$1(options) {
// const requestState = new Mutex()
// const pendingTasks: Array<Task> = []
const tokenCache = options.tokenCache || store({

@@ -868,2 +785,7 @@ token: '',

}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);

@@ -876,4 +798,2 @@ if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {

const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -943,8 +863,16 @@ tokenCache,

return async request => {
// if here is a token in the header, then move on to the next middleware
if (request.headers && (request.headers.Authorization || request.headers.authorization)) {
return next(request);
}
/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
return next(mergeAuthHeader(tokenCacheObject.token, request));
}
const requestOptions = {
// requestState,
// pendingTasks,
request,

@@ -983,6 +911,2 @@ tokenCache,

});
// const pendingTasks: Array<Task> = []
// const requestState = new Mutex()
let tokenCacheObject;

@@ -997,6 +921,13 @@ let tokenFetchPromise = null;

/**
* If there is a token in the tokenCache, and it's not
* expired, append the token in the `Authorization` header.
*/
tokenCacheObject = tokenCache.get(tokenCacheKey);
if (tokenCacheObject && tokenCacheObject.token && Date.now() < tokenCacheObject.expirationTime) {
return next(mergeAuthHeader(tokenCacheObject.token, request));
}
// prepare request options
const requestOptions = {
// pendingTasks,
// requestState,
request,

@@ -1031,3 +962,2 @@ tokenCache,

return async request => {
request['concurrent'] = true;
const response = await next(request);

@@ -1040,3 +970,3 @@ if (response.statusCode == 409) {

*/
const version = response.error?.body?.errors?.[0]?.currentVersion;
const version = response.error.body?.errors?.[0]?.currentVersion;

@@ -1056,14 +986,6 @@ // update the resource version here

}
return next({
...request,
response
});
return next(request);
}
}
request.continue = true;
delete request['concurrent'];
return next({
...request,
response
});
return response;
};

@@ -1107,4 +1029,2 @@ };

let result;
const cache = responseCache();
async function executeRequest({

@@ -1116,8 +1036,2 @@ url,

let timer;
// don't make further api calls
if (clientOptions.request['continue']) {
delete clientOptions.request['continue'];
return cache.get();
}
const {

@@ -1149,3 +1063,3 @@ timeout,

if (clientOptions.method == 'HEAD') {
const _result = {
return {
body: null,

@@ -1156,6 +1070,4 @@ statusCode: response.statusCode,

};
cache.set(_result);
return _result;
}
result = {
return {
body: response.data,

@@ -1166,3 +1078,2 @@ statusCode: response.statusCode,

};
return result;
}

@@ -1187,3 +1098,3 @@ const error = createError({

*/
result = {
return {
body: response.data,

@@ -1195,7 +1106,6 @@ code: response.statusCode,

};
return result;
} catch (e) {
// We know that this is a network error
const headers = includeResponseHeaders ? getHeaders(e.response?.headers) : null;
const statusCode = e.response?.status || e.response?.data || 0;
const statusCode = e.response?.status || e.response?.data0 || 0;
const message = e.response?.data?.message;

@@ -1216,12 +1126,7 @@ const error = createError({

});
result = {
throw {
body: error,
error
};
return result;
} finally {
/**
* finally cache the response
*/
cache.set(result);
clearTimeout(timer);

@@ -1269,3 +1174,3 @@ }

if (body && (typeof body === 'string' || isBuffer(body))) {
requestHeader['Content-Length'] = Buffer.byteLength(body).toString();
requestHeader['Content-Length'] = byteLength(body);
}

@@ -1303,5 +1208,2 @@ const clientOptions = {

});
if (request['concurrent']) {
return response;
}
const responseWithRequest = {

@@ -1338,40 +1240,43 @@ ...request,

let runningCount = 0;
const queue = [];
const dequeue = next => {
runningCount--;
if (queue.length && runningCount <= concurrency) {
const nextTask = queue.shift();
runningCount++;
return next(nextTask.request);
}
};
const enqueue = ({
request
}) => queue.push({
request
});
return next => request => {
// wrap and override resolve and reject functions
const patchedRequest = {
...request,
resolve(data) {
request.resolve(data);
dequeue(next);
},
reject(error) {
request.reject(error);
dequeue(next);
}
};
const waitForSlot = () => {
// dont allow negative or 0 value for concurrency
if (0 >= concurrency) return Promise.resolve();
return new Promise(resolve => {
const tryNext = () => {
if (runningCount < concurrency) {
runningCount++;
resolve();
} else {
// Retry until a slot becomes available
setTimeout(tryNext, 10);
}
};
// enqueue requests
enqueue({
request: patchedRequest
// start
tryNext();
});
if (runningCount < concurrency) {
runningCount++;
const nextTask = queue.shift();
return next(nextTask.request);
}
};
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--;
}
});
};
};
}

@@ -1381,3 +1286,3 @@

name: "@commercetools/ts-client",
version: "2.1.0-alpha.0",
version: "2.1.0-alpha.1",
engines: {

@@ -1416,5 +1321,3 @@ node: ">=14"

"abort-controller": "3.0.0",
buffer: "^6.0.3",
"node-fetch": "^2.6.1",
uuid: "10.0.0"
"node-fetch": "^2.6.1"
},

@@ -1581,2 +1484,3 @@ files: [

validateClient(middlewares);
let _maskSensitiveHeaderData = false;
const resolver = {

@@ -1594,4 +1498,3 @@ async resolve(rs) {

} = response;
// _maskSensitiveHeaderData = maskSensitiveHeaderData
_maskSensitiveHeaderData = maskSensitiveHeaderData;
const res = {

@@ -1603,13 +1506,9 @@ body: null,

...rest,
...(includeOriginalRequest ? {
originalRequest: request
} : {}),
...(response?.retryCount ? {
retryCount: response.retryCount
} : {}),
...(includeOriginalRequest ? {
originalRequest: maskSensitiveHeaderData ? maskAuthData(request) : request
} : {})
};
if (res.error) {
rs.reject(res.error);
}
rs.resolve(res);
return res;

@@ -1624,7 +1523,16 @@ }

return new Promise(async (resolve, reject) => {
return dispatch({
reject,
resolve,
...request
});
try {
const response = await dispatch({
reject,
resolve,
...request
});
if (response.error) return reject(response.error);
if (response.originalRequest && _maskSensitiveHeaderData) {
response.originalRequest = maskAuthData(response.originalRequest);
}
resolve(response);
} catch (err) {
reject(err);
}
});

@@ -1631,0 +1539,0 @@ }

@@ -1,14 +0,1 @@

var window;(window||={})["@commercetools/ts-client"]=(()=>{var Wr=Object.create;var Me=Object.defineProperty;var Xr=Object.getOwnPropertyDescriptor;var Zr=Object.getOwnPropertyNames;var et=Object.getPrototypeOf,rt=Object.prototype.hasOwnProperty;var le=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),He=(t,e)=>{for(var r in e)Me(t,r,{get:e[r],enumerable:!0})},hr=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Zr(e))!rt.call(t,n)&&n!==r&&Me(t,n,{get:()=>e[n],enumerable:!(i=Xr(e,n))||i.enumerable});return t};var N=(t,e,r)=>(r=t!=null?Wr(et(t)):{},hr(e||!t||!t.__esModule?Me(r,"default",{value:t,enumerable:!0}):r,t)),tt=t=>hr(Me({},"__esModule",{value:!0}),t);var de=le((J,pr)=>{"use strict";var it=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")},H=it();pr.exports=J=H.fetch;H.fetch&&(J.default=H.fetch.bind(H));J.Headers=H.Headers;J.Request=H.Request;J.Response=H.Response});var Mr=le(Oe=>{"use strict";Oe.byteLength=It;Oe.toByteArray=Ut;Oe.fromByteArray=St;var k=[],A=[],bt=typeof Uint8Array<"u"?Uint8Array:Array,Xe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(K=0,gr=Xe.length;K<gr;++K)k[K]=Xe[K],A[Xe.charCodeAt(K)]=K;var K,gr;A[45]=62;A[95]=63;function xr(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var i=r===e?0:4-r%4;return[r,i]}function It(t){var e=xr(t),r=e[0],i=e[1];return(r+i)*3/4-i}function Ft(t,e,r){return(e+r)*3/4-r}function Ut(t){var e,r=xr(t),i=r[0],n=r[1],o=new bt(Ft(t,i,n)),s=0,u=n>0?i-4:i,c;for(c=0;c<u;c+=4)e=A[t.charCodeAt(c)]<<18|A[t.charCodeAt(c+1)]<<12|A[t.charCodeAt(c+2)]<<6|A[t.charCodeAt(c+3)],o[s++]=e>>16&255,o[s++]=e>>8&255,o[s++]=e&255;return n===2&&(e=A[t.charCodeAt(c)]<<2|A[t.charCodeAt(c+1)]>>4,o[s++]=e&255),n===1&&(e=A[t.charCodeAt(c)]<<10|A[t.charCodeAt(c+1)]<<4|A[t.charCodeAt(c+2)]>>2,o[s++]=e>>8&255,o[s++]=e&255),o}function kt(t){return k[t>>18&63]+k[t>>12&63]+k[t>>6&63]+k[t&63]}function Ot(t,e,r){for(var i,n=[],o=e;o<r;o+=3)i=(t[o]<<16&16711680)+(t[o+1]<<8&65280)+(t[o+2]&255),n.push(kt(i));return n.join("")}function St(t){for(var e,r=t.length,i=r%3,n=[],o=16383,s=0,u=r-i;s<u;s+=o)n.push(Ot(t,s,s+o>u?u:s+o));return i===1?(e=t[r-1],n.push(k[e>>2]+k[e<<4&63]+"==")):i===2&&(e=(t[r-2]<<8)+t[r-1],n.push(k[e>>10]+k[e>>4&63]+k[e<<2&63]+"=")),n.join("")}});var Cr=le(Ze=>{Ze.read=function(t,e,r,i,n){var o,s,u=n*8-i-1,c=(1<<u)-1,h=c>>1,l=-7,d=r?n-1:0,p=r?-1:1,w=t[e+d];for(d+=p,o=w&(1<<-l)-1,w>>=-l,l+=u;l>0;o=o*256+t[e+d],d+=p,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=i;l>0;s=s*256+t[e+d],d+=p,l-=8);if(o===0)o=1-h;else{if(o===c)return s?NaN:(w?-1:1)*(1/0);s=s+Math.pow(2,i),o=o-h}return(w?-1:1)*s*Math.pow(2,o-i)};Ze.write=function(t,e,r,i,n,o){var s,u,c,h=o*8-n-1,l=(1<<h)-1,d=l>>1,p=n===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=i?0:o-1,f=i?1:-1,M=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(u=isNaN(e)?1:0,s=l):(s=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-s))<1&&(s--,c*=2),s+d>=1?e+=p/c:e+=p*Math.pow(2,1-d),e*c>=2&&(s++,c/=2),s+d>=l?(u=0,s=l):s+d>=1?(u=(e*c-1)*Math.pow(2,n),s=s+d):(u=e*Math.pow(2,d-1)*Math.pow(2,n),s=0));n>=8;t[r+w]=u&255,w+=f,u/=256,n-=8);for(s=s<<n|u,h+=n;h>0;t[r+w]=s&255,w+=f,s/=256,h-=8);t[r+w-f]|=M*128}});var Ne=le(ee=>{"use strict";var er=Mr(),X=Cr(),Er=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;ee.Buffer=a;ee.SlowBuffer=Lt;ee.INSPECT_MAX_BYTES=50;var Se=2147483647;ee.kMaxLength=Se;a.TYPED_ARRAY_SUPPORT=Pt();!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function Pt(){try{let t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}});Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function P(t){if(t>Se)throw new RangeError('The value "'+t+'" is invalid for option "size"');let e=new Uint8Array(t);return Object.setPrototypeOf(e,a.prototype),e}function a(t,e,r){if(typeof t=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return nr(t)}return Br(t,e,r)}a.poolSize=8192;function Br(t,e,r){if(typeof t=="string")return _t(t,e);if(ArrayBuffer.isView(t))return qt(t);if(t==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(O(t,ArrayBuffer)||t&&O(t.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(O(t,SharedArrayBuffer)||t&&O(t.buffer,SharedArrayBuffer)))return tr(t,e,r);if(typeof t=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let i=t.valueOf&&t.valueOf();if(i!=null&&i!==t)return a.from(i,e,r);let n=jt(t);if(n)return n;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]=="function")return a.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}a.from=function(t,e,r){return Br(t,e,r)};Object.setPrototypeOf(a.prototype,Uint8Array.prototype);Object.setPrototypeOf(a,Uint8Array);function br(t){if(typeof t!="number")throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function Nt(t,e,r){return br(t),t<=0?P(t):e!==void 0?typeof r=="string"?P(t).fill(e,r):P(t).fill(e):P(t)}a.alloc=function(t,e,r){return Nt(t,e,r)};function nr(t){return br(t),P(t<0?0:or(t)|0)}a.allocUnsafe=function(t){return nr(t)};a.allocUnsafeSlow=function(t){return nr(t)};function _t(t,e){if((typeof e!="string"||e==="")&&(e="utf8"),!a.isEncoding(e))throw new TypeError("Unknown encoding: "+e);let r=Ir(t,e)|0,i=P(r),n=i.write(t,e);return n!==r&&(i=i.slice(0,n)),i}function rr(t){let e=t.length<0?0:or(t.length)|0,r=P(e);for(let i=0;i<e;i+=1)r[i]=t[i]&255;return r}function qt(t){if(O(t,Uint8Array)){let e=new Uint8Array(t);return tr(e.buffer,e.byteOffset,e.byteLength)}return rr(t)}function tr(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('"length" is outside of buffer bounds');let i;return e===void 0&&r===void 0?i=new Uint8Array(t):r===void 0?i=new Uint8Array(t,e):i=new Uint8Array(t,e,r),Object.setPrototypeOf(i,a.prototype),i}function jt(t){if(a.isBuffer(t)){let e=or(t.length)|0,r=P(e);return r.length===0||t.copy(r,0,0,e),r}if(t.length!==void 0)return typeof t.length!="number"||ar(t.length)?P(0):rr(t);if(t.type==="Buffer"&&Array.isArray(t.data))return rr(t.data)}function or(t){if(t>=Se)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Se.toString(16)+" bytes");return t|0}function Lt(t){return+t!=t&&(t=0),a.alloc(+t)}a.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==a.prototype};a.compare=function(e,r){if(O(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),O(r,Uint8Array)&&(r=a.from(r,r.offset,r.byteLength)),!a.isBuffer(e)||!a.isBuffer(r))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===r)return 0;let i=e.length,n=r.length;for(let o=0,s=Math.min(i,n);o<s;++o)if(e[o]!==r[o]){i=e[o],n=r[o];break}return i<n?-1:n<i?1:0};a.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}};a.concat=function(e,r){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return a.alloc(0);let i;if(r===void 0)for(r=0,i=0;i<e.length;++i)r+=e[i].length;let n=a.allocUnsafe(r),o=0;for(i=0;i<e.length;++i){let s=e[i];if(O(s,Uint8Array))o+s.length>n.length?(a.isBuffer(s)||(s=a.from(s)),s.copy(n,o)):Uint8Array.prototype.set.call(n,s,o);else if(a.isBuffer(s))s.copy(n,o);else throw new TypeError('"list" argument must be an Array of Buffers');o+=s.length}return n};function Ir(t,e){if(a.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||O(t,ArrayBuffer))return t.byteLength;if(typeof t!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);let r=t.length,i=arguments.length>2&&arguments[2]===!0;if(!i&&r===0)return 0;let n=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return ir(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return qr(t).length;default:if(n)return i?-1:ir(t).length;e=(""+e).toLowerCase(),n=!0}}a.byteLength=Ir;function Dt(t,e,r){let i=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,e>>>=0,r<=e))return"";for(t||(t="utf8");;)switch(t){case"hex":return Yt(this,e,r);case"utf8":case"utf-8":return Ur(this,e,r);case"ascii":return Qt(this,e,r);case"latin1":case"binary":return Jt(this,e,r);case"base64":return Vt(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Wt(this,e,r);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}a.prototype._isBuffer=!0;function v(t,e,r){let i=t[e];t[e]=t[r],t[r]=i}a.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let r=0;r<e;r+=2)v(this,r,r+1);return this};a.prototype.swap32=function(){let e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let r=0;r<e;r+=4)v(this,r,r+3),v(this,r+1,r+2);return this};a.prototype.swap64=function(){let e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let r=0;r<e;r+=8)v(this,r,r+7),v(this,r+1,r+6),v(this,r+2,r+5),v(this,r+3,r+4);return this};a.prototype.toString=function(){let e=this.length;return e===0?"":arguments.length===0?Ur(this,0,e):Dt.apply(this,arguments)};a.prototype.toLocaleString=a.prototype.toString;a.prototype.equals=function(e){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?!0:a.compare(this,e)===0};a.prototype.inspect=function(){let e="",r=ee.INSPECT_MAX_BYTES;return e=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(e+=" ... "),"<Buffer "+e+">"};Er&&(a.prototype[Er]=a.prototype.inspect);a.prototype.compare=function(e,r,i,n,o){if(O(e,Uint8Array)&&(e=a.from(e,e.offset,e.byteLength)),!a.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(r===void 0&&(r=0),i===void 0&&(i=e?e.length:0),n===void 0&&(n=0),o===void 0&&(o=this.length),r<0||i>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&r>=i)return 0;if(n>=o)return-1;if(r>=i)return 1;if(r>>>=0,i>>>=0,n>>>=0,o>>>=0,this===e)return 0;let s=o-n,u=i-r,c=Math.min(s,u),h=this.slice(n,o),l=e.slice(r,i);for(let d=0;d<c;++d)if(h[d]!==l[d]){s=h[d],u=l[d];break}return s<u?-1:u<s?1:0};function Fr(t,e,r,i,n){if(t.length===0)return-1;if(typeof r=="string"?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,ar(r)&&(r=n?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(n)return-1;r=t.length-1}else if(r<0)if(n)r=0;else return-1;if(typeof e=="string"&&(e=a.from(e,i)),a.isBuffer(e))return e.length===0?-1:Ar(t,e,r,i,n);if(typeof e=="number")return e=e&255,typeof Uint8Array.prototype.indexOf=="function"?n?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):Ar(t,[e],r,i,n);throw new TypeError("val must be string, number or Buffer")}function Ar(t,e,r,i,n){let o=1,s=t.length,u=e.length;if(i!==void 0&&(i=String(i).toLowerCase(),i==="ucs2"||i==="ucs-2"||i==="utf16le"||i==="utf-16le")){if(t.length<2||e.length<2)return-1;o=2,s/=2,u/=2,r/=2}function c(l,d){return o===1?l[d]:l.readUInt16BE(d*o)}let h;if(n){let l=-1;for(h=r;h<s;h++)if(c(t,h)===c(e,l===-1?0:h-l)){if(l===-1&&(l=h),h-l+1===u)return l*o}else l!==-1&&(h-=h-l),l=-1}else for(r+u>s&&(r=s-u),h=r;h>=0;h--){let l=!0;for(let d=0;d<u;d++)if(c(t,h+d)!==c(e,d)){l=!1;break}if(l)return h}return-1}a.prototype.includes=function(e,r,i){return this.indexOf(e,r,i)!==-1};a.prototype.indexOf=function(e,r,i){return Fr(this,e,r,i,!0)};a.prototype.lastIndexOf=function(e,r,i){return Fr(this,e,r,i,!1)};function Ht(t,e,r,i){r=Number(r)||0;let n=t.length-r;i?(i=Number(i),i>n&&(i=n)):i=n;let o=e.length;i>o/2&&(i=o/2);let s;for(s=0;s<i;++s){let u=parseInt(e.substr(s*2,2),16);if(ar(u))return s;t[r+s]=u}return s}function $t(t,e,r,i){return Pe(ir(e,t.length-r),t,r,i)}function Kt(t,e,r,i){return Pe(ri(e),t,r,i)}function vt(t,e,r,i){return Pe(qr(e),t,r,i)}function zt(t,e,r,i){return Pe(ti(e,t.length-r),t,r,i)}a.prototype.write=function(e,r,i,n){if(r===void 0)n="utf8",i=this.length,r=0;else if(i===void 0&&typeof r=="string")n=r,i=this.length,r=0;else if(isFinite(r))r=r>>>0,isFinite(i)?(i=i>>>0,n===void 0&&(n="utf8")):(n=i,i=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let o=this.length-r;if((i===void 0||i>o)&&(i=o),e.length>0&&(i<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let s=!1;for(;;)switch(n){case"hex":return Ht(this,e,r,i);case"utf8":case"utf-8":return $t(this,e,r,i);case"ascii":case"latin1":case"binary":return Kt(this,e,r,i);case"base64":return vt(this,e,r,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return zt(this,e,r,i);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}};a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Vt(t,e,r){return e===0&&r===t.length?er.fromByteArray(t):er.fromByteArray(t.slice(e,r))}function Ur(t,e,r){r=Math.min(t.length,r);let i=[],n=e;for(;n<r;){let o=t[n],s=null,u=o>239?4:o>223?3:o>191?2:1;if(n+u<=r){let c,h,l,d;switch(u){case 1:o<128&&(s=o);break;case 2:c=t[n+1],(c&192)===128&&(d=(o&31)<<6|c&63,d>127&&(s=d));break;case 3:c=t[n+1],h=t[n+2],(c&192)===128&&(h&192)===128&&(d=(o&15)<<12|(c&63)<<6|h&63,d>2047&&(d<55296||d>57343)&&(s=d));break;case 4:c=t[n+1],h=t[n+2],l=t[n+3],(c&192)===128&&(h&192)===128&&(l&192)===128&&(d=(o&15)<<18|(c&63)<<12|(h&63)<<6|l&63,d>65535&&d<1114112&&(s=d))}}s===null?(s=65533,u=1):s>65535&&(s-=65536,i.push(s>>>10&1023|55296),s=56320|s&1023),i.push(s),n+=u}return Gt(i)}var Rr=4096;function Gt(t){let e=t.length;if(e<=Rr)return String.fromCharCode.apply(String,t);let r="",i=0;for(;i<e;)r+=String.fromCharCode.apply(String,t.slice(i,i+=Rr));return r}function Qt(t,e,r){let i="";r=Math.min(t.length,r);for(let n=e;n<r;++n)i+=String.fromCharCode(t[n]&127);return i}function Jt(t,e,r){let i="";r=Math.min(t.length,r);for(let n=e;n<r;++n)i+=String.fromCharCode(t[n]);return i}function Yt(t,e,r){let i=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>i)&&(r=i);let n="";for(let o=e;o<r;++o)n+=ii[t[o]];return n}function Wt(t,e,r){let i=t.slice(e,r),n="";for(let o=0;o<i.length-1;o+=2)n+=String.fromCharCode(i[o]+i[o+1]*256);return n}a.prototype.slice=function(e,r){let i=this.length;e=~~e,r=r===void 0?i:~~r,e<0?(e+=i,e<0&&(e=0)):e>i&&(e=i),r<0?(r+=i,r<0&&(r=0)):r>i&&(r=i),r<e&&(r=e);let n=this.subarray(e,r);return Object.setPrototypeOf(n,a.prototype),n};function m(t,e,r){if(t%1!==0||t<0)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(e,r,i){e=e>>>0,r=r>>>0,i||m(e,r,this.length);let n=this[e],o=1,s=0;for(;++s<r&&(o*=256);)n+=this[e+s]*o;return n};a.prototype.readUintBE=a.prototype.readUIntBE=function(e,r,i){e=e>>>0,r=r>>>0,i||m(e,r,this.length);let n=this[e+--r],o=1;for(;r>0&&(o*=256);)n+=this[e+--r]*o;return n};a.prototype.readUint8=a.prototype.readUInt8=function(e,r){return e=e>>>0,r||m(e,1,this.length),this[e]};a.prototype.readUint16LE=a.prototype.readUInt16LE=function(e,r){return e=e>>>0,r||m(e,2,this.length),this[e]|this[e+1]<<8};a.prototype.readUint16BE=a.prototype.readUInt16BE=function(e,r){return e=e>>>0,r||m(e,2,this.length),this[e]<<8|this[e+1]};a.prototype.readUint32LE=a.prototype.readUInt32LE=function(e,r){return e=e>>>0,r||m(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};a.prototype.readUint32BE=a.prototype.readUInt32BE=function(e,r){return e=e>>>0,r||m(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};a.prototype.readBigUInt64LE=_(function(e){e=e>>>0,Z(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&he(e,this.length-8);let n=r+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,o=this[++e]+this[++e]*2**8+this[++e]*2**16+i*2**24;return BigInt(n)+(BigInt(o)<<BigInt(32))});a.prototype.readBigUInt64BE=_(function(e){e=e>>>0,Z(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&he(e,this.length-8);let n=r*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],o=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+i;return(BigInt(n)<<BigInt(32))+BigInt(o)});a.prototype.readIntLE=function(e,r,i){e=e>>>0,r=r>>>0,i||m(e,r,this.length);let n=this[e],o=1,s=0;for(;++s<r&&(o*=256);)n+=this[e+s]*o;return o*=128,n>=o&&(n-=Math.pow(2,8*r)),n};a.prototype.readIntBE=function(e,r,i){e=e>>>0,r=r>>>0,i||m(e,r,this.length);let n=r,o=1,s=this[e+--n];for(;n>0&&(o*=256);)s+=this[e+--n]*o;return o*=128,s>=o&&(s-=Math.pow(2,8*r)),s};a.prototype.readInt8=function(e,r){return e=e>>>0,r||m(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};a.prototype.readInt16LE=function(e,r){e=e>>>0,r||m(e,2,this.length);let i=this[e]|this[e+1]<<8;return i&32768?i|4294901760:i};a.prototype.readInt16BE=function(e,r){e=e>>>0,r||m(e,2,this.length);let i=this[e+1]|this[e]<<8;return i&32768?i|4294901760:i};a.prototype.readInt32LE=function(e,r){return e=e>>>0,r||m(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};a.prototype.readInt32BE=function(e,r){return e=e>>>0,r||m(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};a.prototype.readBigInt64LE=_(function(e){e=e>>>0,Z(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&he(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(i<<24);return(BigInt(n)<<BigInt(32))+BigInt(r+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24)});a.prototype.readBigInt64BE=_(function(e){e=e>>>0,Z(e,"offset");let r=this[e],i=this[e+7];(r===void 0||i===void 0)&&he(e,this.length-8);let n=(r<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<<BigInt(32))+BigInt(this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+i)});a.prototype.readFloatLE=function(e,r){return e=e>>>0,r||m(e,4,this.length),X.read(this,e,!0,23,4)};a.prototype.readFloatBE=function(e,r){return e=e>>>0,r||m(e,4,this.length),X.read(this,e,!1,23,4)};a.prototype.readDoubleLE=function(e,r){return e=e>>>0,r||m(e,8,this.length),X.read(this,e,!0,52,8)};a.prototype.readDoubleBE=function(e,r){return e=e>>>0,r||m(e,8,this.length),X.read(this,e,!1,52,8)};function C(t,e,r,i,n,o){if(!a.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>n||e<o)throw new RangeError('"value" argument is out of bounds');if(r+i>t.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(e,r,i,n){if(e=+e,r=r>>>0,i=i>>>0,!n){let u=Math.pow(2,8*i)-1;C(this,e,r,i,u,0)}let o=1,s=0;for(this[r]=e&255;++s<i&&(o*=256);)this[r+s]=e/o&255;return r+i};a.prototype.writeUintBE=a.prototype.writeUIntBE=function(e,r,i,n){if(e=+e,r=r>>>0,i=i>>>0,!n){let u=Math.pow(2,8*i)-1;C(this,e,r,i,u,0)}let o=i-1,s=1;for(this[r+o]=e&255;--o>=0&&(s*=256);)this[r+o]=e/s&255;return r+i};a.prototype.writeUint8=a.prototype.writeUInt8=function(e,r,i){return e=+e,r=r>>>0,i||C(this,e,r,1,255,0),this[r]=e&255,r+1};a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(e,r,i){return e=+e,r=r>>>0,i||C(this,e,r,2,65535,0),this[r]=e&255,this[r+1]=e>>>8,r+2};a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(e,r,i){return e=+e,r=r>>>0,i||C(this,e,r,2,65535,0),this[r]=e>>>8,this[r+1]=e&255,r+2};a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(e,r,i){return e=+e,r=r>>>0,i||C(this,e,r,4,4294967295,0),this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=e&255,r+4};a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(e,r,i){return e=+e,r=r>>>0,i||C(this,e,r,4,4294967295,0),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};function kr(t,e,r,i,n){_r(e,i,n,t,r,7);let o=Number(e&BigInt(4294967295));t[r++]=o,o=o>>8,t[r++]=o,o=o>>8,t[r++]=o,o=o>>8,t[r++]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=s,s=s>>8,t[r++]=s,s=s>>8,t[r++]=s,s=s>>8,t[r++]=s,r}function Or(t,e,r,i,n){_r(e,i,n,t,r,7);let o=Number(e&BigInt(4294967295));t[r+7]=o,o=o>>8,t[r+6]=o,o=o>>8,t[r+5]=o,o=o>>8,t[r+4]=o;let s=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=s,s=s>>8,t[r+2]=s,s=s>>8,t[r+1]=s,s=s>>8,t[r]=s,r+8}a.prototype.writeBigUInt64LE=_(function(e,r=0){return kr(this,e,r,BigInt(0),BigInt("0xffffffffffffffff"))});a.prototype.writeBigUInt64BE=_(function(e,r=0){return Or(this,e,r,BigInt(0),BigInt("0xffffffffffffffff"))});a.prototype.writeIntLE=function(e,r,i,n){if(e=+e,r=r>>>0,!n){let c=Math.pow(2,8*i-1);C(this,e,r,i,c-1,-c)}let o=0,s=1,u=0;for(this[r]=e&255;++o<i&&(s*=256);)e<0&&u===0&&this[r+o-1]!==0&&(u=1),this[r+o]=(e/s>>0)-u&255;return r+i};a.prototype.writeIntBE=function(e,r,i,n){if(e=+e,r=r>>>0,!n){let c=Math.pow(2,8*i-1);C(this,e,r,i,c-1,-c)}let o=i-1,s=1,u=0;for(this[r+o]=e&255;--o>=0&&(s*=256);)e<0&&u===0&&this[r+o+1]!==0&&(u=1),this[r+o]=(e/s>>0)-u&255;return r+i};a.prototype.writeInt8=function(e,r,i){return e=+e,r=r>>>0,i||C(this,e,r,1,127,-128),e<0&&(e=255+e+1),this[r]=e&255,r+1};a.prototype.writeInt16LE=function(e,r,i){return e=+e,r=r>>>0,i||C(this,e,r,2,32767,-32768),this[r]=e&255,this[r+1]=e>>>8,r+2};a.prototype.writeInt16BE=function(e,r,i){return e=+e,r=r>>>0,i||C(this,e,r,2,32767,-32768),this[r]=e>>>8,this[r+1]=e&255,r+2};a.prototype.writeInt32LE=function(e,r,i){return e=+e,r=r>>>0,i||C(this,e,r,4,2147483647,-2147483648),this[r]=e&255,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24,r+4};a.prototype.writeInt32BE=function(e,r,i){return e=+e,r=r>>>0,i||C(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=e&255,r+4};a.prototype.writeBigInt64LE=_(function(e,r=0){return kr(this,e,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});a.prototype.writeBigInt64BE=_(function(e,r=0){return Or(this,e,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Sr(t,e,r,i,n,o){if(r+i>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Pr(t,e,r,i,n){return e=+e,r=r>>>0,n||Sr(t,e,r,4,34028234663852886e22,-34028234663852886e22),X.write(t,e,r,i,23,4),r+4}a.prototype.writeFloatLE=function(e,r,i){return Pr(this,e,r,!0,i)};a.prototype.writeFloatBE=function(e,r,i){return Pr(this,e,r,!1,i)};function Nr(t,e,r,i,n){return e=+e,r=r>>>0,n||Sr(t,e,r,8,17976931348623157e292,-17976931348623157e292),X.write(t,e,r,i,52,8),r+8}a.prototype.writeDoubleLE=function(e,r,i){return Nr(this,e,r,!0,i)};a.prototype.writeDoubleBE=function(e,r,i){return Nr(this,e,r,!1,i)};a.prototype.copy=function(e,r,i,n){if(!a.isBuffer(e))throw new TypeError("argument should be a Buffer");if(i||(i=0),!n&&n!==0&&(n=this.length),r>=e.length&&(r=e.length),r||(r=0),n>0&&n<i&&(n=i),n===i||e.length===0||this.length===0)return 0;if(r<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-r<n-i&&(n=e.length-r+i);let o=n-i;return this===e&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(r,i,n):Uint8Array.prototype.set.call(e,this.subarray(i,n),r),o};a.prototype.fill=function(e,r,i,n){if(typeof e=="string"){if(typeof r=="string"?(n=r,r=0,i=this.length):typeof i=="string"&&(n=i,i=this.length),n!==void 0&&typeof n!="string")throw new TypeError("encoding must be a string");if(typeof n=="string"&&!a.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(e.length===1){let s=e.charCodeAt(0);(n==="utf8"&&s<128||n==="latin1")&&(e=s)}}else typeof e=="number"?e=e&255:typeof e=="boolean"&&(e=Number(e));if(r<0||this.length<r||this.length<i)throw new RangeError("Out of range index");if(i<=r)return this;r=r>>>0,i=i===void 0?this.length:i>>>0,e||(e=0);let o;if(typeof e=="number")for(o=r;o<i;++o)this[o]=e;else{let s=a.isBuffer(e)?e:a.from(e,n),u=s.length;if(u===0)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(o=0;o<i-r;++o)this[o+r]=s[o%u]}return this};var W={};function sr(t,e,r){W[t]=class extends r{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(n){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:n,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}sr("ERR_BUFFER_OUT_OF_BOUNDS",function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError);sr("ERR_INVALID_ARG_TYPE",function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`},TypeError);sr("ERR_OUT_OF_RANGE",function(t,e,r){let i=`The value of "${t}" is out of range.`,n=r;return Number.isInteger(r)&&Math.abs(r)>2**32?n=Tr(String(r)):typeof r=="bigint"&&(n=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(n=Tr(n)),n+="n"),i+=` It must be ${e}. Received ${n}`,i},RangeError);function Tr(t){let e="",r=t.length,i=t[0]==="-"?1:0;for(;r>=i+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function Xt(t,e,r){Z(e,"offset"),(t[e]===void 0||t[e+r]===void 0)&&he(e,t.length-(r+1))}function _r(t,e,r,i,n,o){if(t>r||t<e){let s=typeof e=="bigint"?"n":"",u;throw o>3?e===0||e===BigInt(0)?u=`>= 0${s} and < 2${s} ** ${(o+1)*8}${s}`:u=`>= -(2${s} ** ${(o+1)*8-1}${s}) and < 2 ** ${(o+1)*8-1}${s}`:u=`>= ${e}${s} and <= ${r}${s}`,new W.ERR_OUT_OF_RANGE("value",u,t)}Xt(i,n,o)}function Z(t,e){if(typeof t!="number")throw new W.ERR_INVALID_ARG_TYPE(e,"number",t)}function he(t,e,r){throw Math.floor(t)!==t?(Z(t,r),new W.ERR_OUT_OF_RANGE(r||"offset","an integer",t)):e<0?new W.ERR_BUFFER_OUT_OF_BOUNDS:new W.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${e}`,t)}var Zt=/[^+/0-9A-Za-z-_]/g;function ei(t){if(t=t.split("=")[0],t=t.trim().replace(Zt,""),t.length<2)return"";for(;t.length%4!==0;)t=t+"=";return t}function ir(t,e){e=e||1/0;let r,i=t.length,n=null,o=[];for(let s=0;s<i;++s){if(r=t.charCodeAt(s),r>55295&&r<57344){if(!n){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}else if(s+1===i){(e-=3)>-1&&o.push(239,191,189);continue}n=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),n=r;continue}r=(n-55296<<10|r-56320)+65536}else n&&(e-=3)>-1&&o.push(239,191,189);if(n=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return o}function ri(t){let e=[];for(let r=0;r<t.length;++r)e.push(t.charCodeAt(r)&255);return e}function ti(t,e){let r,i,n,o=[];for(let s=0;s<t.length&&!((e-=2)<0);++s)r=t.charCodeAt(s),i=r>>8,n=r%256,o.push(n),o.push(i);return o}function qr(t){return er.toByteArray(ei(t))}function Pe(t,e,r,i){let n;for(n=0;n<i&&!(n+r>=e.length||n>=t.length);++n)e[n+r]=t[n];return n}function O(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function ar(t){return t!==t}var ii=function(){let t="0123456789abcdef",e=new Array(256);for(let r=0;r<16;++r){let i=r*16;for(let n=0;n<16;++n)e[i+n]=t[r]+t[n]}return e}();function _(t){return typeof BigInt>"u"?ni:t}function ni(){throw new Error("BigInt not supported")}});var zr=le((ro,je)=>{"use strict";var{AbortController:vr,AbortSignal:oi}=typeof self<"u"?self:typeof window<"u"?window:void 0;je.exports=vr;je.exports.AbortSignal=oi;je.exports.default=vr});var xi={};He(xi,{ClientBuilder:()=>se,Process:()=>Le,createAuthMiddlewareForAnonymousSessionFlow:()=>re,createAuthMiddlewareForClientCredentialsFlow:()=>te,createAuthMiddlewareForExistingTokenFlow:()=>ie,createAuthMiddlewareForPasswordFlow:()=>ne,createAuthMiddlewareForRefreshTokenFlow:()=>oe,createClient:()=>V,createConcurrentModificationMiddleware:()=>pe,createCorrelationIdMiddleware:()=>fe,createHttpMiddleware:()=>we,createLoggerMiddleware:()=>me,createQueueMiddleware:()=>ye,createUserAgentMiddleware:()=>ge});var G=N(de());var cr={};He(cr,{createAuthMiddlewareForAnonymousSessionFlow:()=>re,createAuthMiddlewareForClientCredentialsFlow:()=>te,createAuthMiddlewareForExistingTokenFlow:()=>ie,createAuthMiddlewareForPasswordFlow:()=>ne,createAuthMiddlewareForRefreshTokenFlow:()=>oe,createConcurrentModificationMiddleware:()=>pe,createCorrelationIdMiddleware:()=>fe,createErrorMiddleware:()=>lr,createHttpMiddleware:()=>we,createLoggerMiddleware:()=>me,createQueueMiddleware:()=>ye,createUserAgentMiddleware:()=>ge});var Hr=N(de());var T={};He(T,{CONCURRENCT_REQUEST:()=>ot,CTP_API_URL:()=>st,CTP_AUTH_URL:()=>at,DEFAULT_HEADERS:()=>$e,HEADERS_CONTENT_TYPES:()=>nt});var nt=["application/json","application/graphql"],ot=20,st="https://api.europe-west1.gcp.commercetools.com",at="https://auth.europe-west1.gcp.commercetools.com",$e=["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 S(t,e,r={}){this.status=this.statusCode=this.code=t,this.message=e,Object.assign(this,r),this.name=this.constructor.name,this.constructor.prototype.__proto__=Error.prototype,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}function fr(...t){S.call(this,0,...t)}function wr(...t){S.call(this,...t)}function ut(...t){S.call(this,400,...t)}function lt(...t){S.call(this,401,...t)}function dt(...t){S.call(this,403,...t)}function ct(...t){S.call(this,404,...t)}function ht(...t){S.call(this,409,...t)}function pt(...t){S.call(this,500,...t)}function ft(...t){S.call(this,503,...t)}function Ke(t){switch(t){case 0:return fr;case 400:return ut;case 401:return lt;case 403:return dt;case 404:return ct;case 409:return ht;case 500:return pt;case 503:return ft;default:return}}function wt({statusCode:t,message:e,...r}){let i=e||"Unexpected non-JSON error response";t===404&&(i=`URI not found: ${r.originalRequest?.uri||r.uri}`);let n=Ke(t);return n?new n(i,r):new wr(t,i,r)}var Ce=wt;function mt(t,e){return[503,...t].includes(e?.status||e?.statusCode)}async function yt(t,e){async function r(){return await t({...e,headers:{...e.headers}})}return r().catch(i=>Promise.reject(i))}async function Y(t){let{url:e,httpClient:r,...i}=t;return await yt(async o=>{let{enableRetry:s,retryConfig:u,abortController:c}=i,{retryCodes:h=[],maxDelay:l=1/0,maxRetries:d=3,backoff:p=!0,retryDelay:w=200,retryOnAbort:f=!0}=u||{},M,R,x=0;ve(h);async function B(){return r(e,{...i,...o,headers:{...i.headers,...o.headers,"Accept-Encoding":"application/json"},...i.body?{data:i.body}:{},withCredentials:o.credentialsMode==="include"})}async function b(){let j=async(D,ae)=>{let ue={};try{if(ue=await B(),ue.status>399&&mt(D,ue))return{_response:ue,shouldRetry:!0}}catch(De){if(De.name.includes("AbortError")&&ae)return{_response:De,shouldRetry:!0};throw De}return{_response:ue,shouldRetry:!1}},L=f||!c||!c.signal,{_response:xe,shouldRetry:Q}=await j(h,L);for(;s&&Q&&x<d;){x++;let D=await j(h,L);xe=D._response,Q=D.shouldRetry;let ae=Ee({retryCount:x,retryDelay:w,maxRetries:d,backoff:p,maxDelay:l});await Ae(ae)}return xe}let g=await b();try{g.text&&typeof g.text=="function"?(M=await g.text(),R=JSON.parse(M)):R=g.data||g}catch{R=M}return{data:R,retryCount:x,statusCode:g.status||g.statusCode||R.statusCode,headers:g.headers}},{})}var y=[];for(Re=0;Re<256;++Re)y.push((Re+256).toString(16).slice(1));var Re;function mr(t,e=0){return(y[t[e+0]]+y[t[e+1]]+y[t[e+2]]+y[t[e+3]]+"-"+y[t[e+4]]+y[t[e+5]]+"-"+y[t[e+6]]+y[t[e+7]]+"-"+y[t[e+8]]+y[t[e+9]]+"-"+y[t[e+10]]+y[t[e+11]]+y[t[e+12]]+y[t[e+13]]+y[t[e+14]]+y[t[e+15]]).toLowerCase()}var Te,gt=new Uint8Array(16);function ze(){if(!Te&&(Te=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Te))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Te(gt)}var xt=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Ve={randomUUID:xt};function Mt(t,e,r){if(Ve.randomUUID&&!e&&!t)return Ve.randomUUID();t=t||{};var i=t.random||(t.rng||ze)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){r=r||0;for(var n=0;n<16;++n)e[r+n]=i[n];return e}return mr(i)}var Ge=Mt;function Be(){return Ge()}function Ct(t){return $e.reduce((e,r)=>{let i=t[r]?t[r]:typeof t.get=="function"?t.get(r):null;return i&&(e[r]=i),e},{})}function I(t){if(!t)return null;if(t.raw&&typeof t.raw=="function")return t.raw();if(!t.forEach)return Ct(t);let e={};return t.forEach((r,i)=>e[i]=r)}function ce(t){return t!=null&&t.constructor!=null&&typeof t.constructor.isBuffer=="function"&&t.constructor.isBuffer(t)}function $(t){let e=Object.assign({},t);return e?.headers&&(e.headers.Authorization&&(e.headers.Authorization="Bearer ********"),e.headers.authorization&&(e.headers.authorization="Bearer ********")),e}function E(t,e){return{...e,headers:{...e.headers,Authorization:`Bearer ${t}`}}}var Qe=["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 Ee({retryCount:t,retryDelay:e,backoff:r,maxDelay:i}){return r&&t!==0?Math.min(Math.round((Math.random()+1)*e*2**t),i):e}Math.min(Math.round((Math.random()+1)*200*2**10),1/0);function Ae(t){return new Promise(e=>{setTimeout(e,t)})}function F(t){if(!t?.credentials?.clientId||!t.projectKey||!t.host)throw new Error("Missing required options.");return{clientId:t.credentials.clientId,host:t.host,projectKey:t.projectKey}}function be(t){return Date.now()+t*1e3-5*60*1e3}function U(t){let e=t;return{get:r=>e,set:(r,i)=>{e=r}}}function yr(t){return typeof t<"u"&&t!==null}function Et(t){return yr(t)?typeof t=="string"?t:Object.fromEntries(Object.entries(t).filter(([e,r])=>![null,void 0,""].includes(r))):""}function At(t){let e={},r=new URLSearchParams(t);for(let i of r.keys())r.getAll(i).length>1?e[i]=r.getAll(i):e[i]=r.get(i);return e}function Rt(t){if(t=Et(t),!t)return"";let e=new URLSearchParams(t);for(let[r,i]of Object.entries(t))Array.isArray(i)&&(e.delete(r),i.filter(yr).forEach(n=>e.append(r,n)));return e.toString()}function Je(t,e=At){return e(t)}function Ie(t,e=Rt){return e(t)}var Tt=()=>typeof window<"u"&&window.document&&window.document.nodeType===9;function Bt(){if(Tt())return window.navigator.userAgent;let t=process?.version.slice(1)||"unknow",e=`(${process.platform}; ${process.arch})`;return`node.js/${t} ${e}`}function Fe(t){let e=null,r=null;if(!t)throw new Error("Missing required option `name`");let i=t.version?`${t.name}/${t.version}`:t.name;t.libraryName&&!t.libraryVersion?e=t.libraryName:t.libraryName&&t.libraryVersion&&(e=`${t.libraryName}/${t.libraryVersion}`),t.contactUrl&&!t.contactEmail?r=`(+${t.contactUrl})`:!t.contactUrl&&t.contactEmail?r=`(+${t.contactEmail})`:t.contactUrl&&t.contactEmail&&(r=`(+${t.contactUrl}; +${t.contactEmail})`);let n=Bt(),o=t.customAgent||"";return[i,n,e,r,o].filter(Boolean).join(" ")}function Ue(){let t;return{set(e){t=e},get(){return t}}}function Ye(t){if(!t.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(!t.httpClient&&typeof t.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 ve(t){if(!Array.isArray(t))throw new Error("`retryCodes` option must be an array of retry status (error) codes and/or messages.")}function We(t){if(!t)throw new Error("Missing required options");if(t.middlewares&&!Array.isArray(t.middlewares))throw new Error("Middlewares should be an array");if(!t.middlewares||!Array.isArray(t.middlewares)||!t.middlewares.length)throw new Error("You need to provide at least one middleware")}function ke(t,e,r={allowedMethods:Qe}){if(!e)throw new Error(`The "${t}" function requires a "Request" object as an argument. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(typeof e.uri!="string")throw new Error(`The "${t}" Request object requires a valid uri. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(!r.allowedMethods.includes(e.method))throw new Error(`The "${t}" Request object requires a valid method. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`)}var _e=N(Ne());function ur(t){if(!t)throw new Error("Missing required options");if(!t.host)throw new Error("Missing required option (host)");if(!t.projectKey)throw new Error("Missing required option (projectKey)");if(!t.credentials)throw new Error("Missing required option (credentials)");let{clientId:e,clientSecret:r}=t.credentials||{};if(!(e&&r))throw new Error("Missing required credentials (clientId, clientSecret)");let i=t.scopes?t.scopes.join(" "):void 0,n=_e.Buffer.from(`${e}:${r}`).toString("base64"),o=t.oauthUri||"/oauth/token",s=t.host.replace(/\/$/,"")+o,u=`grant_type=client_credentials${i?`&scope=${i}`:""}`;return{url:s,body:u,basicAuth:n}}function jr(t){if(!t)throw new Error("Missing required options");if(!t.projectKey)throw new Error("Missing required option (projectKey)");let e=t.projectKey;t.oauthUri=t.oauthUri||`/oauth/${e}/anonymous/token`;let r=ur(t);return t.credentials.anonymousId&&(r.body+=`&anonymous_id=${t.credentials.anonymousId}`),{...r}}function qe(t){if(!t)throw new Error("Missing required options");if(!t.host)throw new Error("Missing required option (host)");if(!t.projectKey)throw new Error("Missing required option (projectKey)");if(!t.credentials)throw new Error("Missing required option (credentials)");if(!t.refreshToken)throw new Error("Missing required option (refreshToken)");let{clientId:e,clientSecret:r}=t.credentials;if(!(e&&r))throw new Error("Missing required credentials (clientId, clientSecret)");let i=_e.Buffer.from(`${e}:${r}`).toString("base64"),n=t.oauthUri||"/oauth/token",o=t.host.replace(/\/$/,"")+n,s=`grant_type=refresh_token&refresh_token=${encodeURIComponent(t.refreshToken)}`;return{basicAuth:i,url:o,body:s}}function Lr(t){if(!t)throw new Error("Missing required options");if(!t.host)throw new Error("Missing required option (host)");if(!t.projectKey)throw new Error("Missing required option (projectKey)");if(!t.credentials)throw new Error("Missing required option (credentials)");let{clientId:e,clientSecret:r,user:i}=t.credentials,n=t.projectKey;if(!(e&&r&&i))throw new Error("Missing required credentials (clientId, clientSecret, user)");let{username:o,password:s}=i;if(!(o&&s))throw new Error("Missing required user credentials (username, password)");let u=(t.scopes||[]).join(" "),c=u?`&scope=${u}`:"",h=_e.Buffer.from(`${e}:${r}`).toString("base64"),l=t.oauthUri||`/oauth/${n}/customers/token`,d=t.host.replace(/\/$/,"")+l,p=`grant_type=password&username=${encodeURIComponent(o)}&password=${encodeURIComponent(s)}${c}`;return{basicAuth:h,url:d,body:p}}var Dr=N(Ne());async function q(t){let{request:e,httpClient:r,tokenCache:i,tokenCacheKey:n,userOption:o,tokenCacheObject:s,next:u}=t,c=t.url,h=t.body,l=t.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(!o)throw new Error("Missing required options.");let p={...qe({...o,refreshToken:s.refreshToken})};c=p.url,h=p.body,l=p.basicAuth}let d;try{if(d=await Y({url:c,method:"POST",headers:{Authorization:`Basic ${l}`,"Content-Type":"application/x-www-form-urlencoded","Content-Length":Dr.Buffer.byteLength(h).toString()},httpClient:r,body:h}),d.statusCode>=200&&d.statusCode<300){let{access_token:w,expires_in:f,refresh_token:M}=d?.data,R=be(f);return i.set({token:w,expirationTime:R,refreshToken:M}),Promise.resolve(!0)}let p=new Error(d.data.message?d.data.message:JSON.stringify(d.data));return e.reject({...e,headers:{...e.headers},response:{statusCode:d.statusCode||d.data.statusCode,error:{error:p,body:d}}})}catch(p){e.reject({...e,headers:{...e.headers},response:{body:null,statusCode:p.statusCode||0,error:{...d,error:p,body:d}}})}}function re(t){let e=t.tokenCache||U({token:"",expirationTime:-1}),r,i=null,n=F(t);return o=>async s=>{if(s.headers&&(s.headers.Authorization||s.headers.authorization))return o(s);if(r=e.get(n),r&&r.token&&Date.now()<r.expirationTime)return o(E(r.token,s));let u={request:s,tokenCache:e,tokenCacheKey:n,httpClient:t.httpClient||Hr.default,...jr(t),userOption:t,next:o};if(i?await i:(i=q(u),await i,i=null),r=e.get(n),r&&r.token&&Date.now()<r.expirationTime)return o(E(r.token,s))}}var $r=N(de());function te(t){let e=t.tokenCache||U({token:"",expirationTime:-1}),r,i=null,n=F(t);return o=>async s=>{if(s.headers&&(s.headers.Authorization||s.headers.authorization))return o(s);if(r=e.get(n),r&&r.token&&Date.now()<r.expirationTime)return o(E(r.token,s));let u={request:s,tokenCache:e,tokenCacheKey:n,tokenCacheObject:r,httpClient:t.httpClient||$r.default,...ur(t),next:o};if(i?await i:(i=q(u),await i,i=null),r=e.get(n),r&&r.token&&Date.now()<r.expirationTime)return o(E(r.token,s))}}function ie(t,e){return r=>async i=>{if(typeof t!="string")throw new Error("authorization must be a string");let n=e?.force===void 0?!0:e.force;if(!t||i.headers&&(i.headers.Authorization||i.headers.authorization)&&n===!1)return r(i);let o={...i,headers:{...i.headers,Authorization:t}};return r(o)}}var Kr=N(de());function ne(t){let e=t.tokenCache||U({token:"",expirationTime:-1}),r,i=null,n=F(t);return o=>async s=>{if(s.headers&&(s.headers.Authorization||s.headers.authorization))return o(s);let u={request:s,tokenCache:e,tokenCacheKey:n,httpClient:t.httpClient||Kr.default,...Lr(t),userOption:t,next:o};if(i?await i:(i=q(u),await i,i=null),r=e.get(n),r&&r.token&&Date.now()<r.expirationTime)return o(E(r.token,s))}}function oe(t){let e=t.tokenCache||U({token:"",tokenCacheKey:null}),r,i=null,n=F(t);return o=>async s=>{if(s.headers&&(s.headers.Authorization||s.headers.authorization))return o(s);let u={request:s,tokenCache:e,httpClient:t.httpClient||fetch,...qe(t),next:o};if(i?await i:(i=q(u),await i,i=null),r=e.get(n),r&&r.token&&Date.now()<r.expirationTime)return o(E(r.token,s))}}function pe(t){return e=>async r=>{r.concurrent=!0;let i=await e(r);if(i.statusCode==409){let n=i.error?.body?.errors?.[0]?.currentVersion;if(n)return t?r.body=await t(n,r,i):r.body=typeof r.body=="string"?{...JSON.parse(r.body),version:n}:{...r.body,version:n},e({...r,response:i})}return r.continue=!0,delete r.concurrent,e({...r,response:i})}}function fe(t){return e=>r=>{let i={...r,headers:{...r.headers,"X-Correlation-ID":t.generate&&typeof t.generate=="function"?t.generate():Be()}};return e(i)}}function lr(t){return e=>async r=>{let i=await e(r);if(i.error){let{error:n}=i;return{...i,statusCode:n.statusCode||0,headers:n.headers||I({}),error:{...n,body:n.data||n}}}return i}}var Vr=N(zr()),Gr=N(Ne());var z,dr=Ue();async function si({url:t,httpClient:e,clientOptions:r}){let i;if(r.request.continue)return delete r.request.continue,dr.get();let{timeout:n,request:o,abortController:s,maskSensitiveHeaderData:u,includeRequestInErrorResponse:c,includeResponseHeaders:h}=r;try{n&&(i=setTimeout(()=>{s.abort()},n));let l=await Y({url:t,...r,httpClient:e,method:r.method,...r.body?{body:r.body}:{}});if(h||(l.headers=null),l.statusCode>=200&&l.statusCode<300){if(r.method=="HEAD"){let p={body:null,statusCode:l.statusCode,retryCount:l.retryCount,headers:I(l.headers)};return dr.set(p),p}return z={body:l.data,statusCode:l.statusCode,retryCount:l.retryCount,headers:I(l.headers)},z}let d=Ce({message:l?.data?.message||l?.message,statusCode:l.statusCode||l?.data?.statusCode,headers:I(l.headers),method:r.method,body:l.data,retryCount:l.retryCount,...c?{originalRequest:u?$(o):o}:{uri:o.uri}});return z={body:l.data,code:l.statusCode,statusCode:l.statusCode,headers:I(l.headers),error:d},z}catch(l){let d=h?I(l.response?.headers):null,p=l.response?.status||l.response?.data||0,w=l.response?.data?.message,f=Ce({statusCode:p,code:p,status:p,message:w||l.message,headers:d,body:l.response?.data||l,error:l.response?.data,...c?{originalRequest:u?$(o):o}:{uri:o.uri}});return z={body:f,error:f},z}finally{dr.set(z),clearTimeout(i)}}function we(t){Ye(t);let{host:e,credentialsMode:r,httpClient:i,timeout:n,enableRetry:o,retryConfig:s,getAbortController:u,includeOriginalRequest:c,includeRequestInErrorResponse:h=!0,includeResponseHeaders:l=!0,maskSensitiveHeaderData:d,httpClientOptions:p}=t;return w=>async f=>{let M;(n||u)&&(M=(u?u():null)||new Vr.default);let R=e.replace(/\/$/,"")+f.uri,x={...f.headers};Object.prototype.hasOwnProperty.call(x,"Content-Type")||Object.prototype.hasOwnProperty.call(x,"content-type")||(x["Content-Type"]="application/json"),x["Content-Type"]===null&&delete x["Content-Type"];let B=T.HEADERS_CONTENT_TYPES.indexOf(x["Content-Type"])>-1&&typeof f.body=="string"||ce(f.body)?f.body:JSON.stringify(f.body||void 0);B&&(typeof B=="string"||ce(B))&&(x["Content-Length"]=Gr.Buffer.byteLength(B).toString());let b={enableRetry:o,retryConfig:s,request:f,method:f.method,headers:x,includeRequestInErrorResponse:h,maskSensitiveHeaderData:d,includeResponseHeaders:l,...p};r&&(b.credentialsMode=r),M&&(b.signal=M.signal),n&&(b.timeout=n,b.abortController=M),B&&(b.body=B);let g=await si({url:R,clientOptions:b,httpClient:i});if(f.concurrent)return g;let j={...f,includeOriginalRequest:c,maskSensitiveHeaderData:d,response:g};return w(j)}}function me(t){return e=>async r=>{let i=await e(r),n=Object.assign({},i),{loggerFn:o=console.log}=t||{};return o&&typeof o=="function"&&o(i),n}}function ye({concurrency:t=20}){let e=0,r=[],i=o=>{if(e--,r.length&&e<=t){let s=r.shift();return e++,o(s.request)}},n=({request:o})=>r.push({request:o});return o=>s=>{let u={...s,resolve(c){s.resolve(c),i(o)},reject(c){s.reject(c),i(o)}};if(n({request:u}),e<t){e++;let c=r.shift();return o(c.request)}}}var Qr={name:"@commercetools/ts-client",version:"2.1.0-alpha.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",buffer:"^6.0.3","node-fetch":"^2.6.1",uuid:"10.0.0"},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 ge(t){return e=>async r=>{let i=Fe({...t,name:`${t.name?t.name+"/":""}commercetools-sdk-javascript-v3/${Qr.version}`}),n={...r,headers:{...r.headers,"User-Agent":i}};return e(n)}}function ui({middlewares:t}){return t.length===1?t[0]:t.slice().reduce((r,i)=>(...n)=>r(i.apply(null,n)))}var Jr;function Le(t,e,r){if(ke("process",t,{allowedMethods:["GET"]}),typeof e!="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 i={total:Number.POSITIVE_INFINITY,accumulate:!0,...r};return new Promise((n,o)=>{let s,u="";if(t&&t.uri){let[w,f]=t.uri.split("?");s=w,u=f}let h={limit:20,...{...Je(u)}},l=i.total,d=!1,p=async(w,f=[])=>{let M=h.limit<l?h.limit:l,R=Ie({...h,limit:M}),x={sort:"id asc",withTotal:!1,...w?{where:`id > "${w}"`}:{}},B=Ie(x),b={...t,uri:`${s}?${B}&${R}`};try{let g=await V(Jr).execute(b),{results:j,count:L}=g?.body||{};if(!L&&d)return n(f||[]);let xe=await Promise.resolve(e(g)),Q;if(d=!0,i.accumulate&&(Q=f.concat(xe||[])),l-=L,L<h.limit||!l)return n(Q||[]);let D=j[L-1],ae=D&&D.id;p(ae,Q)}catch(g){o(g)}};p()})}function V(t){Jr=t,We(t);let e=!1,r={async resolve(n){let{response:o,includeOriginalRequest:s,maskSensitiveHeaderData:u,...c}=n,{retryCount:h,...l}=o,d={body:null,error:null,reject:n.reject,resolve:n.resolve,...l,...o?.retryCount?{retryCount:o.retryCount}:{},...s?{originalRequest:u?$(c):c}:{}};return d.error&&n.reject(d.error),n.resolve(d),d}},i=ui(t)(r.resolve);return{process:Le,execute(n){return ke("exec",n),new Promise(async(o,s)=>i({reject:s,resolve:o,...n}))}}}var{createAuthMiddlewareForPasswordFlow:li,createAuthMiddlewareForAnonymousSessionFlow:di,createAuthMiddlewareForClientCredentialsFlow:ci,createAuthMiddlewareForRefreshTokenFlow:hi,createAuthMiddlewareForExistingTokenFlow:pi,createCorrelationIdMiddleware:fi,createHttpMiddleware:wi,createLoggerMiddleware:mi,createQueueMiddleware:yi,createUserAgentMiddleware:Yr,createConcurrentModificationMiddleware:gi}=cr,se=class{projectKey;authMiddleware;httpMiddleware;userAgentMiddleware;correlationIdMiddleware;loggerMiddleware;queueMiddleware;concurrentMiddleware;telemetryMiddleware;beforeMiddleware;afterMiddleware;middlewares=[];constructor(){this.userAgentMiddleware=Yr({})}withProjectKey(e){return this.projectKey=e,this}defaultClient(e,r,i,n,o,s){return this.withClientCredentialsFlow({host:i,projectKey:n||this.projectKey,credentials:r,scopes:o}).withHttpMiddleware({host:e,httpClient:s||G.default})}withAuthMiddleware(e){return this.authMiddleware=e,this}withMiddleware(e){return this.middlewares.push(e),this}withClientCredentialsFlow(e){return this.withAuthMiddleware(ci({host:e.host||T.CTP_AUTH_URL,projectKey:e.projectKey||this.projectKey,credentials:{clientId:e.credentials.clientId||null,clientSecret:e.credentials.clientSecret||null},oauthUri:e.oauthUri||null,scopes:e.scopes,httpClient:e.httpClient||G.default,...e}))}withPasswordFlow(e){return this.withAuthMiddleware(li({host:e.host||T.CTP_AUTH_URL,projectKey:e.projectKey||this.projectKey,credentials:{clientId:e.credentials.clientId||null,clientSecret:e.credentials.clientSecret||null,user:{username:e.credentials.user.username||null,password:e.credentials.user.password||null}},httpClient:e.httpClient||G.default,...e}))}withAnonymousSessionFlow(e){return this.withAuthMiddleware(di({host:e.host||T.CTP_AUTH_URL,projectKey:this.projectKey||e.projectKey,credentials:{clientId:e.credentials.clientId||null,clientSecret:e.credentials.clientSecret||null,anonymousId:e.credentials.anonymousId||null},httpClient:e.httpClient||G.default,...e}))}withRefreshTokenFlow(e){return this.withAuthMiddleware(hi({host:e.host||T.CTP_AUTH_URL,projectKey:this.projectKey||e.projectKey,credentials:{clientId:e.credentials.clientId||null,clientSecret:e.credentials.clientSecret||null},httpClient:e.httpClient||G.default,refreshToken:e.refreshToken||null,...e}))}withExistingTokenFlow(e,r){return this.withAuthMiddleware(pi(e,{force:r.force||!0,...r}))}withHttpMiddleware(e){return this.httpMiddleware=wi({host:e.host||T.CTP_API_URL,httpClient:e.httpClient||G.default,...e}),this}withUserAgentMiddleware(e){return this.userAgentMiddleware=Yr(e),this}withQueueMiddleware(e){return this.queueMiddleware=yi({concurrency:e.concurrency||T.CONCURRENCT_REQUEST,...e}),this}withLoggerMiddleware(e){return this.loggerMiddleware=mi(e),this}withCorrelationIdMiddleware(e){return this.correlationIdMiddleware=fi({generate:e?.generate,...e}),this}withConcurrentModificationMiddleware(e){return this.concurrentMiddleware=gi(e?.concurrentModificationHandlerFn),this}withTelemetryMiddleware(e){let{createTelemetryMiddleware:r,...i}=e;return this.withUserAgentMiddleware({customAgent:i?.userAgent||"typescript-sdk-apm-middleware"}),this.telemetryMiddleware=r(i),this}withBeforeExecutionMiddleware(e){let{middleware:r,...i}=e||{};return this.beforeMiddleware=e.middleware(i),this}withAfterExecutionMiddleware(e){let{middleware:r,...i}=e||{};return this.afterMiddleware=e.middleware(i),this}build(){let e=this.middlewares.slice();return this.telemetryMiddleware&&e.push(this.telemetryMiddleware),this.correlationIdMiddleware&&e.push(this.correlationIdMiddleware),this.userAgentMiddleware&&e.push(this.userAgentMiddleware),this.authMiddleware&&e.push(this.authMiddleware),this.beforeMiddleware&&e.push(this.beforeMiddleware),this.queueMiddleware&&e.push(this.queueMiddleware),this.loggerMiddleware&&e.push(this.loggerMiddleware),this.concurrentMiddleware&&e.push(this.concurrentMiddleware),this.httpMiddleware&&e.push(this.httpMiddleware),this.afterMiddleware&&e.push(this.afterMiddleware),V({middlewares:e})}};return tt(xi);})();
/*! Bundled license information:
ieee754/index.js:
(*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)
buffer/index.js:
(*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*)
*/
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);})();

@@ -1,4 +0,3 @@

/// <reference types="node" />
import { Middleware, MiddlewareRequest, MiddlewareResponse } from "../types/types.js";
export default function createConcurrentModificationMiddleware(modifierFunction?: (version: number, request: MiddlewareRequest, response: MiddlewareResponse) => Promise<Record<string, any> | string | Buffer>): Middleware;
export default function createConcurrentModificationMiddleware(modifierFunction?: (version: number, request: MiddlewareRequest, response: MiddlewareResponse) => Promise<Record<string, any> | string | Uint8Array>): Middleware;
//# sourceMappingURL=create-concurrent-modification-middleware.d.ts.map
import AbortController from 'abort-controller'
import { Buffer } from 'buffer/'

@@ -44,3 +43,3 @@ export type Nullable<T> = T | null

queryParams?: VariableMap
body?: Record<string, any> | string | Buffer
body?: Record<string, any> | string | Uint8Array;
response?: ClientResponse

@@ -271,6 +270,6 @@ resolve?: Function;

concurrentModificationHandlerFn?: (
version: number,
request: MiddlewareRequest,
response: MiddlewareResponse
) => Promise<Record<string, any> | string | Buffer>
version: number,
request: MiddlewareRequest,
response: MiddlewareResponse
) => Promise<Record<string, any> | string | Uint8Array>;
}

@@ -298,3 +297,3 @@

credentialsMode?: CredentialsMode;
body?: Record<string, any> | string | Buffer
body?: Record<string, any> | string | Uint8Array;
timeout?: number

@@ -301,0 +300,0 @@ abortController?: AbortController

{
"name": "@commercetools/ts-client",
"version": "2.1.0-alpha.0",
"version": "2.1.0-alpha.1",
"engines": {

@@ -37,7 +37,11 @@ "node": ">=14"

"abort-controller": "3.0.0",
"buffer": "^6.0.3",
"node-fetch": "^2.6.1",
"uuid": "10.0.0"
"node-fetch": "^2.6.1"
},
"files": ["dist", "CHANGELOG.md", "LICENSE", "README.md", "package.json"],
"files": [
"dist",
"CHANGELOG.md",
"LICENSE",
"README.md",
"package.json"
],
"author": "Chukwuemeka Ajima <meeky.ae@gmail.com>",

@@ -63,2 +67,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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc