@commercetools/sdk-client-v2 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @commercetools/sdk-client-v2
2
2
 
3
+ ## 2.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#676](https://github.com/commercetools/commercetools-sdk-typescript/pull/676) [`8b1aecc`](https://github.com/commercetools/commercetools-sdk-typescript/commit/8b1aecce5859248f3a90c8cc856db64d2932b5d5) Thanks [@ajimae](https://github.com/ajimae)! - Add custom logger function
8
+
9
+ - [#679](https://github.com/commercetools/commercetools-sdk-typescript/pull/679) [`b8bc24d`](https://github.com/commercetools/commercetools-sdk-typescript/commit/b8bc24df5db74feef7fb5743b6f24b425d43b738) Thanks [@ajimae](https://github.com/ajimae)! - - Add a before middleware function that runs before the coco api call is initiated
10
+ - Add an after middleware function that runs after the coco api call is done executing
11
+
12
+ ## 2.4.1
13
+
14
+ ### Patch Changes
15
+
16
+ - [#671](https://github.com/commercetools/commercetools-sdk-typescript/pull/671) [`344fd2d`](https://github.com/commercetools/commercetools-sdk-typescript/commit/344fd2d105f51a65a8a93f247ea9ea8f1a09b095) Thanks [@ajimae](https://github.com/ajimae)! - Fix malformed uri error due to wrong object to uri serialization.
17
+
3
18
  ## 2.4.0
4
19
 
5
20
  ### Minor Changes
@@ -22,7 +22,7 @@ function toPrimitive(t, r) {
22
22
 
23
23
  function toPropertyKey(t) {
24
24
  var i = toPrimitive(t, "string");
25
- return "symbol" == typeof i ? i : String(i);
25
+ return "symbol" == typeof i ? i : i + "";
26
26
  }
27
27
 
28
28
  function _defineProperty(obj, key, value) {
@@ -40,6 +40,14 @@ function _defineProperty(obj, key, value) {
40
40
  return obj;
41
41
  }
42
42
 
43
+ function isDefined(value) {
44
+ return typeof value !== 'undefined' && value !== null;
45
+ }
46
+ function clean(value) {
47
+ if (!isDefined(value)) return '';
48
+ if (typeof value == 'string') return value;
49
+ return Object.fromEntries(Object.entries(value).filter(([_, value]) => ![null, undefined, ''].includes(value)));
50
+ }
43
51
  function urlParser(url) {
44
52
  const object = {};
45
53
  const data = new URLSearchParams(url);
@@ -52,9 +60,24 @@ function urlParser(url) {
52
60
  }
53
61
  return object;
54
62
  }
63
+ function urlStringifier(object) {
64
+ object = clean(object);
65
+ if (!object) return '';
66
+ const params = new URLSearchParams(object);
67
+ for (const [key, value] of Object.entries(object)) {
68
+ if (Array.isArray(value)) {
69
+ params.delete(key);
70
+ value.filter(isDefined).forEach(v => params.append(key, v));
71
+ }
72
+ }
73
+ return params.toString();
74
+ }
55
75
  function parseURLString(url, parser = urlParser) {
56
76
  return parser(url);
57
77
  }
78
+ function stringifyURLString(object, stringifier = urlStringifier) {
79
+ return stringifier(object);
80
+ }
58
81
 
59
82
  var METHODS = ['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'];
60
83
 
@@ -115,10 +138,10 @@ function process$1(request, fn, processOpt) {
115
138
  // Use the lesser value between limit and itemsToGet in query
116
139
  const limit = query.limit < itemsToGet ? query.limit : itemsToGet;
117
140
  // const originalQueryString = qs.stringify({ ...query, limit }, qsOptions)
118
- const originalQueryString = new URLSearchParams({
141
+ const originalQueryString = stringifyURLString({
119
142
  ...query,
120
143
  limit
121
- }).toString();
144
+ });
122
145
  const enhancedQuery = {
123
146
  sort: opt.sort || 'id asc',
124
147
  withTotal: false,
@@ -126,8 +149,9 @@ function process$1(request, fn, processOpt) {
126
149
  where: `id > "${lastId}"`
127
150
  } : {})
128
151
  };
152
+
129
153
  // const enhancedQueryString = qs.stringify(enhancedQuery, qsOptions)
130
- const enhancedQueryString = new URLSearchParams(enhancedQuery).toString();
154
+ const enhancedQueryString = stringifyURLString(enhancedQuery);
131
155
  const enhancedRequest = {
132
156
  ...request,
133
157
  uri: `${_path}?${enhancedQueryString}&${originalQueryString}`
@@ -1044,7 +1068,7 @@ function createQueueMiddleware({
1044
1068
 
1045
1069
  var packageJson = {
1046
1070
  name: "@commercetools/sdk-client-v2",
1047
- version: "2.4.0",
1071
+ version: "2.5.0",
1048
1072
  engines: {
1049
1073
  node: ">=14"
1050
1074
  },
@@ -1094,8 +1118,8 @@ var packageJson = {
1094
1118
  devDependencies: {
1095
1119
  "abort-controller": "3.0.0",
1096
1120
  "common-tags": "1.8.2",
1097
- dotenv: "16.3.1",
1098
- jest: "29.6.2",
1121
+ dotenv: "16.4.5",
1122
+ jest: "29.7.0",
1099
1123
  nock: "12.0.3",
1100
1124
  "organize-imports-cli": "0.10.0"
1101
1125
  },
@@ -1179,6 +1203,8 @@ class ClientBuilder {
1179
1203
  _defineProperty(this, "loggerMiddleware", void 0);
1180
1204
  _defineProperty(this, "queueMiddleware", void 0);
1181
1205
  _defineProperty(this, "telemetryMiddleware", void 0);
1206
+ _defineProperty(this, "beforeMiddleware", void 0);
1207
+ _defineProperty(this, "afterMiddleware", void 0);
1182
1208
  _defineProperty(this, "middlewares", []);
1183
1209
  }
1184
1210
  withProjectKey(key) {
@@ -1284,8 +1310,12 @@ class ClientBuilder {
1284
1310
  });
1285
1311
  return this;
1286
1312
  }
1287
- withLoggerMiddleware() {
1288
- this.loggerMiddleware = createLoggerMiddleware();
1313
+ withLoggerMiddleware(options) {
1314
+ const {
1315
+ logger,
1316
+ ...rest
1317
+ } = options || {};
1318
+ this.loggerMiddleware = typeof options?.logger == 'function' && options.logger(rest) || createLoggerMiddleware();
1289
1319
  return this;
1290
1320
  }
1291
1321
  withCorrelationIdMiddleware(options) {
@@ -1306,14 +1336,32 @@ class ClientBuilder {
1306
1336
  this.telemetryMiddleware = createTelemetryMiddleware(rest);
1307
1337
  return this;
1308
1338
  }
1339
+ withBeforeExecutionMiddleware(options) {
1340
+ const {
1341
+ middleware,
1342
+ ...rest
1343
+ } = options || {};
1344
+ this.beforeMiddleware = options.middleware(rest);
1345
+ return this;
1346
+ }
1347
+ withAfterExecutionMiddleware(options) {
1348
+ const {
1349
+ middleware,
1350
+ ...rest
1351
+ } = options || {};
1352
+ this.afterMiddleware = options.middleware(rest);
1353
+ return this;
1354
+ }
1309
1355
  build() {
1310
1356
  const middlewares = this.middlewares.slice();
1311
1357
  if (this.telemetryMiddleware) middlewares.push(this.telemetryMiddleware);
1312
1358
  if (this.correlationIdMiddleware) middlewares.push(this.correlationIdMiddleware);
1313
1359
  if (this.userAgentMiddleware) middlewares.push(this.userAgentMiddleware);
1314
1360
  if (this.authMiddleware) middlewares.push(this.authMiddleware);
1361
+ if (this.beforeMiddleware) middlewares.push(this.beforeMiddleware);
1315
1362
  if (this.queueMiddleware) middlewares.push(this.queueMiddleware);
1316
1363
  if (this.httpMiddleware) middlewares.push(this.httpMiddleware);
1364
+ if (this.afterMiddleware) middlewares.push(this.afterMiddleware);
1317
1365
  if (this.loggerMiddleware) middlewares.push(this.loggerMiddleware);
1318
1366
  return createClient({
1319
1367
  middlewares
@@ -14,7 +14,7 @@ function toPrimitive(t, r) {
14
14
 
15
15
  function toPropertyKey(t) {
16
16
  var i = toPrimitive(t, "string");
17
- return "symbol" == typeof i ? i : String(i);
17
+ return "symbol" == typeof i ? i : i + "";
18
18
  }
19
19
 
20
20
  function _defineProperty(obj, key, value) {
@@ -32,6 +32,14 @@ function _defineProperty(obj, key, value) {
32
32
  return obj;
33
33
  }
34
34
 
35
+ function isDefined(value) {
36
+ return typeof value !== 'undefined' && value !== null;
37
+ }
38
+ function clean(value) {
39
+ if (!isDefined(value)) return '';
40
+ if (typeof value == 'string') return value;
41
+ return Object.fromEntries(Object.entries(value).filter(([_, value]) => ![null, undefined, ''].includes(value)));
42
+ }
35
43
  function urlParser(url) {
36
44
  const object = {};
37
45
  const data = new URLSearchParams(url);
@@ -44,9 +52,24 @@ function urlParser(url) {
44
52
  }
45
53
  return object;
46
54
  }
55
+ function urlStringifier(object) {
56
+ object = clean(object);
57
+ if (!object) return '';
58
+ const params = new URLSearchParams(object);
59
+ for (const [key, value] of Object.entries(object)) {
60
+ if (Array.isArray(value)) {
61
+ params.delete(key);
62
+ value.filter(isDefined).forEach(v => params.append(key, v));
63
+ }
64
+ }
65
+ return params.toString();
66
+ }
47
67
  function parseURLString(url, parser = urlParser) {
48
68
  return parser(url);
49
69
  }
70
+ function stringifyURLString(object, stringifier = urlStringifier) {
71
+ return stringifier(object);
72
+ }
50
73
 
51
74
  var METHODS = ['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'];
52
75
 
@@ -107,10 +130,10 @@ function process$1(request, fn, processOpt) {
107
130
  // Use the lesser value between limit and itemsToGet in query
108
131
  const limit = query.limit < itemsToGet ? query.limit : itemsToGet;
109
132
  // const originalQueryString = qs.stringify({ ...query, limit }, qsOptions)
110
- const originalQueryString = new URLSearchParams({
133
+ const originalQueryString = stringifyURLString({
111
134
  ...query,
112
135
  limit
113
- }).toString();
136
+ });
114
137
  const enhancedQuery = {
115
138
  sort: opt.sort || 'id asc',
116
139
  withTotal: false,
@@ -118,8 +141,9 @@ function process$1(request, fn, processOpt) {
118
141
  where: `id > "${lastId}"`
119
142
  } : {})
120
143
  };
144
+
121
145
  // const enhancedQueryString = qs.stringify(enhancedQuery, qsOptions)
122
- const enhancedQueryString = new URLSearchParams(enhancedQuery).toString();
146
+ const enhancedQueryString = stringifyURLString(enhancedQuery);
123
147
  const enhancedRequest = {
124
148
  ...request,
125
149
  uri: `${_path}?${enhancedQueryString}&${originalQueryString}`
@@ -1036,7 +1060,7 @@ function createQueueMiddleware({
1036
1060
 
1037
1061
  var packageJson = {
1038
1062
  name: "@commercetools/sdk-client-v2",
1039
- version: "2.4.0",
1063
+ version: "2.5.0",
1040
1064
  engines: {
1041
1065
  node: ">=14"
1042
1066
  },
@@ -1086,8 +1110,8 @@ var packageJson = {
1086
1110
  devDependencies: {
1087
1111
  "abort-controller": "3.0.0",
1088
1112
  "common-tags": "1.8.2",
1089
- dotenv: "16.3.1",
1090
- jest: "29.6.2",
1113
+ dotenv: "16.4.5",
1114
+ jest: "29.7.0",
1091
1115
  nock: "12.0.3",
1092
1116
  "organize-imports-cli": "0.10.0"
1093
1117
  },
@@ -1171,6 +1195,8 @@ class ClientBuilder {
1171
1195
  _defineProperty(this, "loggerMiddleware", void 0);
1172
1196
  _defineProperty(this, "queueMiddleware", void 0);
1173
1197
  _defineProperty(this, "telemetryMiddleware", void 0);
1198
+ _defineProperty(this, "beforeMiddleware", void 0);
1199
+ _defineProperty(this, "afterMiddleware", void 0);
1174
1200
  _defineProperty(this, "middlewares", []);
1175
1201
  }
1176
1202
  withProjectKey(key) {
@@ -1276,8 +1302,12 @@ class ClientBuilder {
1276
1302
  });
1277
1303
  return this;
1278
1304
  }
1279
- withLoggerMiddleware() {
1280
- this.loggerMiddleware = createLoggerMiddleware();
1305
+ withLoggerMiddleware(options) {
1306
+ const {
1307
+ logger,
1308
+ ...rest
1309
+ } = options || {};
1310
+ this.loggerMiddleware = typeof options?.logger == 'function' && options.logger(rest) || createLoggerMiddleware();
1281
1311
  return this;
1282
1312
  }
1283
1313
  withCorrelationIdMiddleware(options) {
@@ -1298,14 +1328,32 @@ class ClientBuilder {
1298
1328
  this.telemetryMiddleware = createTelemetryMiddleware(rest);
1299
1329
  return this;
1300
1330
  }
1331
+ withBeforeExecutionMiddleware(options) {
1332
+ const {
1333
+ middleware,
1334
+ ...rest
1335
+ } = options || {};
1336
+ this.beforeMiddleware = options.middleware(rest);
1337
+ return this;
1338
+ }
1339
+ withAfterExecutionMiddleware(options) {
1340
+ const {
1341
+ middleware,
1342
+ ...rest
1343
+ } = options || {};
1344
+ this.afterMiddleware = options.middleware(rest);
1345
+ return this;
1346
+ }
1301
1347
  build() {
1302
1348
  const middlewares = this.middlewares.slice();
1303
1349
  if (this.telemetryMiddleware) middlewares.push(this.telemetryMiddleware);
1304
1350
  if (this.correlationIdMiddleware) middlewares.push(this.correlationIdMiddleware);
1305
1351
  if (this.userAgentMiddleware) middlewares.push(this.userAgentMiddleware);
1306
1352
  if (this.authMiddleware) middlewares.push(this.authMiddleware);
1353
+ if (this.beforeMiddleware) middlewares.push(this.beforeMiddleware);
1307
1354
  if (this.queueMiddleware) middlewares.push(this.queueMiddleware);
1308
1355
  if (this.httpMiddleware) middlewares.push(this.httpMiddleware);
1356
+ if (this.afterMiddleware) middlewares.push(this.afterMiddleware);
1309
1357
  if (this.loggerMiddleware) middlewares.push(this.loggerMiddleware);
1310
1358
  return createClient({
1311
1359
  middlewares
@@ -1,2 +1,2 @@
1
1
  export * from "./declarations/src/index";
2
- //# sourceMappingURL=commercetools-sdk-client-v2.cjs.d.ts.map
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVyY2V0b29scy1zZGstY2xpZW50LXYyLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi9kZWNsYXJhdGlvbnMvc3JjL2luZGV4LmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
@@ -22,7 +22,7 @@ function toPrimitive(t, r) {
22
22
 
23
23
  function toPropertyKey(t) {
24
24
  var i = toPrimitive(t, "string");
25
- return "symbol" == typeof i ? i : String(i);
25
+ return "symbol" == typeof i ? i : i + "";
26
26
  }
27
27
 
28
28
  function _defineProperty(obj, key, value) {
@@ -40,6 +40,14 @@ function _defineProperty(obj, key, value) {
40
40
  return obj;
41
41
  }
42
42
 
43
+ function isDefined(value) {
44
+ return typeof value !== 'undefined' && value !== null;
45
+ }
46
+ function clean(value) {
47
+ if (!isDefined(value)) return '';
48
+ if (typeof value == 'string') return value;
49
+ return Object.fromEntries(Object.entries(value).filter(([_, value]) => ![null, undefined, ''].includes(value)));
50
+ }
43
51
  function urlParser(url) {
44
52
  const object = {};
45
53
  const data = new URLSearchParams(url);
@@ -52,9 +60,24 @@ function urlParser(url) {
52
60
  }
53
61
  return object;
54
62
  }
63
+ function urlStringifier(object) {
64
+ object = clean(object);
65
+ if (!object) return '';
66
+ const params = new URLSearchParams(object);
67
+ for (const [key, value] of Object.entries(object)) {
68
+ if (Array.isArray(value)) {
69
+ params.delete(key);
70
+ value.filter(isDefined).forEach(v => params.append(key, v));
71
+ }
72
+ }
73
+ return params.toString();
74
+ }
55
75
  function parseURLString(url, parser = urlParser) {
56
76
  return parser(url);
57
77
  }
78
+ function stringifyURLString(object, stringifier = urlStringifier) {
79
+ return stringifier(object);
80
+ }
58
81
 
59
82
  var METHODS = ['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'];
60
83
 
@@ -115,10 +138,10 @@ function process$1(request, fn, processOpt) {
115
138
  // Use the lesser value between limit and itemsToGet in query
116
139
  const limit = query.limit < itemsToGet ? query.limit : itemsToGet;
117
140
  // const originalQueryString = qs.stringify({ ...query, limit }, qsOptions)
118
- const originalQueryString = new URLSearchParams({
141
+ const originalQueryString = stringifyURLString({
119
142
  ...query,
120
143
  limit
121
- }).toString();
144
+ });
122
145
  const enhancedQuery = {
123
146
  sort: opt.sort || 'id asc',
124
147
  withTotal: false,
@@ -126,8 +149,9 @@ function process$1(request, fn, processOpt) {
126
149
  where: `id > "${lastId}"`
127
150
  } : {})
128
151
  };
152
+
129
153
  // const enhancedQueryString = qs.stringify(enhancedQuery, qsOptions)
130
- const enhancedQueryString = new URLSearchParams(enhancedQuery).toString();
154
+ const enhancedQueryString = stringifyURLString(enhancedQuery);
131
155
  const enhancedRequest = {
132
156
  ...request,
133
157
  uri: `${_path}?${enhancedQueryString}&${originalQueryString}`
@@ -1044,7 +1068,7 @@ function createQueueMiddleware({
1044
1068
 
1045
1069
  var packageJson = {
1046
1070
  name: "@commercetools/sdk-client-v2",
1047
- version: "2.4.0",
1071
+ version: "2.5.0",
1048
1072
  engines: {
1049
1073
  node: ">=14"
1050
1074
  },
@@ -1094,8 +1118,8 @@ var packageJson = {
1094
1118
  devDependencies: {
1095
1119
  "abort-controller": "3.0.0",
1096
1120
  "common-tags": "1.8.2",
1097
- dotenv: "16.3.1",
1098
- jest: "29.6.2",
1121
+ dotenv: "16.4.5",
1122
+ jest: "29.7.0",
1099
1123
  nock: "12.0.3",
1100
1124
  "organize-imports-cli": "0.10.0"
1101
1125
  },
@@ -1179,6 +1203,8 @@ class ClientBuilder {
1179
1203
  _defineProperty(this, "loggerMiddleware", void 0);
1180
1204
  _defineProperty(this, "queueMiddleware", void 0);
1181
1205
  _defineProperty(this, "telemetryMiddleware", void 0);
1206
+ _defineProperty(this, "beforeMiddleware", void 0);
1207
+ _defineProperty(this, "afterMiddleware", void 0);
1182
1208
  _defineProperty(this, "middlewares", []);
1183
1209
  }
1184
1210
  withProjectKey(key) {
@@ -1284,8 +1310,12 @@ class ClientBuilder {
1284
1310
  });
1285
1311
  return this;
1286
1312
  }
1287
- withLoggerMiddleware() {
1288
- this.loggerMiddleware = createLoggerMiddleware();
1313
+ withLoggerMiddleware(options) {
1314
+ const {
1315
+ logger,
1316
+ ...rest
1317
+ } = options || {};
1318
+ this.loggerMiddleware = typeof options?.logger == 'function' && options.logger(rest) || createLoggerMiddleware();
1289
1319
  return this;
1290
1320
  }
1291
1321
  withCorrelationIdMiddleware(options) {
@@ -1306,14 +1336,32 @@ class ClientBuilder {
1306
1336
  this.telemetryMiddleware = createTelemetryMiddleware(rest);
1307
1337
  return this;
1308
1338
  }
1339
+ withBeforeExecutionMiddleware(options) {
1340
+ const {
1341
+ middleware,
1342
+ ...rest
1343
+ } = options || {};
1344
+ this.beforeMiddleware = options.middleware(rest);
1345
+ return this;
1346
+ }
1347
+ withAfterExecutionMiddleware(options) {
1348
+ const {
1349
+ middleware,
1350
+ ...rest
1351
+ } = options || {};
1352
+ this.afterMiddleware = options.middleware(rest);
1353
+ return this;
1354
+ }
1309
1355
  build() {
1310
1356
  const middlewares = this.middlewares.slice();
1311
1357
  if (this.telemetryMiddleware) middlewares.push(this.telemetryMiddleware);
1312
1358
  if (this.correlationIdMiddleware) middlewares.push(this.correlationIdMiddleware);
1313
1359
  if (this.userAgentMiddleware) middlewares.push(this.userAgentMiddleware);
1314
1360
  if (this.authMiddleware) middlewares.push(this.authMiddleware);
1361
+ if (this.beforeMiddleware) middlewares.push(this.beforeMiddleware);
1315
1362
  if (this.queueMiddleware) middlewares.push(this.queueMiddleware);
1316
1363
  if (this.httpMiddleware) middlewares.push(this.httpMiddleware);
1364
+ if (this.afterMiddleware) middlewares.push(this.afterMiddleware);
1317
1365
  if (this.loggerMiddleware) middlewares.push(this.loggerMiddleware);
1318
1366
  return createClient({
1319
1367
  middlewares
@@ -22,7 +22,7 @@ function toPrimitive(t, r) {
22
22
 
23
23
  function toPropertyKey(t) {
24
24
  var i = toPrimitive(t, "string");
25
- return "symbol" == typeof i ? i : String(i);
25
+ return "symbol" == typeof i ? i : i + "";
26
26
  }
27
27
 
28
28
  function _defineProperty(obj, key, value) {
@@ -40,6 +40,14 @@ function _defineProperty(obj, key, value) {
40
40
  return obj;
41
41
  }
42
42
 
43
+ function isDefined(value) {
44
+ return typeof value !== 'undefined' && value !== null;
45
+ }
46
+ function clean(value) {
47
+ if (!isDefined(value)) return '';
48
+ if (typeof value == 'string') return value;
49
+ return Object.fromEntries(Object.entries(value).filter(([_, value]) => ![null, undefined, ''].includes(value)));
50
+ }
43
51
  function urlParser(url) {
44
52
  const object = {};
45
53
  const data = new URLSearchParams(url);
@@ -52,9 +60,24 @@ function urlParser(url) {
52
60
  }
53
61
  return object;
54
62
  }
63
+ function urlStringifier(object) {
64
+ object = clean(object);
65
+ if (!object) return '';
66
+ const params = new URLSearchParams(object);
67
+ for (const [key, value] of Object.entries(object)) {
68
+ if (Array.isArray(value)) {
69
+ params.delete(key);
70
+ value.filter(isDefined).forEach(v => params.append(key, v));
71
+ }
72
+ }
73
+ return params.toString();
74
+ }
55
75
  function parseURLString(url, parser = urlParser) {
56
76
  return parser(url);
57
77
  }
78
+ function stringifyURLString(object, stringifier = urlStringifier) {
79
+ return stringifier(object);
80
+ }
58
81
 
59
82
  var METHODS = ['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'];
60
83
 
@@ -115,10 +138,10 @@ function process$1(request, fn, processOpt) {
115
138
  // Use the lesser value between limit and itemsToGet in query
116
139
  const limit = query.limit < itemsToGet ? query.limit : itemsToGet;
117
140
  // const originalQueryString = qs.stringify({ ...query, limit }, qsOptions)
118
- const originalQueryString = new URLSearchParams({
141
+ const originalQueryString = stringifyURLString({
119
142
  ...query,
120
143
  limit
121
- }).toString();
144
+ });
122
145
  const enhancedQuery = {
123
146
  sort: opt.sort || 'id asc',
124
147
  withTotal: false,
@@ -126,8 +149,9 @@ function process$1(request, fn, processOpt) {
126
149
  where: `id > "${lastId}"`
127
150
  } : {})
128
151
  };
152
+
129
153
  // const enhancedQueryString = qs.stringify(enhancedQuery, qsOptions)
130
- const enhancedQueryString = new URLSearchParams(enhancedQuery).toString();
154
+ const enhancedQueryString = stringifyURLString(enhancedQuery);
131
155
  const enhancedRequest = {
132
156
  ...request,
133
157
  uri: `${_path}?${enhancedQueryString}&${originalQueryString}`
@@ -1044,7 +1068,7 @@ function createQueueMiddleware({
1044
1068
 
1045
1069
  var packageJson = {
1046
1070
  name: "@commercetools/sdk-client-v2",
1047
- version: "2.4.0",
1071
+ version: "2.5.0",
1048
1072
  engines: {
1049
1073
  node: ">=14"
1050
1074
  },
@@ -1094,8 +1118,8 @@ var packageJson = {
1094
1118
  devDependencies: {
1095
1119
  "abort-controller": "3.0.0",
1096
1120
  "common-tags": "1.8.2",
1097
- dotenv: "16.3.1",
1098
- jest: "29.6.2",
1121
+ dotenv: "16.4.5",
1122
+ jest: "29.7.0",
1099
1123
  nock: "12.0.3",
1100
1124
  "organize-imports-cli": "0.10.0"
1101
1125
  },
@@ -1179,6 +1203,8 @@ class ClientBuilder {
1179
1203
  _defineProperty(this, "loggerMiddleware", void 0);
1180
1204
  _defineProperty(this, "queueMiddleware", void 0);
1181
1205
  _defineProperty(this, "telemetryMiddleware", void 0);
1206
+ _defineProperty(this, "beforeMiddleware", void 0);
1207
+ _defineProperty(this, "afterMiddleware", void 0);
1182
1208
  _defineProperty(this, "middlewares", []);
1183
1209
  }
1184
1210
  withProjectKey(key) {
@@ -1284,8 +1310,12 @@ class ClientBuilder {
1284
1310
  });
1285
1311
  return this;
1286
1312
  }
1287
- withLoggerMiddleware() {
1288
- this.loggerMiddleware = createLoggerMiddleware();
1313
+ withLoggerMiddleware(options) {
1314
+ const {
1315
+ logger,
1316
+ ...rest
1317
+ } = options || {};
1318
+ this.loggerMiddleware = typeof options?.logger == 'function' && options.logger(rest) || createLoggerMiddleware();
1289
1319
  return this;
1290
1320
  }
1291
1321
  withCorrelationIdMiddleware(options) {
@@ -1306,14 +1336,32 @@ class ClientBuilder {
1306
1336
  this.telemetryMiddleware = createTelemetryMiddleware(rest);
1307
1337
  return this;
1308
1338
  }
1339
+ withBeforeExecutionMiddleware(options) {
1340
+ const {
1341
+ middleware,
1342
+ ...rest
1343
+ } = options || {};
1344
+ this.beforeMiddleware = options.middleware(rest);
1345
+ return this;
1346
+ }
1347
+ withAfterExecutionMiddleware(options) {
1348
+ const {
1349
+ middleware,
1350
+ ...rest
1351
+ } = options || {};
1352
+ this.afterMiddleware = options.middleware(rest);
1353
+ return this;
1354
+ }
1309
1355
  build() {
1310
1356
  const middlewares = this.middlewares.slice();
1311
1357
  if (this.telemetryMiddleware) middlewares.push(this.telemetryMiddleware);
1312
1358
  if (this.correlationIdMiddleware) middlewares.push(this.correlationIdMiddleware);
1313
1359
  if (this.userAgentMiddleware) middlewares.push(this.userAgentMiddleware);
1314
1360
  if (this.authMiddleware) middlewares.push(this.authMiddleware);
1361
+ if (this.beforeMiddleware) middlewares.push(this.beforeMiddleware);
1315
1362
  if (this.queueMiddleware) middlewares.push(this.queueMiddleware);
1316
1363
  if (this.httpMiddleware) middlewares.push(this.httpMiddleware);
1364
+ if (this.afterMiddleware) middlewares.push(this.afterMiddleware);
1317
1365
  if (this.loggerMiddleware) middlewares.push(this.loggerMiddleware);
1318
1366
  return createClient({
1319
1367
  middlewares
@@ -14,7 +14,7 @@ function toPrimitive(t, r) {
14
14
 
15
15
  function toPropertyKey(t) {
16
16
  var i = toPrimitive(t, "string");
17
- return "symbol" == typeof i ? i : String(i);
17
+ return "symbol" == typeof i ? i : i + "";
18
18
  }
19
19
 
20
20
  function _defineProperty(obj, key, value) {
@@ -32,6 +32,14 @@ function _defineProperty(obj, key, value) {
32
32
  return obj;
33
33
  }
34
34
 
35
+ function isDefined(value) {
36
+ return typeof value !== 'undefined' && value !== null;
37
+ }
38
+ function clean(value) {
39
+ if (!isDefined(value)) return '';
40
+ if (typeof value == 'string') return value;
41
+ return Object.fromEntries(Object.entries(value).filter(([_, value]) => ![null, undefined, ''].includes(value)));
42
+ }
35
43
  function urlParser(url) {
36
44
  const object = {};
37
45
  const data = new URLSearchParams(url);
@@ -44,9 +52,24 @@ function urlParser(url) {
44
52
  }
45
53
  return object;
46
54
  }
55
+ function urlStringifier(object) {
56
+ object = clean(object);
57
+ if (!object) return '';
58
+ const params = new URLSearchParams(object);
59
+ for (const [key, value] of Object.entries(object)) {
60
+ if (Array.isArray(value)) {
61
+ params.delete(key);
62
+ value.filter(isDefined).forEach(v => params.append(key, v));
63
+ }
64
+ }
65
+ return params.toString();
66
+ }
47
67
  function parseURLString(url, parser = urlParser) {
48
68
  return parser(url);
49
69
  }
70
+ function stringifyURLString(object, stringifier = urlStringifier) {
71
+ return stringifier(object);
72
+ }
50
73
 
51
74
  var METHODS = ['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'];
52
75
 
@@ -107,10 +130,10 @@ function process$1(request, fn, processOpt) {
107
130
  // Use the lesser value between limit and itemsToGet in query
108
131
  const limit = query.limit < itemsToGet ? query.limit : itemsToGet;
109
132
  // const originalQueryString = qs.stringify({ ...query, limit }, qsOptions)
110
- const originalQueryString = new URLSearchParams({
133
+ const originalQueryString = stringifyURLString({
111
134
  ...query,
112
135
  limit
113
- }).toString();
136
+ });
114
137
  const enhancedQuery = {
115
138
  sort: opt.sort || 'id asc',
116
139
  withTotal: false,
@@ -118,8 +141,9 @@ function process$1(request, fn, processOpt) {
118
141
  where: `id > "${lastId}"`
119
142
  } : {})
120
143
  };
144
+
121
145
  // const enhancedQueryString = qs.stringify(enhancedQuery, qsOptions)
122
- const enhancedQueryString = new URLSearchParams(enhancedQuery).toString();
146
+ const enhancedQueryString = stringifyURLString(enhancedQuery);
123
147
  const enhancedRequest = {
124
148
  ...request,
125
149
  uri: `${_path}?${enhancedQueryString}&${originalQueryString}`
@@ -1036,7 +1060,7 @@ function createQueueMiddleware({
1036
1060
 
1037
1061
  var packageJson = {
1038
1062
  name: "@commercetools/sdk-client-v2",
1039
- version: "2.4.0",
1063
+ version: "2.5.0",
1040
1064
  engines: {
1041
1065
  node: ">=14"
1042
1066
  },
@@ -1086,8 +1110,8 @@ var packageJson = {
1086
1110
  devDependencies: {
1087
1111
  "abort-controller": "3.0.0",
1088
1112
  "common-tags": "1.8.2",
1089
- dotenv: "16.3.1",
1090
- jest: "29.6.2",
1113
+ dotenv: "16.4.5",
1114
+ jest: "29.7.0",
1091
1115
  nock: "12.0.3",
1092
1116
  "organize-imports-cli": "0.10.0"
1093
1117
  },
@@ -1171,6 +1195,8 @@ class ClientBuilder {
1171
1195
  _defineProperty(this, "loggerMiddleware", void 0);
1172
1196
  _defineProperty(this, "queueMiddleware", void 0);
1173
1197
  _defineProperty(this, "telemetryMiddleware", void 0);
1198
+ _defineProperty(this, "beforeMiddleware", void 0);
1199
+ _defineProperty(this, "afterMiddleware", void 0);
1174
1200
  _defineProperty(this, "middlewares", []);
1175
1201
  }
1176
1202
  withProjectKey(key) {
@@ -1276,8 +1302,12 @@ class ClientBuilder {
1276
1302
  });
1277
1303
  return this;
1278
1304
  }
1279
- withLoggerMiddleware() {
1280
- this.loggerMiddleware = createLoggerMiddleware();
1305
+ withLoggerMiddleware(options) {
1306
+ const {
1307
+ logger,
1308
+ ...rest
1309
+ } = options || {};
1310
+ this.loggerMiddleware = typeof options?.logger == 'function' && options.logger(rest) || createLoggerMiddleware();
1281
1311
  return this;
1282
1312
  }
1283
1313
  withCorrelationIdMiddleware(options) {
@@ -1298,14 +1328,32 @@ class ClientBuilder {
1298
1328
  this.telemetryMiddleware = createTelemetryMiddleware(rest);
1299
1329
  return this;
1300
1330
  }
1331
+ withBeforeExecutionMiddleware(options) {
1332
+ const {
1333
+ middleware,
1334
+ ...rest
1335
+ } = options || {};
1336
+ this.beforeMiddleware = options.middleware(rest);
1337
+ return this;
1338
+ }
1339
+ withAfterExecutionMiddleware(options) {
1340
+ const {
1341
+ middleware,
1342
+ ...rest
1343
+ } = options || {};
1344
+ this.afterMiddleware = options.middleware(rest);
1345
+ return this;
1346
+ }
1301
1347
  build() {
1302
1348
  const middlewares = this.middlewares.slice();
1303
1349
  if (this.telemetryMiddleware) middlewares.push(this.telemetryMiddleware);
1304
1350
  if (this.correlationIdMiddleware) middlewares.push(this.correlationIdMiddleware);
1305
1351
  if (this.userAgentMiddleware) middlewares.push(this.userAgentMiddleware);
1306
1352
  if (this.authMiddleware) middlewares.push(this.authMiddleware);
1353
+ if (this.beforeMiddleware) middlewares.push(this.beforeMiddleware);
1307
1354
  if (this.queueMiddleware) middlewares.push(this.queueMiddleware);
1308
1355
  if (this.httpMiddleware) middlewares.push(this.httpMiddleware);
1356
+ if (this.afterMiddleware) middlewares.push(this.afterMiddleware);
1309
1357
  if (this.loggerMiddleware) middlewares.push(this.loggerMiddleware);
1310
1358
  return createClient({
1311
1359
  middlewares
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["@commercetools/sdk-client-v2"]=t():e["@commercetools/sdk-client-v2"]=t()}(self,(()=>(()=>{var e={146:()=>{},830:()=>{},33:()=>{},633:()=>{},854:()=>{},435:(e,t,r)=>{"use strict";r.d(t,{A:()=>O});var n=r(33),o=r.n(n),i=r(822),a=r(571),s=r(241),c=r(901),u=r(646),l=r(726),h=r(510),d=r(650),f=r(345),p=r(412),y=r(15),w=function(){return w=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},w.apply(this,arguments)},v=u.A,g=a.A,m=s.A,b=l.A,A=c.A;const O=function(){function e(){this.middlewares=[]}return e.prototype.withProjectKey=function(e){return this.projectKey=e,this},e.prototype.defaultClient=function(e,t,r,n){return this.withClientCredentialsFlow({host:r,projectKey:n||this.projectKey,credentials:t}).withHttpMiddleware({host:e,fetch:o()}).withLoggerMiddleware().withUserAgentMiddleware()},e.prototype.withAuthMiddleware=function(e){return this.authMiddleware=e,this},e.prototype.withMiddleware=function(e){return this.middlewares.push(e),this},e.prototype.withClientCredentialsFlow=function(e){return this.withAuthMiddleware(m(w({host:e.host||"https://auth.europe-west1.gcp.commercetools.com",projectKey:e.projectKey||this.projectKey,credentials:{clientId:e.credentials.clientId||"",clientSecret:e.credentials.clientSecret||""},oauthUri:e.oauthUri||"",scopes:e.scopes,fetch:e.fetch||o()},e)))},e.prototype.withPasswordFlow=function(e){return this.withAuthMiddleware(v(w({host:e.host||"https://auth.europe-west1.gcp.commercetools.com",projectKey:e.projectKey||this.projectKey,credentials:{clientId:e.credentials.clientId||"",clientSecret:e.credentials.clientSecret||"",user:{username:e.credentials.user.username||"",password:e.credentials.user.password||""}},fetch:e.fetch||o()},e)))},e.prototype.withAnonymousSessionFlow=function(e){return this.withAuthMiddleware(g(w({host:e.host||"https://auth.europe-west1.gcp.commercetools.com",projectKey:this.projectKey||e.projectKey,credentials:{clientId:e.credentials.clientId||"",clientSecret:e.credentials.clientSecret||"",anonymousId:e.credentials.anonymousId||""},fetch:e.fetch||o()},e)))},e.prototype.withRefreshTokenFlow=function(e){return this.withAuthMiddleware(b(w({host:e.host||"https://auth.europe-west1.gcp.commercetools.com",projectKey:this.projectKey||e.projectKey,credentials:{clientId:e.credentials.clientId||"",clientSecret:e.credentials.clientSecret||""},fetch:e.fetch||o(),refreshToken:e.refreshToken||""},e)))},e.prototype.withExistingTokenFlow=function(e,t){return this.withAuthMiddleware(A(e,w({force:t.force||!0},t)))},e.prototype.withHttpMiddleware=function(e){return this.httpMiddleware=(0,d.A)(w({host:e.host||"https://api.europe-west1.gcp.commercetools.com",fetch:e.fetch||o()},e)),this},e.prototype.withUserAgentMiddleware=function(e){return this.userAgentMiddleware=(0,y.A)(e),this},e.prototype.withQueueMiddleware=function(e){return this.queueMiddleware=(0,p.A)(w({concurrency:e.concurrency||20},e)),this},e.prototype.withLoggerMiddleware=function(){return this.loggerMiddleware=(0,f.A)(),this},e.prototype.withCorrelationIdMiddleware=function(e){return this.correlationIdMiddleware=(0,h.A)(w({generate:e.generate||null},e)),this},e.prototype.withTelemetryMiddleware=function(e){var t=e.createTelemetryMiddleware,r=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r}(e,["createTelemetryMiddleware"]);return this.withUserAgentMiddleware({customAgent:(null==r?void 0:r.userAgent)||"typescript-sdk-apm-middleware"}),this.telemetryMiddleware=t(r),this},e.prototype.build=function(){var 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.queueMiddleware&&e.push(this.queueMiddleware),this.httpMiddleware&&e.push(this.httpMiddleware),this.loggerMiddleware&&e.push(this.loggerMiddleware),(0,i.Ay)({middlewares:e})},e}()},822:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>w,eh:()=>y});var n=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};function o(e){var t,r,o={},i=new URLSearchParams(e);try{for(var a=n(i.keys()),s=a.next();!s.done;s=a.next()){var c=s.value;i.getAll(c).length>1?o[c]=i.getAll(c):o[c]=i.get(c)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}return o}const i=["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 a(e,t,r){if(void 0===r&&(r={allowedMethods:i}),!t)throw new Error('The "'.concat(e,'" function requires a "Request" object as an argument. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest'));if("string"!=typeof t.uri)throw new Error('The "'.concat(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 "'.concat(e,'" Request object requires a valid method. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest'))}var s,c=function(){return c=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},c.apply(this,arguments)},u=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{c(n.next(e))}catch(e){i(e)}}function s(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}c((n=n.apply(e,t||[])).next())}))},l=function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(c){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}},h=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},d=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))},f=20;function p(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 1===(e=e.filter((function(e){return"function"==typeof e}))).length?e[0]:e.reduce((function(e,t){return function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];return e(t.apply(void 0,d([],h(r),!1)))}}))}function y(e,t,r){var n=this;if(a("process",e,{allowedMethods:["GET"]}),"function"!=typeof t)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');var i=c({limit:f,total:Number.POSITIVE_INFINITY,accumulate:!0},r);return new Promise((function(r,a){var d,f="";if(e&&e.uri){var p=h(e.uri.split("?"),2),y=p[0],v=p[1];d=y,f=v}var g,m=c({},(void 0===g&&(g=o),g(f))),b=c({limit:i.limit},m),A=!1,O=i.total,j=function(o,h){return void 0===h&&(h=[]),u(n,void 0,void 0,(function(){var n,u,f,p,y,v,g,m,C,M,E,S,k,T;return l(this,(function(l){switch(l.label){case 0:n=b.limit<O?b.limit:O,u=new URLSearchParams(c(c({},b),{limit:n})).toString(),f=c({sort:i.sort||"id asc",withTotal:!1},o?{where:'id > "'.concat(o,'"')}:{}),p=new URLSearchParams(f).toString(),y=c(c({},e),{uri:"".concat(d,"?").concat(p,"&").concat(u)}),l.label=1;case 1:return l.trys.push([1,4,,5]),[4,w(s).execute(y)];case 2:return v=l.sent(),g=v.body,m=g.results,!(C=g.count)&&A?[2,r(h||[])]:[4,Promise.resolve(t(v))];case 3:return M=l.sent(),E=[],A=!0,i.accumulate&&(E=h.concat(M||[])),O-=C,C<b.limit||!O?[2,r(E||[])]:(S=m[C-1],k=S&&S.id,j(k,E),[3,5]);case 4:return T=l.sent(),a(T),[3,5];case 5:return[2]}}))}))};j()}))}function w(e){if(s=e,!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");return{process:y,execute:function(t){return a("exec",t),new Promise((function(r,n){p.apply(void 0,d([],h(e.middlewares),!1))((function(e,t){if(t.error)t.reject(t.error);else{var r={body:t.body||{},statusCode:t.statusCode};t.headers&&(r.headers=t.headers),t.request&&(r.request=t.request),t.resolve(r)}}))(t,{resolve:r,reject:n,body:void 0,error:void 0})}))}}}},367:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>y,Dr:()=>a,j$:()=>s});var n=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},o=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))};function i(e,t,r){void 0===r&&(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 a(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,0],n(e),!1))}function s(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this],n(e),!1))}function c(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,400],n(e),!1))}function u(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,401],n(e),!1))}function l(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,403],n(e),!1))}function h(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,404],n(e),!1))}function d(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,409],n(e),!1))}function f(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,500],n(e),!1))}function p(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,503],n(e),!1))}function y(e){switch(e){case 0:return a;case 400:return c;case 401:return u;case 403:return l;case 404:return h;case 409:return d;case 500:return f;case 503:return p;default:return}}},571:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(105),o=r(486),i=r(539),a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function s(e){var t=e.tokenCache||(0,i.A)({token:"",expirationTime:-1}),r=[],s=(0,i.A)(!1);return function(i){return function(c,u){if(c.headers&&c.headers.authorization||c.headers&&c.headers.Authorization)i(c,u);else{var l=a(a({request:c,response:u},(0,o.O4)(e)),{pendingTasks:r,requestState:s,tokenCache:t,fetch:e.fetch});(0,n.A)(l,i,e)}}}}},105:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(486),o=r(146),i=function(){return i=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)},a=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{c(n.next(e))}catch(e){i(e)}}function s(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}c((n=n.apply(e,t||[])).next())}))},s=function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(c){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}};function c(e,t){return i(i({},t),{headers:i(i({},t.headers),{Authorization:"Bearer ".concat(e)})})}function u(e){var t=e.fetcher,r=e.url,n=e.basicAuth,i=e.body,u=e.tokenCache,l=e.requestState,h=e.pendingTasks,d=e.response,f=e.tokenCacheKey;return a(this,void 0,void 0,(function(){var e,a,p,y,w,v,g,m,b,A,O;return s(this,(function(s){switch(s.label){case 0:return s.trys.push([0,5,,6]),[4,t(r,{method:"POST",headers:{Authorization:"Basic ".concat(n),"Content-Length":o.Buffer.byteLength(i).toString(),"Content-Type":"application/x-www-form-urlencoded"},body:i})];case 1:return(e=s.sent()).ok?[4,e.json()]:[3,3];case 2:return a=s.sent(),p=a.access_token,y=a.expires_in,w=a.refresh_token,v=function(e){return Date.now()+1e3*e-3e5}(y),u.set({token:p,expirationTime:v,refreshToken:w},f),l.set(!1),g=h.slice(),h=[],g.forEach((function(e){var t=c(p,e.request);e.next(t,e.response)})),[2];case 3:return m=void 0,[4,e.text()];case 4:b=s.sent();try{m=JSON.parse(b)}catch(e){}return A=new Error(m?m.message:b),m&&(A.body=m),l.set(!1),d.reject(A),[3,6];case 5:return O=s.sent(),l.set(!1),d&&"function"==typeof d.reject&&d.reject(O),[3,6];case 6:return[2]}}))}))}function l(e,t,r){var o=e.request,a=e.response,s=e.url,l=e.basicAuth,h=e.body,d=e.pendingTasks,f=e.requestState,p=e.tokenCache,y=e.tokenCacheKey,w=e.fetch;if(!w&&"undefined"==typeof fetch)throw new Error("`fetch` is not available. Please pass in `fetch` as an option or have it globally available.");if(w||(w=fetch),o.headers&&o.headers.authorization||o.headers&&o.headers.Authorization)t(o,a);else{var v=p.get(y);if(v&&v.token&&Date.now()<v.expirationTime)t(c(v.token,o),a);else if(d.push({request:o,response:a,next:t}),!f.get())if(f.set(!0),v&&v.refreshToken&&(!v.token||v.token&&Date.now()>v.expirationTime)){if(!r)throw new Error("Missing required options");u(i(i({fetcher:w},(0,n.nO)(i(i({},r),{refreshToken:v.refreshToken}))),{tokenCacheKey:y,tokenCache:p,requestState:f,pendingTasks:d,response:a}))}else u({fetcher:w,url:s,basicAuth:l,body:h,tokenCacheKey:y,tokenCache:p,requestState:f,pendingTasks:d,response:a})}}},486:(e,t,r)=>{"use strict";r.d(t,{O4:()=>c,Wh:()=>a,nO:()=>s,wg:()=>i});var n=r(146),o=function(){return o=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},o.apply(this,arguments)};function i(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)");var t=e.credentials,r=t.clientId,o=t.clientSecret;if(!r||!o)throw new Error("Missing required credentials (clientId, clientSecret)");var i=e.scopes?e.scopes.join(" "):void 0,a=n.Buffer.from("".concat(r,":").concat(o)).toString("base64"),s=e.oauthUri||"/oauth/token";return{basicAuth:a,url:e.host.replace(/\/$/,"")+s,body:"grant_type=client_credentials".concat(i?"&scope=".concat(i):"")}}function a(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)");var t=e.credentials,r=t.clientId,o=t.clientSecret,i=t.user,a=e.projectKey;if(!(r&&o&&i))throw new Error("Missing required credentials (clientId, clientSecret, user)");var s=i.username,c=i.password;if(!s||!c)throw new Error("Missing required user credentials (username, password)");var u=(e.scopes||[]).join(" "),l=u?"&scope=".concat(u):"",h=n.Buffer.from("".concat(r,":").concat(o)).toString("base64"),d=e.oauthUri||"/oauth/".concat(a,"/customers/token");return{basicAuth:h,url:e.host.replace(/\/$/,"")+d,body:"grant_type=password&username=".concat(encodeURIComponent(s),"&password=").concat(encodeURIComponent(c)).concat(l)}}function s(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)");var t=e.credentials,r=t.clientId,o=t.clientSecret;if(!r||!o)throw new Error("Missing required credentials (clientId, clientSecret)");var i=n.Buffer.from("".concat(r,":").concat(o)).toString("base64"),a=e.oauthUri||"/oauth/token";return{basicAuth:i,url:e.host.replace(/\/$/,"")+a,body:"grant_type=refresh_token&refresh_token=".concat(encodeURIComponent(e.refreshToken))}}function c(e){if(!e)throw new Error("Missing required options");if(!e.projectKey)throw new Error("Missing required option (projectKey)");var t=e.projectKey;e.oauthUri=e.oauthUri||"/oauth/".concat(t,"/anonymous/token");var r=i(e);return e.credentials.anonymousId&&(r.body+="&anonymous_id=".concat(e.credentials.anonymousId)),o({},r)}},241:(e,t,r)=>{"use strict";r.d(t,{A:()=>c});var n=r(105),o=r(486);function i(e){return{clientId:e.credentials.clientId,host:e.host,projectKey:e.projectKey}}var a=r(539),s=function(){return s=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},s.apply(this,arguments)};function c(e){var t=e.tokenCache||(0,a.A)({token:"",expirationTime:-1}),r=(0,a.A)(!1),c=[];return function(a){return function(u,l){if(u.headers&&u.headers.authorization||u.headers&&u.headers.Authorization)a(u,l);else{var h=s(s({request:u,response:l},(0,o.wg)(e)),{pendingTasks:c,requestState:r,tokenCache:t,tokenCacheKey:i(e),fetch:e.fetch});(0,n.A)(h,a)}}}}},901:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function o(e,t){return void 0===e&&(e=""),void 0===t&&(t={}),function(r){return function(o,i){if("string"!=typeof e)throw new Error("authorization must be a string");var a=void 0===t.force||t.force;if(!e||(o.headers&&o.headers.authorization||o.headers&&o.headers.Authorization)&&!1===a)return r(o,i);var s=n(n({},o),{headers:n(n({},o.headers),{Authorization:e})});return r(s,i)}}}},646:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(105),o=r(486),i=r(539),a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function s(e){var t=e.tokenCache||(0,i.A)({}),r=[],s=(0,i.A)(!1);return function(i){return function(c,u){if(c.headers&&c.headers.authorization||c.headers&&c.headers.Authorization)i(c,u);else{var l=a(a({request:c,response:u},(0,o.Wh)(e)),{pendingTasks:r,requestState:s,tokenCache:t,fetch:e.fetch});(0,n.A)(l,i,e)}}}}},726:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(105),o=r(486),i=r(539),a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function s(e){var t=e.tokenCache||(0,i.A)({token:"",expirationTime:-1}),r=[],s=(0,i.A)(!1);return function(i){return function(c,u){if(c.headers&&c.headers.authorization||c.headers&&c.headers.Authorization)i(c,u);else{var l=a(a({request:c,response:u},(0,o.nO)(e)),{pendingTasks:r,requestState:s,tokenCache:t,fetch:e.fetch});(0,n.A)(l,i)}}}}},539:(e,t,r)=>{"use strict";function n(e){var t=e;return{get:function(e){return t},set:function(e,r){t=e}}}r.d(t,{A:()=>n})},510:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function o(e){return function(t){return function(r,o){var i=n(n({},r),{headers:n(n({},r.headers),{"X-Correlation-ID":e.generate()})});t(i,o)}}}},650:(e,t,r)=>{"use strict";r.d(t,{A:()=>f});var n=r(146),o=r(367);function i(e){if(e.raw)return e.raw();if(!e.forEach)return{};var t={};return e.forEach((function(e,r){t[r]=e})),t}var a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)},s=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r},c=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},u=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))};function l(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function h(e,t,r,n,o){return n&&0!==e?Math.min(Math.round((Math.random()+1)*t*Math.pow(2,e)),o):t}function d(e,t){t&&(e&&e.headers&&e.headers.authorization&&(e.headers.authorization="Bearer ********"),e&&e.headers&&e.headers.Authorization&&(e.headers.Authorization="Bearer ********"))}function f(e){var t,r=e.host,f=e.credentialsMode,p=e.includeResponseHeaders,y=e.includeOriginalRequest,w=e.includeRequestInErrorResponse,v=void 0===w||w,g=e.maskSensitiveHeaderData,m=void 0===g||g,b=e.headersWithStringBody,A=void 0===b?[]:b,O=e.enableRetry,j=e.timeout,C=e.retryConfig,M=void 0===C?{}:C,E=M.maxRetries,S=void 0===E?10:E,k=M.backoff,T=void 0===k||k,q=M.retryDelay,P=void 0===q?200:q,x=M.maxDelay,I=void 0===x?1/0:x,R=M.retryOnAbort,K=void 0!==R&&R,U=M.retryCodes,N=void 0===U?[503]:U,F=e.fetch,B=e.getAbortController;if(!F)throw new Error("`fetch` is not available. Please pass in `fetch` as an option or have it globally available.");if(j&&!B)throw new Error("`AbortController` is not available. Please pass in `getAbortController` as an option or have AbortController globally available when using timeout.");if(t=F||fetch,!Array.isArray(N))throw new Error("`retryCodes` option must be an array of retry status (error) codes.");if(!Array.isArray(A))throw new Error("`headersWithStringBody` option must be an array of strings");return function(e){return function(w,g){var b=r.replace(/\/$/,"")+w.uri,C=a({},w.headers);Object.prototype.hasOwnProperty.call(C,"Content-Type")||Object.prototype.hasOwnProperty.call(C,"content-type")||(C["Content-Type"]="application/json"),null===C["Content-Type"]&&delete C["Content-Type"];var M=u(["application/json","application/graphql"],c(A),!1).indexOf(C["Content-Type"])>-1&&"string"==typeof w.body||l(w.body)?w.body:JSON.stringify(w.body||void 0);M&&("string"==typeof M||l(M))&&(C["Content-Length"]=n.Buffer.byteLength(M).toString());var E={method:w.method,headers:C};f&&(E.credentialsMode=f),M&&(E.body=M);var k=0;!function r(){var n,c;j&&(c=(B?B():null)||new AbortController,E.signal=c.signal,n=setTimeout((function(){c.abort()}),j)),t(b,E).then((function(t){if(t.ok)return"HEAD"===E.method?void e(w,a(a({},g),{statusCode:t.status})):void t.text().then((function(n){var o;try{o=n.length>0?JSON.parse(n):{}}catch(e){if(O&&k<S)return setTimeout(r,h(k,P,0,T,I)),void(k+=1);o=n}var s=a(a({},g),{body:o,statusCode:t.status});p&&(s.headers=i(t.headers)),y&&(s.request=a({},E),d(s.request,m)),e(w,s)})).catch((function(t){if(O&&k<S)return setTimeout(r,h(k,P,0,T,I)),void(k+=1);var n=new o.Dr(t.message,a(a({},v?{originalRequest:w}:{}),{retryCount:k}));d(n.originalRequest,m),e(w,a(a({},g),{error:n,statusCode:0}))}));t.text().then((function(n){var c;try{c=JSON.parse(n)}catch(u){c=n}var u=function(e){var t,r=e.statusCode,n=e.message,i=s(e,["statusCode","message"]),a=n||"Unexpected non-JSON error response";404===r&&(a="URI not found: ".concat((null===(t=i.originalRequest)||void 0===t?void 0:t.uri)||i.uri),delete i.uri);var c=(0,o.Ay)(r);return c?new c(a,i):new o.j$(r,a,i)}(a(a(a({statusCode:t.status},v?{originalRequest:w}:404===t.status?{uri:w.uri}:{}),{retryCount:k,headers:i(t.headers)}),"object"==typeof c?{message:c.message,body:c}:{message:c,body:c}));if(O&&(-1!==N.indexOf(u.statusCode)||-1!==(null==N?void 0:N.indexOf(u.message)))&&k<S)return setTimeout(r,h(k,P,0,T,I)),void(k+=1);d(u.originalRequest,m);var l=a(a({},g),{error:u,statusCode:t.status});e(w,l)}))}),(function(t){if(O&&(K||!c||!c.signal)&&k<S)return setTimeout(r,h(k,P,0,T,I)),void(k+=1);var n=new o.Dr(t.message,a(a({},v?{originalRequest:w}:{}),{retryCount:k}));d(n.originalRequest,m),e(w,a(a({},g),{error:n,statusCode:0}))})).finally((function(){clearTimeout(n)}))}()}}}},345:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(830);function o(){return function(e){return function(t,r){var o=r.error,i=r.body,a=r.statusCode;n.log("Request: ",t),n.log("Response: ",{error:o,body:i,statusCode:a}),e(t,r)}}}},412:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function o(e){var t=e.concurrency,r=void 0===t?20:t,o=[],i=0,a=function(e){if(i-=1,o.length&&i<=r){var t=o.shift();i+=1,e(t.request,t.response)}};return function(e){return function(t,s){var c=n(n({},s),{resolve:function(t){s.resolve(t),a(e)},reject:function(t){s.reject(t),a(e)}});if(o.push({request:t,response:c}),i<r){var u=o.shift();i+=1,e(u.request,u.response)}}}}},15:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});const n={rE:"2.4.0"};var o=r(633),i=function(){return"undefined"!=typeof window&&window.document&&9===window.document.nodeType};var a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function s(e){var t=function(e){if(!e||0===Object.keys(e).length||!{}.hasOwnProperty.call(e,"name"))throw new Error("Missing required option `name`");var t=e.version?"".concat(e.name,"/").concat(e.version):e.name,r=null;e.libraryName&&!e.libraryVersion?r=e.libraryName:e.libraryName&&e.libraryVersion&&(r="".concat(e.libraryName,"/").concat(e.libraryVersion));var n=null;return e.contactUrl&&!e.contactEmail?n="(+".concat(e.contactUrl,")"):!e.contactUrl&&e.contactEmail?n="(+".concat(e.contactEmail,")"):e.contactUrl&&e.contactEmail&&(n="(+".concat(e.contactUrl,"; +").concat(e.contactEmail,")")),[t,function(){if(i())return window.navigator.userAgent;var e=(null==o?void 0:o.version.slice(1))||"12";return"node.js/".concat(e)}(),r,n,e.customAgent||""].filter(Boolean).join(" ")}(a(a({},e),{name:"commercetools-sdk-javascript-v2/".concat(n.rE)}));return function(e){return function(r,n){var o=a(a({},r),{headers:a(a({},r.headers),{"User-Agent":t})});e(o,n)}}}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{ClientBuilder:()=>e.A,Process:()=>t.eh,createAuthForAnonymousSessionFlow:()=>i.A,createAuthForClientCredentialsFlow:()=>a.A,createAuthForPasswordFlow:()=>c.A,createAuthForRefreshTokenFlow:()=>u.A,createAuthWithExistingToken:()=>s.A,createClient:()=>t.Ay,createCorrelationIdMiddleware:()=>l.A,createHttpClient:()=>h.A,createLoggerMiddleware:()=>d.A,createQueueMiddleware:()=>f.A,createUserAgentMiddleware:()=>p.A,getErrorByCode:()=>o.Ay});var e=r(435),t=r(822),o=r(367),i=r(571),a=r(241),s=r(901),c=r(646),u=r(726),l=r(510),h=r(650),d=r(345),f=r(412),p=r(15),y=r(854),w={};for(const e in y)["default","ClientBuilder","createClient","Process","getErrorByCode","createAuthForAnonymousSessionFlow","createAuthForClientCredentialsFlow","createAuthWithExistingToken","createAuthForPasswordFlow","createAuthForRefreshTokenFlow","createCorrelationIdMiddleware","createHttpClient","createLoggerMiddleware","createQueueMiddleware","createUserAgentMiddleware"].indexOf(e)<0&&(w[e]=()=>y[e]);r.d(n,w)})(),n})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["@commercetools/sdk-client-v2"]=t():e["@commercetools/sdk-client-v2"]=t()}(self,(()=>(()=>{var e={146:()=>{},830:()=>{},33:()=>{},633:()=>{},854:()=>{},435:(e,t,r)=>{"use strict";r.d(t,{A:()=>j});var n=r(33),o=r.n(n),i=r(822),a=r(571),s=r(241),c=r(901),u=r(646),l=r(726),d=r(510),h=r(650),f=r(345),p=r(412),y=r(15),w=function(){return w=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},w.apply(this,arguments)},v=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r},g=u.A,m=a.A,b=s.A,A=l.A,O=c.A;const j=function(){function e(){this.middlewares=[]}return e.prototype.withProjectKey=function(e){return this.projectKey=e,this},e.prototype.defaultClient=function(e,t,r,n){return this.withClientCredentialsFlow({host:r,projectKey:n||this.projectKey,credentials:t}).withHttpMiddleware({host:e,fetch:o()}).withLoggerMiddleware().withUserAgentMiddleware()},e.prototype.withAuthMiddleware=function(e){return this.authMiddleware=e,this},e.prototype.withMiddleware=function(e){return this.middlewares.push(e),this},e.prototype.withClientCredentialsFlow=function(e){return this.withAuthMiddleware(b(w({host:e.host||"https://auth.europe-west1.gcp.commercetools.com",projectKey:e.projectKey||this.projectKey,credentials:{clientId:e.credentials.clientId||"",clientSecret:e.credentials.clientSecret||""},oauthUri:e.oauthUri||"",scopes:e.scopes,fetch:e.fetch||o()},e)))},e.prototype.withPasswordFlow=function(e){return this.withAuthMiddleware(g(w({host:e.host||"https://auth.europe-west1.gcp.commercetools.com",projectKey:e.projectKey||this.projectKey,credentials:{clientId:e.credentials.clientId||"",clientSecret:e.credentials.clientSecret||"",user:{username:e.credentials.user.username||"",password:e.credentials.user.password||""}},fetch:e.fetch||o()},e)))},e.prototype.withAnonymousSessionFlow=function(e){return this.withAuthMiddleware(m(w({host:e.host||"https://auth.europe-west1.gcp.commercetools.com",projectKey:this.projectKey||e.projectKey,credentials:{clientId:e.credentials.clientId||"",clientSecret:e.credentials.clientSecret||"",anonymousId:e.credentials.anonymousId||""},fetch:e.fetch||o()},e)))},e.prototype.withRefreshTokenFlow=function(e){return this.withAuthMiddleware(A(w({host:e.host||"https://auth.europe-west1.gcp.commercetools.com",projectKey:this.projectKey||e.projectKey,credentials:{clientId:e.credentials.clientId||"",clientSecret:e.credentials.clientSecret||""},fetch:e.fetch||o(),refreshToken:e.refreshToken||""},e)))},e.prototype.withExistingTokenFlow=function(e,t){return this.withAuthMiddleware(O(e,w({force:t.force||!0},t)))},e.prototype.withHttpMiddleware=function(e){return this.httpMiddleware=(0,h.A)(w({host:e.host||"https://api.europe-west1.gcp.commercetools.com",fetch:e.fetch||o()},e)),this},e.prototype.withUserAgentMiddleware=function(e){return this.userAgentMiddleware=(0,y.A)(e),this},e.prototype.withQueueMiddleware=function(e){return this.queueMiddleware=(0,p.A)(w({concurrency:e.concurrency||20},e)),this},e.prototype.withLoggerMiddleware=function(e){var t=e||{},r=(t.logger,v(t,["logger"]));return this.loggerMiddleware="function"==typeof(null==e?void 0:e.logger)&&e.logger(r)||(0,f.A)(),this},e.prototype.withCorrelationIdMiddleware=function(e){return this.correlationIdMiddleware=(0,d.A)(w({generate:e.generate||null},e)),this},e.prototype.withTelemetryMiddleware=function(e){var t=e.createTelemetryMiddleware,r=v(e,["createTelemetryMiddleware"]);return this.withUserAgentMiddleware({customAgent:(null==r?void 0:r.userAgent)||"typescript-sdk-apm-middleware"}),this.telemetryMiddleware=t(r),this},e.prototype.withBeforeExecutionMiddleware=function(e){var t=e||{},r=(t.middleware,v(t,["middleware"]));return this.beforeMiddleware=e.middleware(r),this},e.prototype.withAfterExecutionMiddleware=function(e){var t=e||{},r=(t.middleware,v(t,["middleware"]));return this.afterMiddleware=e.middleware(r),this},e.prototype.build=function(){var 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.httpMiddleware&&e.push(this.httpMiddleware),this.afterMiddleware&&e.push(this.afterMiddleware),this.loggerMiddleware&&e.push(this.loggerMiddleware),(0,i.Ay)({middlewares:e})},e}()},822:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>b,eh:()=>m});var n=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},o=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};function i(e){return null!=e}function a(e){var t,r,n={},i=new URLSearchParams(e);try{for(var a=o(i.keys()),s=a.next();!s.done;s=a.next()){var c=s.value;i.getAll(c).length>1?n[c]=i.getAll(c):n[c]=i.get(c)}}catch(e){t={error:e}}finally{try{s&&!s.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}return n}function s(e){var t,r,a;if(e=i(a=e)?"string"==typeof a?a:Object.fromEntries(Object.entries(a).filter((function(e){var t=n(e,2),r=(t[0],t[1]);return![null,void 0,""].includes(r)}))):"",!e)return"";var s=new URLSearchParams(e),c=function(e,t){Array.isArray(t)&&(s.delete(e),t.filter(i).forEach((function(t){return s.append(e,t)})))};try{for(var u=o(Object.entries(e)),l=u.next();!l.done;l=u.next()){var d=n(l.value,2);c(d[0],d[1])}}catch(e){t={error:e}}finally{try{l&&!l.done&&(r=u.return)&&r.call(u)}finally{if(t)throw t.error}}return s.toString()}function c(e,t){return void 0===t&&(t=s),t(e)}const u=["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 l(e,t,r){if(void 0===r&&(r={allowedMethods:u}),!t)throw new Error('The "'.concat(e,'" function requires a "Request" object as an argument. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest'));if("string"!=typeof t.uri)throw new Error('The "'.concat(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 "'.concat(e,'" Request object requires a valid method. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest'))}var d,h=function(){return h=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},h.apply(this,arguments)},f=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{c(n.next(e))}catch(e){i(e)}}function s(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}c((n=n.apply(e,t||[])).next())}))},p=function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(c){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}},y=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},w=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))},v=20;function g(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 1===(e=e.filter((function(e){return"function"==typeof e}))).length?e[0]:e.reduce((function(e,t){return function(){for(var r=[],n=0;n<arguments.length;n++)r[n]=arguments[n];return e(t.apply(void 0,w([],y(r),!1)))}}))}function m(e,t,r){var n=this;if(l("process",e,{allowedMethods:["GET"]}),"function"!=typeof t)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');var o=h({limit:v,total:Number.POSITIVE_INFINITY,accumulate:!0},r);return new Promise((function(r,i){var s,u="";if(e&&e.uri){var l=y(e.uri.split("?"),2),v=l[0],g=l[1];s=v,u=g}var m,A=h({},(void 0===m&&(m=a),m(u))),O=h({limit:o.limit},A),j=!1,M=o.total,C=function(a){for(var u=[],l=1;l<arguments.length;l++)u[l-1]=arguments[l];return f(n,w([a],y(u),!1),void 0,(function(n,a){var u,l,f,y,w,v,g,m,A,E,S,k,T,q;return void 0===a&&(a=[]),p(this,(function(p){switch(p.label){case 0:u=O.limit<M?O.limit:M,l=c(h(h({},O),{limit:u})),f=h({sort:o.sort||"id asc",withTotal:!1},n?{where:'id > "'.concat(n,'"')}:{}),y=c(f),w=h(h({},e),{uri:"".concat(s,"?").concat(y,"&").concat(l)}),p.label=1;case 1:return p.trys.push([1,4,,5]),[4,b(d).execute(w)];case 2:return v=p.sent(),g=v.body,m=g.results,!(A=g.count)&&j?[2,r(a||[])]:[4,Promise.resolve(t(v))];case 3:return E=p.sent(),S=[],j=!0,o.accumulate&&(S=a.concat(E||[])),M-=A,A<O.limit||!M?[2,r(S||[])]:(k=m[A-1],T=k&&k.id,C(T,S),[3,5]);case 4:return q=p.sent(),i(q),[3,5];case 5:return[2]}}))}))};C()}))}function b(e){if(d=e,!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");return{process:m,execute:function(t){return l("exec",t),new Promise((function(r,n){g.apply(void 0,w([],y(e.middlewares),!1))((function(e,t){if(t.error)t.reject(t.error);else{var r={body:t.body||{},statusCode:t.statusCode};t.headers&&(r.headers=t.headers),t.request&&(r.request=t.request),t.resolve(r)}}))(t,{resolve:r,reject:n,body:void 0,error:void 0})}))}}}},367:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>y,Dr:()=>a,j$:()=>s});var n=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},o=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))};function i(e,t,r){void 0===r&&(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 a(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,0],n(e),!1))}function s(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this],n(e),!1))}function c(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,400],n(e),!1))}function u(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,401],n(e),!1))}function l(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,403],n(e),!1))}function d(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,404],n(e),!1))}function h(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,409],n(e),!1))}function f(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,500],n(e),!1))}function p(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];i.call.apply(i,o([this,503],n(e),!1))}function y(e){switch(e){case 0:return a;case 400:return c;case 401:return u;case 403:return l;case 404:return d;case 409:return h;case 500:return f;case 503:return p;default:return}}},571:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(105),o=r(486),i=r(539),a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function s(e){var t=e.tokenCache||(0,i.A)({token:"",expirationTime:-1}),r=[],s=(0,i.A)(!1);return function(i){return function(c,u){if(c.headers&&c.headers.authorization||c.headers&&c.headers.Authorization)i(c,u);else{var l=a(a({request:c,response:u},(0,o.O4)(e)),{pendingTasks:r,requestState:s,tokenCache:t,fetch:e.fetch});(0,n.A)(l,i,e)}}}}},105:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var n=r(486),o=r(146),i=function(){return i=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},i.apply(this,arguments)},a=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{c(n.next(e))}catch(e){i(e)}}function s(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}c((n=n.apply(e,t||[])).next())}))},s=function(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(s){return function(c){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,s[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){a.label=s[1];break}if(6===s[0]&&a.label<o[1]){a.label=o[1],o=s;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(s);break}o[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],n=0}finally{r=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}};function c(e,t){return i(i({},t),{headers:i(i({},t.headers),{Authorization:"Bearer ".concat(e)})})}function u(e){return a(this,arguments,void 0,(function(e){var t,r,n,i,a,u,l,d,h,f,p,y=e.fetcher,w=e.url,v=e.basicAuth,g=e.body,m=e.tokenCache,b=e.requestState,A=e.pendingTasks,O=e.response,j=e.tokenCacheKey;return s(this,(function(e){switch(e.label){case 0:return e.trys.push([0,5,,6]),[4,y(w,{method:"POST",headers:{Authorization:"Basic ".concat(v),"Content-Length":o.Buffer.byteLength(g).toString(),"Content-Type":"application/x-www-form-urlencoded"},body:g})];case 1:return(t=e.sent()).ok?[4,t.json()]:[3,3];case 2:return r=e.sent(),n=r.access_token,i=r.expires_in,a=r.refresh_token,u=function(e){return Date.now()+1e3*e-3e5}(i),m.set({token:n,expirationTime:u,refreshToken:a},j),b.set(!1),l=A.slice(),A=[],l.forEach((function(e){var t=c(n,e.request);e.next(t,e.response)})),[2];case 3:return d=void 0,[4,t.text()];case 4:h=e.sent();try{d=JSON.parse(h)}catch(e){}return f=new Error(d?d.message:h),d&&(f.body=d),b.set(!1),O.reject(f),[3,6];case 5:return p=e.sent(),b.set(!1),O&&"function"==typeof O.reject&&O.reject(p),[3,6];case 6:return[2]}}))}))}function l(e,t,r){var o=e.request,a=e.response,s=e.url,l=e.basicAuth,d=e.body,h=e.pendingTasks,f=e.requestState,p=e.tokenCache,y=e.tokenCacheKey,w=e.fetch;if(!w&&"undefined"==typeof fetch)throw new Error("`fetch` is not available. Please pass in `fetch` as an option or have it globally available.");if(w||(w=fetch),o.headers&&o.headers.authorization||o.headers&&o.headers.Authorization)t(o,a);else{var v=p.get(y);if(v&&v.token&&Date.now()<v.expirationTime)t(c(v.token,o),a);else if(h.push({request:o,response:a,next:t}),!f.get())if(f.set(!0),v&&v.refreshToken&&(!v.token||v.token&&Date.now()>v.expirationTime)){if(!r)throw new Error("Missing required options");u(i(i({fetcher:w},(0,n.nO)(i(i({},r),{refreshToken:v.refreshToken}))),{tokenCacheKey:y,tokenCache:p,requestState:f,pendingTasks:h,response:a}))}else u({fetcher:w,url:s,basicAuth:l,body:d,tokenCacheKey:y,tokenCache:p,requestState:f,pendingTasks:h,response:a})}}},486:(e,t,r)=>{"use strict";r.d(t,{O4:()=>c,Wh:()=>a,nO:()=>s,wg:()=>i});var n=r(146),o=function(){return o=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},o.apply(this,arguments)};function i(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)");var t=e.credentials,r=t.clientId,o=t.clientSecret;if(!r||!o)throw new Error("Missing required credentials (clientId, clientSecret)");var i=e.scopes?e.scopes.join(" "):void 0,a=n.Buffer.from("".concat(r,":").concat(o)).toString("base64"),s=e.oauthUri||"/oauth/token";return{basicAuth:a,url:e.host.replace(/\/$/,"")+s,body:"grant_type=client_credentials".concat(i?"&scope=".concat(i):"")}}function a(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)");var t=e.credentials,r=t.clientId,o=t.clientSecret,i=t.user,a=e.projectKey;if(!(r&&o&&i))throw new Error("Missing required credentials (clientId, clientSecret, user)");var s=i.username,c=i.password;if(!s||!c)throw new Error("Missing required user credentials (username, password)");var u=(e.scopes||[]).join(" "),l=u?"&scope=".concat(u):"",d=n.Buffer.from("".concat(r,":").concat(o)).toString("base64"),h=e.oauthUri||"/oauth/".concat(a,"/customers/token");return{basicAuth:d,url:e.host.replace(/\/$/,"")+h,body:"grant_type=password&username=".concat(encodeURIComponent(s),"&password=").concat(encodeURIComponent(c)).concat(l)}}function s(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)");var t=e.credentials,r=t.clientId,o=t.clientSecret;if(!r||!o)throw new Error("Missing required credentials (clientId, clientSecret)");var i=n.Buffer.from("".concat(r,":").concat(o)).toString("base64"),a=e.oauthUri||"/oauth/token";return{basicAuth:i,url:e.host.replace(/\/$/,"")+a,body:"grant_type=refresh_token&refresh_token=".concat(encodeURIComponent(e.refreshToken))}}function c(e){if(!e)throw new Error("Missing required options");if(!e.projectKey)throw new Error("Missing required option (projectKey)");var t=e.projectKey;e.oauthUri=e.oauthUri||"/oauth/".concat(t,"/anonymous/token");var r=i(e);return e.credentials.anonymousId&&(r.body+="&anonymous_id=".concat(e.credentials.anonymousId)),o({},r)}},241:(e,t,r)=>{"use strict";r.d(t,{A:()=>c});var n=r(105),o=r(486);function i(e){return{clientId:e.credentials.clientId,host:e.host,projectKey:e.projectKey}}var a=r(539),s=function(){return s=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},s.apply(this,arguments)};function c(e){var t=e.tokenCache||(0,a.A)({token:"",expirationTime:-1}),r=(0,a.A)(!1),c=[];return function(a){return function(u,l){if(u.headers&&u.headers.authorization||u.headers&&u.headers.Authorization)a(u,l);else{var d=s(s({request:u,response:l},(0,o.wg)(e)),{pendingTasks:c,requestState:r,tokenCache:t,tokenCacheKey:i(e),fetch:e.fetch});(0,n.A)(d,a)}}}}},901:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function o(e,t){return void 0===e&&(e=""),void 0===t&&(t={}),function(r){return function(o,i){if("string"!=typeof e)throw new Error("authorization must be a string");var a=void 0===t.force||t.force;if(!e||(o.headers&&o.headers.authorization||o.headers&&o.headers.Authorization)&&!1===a)return r(o,i);var s=n(n({},o),{headers:n(n({},o.headers),{Authorization:e})});return r(s,i)}}}},646:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(105),o=r(486),i=r(539),a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function s(e){var t=e.tokenCache||(0,i.A)({}),r=[],s=(0,i.A)(!1);return function(i){return function(c,u){if(c.headers&&c.headers.authorization||c.headers&&c.headers.Authorization)i(c,u);else{var l=a(a({request:c,response:u},(0,o.Wh)(e)),{pendingTasks:r,requestState:s,tokenCache:t,fetch:e.fetch});(0,n.A)(l,i,e)}}}}},726:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(105),o=r(486),i=r(539),a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function s(e){var t=e.tokenCache||(0,i.A)({token:"",expirationTime:-1}),r=[],s=(0,i.A)(!1);return function(i){return function(c,u){if(c.headers&&c.headers.authorization||c.headers&&c.headers.Authorization)i(c,u);else{var l=a(a({request:c,response:u},(0,o.nO)(e)),{pendingTasks:r,requestState:s,tokenCache:t,fetch:e.fetch});(0,n.A)(l,i)}}}}},539:(e,t,r)=>{"use strict";function n(e){var t=e;return{get:function(e){return t},set:function(e,r){t=e}}}r.d(t,{A:()=>n})},510:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function o(e){return function(t){return function(r,o){var i=n(n({},r),{headers:n(n({},r.headers),{"X-Correlation-ID":e.generate()})});t(i,o)}}}},650:(e,t,r)=>{"use strict";r.d(t,{A:()=>f});var n=r(146),o=r(367);function i(e){if(e.raw)return e.raw();if(!e.forEach)return{};var t={};return e.forEach((function(e,r){t[r]=e})),t}var a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)},s=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r},c=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)a.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return a},u=function(e,t,r){if(r||2===arguments.length)for(var n,o=0,i=t.length;o<i;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))};function l(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function d(e,t,r,n,o){return n&&0!==e?Math.min(Math.round((Math.random()+1)*t*Math.pow(2,e)),o):t}function h(e,t){t&&(e&&e.headers&&e.headers.authorization&&(e.headers.authorization="Bearer ********"),e&&e.headers&&e.headers.Authorization&&(e.headers.Authorization="Bearer ********"))}function f(e){var t,r=e.host,f=e.credentialsMode,p=e.includeResponseHeaders,y=e.includeOriginalRequest,w=e.includeRequestInErrorResponse,v=void 0===w||w,g=e.maskSensitiveHeaderData,m=void 0===g||g,b=e.headersWithStringBody,A=void 0===b?[]:b,O=e.enableRetry,j=e.timeout,M=e.retryConfig,C=void 0===M?{}:M,E=C.maxRetries,S=void 0===E?10:E,k=C.backoff,T=void 0===k||k,q=C.retryDelay,x=void 0===q?200:q,P=C.maxDelay,I=void 0===P?1/0:P,K=C.retryOnAbort,R=void 0!==K&&K,U=C.retryCodes,N=void 0===U?[503]:U,B=e.fetch,F=e.getAbortController;if(!B)throw new Error("`fetch` is not available. Please pass in `fetch` as an option or have it globally available.");if(j&&!F)throw new Error("`AbortController` is not available. Please pass in `getAbortController` as an option or have AbortController globally available when using timeout.");if(t=B||fetch,!Array.isArray(N))throw new Error("`retryCodes` option must be an array of retry status (error) codes.");if(!Array.isArray(A))throw new Error("`headersWithStringBody` option must be an array of strings");return function(e){return function(w,g){var b=r.replace(/\/$/,"")+w.uri,M=a({},w.headers);Object.prototype.hasOwnProperty.call(M,"Content-Type")||Object.prototype.hasOwnProperty.call(M,"content-type")||(M["Content-Type"]="application/json"),null===M["Content-Type"]&&delete M["Content-Type"];var C=u(["application/json","application/graphql"],c(A),!1).indexOf(M["Content-Type"])>-1&&"string"==typeof w.body||l(w.body)?w.body:JSON.stringify(w.body||void 0);C&&("string"==typeof C||l(C))&&(M["Content-Length"]=n.Buffer.byteLength(C).toString());var E={method:w.method,headers:M};f&&(E.credentialsMode=f),C&&(E.body=C);var k=0;!function r(){var n,c;j&&(c=(F?F():null)||new AbortController,E.signal=c.signal,n=setTimeout((function(){c.abort()}),j)),t(b,E).then((function(t){if(t.ok)return"HEAD"===E.method?void e(w,a(a({},g),{statusCode:t.status})):void t.text().then((function(n){var o;try{o=n.length>0?JSON.parse(n):{}}catch(e){if(O&&k<S)return setTimeout(r,d(k,x,0,T,I)),void(k+=1);o=n}var s=a(a({},g),{body:o,statusCode:t.status});p&&(s.headers=i(t.headers)),y&&(s.request=a({},E),h(s.request,m)),e(w,s)})).catch((function(t){if(O&&k<S)return setTimeout(r,d(k,x,0,T,I)),void(k+=1);var n=new o.Dr(t.message,a(a({},v?{originalRequest:w}:{}),{retryCount:k}));h(n.originalRequest,m),e(w,a(a({},g),{error:n,statusCode:0}))}));t.text().then((function(n){var c;try{c=JSON.parse(n)}catch(u){c=n}var u=function(e){var t,r=e.statusCode,n=e.message,i=s(e,["statusCode","message"]),a=n||"Unexpected non-JSON error response";404===r&&(a="URI not found: ".concat((null===(t=i.originalRequest)||void 0===t?void 0:t.uri)||i.uri),delete i.uri);var c=(0,o.Ay)(r);return c?new c(a,i):new o.j$(r,a,i)}(a(a(a({statusCode:t.status},v?{originalRequest:w}:404===t.status?{uri:w.uri}:{}),{retryCount:k,headers:i(t.headers)}),"object"==typeof c?{message:c.message,body:c}:{message:c,body:c}));if(O&&(-1!==N.indexOf(u.statusCode)||-1!==(null==N?void 0:N.indexOf(u.message)))&&k<S)return setTimeout(r,d(k,x,0,T,I)),void(k+=1);h(u.originalRequest,m);var l=a(a({},g),{error:u,statusCode:t.status});e(w,l)}))}),(function(t){if(O&&(R||!c||!c.signal)&&k<S)return setTimeout(r,d(k,x,0,T,I)),void(k+=1);var n=new o.Dr(t.message,a(a({},v?{originalRequest:w}:{}),{retryCount:k}));h(n.originalRequest,m),e(w,a(a({},g),{error:n,statusCode:0}))})).finally((function(){clearTimeout(n)}))}()}}}},345:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(830);function o(){return function(e){return function(t,r){var o=r.error,i=r.body,a=r.statusCode;n.log("Request: ",t),n.log("Response: ",{error:o,body:i,statusCode:a}),e(t,r)}}}},412:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function o(e){var t=e.concurrency,r=void 0===t?20:t,o=[],i=0,a=function(e){if(i-=1,o.length&&i<=r){var t=o.shift();i+=1,e(t.request,t.response)}};return function(e){return function(t,s){var c=n(n({},s),{resolve:function(t){s.resolve(t),a(e)},reject:function(t){s.reject(t),a(e)}});if(o.push({request:t,response:c}),i<r){var u=o.shift();i+=1,e(u.request,u.response)}}}}},15:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});const n={rE:"2.5.0"};var o=r(633),i=function(){return"undefined"!=typeof window&&window.document&&9===window.document.nodeType};var a=function(){return a=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function s(e){var t=function(e){if(!e||0===Object.keys(e).length||!{}.hasOwnProperty.call(e,"name"))throw new Error("Missing required option `name`");var t=e.version?"".concat(e.name,"/").concat(e.version):e.name,r=null;e.libraryName&&!e.libraryVersion?r=e.libraryName:e.libraryName&&e.libraryVersion&&(r="".concat(e.libraryName,"/").concat(e.libraryVersion));var n=null;return e.contactUrl&&!e.contactEmail?n="(+".concat(e.contactUrl,")"):!e.contactUrl&&e.contactEmail?n="(+".concat(e.contactEmail,")"):e.contactUrl&&e.contactEmail&&(n="(+".concat(e.contactUrl,"; +").concat(e.contactEmail,")")),[t,function(){if(i())return window.navigator.userAgent;var e=(null==o?void 0:o.version.slice(1))||"12";return"node.js/".concat(e)}(),r,n,e.customAgent||""].filter(Boolean).join(" ")}(a(a({},e),{name:"commercetools-sdk-javascript-v2/".concat(n.rE)}));return function(e){return function(r,n){var o=a(a({},r),{headers:a(a({},r.headers),{"User-Agent":t})});e(o,n)}}}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{ClientBuilder:()=>e.A,Process:()=>t.eh,createAuthForAnonymousSessionFlow:()=>i.A,createAuthForClientCredentialsFlow:()=>a.A,createAuthForPasswordFlow:()=>c.A,createAuthForRefreshTokenFlow:()=>u.A,createAuthWithExistingToken:()=>s.A,createClient:()=>t.Ay,createCorrelationIdMiddleware:()=>l.A,createHttpClient:()=>d.A,createLoggerMiddleware:()=>h.A,createQueueMiddleware:()=>f.A,createUserAgentMiddleware:()=>p.A,getErrorByCode:()=>o.Ay});var e=r(435),t=r(822),o=r(367),i=r(571),a=r(241),s=r(901),c=r(646),u=r(726),l=r(510),d=r(650),h=r(345),f=r(412),p=r(15),y=r(854),w={};for(const e in y)["default","ClientBuilder","createClient","Process","getErrorByCode","createAuthForAnonymousSessionFlow","createAuthForClientCredentialsFlow","createAuthWithExistingToken","createAuthForPasswordFlow","createAuthForRefreshTokenFlow","createCorrelationIdMiddleware","createHttpClient","createLoggerMiddleware","createQueueMiddleware","createUserAgentMiddleware"].indexOf(e)<0&&(w[e]=()=>y[e]);r.d(n,w)})(),n})()));
@@ -1,4 +1,4 @@
1
- import { AnonymousAuthMiddlewareOptions, AuthMiddlewareOptions, Client, CorrelationIdMiddlewareOptions, Credentials, ExistingTokenMiddlewareOptions, HttpMiddlewareOptions, HttpUserAgentOptions, Middleware, PasswordAuthMiddlewareOptions, QueueMiddlewareOptions, RefreshAuthMiddlewareOptions, TelemetryOptions } from "../types/sdk.js";
1
+ import { AfterExecutionMiddlewareOptions, AnonymousAuthMiddlewareOptions, AuthMiddlewareOptions, BeforeExecutionMiddlewareOptions, Client, CorrelationIdMiddlewareOptions, Credentials, ExistingTokenMiddlewareOptions, HttpMiddlewareOptions, HttpUserAgentOptions, LoggerMiddlewareOptions, Middleware, PasswordAuthMiddlewareOptions, QueueMiddlewareOptions, RefreshAuthMiddlewareOptions, TelemetryOptions } from "../types/sdk.js";
2
2
  export default class ClientBuilder {
3
3
  private projectKey;
4
4
  private authMiddleware;
@@ -8,6 +8,8 @@ export default class ClientBuilder {
8
8
  private loggerMiddleware;
9
9
  private queueMiddleware;
10
10
  private telemetryMiddleware;
11
+ private beforeMiddleware;
12
+ private afterMiddleware;
11
13
  private middlewares;
12
14
  withProjectKey(key: string): ClientBuilder;
13
15
  defaultClient(baseUri: string, credentials: Credentials, oauthUri?: string, projectKey?: string): ClientBuilder;
@@ -21,8 +23,10 @@ export default class ClientBuilder {
21
23
  withHttpMiddleware(options: HttpMiddlewareOptions): ClientBuilder;
22
24
  withUserAgentMiddleware(options?: HttpUserAgentOptions): ClientBuilder;
23
25
  withQueueMiddleware(options: QueueMiddlewareOptions): ClientBuilder;
24
- withLoggerMiddleware(): this;
26
+ withLoggerMiddleware(options?: LoggerMiddlewareOptions): ClientBuilder;
25
27
  withCorrelationIdMiddleware(options: CorrelationIdMiddlewareOptions): ClientBuilder;
26
28
  withTelemetryMiddleware<T extends TelemetryOptions>(options: T): ClientBuilder;
29
+ withBeforeExecutionMiddleware(options: BeforeExecutionMiddlewareOptions): this;
30
+ withAfterExecutionMiddleware(options: AfterExecutionMiddlewareOptions): this;
27
31
  build(): Client;
28
32
  }
@@ -359,6 +359,12 @@ export type UserAgentMiddlewareOptions = {
359
359
  contactEmail?: string
360
360
  }
361
361
 
362
+ export type GenericOmit<T, U extends string | number | symbol> = Omit<T, U>;
363
+ export type LoggerMiddlewareOptions = {
364
+ [key: string]: any;
365
+ logger: (options?: GenericOmit<LoggerMiddlewareOptions, 'logger'>) => Middleware;
366
+ }
367
+
362
368
  export type Next = (
363
369
  request: MiddlewareRequest,
364
370
  response: MiddlewareResponse
@@ -538,16 +544,19 @@ export type CorrelationIdMiddlewareOptions = {
538
544
  generate: () => string
539
545
  }
540
546
 
541
- // // TODO: specify specific options
542
- // // export type ApmMiddlewareOptions = Record<string, any>
543
- // export type ApmMiddlewareOptions = {
544
- // createApmMiddleware: (options?: any) => Middleware,
545
- // apm: any
546
- // }
547
+ export type BeforeExecutionMiddlewareOptions = {
548
+ [key: string]: any;
549
+ middleware: (options?: GenericOmit<BeforeExecutionMiddlewareOptions, 'middleware'>) => Middleware
550
+ }
551
+
552
+ export type AfterExecutionMiddlewareOptions = {
553
+ [key: string]: any;
554
+ middleware: (options?: GenericOmit<AfterExecutionMiddlewareOptions, 'middleware'>) => Middleware
555
+ }
547
556
 
548
557
  export type TelemetryOptions = {
549
558
  apm?: Function;
550
559
  tracer?: Function;
551
560
  userAgent?: string;
552
- createTelemetryMiddleware: (options?: Omit<TelemetryOptions, 'createTelemetryMiddleware'>) => Middleware
561
+ createTelemetryMiddleware: (options?: GenericOmit<TelemetryOptions, 'createTelemetryMiddleware'>) => Middleware
553
562
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commercetools/sdk-client-v2",
3
- "version": "2.4.0",
3
+ "version": "2.5.0",
4
4
  "engines": {
5
5
  "node": ">=14"
6
6
  },
@@ -47,8 +47,8 @@
47
47
  "devDependencies": {
48
48
  "abort-controller": "3.0.0",
49
49
  "common-tags": "1.8.2",
50
- "dotenv": "16.3.1",
51
- "jest": "29.6.2",
50
+ "dotenv": "16.4.5",
51
+ "jest": "29.7.0",
52
52
  "nock": "12.0.3",
53
53
  "organize-imports-cli": "0.10.0"
54
54
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"commercetools-sdk-client-v2.cjs.d.ts","sourceRoot":"","sources":["./declarations/src/index.d.ts"],"names":[],"mappings":"AAAA"}