@webex/internal-plugin-device 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 (41) hide show
  1. package/.eslintrc.js +6 -6
  2. package/README.md +80 -80
  3. package/babel.config.js +3 -3
  4. package/dist/config.js +27 -27
  5. package/dist/config.js.map +1 -1
  6. package/dist/constants.js.map +1 -1
  7. package/dist/device.js +226 -226
  8. package/dist/device.js.map +1 -1
  9. package/dist/features/feature-collection.js +14 -14
  10. package/dist/features/feature-collection.js.map +1 -1
  11. package/dist/features/feature-model.js +73 -73
  12. package/dist/features/feature-model.js.map +1 -1
  13. package/dist/features/features-model.js +28 -28
  14. package/dist/features/features-model.js.map +1 -1
  15. package/dist/features/index.js.map +1 -1
  16. package/dist/index.js +4 -4
  17. package/dist/index.js.map +1 -1
  18. package/dist/interceptors/device-url.js +8 -8
  19. package/dist/interceptors/device-url.js.map +1 -1
  20. package/dist/metrics.js.map +1 -1
  21. package/jest.config.js +3 -3
  22. package/package.json +17 -16
  23. package/process +1 -1
  24. package/src/config.js +60 -60
  25. package/src/constants.js +23 -23
  26. package/src/device.js +835 -835
  27. package/src/features/feature-collection.js +30 -30
  28. package/src/features/feature-model.js +189 -189
  29. package/src/features/features-model.js +96 -96
  30. package/src/features/index.js +5 -5
  31. package/src/index.js +29 -29
  32. package/src/interceptors/device-url.js +61 -61
  33. package/src/metrics.js +5 -5
  34. package/test/integration/spec/device.js +904 -904
  35. package/test/integration/spec/webex.js +42 -42
  36. package/test/unit/spec/device.js +409 -409
  37. package/test/unit/spec/features/feature-collection.js +24 -24
  38. package/test/unit/spec/features/feature-model.js +255 -255
  39. package/test/unit/spec/features/features-model.js +97 -97
  40. package/test/unit/spec/interceptors/device-url.js +215 -215
  41. package/test/unit/spec/wdm-dto.json +104 -104
package/dist/device.js CHANGED
@@ -26,10 +26,10 @@ var _featuresModel = _interopRequireDefault(require("./features/features-model")
26
26
  var _dec, _dec2, _dec3, _dec4, _dec5, _obj;
27
27
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor2(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
28
28
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor2(source, key)); }); } return target; }
29
- /**
30
- * Determine if the plugin should be initialized based on cached storage.
31
- *
32
- * @returns {boolean} - If the device is ephemeral.
29
+ /**
30
+ * Determine if the plugin should be initialized based on cached storage.
31
+ *
32
+ * @returns {boolean} - If the device is ephemeral.
33
33
  */
