@webex/internal-plugin-encryption 3.0.0-beta.4 → 3.0.0-beta.400

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 (42) hide show
  1. package/README.md +1 -3
  2. package/dist/config.js +0 -9
  3. package/dist/config.js.map +1 -1
  4. package/dist/constants.js +14 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/encryption.js +25 -74
  7. package/dist/encryption.js.map +1 -1
  8. package/dist/ensure-buffer.browser.js +0 -12
  9. package/dist/ensure-buffer.browser.js.map +1 -1
  10. package/dist/ensure-buffer.js +5 -12
  11. package/dist/ensure-buffer.js.map +1 -1
  12. package/dist/index.js +7 -33
  13. package/dist/index.js.map +1 -1
  14. package/dist/kms-batcher.js +7 -30
  15. package/dist/kms-batcher.js.map +1 -1
  16. package/dist/kms-certificate-validation.js +24 -90
  17. package/dist/kms-certificate-validation.js.map +1 -1
  18. package/dist/kms-dry-error-interceptor.js +1 -23
  19. package/dist/kms-dry-error-interceptor.js.map +1 -1
  20. package/dist/kms-errors.js +21 -51
  21. package/dist/kms-errors.js.map +1 -1
  22. package/dist/kms.js +88 -218
  23. package/dist/kms.js.map +1 -1
  24. package/package.json +15 -15
  25. package/src/config.js +3 -3
  26. package/src/constants.js +3 -0
  27. package/src/encryption.js +74 -57
  28. package/src/ensure-buffer.browser.js +0 -1
  29. package/src/ensure-buffer.js +5 -5
  30. package/src/index.js +120 -96
  31. package/src/kms-batcher.js +53 -45
  32. package/src/kms-certificate-validation.js +48 -50
  33. package/src/kms-dry-error-interceptor.js +8 -4
  34. package/src/kms-errors.js +47 -16
  35. package/src/kms.js +219 -212
  36. package/test/integration/spec/encryption.js +313 -231
  37. package/test/integration/spec/kms.js +532 -405
  38. package/test/integration/spec/payload-transfom.js +69 -69
  39. package/test/unit/spec/encryption.js +21 -18
  40. package/test/unit/spec/kms-certificate-validation.js +76 -34
  41. package/test/unit/spec/kms-errors.js +70 -0
  42. package/test/unit/spec/kms.js +103 -0
@@ -1,54 +1,35 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
-
5
4
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
6
-
7
5
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
8
-
9
6
  _Object$defineProperty(exports, "__esModule", {
10
7
  value: true
11
8
  });
12
-
13
- exports.KmsTimeoutError = exports.KmsError = exports.DryError = void 0;
14
-
9
+ exports.handleKmsKeyRevokedEncryptionFailure = exports.KmsTimeoutError = exports.KmsError = exports.DryError = void 0;
15
10
  var _defineProperties = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/define-properties"));
16
-
17
11
  var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
18
-
19
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
20
-
21
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
22
-
23
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
24
-
25
15
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
26
-
27
16
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
28
-
29
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
30
-
31
18
  var _common = require("@webex/common");
32
-
33
19
  var _webexCore = require("@webex/webex-core");
34
-
20
+ var _constants = require("./constants");
35
21
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
36
-
37
22
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
38
-
39
23
  /**
40
24
  * Error class for KMS errors
41
25
  */
42
26
  var KmsError = /*#__PURE__*/function (_Exception) {
43
27
  (0, _inherits2.default)(KmsError, _Exception);
44
-
45
28
  var _super = _createSuper(KmsError);
46
-
47
29
  function KmsError() {
48
30
  (0, _classCallCheck2.default)(this, KmsError);
49
31
  return _super.apply(this, arguments);
50
32
  }
51
-
52
33
  (0, _createClass2.default)(KmsError, [{
53
34
  key: "parse",
54
35
  value:
@@ -77,19 +58,21 @@ var KmsError = /*#__PURE__*/function (_Exception) {
77
58
  }
78
59
  });
79
60
  var message = typeof body === 'string' ? body : body.reason;
80
-
81
61
  if (!message) {
82
62
  message = this.constructor.defaultMessage;
83
63
  }
84
-
85
64
  if (body.status) {
86
65
  message += "\nKMS_RESPONSE_STATUS: ".concat(body.status);
87
66
  }
88
-
89
67
  if (body.requestId) {
90
68
  message += "\nKMS_REQUEST_ID: ".concat(body.requestId);
91
69
  }
92
-
70
+ if (body.statusCode) {
71
+ message += "\nKMS_STATUS_CODE: ".concat(body.statusCode);
72
+ }
73
+ if (body.errorCode) {
74
+ message += "\nKMS_ErrorCode: ".concat(body.errorCode);
75
+ }
93
76
  return message;
94
77
  }
95
78
  }]);
