@webex/internal-plugin-device 3.10.0 → 3.11.0-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.
- package/dist/config.js.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/device.js +18 -18
- package/dist/device.js.map +1 -1
- package/dist/features/feature-collection.js.map +1 -1
- package/dist/features/feature-model.js +1 -0
- package/dist/features/feature-model.js.map +1 -1
- package/dist/features/features-model.js.map +1 -1
- package/dist/features/index.js.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/device-url.js +6 -8
- package/dist/interceptors/device-url.js.map +1 -1
- package/dist/ipNetworkDetector.js +20 -20
- package/dist/ipNetworkDetector.js.map +1 -1
- package/dist/metrics.js.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +10 -10
- package/src/ipNetworkDetector.ts +1 -1
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_common","require","_default","exports","default","device","canRegisterWaitDuration","defaults","body","name","process","title","trim","undefined","inBrowser","deviceType","WEB","model","localizedModel","systemName","systemVersion","enableInactivityEnforcement","ephemeral","ephemeralDeviceTTL","energyForecast","installationId"],"sources":["config.js"],"sourcesContent":["import {inBrowser, deviceType} from '@webex/common';\n\nexport default {\n device: {\n /**\n * The duration to wait for the catalog to populate in seconds.\n *\n * @type {number}\n */\n canRegisterWaitDuration: 10,\n\n /**\n * The default configuration group when sending registration requests.\n *\n * @type {Object}\n */\n defaults: {\n /**\n * The default body configuration of registration requests.\n *\n * @type {Object}\n */\n body: {\n name:\n (typeof process.title === 'string' ? process.title.trim() : undefined) ||\n (inBrowser && 'browser') ||\n 'javascript',\n deviceType: deviceType.WEB,\n model: 'web-js-sdk',\n localizedModel: 'webex-js-sdk',\n systemName: 'WEBEX_JS_SDK',\n systemVersion: '1.0.0',\n },\n },\n\n /**\n * When true, the **wdm** service will enforce an inactivity duration.\n *\n * @type {boolean}\n */\n enableInactivityEnforcement: false,\n\n /**\n * When true, the device registration will include a ttl value of\n * {@link config.device.ephemeralDeviceTTL} and refresh on an interval of\n * {@link config.device.ephemeralDeviceTTL} / 2 + 60 seconds.\n *\n * @type {boolean}\n */\n ephemeral: false,\n\n /**\n * The ttl value to include in device registration if\n * {@link config.device.ephemeral} is true. Measured in seconds.\n *\n * @type {boolean}\n */\n ephemeralDeviceTTL: 30 * 60,\n\n /**\n * energyForcast\n * @type {boolean}\n */\n energyForecast: false,\n },\n\n /**\n * installationId is used exclusively as web client for fraud prevention,\n * and is aliased to as machineId by CA.\n *\n * @alias device.machineId\n * @type {string}\n */\n installationId: undefined,\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAoD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAErC;EACbC,MAAM,EAAE;IACN;AACJ;AACA;AACA;AACA;IACIC,uBAAuB,EAAE,EAAE;IAE3B;AACJ;AACA;AACA;AACA;IACIC,QAAQ,EAAE;MACR;AACN;AACA;AACA;AACA;MACMC,IAAI,EAAE;QACJC,IAAI,EACF,CAAC,OAAOC,OAAO,CAACC,KAAK,KAAK,QAAQ,GAAGD,OAAO,CAACC,KAAK,CAACC,IAAI,CAAC,CAAC,GAAGC,SAAS,KACpEC,iBAAS,IAAI,SAAU,IACxB,YAAY;QACdC,UAAU,EAAEA,kBAAU,CAACC,GAAG;QAC1BC,KAAK,EAAE,YAAY;QACnBC,cAAc,EAAE,cAAc;QAC9BC,UAAU,EAAE,cAAc;QAC1BC,aAAa,EAAE;MACjB;IACF,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIC,2BAA2B,EAAE,KAAK;IAElC;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,SAAS,EAAE,KAAK;IAEhB;AACJ;AACA;AACA;AACA;AACA;IACIC,kBAAkB,EAAE,EAAE,GAAG,EAAE;IAE3B;AACJ;AACA;AACA;IACIC,cAAc,EAAE;EAClB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,cAAc,EAAEZ;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"names":["_common","require","_default","exports","default","device","canRegisterWaitDuration","defaults","body","name","process","title","trim","undefined","inBrowser","deviceType","WEB","model","localizedModel","systemName","systemVersion","enableInactivityEnforcement","ephemeral","ephemeralDeviceTTL","energyForecast","installationId"],"sources":["config.js"],"sourcesContent":["import {inBrowser, deviceType} from '@webex/common';\n\nexport default {\n device: {\n /**\n * The duration to wait for the catalog to populate in seconds.\n *\n * @type {number}\n */\n canRegisterWaitDuration: 10,\n\n /**\n * The default configuration group when sending registration requests.\n *\n * @type {Object}\n */\n defaults: {\n /**\n * The default body configuration of registration requests.\n *\n * @type {Object}\n */\n body: {\n name:\n (typeof process.title === 'string' ? process.title.trim() : undefined) ||\n (inBrowser && 'browser') ||\n 'javascript',\n deviceType: deviceType.WEB,\n model: 'web-js-sdk',\n localizedModel: 'webex-js-sdk',\n systemName: 'WEBEX_JS_SDK',\n systemVersion: '1.0.0',\n },\n },\n\n /**\n * When true, the **wdm** service will enforce an inactivity duration.\n *\n * @type {boolean}\n */\n enableInactivityEnforcement: false,\n\n /**\n * When true, the device registration will include a ttl value of\n * {@link config.device.ephemeralDeviceTTL} and refresh on an interval of\n * {@link config.device.ephemeralDeviceTTL} / 2 + 60 seconds.\n *\n * @type {boolean}\n */\n ephemeral: false,\n\n /**\n * The ttl value to include in device registration if\n * {@link config.device.ephemeral} is true. Measured in seconds.\n *\n * @type {boolean}\n */\n ephemeralDeviceTTL: 30 * 60,\n\n /**\n * energyForcast\n * @type {boolean}\n */\n energyForecast: false,\n },\n\n /**\n * installationId is used exclusively as web client for fraud prevention,\n * and is aliased to as machineId by CA.\n *\n * @alias device.machineId\n * @type {string}\n */\n installationId: undefined,\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAoD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAErC;EACbC,MAAM,EAAE;IACN;AACJ;AACA;AACA;AACA;IACIC,uBAAuB,EAAE,EAAE;IAE3B;AACJ;AACA;AACA;AACA;IACIC,QAAQ,EAAE;MACR;AACN;AACA;AACA;AACA;MACMC,IAAI,EAAE;QACJC,IAAI,EACF,CAAC,OAAOC,OAAO,CAACC,KAAK,KAAK,QAAQ,GAAGD,OAAO,CAACC,KAAK,CAACC,IAAI,CAAC,CAAC,GAAGC,SAAS,KACpEC,iBAAS,IAAI,SAAU,IACxB,YAAY;QACdC,UAAU,EAAEA,kBAAU,CAACC,GAAG;QAC1BC,KAAK,EAAE,YAAY;QACnBC,cAAc,EAAE,cAAc;QAC9BC,UAAU,EAAE,cAAc;QAC1BC,aAAa,EAAE;MACjB;IACF,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIC,2BAA2B,EAAE,KAAK;IAElC;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,SAAS,EAAE,KAAK;IAEhB;AACJ;AACA;AACA;AACA;AACA;IACIC,kBAAkB,EAAE,EAAE,GAAG,EAAE;IAE3B;AACJ;AACA;AACA;IACIC,cAAc,EAAE;EAClB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,cAAc,EAAEZ;AAClB,CAAC","ignoreList":[]}
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FEATURE_COLLECTION_DEVELOPER","exports","FEATURE_COLLECTION_ENTITLEMENT","FEATURE_COLLECTION_USER","CISCO_DEVICE_URL","FEATURE_COLLECTION_NAMES","FEATURE_TYPES","BOOLEAN","NUMBER","STRING","DEVICE_EVENT_REGISTRATION_SUCCESS","DEVICE_EVENTS"],"sources":["constants.js"],"sourcesContent":["// Feature constants.\nexport const FEATURE_COLLECTION_DEVELOPER = 'developer';\nexport const FEATURE_COLLECTION_ENTITLEMENT = 'entitlement';\nexport const FEATURE_COLLECTION_USER = 'user';\n\nexport const CISCO_DEVICE_URL = 'cisco-device-url';\n\nexport const FEATURE_COLLECTION_NAMES = [\n FEATURE_COLLECTION_DEVELOPER,\n FEATURE_COLLECTION_ENTITLEMENT,\n FEATURE_COLLECTION_USER,\n];\n\nexport const FEATURE_TYPES = {\n BOOLEAN: 'boolean',\n NUMBER: 'number',\n STRING: 'string',\n};\n\n// Device constants.\nexport const DEVICE_EVENT_REGISTRATION_SUCCESS = 'registration:success';\n\nexport const DEVICE_EVENTS = [DEVICE_EVENT_REGISTRATION_SUCCESS];\n"],"mappings":";;;;;;;AAAA;AACO,IAAMA,4BAA4B,GAAAC,OAAA,CAAAD,4BAAA,GAAG,WAAW;AAChD,IAAME,8BAA8B,GAAAD,OAAA,CAAAC,8BAAA,GAAG,aAAa;AACpD,IAAMC,uBAAuB,GAAAF,OAAA,CAAAE,uBAAA,GAAG,MAAM;AAEtC,IAAMC,gBAAgB,GAAAH,OAAA,CAAAG,gBAAA,GAAG,kBAAkB;AAE3C,IAAMC,wBAAwB,GAAAJ,OAAA,CAAAI,wBAAA,GAAG,CACtCL,4BAA4B,EAC5BE,8BAA8B,EAC9BC,uBAAuB,CACxB;AAEM,IAAMG,aAAa,GAAAL,OAAA,CAAAK,aAAA,GAAG;EAC3BC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE;AACV,CAAC;;AAED;AACO,IAAMC,iCAAiC,GAAAT,OAAA,CAAAS,iCAAA,GAAG,sBAAsB;AAEhE,IAAMC,aAAa,GAAAV,OAAA,CAAAU,aAAA,GAAG,CAACD,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"names":["FEATURE_COLLECTION_DEVELOPER","exports","FEATURE_COLLECTION_ENTITLEMENT","FEATURE_COLLECTION_USER","CISCO_DEVICE_URL","FEATURE_COLLECTION_NAMES","FEATURE_TYPES","BOOLEAN","NUMBER","STRING","DEVICE_EVENT_REGISTRATION_SUCCESS","DEVICE_EVENTS"],"sources":["constants.js"],"sourcesContent":["// Feature constants.\nexport const FEATURE_COLLECTION_DEVELOPER = 'developer';\nexport const FEATURE_COLLECTION_ENTITLEMENT = 'entitlement';\nexport const FEATURE_COLLECTION_USER = 'user';\n\nexport const CISCO_DEVICE_URL = 'cisco-device-url';\n\nexport const FEATURE_COLLECTION_NAMES = [\n FEATURE_COLLECTION_DEVELOPER,\n FEATURE_COLLECTION_ENTITLEMENT,\n FEATURE_COLLECTION_USER,\n];\n\nexport const FEATURE_TYPES = {\n BOOLEAN: 'boolean',\n NUMBER: 'number',\n STRING: 'string',\n};\n\n// Device constants.\nexport const DEVICE_EVENT_REGISTRATION_SUCCESS = 'registration:success';\n\nexport const DEVICE_EVENTS = [DEVICE_EVENT_REGISTRATION_SUCCESS];\n"],"mappings":";;;;;;;AAAA;AACO,IAAMA,4BAA4B,GAAAC,OAAA,CAAAD,4BAAA,GAAG,WAAW;AAChD,IAAME,8BAA8B,GAAAD,OAAA,CAAAC,8BAAA,GAAG,aAAa;AACpD,IAAMC,uBAAuB,GAAAF,OAAA,CAAAE,uBAAA,GAAG,MAAM;AAEtC,IAAMC,gBAAgB,GAAAH,OAAA,CAAAG,gBAAA,GAAG,kBAAkB;AAE3C,IAAMC,wBAAwB,GAAAJ,OAAA,CAAAI,wBAAA,GAAG,CACtCL,4BAA4B,EAC5BE,8BAA8B,EAC9BC,uBAAuB,CACxB;AAEM,IAAMG,aAAa,GAAAL,OAAA,CAAAK,aAAA,GAAG;EAC3BC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE;AACV,CAAC;;AAED;AACO,IAAMC,iCAAiC,GAAAT,OAAA,CAAAS,iCAAA,GAAG,sBAAsB;AAEhE,IAAMC,aAAa,GAAAV,OAAA,CAAAU,aAAA,GAAG,CAACD,iCAAiC,CAAC","ignoreList":[]}
|
package/dist/device.js
CHANGED
|
@@ -38,7 +38,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
38
38
|
function decider() {
|
|
39
39
|
return !this.config.ephemeral;
|
|
40
40
|
}
|
|
41
|
-
var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@'), _dec2 = (0, _webexCore.waitForValue)('@'), _dec3 = (0, _webexCore.waitForValue)('@'), _dec4 = (0, _webexCore.waitForValue)('@'), _dec5 = (0, _common.deprecated)('device#markUrlFailedAndGetNew(): Use services#markFailedUrl()'), _dec6 = (0, _webexCore.persist)('@', decider),
|
|
41
|
+
var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)('@'), _dec2 = (0, _webexCore.waitForValue)('@'), _dec3 = (0, _webexCore.waitForValue)('@'), _dec4 = (0, _webexCore.waitForValue)('@'), _dec5 = (0, _common.deprecated)('device#markUrlFailedAndGetNew(): Use services#markFailedUrl()'), _dec6 = (0, _webexCore.persist)('@', decider), _obj = {
|
|
42
42
|
// Ampersand property members.
|
|
43
43
|
|
|
44
44
|
namespace: 'Device',
|
|
@@ -782,17 +782,17 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
|
|
|
782
782
|
* @returns {Promise<void, Error>}
|
|
783
783
|
*/
|
|
784
784
|
waitForRegistration: function waitForRegistration() {
|
|
785
|
-
var
|
|
785
|
+
var _this0 = this;
|
|
786
786
|
var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
|
|
787
787
|
this.logger.info('device: waiting for registration');
|
|
788
788
|
return new _promise.default(function (resolve, reject) {
|
|
789
|
-
if (
|
|
789
|
+
if (_this0.registered) {
|
|
790
790
|
resolve();
|
|
791
791
|
}
|
|
792
792
|
var timeoutTimer = (0, _commonTimers.safeSetTimeout)(function () {
|
|
793
793
|
return reject(new Error('device: timeout occured while waiting for registration'));
|
|
794
794
|
}, timeout * 1000);
|
|
795
|
-
|
|
795
|
+
_this0.once(_constants.DEVICE_EVENT_REGISTRATION_SUCCESS, function () {
|
|
796
796
|
clearTimeout(timeoutTimer);
|
|
797
797
|
resolve();
|
|
798
798
|
});
|
|
@@ -802,7 +802,7 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
|
|
|
802
802
|
return _promise.default.resolve(this.webex.internal.services.markFailedUrl(url));
|
|
803
803
|
},
|
|
804
804
|
initialize: function initialize() {
|
|
805
|
-
var
|
|
805
|
+
var _this1 = this;
|
|
806
806
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
807
807
|
args[_key2] = arguments[_key2];
|
|
808
808
|
}
|
|
@@ -811,45 +811,45 @@ var Device = _webexCore.WebexPlugin.extend((_dec = (0, _webexCore.waitForValue)(
|
|
|
811
811
|
|
|
812
812
|
// Initialize feature events and listeners.
|
|
813
813
|
_constants.FEATURE_COLLECTION_NAMES.forEach(function (collectionName) {
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
814
|
+
_this1.features.on("change:".concat(collectionName), function (model, value, options) {
|
|
815
|
+
_this1.trigger('change', _this1, options);
|
|
816
|
+
_this1.trigger('change:features', _this1, _this1.features, options);
|
|
817
817
|
});
|
|
818
818
|
});
|
|
819
819
|
|
|
820
820
|
// Initialize network reachability checking event for url change.
|
|
821
821
|
this.on('change:intranetInactivityCheckUrl', function () {
|
|
822
|
-
|
|
822
|
+
_this1.checkNetworkReachability();
|
|
823
823
|
});
|
|
824
824
|
|
|
825
825
|
// Initialize network reachability checking event for duration change.
|
|
826
826
|
this.on('change:intranetInactivityDuration', function () {
|
|
827
|
-
|
|
827
|
+
_this1.checkNetworkReachability();
|
|
828
828
|
});
|
|
829
829
|
|
|
830
830
|
// Initialize network reachability checking event for duration change.
|
|
831
831
|
this.on('change:inNetworkInactivityDuration', function () {
|
|
832
|
-
|
|
832
|
+
_this1.checkNetworkReachability();
|
|
833
833
|
});
|
|
834
834
|
|
|
835
835
|
// Initialize listener for activity checking.
|
|
836
836
|
this.listenTo(this.webex, 'user-activity', function () {
|
|
837
|
-
|
|
837
|
+
_this1.lastUserActivityDate = (0, _now.default)();
|
|
838
838
|
});
|
|
839
839
|
|
|
840
840
|
// Initialize listener for meeting started event.
|
|
841
841
|
this.listenTo(this.webex, 'meeting started', function () {
|
|
842
|
-
|
|
843
|
-
|
|
842
|
+
_this1.isInMeeting = true;
|
|
843
|
+
_this1.resetLogoutTimer();
|
|
844
844
|
});
|
|
845
845
|
|
|
846
846
|
// Initialize listener for meeting ended event.
|
|
847
847
|
this.listenTo(this.webex, 'meeting ended', function () {
|
|
848
|
-
|
|
849
|
-
|
|
848
|
+
_this1.isInMeeting = false;
|
|
849
|
+
_this1.resetLogoutTimer();
|
|
850
850
|
});
|
|
851
851
|
} /* eslint-enable require-jsdoc */,
|
|
852
|
-
version: "3.
|
|
853
|
-
}, (
|
|
852
|
+
version: "3.11.0-next.1"
|
|
853
|
+
}, (0, _applyDecoratedDescriptor2.default)(_obj, "refresh", [_common.oneFlight, _dec], (0, _getOwnPropertyDescriptor.default)(_obj, "refresh"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "register", [_dec2], (0, _getOwnPropertyDescriptor.default)(_obj, "register"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "_registerInternal", [_common.oneFlight, _dec3], (0, _getOwnPropertyDescriptor.default)(_obj, "_registerInternal"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "unregister", [_common.oneFlight, _dec4], (0, _getOwnPropertyDescriptor.default)(_obj, "unregister"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "markUrlFailedAndGetNew", [_dec5], (0, _getOwnPropertyDescriptor.default)(_obj, "markUrlFailedAndGetNew"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "initialize", [_dec6], (0, _getOwnPropertyDescriptor.default)(_obj, "initialize"), _obj), _obj));
|
|
854
854
|
var _default = exports.default = Device;
|
|
855
855
|
//# sourceMappingURL=device.js.map
|
package/dist/device.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_common","require","_webexCore","_commonTimers","_lodash","_uuid","_interopRequireDefault","_metrics","_constants","_featuresModel","_ipNetworkDetector","_types","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_obj","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor2","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","decider","config","ephemeral","Device","WebexPlugin","extend","waitForValue","deprecated","persist","namespace","extraProperties","idAttribute","children","features","FeaturesModel","ipNetworkDetector","IpNetworkDetector","props","clientMessagingGiphy","customerCompanyName","customerLogoUrl","deviceType","helpUrl","intranetInactivityDuration","intranetInactivityCheckUrl","inNetworkInactivityDuration","ecmEnabledForAllUsers","ecmSupportedStorageProviders","modificationTime","navigationBarColor","partnerCompanyName","partnerLogoUrl","peopleInsightsEnabled","reportingSiteDesc","reportingSiteUrl","searchEncryptionKeyUrl","showSupportText","supportProviderCompanyName","supportProviderLogoUrl","url","userId","webFileShareControl","webSocketUrl","whiteboardFileShareControl","derived","registered","deps","fn","session","logoutTimer","lastUserActivityDate","isReachabilityChecked","energyForecastConfig","isInMeeting","isInNetwork","meetingStarted","webex","trigger","meetingEnded","setEnergyForecastConfig","undefined","refresh","_this","deviceRegistrationOptions","logger","info","canRegister","then","register","body","serialize","mediaCluster","etag","ttl","ephemeralDeviceTTL","headers","defaults","_deviceRegistrationOp","includeDetails","CatalogDetails","all","requestId","uuid","v4","set","request","method","uri","qs","includeUpstreamServices","concat","energyForecast","response","get","_promise","resolve","processRegistrationSuccess","catch","reason","statusCode","clear","reject","deleteDevices","_this2","service","resource","devices","_this2$_getBody","_getBody","webDevices","item","sortedDevices","orderBy","Date","totalItems","countToDelete","Math","ceil","urlsToDelete","slice","map","race","error","_this3","internal","newMetrics","callDiagnosticMetrics","setDeviceInfo","_registerInternal","_error$body","message","_this4","submitInternalEvent","name","_deviceRegistrationOp2","metrics","submitClientMetrics","METRICS","JS_SDK_WDM_REGISTRATION_SUCCESSFUL","JS_SDK_WDM_REGISTRATION_FAILED","fields","unregister","_this5","warn","services","waitForCatalog","canRegisterWaitDuration","Error","join","checkNetworkReachability","_this6","resetLogoutTimer","trackingid","_len","args","Array","_key","_apply","prototype","getWebSocketUrl","_this7","wait","waitForRegistration","convertUrlToPriorityHostUrl","wsUrl","_this8","serviceHostMap","_ref","user","reset","entitlement","delay","refreshTimer","safeSetTimeout","DEVICE_EVENT_REGISTRATION_SUCCESS","clearTimeout","off","unset","enableInactivityEnforcement","setLogoutTimer","duration","_this9","on","logout","_this10","timeout","timeoutTimer","once","markUrlFailedAndGetNew","markFailedUrl","initialize","_this11","_len2","_key2","FEATURE_COLLECTION_NAMES","collectionName","model","value","options","listenTo","_now","version","_applyDecoratedDescriptor2","oneFlight","_getOwnPropertyDescriptor","_default","exports"],"sources":["device.js"],"sourcesContent":["// Internal Dependencies\nimport {deprecated, oneFlight} from '@webex/common';\nimport {persist, waitForValue, WebexPlugin} from '@webex/webex-core';\nimport {safeSetTimeout} from '@webex/common-timers';\nimport {orderBy} from 'lodash';\nimport uuid from 'uuid';\n\nimport METRICS from './metrics';\nimport {FEATURE_COLLECTION_NAMES, DEVICE_EVENT_REGISTRATION_SUCCESS} from './constants';\nimport FeaturesModel from './features/features-model';\nimport IpNetworkDetector from './ipNetworkDetector';\nimport {CatalogDetails} from './types';\n\n/**\n * Determine if the plugin should be initialized based on cached storage.\n *\n * @returns {boolean} - If the device is ephemeral.\n */\nfunction decider() {\n return !this.config.ephemeral;\n}\n\nconst Device = WebexPlugin.extend({\n // Ampersand property members.\n\n namespace: 'Device',\n\n // Allow for extra properties to prevent the plugin from failing due to\n // **WDM** service DTO changes.\n extraProperties: 'allow',\n\n idAttribute: 'url',\n\n children: {\n /**\n * The class object that contains all of the feature collections.\n *\n * @type {FeaturesModel}\n */\n features: FeaturesModel,\n /**\n * Helper class for detecting what IP network version (ipv4, ipv6) we're on.\n *\n * @type {IpNetworkDetector}\n */\n ipNetworkDetector: IpNetworkDetector,\n },\n\n /**\n * A collection of device properties mostly assigned by the retrieved DTO from\n * the **WDM** service that are mapped against the ampersand properties.\n *\n * @type {Object}\n */\n props: {\n /**\n * This property determines whether or not giphy support is enabled.\n *\n * @type {'ALLOW' | 'BLOCK'}\n */\n clientMessagingGiphy: 'string',\n\n /**\n * This property should store the company name.\n *\n * @type {string}\n */\n customerCompanyName: 'string',\n\n /**\n * This property should store the logo url.\n *\n * @type {string}\n */\n customerLogoUrl: 'string',\n\n /**\n * This property doesn't have any real values, but is sent during device\n * refresh to prevent the **wdm** service from falling back to an iOS device\n * type.\n *\n * @type {string}\n */\n deviceType: 'string',\n\n /**\n * This property should store the help url.\n *\n * @type {string}\n */\n helpUrl: 'string',\n\n /**\n * This property should store the intranet inactivity timer duration.\n *\n * @type {number}\n */\n intranetInactivityDuration: 'number',\n\n /**\n * This property stores the url required to validate if the device is able\n * to actively reach the intranet network.\n *\n * @type {string}\n */\n intranetInactivityCheckUrl: 'string',\n\n /**\n * This property stores the inactivity timer duration, and could possibly\n * deprecate the `intranetInactivityDuration` property.\n *\n * @type {number}\n */\n inNetworkInactivityDuration: 'number',\n\n /**\n * This property stores the ECM (external content management) enabled value\n * for the whole organization.\n *\n * @type {boolean}\n */\n ecmEnabledForAllUsers: ['boolean', false, false],\n\n /**\n * This property stores an array of ECM (external content management)\n * providers that are currently available.\n *\n * @returns {Array<string>}\n */\n ecmSupportedStorageProviders: ['array', false, () => []],\n\n /**\n * This property stores the modification time value retrieved from the\n * **WDM** endpoint formatted as ISO 8601.\n *\n * @type {string}\n */\n modificationTime: 'string',\n\n /**\n * This property stores the navigation bar color.\n *\n * @type {string}\n */\n navigationBarColor: 'string',\n\n /**\n * This property stores the partner company's name when available.\n *\n * @type {string}\n */\n partnerCompanyName: 'string',\n\n /**\n * This property stores the partner company's logo when available.\n *\n * @type {string}\n */\n partnerLogoUrl: 'string',\n\n /**\n * This property stores the availability of people data from the **WDM**\n * service.\n *\n * @type {boolean}\n */\n peopleInsightsEnabled: 'boolean',\n\n /**\n * This property stores the reporting site's description when available.\n *\n * @type {string}\n */\n reportingSiteDesc: 'string',\n\n /**\n * This property stores the reporting site's access url when available.\n *\n * @type {string}\n */\n reportingSiteUrl: 'string',\n\n /**\n * This property stores the encryption key url when available.\n *\n * @type {string}\n */\n searchEncryptionKeyUrl: 'string',\n\n /**\n * This property stores the availability of support-provided text from the\n * **WDM** service.\n *\n * @type {boolean}\n */\n showSupportText: 'boolean',\n\n /**\n * This property stores the support provider's company name when available.\n *\n * @type {string}\n */\n supportProviderCompanyName: 'string',\n\n /**\n * This property stores the support provider's logo url when available.\n *\n * @type {string}\n */\n supportProviderLogoUrl: 'string',\n\n /**\n * This property stores the device's url retrieved from a registration\n * request. This property gets set via the initial registration process by a\n * `this.set()` method.\n *\n * @type {string}\n */\n url: 'string',\n\n /**\n * This property stores the device's userId uuid value, which can also be\n * derived from the device's registerd user's userId retrieved from\n * the **Hydra** service.\n *\n * @type {string}\n */\n userId: 'string',\n\n /**\n * This property stores whether or not file sharing is enabled\n *\n * @type {'BLOCK_BOTH' | 'BLOCK_UPLOAD'}\n */\n webFileShareControl: 'string',\n\n /**\n * This property stores the current web socket url used by the registered\n * device.\n *\n * @type {string}\n */\n webSocketUrl: 'string',\n\n /**\n * This property stores the value indicating whether or not white board file\n * sharing is enabled for the current device.\n *\n * @type {'ALLOW' | 'BLOCK'}\n */\n whiteboardFileShareControl: 'string',\n },\n\n /**\n * A list of derived properties that populate based when their parent data\n * available via the device's properties.\n *\n * @type {Object}\n */\n derived: {\n /**\n * This property determines if the current device is registered.\n *\n * @type {boolean}\n */\n registered: {\n deps: ['url'],\n\n /**\n * Checks if the device is registered by validating that the url exists.\n * Amperstand does not allow this to method to be written as an arrow\n * function.\n *\n * @returns {boolean}\n */\n fn() {\n return !!this.url;\n },\n },\n },\n\n /**\n * Stores timer data as well as other state details.\n *\n * @type {Object}\n */\n session: {\n /**\n * This property stores the logout timer object\n *\n * @type {any}\n */\n logoutTimer: 'any',\n\n /**\n * This property stores the date for the last activity the user made\n * with the current device.\n *\n * @type {number}\n */\n lastUserActivityDate: 'number',\n\n /**\n * This property stores whether or not the reachability check has been\n * performed to prevent the reachability check from performing its\n * operation more than once after a successful check.\n *\n * @returns {boolean}\n */\n isReachabilityChecked: ['boolean', false, false],\n\n /**\n * This property stores whether or not the next refresh or register request should request energy forecast data\n * in order to prevent over fetching energy forecasts\n *\n * @type {boolean}\n */\n energyForecastConfig: 'boolean',\n\n /**\n * This property stores whether or not the current device is in a meeting\n * to prevent an unneeded timeout of a meeting due to inactivity.\n *\n * @type {boolean}\n */\n isInMeeting: 'boolean',\n\n /**\n * This property identifies if the device is currently in network to prevent\n * the `resetLogoutTimer()` method from being called repeatedly once its\n * known client is connected to the organization's internal network.\n *\n * @type {boolean}\n */\n isInNetwork: 'boolean',\n },\n\n // Event method members.\n\n /**\n * Trigger meeting started event for webex instance. Used by web-client team.\n *\n * @returns {void}\n */\n meetingStarted() {\n this.webex.trigger('meeting started');\n },\n\n /**\n * Trigger meeting ended event for webex instance. Used by web-client team.\n *\n * @returns {void}\n */\n meetingEnded() {\n this.webex.trigger('meeting ended');\n },\n\n /**\n * Set the value of energy forecast config for the current registered device.\n * @param {boolean} [energyForecastConfig=false] - fetch an energy forecast on the next refresh/register\n * @returns {void}\n */\n setEnergyForecastConfig(energyForecastConfig = false) {\n this.energyForecastConfig = energyForecastConfig;\n },\n\n // Registration method members\n\n /**\n * Refresh the current registered device if able.\n *\n * @param {DeviceRegistrationOptions} options - The options for refresh.\n * @param {CatalogDetails} options.includeDetails - The details to include in the refresh/register request.\n * @returns {Promise<void, Error>}\n */\n @oneFlight\n @waitForValue('@')\n refresh(deviceRegistrationOptions = {}) {\n this.logger.info('device: refreshing');\n\n // Validate that the device can be registered.\n return this.canRegister().then(() => {\n // Validate if the device is not registered and register instead.\n if (!this.registered) {\n this.logger.info('device: device not registered, registering');\n\n return this.register(deviceRegistrationOptions);\n }\n\n // Merge body configurations, overriding defaults.\n const body = {\n ...this.serialize(),\n ...(this.config.body ? this.config.body : {}),\n };\n\n // Remove unneeded properties from the body object.\n delete body.features;\n delete body.mediaCluster;\n delete body.etag;\n\n // Append a ttl value if the device is marked as ephemeral.\n if (this.config.ephemeral) {\n body.ttl = this.config.ephemeralDeviceTTL;\n }\n\n // Merge header configurations, overriding defaults.\n const headers = {\n ...(this.config.defaults.headers ? this.config.defaults.headers : {}),\n ...(this.config.headers ? this.config.headers : {}),\n // If etag is sent, WDM will not send developer feature toggles unless they have changed\n ...(this.etag ? {'If-None-Match': this.etag} : {}),\n };\n\n const {includeDetails = CatalogDetails.all} = deviceRegistrationOptions;\n\n const requestId = uuid.v4();\n this.set('refresh-request-id', requestId);\n\n return this.request({\n method: 'PUT',\n uri: this.url,\n body,\n headers,\n qs: {\n includeUpstreamServices: `${includeDetails}${\n this.config.energyForecast && this.energyForecastConfig ? ',energyforecast' : ''\n }`,\n },\n })\n .then((response) => {\n // If we've signed out in the mean time, the request ID will have changed\n if (this.get('refresh-request-id') !== requestId) {\n this.logger.info('device: refresh request ID mismatch, ignoring response');\n\n return Promise.resolve();\n }\n\n return this.processRegistrationSuccess(response);\n })\n .catch((reason) => {\n // Handle a 404 error, which indicates that the device is no longer\n // valid and needs to be registered as a new device.\n if (reason.statusCode === 404) {\n this.logger.info('device: refresh failed, device is not valid');\n this.logger.info('device: attempting to register a new device');\n\n this.clear();\n\n return this.register(deviceRegistrationOptions);\n }\n\n return Promise.reject(reason);\n });\n });\n },\n /**\n * Fetches the web devices and deletes the third of them which are not recent devices in use\n * @returns {Promise<void, Error>}\n */\n deleteDevices() {\n // Fetch devices with a GET request\n return this.request({\n method: 'GET',\n service: 'wdm',\n resource: 'devices',\n })\n .then((response) => {\n const {devices} = response.body;\n\n const {deviceType} = this._getBody();\n\n // Filter devices of type deviceType\n const webDevices = devices.filter((item) => item.deviceType === deviceType);\n\n const sortedDevices = orderBy(webDevices, [(item) => new Date(item.modificationTime)]);\n\n // If there are more than two devices, delete the last third\n if (sortedDevices.length > 2) {\n const totalItems = sortedDevices.length;\n const countToDelete = Math.ceil(totalItems / 3);\n const urlsToDelete = sortedDevices.slice(0, countToDelete).map((item) => item.url);\n\n return Promise.race(\n urlsToDelete.map((url) => {\n return this.request({\n uri: url,\n method: 'DELETE',\n });\n })\n );\n }\n\n return Promise.resolve();\n })\n .catch((error) => {\n this.logger.error('Failed to retrieve devices:', error);\n\n return Promise.reject(error);\n });\n },\n\n /**\n * Registers and when fails deletes devices\n */\n @waitForValue('@')\n register(deviceRegistrationOptions = {}) {\n this.logger.info('device: registering');\n\n this.webex.internal.newMetrics.callDiagnosticMetrics.setDeviceInfo(this);\n\n // Validate that the device can be registered.\n return this.canRegister().then(() => {\n // Validate if the device is already registered and refresh instead.\n if (this.registered) {\n this.logger.info('device: device already registered, refreshing');\n\n return this.refresh(deviceRegistrationOptions);\n }\n\n return this._registerInternal(deviceRegistrationOptions).catch((error) => {\n if (error?.body?.message === 'User has excessive device registrations') {\n return this.deleteDevices().then(() => {\n return this._registerInternal(deviceRegistrationOptions);\n });\n }\n throw error;\n });\n });\n },\n\n _getBody() {\n return {\n ...(this.config.defaults.body ? this.config.defaults.body : {}),\n ...(this.config.body ? this.config.body : {}),\n };\n },\n\n /**\n * Register or refresh a device depending on the current device state. Device\n * registration utilizes the services plugin to send the request to the\n * **WDM** service.\n *\n * @param {Object} options - The options for registration.\n * @param {CatalogDetails} options.includeDetails - The details to include in the refresh/register request.\n * @returns {Promise<void, Error>}\n */\n @oneFlight\n @waitForValue('@')\n _registerInternal(deviceRegistrationOptions = {}) {\n this.logger.info('device: making registration request');\n\n // Merge body configurations, overriding defaults.\n const body = this._getBody();\n\n // Merge header configurations, overriding defaults.\n const headers = {\n ...(this.config.defaults.headers ? this.config.defaults.headers : {}),\n ...(this.config.headers ? this.config.headers : {}),\n };\n\n // Append a ttl value if the device is marked as ephemeral\n if (this.config.ephemeral) {\n body.ttl = this.config.ephemeralDeviceTTL;\n }\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.register.device.request',\n });\n\n const {includeDetails = CatalogDetails.all} = deviceRegistrationOptions;\n\n const requestId = uuid.v4();\n this.set('register-request-id', requestId);\n\n // This will be replaced by a `create()` method.\n return this.request({\n method: 'POST',\n service: 'wdm',\n resource: 'devices',\n body,\n headers,\n qs: {\n includeUpstreamServices: `${includeDetails}${\n this.config.energyForecast && this.energyForecastConfig ? ',energyforecast' : ''\n }`,\n },\n })\n .catch((error) => {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.register.device.response',\n });\n\n throw error;\n })\n .then((response) => {\n // If we've signed out in the mean time, the request ID will have changed\n if (this.get('register-request-id') !== requestId) {\n this.logger.info('device: register request ID mismatch, ignoring response');\n\n return Promise.resolve();\n }\n\n // Do not add any processing of response above this as that will affect timestamp\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.register.device.response',\n });\n\n this.webex.internal.metrics.submitClientMetrics(METRICS.JS_SDK_WDM_REGISTRATION_SUCCESSFUL);\n\n return this.processRegistrationSuccess(response);\n })\n .catch((error) => {\n this.webex.internal.metrics.submitClientMetrics(METRICS.JS_SDK_WDM_REGISTRATION_FAILED, {\n fields: {error},\n });\n throw error;\n });\n },\n /**\n * Unregister the current registered device if available. Unregistering a\n * device utilizes the services plugin to send the request to the **WDM**\n * service.\n *\n * @returns {Promise<void, Error>}\n */\n @oneFlight\n @waitForValue('@')\n unregister() {\n this.logger.info('device: unregistering');\n\n if (!this.registered) {\n this.logger.warn('device: not registered');\n\n return Promise.resolve();\n }\n\n return this.request({\n uri: this.url,\n method: 'DELETE',\n })\n .then(() => this.clear())\n .catch((reason) => {\n if (reason.statusCode === 404) {\n this.logger.info(\n 'device: 404 when deleting device, device is already deleted, clearing device'\n );\n\n this.clear();\n }\n throw reason;\n });\n },\n /* eslint-enable require-jsdoc */\n\n // Helper method members\n\n /**\n * Determine if registration methods can be performed. This method utilizes\n * the `services` plugin to confirm if the appropriate service urls are\n * available for device registration.\n *\n * @returns {Promise<void, Error>}\n */\n canRegister() {\n this.logger.info('device: validating if registration can occur');\n\n // Destructure the services plugin for ease of reference.\n const {services} = this.webex.internal;\n\n // Wait for the postauth catalog to populate.\n return services.waitForCatalog('postauth', this.config.canRegisterWaitDuration).then(() =>\n // Validate that the service exists after waiting for the catalog.\n services.get('wdm')\n ? Promise.resolve()\n : Promise.reject(\n new Error(\n [\n 'device: cannot register,',\n \"'wdm' service is not available from the postauth catalog\",\n ].join(' ')\n )\n )\n );\n },\n\n /**\n * Check if the device can currently reach the inactivity check url.\n *\n * @returns {Promise<void, Error>}\n */\n checkNetworkReachability() {\n this.logger.info('device: checking network reachability');\n\n // Validate if the device has been checked and reset the logout timer.\n if (this.isReachabilityChecked) {\n return Promise.resolve(this.resetLogoutTimer());\n }\n\n this.isReachabilityChecked = true;\n\n // Validate if the device has a intranet checking url.\n if (!this.intranetInactivityCheckUrl) {\n this.isInNetwork = false;\n\n return Promise.resolve(this.resetLogoutTimer());\n }\n\n // Clear unnecessary headers for reachability request.\n const headers = {\n 'cisco-no-http-redirect': null,\n 'spark-user-agent': null,\n trackingid: null,\n };\n\n // Send the network reachability request.\n return this.request({\n headers,\n method: 'GET',\n uri: this.intranetInactivityCheckUrl,\n })\n .then(() => {\n this.isInNetwork = true;\n\n return Promise.resolve(this.resetLogoutTimer());\n })\n .catch(() => {\n this.logger.info('device: did not reach ping endpoint');\n this.logger.info('device: triggering off-network timer');\n\n this.isInNetwork = false;\n\n return Promise.resolve(this.resetLogoutTimer());\n });\n },\n\n /**\n * Clears the registration ttl value if available.\n *\n * @param {Object} options - Values to be cleared.\n * @returns {void}\n */\n clear(...args) {\n this.logger.info('device: clearing registered device');\n\n // Prototype the extended class in order to preserve the parent member.\n Reflect.apply(WebexPlugin.prototype.clear, this, args);\n },\n\n /**\n * Get the current websocket url with the appropriate priority host.\n *\n * @param {boolean} [wait=false] - Willing to wait on a valid url.\n * @returns {Promise<string, Error>} - The priority-mapped web socket url.\n */\n getWebSocketUrl(wait = false) {\n this.logger.info('device: getting the current websocket url');\n\n // Destructure the services plugin for ease of reference.\n const {services} = this.webex.internal;\n\n // Validate if the method should wait for registration.\n if (wait) {\n return this.waitForRegistration()\n .then(() => services.convertUrlToPriorityHostUrl(this.webSocketUrl))\n .catch((error) => {\n this.logger.warn(error.message);\n\n return Promise.reject(new Error('device: failed to get the current websocket url'));\n });\n }\n\n // Validate if the device is registered.\n if (!this.registered) {\n return Promise.reject(\n new Error('device: cannot get websocket url, device is not registered')\n );\n }\n\n // Attempt to collect the priority-host-mapped web socket URL.\n const wsUrl = services.convertUrlToPriorityHostUrl(this.webSocketUrl);\n\n // Validate that the url was collected.\n if (wsUrl) {\n return Promise.resolve(wsUrl);\n }\n\n return Promise.reject(new Error('device: failed to get the current websocket url'));\n },\n\n /**\n * Process a successful device registration.\n *\n * @param {Object} response - response object from registration success.\n * @returns {void}\n */\n processRegistrationSuccess(response) {\n this.logger.info('device: received registration payload');\n\n // Clone the response body for service cleaning.\n const body = {...response.body};\n\n // Clean service data.\n delete body.services;\n delete body.serviceHostMap;\n\n const {etag} = response.headers || {};\n\n if (this.etag && etag && this.etag === etag) {\n // If current etag matches the previous one and we have sent\n // If-None-Match header the developer and entitlement feature\n // toggles will not be returned\n const {features} = body;\n\n delete body.features;\n // When using the etag feature cache, user and entitlement features are still returned\n this.features.user.reset(features.user);\n this.features.entitlement.reset(features.entitlement);\n }\n\n // Assign the recieved DTO from **WDM** to this device.\n this.set(body);\n\n // Assign the new etag to this device.\n this.set({etag});\n\n // Validate if device is ephemeral and setup refresh timer.\n if (this.config.ephemeral) {\n this.logger.info('device: enqueuing device refresh');\n\n const delay = (this.config.ephemeralDeviceTTL / 2 + 60) * 1000;\n\n this.refreshTimer = safeSetTimeout(() => this.refresh(), delay);\n }\n\n // Emit the registration:success event.\n this.trigger(DEVICE_EVENT_REGISTRATION_SUCCESS, this);\n },\n\n /**\n * Reset the current local logout timer for the registered device if\n * registered.\n *\n * @returns {void}\n */\n resetLogoutTimer() {\n this.logger.info('device: resetting logout timer');\n\n // Clear current logout timer.\n clearTimeout(this.logoutTimer);\n\n // Remove last activity date event listener.\n this.off('change:lastUserActivityDate');\n\n // Remove the logout timer.\n this.unset('logoutTimer');\n\n // Validate if the device is currently in a meeting and is configured to\n // required inactivity enforcement.\n if (\n !this.isInMeeting &&\n this.config.enableInactivityEnforcement &&\n this.isReachabilityChecked\n ) {\n if (this.isInNetwork) {\n this.setLogoutTimer(this.inNetworkInactivityDuration);\n } else {\n this.setLogoutTimer(this.intranetInactivityDuration);\n }\n }\n },\n\n /**\n * Set the value of the logout timer for the current registered device.\n *\n * @param {number} duration - Value in seconds of the new logout timer.\n * @returns {void}\n */\n setLogoutTimer(duration) {\n this.logger.info('device: setting logout timer');\n\n if (!duration || duration <= 0) {\n return;\n }\n\n // Setup user activity date event listener.\n this.on('change:lastUserActivityDate', () => {\n this.resetLogoutTimer();\n });\n\n // Initialize a new timer.\n this.logoutTimer = safeSetTimeout(() => {\n this.webex.logout();\n }, duration * 1000);\n },\n\n /**\n * Wait for the device to be registered.\n *\n * @param {number} [timeout=10] - The maximum duration to wait, in seconds.\n * @returns {Promise<void, Error>}\n */\n waitForRegistration(timeout = 10) {\n this.logger.info('device: waiting for registration');\n\n return new Promise((resolve, reject) => {\n if (this.registered) {\n resolve();\n }\n\n const timeoutTimer = safeSetTimeout(\n () => reject(new Error('device: timeout occured while waiting for registration')),\n timeout * 1000\n );\n\n this.once(DEVICE_EVENT_REGISTRATION_SUCCESS, () => {\n clearTimeout(timeoutTimer);\n resolve();\n });\n });\n },\n\n // Deprecated methods.\n\n /**\n * Mark a url as failed and get the next priority host url.\n *\n * @param {string} url - The url to mark as failed.\n * @returns {Promise<string>} - The next priority url.\n */\n @deprecated('device#markUrlFailedAndGetNew(): Use services#markFailedUrl()')\n markUrlFailedAndGetNew(url) {\n return Promise.resolve(this.webex.internal.services.markFailedUrl(url));\n },\n\n // Ampersand method members\n\n /* eslint-disable require-jsdoc */\n /**\n * Initializer method for the device plugin.\n *\n * @override\n * @param {Array<any>} args - An array of items to be mapped as properties.\n * @returns {void}\n */\n @persist('@', decider)\n initialize(...args) {\n // Prototype the extended class in order to preserve the parent member.\n Reflect.apply(WebexPlugin.prototype.initialize, this, args);\n\n // Initialize feature events and listeners.\n FEATURE_COLLECTION_NAMES.forEach((collectionName) => {\n this.features.on(`change:${collectionName}`, (model, value, options) => {\n this.trigger('change', this, options);\n this.trigger('change:features', this, this.features, options);\n });\n });\n\n // Initialize network reachability checking event for url change.\n this.on('change:intranetInactivityCheckUrl', () => {\n this.checkNetworkReachability();\n });\n\n // Initialize network reachability checking event for duration change.\n this.on('change:intranetInactivityDuration', () => {\n this.checkNetworkReachability();\n });\n\n // Initialize network reachability checking event for duration change.\n this.on('change:inNetworkInactivityDuration', () => {\n this.checkNetworkReachability();\n });\n\n // Initialize listener for activity checking.\n this.listenTo(this.webex, 'user-activity', () => {\n this.lastUserActivityDate = Date.now();\n });\n\n // Initialize listener for meeting started event.\n this.listenTo(this.webex, 'meeting started', () => {\n this.isInMeeting = true;\n this.resetLogoutTimer();\n });\n\n // Initialize listener for meeting ended event.\n this.listenTo(this.webex, 'meeting ended', () => {\n this.isInMeeting = false;\n this.resetLogoutTimer();\n });\n },\n /* eslint-enable require-jsdoc */\n});\n\nexport default Device;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_common","require","_webexCore","_commonTimers","_lodash","_uuid","_interopRequireDefault","_metrics","_constants","_featuresModel","_ipNetworkDetector","_types","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_obj","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor2","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","decider","config","ephemeral","Device","WebexPlugin","extend","waitForValue","deprecated","persist","namespace","extraProperties","idAttribute","children","features","FeaturesModel","ipNetworkDetector","IpNetworkDetector","props","clientMessagingGiphy","customerCompanyName","customerLogoUrl","deviceType","helpUrl","intranetInactivityDuration","intranetInactivityCheckUrl","inNetworkInactivityDuration","ecmEnabledForAllUsers","ecmSupportedStorageProviders","modificationTime","navigationBarColor","partnerCompanyName","partnerLogoUrl","peopleInsightsEnabled","reportingSiteDesc","reportingSiteUrl","searchEncryptionKeyUrl","showSupportText","supportProviderCompanyName","supportProviderLogoUrl","url","userId","webFileShareControl","webSocketUrl","whiteboardFileShareControl","derived","registered","deps","fn","session","logoutTimer","lastUserActivityDate","isReachabilityChecked","energyForecastConfig","isInMeeting","isInNetwork","meetingStarted","webex","trigger","meetingEnded","setEnergyForecastConfig","undefined","refresh","_this","deviceRegistrationOptions","logger","info","canRegister","then","register","body","serialize","mediaCluster","etag","ttl","ephemeralDeviceTTL","headers","defaults","_deviceRegistrationOp","includeDetails","CatalogDetails","all","requestId","uuid","v4","set","request","method","uri","qs","includeUpstreamServices","concat","energyForecast","response","get","_promise","resolve","processRegistrationSuccess","catch","reason","statusCode","clear","reject","deleteDevices","_this2","service","resource","devices","_this2$_getBody","_getBody","webDevices","item","sortedDevices","orderBy","Date","totalItems","countToDelete","Math","ceil","urlsToDelete","slice","map","race","error","_this3","internal","newMetrics","callDiagnosticMetrics","setDeviceInfo","_registerInternal","_error$body","message","_this4","submitInternalEvent","name","_deviceRegistrationOp2","metrics","submitClientMetrics","METRICS","JS_SDK_WDM_REGISTRATION_SUCCESSFUL","JS_SDK_WDM_REGISTRATION_FAILED","fields","unregister","_this5","warn","services","waitForCatalog","canRegisterWaitDuration","Error","join","checkNetworkReachability","_this6","resetLogoutTimer","trackingid","_len","args","Array","_key","_apply","prototype","getWebSocketUrl","_this7","wait","waitForRegistration","convertUrlToPriorityHostUrl","wsUrl","_this8","serviceHostMap","_ref","user","reset","entitlement","delay","refreshTimer","safeSetTimeout","DEVICE_EVENT_REGISTRATION_SUCCESS","clearTimeout","off","unset","enableInactivityEnforcement","setLogoutTimer","duration","_this9","on","logout","_this0","timeout","timeoutTimer","once","markUrlFailedAndGetNew","markFailedUrl","initialize","_this1","_len2","_key2","FEATURE_COLLECTION_NAMES","collectionName","model","value","options","listenTo","_now","version","_applyDecoratedDescriptor2","oneFlight","_getOwnPropertyDescriptor","_default","exports"],"sources":["device.js"],"sourcesContent":["// Internal Dependencies\nimport {deprecated, oneFlight} from '@webex/common';\nimport {persist, waitForValue, WebexPlugin} from '@webex/webex-core';\nimport {safeSetTimeout} from '@webex/common-timers';\nimport {orderBy} from 'lodash';\nimport uuid from 'uuid';\n\nimport METRICS from './metrics';\nimport {FEATURE_COLLECTION_NAMES, DEVICE_EVENT_REGISTRATION_SUCCESS} from './constants';\nimport FeaturesModel from './features/features-model';\nimport IpNetworkDetector from './ipNetworkDetector';\nimport {CatalogDetails} from './types';\n\n/**\n * Determine if the plugin should be initialized based on cached storage.\n *\n * @returns {boolean} - If the device is ephemeral.\n */\nfunction decider() {\n return !this.config.ephemeral;\n}\n\nconst Device = WebexPlugin.extend({\n // Ampersand property members.\n\n namespace: 'Device',\n\n // Allow for extra properties to prevent the plugin from failing due to\n // **WDM** service DTO changes.\n extraProperties: 'allow',\n\n idAttribute: 'url',\n\n children: {\n /**\n * The class object that contains all of the feature collections.\n *\n * @type {FeaturesModel}\n */\n features: FeaturesModel,\n /**\n * Helper class for detecting what IP network version (ipv4, ipv6) we're on.\n *\n * @type {IpNetworkDetector}\n */\n ipNetworkDetector: IpNetworkDetector,\n },\n\n /**\n * A collection of device properties mostly assigned by the retrieved DTO from\n * the **WDM** service that are mapped against the ampersand properties.\n *\n * @type {Object}\n */\n props: {\n /**\n * This property determines whether or not giphy support is enabled.\n *\n * @type {'ALLOW' | 'BLOCK'}\n */\n clientMessagingGiphy: 'string',\n\n /**\n * This property should store the company name.\n *\n * @type {string}\n */\n customerCompanyName: 'string',\n\n /**\n * This property should store the logo url.\n *\n * @type {string}\n */\n customerLogoUrl: 'string',\n\n /**\n * This property doesn't have any real values, but is sent during device\n * refresh to prevent the **wdm** service from falling back to an iOS device\n * type.\n *\n * @type {string}\n */\n deviceType: 'string',\n\n /**\n * This property should store the help url.\n *\n * @type {string}\n */\n helpUrl: 'string',\n\n /**\n * This property should store the intranet inactivity timer duration.\n *\n * @type {number}\n */\n intranetInactivityDuration: 'number',\n\n /**\n * This property stores the url required to validate if the device is able\n * to actively reach the intranet network.\n *\n * @type {string}\n */\n intranetInactivityCheckUrl: 'string',\n\n /**\n * This property stores the inactivity timer duration, and could possibly\n * deprecate the `intranetInactivityDuration` property.\n *\n * @type {number}\n */\n inNetworkInactivityDuration: 'number',\n\n /**\n * This property stores the ECM (external content management) enabled value\n * for the whole organization.\n *\n * @type {boolean}\n */\n ecmEnabledForAllUsers: ['boolean', false, false],\n\n /**\n * This property stores an array of ECM (external content management)\n * providers that are currently available.\n *\n * @returns {Array<string>}\n */\n ecmSupportedStorageProviders: ['array', false, () => []],\n\n /**\n * This property stores the modification time value retrieved from the\n * **WDM** endpoint formatted as ISO 8601.\n *\n * @type {string}\n */\n modificationTime: 'string',\n\n /**\n * This property stores the navigation bar color.\n *\n * @type {string}\n */\n navigationBarColor: 'string',\n\n /**\n * This property stores the partner company's name when available.\n *\n * @type {string}\n */\n partnerCompanyName: 'string',\n\n /**\n * This property stores the partner company's logo when available.\n *\n * @type {string}\n */\n partnerLogoUrl: 'string',\n\n /**\n * This property stores the availability of people data from the **WDM**\n * service.\n *\n * @type {boolean}\n */\n peopleInsightsEnabled: 'boolean',\n\n /**\n * This property stores the reporting site's description when available.\n *\n * @type {string}\n */\n reportingSiteDesc: 'string',\n\n /**\n * This property stores the reporting site's access url when available.\n *\n * @type {string}\n */\n reportingSiteUrl: 'string',\n\n /**\n * This property stores the encryption key url when available.\n *\n * @type {string}\n */\n searchEncryptionKeyUrl: 'string',\n\n /**\n * This property stores the availability of support-provided text from the\n * **WDM** service.\n *\n * @type {boolean}\n */\n showSupportText: 'boolean',\n\n /**\n * This property stores the support provider's company name when available.\n *\n * @type {string}\n */\n supportProviderCompanyName: 'string',\n\n /**\n * This property stores the support provider's logo url when available.\n *\n * @type {string}\n */\n supportProviderLogoUrl: 'string',\n\n /**\n * This property stores the device's url retrieved from a registration\n * request. This property gets set via the initial registration process by a\n * `this.set()` method.\n *\n * @type {string}\n */\n url: 'string',\n\n /**\n * This property stores the device's userId uuid value, which can also be\n * derived from the device's registerd user's userId retrieved from\n * the **Hydra** service.\n *\n * @type {string}\n */\n userId: 'string',\n\n /**\n * This property stores whether or not file sharing is enabled\n *\n * @type {'BLOCK_BOTH' | 'BLOCK_UPLOAD'}\n */\n webFileShareControl: 'string',\n\n /**\n * This property stores the current web socket url used by the registered\n * device.\n *\n * @type {string}\n */\n webSocketUrl: 'string',\n\n /**\n * This property stores the value indicating whether or not white board file\n * sharing is enabled for the current device.\n *\n * @type {'ALLOW' | 'BLOCK'}\n */\n whiteboardFileShareControl: 'string',\n },\n\n /**\n * A list of derived properties that populate based when their parent data\n * available via the device's properties.\n *\n * @type {Object}\n */\n derived: {\n /**\n * This property determines if the current device is registered.\n *\n * @type {boolean}\n */\n registered: {\n deps: ['url'],\n\n /**\n * Checks if the device is registered by validating that the url exists.\n * Amperstand does not allow this to method to be written as an arrow\n * function.\n *\n * @returns {boolean}\n */\n fn() {\n return !!this.url;\n },\n },\n },\n\n /**\n * Stores timer data as well as other state details.\n *\n * @type {Object}\n */\n session: {\n /**\n * This property stores the logout timer object\n *\n * @type {any}\n */\n logoutTimer: 'any',\n\n /**\n * This property stores the date for the last activity the user made\n * with the current device.\n *\n * @type {number}\n */\n lastUserActivityDate: 'number',\n\n /**\n * This property stores whether or not the reachability check has been\n * performed to prevent the reachability check from performing its\n * operation more than once after a successful check.\n *\n * @returns {boolean}\n */\n isReachabilityChecked: ['boolean', false, false],\n\n /**\n * This property stores whether or not the next refresh or register request should request energy forecast data\n * in order to prevent over fetching energy forecasts\n *\n * @type {boolean}\n */\n energyForecastConfig: 'boolean',\n\n /**\n * This property stores whether or not the current device is in a meeting\n * to prevent an unneeded timeout of a meeting due to inactivity.\n *\n * @type {boolean}\n */\n isInMeeting: 'boolean',\n\n /**\n * This property identifies if the device is currently in network to prevent\n * the `resetLogoutTimer()` method from being called repeatedly once its\n * known client is connected to the organization's internal network.\n *\n * @type {boolean}\n */\n isInNetwork: 'boolean',\n },\n\n // Event method members.\n\n /**\n * Trigger meeting started event for webex instance. Used by web-client team.\n *\n * @returns {void}\n */\n meetingStarted() {\n this.webex.trigger('meeting started');\n },\n\n /**\n * Trigger meeting ended event for webex instance. Used by web-client team.\n *\n * @returns {void}\n */\n meetingEnded() {\n this.webex.trigger('meeting ended');\n },\n\n /**\n * Set the value of energy forecast config for the current registered device.\n * @param {boolean} [energyForecastConfig=false] - fetch an energy forecast on the next refresh/register\n * @returns {void}\n */\n setEnergyForecastConfig(energyForecastConfig = false) {\n this.energyForecastConfig = energyForecastConfig;\n },\n\n // Registration method members\n\n /**\n * Refresh the current registered device if able.\n *\n * @param {DeviceRegistrationOptions} options - The options for refresh.\n * @param {CatalogDetails} options.includeDetails - The details to include in the refresh/register request.\n * @returns {Promise<void, Error>}\n */\n @oneFlight\n @waitForValue('@')\n refresh(deviceRegistrationOptions = {}) {\n this.logger.info('device: refreshing');\n\n // Validate that the device can be registered.\n return this.canRegister().then(() => {\n // Validate if the device is not registered and register instead.\n if (!this.registered) {\n this.logger.info('device: device not registered, registering');\n\n return this.register(deviceRegistrationOptions);\n }\n\n // Merge body configurations, overriding defaults.\n const body = {\n ...this.serialize(),\n ...(this.config.body ? this.config.body : {}),\n };\n\n // Remove unneeded properties from the body object.\n delete body.features;\n delete body.mediaCluster;\n delete body.etag;\n\n // Append a ttl value if the device is marked as ephemeral.\n if (this.config.ephemeral) {\n body.ttl = this.config.ephemeralDeviceTTL;\n }\n\n // Merge header configurations, overriding defaults.\n const headers = {\n ...(this.config.defaults.headers ? this.config.defaults.headers : {}),\n ...(this.config.headers ? this.config.headers : {}),\n // If etag is sent, WDM will not send developer feature toggles unless they have changed\n ...(this.etag ? {'If-None-Match': this.etag} : {}),\n };\n\n const {includeDetails = CatalogDetails.all} = deviceRegistrationOptions;\n\n const requestId = uuid.v4();\n this.set('refresh-request-id', requestId);\n\n return this.request({\n method: 'PUT',\n uri: this.url,\n body,\n headers,\n qs: {\n includeUpstreamServices: `${includeDetails}${\n this.config.energyForecast && this.energyForecastConfig ? ',energyforecast' : ''\n }`,\n },\n })\n .then((response) => {\n // If we've signed out in the mean time, the request ID will have changed\n if (this.get('refresh-request-id') !== requestId) {\n this.logger.info('device: refresh request ID mismatch, ignoring response');\n\n return Promise.resolve();\n }\n\n return this.processRegistrationSuccess(response);\n })\n .catch((reason) => {\n // Handle a 404 error, which indicates that the device is no longer\n // valid and needs to be registered as a new device.\n if (reason.statusCode === 404) {\n this.logger.info('device: refresh failed, device is not valid');\n this.logger.info('device: attempting to register a new device');\n\n this.clear();\n\n return this.register(deviceRegistrationOptions);\n }\n\n return Promise.reject(reason);\n });\n });\n },\n /**\n * Fetches the web devices and deletes the third of them which are not recent devices in use\n * @returns {Promise<void, Error>}\n */\n deleteDevices() {\n // Fetch devices with a GET request\n return this.request({\n method: 'GET',\n service: 'wdm',\n resource: 'devices',\n })\n .then((response) => {\n const {devices} = response.body;\n\n const {deviceType} = this._getBody();\n\n // Filter devices of type deviceType\n const webDevices = devices.filter((item) => item.deviceType === deviceType);\n\n const sortedDevices = orderBy(webDevices, [(item) => new Date(item.modificationTime)]);\n\n // If there are more than two devices, delete the last third\n if (sortedDevices.length > 2) {\n const totalItems = sortedDevices.length;\n const countToDelete = Math.ceil(totalItems / 3);\n const urlsToDelete = sortedDevices.slice(0, countToDelete).map((item) => item.url);\n\n return Promise.race(\n urlsToDelete.map((url) => {\n return this.request({\n uri: url,\n method: 'DELETE',\n });\n })\n );\n }\n\n return Promise.resolve();\n })\n .catch((error) => {\n this.logger.error('Failed to retrieve devices:', error);\n\n return Promise.reject(error);\n });\n },\n\n /**\n * Registers and when fails deletes devices\n */\n @waitForValue('@')\n register(deviceRegistrationOptions = {}) {\n this.logger.info('device: registering');\n\n this.webex.internal.newMetrics.callDiagnosticMetrics.setDeviceInfo(this);\n\n // Validate that the device can be registered.\n return this.canRegister().then(() => {\n // Validate if the device is already registered and refresh instead.\n if (this.registered) {\n this.logger.info('device: device already registered, refreshing');\n\n return this.refresh(deviceRegistrationOptions);\n }\n\n return this._registerInternal(deviceRegistrationOptions).catch((error) => {\n if (error?.body?.message === 'User has excessive device registrations') {\n return this.deleteDevices().then(() => {\n return this._registerInternal(deviceRegistrationOptions);\n });\n }\n throw error;\n });\n });\n },\n\n _getBody() {\n return {\n ...(this.config.defaults.body ? this.config.defaults.body : {}),\n ...(this.config.body ? this.config.body : {}),\n };\n },\n\n /**\n * Register or refresh a device depending on the current device state. Device\n * registration utilizes the services plugin to send the request to the\n * **WDM** service.\n *\n * @param {Object} options - The options for registration.\n * @param {CatalogDetails} options.includeDetails - The details to include in the refresh/register request.\n * @returns {Promise<void, Error>}\n */\n @oneFlight\n @waitForValue('@')\n _registerInternal(deviceRegistrationOptions = {}) {\n this.logger.info('device: making registration request');\n\n // Merge body configurations, overriding defaults.\n const body = this._getBody();\n\n // Merge header configurations, overriding defaults.\n const headers = {\n ...(this.config.defaults.headers ? this.config.defaults.headers : {}),\n ...(this.config.headers ? this.config.headers : {}),\n };\n\n // Append a ttl value if the device is marked as ephemeral\n if (this.config.ephemeral) {\n body.ttl = this.config.ephemeralDeviceTTL;\n }\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.register.device.request',\n });\n\n const {includeDetails = CatalogDetails.all} = deviceRegistrationOptions;\n\n const requestId = uuid.v4();\n this.set('register-request-id', requestId);\n\n // This will be replaced by a `create()` method.\n return this.request({\n method: 'POST',\n service: 'wdm',\n resource: 'devices',\n body,\n headers,\n qs: {\n includeUpstreamServices: `${includeDetails}${\n this.config.energyForecast && this.energyForecastConfig ? ',energyforecast' : ''\n }`,\n },\n })\n .catch((error) => {\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.register.device.response',\n });\n\n throw error;\n })\n .then((response) => {\n // If we've signed out in the mean time, the request ID will have changed\n if (this.get('register-request-id') !== requestId) {\n this.logger.info('device: register request ID mismatch, ignoring response');\n\n return Promise.resolve();\n }\n\n // Do not add any processing of response above this as that will affect timestamp\n this.webex.internal.newMetrics.submitInternalEvent({\n name: 'internal.register.device.response',\n });\n\n this.webex.internal.metrics.submitClientMetrics(METRICS.JS_SDK_WDM_REGISTRATION_SUCCESSFUL);\n\n return this.processRegistrationSuccess(response);\n })\n .catch((error) => {\n this.webex.internal.metrics.submitClientMetrics(METRICS.JS_SDK_WDM_REGISTRATION_FAILED, {\n fields: {error},\n });\n throw error;\n });\n },\n /**\n * Unregister the current registered device if available. Unregistering a\n * device utilizes the services plugin to send the request to the **WDM**\n * service.\n *\n * @returns {Promise<void, Error>}\n */\n @oneFlight\n @waitForValue('@')\n unregister() {\n this.logger.info('device: unregistering');\n\n if (!this.registered) {\n this.logger.warn('device: not registered');\n\n return Promise.resolve();\n }\n\n return this.request({\n uri: this.url,\n method: 'DELETE',\n })\n .then(() => this.clear())\n .catch((reason) => {\n if (reason.statusCode === 404) {\n this.logger.info(\n 'device: 404 when deleting device, device is already deleted, clearing device'\n );\n\n this.clear();\n }\n throw reason;\n });\n },\n /* eslint-enable require-jsdoc */\n\n // Helper method members\n\n /**\n * Determine if registration methods can be performed. This method utilizes\n * the `services` plugin to confirm if the appropriate service urls are\n * available for device registration.\n *\n * @returns {Promise<void, Error>}\n */\n canRegister() {\n this.logger.info('device: validating if registration can occur');\n\n // Destructure the services plugin for ease of reference.\n const {services} = this.webex.internal;\n\n // Wait for the postauth catalog to populate.\n return services.waitForCatalog('postauth', this.config.canRegisterWaitDuration).then(() =>\n // Validate that the service exists after waiting for the catalog.\n services.get('wdm')\n ? Promise.resolve()\n : Promise.reject(\n new Error(\n [\n 'device: cannot register,',\n \"'wdm' service is not available from the postauth catalog\",\n ].join(' ')\n )\n )\n );\n },\n\n /**\n * Check if the device can currently reach the inactivity check url.\n *\n * @returns {Promise<void, Error>}\n */\n checkNetworkReachability() {\n this.logger.info('device: checking network reachability');\n\n // Validate if the device has been checked and reset the logout timer.\n if (this.isReachabilityChecked) {\n return Promise.resolve(this.resetLogoutTimer());\n }\n\n this.isReachabilityChecked = true;\n\n // Validate if the device has a intranet checking url.\n if (!this.intranetInactivityCheckUrl) {\n this.isInNetwork = false;\n\n return Promise.resolve(this.resetLogoutTimer());\n }\n\n // Clear unnecessary headers for reachability request.\n const headers = {\n 'cisco-no-http-redirect': null,\n 'spark-user-agent': null,\n trackingid: null,\n };\n\n // Send the network reachability request.\n return this.request({\n headers,\n method: 'GET',\n uri: this.intranetInactivityCheckUrl,\n })\n .then(() => {\n this.isInNetwork = true;\n\n return Promise.resolve(this.resetLogoutTimer());\n })\n .catch(() => {\n this.logger.info('device: did not reach ping endpoint');\n this.logger.info('device: triggering off-network timer');\n\n this.isInNetwork = false;\n\n return Promise.resolve(this.resetLogoutTimer());\n });\n },\n\n /**\n * Clears the registration ttl value if available.\n *\n * @param {Object} options - Values to be cleared.\n * @returns {void}\n */\n clear(...args) {\n this.logger.info('device: clearing registered device');\n\n // Prototype the extended class in order to preserve the parent member.\n Reflect.apply(WebexPlugin.prototype.clear, this, args);\n },\n\n /**\n * Get the current websocket url with the appropriate priority host.\n *\n * @param {boolean} [wait=false] - Willing to wait on a valid url.\n * @returns {Promise<string, Error>} - The priority-mapped web socket url.\n */\n getWebSocketUrl(wait = false) {\n this.logger.info('device: getting the current websocket url');\n\n // Destructure the services plugin for ease of reference.\n const {services} = this.webex.internal;\n\n // Validate if the method should wait for registration.\n if (wait) {\n return this.waitForRegistration()\n .then(() => services.convertUrlToPriorityHostUrl(this.webSocketUrl))\n .catch((error) => {\n this.logger.warn(error.message);\n\n return Promise.reject(new Error('device: failed to get the current websocket url'));\n });\n }\n\n // Validate if the device is registered.\n if (!this.registered) {\n return Promise.reject(\n new Error('device: cannot get websocket url, device is not registered')\n );\n }\n\n // Attempt to collect the priority-host-mapped web socket URL.\n const wsUrl = services.convertUrlToPriorityHostUrl(this.webSocketUrl);\n\n // Validate that the url was collected.\n if (wsUrl) {\n return Promise.resolve(wsUrl);\n }\n\n return Promise.reject(new Error('device: failed to get the current websocket url'));\n },\n\n /**\n * Process a successful device registration.\n *\n * @param {Object} response - response object from registration success.\n * @returns {void}\n */\n processRegistrationSuccess(response) {\n this.logger.info('device: received registration payload');\n\n // Clone the response body for service cleaning.\n const body = {...response.body};\n\n // Clean service data.\n delete body.services;\n delete body.serviceHostMap;\n\n const {etag} = response.headers || {};\n\n if (this.etag && etag && this.etag === etag) {\n // If current etag matches the previous one and we have sent\n // If-None-Match header the developer and entitlement feature\n // toggles will not be returned\n const {features} = body;\n\n delete body.features;\n // When using the etag feature cache, user and entitlement features are still returned\n this.features.user.reset(features.user);\n this.features.entitlement.reset(features.entitlement);\n }\n\n // Assign the recieved DTO from **WDM** to this device.\n this.set(body);\n\n // Assign the new etag to this device.\n this.set({etag});\n\n // Validate if device is ephemeral and setup refresh timer.\n if (this.config.ephemeral) {\n this.logger.info('device: enqueuing device refresh');\n\n const delay = (this.config.ephemeralDeviceTTL / 2 + 60) * 1000;\n\n this.refreshTimer = safeSetTimeout(() => this.refresh(), delay);\n }\n\n // Emit the registration:success event.\n this.trigger(DEVICE_EVENT_REGISTRATION_SUCCESS, this);\n },\n\n /**\n * Reset the current local logout timer for the registered device if\n * registered.\n *\n * @returns {void}\n */\n resetLogoutTimer() {\n this.logger.info('device: resetting logout timer');\n\n // Clear current logout timer.\n clearTimeout(this.logoutTimer);\n\n // Remove last activity date event listener.\n this.off('change:lastUserActivityDate');\n\n // Remove the logout timer.\n this.unset('logoutTimer');\n\n // Validate if the device is currently in a meeting and is configured to\n // required inactivity enforcement.\n if (\n !this.isInMeeting &&\n this.config.enableInactivityEnforcement &&\n this.isReachabilityChecked\n ) {\n if (this.isInNetwork) {\n this.setLogoutTimer(this.inNetworkInactivityDuration);\n } else {\n this.setLogoutTimer(this.intranetInactivityDuration);\n }\n }\n },\n\n /**\n * Set the value of the logout timer for the current registered device.\n *\n * @param {number} duration - Value in seconds of the new logout timer.\n * @returns {void}\n */\n setLogoutTimer(duration) {\n this.logger.info('device: setting logout timer');\n\n if (!duration || duration <= 0) {\n return;\n }\n\n // Setup user activity date event listener.\n this.on('change:lastUserActivityDate', () => {\n this.resetLogoutTimer();\n });\n\n // Initialize a new timer.\n this.logoutTimer = safeSetTimeout(() => {\n this.webex.logout();\n }, duration * 1000);\n },\n\n /**\n * Wait for the device to be registered.\n *\n * @param {number} [timeout=10] - The maximum duration to wait, in seconds.\n * @returns {Promise<void, Error>}\n */\n waitForRegistration(timeout = 10) {\n this.logger.info('device: waiting for registration');\n\n return new Promise((resolve, reject) => {\n if (this.registered) {\n resolve();\n }\n\n const timeoutTimer = safeSetTimeout(\n () => reject(new Error('device: timeout occured while waiting for registration')),\n timeout * 1000\n );\n\n this.once(DEVICE_EVENT_REGISTRATION_SUCCESS, () => {\n clearTimeout(timeoutTimer);\n resolve();\n });\n });\n },\n\n // Deprecated methods.\n\n /**\n * Mark a url as failed and get the next priority host url.\n *\n * @param {string} url - The url to mark as failed.\n * @returns {Promise<string>} - The next priority url.\n */\n @deprecated('device#markUrlFailedAndGetNew(): Use services#markFailedUrl()')\n markUrlFailedAndGetNew(url) {\n return Promise.resolve(this.webex.internal.services.markFailedUrl(url));\n },\n\n // Ampersand method members\n\n /* eslint-disable require-jsdoc */\n /**\n * Initializer method for the device plugin.\n *\n * @override\n * @param {Array<any>} args - An array of items to be mapped as properties.\n * @returns {void}\n */\n @persist('@', decider)\n initialize(...args) {\n // Prototype the extended class in order to preserve the parent member.\n Reflect.apply(WebexPlugin.prototype.initialize, this, args);\n\n // Initialize feature events and listeners.\n FEATURE_COLLECTION_NAMES.forEach((collectionName) => {\n this.features.on(`change:${collectionName}`, (model, value, options) => {\n this.trigger('change', this, options);\n this.trigger('change:features', this, this.features, options);\n });\n });\n\n // Initialize network reachability checking event for url change.\n this.on('change:intranetInactivityCheckUrl', () => {\n this.checkNetworkReachability();\n });\n\n // Initialize network reachability checking event for duration change.\n this.on('change:intranetInactivityDuration', () => {\n this.checkNetworkReachability();\n });\n\n // Initialize network reachability checking event for duration change.\n this.on('change:inNetworkInactivityDuration', () => {\n this.checkNetworkReachability();\n });\n\n // Initialize listener for activity checking.\n this.listenTo(this.webex, 'user-activity', () => {\n this.lastUserActivityDate = Date.now();\n });\n\n // Initialize listener for meeting started event.\n this.listenTo(this.webex, 'meeting started', () => {\n this.isInMeeting = true;\n this.resetLogoutTimer();\n });\n\n // Initialize listener for meeting ended event.\n this.listenTo(this.webex, 'meeting ended', () => {\n this.isInMeeting = false;\n this.resetLogoutTimer();\n });\n },\n /* eslint-enable require-jsdoc */\n});\n\nexport default Device;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ampersandCollection","_interopRequireDefault","require","_featureModel","FeatureCollection","AmpCollection","extend","mainIndex","model","FeatureModel","_default","exports","default"],"sources":["feature-collection.js"],"sourcesContent":["// External dependencies.\nimport AmpCollection from 'ampersand-collection';\n\n// Local Dependencies\nimport FeatureModel from './feature-model';\n\n/**\n * Feature collection model.\n *\n * @description\n * This model contains a collection of features under a specific collection\n * group.\n */\nconst FeatureCollection = AmpCollection.extend({\n /**\n * The unique identifier for the models in this collection.\n *\n * @type {string}\n */\n mainIndex: 'key',\n\n /**\n * The type of model this collection can contain.\n *\n * @type {Class}\n */\n model: FeatureModel,\n});\n\nexport default FeatureCollection;\n"],"mappings":";;;;;;;;AACA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AAJA;;AAGA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAME,iBAAiB,GAAGC,4BAAa,CAACC,MAAM,CAAC;EAC7C;AACF;AACA;AACA;AACA;EACEC,SAAS,EAAE,KAAK;EAEhB;AACF;AACA;AACA;AACA;EACEC,KAAK,EAAEC;AACT,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYR,iBAAiB"}
|
|
1
|
+
{"version":3,"names":["_ampersandCollection","_interopRequireDefault","require","_featureModel","FeatureCollection","AmpCollection","extend","mainIndex","model","FeatureModel","_default","exports","default"],"sources":["feature-collection.js"],"sourcesContent":["// External dependencies.\nimport AmpCollection from 'ampersand-collection';\n\n// Local Dependencies\nimport FeatureModel from './feature-model';\n\n/**\n * Feature collection model.\n *\n * @description\n * This model contains a collection of features under a specific collection\n * group.\n */\nconst FeatureCollection = AmpCollection.extend({\n /**\n * The unique identifier for the models in this collection.\n *\n * @type {string}\n */\n mainIndex: 'key',\n\n /**\n * The type of model this collection can contain.\n *\n * @type {Class}\n */\n model: FeatureModel,\n});\n\nexport default FeatureCollection;\n"],"mappings":";;;;;;;;AACA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AAJA;;AAGA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAME,iBAAiB,GAAGC,4BAAa,CAACC,MAAM,CAAC;EAC7C;AACF;AACA;AACA;AACA;EACEC,SAAS,EAAE,KAAK;EAEhB;AACF;AACA;AACA;AACA;EACEC,KAAK,EAAEC;AACT,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYR,iBAAiB","ignoreList":[]}
|
|
@@ -27,6 +27,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
27
27
|
* @property {boolean|number|string} ParsedFeatureModel.value - The parsed val.
|
|
28
28
|
* @property {string} ParsedFeatureModel.type - The type of the parsed val.
|
|
29
29
|
*/
|
|
30
|
+
|
|
30
31
|
/**
|
|
31
32
|
* Feature model.
|
|
32
33
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ampersandState","_interopRequireDefault","require","_lodash","_constants","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","FeatureModel","AmpState","extend","idAttribute","props","key","lastModified","mutable","type","val","value","constructor","attrs","options","undefined","defaults","parse","_apply","prototype","model","_typeof2","parsedModel","_isNan","Number","FEATURE_TYPES","NUMBER","toLowerCase","BOOLEAN","STRING","serialize","_len","args","Array","_key","Date","toISOString","set","optns","isObject","_default","exports"],"sources":["feature-model.js"],"sourcesContent":["// External dependencies.\nimport AmpState from 'ampersand-state';\nimport {defaults, isObject} from 'lodash';\n\nimport {FEATURE_TYPES} from '../constants';\n\n/**\n * The model returned from the {@link FeatureModel#parse} method.\n *\n * @typedef {Object} ParsedFeatureModel\n * @property {boolean|number|string} ParsedFeatureModel.value - The parsed val.\n * @property {string} ParsedFeatureModel.type - The type of the parsed val.\n */\n\n/**\n * Feature model.\n *\n * @description\n * This model contains details on a single feature and is received from the\n * **WDM** service upon registration.\n */\nconst FeatureModel = AmpState.extend({\n idAttribute: 'key', // needed by Ampersand to determine unique item\n\n // Ampersand property members.\n\n props: {\n /**\n * Contains the unique identifier for this feature to be addressed by.\n *\n * @type {string}\n */\n key: 'string',\n\n /**\n * This property contains the date in which this feature was last modified.\n *\n * @type {date}\n */\n lastModified: 'date',\n\n /**\n * This property defines whether or not the feature is mutable.\n *\n * @type {boolean}\n */\n mutable: 'boolean',\n\n /**\n * This property contains the data type the string value should be\n * interpreted as.\n *\n * @type {FEATURE_TYPES}\n */\n type: 'string',\n\n /**\n * This property contains the string value of this feature.\n *\n * @type {string}\n */\n val: 'string',\n\n /**\n * This property contains the interpreted value of this feature.\n *\n * @type {any}\n */\n value: 'any',\n },\n\n /**\n * Class object constructor. This method safely initializes the class object\n * prior to it fully loading to allow data to be accessed and modified\n * immediately after construction instead of initialization.\n *\n * @override\n * @param {Object} attrs - An object to map against the feature's properties.\n * @param {Object} [options={}] - Ampersand options for `parse` and `parent`.\n */\n constructor(attrs, options = {}) {\n defaults(options, {parse: true});\n\n return Reflect.apply(AmpState.prototype.constructor, this, [attrs, options]);\n },\n\n // Ampsersand method members.\n\n /**\n * Parse {@link FeatureModel} properties recieved as strings from **WDM**\n * and cast them as their appropriate types.\n *\n * @private\n * @memberof FeatureModel\n * @param {Object} model - The model to parse.\n * @property {string} model.val - The value to be parsed.\n * @returns {ParsedFeatureModel} - The parsed model.\n */\n parse(model) {\n // Validate that a model was provided and that it is an object.\n if (!model || typeof model !== 'object') {\n // Return an empty object to satisfy the requirements of `Ampersand`.\n return {};\n }\n\n const parsedModel = {...model};\n const {val} = parsedModel;\n\n // Validate that the value is a number.\n if (!Number.isNaN(Number(val))) {\n parsedModel.type = FEATURE_TYPES.NUMBER;\n parsedModel.value = Number(val);\n }\n // Validate if the value should be a true boolean.\n else if (typeof val === 'string' && val.toLowerCase() === 'true') {\n parsedModel.type = FEATURE_TYPES.BOOLEAN;\n parsedModel.value = true;\n }\n // Validate if the value should be a false boolean.\n else if (typeof val === 'string' && val.toLowerCase() === 'false') {\n parsedModel.type = FEATURE_TYPES.BOOLEAN;\n parsedModel.value = false;\n }\n // In all other cases, the value is string, even if it is undefined.\n else {\n parsedModel.type = FEATURE_TYPES.STRING;\n parsedModel.value = val;\n }\n\n return parsedModel;\n },\n\n /**\n * Serialize the feature using the parent ampersand method with its date as an\n * ISO string. This converts the feature into a request-transportable object.\n *\n * @override\n * @param {Record<string,boolean>} [args] - List of properties to serialize.\n * @returns {Object} - The request-ready transport object.\n */\n serialize(...args) {\n // Call the overloaded class member.\n const attrs = Reflect.apply(AmpState.prototype.serialize, this, args);\n\n // Validate that the overloaded class member returned an object with the\n // `lastModified` key-value pair and instance it as an ISO string.\n if (attrs.lastModified) {\n attrs.lastModified = new Date(attrs.lastModified).toISOString();\n }\n\n return attrs;\n },\n\n /**\n * Set a property of this object to a specific value. This method utilizes\n * code that exists within the `ampersand-state` dependency to handle\n * scenarios in which `key = {\"key\": \"value\"}` or\n * `key = \"key\", value = \"value\"`. Since the snippet is pulled directly from\n * `ampersand-state`, there is no need to test both scenarios.\n *\n * @override\n * @param {object | string} key - The key value, or object to be set.\n * @param {any} value - The key value or object to set the keyed pair to.\n * @param {any} options - The object to set the keyed pair to.\n * @returns {any} - The changed property.\n */\n set(key, value, options) {\n // Declare formatted output variables for properly setting the targetted\n // property for this method.\n let attrs;\n let optns;\n\n // Validate if the key is an instance of any object or not.\n if (isObject(key) || key === null) {\n attrs = key;\n optns = value;\n } else {\n attrs = {};\n attrs[key] = value;\n optns = options;\n }\n\n attrs = this.parse(attrs, optns);\n\n return Reflect.apply(AmpState.prototype.set, this, [attrs, optns]);\n },\n});\n\nexport default FeatureModel;\n"],"mappings":";;;;;;;;;;;;;;;;;AACA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AAA2C,SAAAG,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAH,CAAA,OAAAI,6BAAA,QAAAC,CAAA,GAAAD,6BAAA,CAAAJ,CAAA,GAAAC,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAL,CAAA,WAAAM,gCAAA,CAAAP,CAAA,EAAAC,CAAA,EAAAO,UAAA,OAAAN,CAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,CAAA,EAAAG,CAAA,YAAAH,CAAA;AAAA,SAAAS,cAAAX,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAW,SAAA,CAAAC,MAAA,EAAAZ,CAAA,UAAAC,CAAA,WAAAU,SAAA,CAAAX,CAAA,IAAAW,SAAA,CAAAX,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAe,MAAA,CAAAZ,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAiB,iCAAA,GAAAC,wBAAA,CAAAnB,CAAA,EAAAkB,iCAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAe,MAAA,CAAAZ,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAmB,sBAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAM,gCAAA,CAAAL,CAAA,EAAAD,CAAA,iBAAAD,CAAA,IAJ3C;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMqB,YAAY,GAAGC,uBAAQ,CAACC,MAAM,CAAC;EACnCC,WAAW,EAAE,KAAK;EAAE;;EAEpB;;EAEAC,KAAK,EAAE;IACL;AACJ;AACA;AACA;AACA;IACIC,GAAG,EAAE,QAAQ;IAEb;AACJ;AACA;AACA;AACA;IACIC,YAAY,EAAE,MAAM;IAEpB;AACJ;AACA;AACA;AACA;IACIC,OAAO,EAAE,SAAS;IAElB;AACJ;AACA;AACA;AACA;AACA;IACIC,IAAI,EAAE,QAAQ;IAEd;AACJ;AACA;AACA;AACA;IACIC,GAAG,EAAE,QAAQ;IAEb;AACJ;AACA;AACA;AACA;IACIC,KAAK,EAAE;EACT,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,WAAW,WAAAA,YAACC,KAAK,EAAgB;IAAA,IAAdC,OAAO,GAAAtB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAuB,SAAA,GAAAvB,SAAA,MAAG,CAAC,CAAC;IAC7B,IAAAwB,gBAAQ,EAACF,OAAO,EAAE;MAACG,KAAK,EAAE;IAAI,CAAC,CAAC;IAEhC,OAAO,IAAAC,MAAA,CAAArB,OAAA,EAAcK,uBAAQ,CAACiB,SAAS,CAACP,WAAW,EAAE,IAAI,EAAE,CAACC,KAAK,EAAEC,OAAO,CAAC,CAAC;EAC9E,CAAC;EAED;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEG,KAAK,WAAAA,MAACG,KAAK,EAAE;IACX;IACA,IAAI,CAACA,KAAK,IAAI,IAAAC,QAAA,CAAAxB,OAAA,EAAOuB,KAAK,MAAK,QAAQ,EAAE;MACvC;MACA,OAAO,CAAC,CAAC;IACX;IAEA,IAAME,WAAW,GAAA/B,aAAA,KAAO6B,KAAK,CAAC;IAC9B,IAAOV,GAAG,GAAIY,WAAW,CAAlBZ,GAAG;;IAEV;IACA,IAAI,CAAC,IAAAa,MAAA,CAAA1B,OAAA,EAAa2B,MAAM,CAACd,GAAG,CAAC,CAAC,EAAE;MAC9BY,WAAW,CAACb,IAAI,GAAGgB,wBAAa,CAACC,MAAM;MACvCJ,WAAW,CAACX,KAAK,GAAGa,MAAM,CAACd,GAAG,CAAC;IACjC;IACA;IAAA,KACK,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACiB,WAAW,CAAC,CAAC,KAAK,MAAM,EAAE;MAChEL,WAAW,CAACb,IAAI,GAAGgB,wBAAa,CAACG,OAAO;MACxCN,WAAW,CAACX,KAAK,GAAG,IAAI;IAC1B;IACA;IAAA,KACK,IAAI,OAAOD,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACiB,WAAW,CAAC,CAAC,KAAK,OAAO,EAAE;MACjEL,WAAW,CAACb,IAAI,GAAGgB,wBAAa,CAACG,OAAO;MACxCN,WAAW,CAACX,KAAK,GAAG,KAAK;IAC3B;IACA;IAAA,KACK;MACHW,WAAW,CAACb,IAAI,GAAGgB,wBAAa,CAACI,MAAM;MACvCP,WAAW,CAACX,KAAK,GAAGD,GAAG;IACzB;IAEA,OAAOY,WAAW;EACpB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEQ,SAAS,WAAAA,UAAA,EAAU;IAAA,SAAAC,IAAA,GAAAvC,SAAA,CAAAC,MAAA,EAANuC,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAA1C,SAAA,CAAA0C,IAAA;IAAA;IACf;IACA,IAAMrB,KAAK,GAAG,IAAAK,MAAA,CAAArB,OAAA,EAAcK,uBAAQ,CAACiB,SAAS,CAACW,SAAS,EAAE,IAAI,EAAEE,IAAI,CAAC;;IAErE;IACA;IACA,IAAInB,KAAK,CAACN,YAAY,EAAE;MACtBM,KAAK,CAACN,YAAY,GAAG,IAAI4B,IAAI,CAACtB,KAAK,CAACN,YAAY,CAAC,CAAC6B,WAAW,CAAC,CAAC;IACjE;IAEA,OAAOvB,KAAK;EACd,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEwB,GAAG,WAAAA,IAAC/B,GAAG,EAAEK,KAAK,EAAEG,OAAO,EAAE;IACvB;IACA;IACA,IAAID,KAAK;IACT,IAAIyB,KAAK;;IAET;IACA,IAAI,IAAAC,gBAAQ,EAACjC,GAAG,CAAC,IAAIA,GAAG,KAAK,IAAI,EAAE;MACjCO,KAAK,GAAGP,GAAG;MACXgC,KAAK,GAAG3B,KAAK;IACf,CAAC,MAAM;MACLE,KAAK,GAAG,CAAC,CAAC;MACVA,KAAK,CAACP,GAAG,CAAC,GAAGK,KAAK;MAClB2B,KAAK,GAAGxB,OAAO;IACjB;IAEAD,KAAK,GAAG,IAAI,CAACI,KAAK,CAACJ,KAAK,EAAEyB,KAAK,CAAC;IAEhC,OAAO,IAAApB,MAAA,CAAArB,OAAA,EAAcK,uBAAQ,CAACiB,SAAS,CAACkB,GAAG,EAAE,IAAI,EAAE,CAACxB,KAAK,EAAEyB,KAAK,CAAC,CAAC;EACpE;AACF,CAAC,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAA5C,OAAA,GAEYI,YAAY"}
|
|
1
|
+
{"version":3,"names":["_ampersandState","_interopRequireDefault","require","_lodash","_constants","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","FeatureModel","AmpState","extend","idAttribute","props","key","lastModified","mutable","type","val","value","constructor","attrs","options","undefined","defaults","parse","_apply","prototype","model","_typeof2","parsedModel","_isNan","Number","FEATURE_TYPES","NUMBER","toLowerCase","BOOLEAN","STRING","serialize","_len","args","Array","_key","Date","toISOString","set","optns","isObject","_default","exports"],"sources":["feature-model.js"],"sourcesContent":["// External dependencies.\nimport AmpState from 'ampersand-state';\nimport {defaults, isObject} from 'lodash';\n\nimport {FEATURE_TYPES} from '../constants';\n\n/**\n * The model returned from the {@link FeatureModel#parse} method.\n *\n * @typedef {Object} ParsedFeatureModel\n * @property {boolean|number|string} ParsedFeatureModel.value - The parsed val.\n * @property {string} ParsedFeatureModel.type - The type of the parsed val.\n */\n\n/**\n * Feature model.\n *\n * @description\n * This model contains details on a single feature and is received from the\n * **WDM** service upon registration.\n */\nconst FeatureModel = AmpState.extend({\n idAttribute: 'key', // needed by Ampersand to determine unique item\n\n // Ampersand property members.\n\n props: {\n /**\n * Contains the unique identifier for this feature to be addressed by.\n *\n * @type {string}\n */\n key: 'string',\n\n /**\n * This property contains the date in which this feature was last modified.\n *\n * @type {date}\n */\n lastModified: 'date',\n\n /**\n * This property defines whether or not the feature is mutable.\n *\n * @type {boolean}\n */\n mutable: 'boolean',\n\n /**\n * This property contains the data type the string value should be\n * interpreted as.\n *\n * @type {FEATURE_TYPES}\n */\n type: 'string',\n\n /**\n * This property contains the string value of this feature.\n *\n * @type {string}\n */\n val: 'string',\n\n /**\n * This property contains the interpreted value of this feature.\n *\n * @type {any}\n */\n value: 'any',\n },\n\n /**\n * Class object constructor. This method safely initializes the class object\n * prior to it fully loading to allow data to be accessed and modified\n * immediately after construction instead of initialization.\n *\n * @override\n * @param {Object} attrs - An object to map against the feature's properties.\n * @param {Object} [options={}] - Ampersand options for `parse` and `parent`.\n */\n constructor(attrs, options = {}) {\n defaults(options, {parse: true});\n\n return Reflect.apply(AmpState.prototype.constructor, this, [attrs, options]);\n },\n\n // Ampsersand method members.\n\n /**\n * Parse {@link FeatureModel} properties recieved as strings from **WDM**\n * and cast them as their appropriate types.\n *\n * @private\n * @memberof FeatureModel\n * @param {Object} model - The model to parse.\n * @property {string} model.val - The value to be parsed.\n * @returns {ParsedFeatureModel} - The parsed model.\n */\n parse(model) {\n // Validate that a model was provided and that it is an object.\n if (!model || typeof model !== 'object') {\n // Return an empty object to satisfy the requirements of `Ampersand`.\n return {};\n }\n\n const parsedModel = {...model};\n const {val} = parsedModel;\n\n // Validate that the value is a number.\n if (!Number.isNaN(Number(val))) {\n parsedModel.type = FEATURE_TYPES.NUMBER;\n parsedModel.value = Number(val);\n }\n // Validate if the value should be a true boolean.\n else if (typeof val === 'string' && val.toLowerCase() === 'true') {\n parsedModel.type = FEATURE_TYPES.BOOLEAN;\n parsedModel.value = true;\n }\n // Validate if the value should be a false boolean.\n else if (typeof val === 'string' && val.toLowerCase() === 'false') {\n parsedModel.type = FEATURE_TYPES.BOOLEAN;\n parsedModel.value = false;\n }\n // In all other cases, the value is string, even if it is undefined.\n else {\n parsedModel.type = FEATURE_TYPES.STRING;\n parsedModel.value = val;\n }\n\n return parsedModel;\n },\n\n /**\n * Serialize the feature using the parent ampersand method with its date as an\n * ISO string. This converts the feature into a request-transportable object.\n *\n * @override\n * @param {Record<string,boolean>} [args] - List of properties to serialize.\n * @returns {Object} - The request-ready transport object.\n */\n serialize(...args) {\n // Call the overloaded class member.\n const attrs = Reflect.apply(AmpState.prototype.serialize, this, args);\n\n // Validate that the overloaded class member returned an object with the\n // `lastModified` key-value pair and instance it as an ISO string.\n if (attrs.lastModified) {\n attrs.lastModified = new Date(attrs.lastModified).toISOString();\n }\n\n return attrs;\n },\n\n /**\n * Set a property of this object to a specific value. This method utilizes\n * code that exists within the `ampersand-state` dependency to handle\n * scenarios in which `key = {\"key\": \"value\"}` or\n * `key = \"key\", value = \"value\"`. Since the snippet is pulled directly from\n * `ampersand-state`, there is no need to test both scenarios.\n *\n * @override\n * @param {object | string} key - The key value, or object to be set.\n * @param {any} value - The key value or object to set the keyed pair to.\n * @param {any} options - The object to set the keyed pair to.\n * @returns {any} - The changed property.\n */\n set(key, value, options) {\n // Declare formatted output variables for properly setting the targetted\n // property for this method.\n let attrs;\n let optns;\n\n // Validate if the key is an instance of any object or not.\n if (isObject(key) || key === null) {\n attrs = key;\n optns = value;\n } else {\n attrs = {};\n attrs[key] = value;\n optns = options;\n }\n\n attrs = this.parse(attrs, optns);\n\n return Reflect.apply(AmpState.prototype.set, this, [attrs, optns]);\n },\n});\n\nexport default FeatureModel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ampersandState","_interopRequireDefault","require","_constants","_featureCollection","FeaturesModel","AmpState","extend","collections","developer","FeatureCollection","entitlement","user","clear","options","_this","_keys","default","attributes","forEach","key","unset","_children","_collections","reset","initialize","_this2","eventNames","eventName","FEATURE_COLLECTION_NAMES","collectionName","on","model","trigger","concat","_default","exports"],"sources":["features-model.js"],"sourcesContent":["// External dependencies.\nimport AmpState from 'ampersand-state';\n\n// Local Dependencies\nimport {FEATURE_COLLECTION_NAMES} from '../constants';\n\nimport FeatureCollection from './feature-collection';\n\n/**\n * Feature collection parent container.\n *\n * @description\n * This class contains all of the feature collection class objects to help\n * organize the data retrieved from the **wdm** service on device registration.\n */\nconst FeaturesModel = AmpState.extend({\n // Ampersand property members.\n\n collections: {\n /**\n * This collection contains the developer feature collection.\n *\n * @type {FeatureCollection}\n */\n developer: FeatureCollection,\n\n /**\n * This collection contains the entitlement feature collection.\n *\n * @type {FeatureCollection}\n */\n entitlement: FeatureCollection,\n\n /**\n * This collection contains the user feature collection.\n *\n * @type {FeatureCollection}\n */\n user: FeatureCollection,\n },\n\n // Helper method members.\n\n /**\n * Recursively clear attributes, children, and collections.\n *\n * @param {Object} options - Attribute options to unset.\n * @returns {this}\n */\n clear(options) {\n // Clear the ampersand attributes safely if there are any. This class should\n // never have any attributes.\n Object.keys(this.attributes).forEach((key) => {\n this.unset(key, options);\n });\n\n // Clear the ampersand children safely if there are any. This class should\n // never have any children.\n /* eslint-disable-next-line no-underscore-dangle */\n Object.keys(this._children).forEach((key) => {\n this[key].clear();\n });\n\n // Clear the ampersand collections safely.\n /* eslint-disable-next-line no-underscore-dangle */\n Object.keys(this._collections).forEach((key) => {\n this[key].reset();\n });\n\n return this;\n },\n\n // Ampersand method members.\n\n /**\n * Initializer method for FeatureModel class object.\n *\n * @override\n * @returns {void}\n */\n initialize() {\n // Declare the collection event names.\n const eventNames = ['change:value', 'add', 'remove'];\n\n // Initialize collection event listeners.\n eventNames.forEach((eventName) => {\n FEATURE_COLLECTION_NAMES.forEach((collectionName) => {\n this[collectionName].on(eventName, (model, options) => {\n this.trigger(`change:${collectionName}`, this, this[collectionName], options);\n });\n });\n });\n },\n});\n\nexport default FeaturesModel;\n"],"mappings":";;;;;;;;;AACA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,kBAAA,GAAAH,sBAAA,CAAAC,OAAA;AANA;;AAGA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMG,aAAa,GAAGC,uBAAQ,CAACC,MAAM,CAAC;EACpC;;EAEAC,WAAW,EAAE;IACX;AACJ;AACA;AACA;AACA;IACIC,SAAS,EAAEC,0BAAiB;IAE5B;AACJ;AACA;AACA;AACA;IACIC,WAAW,EAAED,0BAAiB;IAE9B;AACJ;AACA;AACA;AACA;IACIE,IAAI,EAAEF;EACR,CAAC;EAED;EAEA;AACF;AACA;AACA;AACA;AACA;EACEG,KAAK,
|
|
1
|
+
{"version":3,"names":["_ampersandState","_interopRequireDefault","require","_constants","_featureCollection","FeaturesModel","AmpState","extend","collections","developer","FeatureCollection","entitlement","user","clear","options","_this","_keys","default","attributes","forEach","key","unset","_children","_collections","reset","initialize","_this2","eventNames","eventName","FEATURE_COLLECTION_NAMES","collectionName","on","model","trigger","concat","_default","exports"],"sources":["features-model.js"],"sourcesContent":["// External dependencies.\nimport AmpState from 'ampersand-state';\n\n// Local Dependencies\nimport {FEATURE_COLLECTION_NAMES} from '../constants';\n\nimport FeatureCollection from './feature-collection';\n\n/**\n * Feature collection parent container.\n *\n * @description\n * This class contains all of the feature collection class objects to help\n * organize the data retrieved from the **wdm** service on device registration.\n */\nconst FeaturesModel = AmpState.extend({\n // Ampersand property members.\n\n collections: {\n /**\n * This collection contains the developer feature collection.\n *\n * @type {FeatureCollection}\n */\n developer: FeatureCollection,\n\n /**\n * This collection contains the entitlement feature collection.\n *\n * @type {FeatureCollection}\n */\n entitlement: FeatureCollection,\n\n /**\n * This collection contains the user feature collection.\n *\n * @type {FeatureCollection}\n */\n user: FeatureCollection,\n },\n\n // Helper method members.\n\n /**\n * Recursively clear attributes, children, and collections.\n *\n * @param {Object} options - Attribute options to unset.\n * @returns {this}\n */\n clear(options) {\n // Clear the ampersand attributes safely if there are any. This class should\n // never have any attributes.\n Object.keys(this.attributes).forEach((key) => {\n this.unset(key, options);\n });\n\n // Clear the ampersand children safely if there are any. This class should\n // never have any children.\n /* eslint-disable-next-line no-underscore-dangle */\n Object.keys(this._children).forEach((key) => {\n this[key].clear();\n });\n\n // Clear the ampersand collections safely.\n /* eslint-disable-next-line no-underscore-dangle */\n Object.keys(this._collections).forEach((key) => {\n this[key].reset();\n });\n\n return this;\n },\n\n // Ampersand method members.\n\n /**\n * Initializer method for FeatureModel class object.\n *\n * @override\n * @returns {void}\n */\n initialize() {\n // Declare the collection event names.\n const eventNames = ['change:value', 'add', 'remove'];\n\n // Initialize collection event listeners.\n eventNames.forEach((eventName) => {\n FEATURE_COLLECTION_NAMES.forEach((collectionName) => {\n this[collectionName].on(eventName, (model, options) => {\n this.trigger(`change:${collectionName}`, this, this[collectionName], options);\n });\n });\n });\n },\n});\n\nexport default FeaturesModel;\n"],"mappings":";;;;;;;;;AACA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,kBAAA,GAAAH,sBAAA,CAAAC,OAAA;AANA;;AAGA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMG,aAAa,GAAGC,uBAAQ,CAACC,MAAM,CAAC;EACpC;;EAEAC,WAAW,EAAE;IACX;AACJ;AACA;AACA;AACA;IACIC,SAAS,EAAEC,0BAAiB;IAE5B;AACJ;AACA;AACA;AACA;IACIC,WAAW,EAAED,0BAAiB;IAE9B;AACJ;AACA;AACA;AACA;IACIE,IAAI,EAAEF;EACR,CAAC;EAED;EAEA;AACF;AACA;AACA;AACA;AACA;EACEG,KAAK,WAALA,KAAKA,CAACC,OAAO,EAAE;IAAA,IAAAC,KAAA;IACb;IACA;IACA,IAAAC,KAAA,CAAAC,OAAA,EAAY,IAAI,CAACC,UAAU,CAAC,CAACC,OAAO,CAAC,UAACC,GAAG,EAAK;MAC5CL,KAAI,CAACM,KAAK,CAACD,GAAG,EAAEN,OAAO,CAAC;IAC1B,CAAC,CAAC;;IAEF;IACA;IACA;IACA,IAAAE,KAAA,CAAAC,OAAA,EAAY,IAAI,CAACK,SAAS,CAAC,CAACH,OAAO,CAAC,UAACC,GAAG,EAAK;MAC3CL,KAAI,CAACK,GAAG,CAAC,CAACP,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC;;IAEF;IACA;IACA,IAAAG,KAAA,CAAAC,OAAA,EAAY,IAAI,CAACM,YAAY,CAAC,CAACJ,OAAO,CAAC,UAACC,GAAG,EAAK;MAC9CL,KAAI,CAACK,GAAG,CAAC,CAACI,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,IAAI;EACb,CAAC;EAED;EAEA;AACF;AACA;AACA;AACA;AACA;EACEC,UAAU,WAAVA,UAAUA,CAAA,EAAG;IAAA,IAAAC,MAAA;IACX;IACA,IAAMC,UAAU,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC;;IAEpD;IACAA,UAAU,CAACR,OAAO,CAAC,UAACS,SAAS,EAAK;MAChCC,mCAAwB,CAACV,OAAO,CAAC,UAACW,cAAc,EAAK;QACnDJ,MAAI,CAACI,cAAc,CAAC,CAACC,EAAE,CAACH,SAAS,EAAE,UAACI,KAAK,EAAElB,OAAO,EAAK;UACrDY,MAAI,CAACO,OAAO,WAAAC,MAAA,CAAWJ,cAAc,GAAIJ,MAAI,EAAEA,MAAI,CAACI,cAAc,CAAC,EAAEhB,OAAO,CAAC;QAC/E,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF,CAAC,CAAC;AAAC,IAAAqB,QAAA,GAAAC,OAAA,CAAAnB,OAAA,GAEYZ,aAAa","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_featureCollection","_interopRequireDefault","require","_featureModel","_featuresModel"],"sources":["index.js"],"sourcesContent":["import FeatureCollection from './feature-collection';\nimport FeatureModel from './feature-model';\nimport FeaturesModel from './features-model';\n\nexport {FeatureCollection, FeatureModel, FeaturesModel};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA"}
|
|
1
|
+
{"version":3,"names":["_featureCollection","_interopRequireDefault","require","_featureModel","_featuresModel"],"sources":["index.js"],"sourcesContent":["import FeatureCollection from './feature-collection';\nimport FeatureModel from './feature-model';\nimport FeaturesModel from './features-model';\n\nexport {FeatureCollection, FeatureModel, FeaturesModel};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA","ignoreList":[]}
|
package/dist/index.js
CHANGED
|
@@ -66,8 +66,7 @@ var constants = _interopRequireWildcard(require("./constants"));
|
|
|
66
66
|
exports.constants = constants;
|
|
67
67
|
var _config = _interopRequireDefault(require("./config"));
|
|
68
68
|
var _types = require("./types");
|
|
69
|
-
function
|
|
70
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
69
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
71
70
|
// Internal dependencies.
|
|
72
71
|
// Need to import metrics plugin for the devices to send metrics on succes/failure registration
|
|
73
72
|
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_webexCore","_device","_interopRequireDefault","_index","_deviceUrl","constants","_interopRequireWildcard","exports","_config","_types","
|
|
1
|
+
{"version":3,"names":["require","_webexCore","_device","_interopRequireDefault","_index","_deviceUrl","constants","_interopRequireWildcard","exports","_config","_types","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","registerInternalPlugin","Device","config","interceptors","DeviceUrlInterceptor","create","onBeforeLogout","unregister"],"sources":["index.js"],"sourcesContent":["// Internal dependencies.\n// Need to import metrics plugin for the devices to send metrics on succes/failure registration\nimport '@webex/internal-plugin-metrics';\nimport {registerInternalPlugin} from '@webex/webex-core';\n\n// Plugin dependencies.\nimport Device from './device';\nimport {FeatureCollection, FeatureModel, FeaturesModel} from './features/index';\nimport DeviceUrlInterceptor from './interceptors/device-url';\nimport * as constants from './constants';\nimport config from './config';\nimport {CatalogDetails, DeviceRegistrationOptions} from './types';\n\nregisterInternalPlugin('device', Device, {\n config,\n interceptors: {\n DeviceUrlInterceptor: DeviceUrlInterceptor.create,\n },\n /**\n * Unregister the device in the case that the webex instance has logged out.\n *\n * @returns {Promise<undefined>}\n */\n onBeforeLogout() {\n return this.unregister();\n },\n});\n\nexport {default} from './device';\n\nexport {\n config,\n constants,\n CatalogDetails,\n DeviceRegistrationOptions,\n DeviceUrlInterceptor,\n FeatureCollection,\n FeatureModel,\n FeaturesModel,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEAA,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAGA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,SAAA,GAAAC,uBAAA,CAAAP,OAAA;AAAyCQ,OAAA,CAAAF,SAAA,GAAAA,SAAA;AACzC,IAAAG,OAAA,GAAAN,sBAAA,CAAAH,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AAAkE,SAAAO,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,QAAA,MAAAC,CAAA,OAAAD,QAAA,IAAAE,CAAA,OAAAF,QAAA,YAAAN,uBAAA,YAAAA,wBAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,gBAAAW,OAAA,CAAAX,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAM,GAAA,CAAAZ,CAAA,UAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,GAAAM,CAAA,CAAAQ,GAAA,CAAAd,CAAA,EAAAQ,CAAA,cAAAO,EAAA,IAAAf,CAAA,gBAAAe,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,EAAA,OAAAR,CAAA,IAAAD,CAAA,GAAAY,sBAAA,KAAAC,gCAAA,CAAAnB,CAAA,EAAAe,EAAA,OAAAR,CAAA,CAAAM,GAAA,IAAAN,CAAA,CAAAO,GAAA,IAAAR,CAAA,CAAAE,CAAA,EAAAO,EAAA,EAAAR,CAAA,IAAAC,CAAA,CAAAO,EAAA,IAAAf,CAAA,CAAAe,EAAA,WAAAP,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAXlE;AACA;;AAIA;;AAQA,IAAAmB,iCAAsB,EAAC,QAAQ,EAAEC,eAAM,EAAE;EACvCC,MAAM,EAANA,eAAM;EACNC,YAAY,EAAE;IACZC,oBAAoB,EAAEA,kBAAoB,CAACC;EAC7C,CAAC;EACD;AACF;AACA;AACA;AACA;EACEC,cAAc,WAAdA,cAAcA,CAAA,EAAG;IACf,OAAO,IAAI,CAACC,UAAU,CAAC,CAAC;EAC1B;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -10,27 +10,26 @@ exports.default = void 0;
|
|
|
10
10
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
11
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
12
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
13
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
14
13
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
15
14
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
15
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
16
16
|
var _httpCore = require("@webex/http-core");
|
|
17
17
|
var _lodash = require("lodash");
|
|
18
18
|
var _constants = require("../constants");
|
|
19
|
-
function
|
|
20
|
-
function _isNativeReflectConstruct() {
|
|
19
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
20
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /*!
|
|
21
21
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
22
22
|
*/
|
|
23
23
|
/**
|
|
24
24
|
* Adds 'cisco-device-url' header, as appropriate, to requests
|
|
25
25
|
*/
|
|
26
26
|
var DeviceUrlInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
|
|
27
|
-
(0, _inherits2.default)(DeviceUrlInterceptor, _Interceptor);
|
|
28
|
-
var _super = _createSuper(DeviceUrlInterceptor);
|
|
29
27
|
function DeviceUrlInterceptor() {
|
|
30
28
|
(0, _classCallCheck2.default)(this, DeviceUrlInterceptor);
|
|
31
|
-
return
|
|
29
|
+
return _callSuper(this, DeviceUrlInterceptor, arguments);
|
|
32
30
|
}
|
|
33
|
-
(0,
|
|
31
|
+
(0, _inherits2.default)(DeviceUrlInterceptor, _Interceptor);
|
|
32
|
+
return (0, _createClass2.default)(DeviceUrlInterceptor, [{
|
|
34
33
|
key: "onRequest",
|
|
35
34
|
value:
|
|
36
35
|
/**
|
|
@@ -88,6 +87,5 @@ var DeviceUrlInterceptor = exports.default = /*#__PURE__*/function (_Interceptor
|
|
|
88
87
|
});
|
|
89
88
|
}
|
|
90
89
|
}]);
|
|
91
|
-
return DeviceUrlInterceptor;
|
|
92
90
|
}(_httpCore.Interceptor);
|
|
93
91
|
//# sourceMappingURL=device-url.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_httpCore","require","_lodash","_constants","
|
|
1
|
+
{"version":3,"names":["_httpCore","require","_lodash","_constants","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","DeviceUrlInterceptor","exports","_Interceptor","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","onRequest","options","headers","service","uri","_this$webex$internal","webex","internal","device","services","url","CISCO_DEVICE_URL","_promise","resolve","waitForService","then","_ref","getServiceFromUrl","serviceName","name","invalidServices","includes","set","concat","catch","error","message","match","reject","create","Interceptor"],"sources":["device-url.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\nimport {set} from 'lodash';\n\nimport {CISCO_DEVICE_URL} from '../constants';\n\n/**\n * Adds 'cisco-device-url' header, as appropriate, to requests\n */\nexport default class DeviceUrlInterceptor extends Interceptor {\n /**\n * @returns {DeviceUrlInterceptor}\n */\n static create() {\n /* eslint no-invalid-this: [0] */\n return new DeviceUrlInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n const {headers, service, uri} = options;\n const {device, services} = this.webex.internal;\n\n // Check if header is already set before moving forward\n if (!device.url || (headers && CISCO_DEVICE_URL in headers && !!headers[CISCO_DEVICE_URL])) {\n return Promise.resolve(options);\n }\n\n // Wait for catalog and service to be defined.\n return services\n .waitForService({service, url: uri})\n .then((url) => {\n // Grab the service name with the url returned from waitForService\n const {name: serviceName} = services.getServiceFromUrl(url) || {};\n const invalidServices = ['idbroker', 'oauth', 'saml'];\n\n // Check if service is not one of the invalid services\n // Assign the url to the device header\n if (serviceName && !invalidServices.includes(serviceName)) {\n set(options, `headers['${CISCO_DEVICE_URL}']`, device.url);\n }\n\n return options;\n })\n .catch((error) => {\n // Validate that the error came from getServiceFromUrl\n if (error.message.match(/was not found after waiting/)) {\n return options;\n }\n\n return Promise.reject(error);\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -107,8 +107,8 @@ var IpNetworkDetector = _webexCore.WebexPlugin.extend({
|
|
|
107
107
|
*/
|
|
108
108
|
gatherLocalCandidates: function gatherLocalCandidates(pc) {
|
|
109
109
|
var _this = this;
|
|
110
|
-
return (0, _asyncToGenerator2.default)(
|
|
111
|
-
return _regenerator.default.wrap(function
|
|
110
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
111
|
+
return _regenerator.default.wrap(function (_context) {
|
|
112
112
|
while (1) switch (_context.prev = _context.next) {
|
|
113
113
|
case 0:
|
|
114
114
|
return _context.abrupt("return", new _promise.default(function (resolve, reject) {
|
|
@@ -179,53 +179,53 @@ var IpNetworkDetector = _webexCore.WebexPlugin.extend({
|
|
|
179
179
|
detect: function detect() {
|
|
180
180
|
var _arguments = arguments,
|
|
181
181
|
_this2 = this;
|
|
182
|
-
return (0, _asyncToGenerator2.default)(
|
|
183
|
-
var force, results, pc, forceParam;
|
|
184
|
-
return _regenerator.default.wrap(function
|
|
182
|
+
return (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
183
|
+
var force, results, pc, _pc, forceParam;
|
|
184
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
185
185
|
while (1) switch (_context2.prev = _context2.next) {
|
|
186
186
|
case 0:
|
|
187
187
|
force = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : false;
|
|
188
188
|
if (!(_this2.state === STATE.IN_PROGRESS)) {
|
|
189
|
-
_context2.next =
|
|
189
|
+
_context2.next = 1;
|
|
190
190
|
break;
|
|
191
191
|
}
|
|
192
192
|
_this2.pendingDetection = {
|
|
193
193
|
force: force
|
|
194
194
|
};
|
|
195
195
|
return _context2.abrupt("return");
|
|
196
|
-
case
|
|
196
|
+
case 1:
|
|
197
197
|
if (!(!force && _this2.state !== STATE.INITIAL && !_this2.receivedOnlyMDnsCandidates())) {
|
|
198
|
-
_context2.next =
|
|
198
|
+
_context2.next = 2;
|
|
199
199
|
break;
|
|
200
200
|
}
|
|
201
201
|
return _context2.abrupt("return");
|
|
202
|
-
case
|
|
203
|
-
_context2.prev =
|
|
202
|
+
case 2:
|
|
203
|
+
_context2.prev = 2;
|
|
204
204
|
_this2.state = STATE.IN_PROGRESS;
|
|
205
205
|
pc = new RTCPeerConnection();
|
|
206
|
-
_context2.next =
|
|
206
|
+
_context2.next = 3;
|
|
207
207
|
return _this2.gatherLocalCandidates(pc);
|
|
208
|
-
case
|
|
208
|
+
case 3:
|
|
209
209
|
results = _context2.sent;
|
|
210
|
-
case
|
|
211
|
-
_context2.prev =
|
|
212
|
-
pc.close();
|
|
210
|
+
case 4:
|
|
211
|
+
_context2.prev = 4;
|
|
212
|
+
(_pc = pc) === null || _pc === void 0 ? void 0 : _pc.close();
|
|
213
213
|
_this2.state = STATE.IDLE;
|
|
214
|
-
return _context2.finish(
|
|
215
|
-
case
|
|
214
|
+
return _context2.finish(4);
|
|
215
|
+
case 5:
|
|
216
216
|
if (_this2.pendingDetection) {
|
|
217
217
|
forceParam = _this2.pendingDetection.force;
|
|
218
218
|
_this2.pendingDetection = undefined;
|
|
219
219
|
_this2.detect(forceParam);
|
|
220
220
|
}
|
|
221
|
-
case
|
|
221
|
+
case 6:
|
|
222
222
|
case "end":
|
|
223
223
|
return _context2.stop();
|
|
224
224
|
}
|
|
225
|
-
}, _callee2, null, [[
|
|
225
|
+
}, _callee2, null, [[2,, 4, 5]]);
|
|
226
226
|
}))();
|
|
227
227
|
},
|
|
228
|
-
version: "3.
|
|
228
|
+
version: "3.11.0-next.1"
|
|
229
229
|
});
|
|
230
230
|
var _default = exports.default = IpNetworkDetector;
|
|
231
231
|
//# sourceMappingURL=ipNetworkDetector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","STATE","INITIAL","IN_PROGRESS","IDLE","IpNetworkDetector","WebexPlugin","extend","idAttribute","namespace","props","firstIpV4","firstIpV6","firstMdns","totalTime","state","pendingDetection","undefined","derived","supportsIpV4","deps","fn","receivedOnlyMDnsCandidates","supportsIpV6","gatherLocalCandidates","pc","_this","_asyncToGenerator2","default","_regenerator","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","_promise","resolve","reject","done","startTime","performance","now","doneGatheringIceCandidates","onicecandidate","event","_event$candidate","candidate","address","endsWith","includes","onicegatheringstatechange","iceGatheringState","createDataChannel","createOffer","then","offer","setLocalDescription","catch","e","webex","logger","error","stop","detect","_arguments","arguments","_this2","_callee2","force","results","forceParam","_callee2$","_context2","length","RTCPeerConnection","sent","close","finish","version","_default","exports"],"sources":["ipNetworkDetector.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nconst STATE = {\n INITIAL: 'initial',\n IN_PROGRESS: 'in-progress',\n IDLE: 'idle',\n};\n\n/**\n * @class\n */\nconst IpNetworkDetector = WebexPlugin.extend({\n idAttribute: 'IpNetworkDetectorId',\n\n namespace: 'Device',\n\n props: {\n firstIpV4: ['number', true, -1], // time [ms] it took to receive first IPv4 candidate\n firstIpV6: ['number', true, -1], // time [ms] it took to receive first IPv6 candidate\n firstMdns: ['number', true, -1], // time [ms] it took to receive first mDNS candidate\n totalTime: ['number', true, -1], // total time [ms] it took to do the last IP network detection\n state: ['string', true, STATE.INITIAL],\n pendingDetection: ['object', false, undefined],\n },\n\n derived: {\n /**\n * True if we know we're on an IPv4 network,\n * False if we know that we are not on an IPv4 network,\n * undefined if we are not sure\n */\n supportsIpV4: {\n deps: ['firstIpV4', 'firstIpV6', 'firstMdns', 'totalTime'],\n /**\n * Function for calculating the value of supportsIpV4 prop\n * @returns {boolean | undefined}\n */\n fn() {\n if (this.firstIpV4 >= 0) {\n return true;\n }\n if (this.totalTime < 0) {\n // we haven't completed the detection, yet\n return undefined;\n }\n if (this.receivedOnlyMDnsCandidates()) {\n return undefined;\n }\n\n return false;\n },\n },\n /**\n * True if we know we're on an IPv6 network,\n * False if we know that we are not on an IPv6 network,\n * undefined if we are not sure\n */\n supportsIpV6: {\n deps: ['firstIpV4', 'firstIpV6', 'firstMdns', 'totalTime'],\n /**\n * Function for calculating the value of supportsIpV6 prop\n * @returns {boolean | undefined}\n */ fn() {\n if (this.firstIpV6 >= 0) {\n return true;\n }\n if (this.totalTime < 0) {\n // we haven't completed the detection, yet\n return undefined;\n }\n if (this.receivedOnlyMDnsCandidates()) {\n return undefined;\n }\n\n return false;\n },\n },\n },\n\n /**\n * Returns true if we have received only mDNS candidates - browsers usually do that if we don't have any user media permissions\n *\n * @private\n * @returns {boolean}\n */\n receivedOnlyMDnsCandidates() {\n return this.totalTime >= 0 && this.firstMdns >= 0 && this.firstIpV4 < 0 && this.firstIpV6 < 0;\n },\n\n /**\n *\n * @param {RTCPeerConnection} pc Peer connection to use\n * @private\n * @returns {Promise<void>}\n */\n async gatherLocalCandidates(pc: RTCPeerConnection): Promise<void> {\n return new Promise((resolve, reject) => {\n let done = false;\n\n this.firstIpV4 = -1;\n this.firstIpV6 = -1;\n this.firstMdns = -1;\n this.totalTime = -1;\n const startTime = performance.now();\n\n const doneGatheringIceCandidates = () => {\n if (done) {\n return;\n }\n done = true;\n\n this.totalTime = performance.now() - startTime;\n\n resolve();\n };\n\n pc.onicecandidate = (event) => {\n if (event.candidate?.address) {\n if (event.candidate.address.endsWith('.local')) {\n // if we don't have camera/mic permissions, browser just gives us mDNS candidates\n if (this.firstMdns === -1) {\n this.firstMdns = performance.now() - startTime;\n }\n } else if (event.candidate.address.includes(':')) {\n if (this.firstIpV6 === -1) {\n this.firstIpV6 = performance.now() - startTime;\n }\n } else if (this.firstIpV4 === -1) {\n this.firstIpV4 = performance.now() - startTime;\n }\n\n if (this.firstIpV4 >= 0 && this.firstIpV6 >= 0) {\n // if we've got both ipv4 and ipv6 candidates, there is no need to wait for any more candidates, we can resolve now\n resolve();\n }\n } else if (event.candidate === null) {\n doneGatheringIceCandidates();\n }\n };\n\n pc.onicegatheringstatechange = () => {\n if (pc.iceGatheringState === 'complete') {\n doneGatheringIceCandidates();\n }\n };\n\n pc.createDataChannel('data');\n\n pc.createOffer()\n .then((offer) => pc.setLocalDescription(offer))\n .catch((e) => {\n this.webex.logger.error('Failed to detect ip network version:', e);\n reject(e);\n });\n });\n },\n\n /**\n * Detects if we are on IPv4 and/or IPv6 network. Once it resolves, read the\n * supportsIpV4 and supportsIpV6 props to find out the result.\n *\n * @param {boolean} force - if false, the detection will only be done if we haven't managed to get any meaningful results yet\n * @returns {Promise<void>}\n */\n async detect(force = false) {\n let results;\n let pc;\n\n if (this.state === STATE.IN_PROGRESS) {\n this.pendingDetection = {force};\n\n return;\n }\n\n if (!force && this.state !== STATE.INITIAL && !this.receivedOnlyMDnsCandidates()) {\n // we already have the results, no need to do the detection again\n return;\n }\n\n try {\n this.state = STATE.IN_PROGRESS;\n\n pc = new RTCPeerConnection();\n\n results = await this.gatherLocalCandidates(pc);\n } finally {\n pc.close();\n this.state = STATE.IDLE;\n }\n\n if (this.pendingDetection) {\n const {force: forceParam} = this.pendingDetection;\n\n this.pendingDetection = undefined;\n this.detect(forceParam);\n }\n },\n});\n\nexport default IpNetworkDetector;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_webexCore","require","STATE","INITIAL","IN_PROGRESS","IDLE","IpNetworkDetector","WebexPlugin","extend","idAttribute","namespace","props","firstIpV4","firstIpV6","firstMdns","totalTime","state","pendingDetection","undefined","derived","supportsIpV4","deps","fn","receivedOnlyMDnsCandidates","supportsIpV6","gatherLocalCandidates","pc","_this","_asyncToGenerator2","default","_regenerator","mark","_callee","wrap","_context","prev","next","abrupt","_promise","resolve","reject","done","startTime","performance","now","doneGatheringIceCandidates","onicecandidate","event","_event$candidate","candidate","address","endsWith","includes","onicegatheringstatechange","iceGatheringState","createDataChannel","createOffer","then","offer","setLocalDescription","catch","e","webex","logger","error","stop","detect","_arguments","arguments","_this2","_callee2","force","results","_pc","forceParam","_context2","length","RTCPeerConnection","sent","close","finish","version","_default","exports"],"sources":["ipNetworkDetector.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nconst STATE = {\n INITIAL: 'initial',\n IN_PROGRESS: 'in-progress',\n IDLE: 'idle',\n};\n\n/**\n * @class\n */\nconst IpNetworkDetector = WebexPlugin.extend({\n idAttribute: 'IpNetworkDetectorId',\n\n namespace: 'Device',\n\n props: {\n firstIpV4: ['number', true, -1], // time [ms] it took to receive first IPv4 candidate\n firstIpV6: ['number', true, -1], // time [ms] it took to receive first IPv6 candidate\n firstMdns: ['number', true, -1], // time [ms] it took to receive first mDNS candidate\n totalTime: ['number', true, -1], // total time [ms] it took to do the last IP network detection\n state: ['string', true, STATE.INITIAL],\n pendingDetection: ['object', false, undefined],\n },\n\n derived: {\n /**\n * True if we know we're on an IPv4 network,\n * False if we know that we are not on an IPv4 network,\n * undefined if we are not sure\n */\n supportsIpV4: {\n deps: ['firstIpV4', 'firstIpV6', 'firstMdns', 'totalTime'],\n /**\n * Function for calculating the value of supportsIpV4 prop\n * @returns {boolean | undefined}\n */\n fn() {\n if (this.firstIpV4 >= 0) {\n return true;\n }\n if (this.totalTime < 0) {\n // we haven't completed the detection, yet\n return undefined;\n }\n if (this.receivedOnlyMDnsCandidates()) {\n return undefined;\n }\n\n return false;\n },\n },\n /**\n * True if we know we're on an IPv6 network,\n * False if we know that we are not on an IPv6 network,\n * undefined if we are not sure\n */\n supportsIpV6: {\n deps: ['firstIpV4', 'firstIpV6', 'firstMdns', 'totalTime'],\n /**\n * Function for calculating the value of supportsIpV6 prop\n * @returns {boolean | undefined}\n */ fn() {\n if (this.firstIpV6 >= 0) {\n return true;\n }\n if (this.totalTime < 0) {\n // we haven't completed the detection, yet\n return undefined;\n }\n if (this.receivedOnlyMDnsCandidates()) {\n return undefined;\n }\n\n return false;\n },\n },\n },\n\n /**\n * Returns true if we have received only mDNS candidates - browsers usually do that if we don't have any user media permissions\n *\n * @private\n * @returns {boolean}\n */\n receivedOnlyMDnsCandidates() {\n return this.totalTime >= 0 && this.firstMdns >= 0 && this.firstIpV4 < 0 && this.firstIpV6 < 0;\n },\n\n /**\n *\n * @param {RTCPeerConnection} pc Peer connection to use\n * @private\n * @returns {Promise<void>}\n */\n async gatherLocalCandidates(pc: RTCPeerConnection): Promise<void> {\n return new Promise((resolve, reject) => {\n let done = false;\n\n this.firstIpV4 = -1;\n this.firstIpV6 = -1;\n this.firstMdns = -1;\n this.totalTime = -1;\n const startTime = performance.now();\n\n const doneGatheringIceCandidates = () => {\n if (done) {\n return;\n }\n done = true;\n\n this.totalTime = performance.now() - startTime;\n\n resolve();\n };\n\n pc.onicecandidate = (event) => {\n if (event.candidate?.address) {\n if (event.candidate.address.endsWith('.local')) {\n // if we don't have camera/mic permissions, browser just gives us mDNS candidates\n if (this.firstMdns === -1) {\n this.firstMdns = performance.now() - startTime;\n }\n } else if (event.candidate.address.includes(':')) {\n if (this.firstIpV6 === -1) {\n this.firstIpV6 = performance.now() - startTime;\n }\n } else if (this.firstIpV4 === -1) {\n this.firstIpV4 = performance.now() - startTime;\n }\n\n if (this.firstIpV4 >= 0 && this.firstIpV6 >= 0) {\n // if we've got both ipv4 and ipv6 candidates, there is no need to wait for any more candidates, we can resolve now\n resolve();\n }\n } else if (event.candidate === null) {\n doneGatheringIceCandidates();\n }\n };\n\n pc.onicegatheringstatechange = () => {\n if (pc.iceGatheringState === 'complete') {\n doneGatheringIceCandidates();\n }\n };\n\n pc.createDataChannel('data');\n\n pc.createOffer()\n .then((offer) => pc.setLocalDescription(offer))\n .catch((e) => {\n this.webex.logger.error('Failed to detect ip network version:', e);\n reject(e);\n });\n });\n },\n\n /**\n * Detects if we are on IPv4 and/or IPv6 network. Once it resolves, read the\n * supportsIpV4 and supportsIpV6 props to find out the result.\n *\n * @param {boolean} force - if false, the detection will only be done if we haven't managed to get any meaningful results yet\n * @returns {Promise<void>}\n */\n async detect(force = false) {\n let results;\n let pc;\n\n if (this.state === STATE.IN_PROGRESS) {\n this.pendingDetection = {force};\n\n return;\n }\n\n if (!force && this.state !== STATE.INITIAL && !this.receivedOnlyMDnsCandidates()) {\n // we already have the results, no need to do the detection again\n return;\n }\n\n try {\n this.state = STATE.IN_PROGRESS;\n\n pc = new RTCPeerConnection();\n\n results = await this.gatherLocalCandidates(pc);\n } finally {\n pc?.close();\n this.state = STATE.IDLE;\n }\n\n if (this.pendingDetection) {\n const {force: forceParam} = this.pendingDetection;\n\n this.pendingDetection = undefined;\n this.detect(forceParam);\n }\n },\n});\n\nexport default IpNetworkDetector;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/metrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_default","exports","default","JS_SDK_WDM_REGISTRATION_SUCCESSFUL","JS_SDK_WDM_REGISTRATION_FAILED"],"sources":["metrics.js"],"sourcesContent":["// Metric to do with WDM registration\nexport default {\n JS_SDK_WDM_REGISTRATION_SUCCESSFUL: 'JS_SDK_WDM_REGISTRATION_SUCCESSFUL',\n JS_SDK_WDM_REGISTRATION_FAILED: 'JS_SDK_WDM_REGISTRATION_FAILED',\n};\n"],"mappings":";;;;;;;AAAA;AAAA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACe;EACbC,kCAAkC,EAAE,oCAAoC;EACxEC,8BAA8B,EAAE;AAClC,CAAC"}
|
|
1
|
+
{"version":3,"names":["_default","exports","default","JS_SDK_WDM_REGISTRATION_SUCCESSFUL","JS_SDK_WDM_REGISTRATION_FAILED"],"sources":["metrics.js"],"sourcesContent":["// Metric to do with WDM registration\nexport default {\n JS_SDK_WDM_REGISTRATION_SUCCESSFUL: 'JS_SDK_WDM_REGISTRATION_SUCCESSFUL',\n JS_SDK_WDM_REGISTRATION_FAILED: 'JS_SDK_WDM_REGISTRATION_FAILED',\n};\n"],"mappings":";;;;;;;AAAA;AAAA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACe;EACbC,kCAAkC,EAAE,oCAAoC;EACxEC,8BAA8B,EAAE;AAClC,CAAC","ignoreList":[]}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CatalogDetails","exports"],"sources":["types.ts"],"sourcesContent":["export enum CatalogDetails {\n all = 'all',\n features = 'features',\n websocket = 'websocket',\n none = 'none',\n}\n\nexport type DeviceRegistrationOptions = {\n includeDetails?: CatalogDetails;\n};\n"],"mappings":";;;;;;;IAAYA,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA"}
|
|
1
|
+
{"version":3,"names":["CatalogDetails","exports"],"sources":["types.ts"],"sourcesContent":["export enum CatalogDetails {\n all = 'all',\n features = 'features',\n websocket = 'websocket',\n none = 'none',\n}\n\nexport type DeviceRegistrationOptions = {\n includeDetails?: CatalogDetails;\n};\n"],"mappings":";;;;;;;IAAYA,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
26
26
|
"@webex/jest-config-legacy": "0.0.0",
|
|
27
27
|
"@webex/legacy-tools": "0.0.0",
|
|
28
|
-
"@webex/test-helper-chai": "3.10.0",
|
|
29
|
-
"@webex/test-helper-mocha": "3.10.0",
|
|
30
|
-
"@webex/test-helper-mock-webex": "3.10.0",
|
|
31
|
-
"@webex/test-helper-test-users": "3.10.0",
|
|
28
|
+
"@webex/test-helper-chai": "3.10.0-next.1",
|
|
29
|
+
"@webex/test-helper-mocha": "3.10.0-next.1",
|
|
30
|
+
"@webex/test-helper-mock-webex": "3.10.0-next.1",
|
|
31
|
+
"@webex/test-helper-test-users": "3.10.0-next.1",
|
|
32
32
|
"chai": "^4.3.4",
|
|
33
33
|
"chai-as-promised": "^7.1.1",
|
|
34
34
|
"eslint": "^8.24.0",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"sinon": "^9.2.4"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@webex/common": "3.10.0",
|
|
40
|
-
"@webex/common-timers": "3.10.0",
|
|
41
|
-
"@webex/http-core": "3.10.0",
|
|
42
|
-
"@webex/internal-plugin-metrics": "3.
|
|
43
|
-
"@webex/webex-core": "3.
|
|
39
|
+
"@webex/common": "3.10.0-next.1",
|
|
40
|
+
"@webex/common-timers": "3.10.0-next.1",
|
|
41
|
+
"@webex/http-core": "3.10.0-next.1",
|
|
42
|
+
"@webex/internal-plugin-metrics": "3.11.0-next.1",
|
|
43
|
+
"@webex/webex-core": "3.11.0-next.1",
|
|
44
44
|
"ampersand-collection": "^2.0.2",
|
|
45
45
|
"ampersand-state": "^5.0.3",
|
|
46
46
|
"lodash": "^4.17.21",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"test:style": "eslint ./src/**/*.*",
|
|
56
56
|
"test:unit": "webex-legacy-tools test --unit --runner jest"
|
|
57
57
|
},
|
|
58
|
-
"version": "3.
|
|
58
|
+
"version": "3.11.0-next.1"
|
|
59
59
|
}
|