34
34
  function decider() {
35
35
  return !this.config.ephemeral;
@@ -43,276 +43,276 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
43
43
  extraProperties: 'allow',
44
44
  idAttribute: 'url',
45
45
  children: {
46
- /**
47
- * The class object that contains all of the feature collections.
48
- *
49
- * @type {FeaturesModel}
46
+ /**
47
+ * The class object that contains all of the feature collections.
48
+ *
49
+ * @type {FeaturesModel}
50
50
  */
51
51
  features: _featuresModel.default
52
52
  },
53
- /**
54
- * A collection of device properties mostly assigned by the retrieved DTO from
55
- * the **WDM** service that are mapped against the ampersand properties.
56
- *
57
- * @type {Object}
53
+ /**
54
+ * A collection of device properties mostly assigned by the retrieved DTO from
55
+ * the **WDM** service that are mapped against the ampersand properties.
56
+ *
57
+ * @type {Object}
58
58
  */
59
59
  props: {
60
- /**
61
- * This property determines whether or not giphy support is enabled.
62
- *
63
- * @type {'ALLOW' | 'BLOCK'}
60
+ /**
61
+ * This property determines whether or not giphy support is enabled.
62
+ *
63
+ * @type {'ALLOW' | 'BLOCK'}
64
64
  */
65
65
  clientMessagingGiphy: 'string',
66
- /**
67
- * This property should store the company name.
68
- *
69
- * @type {string}
66
+ /**
67
+ * This property should store the company name.
68
+ *
69
+ * @type {string}
70
70
  */
71
71
  customerCompanyName: 'string',
72
- /**
73
- * This property should store the logo url.
74
- *
75
- * @type {string}
72
+ /**
73
+ * This property should store the logo url.
74
+ *
75
+ * @type {string}
76
76
  */
77
77
  customerLogoUrl: 'string',
78
- /**
79
- * This property doesn't have any real values, but is sent during device
80
- * refresh to prevent the **wdm** service from falling back to an iOS device
81
- * type.
82
- *
83
- * @type {string}
78
+ /**
79
+ * This property doesn't have any real values, but is sent during device
80
+ * refresh to prevent the **wdm** service from falling back to an iOS device
81
+ * type.
82
+ *
83
+ * @type {string}
84
84
  */
85
85
  deviceType: 'string',
86
- /**
87
- * This property should store the help url.
88
- *
89
- * @type {string}
86
+ /**
87
+ * This property should store the help url.
88
+ *
89
+ * @type {string}
90
90
  */
91
91
  helpUrl: 'string',
92
- /**
93
- * This property should store the intranet inactivity timer duration.
94
- *
95
- * @type {number}
92
+ /**
93
+ * This property should store the intranet inactivity timer duration.
94
+ *
95
+ * @type {number}
96
96
  */
97
97
  intranetInactivityDuration: 'number',
98
- /**
99
- * This property stores the url required to validate if the device is able
100
- * to actively reach the intranet network.
101
- *
102
- * @type {string}
98
+ /**
99
+ * This property stores the url required to validate if the device is able
100
+ * to actively reach the intranet network.
101
+ *
102
+ * @type {string}
103
103
  */
104
104
  intranetInactivityCheckUrl: 'string',
105
- /**
106
- * This property stores the inactivity timer duration, and could possibly
107
- * deprecate the `intranetInactivityDuration` property.
108
- *
109
- * @type {number}
105
+ /**
106
+ * This property stores the inactivity timer duration, and could possibly
107
+ * deprecate the `intranetInactivityDuration` property.
108
+ *
109
+ * @type {number}
110
110
  */
111
111
  inNetworkInactivityDuration: 'number',
112
- /**
113
- * This property stores the ECM (external content management) enabled value
114
- * for the whole organization.
115
- *
116
- * @type {boolean}
112
+ /**
113
+ * This property stores the ECM (external content management) enabled value
114
+ * for the whole organization.
115
+ *
116
+ * @type {boolean}
117
117
  */
118
118
  ecmEnabledForAllUsers: ['boolean', false, false],
119
- /**
120
- * This property stores an array of ECM (external content management)
121
- * providers that are currently available.
122
- *
123
- * @returns {Array<string>}
119
+ /**
120
+ * This property stores an array of ECM (external content management)
121
+ * providers that are currently available.
122
+ *
123
+ * @returns {Array<string>}
124
124
  */
125
125
  ecmSupportedStorageProviders: ['array', false, function () {
126
126
  return [];
127
127
  }],
128
- /**
129
- * This property stores the modification time value retrieved from the
130
- * **WDM** endpoint formatted as ISO 8601.
131
- *
132
- * @type {string}
128
+ /**
129
+ * This property stores the modification time value retrieved from the
130
+ * **WDM** endpoint formatted as ISO 8601.
131
+ *
132
+ * @type {string}
133
133
  */
134
134
  modificationTime: 'string',
135
- /**
136
- * This property stores the navigation bar color.
137
- *
138
- * @type {string}
135
+ /**
136
+ * This property stores the navigation bar color.
137
+ *
138
+ * @type {string}
139
139
  */
140
140
  navigationBarColor: 'string',
141
- /**
142
- * This property stores the partner company's name when available.
143
- *
144
- * @type {string}
141
+ /**
142
+ * This property stores the partner company's name when available.
143
+ *
144
+ * @type {string}
145
145
  */
146
146
  partnerCompanyName: 'string',
147
- /**
148
- * This property stores the partner company's logo when available.
149
- *
150
- * @type {string}
147
+ /**
148
+ * This property stores the partner company's logo when available.
149
+ *
150
+ * @type {string}
151
151
  */
152
152
  partnerLogoUrl: 'string',
153
- /**
154
- * This property stores the availability of people data from the **WDM**
155
- * service.
156
- *
157
- * @type {boolean}
153
+ /**
154
+ * This property stores the availability of people data from the **WDM**
155
+ * service.
156
+ *
157
+ * @type {boolean}
158
158
  */
159
159
  peopleInsightsEnabled: 'boolean',
160
- /**
161
- * This property stores the reporting site's description when available.
162
- *
163
- * @type {string}
160
+ /**
161
+ * This property stores the reporting site's description when available.
162
+ *
163
+ * @type {string}
164
164
  */
165
165
  reportingSiteDesc: 'string',
166
- /**
167
- * This property stores the reporting site's access url when available.
168
- *
169
- * @type {string}
166
+ /**
167
+ * This property stores the reporting site's access url when available.
168
+ *
169
+ * @type {string}
170
170
  */
171
171
  reportingSiteUrl: 'string',
172
- /**
173
- * This property stores the encryption key url when available.
174
- *
175
- * @type {string}
172
+ /**
173
+ * This property stores the encryption key url when available.
174
+ *
175
+ * @type {string}
176
176
  */
177
177
  searchEncryptionKeyUrl: 'string',
178
- /**
179
- * This property stores the availability of support-provided text from the
180
- * **WDM** service.
181
- *
182
- * @type {boolean}
178
+ /**
179
+ * This property stores the availability of support-provided text from the
180
+ * **WDM** service.
181
+ *
182
+ * @type {boolean}
183
183
  */
184
184
  showSupportText: 'boolean',
185
- /**
186
- * This property stores the support provider's company name when available.
187
- *
188
- * @type {string}
185
+ /**
186
+ * This property stores the support provider's company name when available.
187
+ *
188
+ * @type {string}
189
189
  */
190
190
  supportProviderCompanyName: 'string',
191
- /**
192
- * This property stores the support provider's logo url when available.
193
- *
194
- * @type {string}
191
+ /**
192
+ * This property stores the support provider's logo url when available.
193
+ *
194
+ * @type {string}
195
195
  */
196
196
  supportProviderLogoUrl: 'string',
197
- /**
198
- * This property stores the device's url retrieved from a registration
199
- * request. This property gets set via the initial registration process by a
200
- * `this.set()` method.
201
- *
202
- * @type {string}
197
+ /**
198
+ * This property stores the device's url retrieved from a registration
199
+ * request. This property gets set via the initial registration process by a
200
+ * `this.set()` method.
201
+ *
202
+ * @type {string}
203
203
  */
204
204
  url: 'string',
205
- /**
206
- * This property stores the device's userId uuid value, which can also be
207
- * derived from the device's registerd user's userId retrieved from
208
- * the **Hydra** service.
209
- *
210
- * @type {string}
205
+ /**
206
+ * This property stores the device's userId uuid value, which can also be
207
+ * derived from the device's registerd user's userId retrieved from
208
+ * the **Hydra** service.
209
+ *
210
+ * @type {string}
211
211
  */
212
212
  userId: 'string',
213
- /**
214
- * This property stores whether or not file sharing is enabled
215
- *
216
- * @type {'BLOCK_BOTH' | 'BLOCK_UPLOAD'}
213
+ /**
214
+ * This property stores whether or not file sharing is enabled
215
+ *
216
+ * @type {'BLOCK_BOTH' | 'BLOCK_UPLOAD'}
217
217
  */
218
218
  webFileShareControl: 'string',
219
- /**
220
- * This property stores the current web socket url used by the registered
221
- * device.
222
- *
223
- * @type {string}
219
+ /**
220
+ * This property stores the current web socket url used by the registered
221
+ * device.
222
+ *
223
+ * @type {string}
224
224
  */
225
225
  webSocketUrl: 'string',
226
- /**
227
- * This property stores the value indicating whether or not white board file
228
- * sharing is enabled for the current device.
229
- *
230
- * @type {'ALLOW' | 'BLOCK'}
226
+ /**
227
+ * This property stores the value indicating whether or not white board file
228
+ * sharing is enabled for the current device.
229
+ *
230
+ * @type {'ALLOW' | 'BLOCK'}
231
231
  */
232
232
  whiteboardFileShareControl: 'string'
233
233
  },
234
- /**
235
- * A list of derived properties that populate based when their parent data
236
- * available via the device's properties.
237
- *
238
- * @type {Object}
234
+ /**
235
+ * A list of derived properties that populate based when their parent data
236
+ * available via the device's properties.
237
+ *
238
+ * @type {Object}
239
239
  */
240
240
  derived: {
241
- /**
242
- * This property determines if the current device is registered.
243
- *
244
- * @type {boolean}
241
+ /**
242
+ * This property determines if the current device is registered.
243
+ *
244
+ * @type {boolean}
245
245
  */
246
246
  registered: {
247
247
  deps: ['url'],
248
- /**
249
- * Checks if the device is registered by validating that the url exists.
250
- * Amperstand does not allow this to method to be written as an arrow
251
- * function.
252
- *
253
- * @returns {boolean}
248
+ /**
249
+ * Checks if the device is registered by validating that the url exists.
250
+ * Amperstand does not allow this to method to be written as an arrow
251
+ * function.
252
+ *
253
+ * @returns {boolean}
254
254
  */
255
255
  fn: function fn() {
256
256
  return !!this.url;
257
257
  }
258
258
  }
259
259
  },
260
- /**
261
- * Stores timer data as well as other state details.
262
- *
263
- * @type {Object}
260
+ /**
261
+ * Stores timer data as well as other state details.
262
+ *
263
+ * @type {Object}
264
264
  */
265
265
  session: {
266
- /**
267
- * This property stores the logout timer object
268
- *
269
- * @type {any}
266
+ /**
267
+ * This property stores the logout timer object
268
+ *
269
+ * @type {any}
270
270
  */
271
271
  logoutTimer: 'any',
272
- /**
273
- * This property stores the date for the last activity the user made
274
- * with the current device.
275
- *
276
- * @type {number}
272
+ /**
273
+ * This property stores the date for the last activity the user made
274
+ * with the current device.
275
+ *
276
+ * @type {number}
277
277
  */
278
278
  lastUserActivityDate: 'number',
279
- /**
280
- * This property stores whether or not the reachability check has been
281
- * performed to prevent the reachability check from performing its
282
- * operation more than once after a successful check.
283
- *
284
- * @returns {boolean}
279
+ /**
280
+ * This property stores whether or not the reachability check has been
281
+ * performed to prevent the reachability check from performing its
282
+ * operation more than once after a successful check.
283
+ *
284
+ * @returns {boolean}
285
285
  */
286
286
  isReachabilityChecked: ['boolean', false, false],
287
- /**
288
- * This property stores whether or not the current device is in a meeting
289
- * to prevent an unneeded timeout of a meeting due to inactivity.
290
- *
291
- * @type {boolean}
287
+ /**
288
+ * This property stores whether or not the current device is in a meeting
289
+ * to prevent an unneeded timeout of a meeting due to inactivity.
290
+ *
291
+ * @type {boolean}
292
292
  */
293
293
  isInMeeting: 'boolean',
294
- /**
295
- * This property identifies if the device is currently in network to prevent
296
- * the `resetLogoutTimer()` method from being called repeatedly once its
297
- * known client is connected to the organization's internal network.
298
- *
299
- * @type {boolean}
294
+ /**
295
+ * This property identifies if the device is currently in network to prevent
296
+ * the `resetLogoutTimer()` method from being called repeatedly once its
297
+ * known client is connected to the organization's internal network.
298
+ *
299
+ * @type {boolean}
300
300
  */
301
301
  isInNetwork: 'boolean'
302
302
  },
303
303
  // Event method members.
304
- /**
305
- * Trigger meeting started event for webex instance. Used by web-client team.
306
- *
307
- * @returns {void}
304
+ /**
305
+ * Trigger meeting started event for webex instance. Used by web-client team.
306
+ *
307
+ * @returns {void}
308
308
  */
309
309
  meetingStarted: function meetingStarted() {
310
310
  this.webex.trigger('meeting started');
311
311
  },
312
- /**
313
- * Trigger meeting ended event for webex instance. Used by web-client team.
314
- *
315
- * @returns {void}
312
+ /**
313
+ * Trigger meeting ended event for webex instance. Used by web-client team.
314
+ *
315
+ * @returns {void}
316
316
  */
317
317
  meetingEnded: function meetingEnded() {
318
318
  this.webex.trigger('meeting ended');
@@ -425,12 +425,12 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
425
425
  },
426
426
  /* eslint-enable require-jsdoc */
427
427
  // Helper method members
428
- /**
429
- * Determine if registration methods can be performed. This method utilizes
430
- * the `services` plugin to confirm if the appropriate service urls are
431
- * available for device registration.
432
- *
433
- * @returns {Promise<void, Error>}
428
+ /**
429
+ * Determine if registration methods can be performed. This method utilizes
430
+ * the `services` plugin to confirm if the appropriate service urls are
431
+ * available for device registration.
432
+ *
433
+ * @returns {Promise<void, Error>}
434
434
  */
435
435
  canRegister: function canRegister() {
436
436
  this.logger.info('device: validating if registration can occur');
@@ -446,10 +446,10 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
446
446
  );
447
447
  });
