@webex/webex-core 2.59.2 → 2.59.3-next.1

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 (189) hide show
  1. package/.eslintrc.js +6 -6
  2. package/README.md +79 -79
  3. package/babel.config.js +3 -3
  4. package/dist/config.js +24 -24
  5. package/dist/config.js.map +1 -1
  6. package/dist/credentials-config.js +56 -56
  7. package/dist/credentials-config.js.map +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/interceptors/auth.js +28 -28
  10. package/dist/interceptors/auth.js.map +1 -1
  11. package/dist/interceptors/default-options.js +24 -24
  12. package/dist/interceptors/default-options.js.map +1 -1
  13. package/dist/interceptors/embargo.js +9 -9
  14. package/dist/interceptors/embargo.js.map +1 -1
  15. package/dist/interceptors/network-timing.js +19 -19
  16. package/dist/interceptors/network-timing.js.map +1 -1
  17. package/dist/interceptors/payload-transformer.js +19 -19
  18. package/dist/interceptors/payload-transformer.js.map +1 -1
  19. package/dist/interceptors/rate-limit.js +40 -40
  20. package/dist/interceptors/rate-limit.js.map +1 -1
  21. package/dist/interceptors/redirect.js +13 -13
  22. package/dist/interceptors/redirect.js.map +1 -1
  23. package/dist/interceptors/request-event.js +23 -23
  24. package/dist/interceptors/request-event.js.map +1 -1
  25. package/dist/interceptors/request-logger.js +13 -13
  26. package/dist/interceptors/request-logger.js.map +1 -1
  27. package/dist/interceptors/request-timing.js +23 -23
  28. package/dist/interceptors/request-timing.js.map +1 -1
  29. package/dist/interceptors/response-logger.js +19 -19
  30. package/dist/interceptors/response-logger.js.map +1 -1
  31. package/dist/interceptors/user-agent.js +29 -29
  32. package/dist/interceptors/user-agent.js.map +1 -1
  33. package/dist/interceptors/webex-tracking-id.js +15 -15
  34. package/dist/interceptors/webex-tracking-id.js.map +1 -1
  35. package/dist/interceptors/webex-user-agent.js +13 -13
  36. package/dist/interceptors/webex-user-agent.js.map +1 -1
  37. package/dist/lib/batcher.js +83 -83
  38. package/dist/lib/batcher.js.map +1 -1
  39. package/dist/lib/credentials/credentials.js +103 -103
  40. package/dist/lib/credentials/credentials.js.map +1 -1
  41. package/dist/lib/credentials/grant-errors.js +17 -17
  42. package/dist/lib/credentials/grant-errors.js.map +1 -1
  43. package/dist/lib/credentials/index.js +2 -2
  44. package/dist/lib/credentials/index.js.map +1 -1
  45. package/dist/lib/credentials/scope.js +11 -11
  46. package/dist/lib/credentials/scope.js.map +1 -1
  47. package/dist/lib/credentials/token-collection.js +2 -2
  48. package/dist/lib/credentials/token-collection.js.map +1 -1
  49. package/dist/lib/credentials/token.js +145 -145
  50. package/dist/lib/credentials/token.js.map +1 -1
  51. package/dist/lib/page.js +49 -49
  52. package/dist/lib/page.js.map +1 -1
  53. package/dist/lib/services/constants.js.map +1 -1
  54. package/dist/lib/services/index.js +2 -2
  55. package/dist/lib/services/index.js.map +1 -1
  56. package/dist/lib/services/interceptors/server-error.js +9 -9
  57. package/dist/lib/services/interceptors/server-error.js.map +1 -1
  58. package/dist/lib/services/interceptors/service.js +24 -24
  59. package/dist/lib/services/interceptors/service.js.map +1 -1
  60. package/dist/lib/services/metrics.js.map +1 -1
  61. package/dist/lib/services/service-catalog.js +104 -104
  62. package/dist/lib/services/service-catalog.js.map +1 -1
  63. package/dist/lib/services/service-fed-ramp.js.map +1 -1
  64. package/dist/lib/services/service-host.js +134 -134
  65. package/dist/lib/services/service-host.js.map +1 -1
  66. package/dist/lib/services/service-registry.js +175 -175
  67. package/dist/lib/services/service-registry.js.map +1 -1
  68. package/dist/lib/services/service-state.js +38 -38
  69. package/dist/lib/services/service-state.js.map +1 -1
  70. package/dist/lib/services/service-url.js +31 -31
  71. package/dist/lib/services/service-url.js.map +1 -1
  72. package/dist/lib/services/services.js +245 -245
  73. package/dist/lib/services/services.js.map +1 -1
  74. package/dist/lib/stateless-webex-plugin.js +28 -28
  75. package/dist/lib/stateless-webex-plugin.js.map +1 -1
  76. package/dist/lib/storage/decorators.js +27 -27
  77. package/dist/lib/storage/decorators.js.map +1 -1
  78. package/dist/lib/storage/errors.js +4 -4
  79. package/dist/lib/storage/errors.js.map +1 -1
  80. package/dist/lib/storage/index.js.map +1 -1
  81. package/dist/lib/storage/make-webex-plugin-store.js +44 -44
  82. package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
  83. package/dist/lib/storage/make-webex-store.js +40 -40
  84. package/dist/lib/storage/make-webex-store.js.map +1 -1
  85. package/dist/lib/storage/memory-store-adapter.js +9 -9
  86. package/dist/lib/storage/memory-store-adapter.js.map +1 -1
  87. package/dist/lib/webex-core-plugin-mixin.js +13 -13
  88. package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
  89. package/dist/lib/webex-http-error.js +9 -9
  90. package/dist/lib/webex-http-error.js.map +1 -1
  91. package/dist/lib/webex-internal-core-plugin-mixin.js +13 -13
  92. package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
  93. package/dist/lib/webex-plugin.js +36 -36
  94. package/dist/lib/webex-plugin.js.map +1 -1
  95. package/dist/plugins/logger.js +9 -9
  96. package/dist/plugins/logger.js.map +1 -1
  97. package/dist/webex-core.js +104 -104
  98. package/dist/webex-core.js.map +1 -1
  99. package/dist/webex-internal-core.js +12 -12
  100. package/dist/webex-internal-core.js.map +1 -1
  101. package/jest.config.js +3 -3
  102. package/package.json +20 -19
  103. package/process +1 -1
  104. package/src/config.js +90 -90
  105. package/src/credentials-config.js +212 -212
  106. package/src/index.js +62 -62
  107. package/src/interceptors/auth.js +186 -186
  108. package/src/interceptors/default-options.js +55 -55
  109. package/src/interceptors/embargo.js +43 -43
  110. package/src/interceptors/network-timing.js +54 -54
  111. package/src/interceptors/payload-transformer.js +55 -55
  112. package/src/interceptors/rate-limit.js +169 -169
  113. package/src/interceptors/redirect.js +106 -106
  114. package/src/interceptors/request-event.js +93 -93
  115. package/src/interceptors/request-logger.js +78 -78
  116. package/src/interceptors/request-timing.js +65 -65
  117. package/src/interceptors/response-logger.js +98 -98
  118. package/src/interceptors/user-agent.js +77 -77
  119. package/src/interceptors/webex-tracking-id.js +73 -73
  120. package/src/interceptors/webex-user-agent.js +79 -79
  121. package/src/lib/batcher.js +307 -307
  122. package/src/lib/credentials/credentials.js +552 -552
  123. package/src/lib/credentials/grant-errors.js +92 -92
  124. package/src/lib/credentials/index.js +16 -16
  125. package/src/lib/credentials/scope.js +34 -34
  126. package/src/lib/credentials/token-collection.js +17 -17
  127. package/src/lib/credentials/token.js +559 -559
  128. package/src/lib/page.js +159 -159
  129. package/src/lib/services/constants.js +9 -9
  130. package/src/lib/services/index.js +26 -26
  131. package/src/lib/services/interceptors/server-error.js +48 -48
  132. package/src/lib/services/interceptors/service.js +101 -101
  133. package/src/lib/services/metrics.js +4 -4
  134. package/src/lib/services/service-catalog.js +435 -435
  135. package/src/lib/services/service-fed-ramp.js +4 -4
  136. package/src/lib/services/service-host.js +267 -267
  137. package/src/lib/services/service-registry.js +465 -465
  138. package/src/lib/services/service-state.js +78 -78
  139. package/src/lib/services/service-url.js +124 -124
  140. package/src/lib/services/services.js +1018 -1018
  141. package/src/lib/stateless-webex-plugin.js +98 -98
  142. package/src/lib/storage/decorators.js +220 -220
  143. package/src/lib/storage/errors.js +15 -15
  144. package/src/lib/storage/index.js +10 -10
  145. package/src/lib/storage/make-webex-plugin-store.js +211 -211
  146. package/src/lib/storage/make-webex-store.js +140 -140
  147. package/src/lib/storage/memory-store-adapter.js +79 -79
  148. package/src/lib/webex-core-plugin-mixin.js +114 -114
  149. package/src/lib/webex-http-error.js +61 -61
  150. package/src/lib/webex-internal-core-plugin-mixin.js +107 -107
  151. package/src/lib/webex-plugin.js +222 -222
  152. package/src/plugins/logger.js +60 -60
  153. package/src/webex-core.js +745 -745
  154. package/src/webex-internal-core.js +46 -46
  155. package/test/integration/spec/credentials/credentials.js +139 -139
  156. package/test/integration/spec/credentials/token.js +102 -102
  157. package/test/integration/spec/services/service-catalog.js +838 -838
  158. package/test/integration/spec/services/services.js +1221 -1221
  159. package/test/integration/spec/webex-core.js +178 -178
  160. package/test/unit/spec/_setup.js +44 -44
  161. package/test/unit/spec/credentials/credentials.js +1017 -1017
  162. package/test/unit/spec/credentials/token.js +441 -441
  163. package/test/unit/spec/interceptors/auth.js +521 -521
  164. package/test/unit/spec/interceptors/default-options.js +84 -84
  165. package/test/unit/spec/interceptors/embargo.js +144 -144
  166. package/test/unit/spec/interceptors/network-timing.js +49 -49
  167. package/test/unit/spec/interceptors/payload-transformer.js +155 -155
  168. package/test/unit/spec/interceptors/rate-limit.js +302 -302
  169. package/test/unit/spec/interceptors/redirect.js +102 -102
  170. package/test/unit/spec/interceptors/request-timing.js +92 -92
  171. package/test/unit/spec/interceptors/user-agent.js +76 -76
  172. package/test/unit/spec/interceptors/webex-tracking-id.js +76 -76
  173. package/test/unit/spec/interceptors/webex-user-agent.js +159 -159
  174. package/test/unit/spec/lib/batcher.js +330 -330
  175. package/test/unit/spec/lib/page.js +148 -148
  176. package/test/unit/spec/lib/webex-plugin.js +48 -48
  177. package/test/unit/spec/services/interceptors/server-error.js +204 -204
  178. package/test/unit/spec/services/interceptors/service.js +188 -188
  179. package/test/unit/spec/services/service-catalog.js +194 -194
  180. package/test/unit/spec/services/service-host.js +260 -260
  181. package/test/unit/spec/services/service-registry.js +747 -747
  182. package/test/unit/spec/services/service-state.js +60 -60
  183. package/test/unit/spec/services/service-url.js +258 -258
  184. package/test/unit/spec/services/services.js +348 -348
  185. package/test/unit/spec/storage/persist.js +50 -50
  186. package/test/unit/spec/storage/storage-adapter.js +12 -12
  187. package/test/unit/spec/storage/wait-for-value.js +81 -81
  188. package/test/unit/spec/webex-core.js +253 -253
  189. package/test/unit/spec/webex-internal-core.js +91 -91
