@webex/internal-plugin-feature 3.2.0 → 3.3.1-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/feature.js +8 -12
- package/dist/feature.js.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -8
- package/src/feature.js +8 -17
- package/src/index.js +0 -1
- package/test/unit/spec/feature.js +8 -12
package/dist/feature.js
CHANGED
|
@@ -46,12 +46,16 @@ var Feature = WebexCore.WebexPlugin.extend({
|
|
|
46
46
|
},
|
|
47
47
|
/**
|
|
48
48
|
* Handles a feature toggle update from the server.
|
|
49
|
-
*
|
|
49
|
+
* When one of these legacy feature gets updated, this event handler be triggered
|
|
50
|
+
* * group-message-notifications
|
|
51
|
+
* * mention-notifications
|
|
52
|
+
* * thread-notifications,
|
|
53
|
+
* This handler is being listened from mercury connection success method for the event "event:featureToggle_update"
|
|
54
|
+
* @param {Object} feature
|
|
50
55
|
* @returns {undefined}
|
|
51
56
|
*/
|
|
52
|
-
|
|
53
|
-
if (
|
|
54
|
-
var feature = envelope.data.featureToggle;
|
|
57
|
+
updateFeature: function updateFeature(feature) {
|
|
58
|
+
if (feature) {
|
|
55
59
|
var keyType = feature.type.toLowerCase();
|
|
56
60
|
if (keyType === 'user' || keyType === 'developer') {
|
|
57
61
|
this.webex.internal.device.features[keyType].add([feature], {
|
|
@@ -60,14 +64,6 @@ var Feature = WebexCore.WebexPlugin.extend({
|
|
|
60
64
|
}
|
|
61
65
|
}
|
|
62
66
|
},
|
|
63
|
-
/**
|
|
64
|
-
* Register to listen for incoming feature events
|
|
65
|
-
* @instance
|
|
66
|
-
* @returns {undefined}
|
|
67
|
-
*/
|
|
68
|
-
listen: function listen() {
|
|
69
|
-
this.listenTo(this.webex.internal.mercury, 'event:featureToggle_update', this.handleFeatureUpdate);
|
|
70
|
-
},
|
|
71
67
|
/**
|
|
72
68
|
* Issues request to server to set a value for a feature toggle.
|
|
73
69
|
* @param {string} keyType <developer|user>
|
package/dist/feature.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_lodash","WebexCore","_interopRequireWildcard","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","Feature","WebexPlugin","extend","namespace","getFeature","keyType","key","options","_promise","reject","Error","feature","webex","internal","device","features","resolve","full","serialize","value","handleFeatureUpdate","envelope","data","featureToggle","type","toLowerCase","add","merge","listen","listenTo","mercury","setFeature","_this","request","method","api","resource","concat","userId","body","mutable","val","then","res","setBundledFeatures","featureList","_this2","forEach","item","partitionedToggles","partition","featureToggles","user","developer","initialize","_len","arguments","length","args","Array","_key","_apply","listenToAndRun","trigger","bind","_default","exports"],"sources":["feature.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-device';\nimport {partition} from 'lodash';\nimport * as WebexCore from '@webex/webex-core';\n\nconst Feature = WebexCore.WebexPlugin.extend({\n namespace: 'Feature',\n\n /**\n * Returns the value of the requested feature toggle.\n * @param {string} keyType <developer|user|entitlement>\n * @param {string} key\n * @param {Object} options\n * @param {boolean} options.full to get full feature record including metadata.\n * @returns {string|boolean|number|FeatureModel|null}\n */\n getFeature(keyType, key, options) {\n if (keyType !== 'developer' && keyType !== 'user' && keyType !== 'entitlement') {\n return Promise.reject(\n new Error(\n 'Invalid feature keyType provided. Only `developer`, `user`, and `entitlement` feature toggles are permitted.'\n )\n );\n }\n\n options = options || {};\n\n const feature = this.webex.internal.device.features[keyType].get(key);\n\n if (!feature) {\n return Promise.resolve(null);\n }\n\n if (options.full) {\n return Promise.resolve(feature.serialize());\n }\n\n return Promise.resolve(feature.value);\n },\n\n /**\n * Handles a feature toggle update from the server.\n * @param {Object} envelope\n * @returns {undefined}\n */\n handleFeatureUpdate(envelope) {\n if (envelope && envelope.data) {\n const feature = envelope.data.featureToggle;\n const keyType = feature.type.toLowerCase();\n\n if (keyType === 'user' || keyType === 'developer') {\n this.webex.internal.device.features[keyType].add([feature], {merge: true});\n }\n }\n },\n\n /**\n * Register to listen for incoming feature events\n * @instance\n * @returns {undefined}\n */\n listen() {\n this.listenTo(\n this.webex.internal.mercury,\n 'event:featureToggle_update',\n this.handleFeatureUpdate\n );\n },\n\n /**\n * Issues request to server to set a value for a feature toggle.\n * @param {string} keyType <developer|user>\n * @param {string} key\n * @param {string} value\n * @returns {Promise} Refreshes the local device and resolves with the features endpoint's response.\n */\n setFeature(keyType, key, value) {\n // Limit only to developer feature toggles for now.\n if (keyType !== 'developer' && keyType !== 'user') {\n return Promise.reject(new Error('Only `developer` and `user` feature toggles can be set.'));\n }\n\n return this.request({\n method: 'POST',\n api: 'feature',\n resource: `features/users/${this.webex.internal.device.userId}/${keyType}`,\n body: {\n key,\n mutable: true,\n val: value,\n },\n }).then((res) => this.webex.internal.device.features[keyType].add(res.body, {merge: true}));\n },\n\n /**\n * Issues request to server to set a value for a feature toggle.\n * @param {array} featureList - in the form of `Array<{ type: 'USER' | 'DEV', key: string, val: any }>`\n * @returns {Promise} Refreshes the local device and resolves with the features endpoint`s response.\n */\n setBundledFeatures(featureList) {\n featureList.forEach((item) => {\n item.mutable = item.mutable || 'true';\n if (item.type !== 'USER' && item.type !== 'DEV') {\n item.type = 'USER';\n }\n });\n\n return this.request({\n method: 'POST',\n api: 'feature',\n resource: `features/users/${this.webex.internal.device.userId}/toggles`,\n body: featureList,\n }).then((res) => {\n const partitionedToggles = partition(res.body.featureToggles, {type: 'USER'});\n\n this.webex.internal.device.features.user.add(partitionedToggles[0], {merge: true});\n this.webex.internal.device.features.developer.add(partitionedToggles[1], {merge: true});\n });\n },\n\n initialize(...args) {\n Reflect.apply(WebexCore.WebexPlugin.prototype.initialize, this, args);\n\n this.listenToAndRun(\n this.webex,\n 'change:internal.device.features.developer',\n this.trigger.bind(this, 'change:developer')\n );\n this.listenToAndRun(\n this.webex,\n 'change:internal.device.features.entitlement',\n this.trigger.bind(this, 'change:entitlement')\n );\n this.listenToAndRun(\n this.webex,\n 'change:internal.device.features.user',\n this.trigger.bind(this, 'change:user')\n );\n },\n});\n\nexport default Feature;\n"],"mappings":";;;;;;;;;;;;;AAIAA,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAC,uBAAA,CAAAH,OAAA;AAA+C,SAAAI,yBAAAC,CAAA,6BAAAC,QAAA,mBAAAC,CAAA,OAAAD,QAAA,IAAAE,CAAA,OAAAF,QAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAF,wBAAAE,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,WAAAM,OAAA,EAAAN,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAI,GAAA,CAAAP,CAAA,UAAAG,CAAA,CAAAK,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,sBAAA,IAAAC,gCAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAC,MAAA,CAAAC,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAlB,CAAA,EAAAc,CAAA,SAAAK,CAAA,GAAAR,CAAA,GAAAE,gCAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAK,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,sBAAA,CAAAH,CAAA,EAAAK,CAAA,EAAAK,CAAA,IAAAV,CAAA,CAAAK,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAL,CAAA,CAAAH,OAAA,GAAAN,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAiB,GAAA,CAAApB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAN/C;AACA;AACA;;AAMA,IAAMY,OAAO,GAAGxB,SAAS,CAACyB,WAAW,CAACC,MAAM,CAAC;EAC3CC,SAAS,EAAE,SAAS;EAEpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,UAAU,WAAAA,WAACC,OAAO,EAAEC,GAAG,EAAEC,OAAO,EAAE;IAChC,IAAIF,OAAO,KAAK,WAAW,IAAIA,OAAO,KAAK,MAAM,IAAIA,OAAO,KAAK,aAAa,EAAE;MAC9E,OAAOG,QAAA,CAAAvB,OAAA,CAAQwB,MAAM,CACnB,IAAIC,KAAK,CACP,8GACF,CACF,CAAC;IACH;IAEAH,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;IAEvB,IAAMI,OAAO,GAAG,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACC,MAAM,CAACC,QAAQ,CAACV,OAAO,CAAC,CAAClB,GAAG,CAACmB,GAAG,CAAC;IAErE,IAAI,CAACK,OAAO,EAAE;MACZ,OAAOH,QAAA,CAAAvB,OAAA,CAAQ+B,OAAO,CAAC,IAAI,CAAC;IAC9B;IAEA,IAAIT,OAAO,CAACU,IAAI,EAAE;MAChB,OAAOT,QAAA,CAAAvB,OAAA,CAAQ+B,OAAO,CAACL,OAAO,CAACO,SAAS,CAAC,CAAC,CAAC;IAC7C;IAEA,OAAOV,QAAA,CAAAvB,OAAA,CAAQ+B,OAAO,CAACL,OAAO,CAACQ,KAAK,CAAC;EACvC,CAAC;EAED;AACF;AACA;AACA;AACA;EACEC,mBAAmB,WAAAA,oBAACC,QAAQ,EAAE;IAC5B,IAAIA,QAAQ,IAAIA,QAAQ,CAACC,IAAI,EAAE;MAC7B,IAAMX,OAAO,GAAGU,QAAQ,CAACC,IAAI,CAACC,aAAa;MAC3C,IAAMlB,OAAO,GAAGM,OAAO,CAACa,IAAI,CAACC,WAAW,CAAC,CAAC;MAE1C,IAAIpB,OAAO,KAAK,MAAM,IAAIA,OAAO,KAAK,WAAW,EAAE;QACjD,IAAI,CAACO,KAAK,CAACC,QAAQ,CAACC,MAAM,CAACC,QAAQ,CAACV,OAAO,CAAC,CAACqB,GAAG,CAAC,CAACf,OAAO,CAAC,EAAE;UAACgB,KAAK,EAAE;QAAI,CAAC,CAAC;MAC5E;IACF;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;EACEC,MAAM,WAAAA,OAAA,EAAG;IACP,IAAI,CAACC,QAAQ,CACX,IAAI,CAACjB,KAAK,CAACC,QAAQ,CAACiB,OAAO,EAC3B,4BAA4B,EAC5B,IAAI,CAACV,mBACP,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEW,UAAU,WAAAA,WAAC1B,OAAO,EAAEC,GAAG,EAAEa,KAAK,EAAE;IAAA,IAAAa,KAAA;IAC9B;IACA,IAAI3B,OAAO,KAAK,WAAW,IAAIA,OAAO,KAAK,MAAM,EAAE;MACjD,OAAOG,QAAA,CAAAvB,OAAA,CAAQwB,MAAM,CAAC,IAAIC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7F;IAEA,OAAO,IAAI,CAACuB,OAAO,CAAC;MAClBC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAE,SAAS;MACdC,QAAQ,oBAAAC,MAAA,CAAoB,IAAI,CAACzB,KAAK,CAACC,QAAQ,CAACC,MAAM,CAACwB,MAAM,OAAAD,MAAA,CAAIhC,OAAO,CAAE;MAC1EkC,IAAI,EAAE;QACJjC,GAAG,EAAHA,GAAG;QACHkC,OAAO,EAAE,IAAI;QACbC,GAAG,EAAEtB;MACP;IACF,CAAC,CAAC,CAACuB,IAAI,CAAC,UAACC,GAAG;MAAA,OAAKX,KAAI,CAACpB,KAAK,CAACC,QAAQ,CAACC,MAAM,CAACC,QAAQ,CAACV,OAAO,CAAC,CAACqB,GAAG,CAACiB,GAAG,CAACJ,IAAI,EAAE;QAACZ,KAAK,EAAE;MAAI,CAAC,CAAC;IAAA,EAAC;EAC7F,CAAC;EAED;AACF;AACA;AACA;AACA;EACEiB,kBAAkB,WAAAA,mBAACC,WAAW,EAAE;IAAA,IAAAC,MAAA;IAC9BD,WAAW,CAACE,OAAO,CAAC,UAACC,IAAI,EAAK;MAC5BA,IAAI,CAACR,OAAO,GAAGQ,IAAI,CAACR,OAAO,IAAI,MAAM;MACrC,IAAIQ,IAAI,CAACxB,IAAI,KAAK,MAAM,IAAIwB,IAAI,CAACxB,IAAI,KAAK,KAAK,EAAE;QAC/CwB,IAAI,CAACxB,IAAI,GAAG,MAAM;MACpB;IACF,CAAC,CAAC;IAEF,OAAO,IAAI,CAACS,OAAO,CAAC;MAClBC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAE,SAAS;MACdC,QAAQ,oBAAAC,MAAA,CAAoB,IAAI,CAACzB,KAAK,CAACC,QAAQ,CAACC,MAAM,CAACwB,MAAM,aAAU;MACvEC,IAAI,EAAEM;IACR,CAAC,CAAC,CAACH,IAAI,CAAC,UAACC,GAAG,EAAK;MACf,IAAMM,kBAAkB,GAAG,IAAAC,iBAAS,EAACP,GAAG,CAACJ,IAAI,CAACY,cAAc,EAAE;QAAC3B,IAAI,EAAE;MAAM,CAAC,CAAC;MAE7EsB,MAAI,CAAClC,KAAK,CAACC,QAAQ,CAACC,MAAM,CAACC,QAAQ,CAACqC,IAAI,CAAC1B,GAAG,CAACuB,kBAAkB,CAAC,CAAC,CAAC,EAAE;QAACtB,KAAK,EAAE;MAAI,CAAC,CAAC;MAClFmB,MAAI,CAAClC,KAAK,CAACC,QAAQ,CAACC,MAAM,CAACC,QAAQ,CAACsC,SAAS,CAAC3B,GAAG,CAACuB,kBAAkB,CAAC,CAAC,CAAC,EAAE;QAACtB,KAAK,EAAE;MAAI,CAAC,CAAC;IACzF,CAAC,CAAC;EACJ,CAAC;EAED2B,UAAU,WAAAA,WAAA,EAAU;IAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAANC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAChB,IAAAC,MAAA,CAAA5E,OAAA,EAAcT,SAAS,CAACyB,WAAW,CAACN,SAAS,CAAC2D,UAAU,EAAE,IAAI,EAAEI,IAAI,CAAC;IAErE,IAAI,CAACI,cAAc,CACjB,IAAI,CAAClD,KAAK,EACV,2CAA2C,EAC3C,IAAI,CAACmD,OAAO,CAACC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAC5C,CAAC;IACD,IAAI,CAACF,cAAc,CACjB,IAAI,CAAClD,KAAK,EACV,6CAA6C,EAC7C,IAAI,CAACmD,OAAO,CAACC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAC9C,CAAC;IACD,IAAI,CAACF,cAAc,CACjB,IAAI,CAAClD,KAAK,EACV,sCAAsC,EACtC,IAAI,CAACmD,OAAO,CAACC,IAAI,CAAC,IAAI,EAAE,aAAa,CACvC,CAAC;EACH;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAjF,OAAA,GAEYe,OAAO"}
|
|
1
|
+
{"version":3,"names":["require","_lodash","WebexCore","_interopRequireWildcard","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","Feature","WebexPlugin","extend","namespace","getFeature","keyType","key","options","_promise","reject","Error","feature","webex","internal","device","features","resolve","full","serialize","value","updateFeature","type","toLowerCase","add","merge","setFeature","_this","request","method","api","resource","concat","userId","body","mutable","val","then","res","setBundledFeatures","featureList","_this2","forEach","item","partitionedToggles","partition","featureToggles","user","developer","initialize","_len","arguments","length","args","Array","_key","_apply","listenToAndRun","trigger","bind","_default","exports"],"sources":["feature.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-device';\nimport {partition} from 'lodash';\nimport * as WebexCore from '@webex/webex-core';\n\nconst Feature = WebexCore.WebexPlugin.extend({\n namespace: 'Feature',\n\n /**\n * Returns the value of the requested feature toggle.\n * @param {string} keyType <developer|user|entitlement>\n * @param {string} key\n * @param {Object} options\n * @param {boolean} options.full to get full feature record including metadata.\n * @returns {string|boolean|number|FeatureModel|null}\n */\n getFeature(keyType, key, options) {\n if (keyType !== 'developer' && keyType !== 'user' && keyType !== 'entitlement') {\n return Promise.reject(\n new Error(\n 'Invalid feature keyType provided. Only `developer`, `user`, and `entitlement` feature toggles are permitted.'\n )\n );\n }\n\n options = options || {};\n\n const feature = this.webex.internal.device.features[keyType].get(key);\n\n if (!feature) {\n return Promise.resolve(null);\n }\n\n if (options.full) {\n return Promise.resolve(feature.serialize());\n }\n\n return Promise.resolve(feature.value);\n },\n\n /**\n * Handles a feature toggle update from the server.\n * When one of these legacy feature gets updated, this event handler be triggered\n * * group-message-notifications\n * * mention-notifications\n * * thread-notifications,\n * This handler is being listened from mercury connection success method for the event \"event:featureToggle_update\"\n * @param {Object} feature\n * @returns {undefined}\n */\n updateFeature(feature) {\n if (feature) {\n const keyType = feature.type.toLowerCase();\n\n if (keyType === 'user' || keyType === 'developer') {\n this.webex.internal.device.features[keyType].add([feature], {merge: true});\n }\n }\n },\n\n /**\n * Issues request to server to set a value for a feature toggle.\n * @param {string} keyType <developer|user>\n * @param {string} key\n * @param {string} value\n * @returns {Promise} Refreshes the local device and resolves with the features endpoint's response.\n */\n setFeature(keyType, key, value) {\n // Limit only to developer feature toggles for now.\n if (keyType !== 'developer' && keyType !== 'user') {\n return Promise.reject(new Error('Only `developer` and `user` feature toggles can be set.'));\n }\n\n return this.request({\n method: 'POST',\n api: 'feature',\n resource: `features/users/${this.webex.internal.device.userId}/${keyType}`,\n body: {\n key,\n mutable: true,\n val: value,\n },\n }).then((res) => this.webex.internal.device.features[keyType].add(res.body, {merge: true}));\n },\n\n /**\n * Issues request to server to set a value for a feature toggle.\n * @param {array} featureList - in the form of `Array<{ type: 'USER' | 'DEV', key: string, val: any }>`\n * @returns {Promise} Refreshes the local device and resolves with the features endpoint`s response.\n */\n setBundledFeatures(featureList) {\n featureList.forEach((item) => {\n item.mutable = item.mutable || 'true';\n if (item.type !== 'USER' && item.type !== 'DEV') {\n item.type = 'USER';\n }\n });\n\n return this.request({\n method: 'POST',\n api: 'feature',\n resource: `features/users/${this.webex.internal.device.userId}/toggles`,\n body: featureList,\n }).then((res) => {\n const partitionedToggles = partition(res.body.featureToggles, {type: 'USER'});\n\n this.webex.internal.device.features.user.add(partitionedToggles[0], {merge: true});\n this.webex.internal.device.features.developer.add(partitionedToggles[1], {merge: true});\n });\n },\n\n initialize(...args) {\n Reflect.apply(WebexCore.WebexPlugin.prototype.initialize, this, args);\n\n this.listenToAndRun(\n this.webex,\n 'change:internal.device.features.developer',\n this.trigger.bind(this, 'change:developer')\n );\n this.listenToAndRun(\n this.webex,\n 'change:internal.device.features.entitlement',\n this.trigger.bind(this, 'change:entitlement')\n );\n this.listenToAndRun(\n this.webex,\n 'change:internal.device.features.user',\n this.trigger.bind(this, 'change:user')\n );\n },\n});\n\nexport default Feature;\n"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,6 @@ _Object$defineProperty(exports, "default", {
|
|
|
11
11
|
return _feature.default;
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
|
-
require("@webex/internal-plugin-mercury");
|
|
15
14
|
var _webexCore = require("@webex/webex-core");
|
|
16
15
|
var _feature = _interopRequireDefault(require("./feature"));
|
|
17
16
|
var _config = _interopRequireDefault(require("./config"));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_feature","_interopRequireDefault","_config","registerInternalPlugin","Feature","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport Feature from './feature';\nimport config from './config';\n\nregisterInternalPlugin('feature', Feature, {\n config,\n});\n\nexport {default} from './feature';\n"],"mappings":";;;;;;;;;;;;;AAIA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AAPA;AACA;AACA;;AAOA,IAAAI,iCAAsB,EAAC,SAAS,EAAEC,gBAAO,EAAE;EACzCC,MAAM,EAANA;AACF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -35,20 +35,19 @@
|
|
|
35
35
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
36
36
|
"@webex/jest-config-legacy": "0.0.0",
|
|
37
37
|
"@webex/legacy-tools": "0.0.0",
|
|
38
|
-
"@webex/test-helper-chai": "3.
|
|
39
|
-
"@webex/test-helper-mocha": "3.
|
|
40
|
-
"@webex/test-helper-mock-webex": "3.
|
|
41
|
-
"@webex/test-helper-test-users": "3.
|
|
38
|
+
"@webex/test-helper-chai": "3.1.0-next.3",
|
|
39
|
+
"@webex/test-helper-mocha": "3.1.0-next.3",
|
|
40
|
+
"@webex/test-helper-mock-webex": "3.1.0-next.3",
|
|
41
|
+
"@webex/test-helper-test-users": "3.1.0-next.3",
|
|
42
42
|
"eslint": "^8.24.0",
|
|
43
43
|
"mocha": "^10.2.0",
|
|
44
44
|
"prettier": "^2.7.1",
|
|
45
45
|
"sinon": "^9.2.4"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@webex/internal-plugin-device": "3.
|
|
49
|
-
"@webex/
|
|
50
|
-
"@webex/webex-core": "3.2.0",
|
|
48
|
+
"@webex/internal-plugin-device": "3.1.0-next.3",
|
|
49
|
+
"@webex/webex-core": "3.1.0-next.3",
|
|
51
50
|
"lodash": "^4.17.21"
|
|
52
51
|
},
|
|
53
|
-
"version": "3.
|
|
52
|
+
"version": "3.3.1-next.1"
|
|
54
53
|
}
|
package/src/feature.js
CHANGED
|
@@ -43,12 +43,16 @@ const Feature = WebexCore.WebexPlugin.extend({
|
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* Handles a feature toggle update from the server.
|
|
46
|
-
*
|
|
46
|
+
* When one of these legacy feature gets updated, this event handler be triggered
|
|
47
|
+
* * group-message-notifications
|
|
48
|
+
* * mention-notifications
|
|
49
|
+
* * thread-notifications,
|
|
50
|
+
* This handler is being listened from mercury connection success method for the event "event:featureToggle_update"
|
|
51
|
+
* @param {Object} feature
|
|
47
52
|
* @returns {undefined}
|
|
48
53
|
*/
|
|
49
|
-
|
|
50
|
-
if (
|
|
51
|
-
const feature = envelope.data.featureToggle;
|
|
54
|
+
updateFeature(feature) {
|
|
55
|
+
if (feature) {
|
|
52
56
|
const keyType = feature.type.toLowerCase();
|
|
53
57
|
|
|
54
58
|
if (keyType === 'user' || keyType === 'developer') {
|
|
@@ -57,19 +61,6 @@ const Feature = WebexCore.WebexPlugin.extend({
|
|
|
57
61
|
}
|
|
58
62
|
},
|
|
59
63
|
|
|
60
|
-
/**
|
|
61
|
-
* Register to listen for incoming feature events
|
|
62
|
-
* @instance
|
|
63
|
-
* @returns {undefined}
|
|
64
|
-
*/
|
|
65
|
-
listen() {
|
|
66
|
-
this.listenTo(
|
|
67
|
-
this.webex.internal.mercury,
|
|
68
|
-
'event:featureToggle_update',
|
|
69
|
-
this.handleFeatureUpdate
|
|
70
|
-
);
|
|
71
|
-
},
|
|
72
|
-
|
|
73
64
|
/**
|
|
74
65
|
* Issues request to server to set a value for a feature toggle.
|
|
75
66
|
* @param {string} keyType <developer|user>
|
package/src/index.js
CHANGED
|
@@ -98,24 +98,20 @@ describe('plugin-feature', () => {
|
|
|
98
98
|
});
|
|
99
99
|
});
|
|
100
100
|
|
|
101
|
-
describe('#
|
|
101
|
+
describe('#updateFeature', () => {
|
|
102
102
|
it('updates the feature toggle', () => {
|
|
103
103
|
const key = 'featureName';
|
|
104
104
|
const keyType = 'user';
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
val: 'true',
|
|
112
|
-
value: true,
|
|
113
|
-
},
|
|
114
|
-
},
|
|
105
|
+
const feature = {
|
|
106
|
+
key,
|
|
107
|
+
mutable: true,
|
|
108
|
+
type: 'USER',
|
|
109
|
+
val: 'true',
|
|
110
|
+
value: true,
|
|
115
111
|
};
|
|
116
112
|
|
|
117
113
|
sinon.spy(webex.internal.device.features[keyType], 'add');
|
|
118
|
-
webex.internal.feature.
|
|
114
|
+
webex.internal.feature.updateFeature(feature);
|
|
119
115
|
assert.called(webex.internal.device.features[keyType].add);
|
|
120
116
|
});
|
|
121
117
|
});
|