448
448
  },
449
- /**
450
- * Check if the device can currently reach the inactivity check url.
451
- *
452
- * @returns {Promise<void, Error>}
449
+ /**
450
+ * Check if the device can currently reach the inactivity check url.
451
+ *
452
+ * @returns {Promise<void, Error>}
453
453
  */
454
454
  checkNetworkReachability: function checkNetworkReachability() {
455
455
  var _this4 = this;
@@ -489,11 +489,11 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
489
489
  return _promise.default.resolve(_this4.resetLogoutTimer());
490
490
  });
491
491
  },
492
- /**
493
- * Clears the registration ttl value if available.
494
- *
495
- * @param {Object} options - Values to be cleared.
496
- * @returns {void}
492
+ /**
493
+ * Clears the registration ttl value if available.
494
+ *
495
+ * @param {Object} options - Values to be cleared.
496
+ * @returns {void}
497
497
  */
498
498
  clear: function clear() {
499
499
  this.logger.info('device: clearing registered device');
@@ -504,11 +504,11 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
504
504
  }
505
505
  (0, _apply.default)(_webexCore.WebexPlugin.prototype.clear, this, args);
506
506
  },
507
- /**
508
- * Get the current websocket url with the appropriate priority host.
509
- *
510
- * @param {boolean} [wait=false] - Willing to wait on a valid url.
511
- * @returns {Promise<string, Error>} - The priority-mapped web socket url.
507
+ /**
508
+ * Get the current websocket url with the appropriate priority host.
509
+ *
510
+ * @param {boolean} [wait=false] - Willing to wait on a valid url.
511
+ * @returns {Promise<string, Error>} - The priority-mapped web socket url.
512
512
  */
