@webex/internal-plugin-feature 3.3.1 → 3.4.0

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 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
- * @param {Object} envelope
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
- handleFeatureUpdate: function handleFeatureUpdate(envelope) {
53
- if (envelope && envelope.data) {
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>
@@ -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":"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"}
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":["require","_webexCore","_feature","_interopRequireDefault","_config","registerInternalPlugin","Feature","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport '@webex/internal-plugin-mercury';\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":";;;;;;;;;;;;;AAGAA,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAD,sBAAA,CAAAH,OAAA;AARA;AACA;AACA;;AAQA,IAAAK,iCAAsB,EAAC,SAAS,EAAEC,gBAAO,EAAE;EACzCC,MAAM,EAANA;AACF,CAAC,CAAC"}
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.3.1",
39
- "@webex/test-helper-mocha": "3.3.1",
40
- "@webex/test-helper-mock-webex": "3.3.1",
41
- "@webex/test-helper-test-users": "3.3.1",
38
+ "@webex/test-helper-chai": "3.4.0",
39
+ "@webex/test-helper-mocha": "3.4.0",
40
+ "@webex/test-helper-mock-webex": "3.4.0",
41
+ "@webex/test-helper-test-users": "3.4.0",
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.3.1",
49
- "@webex/internal-plugin-mercury": "3.3.1",
50
- "@webex/webex-core": "3.3.1",
48
+ "@webex/internal-plugin-device": "3.4.0",
49
+ "@webex/webex-core": "3.4.0",
51
50
  "lodash": "^4.17.21"
52
51
  },
53
- "version": "3.3.1"
52
+ "version": "3.4.0"
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
- * @param {Object} envelope
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
- handleFeatureUpdate(envelope) {
50
- if (envelope && envelope.data) {
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
@@ -1,7 +1,6 @@
1
1
  /*!
2
2
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
3
  */
4
- import '@webex/internal-plugin-mercury';
5
4
 
6
5
  import {registerInternalPlugin} from '@webex/webex-core';
7
6
 
@@ -98,24 +98,20 @@ describe('plugin-feature', () => {
98
98
  });
99
99
  });
100
100
 
101
- describe('#handleFeatureUpdate', () => {
101
+ describe('#updateFeature', () => {
102
102
  it('updates the feature toggle', () => {
103
103
  const key = 'featureName';
104
104
  const keyType = 'user';
105
- const envelope = {
106
- data: {
107
- featureToggle: {
108
- key,
109
- mutable: true,
110
- type: 'USER',
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.handleFeatureUpdate(envelope);
114
+ webex.internal.feature.updateFeature(feature);
119
115
  assert.called(webex.internal.device.features[keyType].add);
120
116
  });
121
117
  });