@commercetools/ts-client 1.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +0 -1
  3. package/dist/commercetools-ts-client.browser.cjs.js +85 -64
  4. package/dist/commercetools-ts-client.browser.esm.js +85 -64
  5. package/dist/commercetools-ts-client.cjs.d.ts +1 -1
  6. package/dist/commercetools-ts-client.cjs.dev.js +85 -64
  7. package/dist/commercetools-ts-client.cjs.prod.js +85 -64
  8. package/dist/commercetools-ts-client.esm.js +85 -64
  9. package/dist/declarations/src/client/builder.d.ts +9 -4
  10. package/dist/declarations/src/client/builder.d.ts.map +1 -0
  11. package/dist/declarations/src/client/client.d.ts +1 -0
  12. package/dist/declarations/src/client/client.d.ts.map +1 -0
  13. package/dist/declarations/src/client/index.d.ts +1 -0
  14. package/dist/declarations/src/client/index.d.ts.map +1 -0
  15. package/dist/declarations/src/index.d.ts +1 -0
  16. package/dist/declarations/src/index.d.ts.map +1 -0
  17. package/dist/declarations/src/middleware/auth-middleware/anonymous-session-flow.d.ts +1 -0
  18. package/dist/declarations/src/middleware/auth-middleware/anonymous-session-flow.d.ts.map +1 -0
  19. package/dist/declarations/src/middleware/auth-middleware/client-credentials-flow.d.ts +1 -0
  20. package/dist/declarations/src/middleware/auth-middleware/client-credentials-flow.d.ts.map +1 -0
  21. package/dist/declarations/src/middleware/auth-middleware/existing-token-flow.d.ts +1 -0
  22. package/dist/declarations/src/middleware/auth-middleware/existing-token-flow.d.ts.map +1 -0
  23. package/dist/declarations/src/middleware/auth-middleware/index.d.ts +1 -0
  24. package/dist/declarations/src/middleware/auth-middleware/index.d.ts.map +1 -0
  25. package/dist/declarations/src/middleware/auth-middleware/password-flow.d.ts +1 -0
  26. package/dist/declarations/src/middleware/auth-middleware/password-flow.d.ts.map +1 -0
  27. package/dist/declarations/src/middleware/auth-middleware/refresh-token-flow.d.ts +1 -0
  28. package/dist/declarations/src/middleware/auth-middleware/refresh-token-flow.d.ts.map +1 -0
  29. package/dist/declarations/src/middleware/create-concurrent-modification-middleware.d.ts +4 -2
  30. package/dist/declarations/src/middleware/create-concurrent-modification-middleware.d.ts.map +1 -0
  31. package/dist/declarations/src/middleware/create-correlation-id-middleware.d.ts +1 -0
  32. package/dist/declarations/src/middleware/create-correlation-id-middleware.d.ts.map +1 -0
  33. package/dist/declarations/src/middleware/create-error-middleware.d.ts +1 -0
  34. package/dist/declarations/src/middleware/create-error-middleware.d.ts.map +1 -0
  35. package/dist/declarations/src/middleware/create-http-middleware.d.ts +1 -0
  36. package/dist/declarations/src/middleware/create-http-middleware.d.ts.map +1 -0
  37. package/dist/declarations/src/middleware/create-logger-middleware.d.ts +1 -0
  38. package/dist/declarations/src/middleware/create-logger-middleware.d.ts.map +1 -0
  39. package/dist/declarations/src/middleware/create-queue-middleware.d.ts +1 -0
  40. package/dist/declarations/src/middleware/create-queue-middleware.d.ts.map +1 -0
  41. package/dist/declarations/src/middleware/create-user-agent-middleware.d.ts +1 -0
  42. package/dist/declarations/src/middleware/create-user-agent-middleware.d.ts.map +1 -0
  43. package/dist/declarations/src/middleware/index.d.ts +1 -0
  44. package/dist/declarations/src/middleware/index.d.ts.map +1 -0
  45. package/dist/declarations/src/types/types.d.ts +29 -12
  46. package/package.json +6 -5
  47. package/dist/commercetools-ts-client.cjs.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @commercetools/ts-client
2
2
 