@@ -98,21 +81,15 @@ var KmsError = /*#__PURE__*/function (_Exception) {
98
81
  /**
99
82
  * Thrown when an expected KMSResponse is not received in a timely manner
100
83
  */
101
-
102
-
103
84
  exports.KmsError = KmsError;
104
85
  (0, _defineProperty2.default)(KmsError, "defaultMessage", 'An unknown error occurred while communicating with the kms. This implies we received an error response without a body.');
105
-
106
86
  var KmsTimeoutError = /*#__PURE__*/function (_KmsError) {
107
87
  (0, _inherits2.default)(KmsTimeoutError, _KmsError);
108
-
109
88
  var _super2 = _createSuper(KmsTimeoutError);
110
-
111
89
  function KmsTimeoutError() {
112
90
  (0, _classCallCheck2.default)(this, KmsTimeoutError);
113
91
  return _super2.apply(this, arguments);
114
92
  }
115
-
116
93
  (0, _createClass2.default)(KmsTimeoutError, [{
117
94
  key: "parse",
118
95
  value:
@@ -123,22 +100,18 @@ var KmsTimeoutError = /*#__PURE__*/function (_KmsError) {
123
100
  */
124
101
  function parse() {
125
102
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
126
- _ref$request = _ref.request,
127
- request = _ref$request === void 0 ? {} : _ref$request,
128
- timeout = _ref.timeout;
129
-
103
+ _ref$request = _ref.request,
104
+ request = _ref$request === void 0 ? {} : _ref$request,
105
+ timeout = _ref.timeout;
130
106
  var message = "The KMS did not respond within ".concat(timeout ? "".concat(timeout, " milliseconds") : 'a timely fashion');
131
-
132
107
  if (request) {
133
108
  if (request.method && request.uri) {
134
109
  message += "\nKMS_REQUEST: ".concat(request.method, " ").concat(request.uri);
135
110
  }
136
-
137
111
  if (request.requestId) {
138
112
  message += "\nKMS_REQUEST_ID: ".concat(request.requestId);
139
113
  }
140
114
  }
141
-
142
115
  return message;
143
116
  }
144
117
  }]);
@@ -147,20 +120,14 @@ var KmsTimeoutError = /*#__PURE__*/function (_KmsError) {
147
120
  /**
148
121
  * Emitted when a REST request includes an encrypter error
149
122
  */
150
-
151
-
152
123
  exports.KmsTimeoutError = KmsTimeoutError;
153
-
154
124
  var DryError = /*#__PURE__*/function (_WebexHttpError) {
155
125
  (0, _inherits2.default)(DryError, _WebexHttpError);
156
-
157
126
  var _super3 = _createSuper(DryError);
158
-
159
127
  function DryError() {
160
128
  (0, _classCallCheck2.default)(this, DryError);
161
129
  return _super3.apply(this, arguments);
162
130
  }
163
-
164
131
  (0, _createClass2.default)(DryError, [{
165
132
  key: "parse",
166
133
  value:
@@ -172,11 +139,9 @@ var DryError = /*#__PURE__*/function (_WebexHttpError) {
172
139
  (0, _apply.default)(_webexCore.WebexHttpError.prototype.parse, this, [reason._res]);
173
140
  var body = reason._res.body.message;
174
141
  var message = body.reason || body;
175
-
176
142
  if (!message) {
177
143
  message = this.constructor.defaultMessage;
178
144
  }
179
-
180
145
  if (this.options.url) {
181
146
  message += "\n".concat(this.options.method, " ").concat(this.options.url);
182
147
  } else if (this.options.uri) {
@@ -184,17 +149,13 @@ var DryError = /*#__PURE__*/function (_WebexHttpError) {
184
149
  } else {
185
150
  message += "\n".concat(this.options.method, " ").concat(this.options.service.toUpperCase(), "/").concat(this.options.resource);
186
151
  }
187
-
188
152
  message += "\nWEBEX_TRACKING_ID: ".concat(this.options.headers.trackingid);
189
-
190
153
  if (body.status) {
191
154
  message += "\nKMS_RESPONSE_STATUS: ".concat(body.status);
192
155
  }
193
-
194
156
  if (body.requestId) {
195
157
  message += "\nKMS_REQUEST_ID: ".concat(body.requestId);
196
158
  }
197
-
198
159
  (0, _defineProperties.default)(this, {
199
160
  reason: {
200
161
  enumerable: false,
@@ -214,7 +175,16 @@ var DryError = /*#__PURE__*/function (_WebexHttpError) {
214
175
  }]);
215
176
  return DryError;
216
177
  }(_webexCore.WebexHttpError);
217
-
178
+ /**
179
+ * Function triggers an event when specific encryption failures are received.
180
+ */
181
+ // eslint-disable-next-line consistent-return
218
182
  exports.DryError = DryError;
219
183
  (0, _defineProperty2.default)(DryError, "defaultMessage", 'An unknown error was received from a service that proxies to the KMS');
184
+ var handleKmsKeyRevokedEncryptionFailure = function handleKmsKeyRevokedEncryptionFailure(item, webex) {
185
+ if (item.status === _constants.KMS_KEY_REVOKE_ERROR_STATUS && _constants.KMS_KEY_REVOKE_ERROR_CODES.includes(item.body.errorCode)) {
186
+ webex.internal.encryption.trigger(_constants.KMS_KEY_REVOKE_FAILURE);
187
+ }
188
+ };
189
+ exports.handleKmsKeyRevokedEncryptionFailure = handleKmsKeyRevokedEncryptionFailure;
220
190
  //# sourceMappingURL=kms-errors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["KmsError","body","enumerable","value","reason","requestId","status","message","constructor","defaultMessage","Exception","KmsTimeoutError","request","timeout","method","uri","DryError","WebexHttpError","prototype","parse","_res","options","url","service","toUpperCase","resource","headers","trackingid"],"sources":["kms-errors.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Exception} from '@webex/common';\nimport {WebexHttpError} from '@webex/webex-core';\n\n/**\n * Error class for KMS errors\n */\nexport class KmsError extends Exception {\n static defaultMessage = 'An unknown error occurred while communicating with the kms. This implies we received an error response without a body.';\n\n /**\n * @param {HttpResponse} body\n * @returns {string}\n */\n parse(body) {\n body = body.body || body;\n\n Object.defineProperties(this, {\n body: {\n enumerable: false,\n value: body\n },\n reason: {\n enumerable: false,\n value: body.reason\n },\n requestId: {\n enumerable: false,\n value: body.requestId\n },\n status: {\n enumerable: false,\n value: body.status\n }\n });\n\n let message = typeof body === 'string' ? body : body.reason;\n\n if (!message) {\n message = this.constructor.defaultMessage;\n }\n if (body.status) {\n message += `\\nKMS_RESPONSE_STATUS: ${body.status}`;\n }\n if (body.requestId) {\n message += `\\nKMS_REQUEST_ID: ${body.requestId}`;\n }\n\n return message;\n }\n}\n\n/**\n * Thrown when an expected KMSResponse is not received in a timely manner\n */\nexport class KmsTimeoutError extends KmsError {\n /**\n * @param {KmsRequest} options.request\n * @param {KmsRequest} options.timeout\n * @returns {string}\n */\n parse({request = {}, timeout} = {}) {\n let message = `The KMS did not respond within ${timeout ? `${timeout} milliseconds` : 'a timely fashion'}`;\n\n if (request) {\n if (request.method && request.uri) {\n message += `\\nKMS_REQUEST: ${request.method} ${request.uri}`;\n }\n\n if (request.requestId) {\n message += `\\nKMS_REQUEST_ID: ${request.requestId}`;\n }\n }\n\n return message;\n }\n}\n\n/**\n * Emitted when a REST request includes an encrypter error\n */\nexport class DryError extends WebexHttpError {\n static defaultMessage = 'An unknown error was received from a service that proxies to the KMS';\n\n /**\n * @param {WebexHttpError} reason\n * @returns {string}\n */\n parse(reason) {\n Reflect.apply(WebexHttpError.prototype.parse, this, [reason._res]);\n const body = reason._res.body.message;\n\n let message = body.reason || body;\n\n if (!message) {\n message = this.constructor.defaultMessage;\n }\n if (this.options.url) {\n message += `\\n${this.options.method} ${this.options.url}`;\n }\n else if (this.options.uri) {\n message += `\\n${this.options.method} ${this.options.uri}`;\n }\n else {\n message += `\\n${this.options.method} ${this.options.service.toUpperCase()}/${this.options.resource}`;\n }\n message += `\\nWEBEX_TRACKING_ID: ${this.options.headers.trackingid}`;\n\n if (body.status) {\n message += `\\nKMS_RESPONSE_STATUS: ${body.status}`;\n }\n if (body.requestId) {\n message += `\\nKMS_REQUEST_ID: ${body.requestId}`;\n }\n\n Object.defineProperties(this, {\n reason: {\n enumerable: false,\n value: body.reason\n },\n requestId: {\n enumerable: false,\n value: body.requestId\n },\n status: {\n enumerable: false,\n value: body.status\n }\n });\n\n return message;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;AACA;;;;;;AAEA;AACA;AACA;IACaA,Q;;;;;;;;;;;;;IAGX;AACF;AACA;AACA;IACE,eAAMC,IAAN,EAAY;MACVA,IAAI,GAAGA,IAAI,CAACA,IAAL,IAAaA,IAApB;MAEA,+BAAwB,IAAxB,EAA8B;QAC5BA,IAAI,EAAE;UACJC,UAAU,EAAE,KADR;UAEJC,KAAK,EAAEF;QAFH,CADsB;QAK5BG,MAAM,EAAE;UACNF,UAAU,EAAE,KADN;UAENC,KAAK,EAAEF,IAAI,CAACG;QAFN,CALoB;QAS5BC,SAAS,EAAE;UACTH,UAAU,EAAE,KADH;UAETC,KAAK,EAAEF,IAAI,CAACI;QAFH,CATiB;QAa5BC,MAAM,EAAE;UACNJ,UAAU,EAAE,KADN;UAENC,KAAK,EAAEF,IAAI,CAACK;QAFN;MAboB,CAA9B;MAmBA,IAAIC,OAAO,GAAG,OAAON,IAAP,KAAgB,QAAhB,GAA2BA,IAA3B,GAAkCA,IAAI,CAACG,MAArD;;MAEA,IAAI,CAACG,OAAL,EAAc;QACZA,OAAO,GAAG,KAAKC,WAAL,CAAiBC,cAA3B;MACD;;MACD,IAAIR,IAAI,CAACK,MAAT,EAAiB;QACfC,OAAO,qCAA8BN,IAAI,CAACK,MAAnC,CAAP;MACD;;MACD,IAAIL,IAAI,CAACI,SAAT,EAAoB;QAClBE,OAAO,gCAAyBN,IAAI,CAACI,SAA9B,CAAP;MACD;;MAED,OAAOE,OAAP;IACD;;;EA1C2BG,iB;AA6C9B;AACA;AACA;;;;8BA/CaV,Q,oBACa,wH;;IA+CbW,e;;;;;;;;;;;;;IACX;AACF;AACA;AACA;AACA;IACE,iBAAoC;MAAA,+EAAJ,EAAI;MAAA,wBAA7BC,OAA6B;MAAA,IAA7BA,OAA6B,6BAAnB,EAAmB;MAAA,IAAfC,OAAe,QAAfA,OAAe;;MAClC,IAAIN,OAAO,4CAAqCM,OAAO,aAAMA,OAAN,qBAA+B,kBAA3E,CAAX;;MAEA,IAAID,OAAJ,EAAa;QACX,IAAIA,OAAO,CAACE,MAAR,IAAkBF,OAAO,CAACG,GAA9B,EAAmC;UACjCR,OAAO,6BAAsBK,OAAO,CAACE,MAA9B,cAAwCF,OAAO,CAACG,GAAhD,CAAP;QACD;;QAED,IAAIH,OAAO,CAACP,SAAZ,EAAuB;UACrBE,OAAO,gCAAyBK,OAAO,CAACP,SAAjC,CAAP;QACD;MACF;;MAED,OAAOE,OAAP;IACD;;;EApBkCP,Q;AAuBrC;AACA;AACA;;;;;IACagB,Q;;;;;;;;;;;;;IAGX;AACF;AACA;AACA;IACE,eAAMZ,MAAN,EAAc;MACZ,oBAAca,yBAAA,CAAeC,SAAf,CAAyBC,KAAvC,EAA8C,IAA9C,EAAoD,CAACf,MAAM,CAACgB,IAAR,CAApD;MACA,IAAMnB,IAAI,GAAGG,MAAM,CAACgB,IAAP,CAAYnB,IAAZ,CAAiBM,OAA9B;MAEA,IAAIA,OAAO,GAAGN,IAAI,CAACG,MAAL,IAAeH,IAA7B;;MAEA,IAAI,CAACM,OAAL,EAAc;QACZA,OAAO,GAAG,KAAKC,WAAL,CAAiBC,cAA3B;MACD;;MACD,IAAI,KAAKY,OAAL,CAAaC,GAAjB,EAAsB;QACpBf,OAAO,gBAAS,KAAKc,OAAL,CAAaP,MAAtB,cAAgC,KAAKO,OAAL,CAAaC,GAA7C,CAAP;MACD,CAFD,MAGK,IAAI,KAAKD,OAAL,CAAaN,GAAjB,EAAsB;QACzBR,OAAO,gBAAS,KAAKc,OAAL,CAAaP,MAAtB,cAAgC,KAAKO,OAAL,CAAaN,GAA7C,CAAP;MACD,CAFI,MAGA;QACHR,OAAO,gBAAS,KAAKc,OAAL,CAAaP,MAAtB,cAAgC,KAAKO,OAAL,CAAaE,OAAb,CAAqBC,WAArB,EAAhC,cAAsE,KAAKH,OAAL,CAAaI,QAAnF,CAAP;MACD;;MACDlB,OAAO,mCAA4B,KAAKc,OAAL,CAAaK,OAAb,CAAqBC,UAAjD,CAAP;;MAEA,IAAI1B,IAAI,CAACK,MAAT,EAAiB;QACfC,OAAO,qCAA8BN,IAAI,CAACK,MAAnC,CAAP;MACD;;MACD,IAAIL,IAAI,CAACI,SAAT,EAAoB;QAClBE,OAAO,gCAAyBN,IAAI,CAACI,SAA9B,CAAP;MACD;;MAED,+BAAwB,IAAxB,EAA8B;QAC5BD,MAAM,EAAE;UACNF,UAAU,EAAE,KADN;UAENC,KAAK,EAAEF,IAAI,CAACG;QAFN,CADoB;QAK5BC,SAAS,EAAE;UACTH,UAAU,EAAE,KADH;UAETC,KAAK,EAAEF,IAAI,CAACI;QAFH,CALiB;QAS5BC,MAAM,EAAE;UACNJ,UAAU,EAAE,KADN;UAENC,KAAK,EAAEF,IAAI,CAACK;QAFN;MAToB,CAA9B;MAeA,OAAOC,OAAP;IACD;;;EAlD2BU,yB;;;8BAAjBD,Q,oBACa,sE"}
1
+ {"version":3,"names":["KmsError","body","enumerable","value","reason","requestId","status","message","constructor","defaultMessage","statusCode","errorCode","Exception","KmsTimeoutError","request","timeout","method","uri","DryError","WebexHttpError","prototype","parse","_res","options","url","service","toUpperCase","resource","headers","trackingid","handleKmsKeyRevokedEncryptionFailure","item","webex","KMS_KEY_REVOKE_ERROR_STATUS","KMS_KEY_REVOKE_ERROR_CODES","includes","internal","encryption","trigger","KMS_KEY_REVOKE_FAILURE"],"sources":["kms-errors.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Exception} from '@webex/common';\nimport {WebexHttpError} from '@webex/webex-core';\n\nimport {\n KMS_KEY_REVOKE_ERROR_CODES,\n KMS_KEY_REVOKE_FAILURE,\n KMS_KEY_REVOKE_ERROR_STATUS,\n} from './constants';\n\n/**\n * Error class for KMS errors\n */\nexport class KmsError extends Exception {\n static defaultMessage =\n 'An unknown error occurred while communicating with the kms. This implies we received an error response without a body.';\n\n /**\n * @param {HttpResponse} body\n * @returns {string}\n */\n parse(body) {\n body = body.body || body;\n\n Object.defineProperties(this, {\n body: {\n enumerable: false,\n value: body,\n },\n reason: {\n enumerable: false,\n value: body.reason,\n },\n requestId: {\n enumerable: false,\n value: body.requestId,\n },\n status: {\n enumerable: false,\n value: body.status,\n },\n });\n\n let message = typeof body === 'string' ? body : body.reason;\n\n if (!message) {\n message = this.constructor.defaultMessage;\n }\n if (body.status) {\n message += `\\nKMS_RESPONSE_STATUS: ${body.status}`;\n }\n if (body.requestId) {\n message += `\\nKMS_REQUEST_ID: ${body.requestId}`;\n }\n\n if (body.statusCode) {\n message += `\\nKMS_STATUS_CODE: ${body.statusCode}`;\n }\n\n if (body.errorCode) {\n message += `\\nKMS_ErrorCode: ${body.errorCode}`;\n }\n\n return message;\n }\n}\n\n/**\n * Thrown when an expected KMSResponse is not received in a timely manner\n */\nexport class KmsTimeoutError extends KmsError {\n /**\n * @param {KmsRequest} options.request\n * @param {KmsRequest} options.timeout\n * @returns {string}\n */\n parse({request = {}, timeout} = {}) {\n let message = `The KMS did not respond within ${\n timeout ? `${timeout} milliseconds` : 'a timely fashion'\n }`;\n\n if (request) {\n if (request.method && request.uri) {\n message += `\\nKMS_REQUEST: ${request.method} ${request.uri}`;\n }\n\n if (request.requestId) {\n message += `\\nKMS_REQUEST_ID: ${request.requestId}`;\n }\n }\n\n return message;\n }\n}\n\n/**\n * Emitted when a REST request includes an encrypter error\n */\nexport class DryError extends WebexHttpError {\n static defaultMessage = 'An unknown error was received from a service that proxies to the KMS';\n\n /**\n * @param {WebexHttpError} reason\n * @returns {string}\n */\n parse(reason) {\n Reflect.apply(WebexHttpError.prototype.parse, this, [reason._res]);\n const body = reason._res.body.message;\n\n let message = body.reason || body;\n\n if (!message) {\n message = this.constructor.defaultMessage;\n }\n if (this.options.url) {\n message += `\\n${this.options.method} ${this.options.url}`;\n } else if (this.options.uri) {\n message += `\\n${this.options.method} ${this.options.uri}`;\n } else {\n message += `\\n${this.options.method} ${this.options.service.toUpperCase()}/${\n this.options.resource\n }`;\n }\n message += `\\nWEBEX_TRACKING_ID: ${this.options.headers.trackingid}`;\n\n if (body.status) {\n message += `\\nKMS_RESPONSE_STATUS: ${body.status}`;\n }\n if (body.requestId) {\n message += `\\nKMS_REQUEST_ID: ${body.requestId}`;\n }\n\n Object.defineProperties(this, {\n reason: {\n enumerable: false,\n value: body.reason,\n },\n requestId: {\n enumerable: false,\n value: body.requestId,\n },\n status: {\n enumerable: false,\n value: body.status,\n },\n });\n\n return message;\n }\n}\n\n/**\n * Function triggers an event when specific encryption failures are received.\n */\n\n// eslint-disable-next-line consistent-return\nexport const handleKmsKeyRevokedEncryptionFailure = (item, webex) => {\n if (\n item.status === KMS_KEY_REVOKE_ERROR_STATUS &&\n KMS_KEY_REVOKE_ERROR_CODES.includes(item.body.errorCode)\n ) {\n webex.internal.encryption.trigger(KMS_KEY_REVOKE_FAILURE);\n }\n};\n"],"mappings":"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"}