513
513
  getWebSocketUrl: function getWebSocketUrl() {
514
514
  var _this5 = this;
@@ -542,11 +542,11 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
542
542
  }
543
543
  return _promise.default.reject(new Error('device: failed to get the current websocket url'));
544
544
  },
545
- /**
546
- * Process a successful device registration.
547
- *
548
- * @param {Object} response - response object from registration success.
549
- * @returns {void}
545
+ /**
546
+ * Process a successful device registration.
547
+ *
548
+ * @param {Object} response - response object from registration success.
549
+ * @returns {void}
550
550
  */
551
551
  processRegistrationSuccess: function processRegistrationSuccess(response) {
552
552
  var _this6 = this;
@@ -591,11 +591,11 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
591
591
  // Emit the registration:success event.
592
592
  this.trigger(_constants.DEVICE_EVENT_REGISTRATION_SUCCESS, this);
593
593
  },
594
- /**
595
- * Reset the current local logout timer for the registered device if
596
- * registered.
597
- *
598
- * @returns {void}
594
+ /**
595
+ * Reset the current local logout timer for the registered device if
596
+ * registered.
597
+ *
598
+ * @returns {void}
599
599
  */
600
600
  resetLogoutTimer: function resetLogoutTimer() {
601
601
  this.logger.info('device: resetting logout timer');
@@ -619,11 +619,11 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
619
619
  }