3
+ ## 2.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#708](https://github.com/commercetools/commercetools-sdk-typescript/pull/708) [`e7e5ac7`](https://github.com/commercetools/commercetools-sdk-typescript/commit/e7e5ac73de07a8ce141ec0bc2b2abf492462ec73) Thanks [@lojzatran](https://github.com/lojzatran)! - Make ts-sdk-v3 consistent with v2
8
+
9
+ ## 1.2.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [#684](https://github.com/commercetools/commercetools-sdk-typescript/pull/684) [`a1b43c0`](https://github.com/commercetools/commercetools-sdk-typescript/commit/a1b43c048fac3eba3d53470314b61d36e74f0a51) Thanks [@ajimae](https://github.com/ajimae)! - Fix bug 'Error not throw' for sdk-client-v3
14
+
3
15
  ## 1.2.0
4
16
 
5
17
  ### Minor Changes
package/README.md CHANGED
@@ -78,7 +78,6 @@ const client: Client = new ClientBuilder()
78
78
  .withHttpMiddleware(httpMiddlewareOptions)
79
79
  .withRetryMiddleware(retryOptions)
80
80
  .withMiddleware(middleware({})) // <<<------------------- add the custom middleware here
81
- .withErrorMiddleware({})
82
81
  .build()
83
82
 
84
83
  const apiRoot = createApiBuilderFromCtpClient(client)