@@ -15,8 +15,8 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
15
15
  var _common = require("@webex/common");
16
16
  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); }; }
17
17
  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; } }
18
- /**
19
- * General storage layer error
18
+ /**
19
+ * General storage layer error
20
20
  */
21
21
  var StorageError = /*#__PURE__*/function (_Exception) {
22
22
  (0, _inherits2.default)(StorageError, _Exception);
@@ -27,8 +27,8 @@ var StorageError = /*#__PURE__*/function (_Exception) {
27
27
  }
28
28
  return (0, _createClass2.default)(StorageError);
29
29
  }(_common.Exception);
30
- /**
31
- * StorageError thrown when the storage layer does not contain the request key
30
+ /**
31
+ * StorageError thrown when the storage layer does not contain the request key
32
32
  */
33
33
  exports.StorageError = StorageError;
34
34
  var NotFoundError = /*#__PURE__*/function (_StorageError) {
@@ -1 +1 @@
1
- {"version":3,"names":["_common","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","StorageError","_Exception","_inherits2","_super","_classCallCheck2","_createClass2","Exception","exports","NotFoundError","_StorageError","_super2"],"sources":["errors.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Exception} from '@webex/common';\n\n/**\n * General storage layer error\n */\nexport class StorageError extends Exception {}\n\n/**\n * StorageError thrown when the storage layer does not contain the request key\n */\nexport class NotFoundError extends StorageError {}\n"],"mappings":";;;;;;;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAAwC,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAExC;AACA;AACA;AAFA,IAGaC,YAAY,0BAAAC,UAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,YAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,YAAA;EAAA,SAAAA,aAAA;IAAA,IAAAI,gBAAA,CAAApB,OAAA,QAAAgB,YAAA;IAAA,OAAAG,MAAA,CAAAb,KAAA,OAAAD,SAAA;EAAA;EAAA,WAAAgB,aAAA,CAAArB,OAAA,EAAAgB,YAAA;AAAA,EAASM,iBAAS;AAE3C;AACA;AACA;AAFAC,OAAA,CAAAP,YAAA,GAAAA,YAAA;AAAA,IAGaQ,aAAa,0BAAAC,aAAA;EAAA,IAAAP,UAAA,CAAAlB,OAAA,EAAAwB,aAAA,EAAAC,aAAA;EAAA,IAAAC,OAAA,GAAAjC,YAAA,CAAA+B,aAAA;EAAA,SAAAA,cAAA;IAAA,IAAAJ,gBAAA,CAAApB,OAAA,QAAAwB,aAAA;IAAA,OAAAE,OAAA,CAAApB,KAAA,OAAAD,SAAA;EAAA;EAAA,WAAAgB,aAAA,CAAArB,OAAA,EAAAwB,aAAA;AAAA,EAASR,YAAY;AAAAO,OAAA,CAAAC,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"names":["_common","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","StorageError","_Exception","_inherits2","_super","_classCallCheck2","_createClass2","Exception","exports","NotFoundError","_StorageError","_super2"],"sources":["errors.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {Exception} from '@webex/common';\r\n\r\n/**\r\n * General storage layer error\r\n */\r\nexport class StorageError extends Exception {}\r\n\r\n/**\r\n * StorageError thrown when the storage layer does not contain the request key\r\n */\r\nexport class NotFoundError extends StorageError {}\r\n"],"mappings":";;;;;;;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAAwC,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAExC;AACA;AACA;AAFA,IAGaC,YAAY,0BAAAC,UAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,YAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,YAAA;EAAA,SAAAA,aAAA;IAAA,IAAAI,gBAAA,CAAApB,OAAA,QAAAgB,YAAA;IAAA,OAAAG,MAAA,CAAAb,KAAA,OAAAD,SAAA;EAAA;EAAA,WAAAgB,aAAA,CAAArB,OAAA,EAAAgB,YAAA;AAAA,EAASM,iBAAS;AAE3C;AACA;AACA;AAFAC,OAAA,CAAAP,YAAA,GAAAA,YAAA;AAAA,IAGaQ,aAAa,0BAAAC,aAAA;EAAA,IAAAP,UAAA,CAAAlB,OAAA,EAAAwB,aAAA,EAAAC,aAAA;EAAA,IAAAC,OAAA,GAAAjC,YAAA,CAAA+B,aAAA;EAAA,SAAAA,cAAA;IAAA,IAAAJ,gBAAA,CAAApB,OAAA,QAAAwB,aAAA;IAAA,OAAAE,OAAA,CAAApB,KAAA,OAAAD,SAAA;EAAA;EAAA,WAAAgB,aAAA,CAAArB,OAAA,EAAAwB,aAAA;AAAA,EAASR,YAAY;AAAAO,OAAA,CAAAC,aAAA,GAAAA,aAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_decorators","require","_makeWebexStore","_interopRequireDefault","_makeWebexPluginStore","_memoryStoreAdapter","_errors"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport {persist, waitForValue} from './decorators';\nexport {default as makeWebexStore} from './make-webex-store';\nexport {default as makeWebexPluginStore} from './make-webex-plugin-store';\n\nexport {default as MemoryStoreAdapter} from './memory-store-adapter';\nexport {StorageError, NotFoundError} from './errors';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA"}
1
+ {"version":3,"names":["_decorators","require","_makeWebexStore","_interopRequireDefault","_makeWebexPluginStore","_memoryStoreAdapter","_errors"],"sources":["index.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nexport {persist, waitForValue} from './decorators';\r\nexport {default as makeWebexStore} from './make-webex-store';\r\nexport {default as makeWebexPluginStore} from './make-webex-plugin-store';\r\n\r\nexport {default as MemoryStoreAdapter} from './memory-store-adapter';\r\nexport {StorageError, NotFoundError} from './errors';\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,mBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA"}
@@ -18,17 +18,17 @@ var _isObject2 = _interopRequireDefault(require("lodash/isObject"));
18
18
  var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
19
19
  var _common = require("@webex/common");
20
20
  var _errors = require("./errors");
21
- /*!
22
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
21
+ /*!
22
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
23
23
  */
24
24
 
25
25
  var defers = new _weakMap.default();
26
26
 
27
- /**
28
- * Walks an object before writing it to the store and omits empty arrays
29
- * @private
30
- * @param {Object} value
31
- * @returns {Object}
27
+ /**
28
+ * Walks an object before writing it to the store and omits empty arrays
29
+ * @private
30
+ * @param {Object} value
31
+ * @returns {Object}
32
32
  */
33
33
  function serialize(value) {
34
34
  if (!(0, _isObject2.default)(value)) {
@@ -58,37 +58,37 @@ function serialize(value) {
58
58
  return serialized;
59
59
  }
60
60
 
61
- /**
62
- * [makeWebexPluginStorage description]
63
- * @param {[type]} type
64
- * @param {[type]} context
65
- * @private
66
- * @returns {[type]}
61
+ /**
62
+ * [makeWebexPluginStorage description]
63
+ * @param {[type]} type
64
+ * @param {[type]} context
65
+ * @private
66
+ * @returns {[type]}
67
67
  */
68
68
  function makeWebexPluginStorage(type, context) {
69
69
  var _dec, _class;
70
- /**
71
- * Interface between WebexPlugin and Webex#boundeStorage or
72
- * Webex#unboundedStorage
70
+ /**
71
+ * Interface between WebexPlugin and Webex#boundeStorage or
72
+ * Webex#unboundedStorage
73
73
  */
74
74
  var WebexPluginStorage = (_dec = (0, _common.oneFlight)({
75
75
  keyFactory: function keyFactory(key) {
76
76
  return "initValue-".concat(key);
77
77
  }
78
78
  }), (_class = /*#__PURE__*/function () {
79
- /**
80
- * @param {Object} attrs
81
- * @param {Object} options
82
- * @returns {WebexPluginStorage}
79
+ /**
80
+ * @param {Object} attrs
81
+ * @param {Object} options
82
+ * @returns {WebexPluginStorage}
83
83
  */
84
84
  function WebexPluginStorage() {
85
85
  (0, _classCallCheck2.default)(this, WebexPluginStorage);
86
86
  defers.set(this, new _map.default());
87
87
  }
88
88
 
89
- /**
90
- * Clears an entire namespace
91
- * @returns {Promise}
89
+ /**
90
+ * Clears an entire namespace
91
+ * @returns {Promise}
92
92
  */
93
93
  (0, _createClass2.default)(WebexPluginStorage, [{
94
94
  key: "clear",
@@ -96,10 +96,10 @@ function makeWebexPluginStorage(type, context) {
96
96
  return context.webex["".concat(type, "Storage")].del(context.getNamespace());
97
97
  }
98
98
 
99
- /**
100
- * Deletes the specified key from the store
101
- * @param {string} key
102
- * @returns {[type]}
99
+ /**
100
+ * Deletes the specified key from the store
101
+ * @param {string} key
102
+ * @returns {[type]}
103
103
  */
104
104
  }, {
105
105
  key: "del",
@@ -111,11 +111,11 @@ function makeWebexPluginStorage(type, context) {
111
111
  return (_context$webex = context.webex["".concat(type, "Storage")]).del.apply(_context$webex, [context.getNamespace()].concat(args));
112
112
  }
113
113
 
114
- /**
115
- * Retrieves the value specified by key from the store. Rejects with
116
- * NotFoundError if no value can be found
117
- * @param {string} key
118
- * @returns {Promise}
114
+ /**
115
+ * Retrieves the value specified by key from the store. Rejects with
116
+ * NotFoundError if no value can be found
117
+ * @param {string} key
118
+ * @returns {Promise}
119
119
  */
120
120
  }, {
121
121
  key: "get",
@@ -131,11 +131,11 @@ function makeWebexPluginStorage(type, context) {
131
131
  });
132
132
  }
133
133
 
134
- /**
135
- * Writes a value to the store
136
- * @param {string} key
137
- * @param {any} value
138
- * @returns {Promise}
134
+ /**
135
+ * Writes a value to the store
136
+ * @param {string} key
137
+ * @param {any} value
138
+ * @returns {Promise}
139
139
  */
140
140
  }, {
141
141
  key: "put",
@@ -143,13 +143,13 @@ function makeWebexPluginStorage(type, context) {
143
143
  return context.webex["".concat(type, "Storage")].put(context.getNamespace(), key, serialize(value));
144
144
  }
145
145
 
146
- /**
147
- * Returns a Promise that won't resolve until the value specified by key has
148
- * been attempted to be loaded from the store. This allows us to lazily
149
- * prevent certain method from executing until the specified keys have been
150
- * retrieved from the store.
151
- * @param {string} key
152
- * @returns {Promise}
146
+ /**
147
+ * Returns a Promise that won't resolve until the value specified by key has
148
+ * been attempted to be loaded from the store. This allows us to lazily
149
+ * prevent certain method from executing until the specified keys have been
150
+ * retrieved from the store.
151
+ * @param {string} key
152
+ * @returns {Promise}
153
153
  */
154
154
  }, {
155
155
  key: "waitFor",
@@ -1 +1 @@
1
- {"version":3,"names":["_common","require","_errors","defers","_weakMap","default","serialize","value","_isObject2","serialized","_keys","forEach","key","val","_isArray2","length","undefined","map","k","empty","reduce","acc","makeWebexPluginStorage","type","context","_dec","_class","WebexPluginStorage","oneFlight","keyFactory","concat","_classCallCheck2","set","_map","_createClass2","clear","webex","del","getNamespace","_context$webex","_len","arguments","args","Array","_key","apply","get","defer","Defer","then","res","resolve","put","waitFor","logger","debug","promise","initValue","parent","_result2","catch","reason","NotFoundError","process","env","NODE_ENV","toString","includes","warn","reject","_applyDecoratedDescriptor2","prototype","_getOwnPropertyDescriptor"],"sources":["make-webex-plugin-store.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Defer, oneFlight} from '@webex/common';\nimport {isArray, isObject, result} from 'lodash';\n\nimport {NotFoundError} from './errors';\n\nconst defers = new WeakMap();\n\n/**\n * Walks an object before writing it to the store and omits empty arrays\n * @private\n * @param {Object} value\n * @returns {Object}\n */\nfunction serialize(value) {\n if (!isObject(value)) {\n return value;\n }\n\n const serialized = value.serialize ? value.serialize() : value;\n\n Object.keys(serialized).forEach((key) => {\n const val = serialized[key];\n\n if (isArray(val)) {\n if (val.length === 0) {\n serialized[key] = undefined;\n } else {\n serialized[key] = val.map(serialize);\n }\n } else if (isObject(val)) {\n Object.keys(val).forEach((k) => {\n val[k] = serialize(val[k]);\n });\n }\n });\n\n const empty = Object.keys(serialized).reduce((acc, key) => acc && !serialized[key], true);\n\n if (empty) {\n return undefined;\n }\n\n return serialized;\n}\n\n/**\n * [makeWebexPluginStorage description]\n * @param {[type]} type\n * @param {[type]} context\n * @private\n * @returns {[type]}\n */\nexport default function makeWebexPluginStorage(type, context) {\n /**\n * Interface between WebexPlugin and Webex#boundeStorage or\n * Webex#unboundedStorage\n */\n class WebexPluginStorage {\n /**\n * @param {Object} attrs\n * @param {Object} options\n * @returns {WebexPluginStorage}\n */\n constructor() {\n defers.set(this, new Map());\n }\n\n /**\n * Clears an entire namespace\n * @returns {Promise}\n */\n clear() {\n return context.webex[`${type}Storage`].del(context.getNamespace());\n }\n\n /**\n * Deletes the specified key from the store\n * @param {string} key\n * @returns {[type]}\n */\n del(...args) {\n return context.webex[`${type}Storage`].del(context.getNamespace(), ...args);\n }\n\n /**\n * Retrieves the value specified by key from the store. Rejects with\n * NotFoundError if no value can be found\n * @param {string} key\n * @returns {Promise}\n */\n get(key) {\n let defer = defers.get(this).get(key);\n\n if (!defer) {\n defer = new Defer();\n defers.get(this).set(key, defer);\n }\n\n return context.webex[`${type}Storage`].get(context.getNamespace(), key).then((res) => {\n defer.resolve();\n\n return res;\n });\n }\n\n /**\n * Writes a value to the store\n * @param {string} key\n * @param {any} value\n * @returns {Promise}\n */\n put(key, value) {\n return context.webex[`${type}Storage`].put(context.getNamespace(), key, serialize(value));\n }\n\n /**\n * Returns a Promise that won't resolve until the value specified by key has\n * been attempted to be loaded from the store. This allows us to lazily\n * prevent certain method from executing until the specified keys have been\n * retrieved from the store.\n * @param {string} key\n * @returns {Promise}\n */\n waitFor(key) {\n context.logger.debug(\n `plugin-storage(${context.getNamespace()}): waiting to init key \\`${key}\\``\n );\n const defer = defers.get(this).get(key);\n\n if (defer) {\n context.logger.debug(\n `plugin-storage(${context.getNamespace()}): already inited \\`${key}\\``\n );\n\n return defer.promise;\n }\n\n context.logger.debug(`plugin-storage(${context.getNamespace()}): initing \\`${key}\\``);\n\n return this.initValue(key);\n }\n\n @oneFlight({keyFactory: (key) => `initValue-${key}`})\n /**\n * Attempts to load the specified key from the store and set it on the parent\n * object.\n * @param {string} key\n * @returns {Promise} Resolves (but not with the retrieved value) when\n * the value retrieval complete\n */\n // suppress doc warning because decorators confuse eslint\n // eslint-disable-next-line require-jsdoc\n initValue(key) {\n const defer = new Defer();\n\n defers.get(this).set(key, defer);\n\n // Intentionally bypasses this.get so we don't resolve the promise until\n // after the parent value is set.\n context.webex[`${type}Storage`]\n .get(context.getNamespace(), key)\n .then((value) => {\n context.logger.debug(\n `plugin-storage(${context.getNamespace()}): got \\`${key}\\` for first time`\n );\n if (key === '@') {\n context.parent.set(value);\n } else if (result(context[key], 'isState')) {\n context[key].set(value);\n } else {\n context.set(key, value);\n }\n context.logger.debug(\n `plugin-storage(${context.getNamespace()}): set \\`${key}\\` for first time`\n );\n defer.resolve();\n context.logger.debug(`plugin-storage(${context.getNamespace()}): inited \\`${key}\\``);\n })\n .catch((reason) => {\n // The next conditional is a bit of an unfortunate solution to deal\n // with circular dependencies in unit tests. It should not effect\n // integration tests or production code.\n if (\n reason instanceof NotFoundError ||\n (process.env.NODE_ENV !== 'production' &&\n reason.toString().includes('MockNotFoundError'))\n ) {\n context.logger.debug(\n `plugin-storage(${context.getNamespace()}): no data for \\`${key}\\`, continuing`\n );\n\n return defer.resolve();\n }\n context.logger.warn(\n `plugin-storage(${context.getNamespace()}): failed to init \\`${key}\\``,\n reason\n );\n\n return defer.reject(reason);\n });\n\n return defer.promise;\n }\n }\n\n return new WebexPluginStorage();\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_common","require","_errors","defers","_weakMap","default","serialize","value","_isObject2","serialized","_keys","forEach","key","val","_isArray2","length","undefined","map","k","empty","reduce","acc","makeWebexPluginStorage","type","context","_dec","_class","WebexPluginStorage","oneFlight","keyFactory","concat","_classCallCheck2","set","_map","_createClass2","clear","webex","del","getNamespace","_context$webex","_len","arguments","args","Array","_key","apply","get","defer","Defer","then","res","resolve","put","waitFor","logger","debug","promise","initValue","parent","_result2","catch","reason","NotFoundError","process","env","NODE_ENV","toString","includes","warn","reject","_applyDecoratedDescriptor2","prototype","_getOwnPropertyDescriptor"],"sources":["make-webex-plugin-store.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {Defer, oneFlight} from '@webex/common';\r\nimport {isArray, isObject, result} from 'lodash';\r\n\r\nimport {NotFoundError} from './errors';\r\n\r\nconst defers = new WeakMap();\r\n\r\n/**\r\n * Walks an object before writing it to the store and omits empty arrays\r\n * @private\r\n * @param {Object} value\r\n * @returns {Object}\r\n */\r\nfunction serialize(value) {\r\n if (!isObject(value)) {\r\n return value;\r\n }\r\n\r\n const serialized = value.serialize ? value.serialize() : value;\r\n\r\n Object.keys(serialized).forEach((key) => {\r\n const val = serialized[key];\r\n\r\n if (isArray(val)) {\r\n if (val.length === 0) {\r\n serialized[key] = undefined;\r\n } else {\r\n serialized[key] = val.map(serialize);\r\n }\r\n } else if (isObject(val)) {\r\n Object.keys(val).forEach((k) => {\r\n val[k] = serialize(val[k]);\r\n });\r\n }\r\n });\r\n\r\n const empty = Object.keys(serialized).reduce((acc, key) => acc && !serialized[key], true);\r\n\r\n if (empty) {\r\n return undefined;\r\n }\r\n\r\n return serialized;\r\n}\r\n\r\n/**\r\n * [makeWebexPluginStorage description]\r\n * @param {[type]} type\r\n * @param {[type]} context\r\n * @private\r\n * @returns {[type]}\r\n */\r\nexport default function makeWebexPluginStorage(type, context) {\r\n /**\r\n * Interface between WebexPlugin and Webex#boundeStorage or\r\n * Webex#unboundedStorage\r\n */\r\n class WebexPluginStorage {\r\n /**\r\n * @param {Object} attrs\r\n * @param {Object} options\r\n * @returns {WebexPluginStorage}\r\n */\r\n constructor() {\r\n defers.set(this, new Map());\r\n }\r\n\r\n /**\r\n * Clears an entire namespace\r\n * @returns {Promise}\r\n */\r\n clear() {\r\n return context.webex[`${type}Storage`].del(context.getNamespace());\r\n }\r\n\r\n /**\r\n * Deletes the specified key from the store\r\n * @param {string} key\r\n * @returns {[type]}\r\n */\r\n del(...args) {\r\n return context.webex[`${type}Storage`].del(context.getNamespace(), ...args);\r\n }\r\n\r\n /**\r\n * Retrieves the value specified by key from the store. Rejects with\r\n * NotFoundError if no value can be found\r\n * @param {string} key\r\n * @returns {Promise}\r\n */\r\n get(key) {\r\n let defer = defers.get(this).get(key);\r\n\r\n if (!defer) {\r\n defer = new Defer();\r\n defers.get(this).set(key, defer);\r\n }\r\n\r\n return context.webex[`${type}Storage`].get(context.getNamespace(), key).then((res) => {\r\n defer.resolve();\r\n\r\n return res;\r\n });\r\n }\r\n\r\n /**\r\n * Writes a value to the store\r\n * @param {string} key\r\n * @param {any} value\r\n * @returns {Promise}\r\n */\r\n put(key, value) {\r\n return context.webex[`${type}Storage`].put(context.getNamespace(), key, serialize(value));\r\n }\r\n\r\n /**\r\n * Returns a Promise that won't resolve until the value specified by key has\r\n * been attempted to be loaded from the store. This allows us to lazily\r\n * prevent certain method from executing until the specified keys have been\r\n * retrieved from the store.\r\n * @param {string} key\r\n * @returns {Promise}\r\n */\r\n waitFor(key) {\r\n context.logger.debug(\r\n `plugin-storage(${context.getNamespace()}): waiting to init key \\`${key}\\``\r\n );\r\n const defer = defers.get(this).get(key);\r\n\r\n if (defer) {\r\n context.logger.debug(\r\n `plugin-storage(${context.getNamespace()}): already inited \\`${key}\\``\r\n );\r\n\r\n return defer.promise;\r\n }\r\n\r\n context.logger.debug(`plugin-storage(${context.getNamespace()}): initing \\`${key}\\``);\r\n\r\n return this.initValue(key);\r\n }\r\n\r\n @oneFlight({keyFactory: (key) => `initValue-${key}`})\r\n /**\r\n * Attempts to load the specified key from the store and set it on the parent\r\n * object.\r\n * @param {string} key\r\n * @returns {Promise} Resolves (but not with the retrieved value) when\r\n * the value retrieval complete\r\n */\r\n // suppress doc warning because decorators confuse eslint\r\n // eslint-disable-next-line require-jsdoc\r\n initValue(key) {\r\n const defer = new Defer();\r\n\r\n defers.get(this).set(key, defer);\r\n\r\n // Intentionally bypasses this.get so we don't resolve the promise until\r\n // after the parent value is set.\r\n context.webex[`${type}Storage`]\r\n .get(context.getNamespace(), key)\r\n .then((value) => {\r\n context.logger.debug(\r\n `plugin-storage(${context.getNamespace()}): got \\`${key}\\` for first time`\r\n );\r\n if (key === '@') {\r\n context.parent.set(value);\r\n } else if (result(context[key], 'isState')) {\r\n context[key].set(value);\r\n } else {\r\n context.set(key, value);\r\n }\r\n context.logger.debug(\r\n `plugin-storage(${context.getNamespace()}): set \\`${key}\\` for first time`\r\n );\r\n defer.resolve();\r\n context.logger.debug(`plugin-storage(${context.getNamespace()}): inited \\`${key}\\``);\r\n })\r\n .catch((reason) => {\r\n // The next conditional is a bit of an unfortunate solution to deal\r\n // with circular dependencies in unit tests. It should not effect\r\n // integration tests or production code.\r\n if (\r\n reason instanceof NotFoundError ||\r\n (process.env.NODE_ENV !== 'production' &&\r\n reason.toString().includes('MockNotFoundError'))\r\n ) {\r\n context.logger.debug(\r\n `plugin-storage(${context.getNamespace()}): no data for \\`${key}\\`, continuing`\r\n );\r\n\r\n return defer.resolve();\r\n }\r\n context.logger.warn(\r\n `plugin-storage(${context.getNamespace()}): failed to init \\`${key}\\``,\r\n reason\r\n );\r\n\r\n return defer.reject(reason);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n }\r\n\r\n return new WebexPluginStorage();\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAGA,IAAAC,OAAA,GAAAD,OAAA;AAPA;AACA;AACA;;AAOA,IAAME,MAAM,GAAG,IAAAC,QAAA,CAAAC,OAAA,EAAa;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,SAASA,CAACC,KAAK,EAAE;EACxB,IAAI,CAAC,IAAAC,UAAA,CAAAH,OAAA,EAASE,KAAK,CAAC,EAAE;IACpB,OAAOA,KAAK;EACd;EAEA,IAAME,UAAU,GAAGF,KAAK,CAACD,SAAS,GAAGC,KAAK,CAACD,SAAS,EAAE,GAAGC,KAAK;EAE9D,IAAAG,KAAA,CAAAL,OAAA,EAAYI,UAAU,CAAC,CAACE,OAAO,CAAC,UAACC,GAAG,EAAK;IACvC,IAAMC,GAAG,GAAGJ,UAAU,CAACG,GAAG,CAAC;IAE3B,IAAI,IAAAE,SAAA,CAAAT,OAAA,EAAQQ,GAAG,CAAC,EAAE;MAChB,IAAIA,GAAG,CAACE,MAAM,KAAK,CAAC,EAAE;QACpBN,UAAU,CAACG,GAAG,CAAC,GAAGI,SAAS;MAC7B,CAAC,MAAM;QACLP,UAAU,CAACG,GAAG,CAAC,GAAGC,GAAG,CAACI,GAAG,CAACX,SAAS,CAAC;MACtC;IACF,CAAC,MAAM,IAAI,IAAAE,UAAA,CAAAH,OAAA,EAASQ,GAAG,CAAC,EAAE;MACxB,IAAAH,KAAA,CAAAL,OAAA,EAAYQ,GAAG,CAAC,CAACF,OAAO,CAAC,UAACO,CAAC,EAAK;QAC9BL,GAAG,CAACK,CAAC,CAAC,GAAGZ,SAAS,CAACO,GAAG,CAACK,CAAC,CAAC,CAAC;MAC5B,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EAEF,IAAMC,KAAK,GAAG,IAAAT,KAAA,CAAAL,OAAA,EAAYI,UAAU,CAAC,CAACW,MAAM,CAAC,UAACC,GAAG,EAAET,GAAG;IAAA,OAAKS,GAAG,IAAI,CAACZ,UAAU,CAACG,GAAG,CAAC;EAAA,GAAE,IAAI,CAAC;EAEzF,IAAIO,KAAK,EAAE;IACT,OAAOH,SAAS;EAClB;EAEA,OAAOP,UAAU;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASa,sBAAsBA,CAACC,IAAI,EAAEC,OAAO,EAAE;EAAA,IAAAC,IAAA,EAAAC,MAAA;EAC5D;AACF;AACA;AACA;EAHE,IAIMC,kBAAkB,IAAAF,IAAA,GAqFrB,IAAAG,iBAAS,EAAC;IAACC,UAAU,EAAE,SAAAA,WAACjB,GAAG;MAAA,oBAAAkB,MAAA,CAAkBlB,GAAG;IAAA;EAAE,CAAC,CAAC,GAAAc,MAAA;IApFrD;AACJ;AACA;AACA;AACA;IACI,SAAAC,mBAAA,EAAc;MAAA,IAAAI,gBAAA,CAAA1B,OAAA,QAAAsB,kBAAA;MACZxB,MAAM,CAAC6B,GAAG,CAAC,IAAI,EAAE,IAAAC,IAAA,CAAA5B,OAAA,EAAS,CAAC;IAC7B;;IAEA;AACJ;AACA;AACA;IAHI,IAAA6B,aAAA,CAAA7B,OAAA,EAAAsB,kBAAA;MAAAf,GAAA;MAAAL,KAAA,EAIA,SAAA4B,MAAA,EAAQ;QACN,OAAOX,OAAO,CAACY,KAAK,IAAAN,MAAA,CAAIP,IAAI,aAAU,CAACc,GAAG,CAACb,OAAO,CAACc,YAAY,EAAE,CAAC;MACpE;;MAEA;AACJ;AACA;AACA;AACA;IAJI;MAAA1B,GAAA;MAAAL,KAAA,EAKA,SAAA8B,IAAA,EAAa;QAAA,IAAAE,cAAA;QAAA,SAAAC,IAAA,GAAAC,SAAA,CAAA1B,MAAA,EAAN2B,IAAI,OAAAC,KAAA,CAAAH,IAAA,GAAAI,IAAA,MAAAA,IAAA,GAAAJ,IAAA,EAAAI,IAAA;UAAJF,IAAI,CAAAE,IAAA,IAAAH,SAAA,CAAAG,IAAA;QAAA;QACT,OAAO,CAAAL,cAAA,GAAAf,OAAO,CAACY,KAAK,IAAAN,MAAA,CAAIP,IAAI,aAAU,EAACc,GAAG,CAAAQ,KAAA,CAAAN,cAAA,GAACf,OAAO,CAACc,YAAY,EAAE,EAAAR,MAAA,CAAKY,IAAI,EAAC;MAC7E;;MAEA;AACJ;AACA;AACA;AACA;AACA;IALI;MAAA9B,GAAA;MAAAL,KAAA,EAMA,SAAAuC,IAAIlC,GAAG,EAAE;QACP,IAAImC,KAAK,GAAG5C,MAAM,CAAC2C,GAAG,CAAC,IAAI,CAAC,CAACA,GAAG,CAAClC,GAAG,CAAC;QAErC,IAAI,CAACmC,KAAK,EAAE;UACVA,KAAK,GAAG,IAAIC,aAAK,EAAE;UACnB7C,MAAM,CAAC2C,GAAG,CAAC,IAAI,CAAC,CAACd,GAAG,CAACpB,GAAG,EAAEmC,KAAK,CAAC;QAClC;QAEA,OAAOvB,OAAO,CAACY,KAAK,IAAAN,MAAA,CAAIP,IAAI,aAAU,CAACuB,GAAG,CAACtB,OAAO,CAACc,YAAY,EAAE,EAAE1B,GAAG,CAAC,CAACqC,IAAI,CAAC,UAACC,GAAG,EAAK;UACpFH,KAAK,CAACI,OAAO,EAAE;UAEf,OAAOD,GAAG;QACZ,CAAC,CAAC;MACJ;;MAEA;AACJ;AACA;AACA;AACA;AACA;IALI;MAAAtC,GAAA;MAAAL,KAAA,EAMA,SAAA6C,IAAIxC,GAAG,EAAEL,KAAK,EAAE;QACd,OAAOiB,OAAO,CAACY,KAAK,IAAAN,MAAA,CAAIP,IAAI,aAAU,CAAC6B,GAAG,CAAC5B,OAAO,CAACc,YAAY,EAAE,EAAE1B,GAAG,EAAEN,SAAS,CAACC,KAAK,CAAC,CAAC;MAC3F;;MAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IAPI;MAAAK,GAAA;MAAAL,KAAA,EAQA,SAAA8C,QAAQzC,GAAG,EAAE;QACXY,OAAO,CAAC8B,MAAM,CAACC,KAAK,mBAAAzB,MAAA,CACAN,OAAO,CAACc,YAAY,EAAE,8BAAAR,MAAA,CAA4BlB,GAAG,OACxE;QACD,IAAMmC,KAAK,GAAG5C,MAAM,CAAC2C,GAAG,CAAC,IAAI,CAAC,CAACA,GAAG,CAAClC,GAAG,CAAC;QAEvC,IAAImC,KAAK,EAAE;UACTvB,OAAO,CAAC8B,MAAM,CAACC,KAAK,mBAAAzB,MAAA,CACAN,OAAO,CAACc,YAAY,EAAE,yBAAAR,MAAA,CAAuBlB,GAAG,OACnE;UAED,OAAOmC,KAAK,CAACS,OAAO;QACtB;QAEAhC,OAAO,CAAC8B,MAAM,CAACC,KAAK,mBAAAzB,MAAA,CAAmBN,OAAO,CAACc,YAAY,EAAE,kBAAAR,MAAA,CAAgBlB,GAAG,OAAK;QAErF,OAAO,IAAI,CAAC6C,SAAS,CAAC7C,GAAG,CAAC;MAC5B;IAAC;MAAAA,GAAA;MAAAL,KAAA,EAED,SAAAkD,UAUU7C,GAAG,EAAE;QACb,IAAMmC,KAAK,GAAG,IAAIC,aAAK,EAAE;QAEzB7C,MAAM,CAAC2C,GAAG,CAAC,IAAI,CAAC,CAACd,GAAG,CAACpB,GAAG,EAAEmC,KAAK,CAAC;;QAEhC;QACA;QACAvB,OAAO,CAACY,KAAK,IAAAN,MAAA,CAAIP,IAAI,aAAU,CAC5BuB,GAAG,CAACtB,OAAO,CAACc,YAAY,EAAE,EAAE1B,GAAG,CAAC,CAChCqC,IAAI,CAAC,UAAC1C,KAAK,EAAK;UACfiB,OAAO,CAAC8B,MAAM,CAACC,KAAK,mBAAAzB,MAAA,CACAN,OAAO,CAACc,YAAY,EAAE,cAAAR,MAAA,CAAYlB,GAAG,sBACxD;UACD,IAAIA,GAAG,KAAK,GAAG,EAAE;YACfY,OAAO,CAACkC,MAAM,CAAC1B,GAAG,CAACzB,KAAK,CAAC;UAC3B,CAAC,MAAM,IAAI,IAAAoD,QAAA,CAAAtD,OAAA,EAAOmB,OAAO,CAACZ,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE;YAC1CY,OAAO,CAACZ,GAAG,CAAC,CAACoB,GAAG,CAACzB,KAAK,CAAC;UACzB,CAAC,MAAM;YACLiB,OAAO,CAACQ,GAAG,CAACpB,GAAG,EAAEL,KAAK,CAAC;UACzB;UACAiB,OAAO,CAAC8B,MAAM,CAACC,KAAK,mBAAAzB,MAAA,CACAN,OAAO,CAACc,YAAY,EAAE,cAAAR,MAAA,CAAYlB,GAAG,sBACxD;UACDmC,KAAK,CAACI,OAAO,EAAE;UACf3B,OAAO,CAAC8B,MAAM,CAACC,KAAK,mBAAAzB,MAAA,CAAmBN,OAAO,CAACc,YAAY,EAAE,iBAAAR,MAAA,CAAelB,GAAG,OAAK;QACtF,CAAC,CAAC,CACDgD,KAAK,CAAC,UAACC,MAAM,EAAK;UACjB;UACA;UACA;UACA,IACEA,MAAM,YAAYC,qBAAa,IAC9BC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IACpCJ,MAAM,CAACK,QAAQ,EAAE,CAACC,QAAQ,CAAC,mBAAmB,CAAE,EAClD;YACA3C,OAAO,CAAC8B,MAAM,CAACC,KAAK,mBAAAzB,MAAA,CACAN,OAAO,CAACc,YAAY,EAAE,sBAAAR,MAAA,CAAoBlB,GAAG,mBAChE;YAED,OAAOmC,KAAK,CAACI,OAAO,EAAE;UACxB;UACA3B,OAAO,CAAC8B,MAAM,CAACc,IAAI,mBAAAtC,MAAA,CACCN,OAAO,CAACc,YAAY,EAAE,yBAAAR,MAAA,CAAuBlB,GAAG,QAClEiD,MAAM,CACP;UAED,OAAOd,KAAK,CAACsB,MAAM,CAACR,MAAM,CAAC;QAC7B,CAAC,CAAC;QAEJ,OAAOd,KAAK,CAACS,OAAO;MACtB;IAAC;IAAA,OAAA7B,kBAAA;EAAA,UAAA2C,0BAAA,CAAAjE,OAAA,EAAAqB,MAAA,CAAA6C,SAAA,gBAAA9C,IAAA,OAAA+C,yBAAA,CAAAnE,OAAA,EAAAqB,MAAA,CAAA6C,SAAA,gBAAA7C,MAAA,CAAA6C,SAAA,IAAA7C,MAAA;EAGH,OAAO,IAAIC,kBAAkB,EAAE;AACjC"}
@@ -16,33 +16,33 @@ var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-c
16
16
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
17
17
  var _ampersandEvents = _interopRequireDefault(require("ampersand-events"));
18
18
  var _common = require("@webex/common");
19
- /*!
20
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
19
+ /*!
20
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
21
21
  */
22
22
 
23
23
  var bindings = new _weakMap.default();
24
24
 
25
- /**
26
- * Makes a WebexStore for the specified type bound to the specified webex instance
27
- * @param {string} type
28
- * @param {ProxyWebex} webex
29
- * @private
30
- * @returns {WebexStore}
25
+ /**
26
+ * Makes a WebexStore for the specified type bound to the specified webex instance
27
+ * @param {string} type
28
+ * @param {ProxyWebex} webex
29
+ * @private
30
+ * @returns {WebexStore}
31
31
  */
32
32
  function makeWebexStore(type, webex) {
33
33
  var _dec, _class;
34
- /**
35
- * Lazy Key-Value Store Interface
34
+ /**
35
+ * Lazy Key-Value Store Interface
36
36
  */
37
37
  var WebexStore = (_dec = (0, _common.oneFlight)({
38
38
  keyFactory: function keyFactory(namespace) {
39
39
  return namespace;
40
40
  }
41
41
  }), (_class = /*#__PURE__*/function () {
42
- /**
43
- * @param {Object} attrs
44
- * @param {Object} options
45
- * @returns {Store}
42
+ /**
43
+ * @param {Object} attrs
44
+ * @param {Object} options
45
+ * @returns {Store}
46
46
  */
47
47
  function WebexStore() {
48
48
  (0, _classCallCheck2.default)(this, WebexStore);
@@ -50,9 +50,9 @@ function makeWebexStore(type, webex) {
50
50
  bindings.set(this, new _map.default());
51
51
  }
52
52
 
53
- /**
54
- * Provides easy access to the storage adapter identified in config.
55
- * @returns {Object}
53
+ /**
54
+ * Provides easy access to the storage adapter identified in config.
55
+ * @returns {Object}
56
56
  */
57
57
  (0, _createClass2.default)(WebexStore, [{
58
58
  key: "adapter",
@@ -60,8 +60,8 @@ function makeWebexStore(type, webex) {
60
60
  return webex.config.storage["".concat(type, "Adapter")];
61
61
  }
62
62
 
63
- /**
64
- * @returns {WeakMap}
63
+ /**
64
+ * @returns {WeakMap}
65
65
  */
66
66
  }, {
67
67
  key: "bindings",
@@ -69,9 +69,9 @@ function makeWebexStore(type, webex) {
69
69
  return bindings.get(this);
70
70
  }
71
71
 
72
- /**
73
- * Clears the store
74
- * @returns {Promise}
72
+ /**
73
+ * Clears the store
74
+ * @returns {Promise}
75
75
  */
76
76
  }, {
77
77
  key: "clear",
@@ -83,11 +83,11 @@ function makeWebexStore(type, webex) {
83
83
  return _promise.default.all(promises);
84
84
  }
85
85
 
86
- /**
87
- * Deletes the specified key from the store
88
- * @param {string} namespace
89
- * @param {string} key
90
- * @returns {[type]}
86
+ /**
87
+ * Deletes the specified key from the store
88
+ * @param {string} namespace
89
+ * @param {string} key
90
+ * @returns {[type]}
91
91
  */
92
92
  }, {
93
93
  key: "del",
@@ -98,12 +98,12 @@ function makeWebexStore(type, webex) {
98
98
  });
99
99
  }
100
100
 
101
- /**
102
- * Retrieves the value specified by key from the store. Rejects with
103
- * NotFoundError if no value can be found
104
- * @param {string} namespace
105
- * @param {string} key
106
- * @returns {Promise}
101
+ /**
102
+ * Retrieves the value specified by key from the store. Rejects with
103
+ * NotFoundError if no value can be found
104
+ * @param {string} namespace
105
+ * @param {string} key
106
+ * @returns {Promise}
107
107
  */
108
108
  }, {
109
109
  key: "get",
@@ -114,13 +114,13 @@ function makeWebexStore(type, webex) {
114
114
  });
115
115
  }
116
116
 
117
- /**
118
- * Writes a value to the store. Deletes the specified key from the store
119
- * if passed `undefined`
120
- * @param {string} namespace
121
- * @param {string} key
122
- * @param {any} value
123
- * @returns {Promise} Resolves with value (to simplify write-through caching)
117
+ /**
118
+ * Writes a value to the store. Deletes the specified key from the store
119
+ * if passed `undefined`
120
+ * @param {string} namespace
121
+ * @param {string} key
122
+ * @param {any} value
123
+ * @returns {Promise} Resolves with value (to simplify write-through caching)
124
124
  */
125
125
  }, {
126
126
  key: "put",
@@ -1 +1 @@
1
- {"version":3,"names":["_ampersandEvents","_interopRequireDefault","require","_common","bindings","_weakMap","default","makeWebexStore","type","webex","_dec","_class","WebexStore","oneFlight","keyFactory","namespace","_classCallCheck2","logger","debug","concat","set","_map","_createClass2","key","get","config","storage","value","clear","promises","forEach","binding","push","_promise","all","del","_getBinding","then","put","serialize","_this","resolve","adapter","bind","_binding","_applyDecoratedDescriptor2","prototype","_getOwnPropertyDescriptor","_assign","Events"],"sources":["make-webex-store.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport Events from 'ampersand-events';\nimport {oneFlight} from '@webex/common';\n\nconst bindings = new WeakMap();\n\n/**\n * Makes a WebexStore for the specified type bound to the specified webex instance\n * @param {string} type\n * @param {ProxyWebex} webex\n * @private\n * @returns {WebexStore}\n */\nexport default function makeWebexStore(type, webex) {\n /**\n * Lazy Key-Value Store Interface\n */\n class WebexStore {\n /**\n * @param {Object} attrs\n * @param {Object} options\n * @returns {Store}\n */\n constructor() {\n webex.logger.debug(`webex-store: constructing ${type}Storage`);\n bindings.set(this, new Map());\n }\n\n /**\n * Provides easy access to the storage adapter identified in config.\n * @returns {Object}\n */\n get adapter() {\n return webex.config.storage[`${type}Adapter`];\n }\n\n /**\n * @returns {WeakMap}\n */\n get bindings() {\n return bindings.get(this);\n }\n\n /**\n * Clears the store\n * @returns {Promise}\n */\n clear() {\n const promises = [];\n\n this.bindings.forEach((binding) => {\n promises.push(binding.clear());\n });\n\n return Promise.all(promises);\n }\n\n /**\n * Deletes the specified key from the store\n * @param {string} namespace\n * @param {string} key\n * @returns {[type]}\n */\n del(namespace, key) {\n webex.logger.debug(`webex-store: removing ${namespace}:${key}`);\n\n return this._getBinding(namespace).then((binding) => binding.del(key));\n }\n\n /**\n * Retrieves the value specified by key from the store. Rejects with\n * NotFoundError if no value can be found\n * @param {string} namespace\n * @param {string} key\n * @returns {Promise}\n */\n get(namespace, key) {\n webex.logger.debug(`webex-store: retrieving ${namespace}:${key}`);\n\n return this._getBinding(namespace).then((binding) => binding.get(key));\n }\n\n /**\n * Writes a value to the store. Deletes the specified key from the store\n * if passed `undefined`\n * @param {string} namespace\n * @param {string} key\n * @param {any} value\n * @returns {Promise} Resolves with value (to simplify write-through caching)\n */\n put(namespace, key, value) {\n if (typeof value === 'undefined') {\n return this.del(namespace, key);\n }\n webex.logger.debug(`webex-store: setting ${namespace}:${key}`);\n\n return this._getBinding(namespace)\n .then((binding) => binding.put(key, value.serialize ? value.serialize() : value))\n .then(() => value);\n }\n\n @oneFlight({keyFactory: (namespace) => namespace})\n /**\n * Creates an interface bound to the specified namespace\n * @param {string} namespace\n * @private\n * @returns {Promise}\n */\n // suppress doc warning because decorators confuse eslint\n // eslint-disable-next-line require-jsdoc\n _getBinding(namespace) {\n return new Promise((resolve) => {\n webex.logger.debug(`storage: getting binding for \\`${namespace}\\``);\n const binding = this.bindings.get(namespace);\n\n if (binding) {\n webex.logger.debug(`storage: found binding for \\`${namespace}\\``);\n\n return resolve(binding);\n }\n\n return resolve(\n this.adapter.bind(namespace, {logger: webex.logger}).then((_binding) => {\n webex.logger.debug(`storage: made binding for \\`${namespace}\\``);\n this.bindings.set(namespace, _binding);\n\n return _binding;\n })\n );\n });\n }\n }\n\n Object.assign(WebexStore.prototype, Events);\n\n return new WebexStore();\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_ampersandEvents","_interopRequireDefault","require","_common","bindings","_weakMap","default","makeWebexStore","type","webex","_dec","_class","WebexStore","oneFlight","keyFactory","namespace","_classCallCheck2","logger","debug","concat","set","_map","_createClass2","key","get","config","storage","value","clear","promises","forEach","binding","push","_promise","all","del","_getBinding","then","put","serialize","_this","resolve","adapter","bind","_binding","_applyDecoratedDescriptor2","prototype","_getOwnPropertyDescriptor","_assign","Events"],"sources":["make-webex-store.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport Events from 'ampersand-events';\r\nimport {oneFlight} from '@webex/common';\r\n\r\nconst bindings = new WeakMap();\r\n\r\n/**\r\n * Makes a WebexStore for the specified type bound to the specified webex instance\r\n * @param {string} type\r\n * @param {ProxyWebex} webex\r\n * @private\r\n * @returns {WebexStore}\r\n */\r\nexport default function makeWebexStore(type, webex) {\r\n /**\r\n * Lazy Key-Value Store Interface\r\n */\r\n class WebexStore {\r\n /**\r\n * @param {Object} attrs\r\n * @param {Object} options\r\n * @returns {Store}\r\n */\r\n constructor() {\r\n webex.logger.debug(`webex-store: constructing ${type}Storage`);\r\n bindings.set(this, new Map());\r\n }\r\n\r\n /**\r\n * Provides easy access to the storage adapter identified in config.\r\n * @returns {Object}\r\n */\r\n get adapter() {\r\n return webex.config.storage[`${type}Adapter`];\r\n }\r\n\r\n /**\r\n * @returns {WeakMap}\r\n */\r\n get bindings() {\r\n return bindings.get(this);\r\n }\r\n\r\n /**\r\n * Clears the store\r\n * @returns {Promise}\r\n */\r\n clear() {\r\n const promises = [];\r\n\r\n this.bindings.forEach((binding) => {\r\n promises.push(binding.clear());\r\n });\r\n\r\n return Promise.all(promises);\r\n }\r\n\r\n /**\r\n * Deletes the specified key from the store\r\n * @param {string} namespace\r\n * @param {string} key\r\n * @returns {[type]}\r\n */\r\n del(namespace, key) {\r\n webex.logger.debug(`webex-store: removing ${namespace}:${key}`);\r\n\r\n return this._getBinding(namespace).then((binding) => binding.del(key));\r\n }\r\n\r\n /**\r\n * Retrieves the value specified by key from the store. Rejects with\r\n * NotFoundError if no value can be found\r\n * @param {string} namespace\r\n * @param {string} key\r\n * @returns {Promise}\r\n */\r\n get(namespace, key) {\r\n webex.logger.debug(`webex-store: retrieving ${namespace}:${key}`);\r\n\r\n return this._getBinding(namespace).then((binding) => binding.get(key));\r\n }\r\n\r\n /**\r\n * Writes a value to the store. Deletes the specified key from the store\r\n * if passed `undefined`\r\n * @param {string} namespace\r\n * @param {string} key\r\n * @param {any} value\r\n * @returns {Promise} Resolves with value (to simplify write-through caching)\r\n */\r\n put(namespace, key, value) {\r\n if (typeof value === 'undefined') {\r\n return this.del(namespace, key);\r\n }\r\n webex.logger.debug(`webex-store: setting ${namespace}:${key}`);\r\n\r\n return this._getBinding(namespace)\r\n .then((binding) => binding.put(key, value.serialize ? value.serialize() : value))\r\n .then(() => value);\r\n }\r\n\r\n @oneFlight({keyFactory: (namespace) => namespace})\r\n /**\r\n * Creates an interface bound to the specified namespace\r\n * @param {string} namespace\r\n * @private\r\n * @returns {Promise}\r\n */\r\n // suppress doc warning because decorators confuse eslint\r\n // eslint-disable-next-line require-jsdoc\r\n _getBinding(namespace) {\r\n return new Promise((resolve) => {\r\n webex.logger.debug(`storage: getting binding for \\`${namespace}\\``);\r\n const binding = this.bindings.get(namespace);\r\n\r\n if (binding) {\r\n webex.logger.debug(`storage: found binding for \\`${namespace}\\``);\r\n\r\n return resolve(binding);\r\n }\r\n\r\n return resolve(\r\n this.adapter.bind(namespace, {logger: webex.logger}).then((_binding) => {\r\n webex.logger.debug(`storage: made binding for \\`${namespace}\\``);\r\n this.bindings.set(namespace, _binding);\r\n\r\n return _binding;\r\n })\r\n );\r\n });\r\n }\r\n }\r\n\r\n Object.assign(WebexStore.prototype, Events);\r\n\r\n return new WebexStore();\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;AAIA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AALA;AACA;AACA;;AAKA,IAAME,QAAQ,GAAG,IAAAC,QAAA,CAAAC,OAAA,EAAa;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,cAAcA,CAACC,IAAI,EAAEC,KAAK,EAAE;EAAA,IAAAC,IAAA,EAAAC,MAAA;EAClD;AACF;AACA;EAFE,IAGMC,UAAU,IAAAF,IAAA,GAoFb,IAAAG,iBAAS,EAAC;IAACC,UAAU,EAAE,SAAAA,WAACC,SAAS;MAAA,OAAKA,SAAS;IAAA;EAAA,CAAC,CAAC,GAAAJ,MAAA;IAnFlD;AACJ;AACA;AACA;AACA;IACI,SAAAC,WAAA,EAAc;MAAA,IAAAI,gBAAA,CAAAV,OAAA,QAAAM,UAAA;MACZH,KAAK,CAACQ,MAAM,CAACC,KAAK,8BAAAC,MAAA,CAA8BX,IAAI,aAAU;MAC9DJ,QAAQ,CAACgB,GAAG,CAAC,IAAI,EAAE,IAAAC,IAAA,CAAAf,OAAA,EAAS,CAAC;IAC/B;;IAEA;AACJ;AACA;AACA;IAHI,IAAAgB,aAAA,CAAAhB,OAAA,EAAAM,UAAA;MAAAW,GAAA;MAAAC,GAAA,EAIA,SAAAA,IAAA,EAAc;QACZ,OAAOf,KAAK,CAACgB,MAAM,CAACC,OAAO,IAAAP,MAAA,CAAIX,IAAI,aAAU;MAC/C;;MAEA;AACJ;AACA;IAFI;MAAAe,GAAA;MAAAC,GAAA,EAGA,SAAAA,IAAA,EAAe;QACb,OAAOpB,QAAQ,CAACoB,GAAG,CAAC,IAAI,CAAC;MAC3B;;MAEA;AACJ;AACA;AACA;IAHI;MAAAD,GAAA;MAAAI,KAAA,EAIA,SAAAC,MAAA,EAAQ;QACN,IAAMC,QAAQ,GAAG,EAAE;QAEnB,IAAI,CAACzB,QAAQ,CAAC0B,OAAO,CAAC,UAACC,OAAO,EAAK;UACjCF,QAAQ,CAACG,IAAI,CAACD,OAAO,CAACH,KAAK,EAAE,CAAC;QAChC,CAAC,CAAC;QAEF,OAAOK,QAAA,CAAA3B,OAAA,CAAQ4B,GAAG,CAACL,QAAQ,CAAC;MAC9B;;MAEA;AACJ;AACA;AACA;AACA;AACA;IALI;MAAAN,GAAA;MAAAI,KAAA,EAMA,SAAAQ,IAAIpB,SAAS,EAAEQ,GAAG,EAAE;QAClBd,KAAK,CAACQ,MAAM,CAACC,KAAK,0BAAAC,MAAA,CAA0BJ,SAAS,OAAAI,MAAA,CAAII,GAAG,EAAG;QAE/D,OAAO,IAAI,CAACa,WAAW,CAACrB,SAAS,CAAC,CAACsB,IAAI,CAAC,UAACN,OAAO;UAAA,OAAKA,OAAO,CAACI,GAAG,CAACZ,GAAG,CAAC;QAAA,EAAC;MACxE;;MAEA;AACJ;AACA;AACA;AACA;AACA;AACA;IANI;MAAAA,GAAA;MAAAI,KAAA,EAOA,SAAAH,IAAIT,SAAS,EAAEQ,GAAG,EAAE;QAClBd,KAAK,CAACQ,MAAM,CAACC,KAAK,4BAAAC,MAAA,CAA4BJ,SAAS,OAAAI,MAAA,CAAII,GAAG,EAAG;QAEjE,OAAO,IAAI,CAACa,WAAW,CAACrB,SAAS,CAAC,CAACsB,IAAI,CAAC,UAACN,OAAO;UAAA,OAAKA,OAAO,CAACP,GAAG,CAACD,GAAG,CAAC;QAAA,EAAC;MACxE;;MAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IAPI;MAAAA,GAAA;MAAAI,KAAA,EAQA,SAAAW,IAAIvB,SAAS,EAAEQ,GAAG,EAAEI,KAAK,EAAE;QACzB,IAAI,OAAOA,KAAK,KAAK,WAAW,EAAE;UAChC,OAAO,IAAI,CAACQ,GAAG,CAACpB,SAAS,EAAEQ,GAAG,CAAC;QACjC;QACAd,KAAK,CAACQ,MAAM,CAACC,KAAK,yBAAAC,MAAA,CAAyBJ,SAAS,OAAAI,MAAA,CAAII,GAAG,EAAG;QAE9D,OAAO,IAAI,CAACa,WAAW,CAACrB,SAAS,CAAC,CAC/BsB,IAAI,CAAC,UAACN,OAAO;UAAA,OAAKA,OAAO,CAACO,GAAG,CAACf,GAAG,EAAEI,KAAK,CAACY,SAAS,GAAGZ,KAAK,CAACY,SAAS,EAAE,GAAGZ,KAAK,CAAC;QAAA,EAAC,CAChFU,IAAI,CAAC;UAAA,OAAMV,KAAK;QAAA,EAAC;MACtB;IAAC;MAAAJ,GAAA;MAAAI,KAAA,EAED,SAAAS,YASYrB,SAAS,EAAE;QAAA,IAAAyB,KAAA;QACrB,OAAO,IAAAP,QAAA,CAAA3B,OAAA,CAAY,UAACmC,OAAO,EAAK;UAC9BhC,KAAK,CAACQ,MAAM,CAACC,KAAK,kCAAAC,MAAA,CAAmCJ,SAAS,OAAK;UACnE,IAAMgB,OAAO,GAAGS,KAAI,CAACpC,QAAQ,CAACoB,GAAG,CAACT,SAAS,CAAC;UAE5C,IAAIgB,OAAO,EAAE;YACXtB,KAAK,CAACQ,MAAM,CAACC,KAAK,gCAAAC,MAAA,CAAiCJ,SAAS,OAAK;YAEjE,OAAO0B,OAAO,CAACV,OAAO,CAAC;UACzB;UAEA,OAAOU,OAAO,CACZD,KAAI,CAACE,OAAO,CAACC,IAAI,CAAC5B,SAAS,EAAE;YAACE,MAAM,EAAER,KAAK,CAACQ;UAAM,CAAC,CAAC,CAACoB,IAAI,CAAC,UAACO,QAAQ,EAAK;YACtEnC,KAAK,CAACQ,MAAM,CAACC,KAAK,+BAAAC,MAAA,CAAgCJ,SAAS,OAAK;YAChEyB,KAAI,CAACpC,QAAQ,CAACgB,GAAG,CAACL,SAAS,EAAE6B,QAAQ,CAAC;YAEtC,OAAOA,QAAQ;UACjB,CAAC,CAAC,CACH;QACH,CAAC,CAAC;MACJ;IAAC;IAAA,OAAAhC,UAAA;EAAA,UAAAiC,0BAAA,CAAAvC,OAAA,EAAAK,MAAA,CAAAmC,SAAA,kBAAApC,IAAA,OAAAqC,yBAAA,CAAAzC,OAAA,EAAAK,MAAA,CAAAmC,SAAA,kBAAAnC,MAAA,CAAAmC,SAAA,IAAAnC,MAAA;EAGH,IAAAqC,OAAA,CAAA1C,OAAA,EAAcM,UAAU,CAACkC,SAAS,EAAEG,wBAAM,CAAC;EAE3C,OAAO,IAAIrC,UAAU,EAAE;AACzB"}
@@ -10,17 +10,17 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/pr
10
10
  var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
11
11
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
12
12
  var _errors = require("./errors");
13
- /*!
14
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
13
+ /*!
14
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
15
15
  */
16
16
 
17
- /**
18
- * Binds a namespace
19
- * @param {string} namespace
20
- * @param {Object} options
21
- * @param {Object} options.data
22
- * @private
23
- * @returns {Promise<Object>}
17
+ /**
18
+ * Binds a namespace
19
+ * @param {string} namespace
20
+ * @param {Object} options
21
+ * @param {Object} options.data
22
+ * @private
23
+ * @returns {Promise<Object>}
24
24
  */
25
25
  function _bind(namespace) {
26
26
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_bind","namespace","options","arguments","length","undefined","_promise","default","reject","Error","logger","_options","map","_map","data","_keys","forEach","key","set","debug","resolve","clear","del","concat","delete","get","res","NotFoundError","put","value","_default","bind","preload","exports"],"sources":["memory-store-adapter.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {NotFoundError} from './errors';\n\n/**\n * Binds a namespace\n * @param {string} namespace\n * @param {Object} options\n * @param {Object} options.data\n * @private\n * @returns {Promise<Object>}\n */\nfunction _bind(namespace, options = {}) {\n options = options || {};\n if (!namespace) {\n return Promise.reject(new Error('`namespace` is required'));\n }\n\n if (!options.logger) {\n return Promise.reject(new Error('`options.logger` is required'));\n }\n\n const {logger} = options;\n\n const map = new Map([['@', {}]]);\n\n if (options.data) {\n Object.keys(options.data).forEach((key) => {\n map.set(key, options.data[key]);\n });\n }\n\n logger.debug('memory-store-adapter: returning binding');\n\n return Promise.resolve({\n clear() {\n logger.debug('memory-store-adapter: clearing the binding');\n\n return Promise.resolve(map.clear());\n },\n del(key) {\n logger.debug(`memory-store-adapter: deleting \\`${key}\\``);\n\n return Promise.resolve(map.delete(key));\n },\n get(key) {\n logger.debug(`memory-store-adapter: reading \\`${key}\\``);\n const res = map.get(key);\n\n if (typeof res === 'undefined') {\n return Promise.reject(new NotFoundError());\n }\n\n return Promise.resolve(res);\n },\n put(key, value) {\n logger.debug(`memory-store-adapter: writing \\`${key}\\``);\n\n return Promise.resolve(map.set(key, value));\n },\n });\n}\n\nexport default {\n bind: _bind,\n preload(data) {\n return {\n bind(namespace, options = {}) {\n if (data[namespace]) {\n options.data = data[namespace];\n }\n\n return _bind(namespace, options);\n },\n };\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_errors","require","_bind","namespace","options","arguments","length","undefined","_promise","default","reject","Error","logger","_options","map","_map","data","_keys","forEach","key","set","debug","resolve","clear","del","concat","delete","get","res","NotFoundError","put","value","_default","bind","preload","exports"],"sources":["memory-store-adapter.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {NotFoundError} from './errors';\r\n\r\n/**\r\n * Binds a namespace\r\n * @param {string} namespace\r\n * @param {Object} options\r\n * @param {Object} options.data\r\n * @private\r\n * @returns {Promise<Object>}\r\n */\r\nfunction _bind(namespace, options = {}) {\r\n options = options || {};\r\n if (!namespace) {\r\n return Promise.reject(new Error('`namespace` is required'));\r\n }\r\n\r\n if (!options.logger) {\r\n return Promise.reject(new Error('`options.logger` is required'));\r\n }\r\n\r\n const {logger} = options;\r\n\r\n const map = new Map([['@', {}]]);\r\n\r\n if (options.data) {\r\n Object.keys(options.data).forEach((key) => {\r\n map.set(key, options.data[key]);\r\n });\r\n }\r\n\r\n logger.debug('memory-store-adapter: returning binding');\r\n\r\n return Promise.resolve({\r\n clear() {\r\n logger.debug('memory-store-adapter: clearing the binding');\r\n\r\n return Promise.resolve(map.clear());\r\n },\r\n del(key) {\r\n logger.debug(`memory-store-adapter: deleting \\`${key}\\``);\r\n\r\n return Promise.resolve(map.delete(key));\r\n },\r\n get(key) {\r\n logger.debug(`memory-store-adapter: reading \\`${key}\\``);\r\n const res = map.get(key);\r\n\r\n if (typeof res === 'undefined') {\r\n return Promise.reject(new NotFoundError());\r\n }\r\n\r\n return Promise.resolve(res);\r\n },\r\n put(key, value) {\r\n logger.debug(`memory-store-adapter: writing \\`${key}\\``);\r\n\r\n return Promise.resolve(map.set(key, value));\r\n },\r\n });\r\n}\r\n\r\nexport default {\r\n bind: _bind,\r\n preload(data) {\r\n return {\r\n bind(namespace, options = {}) {\r\n if (data[namespace]) {\r\n options.data = data[namespace];\r\n }\r\n\r\n return _bind(namespace, options);\r\n },\r\n };\r\n },\r\n};\r\n"],"mappings":"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"}
@@ -14,12 +14,12 @@ var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
14
14
  var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
15
15
  var _has2 = _interopRequireDefault(require("lodash/has"));
16
16
  var _get2 = _interopRequireDefault(require("lodash/get"));
17
- /**
18
- * Mixes a plugin system into an AmpState object (specifically, into WebexCore)
19
- * @param {AmpState} State
20
- * @param {Object} config
21
- * @param {Object} interceptors
22
- * @returns {AmpState}
17
+ /**
18
+ * Mixes a plugin system into an AmpState object (specifically, into WebexCore)
19
+ * @param {AmpState} State
20
+ * @param {Object} config
21
+ * @param {Object} interceptors
22
+ * @returns {AmpState}
23
23
  */
24
24
  function mixinWebexCorePlugins(State, config, interceptors) {
25
25
  // eslint-disable-next-line complexity
@@ -79,13 +79,13 @@ function mixinWebexCorePlugins(State, config, interceptors) {
79
79
  return State;
80
80
  }
81
81
 
82
- /**
83
- * Extracted from ampersand-state
84
- * @param {Object} modelProto
85
- * @param {string} name
86
- * @param {Object} definition
87
- * @private
88
- * @returns {undefined}
82
+ /**
83
+ * Extracted from ampersand-state
84
+ * @param {Object} modelProto
85
+ * @param {string} name
86
+ * @param {Object} definition
87
+ * @private
88
+ * @returns {undefined}
89
89
  */
90
90
  function createDerivedProperty(modelProto, name, definition) {
91
91
  var def = modelProto._derived[name] = {
@@ -1 +1 @@
1
- {"version":3,"names":["mixinWebexCorePlugins","State","config","interceptors","registerPlugin","name","constructor","options","arguments","length","undefined","prototype","_children","replace","proxies","forEach","key","createDerivedProperty","deps","concat","fn","_keys","default","_merge2","_has2","payloadTransformer","predicates","_get2","transforms","onBeforeLogout","_isArray2","push","plugin","_definition","ready","_State$prototype$_der","_derived","depList","def","modelProto","definition","_isFunction2","cache","dep","_deps","_union2","_defineProperty","get","_getDerivedProperty","set","TypeError"],"sources":["webex-core-plugin-mixin.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {get, has, isArray, isFunction, merge, union} from 'lodash';\n\n/**\n * Mixes a plugin system into an AmpState object (specifically, into WebexCore)\n * @param {AmpState} State\n * @param {Object} config\n * @param {Object} interceptors\n * @returns {AmpState}\n */\nexport default function mixinWebexCorePlugins(State, config, interceptors) {\n // eslint-disable-next-line complexity\n State.registerPlugin = function registerPlugin(name, constructor, options = {}) {\n if (State.prototype._children[name] && !options.replace) {\n return;\n }\n\n State.prototype._children[name] = constructor;\n\n if (options.proxies) {\n options.proxies.forEach((key) => {\n createDerivedProperty(State.prototype, key, {\n deps: [`${name}.${key}`],\n fn() {\n return this[name][key];\n },\n });\n });\n }\n\n if (options.interceptors) {\n Object.keys(options.interceptors).forEach((key) => {\n interceptors[key] = options.interceptors[key];\n });\n }\n\n if (options.config) {\n merge(config, options.config);\n }\n\n if (has(options, 'payloadTransformer.predicates')) {\n config.payloadTransformer.predicates = config.payloadTransformer.predicates.concat(\n get(options, 'payloadTransformer.predicates')\n );\n }\n\n if (has(options, 'payloadTransformer.transforms')) {\n config.payloadTransformer.transforms = config.payloadTransformer.transforms.concat(\n get(options, 'payloadTransformer.transforms')\n );\n }\n\n if (options.onBeforeLogout) {\n config.onBeforeLogout = config.onBeforeLogout || [];\n const onBeforeLogout = isArray(options.onBeforeLogout)\n ? options.onBeforeLogout\n : [options.onBeforeLogout];\n\n onBeforeLogout.forEach((fn) =>\n config.onBeforeLogout.push({\n plugin: name,\n fn,\n })\n );\n }\n\n // Only mess with the plugin's derived properties if it's an amp-state plugin\n if (constructor.prototype._definition && constructor.prototype._definition.ready) {\n const {fn, depList} = State.prototype._derived.ready;\n const def = {\n deps: depList.concat(`${name}.ready`),\n fn,\n };\n\n createDerivedProperty(State.prototype, 'ready', def);\n }\n };\n\n return State;\n}\n\n/**\n * Extracted from ampersand-state\n * @param {Object} modelProto\n * @param {string} name\n * @param {Object} definition\n * @private\n * @returns {undefined}\n */\nfunction createDerivedProperty(modelProto, name, definition) {\n const def = (modelProto._derived[name] = {\n fn: isFunction(definition) ? definition : definition.fn,\n cache: definition.cache !== false,\n depList: definition.deps || [],\n });\n\n // add to our shared dependency list\n def.depList.forEach((dep) => {\n modelProto._deps[dep] = union(modelProto._deps[dep] || [], [name]);\n });\n\n // defined a top-level getter for derived names\n Reflect.defineProperty(modelProto, name, {\n get() {\n return this._getDerivedProperty(name);\n },\n set() {\n throw new TypeError(`\\`${name}\\` is a derived property, it can't be set directly.`);\n },\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["mixinWebexCorePlugins","State","config","interceptors","registerPlugin","name","constructor","options","arguments","length","undefined","prototype","_children","replace","proxies","forEach","key","createDerivedProperty","deps","concat","fn","_keys","default","_merge2","_has2","payloadTransformer","predicates","_get2","transforms","onBeforeLogout","_isArray2","push","plugin","_definition","ready","_State$prototype$_der","_derived","depList","def","modelProto","definition","_isFunction2","cache","dep","_deps","_union2","_defineProperty","get","_getDerivedProperty","set","TypeError"],"sources":["webex-core-plugin-mixin.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {get, has, isArray, isFunction, merge, union} from 'lodash';\r\n\r\n/**\r\n * Mixes a plugin system into an AmpState object (specifically, into WebexCore)\r\n * @param {AmpState} State\r\n * @param {Object} config\r\n * @param {Object} interceptors\r\n * @returns {AmpState}\r\n */\r\nexport default function mixinWebexCorePlugins(State, config, interceptors) {\r\n // eslint-disable-next-line complexity\r\n State.registerPlugin = function registerPlugin(name, constructor, options = {}) {\r\n if (State.prototype._children[name] && !options.replace) {\r\n return;\r\n }\r\n\r\n State.prototype._children[name] = constructor;\r\n\r\n if (options.proxies) {\r\n options.proxies.forEach((key) => {\r\n createDerivedProperty(State.prototype, key, {\r\n deps: [`${name}.${key}`],\r\n fn() {\r\n return this[name][key];\r\n },\r\n });\r\n });\r\n }\r\n\r\n if (options.interceptors) {\r\n Object.keys(options.interceptors).forEach((key) => {\r\n interceptors[key] = options.interceptors[key];\r\n });\r\n }\r\n\r\n if (options.config) {\r\n merge(config, options.config);\r\n }\r\n\r\n if (has(options, 'payloadTransformer.predicates')) {\r\n config.payloadTransformer.predicates = config.payloadTransformer.predicates.concat(\r\n get(options, 'payloadTransformer.predicates')\r\n );\r\n }\r\n\r\n if (has(options, 'payloadTransformer.transforms')) {\r\n config.payloadTransformer.transforms = config.payloadTransformer.transforms.concat(\r\n get(options, 'payloadTransformer.transforms')\r\n );\r\n }\r\n\r\n if (options.onBeforeLogout) {\r\n config.onBeforeLogout = config.onBeforeLogout || [];\r\n const onBeforeLogout = isArray(options.onBeforeLogout)\r\n ? options.onBeforeLogout\r\n : [options.onBeforeLogout];\r\n\r\n onBeforeLogout.forEach((fn) =>\r\n config.onBeforeLogout.push({\r\n plugin: name,\r\n fn,\r\n })\r\n );\r\n }\r\n\r\n // Only mess with the plugin's derived properties if it's an amp-state plugin\r\n if (constructor.prototype._definition && constructor.prototype._definition.ready) {\r\n const {fn, depList} = State.prototype._derived.ready;\r\n const def = {\r\n deps: depList.concat(`${name}.ready`),\r\n fn,\r\n };\r\n\r\n createDerivedProperty(State.prototype, 'ready', def);\r\n }\r\n };\r\n\r\n return State;\r\n}\r\n\r\n/**\r\n * Extracted from ampersand-state\r\n * @param {Object} modelProto\r\n * @param {string} name\r\n * @param {Object} definition\r\n * @private\r\n * @returns {undefined}\r\n */\r\nfunction createDerivedProperty(modelProto, name, definition) {\r\n const def = (modelProto._derived[name] = {\r\n fn: isFunction(definition) ? definition : definition.fn,\r\n cache: definition.cache !== false,\r\n depList: definition.deps || [],\r\n });\r\n\r\n // add to our shared dependency list\r\n def.depList.forEach((dep) => {\r\n modelProto._deps[dep] = union(modelProto._deps[dep] || [], [name]);\r\n });\r\n\r\n // defined a top-level getter for derived names\r\n Reflect.defineProperty(modelProto, name, {\r\n get() {\r\n return this._getDerivedProperty(name);\r\n },\r\n set() {\r\n throw new TypeError(`\\`${name}\\` is a derived property, it can't be set directly.`);\r\n },\r\n });\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,qBAAqBA,CAACC,KAAK,EAAEC,MAAM,EAAEC,YAAY,EAAE;EACzE;EACAF,KAAK,CAACG,cAAc,GAAG,SAASA,cAAcA,CAACC,IAAI,EAAEC,WAAW,EAAgB;IAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAC5E,IAAIP,KAAK,CAACU,SAAS,CAACC,SAAS,CAACP,IAAI,CAAC,IAAI,CAACE,OAAO,CAACM,OAAO,EAAE;MACvD;IACF;IAEAZ,KAAK,CAACU,SAAS,CAACC,SAAS,CAACP,IAAI,CAAC,GAAGC,WAAW;IAE7C,IAAIC,OAAO,CAACO,OAAO,EAAE;MACnBP,OAAO,CAACO,OAAO,CAACC,OAAO,CAAC,UAACC,GAAG,EAAK;QAC/BC,qBAAqB,CAAChB,KAAK,CAACU,SAAS,EAAEK,GAAG,EAAE;UAC1CE,IAAI,EAAE,IAAAC,MAAA,CAAId,IAAI,OAAAc,MAAA,CAAIH,GAAG,EAAG;UACxBI,EAAE,WAAAA,GAAA,EAAG;YACH,OAAO,IAAI,CAACf,IAAI,CAAC,CAACW,GAAG,CAAC;UACxB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IAEA,IAAIT,OAAO,CAACJ,YAAY,EAAE;MACxB,IAAAkB,KAAA,CAAAC,OAAA,EAAYf,OAAO,CAACJ,YAAY,CAAC,CAACY,OAAO,CAAC,UAACC,GAAG,EAAK;QACjDb,YAAY,CAACa,GAAG,CAAC,GAAGT,OAAO,CAACJ,YAAY,CAACa,GAAG,CAAC;MAC/C,CAAC,CAAC;IACJ;IAEA,IAAIT,OAAO,CAACL,MAAM,EAAE;MAClB,IAAAqB,OAAA,CAAAD,OAAA,EAAMpB,MAAM,EAAEK,OAAO,CAACL,MAAM,CAAC;IAC/B;IAEA,IAAI,IAAAsB,KAAA,CAAAF,OAAA,EAAIf,OAAO,EAAE,+BAA+B,CAAC,EAAE;MACjDL,MAAM,CAACuB,kBAAkB,CAACC,UAAU,GAAGxB,MAAM,CAACuB,kBAAkB,CAACC,UAAU,CAACP,MAAM,CAChF,IAAAQ,KAAA,CAAAL,OAAA,EAAIf,OAAO,EAAE,+BAA+B,CAAC,CAC9C;IACH;IAEA,IAAI,IAAAiB,KAAA,CAAAF,OAAA,EAAIf,OAAO,EAAE,+BAA+B,CAAC,EAAE;MACjDL,MAAM,CAACuB,kBAAkB,CAACG,UAAU,GAAG1B,MAAM,CAACuB,kBAAkB,CAACG,UAAU,CAACT,MAAM,CAChF,IAAAQ,KAAA,CAAAL,OAAA,EAAIf,OAAO,EAAE,+BAA+B,CAAC,CAC9C;IACH;IAEA,IAAIA,OAAO,CAACsB,cAAc,EAAE;MAC1B3B,MAAM,CAAC2B,cAAc,GAAG3B,MAAM,CAAC2B,cAAc,IAAI,EAAE;MACnD,IAAMA,cAAc,GAAG,IAAAC,SAAA,CAAAR,OAAA,EAAQf,OAAO,CAACsB,cAAc,CAAC,GAClDtB,OAAO,CAACsB,cAAc,GACtB,CAACtB,OAAO,CAACsB,cAAc,CAAC;MAE5BA,cAAc,CAACd,OAAO,CAAC,UAACK,EAAE;QAAA,OACxBlB,MAAM,CAAC2B,cAAc,CAACE,IAAI,CAAC;UACzBC,MAAM,EAAE3B,IAAI;UACZe,EAAE,EAAFA;QACF,CAAC,CAAC;MAAA,EACH;IACH;;IAEA;IACA,IAAId,WAAW,CAACK,SAAS,CAACsB,WAAW,IAAI3B,WAAW,CAACK,SAAS,CAACsB,WAAW,CAACC,KAAK,EAAE;MAChF,IAAAC,qBAAA,GAAsBlC,KAAK,CAACU,SAAS,CAACyB,QAAQ,CAACF,KAAK;QAA7Cd,EAAE,GAAAe,qBAAA,CAAFf,EAAE;QAAEiB,OAAO,GAAAF,qBAAA,CAAPE,OAAO;MAClB,IAAMC,GAAG,GAAG;QACVpB,IAAI,EAAEmB,OAAO,CAAClB,MAAM,IAAAA,MAAA,CAAId,IAAI,YAAS;QACrCe,EAAE,EAAFA;MACF,CAAC;MAEDH,qBAAqB,CAAChB,KAAK,CAACU,SAAS,EAAE,OAAO,EAAE2B,GAAG,CAAC;IACtD;EACF,CAAC;EAED,OAAOrC,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASgB,qBAAqBA,CAACsB,UAAU,EAAElC,IAAI,EAAEmC,UAAU,EAAE;EAC3D,IAAMF,GAAG,GAAIC,UAAU,CAACH,QAAQ,CAAC/B,IAAI,CAAC,GAAG;IACvCe,EAAE,EAAE,IAAAqB,YAAA,CAAAnB,OAAA,EAAWkB,UAAU,CAAC,GAAGA,UAAU,GAAGA,UAAU,CAACpB,EAAE;IACvDsB,KAAK,EAAEF,UAAU,CAACE,KAAK,KAAK,KAAK;IACjCL,OAAO,EAAEG,UAAU,CAACtB,IAAI,IAAI;EAC9B,CAAE;;EAEF;EACAoB,GAAG,CAACD,OAAO,CAACtB,OAAO,CAAC,UAAC4B,GAAG,EAAK;IAC3BJ,UAAU,CAACK,KAAK,CAACD,GAAG,CAAC,GAAG,IAAAE,OAAA,CAAAvB,OAAA,EAAMiB,UAAU,CAACK,KAAK,CAACD,GAAG,CAAC,IAAI,EAAE,EAAE,CAACtC,IAAI,CAAC,CAAC;EACpE,CAAC,CAAC;;EAEF;EACA,IAAAyC,eAAA,CAAAxB,OAAA,EAAuBiB,UAAU,EAAElC,IAAI,EAAE;IACvC0C,GAAG,WAAAA,IAAA,EAAG;MACJ,OAAO,IAAI,CAACC,mBAAmB,CAAC3C,IAAI,CAAC;IACvC,CAAC;IACD4C,GAAG,WAAAA,IAAA,EAAG;MACJ,MAAM,IAAIC,SAAS,KAAA/B,MAAA,CAAMd,IAAI,wDAAsD;IACrF;EACF,CAAC,CAAC;AACJ"}
@@ -17,8 +17,8 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
17
17
  var _httpCore = require("@webex/http-core");
18
18
  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); }; }
19
19
  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; } }
20
- /**
21
- * Webex-specific http error class
20
+ /**
21
+ * Webex-specific http error class
22
22
  */
23
23
  var WebexHttpError = /*#__PURE__*/function (_HttpError) {
24
24
  (0, _inherits2.default)(WebexHttpError, _HttpError);
@@ -30,11 +30,11 @@ var WebexHttpError = /*#__PURE__*/function (_HttpError) {
30
30
  (0, _createClass2.default)(WebexHttpError, [{
31
31
  key: "parse",
32
32
  value:
33
- /**
34
- * Very similar to {@link HttpError#parse()}, but additionally adds some
35
- * useful headers to the message string
36
- * @param {HttpResponse} res
37
- * @returns {string}
33
+ /**
34
+ * Very similar to {@link HttpError#parse()}, but additionally adds some
35
+ * useful headers to the message string
36
+ * @param {HttpResponse} res
37
+ * @returns {string}
38
38
  */
39
39
  function parse(res) {
40
40
  var message = (0, _apply.default)(_httpCore.HttpError.prototype.parse, this, [res]);
@@ -70,8 +70,8 @@ var WebexHttpError = /*#__PURE__*/function (_HttpError) {
70
70
  exports.default = WebexHttpError;
71
71
  _httpCore.HttpError.makeSubTypes(WebexHttpError);
72
72
 
73
- /**
74
- * TooManyRequests
73
+ /**
74
+ * TooManyRequests
75
75
  */
76
76
  var TooManyRequests = /*#__PURE__*/function (_HttpError$BadRequest) {
77
77
  (0, _inherits2.default)(TooManyRequests, _HttpError$BadRequest);