620
620
  }
621
621
  },
622
- /**
623
- * Set the value of the logout timer for the current registered device.
624
- *
625
- * @param {number} duration - Value in seconds of the new logout timer.
626
- * @returns {void}
622
+ /**
623
+ * Set the value of the logout timer for the current registered device.
624
+ *
625
+ * @param {number} duration - Value in seconds of the new logout timer.
626
+ * @returns {void}
627
627
  */
628
628
  setLogoutTimer: function setLogoutTimer(duration) {
629
629
  var _this7 = this;
@@ -642,11 +642,11 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
642
642
  _this7.webex.logout();
643
643
  }, duration * 1000);
644
644
  },
645
- /**
646
- * Wait for the device to be registered.
647
- *
648
- * @param {number} [timeout=10] - The maximum duration to wait, in seconds.
649
- * @returns {Promise<void, Error>}
645
+ /**
646
+ * Wait for the device to be registered.
647
+ *
648
+ * @param {number} [timeout=10] - The maximum duration to wait, in seconds.
649
+ * @returns {Promise<void, Error>}
650
650
  */
651
651
  waitForRegistration: function waitForRegistration() {
652
652
  var _this8 = this;
@@ -716,7 +716,7 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
716
716
  _this9.resetLogoutTimer();
717
717
  });
718
718
  } /* eslint-enable require-jsdoc */,
719
- version: "2.59.2"
719
+ version: "2.59.0"
720
720
  }, ((0, _applyDecoratedDescriptor2.default)(_obj, "refresh", [_common.oneFlight, _dec], (0, _getOwnPropertyDescriptor.default)(_obj, "refresh"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "register", [_common.oneFlight, _dec2], (0, _getOwnPropertyDescriptor.default)(_obj, "register"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "unregister", [_common.oneFlight, _dec3], (0, _getOwnPropertyDescriptor.default)(_obj, "unregister"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "markUrlFailedAndGetNew", [_dec4], (0, _getOwnPropertyDescriptor.default)(_obj, "markUrlFailedAndGetNew"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "initialize", [_dec5], (0, _getOwnPropertyDescriptor.default)(_obj, "initialize"), _obj)), _obj)));
721
721
  var _default = Device;
722
722
  exports.default = _default;