@@ -25,7 +25,7 @@ function toPrimitive(t, r) {
25
25
 
26
26
  function toPropertyKey(t) {
27
27
  var i = toPrimitive(t, "string");
28
- return "symbol" == typeof i ? i : String(i);
28
+ return "symbol" == typeof i ? i : i + "";
29
29
  }
30
30
 
31
31
  function _defineProperty(obj, key, value) {
@@ -331,6 +331,14 @@ function store(initVal) {
331
331
  };
332
332
  }
333
333
 
334
+ function isDefined(value) {
335
+ return typeof value !== 'undefined' && value !== null;
336
+ }
337
+ function clean(value) {
338
+ if (!isDefined(value)) return '';
339
+ if (typeof value == 'string') return value;
340
+ return Object.fromEntries(Object.entries(value).filter(([_, value]) => ![null, undefined, ''].includes(value)));
341
+ }
334
342
  function urlParser(url) {
335
343
  const object = {};
336
344
  const data = new URLSearchParams(url);
@@ -344,11 +352,13 @@ function urlParser(url) {
344
352
  return object;
345
353
  }
346
354
  function urlStringifier(object) {
355
+ object = clean(object);
356
+ if (!object) return '';
347
357
  const params = new URLSearchParams(object);
348
358
  for (const [key, value] of Object.entries(object)) {
349
359
  if (Array.isArray(value)) {
350
360
  params.delete(key);
351
- value.filter(Boolean).forEach(v => params.append(key, v));
361
+ value.filter(isDefined).forEach(v => params.append(key, v));
352
362
  }
353
363
  }
354
364
  return params.toString();
@@ -357,7 +367,7 @@ function parseURLString(url, parser = urlParser) {
357
367
  return parser(url);
358
368
  }
359
369
  function stringifyURLString(object, stringifier = urlStringifier) {
360
- return urlStringifier(object);
370
+ return stringifier(object);
361
371
  }
362
372
 
363
373
  // import { validateUserAgentOptions } from '../utils'
@@ -904,7 +914,7 @@ function createAuthMiddlewareForRefreshTokenFlow$1(options) {
904
914
  };
905
915
  }
906
916
 
907
- function createConcurrentModificationMiddleware$1() {
917
+ function createConcurrentModificationMiddleware$1(modifierFunction) {
908
918
  return next => {
909
919
  return async request => {
910
920
  const response = await next(request);
@@ -918,13 +928,17 @@ function createConcurrentModificationMiddleware$1() {
918
928
 
919
929
  // update the resource version here
920
930
  if (version) {
921
- request.body = typeof request.body == 'string' ? {
922
- ...JSON.parse(request.body),
923
- version
924
- } : {
925
- ...request.body,
926
- version
927
- };
931
+ if (modifierFunction) {
932
+ request.body = await modifierFunction(version, request, response);
933
+ } else {
934
+ request.body = typeof request.body == 'string' ? {
935
+ ...JSON.parse(request.body),
936
+ version
937
+ } : {
938
+ ...request.body,
939
+ version
940
+ };
941
+ }
928
942
  return next(request);
929
943
  }
930
944
  }
@@ -946,7 +960,7 @@ function createCorrelationIdMiddleware$1(options) {
946
960
  };
947
961
  }
948
962
 
949
- function createErrorMiddleware$1(options) {
963
+ function createErrorMiddleware(options) {
950
964
  return next => async request => {
951
965
  const response = await next(request);
952
966
  if (response.error) {
@@ -978,7 +992,8 @@ async function executeRequest({
978
992
  request,
979
993
  abortController,
980
994
  maskSensitiveHeaderData,
981
- includeRequestInErrorResponse
995
+ includeRequestInErrorResponse,
996
+ includeResponseHeaders
982
997
  } = clientOptions;
983
998
  try {
984
999
  if (timeout) timer = setTimeout(() => {
@@ -993,6 +1008,9 @@ async function executeRequest({
993
1008
  body: clientOptions.body
994
1009
  } : {})
995
1010
  });
1011
+ if (!includeResponseHeaders) {
1012
+ response.headers = null;
1013
+ }
996
1014
  if (response.statusCode >= 200 && response.statusCode < 300) {
997
1015
  if (clientOptions.method == 'HEAD') {
998
1016
  return {
@@ -1036,7 +1054,7 @@ async function executeRequest({
1036
1054
  };
1037
1055
  } catch (e) {
1038
1056
  // We know that this is a network error
1039
- const headers = getHeaders(e.response?.headers);
1057
+ const headers = includeResponseHeaders ? getHeaders(e.response?.headers) : null;
1040
1058
  const statusCode = e.response?.status || e.response?.data0 || 0;
1041
1059
  const message = e.response?.data?.message;
1042
1060
  const error = createError({
@@ -1073,7 +1091,8 @@ function createHttpMiddleware$1(options) {
1073
1091
  retryConfig,
1074
1092
  getAbortController,
1075
1093
  includeOriginalRequest,
1076
- includeRequestInErrorResponse,
1094
+ includeRequestInErrorResponse = true,
1095
+ includeResponseHeaders = true,
1077
1096
  maskSensitiveHeaderData,
1078
1097
  httpClientOptions
1079
1098
  } = options;
@@ -1109,6 +1128,7 @@ function createHttpMiddleware$1(options) {
1109
1128
  headers: requestHeader,
1110
1129
  includeRequestInErrorResponse,
1111
1130
  maskSensitiveHeaderData,
1131
+ includeResponseHeaders,
1112
1132
  ...httpClientOptions
1113
1133
  };
1114
1134
  if (credentialsMode) {
@@ -1142,43 +1162,17 @@ function createHttpMiddleware$1(options) {
1142
1162
  };
1143
1163
  }
1144
1164
 
1145
- // error, info, success
1146
1165
  function createLoggerMiddleware$1(options) {
1147
1166
  return next => {
1148
1167
  return async request => {
1149
1168
  let response = await next(request);
1150
1169
  const originalResponse = Object.assign({}, response);
1151
1170
  const {
1152
- loggerFn = console.log,
1153
- // logLevel = 'ERROR',
1154
- maskSensitiveHeaderData = true,
1155
- includeOriginalRequest = true,
1156
- includeResponseHeaders = true
1157
- // includeRequestInErrorResponse
1171
+ loggerFn = console.log
1158
1172
  } = options || {};
1159
- if (includeOriginalRequest && maskSensitiveHeaderData) {
1160
- maskAuthData(response.request);
1161
- }
1162
- if (!includeOriginalRequest) {
1163
- const {
1164
- request,
1165
- ...rest
1166
- } = response;
1167
- response = rest;
1168
- }
1169
- if (!includeResponseHeaders) {
1170
- const {
1171
- headers,
1172
- ...rest
1173
- } = response;
1174
- response = rest;
1175
- }
1176
1173
  if (loggerFn && typeof loggerFn == 'function') {
1177
1174
  loggerFn(response);
1178
- // return originalResponse
1179
1175
  }
1180
-
1181
- // console.log({ Response: response })
1182
1176
  return originalResponse;
1183
1177
  };
1184
1178
  };
@@ -1230,7 +1224,7 @@ function createQueueMiddleware$1({
1230
1224
 
1231
1225
  var packageJson = {
1232
1226
  name: "@commercetools/ts-client",
1233
- version: "1.2.0",
1227
+ version: "2.0.0",
1234
1228
  engines: {
1235
1229
  node: ">=14"
1236
1230
  },
@@ -1266,7 +1260,7 @@ var packageJson = {
1266
1260
  "abort-controller": "3.0.0",
1267
1261
  buffer: "^6.0.3",
1268
1262
  "node-fetch": "^2.6.1",
1269
- uuid: "9.0.0"
1263
+ uuid: "9.0.1"
1270
1264
  },
1271
1265
  files: [
1272
1266
  "dist",
@@ -1281,15 +1275,16 @@ var packageJson = {
1281
1275
  },
1282
1276
  devDependencies: {
1283
1277
  "common-tags": "1.8.2",
1284
- dotenv: "16.3.1",
1285
- jest: "29.6.2",
1278
+ dotenv: "16.4.5",
1279
+ jest: "29.7.0",
1286
1280
  nock: "12.0.3",
1287
1281
  "organize-imports-cli": "0.10.0"
1288
1282
  },
1289
1283
  scripts: {
1290
1284
  organize_imports: "find src -type f -name '*.ts' | xargs organize-imports-cli",
1291
1285
  postbuild: "yarn organize_imports",
1292
- post_process_generate: "yarn organize_imports"
1286
+ post_process_generate: "yarn organize_imports",
1287
+ docs: "typedoc --out docs"
1293
1288
  }
1294
1289
  };
1295
1290
 
@@ -1297,7 +1292,7 @@ function createUserAgentMiddleware$1(options) {
1297
1292
  return next => async request => {
1298
1293
  const userAgent = createUserAgent({
1299
1294
  ...options,
1300
- name: `commercetools-sdk-javascript-v3/${packageJson.version}`
1295
+ name: `${options.name ? options.name + '/' : ''}commercetools-sdk-javascript-v3/${packageJson.version}`
1301
1296
  });
1302
1297
  const requestWithUserAgent = {
1303
1298
  ...request,
@@ -1319,7 +1314,7 @@ var middleware = /*#__PURE__*/Object.freeze({
1319
1314
  createAuthMiddlewareForRefreshTokenFlow: createAuthMiddlewareForRefreshTokenFlow$1,
1320
1315
  createConcurrentModificationMiddleware: createConcurrentModificationMiddleware$1,
1321
1316
  createCorrelationIdMiddleware: createCorrelationIdMiddleware$1,
1322
- createErrorMiddleware: createErrorMiddleware$1,
1317
+ createErrorMiddleware: createErrorMiddleware,
1323
1318
  createHttpMiddleware: createHttpMiddleware$1,
1324
1319
  createLoggerMiddleware: createLoggerMiddleware$1,
1325
1320
  createQueueMiddleware: createQueueMiddleware$1,
@@ -1462,7 +1457,13 @@ function createClient(middlewares) {
1462
1457
  reject,
1463
1458
  resolve,
1464
1459
  ...request
1465
- }).then(resolve).catch(reject);
1460
+ }).then(res => {
1461
+ if (res.error) {
1462
+ reject(res.error);
1463
+ } else {
1464
+ resolve(res);
1465
+ }
1466
+ }).catch(reject);
1466
1467
  });
1467
1468
  }
1468
1469
  };
@@ -1479,8 +1480,7 @@ const {
1479
1480
  createLoggerMiddleware,
1480
1481
  createQueueMiddleware,
1481
1482
  createUserAgentMiddleware,
1482
- createConcurrentModificationMiddleware,
1483
- createErrorMiddleware
1483
+ createConcurrentModificationMiddleware
1484
1484
  } = middleware;
1485
1485
  class ClientBuilder {
1486
1486
  constructor() {
@@ -1492,7 +1492,9 @@ class ClientBuilder {
1492
1492
  _defineProperty(this, "loggerMiddleware", void 0);
1493
1493
  _defineProperty(this, "queueMiddleware", void 0);
1494
1494
  _defineProperty(this, "concurrentMiddleware", void 0);
1495
- _defineProperty(this, "errorMiddleware", void 0);
1495
+ _defineProperty(this, "telemetryMiddleware", void 0);
1496
+ _defineProperty(this, "beforeMiddleware", void 0);
1497
+ _defineProperty(this, "afterMiddleware", void 0);
1496
1498
  _defineProperty(this, "middlewares", []);
1497
1499
  this.userAgentMiddleware = createUserAgentMiddleware({});
1498
1500
  }
@@ -1611,30 +1613,49 @@ class ClientBuilder {
1611
1613
  });
1612
1614
  return this;
1613
1615
  }
1614
- withConcurrentModificationMiddleware() {
1615
- this.concurrentMiddleware = createConcurrentModificationMiddleware();
1616
+ withConcurrentModificationMiddleware(options) {
1617
+ this.concurrentMiddleware = createConcurrentModificationMiddleware(options?.concurrentModificationHandlerFn);
1616
1618
  return this;
1617
1619
  }
1618
- withErrorMiddleware(options) {
1619
- this.errorMiddleware = createErrorMiddleware(options);
1620
+ withTelemetryMiddleware(options) {
1621
+ const {
1622
+ createTelemetryMiddleware,
1623
+ ...rest
1624
+ } = options;
1625
+ this.withUserAgentMiddleware({
1626
+ customAgent: rest?.userAgent || 'typescript-sdk-apm-middleware'
1627
+ });
1628
+ this.telemetryMiddleware = createTelemetryMiddleware(rest);
1629
+ return this;
1630
+ }
1631
+ withBeforeExecutionMiddleware(options) {
1632
+ const {
1633
+ middleware,
1634
+ ...rest
1635
+ } = options || {};
1636
+ this.beforeMiddleware = options.middleware(rest);
1637
+ return this;
1638
+ }
1639
+ withAfterExecutionMiddleware(options) {
1640
+ const {
1641
+ middleware,
1642
+ ...rest
1643
+ } = options || {};
1644
+ this.afterMiddleware = options.middleware(rest);
1620
1645
  return this;
1621
1646
  }
1622
1647
  build() {
1623
1648
  const middlewares = this.middlewares.slice();
1624
-
1625
- /**
1626
- * - use default retry policy if not explicity added
1627
- * - add retry middleware to be used by concurrent modification
1628
- * middleware if not explicitly added as part of the middleware
1629
- */
1649
+ if (this.telemetryMiddleware) middlewares.push(this.telemetryMiddleware);
1630
1650
  if (this.correlationIdMiddleware) middlewares.push(this.correlationIdMiddleware);
1631
1651
  if (this.userAgentMiddleware) middlewares.push(this.userAgentMiddleware);
1632
1652
  if (this.authMiddleware) middlewares.push(this.authMiddleware);
1653
+ if (this.beforeMiddleware) middlewares.push(this.beforeMiddleware);
1633
1654
  if (this.queueMiddleware) middlewares.push(this.queueMiddleware);
1634
1655
  if (this.loggerMiddleware) middlewares.push(this.loggerMiddleware);
1635
- if (this.errorMiddleware) middlewares.push(this.errorMiddleware);
1636
1656
  if (this.concurrentMiddleware) middlewares.push(this.concurrentMiddleware);
1637
1657
  if (this.httpMiddleware) middlewares.push(this.httpMiddleware);
1658
+ if (this.afterMiddleware) middlewares.push(this.afterMiddleware);
1638
1659
  return createClient({
1639
1660
  middlewares
1640
1661
  });
@@ -16,7 +16,7 @@ function toPrimitive(t, r) {
16
16
 
17
17
  function toPropertyKey(t) {
18
18
  var i = toPrimitive(t, "string");
19
- return "symbol" == typeof i ? i : String(i);
19
+ return "symbol" == typeof i ? i : i + "";
20
20
  }
21
21
 
22
22
  function _defineProperty(obj, key, value) {
@@ -322,6 +322,14 @@ function store(initVal) {
322
322
  };
323
323
  }
324
324
 
325
+ function isDefined(value) {
326
+ return typeof value !== 'undefined' && value !== null;
327
+ }
328
+ function clean(value) {
329
+ if (!isDefined(value)) return '';
330
+ if (typeof value == 'string') return value;
331
+ return Object.fromEntries(Object.entries(value).filter(([_, value]) => ![null, undefined, ''].includes(value)));
332
+ }
325
333
  function urlParser(url) {
326
334
  const object = {};
327
335
  const data = new URLSearchParams(url);
@@ -335,11 +343,13 @@ function urlParser(url) {
335
343
  return object;
336
344
  }
337
345
  function urlStringifier(object) {
346
+ object = clean(object);
347
+ if (!object) return '';
338
348
  const params = new URLSearchParams(object);
339
349
  for (const [key, value] of Object.entries(object)) {
340
350
  if (Array.isArray(value)) {
341
351
  params.delete(key);
342
- value.filter(Boolean).forEach(v => params.append(key, v));
352
+ value.filter(isDefined).forEach(v => params.append(key, v));
343
353
  }
344
354
  }
345
355
  return params.toString();
@@ -348,7 +358,7 @@ function parseURLString(url, parser = urlParser) {
348
358
  return parser(url);
349
359
  }
350
360
  function stringifyURLString(object, stringifier = urlStringifier) {
351
- return urlStringifier(object);
361
+ return stringifier(object);
352
362
  }
353
363
 
354
364
  // import { validateUserAgentOptions } from '../utils'
@@ -895,7 +905,7 @@ function createAuthMiddlewareForRefreshTokenFlow$1(options) {
895
905
  };
896
906
  }
897
907
 
898
- function createConcurrentModificationMiddleware$1() {
908
+ function createConcurrentModificationMiddleware$1(modifierFunction) {
899
909
  return next => {
900
910
  return async request => {
901
911
  const response = await next(request);
@@ -909,13 +919,17 @@ function createConcurrentModificationMiddleware$1() {
909
919
 
910
920
  // update the resource version here
911
921
  if (version) {
912
- request.body = typeof request.body == 'string' ? {
913
- ...JSON.parse(request.body),
914
- version
915
- } : {
916
- ...request.body,
917
- version
918
- };
922
+ if (modifierFunction) {
923
+ request.body = await modifierFunction(version, request, response);
924
+ } else {
925
+ request.body = typeof request.body == 'string' ? {
926
+ ...JSON.parse(request.body),
927
+ version
928
+ } : {
929
+ ...request.body,
930
+ version
931
+ };
932
+ }
919
933
  return next(request);
920
934
  }
921
935
  }
@@ -937,7 +951,7 @@ function createCorrelationIdMiddleware$1(options) {
937
951
  };
938
952
  }
939
953
 
940
- function createErrorMiddleware$1(options) {
954
+ function createErrorMiddleware(options) {
941
955
  return next => async request => {
942
956
  const response = await next(request);
943
957
  if (response.error) {
@@ -969,7 +983,8 @@ async function executeRequest({
969
983
  request,
970
984
  abortController,
971
985
  maskSensitiveHeaderData,
972
- includeRequestInErrorResponse
986
+ includeRequestInErrorResponse,
987
+ includeResponseHeaders
973
988
  } = clientOptions;
974
989
  try {
975
990
  if (timeout) timer = setTimeout(() => {
@@ -984,6 +999,9 @@ async function executeRequest({
984
999
  body: clientOptions.body
985
1000
  } : {})
986
1001
  });
1002
+ if (!includeResponseHeaders) {
1003
+ response.headers = null;
1004
+ }
987
1005
  if (response.statusCode >= 200 && response.statusCode < 300) {
988
1006
  if (clientOptions.method == 'HEAD') {
989
1007
  return {
@@ -1027,7 +1045,7 @@ async function executeRequest({
1027
1045
  };
1028
1046
  } catch (e) {
1029
1047
  // We know that this is a network error
1030
- const headers = getHeaders(e.response?.headers);
1048
+ const headers = includeResponseHeaders ? getHeaders(e.response?.headers) : null;
1031
1049
  const statusCode = e.response?.status || e.response?.data0 || 0;
1032
1050
  const message = e.response?.data?.message;
1033
1051
  const error = createError({
@@ -1064,7 +1082,8 @@ function createHttpMiddleware$1(options) {
1064
1082
  retryConfig,
1065
1083
  getAbortController,
1066
1084
  includeOriginalRequest,
1067
- includeRequestInErrorResponse,
1085
+ includeRequestInErrorResponse = true,
1086
+ includeResponseHeaders = true,
1068
1087
  maskSensitiveHeaderData,
1069
1088
  httpClientOptions
1070
1089
  } = options;
@@ -1100,6 +1119,7 @@ function createHttpMiddleware$1(options) {
1100
1119
  headers: requestHeader,
1101
1120
  includeRequestInErrorResponse,
1102
1121
  maskSensitiveHeaderData,
1122
+ includeResponseHeaders,
1103
1123
  ...httpClientOptions
1104
1124
  };
1105
1125
  if (credentialsMode) {
@@ -1133,43 +1153,17 @@ function createHttpMiddleware$1(options) {
1133
1153
  };
1134
1154
  }
1135
1155
 
1136
- // error, info, success
1137
1156
  function createLoggerMiddleware$1(options) {
1138
1157
  return next => {
1139
1158
  return async request => {
1140
1159
  let response = await next(request);
1141
1160
  const originalResponse = Object.assign({}, response);
1142
1161
  const {
1143
- loggerFn = console.log,
1144
- // logLevel = 'ERROR',
1145
- maskSensitiveHeaderData = true,
1146
- includeOriginalRequest = true,
1147
- includeResponseHeaders = true
1148
- // includeRequestInErrorResponse
1162
+ loggerFn = console.log
1149
1163
  } = options || {};
1150
- if (includeOriginalRequest && maskSensitiveHeaderData) {
1151
- maskAuthData(response.request);
1152
- }
1153
- if (!includeOriginalRequest) {
1154
- const {
1155
- request,
1156
- ...rest
1157
- } = response;
1158
- response = rest;
1159
- }
1160
- if (!includeResponseHeaders) {
1161
- const {
1162
- headers,
1163
- ...rest
1164
- } = response;
1165
- response = rest;
1166
- }
1167
1164
  if (loggerFn && typeof loggerFn == 'function') {
1168
1165
  loggerFn(response);
1169
- // return originalResponse
1170
1166
  }
1171
-
1172
- // console.log({ Response: response })
1173
1167
  return originalResponse;
1174
1168
  };
1175
1169
  };
@@ -1221,7 +1215,7 @@ function createQueueMiddleware$1({
1221
1215
 
1222
1216
  var packageJson = {
1223
1217
  name: "@commercetools/ts-client",
1224
- version: "1.2.0",
1218
+ version: "2.0.0",
1225
1219
  engines: {
1226
1220
  node: ">=14"
1227
1221
  },
@@ -1257,7 +1251,7 @@ var packageJson = {
1257
1251
  "abort-controller": "3.0.0",
1258
1252
  buffer: "^6.0.3",
1259
1253
  "node-fetch": "^2.6.1",
1260
- uuid: "9.0.0"
1254
+ uuid: "9.0.1"
1261
1255
  },
1262
1256
  files: [
1263
1257
  "dist",
@@ -1272,15 +1266,16 @@ var packageJson = {
1272
1266
  },
1273
1267
  devDependencies: {
1274
1268
  "common-tags": "1.8.2",
1275
- dotenv: "16.3.1",
1276
- jest: "29.6.2",
1269
+ dotenv: "16.4.5",
1270
+ jest: "29.7.0",
1277
1271
  nock: "12.0.3",
1278
1272
  "organize-imports-cli": "0.10.0"
1279
1273
  },
1280
1274
  scripts: {
1281
1275
  organize_imports: "find src -type f -name '*.ts' | xargs organize-imports-cli",
1282
1276
  postbuild: "yarn organize_imports",
1283
- post_process_generate: "yarn organize_imports"
1277
+ post_process_generate: "yarn organize_imports",
1278
+ docs: "typedoc --out docs"
1284
1279
  }
1285
1280
  };
1286
1281
 
@@ -1288,7 +1283,7 @@ function createUserAgentMiddleware$1(options) {
1288
1283
  return next => async request => {
1289
1284
  const userAgent = createUserAgent({
1290
1285
  ...options,
1291
- name: `commercetools-sdk-javascript-v3/${packageJson.version}`
1286
+ name: `${options.name ? options.name + '/' : ''}commercetools-sdk-javascript-v3/${packageJson.version}`
1292
1287
  });
1293
1288
  const requestWithUserAgent = {
1294
1289
  ...request,
@@ -1310,7 +1305,7 @@ var middleware = /*#__PURE__*/Object.freeze({
1310
1305
  createAuthMiddlewareForRefreshTokenFlow: createAuthMiddlewareForRefreshTokenFlow$1,
1311
1306
  createConcurrentModificationMiddleware: createConcurrentModificationMiddleware$1,
1312
1307
  createCorrelationIdMiddleware: createCorrelationIdMiddleware$1,
1313
- createErrorMiddleware: createErrorMiddleware$1,
1308
+ createErrorMiddleware: createErrorMiddleware,
1314
1309
  createHttpMiddleware: createHttpMiddleware$1,
1315
1310
  createLoggerMiddleware: createLoggerMiddleware$1,
1316
1311
  createQueueMiddleware: createQueueMiddleware$1,
@@ -1453,7 +1448,13 @@ function createClient(middlewares) {
1453
1448
  reject,
1454
1449
  resolve,
1455
1450
  ...request
1456
- }).then(resolve).catch(reject);
1451
+ }).then(res => {
1452
+ if (res.error) {
1453
+ reject(res.error);
1454
+ } else {
1455
+ resolve(res);
1456
+ }
1457
+ }).catch(reject);
1457
1458
  });
1458
1459
  }
1459
1460
  };
@@ -1470,8 +1471,7 @@ const {
1470
1471
  createLoggerMiddleware,
1471
1472
  createQueueMiddleware,
1472
1473
  createUserAgentMiddleware,
1473
- createConcurrentModificationMiddleware,
1474
- createErrorMiddleware
1474
+ createConcurrentModificationMiddleware
1475
1475
  } = middleware;
1476
1476
  class ClientBuilder {
1477
1477
  constructor() {
@@ -1483,7 +1483,9 @@ class ClientBuilder {
1483
1483
  _defineProperty(this, "loggerMiddleware", void 0);
1484
1484
  _defineProperty(this, "queueMiddleware", void 0);
1485
1485
  _defineProperty(this, "concurrentMiddleware", void 0);
1486
- _defineProperty(this, "errorMiddleware", void 0);
1486
+ _defineProperty(this, "telemetryMiddleware", void 0);
1487
+ _defineProperty(this, "beforeMiddleware", void 0);
1488
+ _defineProperty(this, "afterMiddleware", void 0);
1487
1489
  _defineProperty(this, "middlewares", []);
1488
1490
  this.userAgentMiddleware = createUserAgentMiddleware({});
1489
1491
  }
@@ -1602,30 +1604,49 @@ class ClientBuilder {
1602
1604
  });
1603
1605
  return this;
1604
1606
  }
1605
- withConcurrentModificationMiddleware() {
1606
- this.concurrentMiddleware = createConcurrentModificationMiddleware();
1607
+ withConcurrentModificationMiddleware(options) {
1608
+ this.concurrentMiddleware = createConcurrentModificationMiddleware(options?.concurrentModificationHandlerFn);
1607
1609
  return this;
1608
1610
  }
1609
- withErrorMiddleware(options) {
1610
- this.errorMiddleware = createErrorMiddleware(options);
1611
+ withTelemetryMiddleware(options) {
1612
+ const {
1613
+ createTelemetryMiddleware,
1614
+ ...rest
1615
+ } = options;
1616
+ this.withUserAgentMiddleware({
1617
+ customAgent: rest?.userAgent || 'typescript-sdk-apm-middleware'
1618
+ });
1619
+ this.telemetryMiddleware = createTelemetryMiddleware(rest);
1620
+ return this;
1621
+ }
1622
+ withBeforeExecutionMiddleware(options) {
1623
+ const {
1624
+ middleware,
1625
+ ...rest
1626
+ } = options || {};
1627
+ this.beforeMiddleware = options.middleware(rest);
1628
+ return this;
1629
+ }
1630
+ withAfterExecutionMiddleware(options) {
1631
+ const {
1632
+ middleware,
1633
+ ...rest
1634
+ } = options || {};
1635
+ this.afterMiddleware = options.middleware(rest);
1611
1636
  return this;
1612
1637
  }
1613
1638
  build() {
1614
1639
  const middlewares = this.middlewares.slice();
1615
-
1616
- /**
1617
- * - use default retry policy if not explicity added
1618
- * - add retry middleware to be used by concurrent modification
1619
- * middleware if not explicitly added as part of the middleware
1620
- */
1640
+ if (this.telemetryMiddleware) middlewares.push(this.telemetryMiddleware);
1621
1641
  if (this.correlationIdMiddleware) middlewares.push(this.correlationIdMiddleware);
1622
1642
  if (this.userAgentMiddleware) middlewares.push(this.userAgentMiddleware);
1623
1643
  if (this.authMiddleware) middlewares.push(this.authMiddleware);
1644
+ if (this.beforeMiddleware) middlewares.push(this.beforeMiddleware);
1624
1645
  if (this.queueMiddleware) middlewares.push(this.queueMiddleware);
1625
1646
  if (this.loggerMiddleware) middlewares.push(this.loggerMiddleware);
1626
- if (this.errorMiddleware) middlewares.push(this.errorMiddleware);
1627
1647
  if (this.concurrentMiddleware) middlewares.push(this.concurrentMiddleware);
1628
1648
  if (this.httpMiddleware) middlewares.push(this.httpMiddleware);
1649
+ if (this.afterMiddleware) middlewares.push(this.afterMiddleware);
1629
1650
  return createClient({
1630
1651
  middlewares
1631
1652
  });
@@ -1,2 +1,2 @@
1
1
  export * from "./declarations/src/index";
2
- //# sourceMappingURL=commercetools-ts-client.cjs.d.ts.map
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVyY2V0b29scy10cy1jbGllbnQuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuL2RlY2xhcmF0aW9ucy9zcmMvaW5kZXguZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9