@webex/internal-plugin-team 3.0.0-beta.3 → 3.0.0-beta.31

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/README.md CHANGED
@@ -21,14 +21,12 @@ npm install --save @webex/internal-plugin-team
21
21
  ## Usage
22
22
 
23
23
  ```js
24
-
25
24
  import '@webex/internal-plugin-team';
26
25
 
27
26
  import WebexCore from '@webex/webex-core';
28
27
 
29
28
  const webex = new WebexCore();
30
- webex.internal.team.WHATEVER
31
-
29
+ webex.internal.team.WHATEVER;
32
30
  ```
33
31
 
34
32
  ## Maintainers
package/dist/config.js CHANGED
@@ -1,13 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  _Object$defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
-
9
7
  exports.default = void 0;
10
-
11
8
  /*!
12
9
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
13
10
  */
@@ -1 +1 @@
1
- {"version":3,"names":["team"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n team: {}\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;eAEe;EACbA,IAAI,EAAE;AADO,C"}
1
+ {"version":3,"names":["team"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n team: {},\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,eAIe;EACbA,IAAI,EAAE,CAAC;AACT,CAAC;AAAA"}
package/dist/index.js CHANGED
@@ -1,43 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
5
  _Object$defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
-
11
8
  _Object$defineProperty(exports, "default", {
12
9
  enumerable: true,
13
10
  get: function get() {
14
11
  return _team.default;
15
12
  }
16
13
  });
17
-
18
14
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
19
-
20
15
  var _get2 = _interopRequireDefault(require("lodash/get"));
21
-
22
16
  var _has2 = _interopRequireDefault(require("lodash/has"));
23
-
24
17
  var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
25
-
26
18
  require("@webex/internal-plugin-conversation");
27
-
28
19
  require("@webex/internal-plugin-user");
29
-
30
20
  require("@webex/internal-plugin-encryption");
31
-
32
21
  var _webexCore = require("@webex/webex-core");
33
-
34
22
  var _team = _interopRequireDefault(require("./team"));
35
-
36
23
  var _config = _interopRequireDefault(require("./config"));
37
-
38
24
  /*!
39
25
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
40
26
  */
27
+
41
28
  (0, _webexCore.registerInternalPlugin)('team', _team.default, {
42
29
  payloadTransformer: {
43
30
  predicates: [{
@@ -55,20 +42,16 @@ var _config = _interopRequireDefault(require("./config"));
55
42
  direction: 'inbound',
56
43
  fn: function fn(ctx, key, team) {
57
44
  var promises = [];
58
-
59
45
  if (team.conversations.items) {
60
46
  promises.push(_promise.default.all(team.conversations.items.map(function (item) {
61
47
  return ctx.transform('decryptObject', null, item);
62
48
  })));
63
49
  }
64
-
65
50
  var usableKey = team.encryptionKeyUrl || key;
66
-
67
51
  if (usableKey) {
68
52
  promises.push(ctx.transform('decryptPropDisplayName', usableKey, team));
69
53
  promises.push(ctx.transform('decryptPropSummary', usableKey, team));
70
54
  }
71
-
72
55
  return _promise.default.all(promises);
73
56
  }
74
57
  }, {
@@ -91,20 +74,18 @@ var _config = _interopRequireDefault(require("./config"));
91
74
  if (key === false) {
92
75
  return _promise.default.resolve();
93
76
  }
94
-
95
77
  return _promise.default.resolve(key || ctx.webex.internal.encryption.kms.createUnboundKeys({
96
78
  count: 1
97
79
  })).then(function (keys) {
98
80
  var k = (0, _isArray2.default)(keys) ? keys[0] : keys;
99
-
100
81
  if (team.kmsMessage && team.kmsMessage.keyUris && !team.kmsMessage.keyUris.includes(k.uri)) {
101
82
  team.kmsMessage.keyUris.push(k.uri);
102
83
  }
103
-
104
84
  return _promise.default.all([ctx.transform('encryptPropDisplayName', k, team), ctx.transform('encryptPropSummary', k, team)]).then(function () {
105
- team.encryptionKeyUrl = k.uri || k; // we only want to set the defaultActivityEncryptionKeyUrl if we've
106
- // bound a new key
85
+ team.encryptionKeyUrl = k.uri || k;
107
86
 
87
+ // we only want to set the defaultActivityEncryptionKeyUrl if we've
88
+ // bound a new key
108
89
  if (!key) {
109
90
  team.defaultActivityEncryptionKeyUrl = team.defaultActivityEncryptionKeyUrl || k.uri || k;
110
91
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["registerInternalPlugin","Team","payloadTransformer","predicates","name","direction","test","ctx","optionsOrResponse","resolve","extract","activity","object","transforms","fn","key","team","promises","conversations","items","push","all","map","item","transform","usableKey","encryptionKeyUrl","teamRoomStatus","keyUrl","activityEvent","webex","internal","encryption","kms","createUnboundKeys","count","then","keys","k","kmsMessage","keyUris","includes","uri","defaultActivityEncryptionKeyUrl","teamMembers","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-conversation';\nimport '@webex/internal-plugin-user';\nimport '@webex/internal-plugin-encryption';\nimport {isArray, has, get} from 'lodash';\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport Team from './team';\nimport config from './config';\n\nregisterInternalPlugin('team', Team, {\n payloadTransformer: {\n predicates: [\n {\n name: 'decryptTeamRoomStatus',\n direction: 'inbound',\n test(ctx, optionsOrResponse) {\n return Promise.resolve(has(optionsOrResponse, 'activity.object.activityEvent') && get(optionsOrResponse, 'activity.object.objectType') === 'teamRoomStatus');\n },\n extract(optionsOrResponse) {\n return Promise.resolve(optionsOrResponse.activity.object);\n }\n }\n ],\n transforms: [\n {\n name: 'decryptTeam',\n direction: 'inbound',\n fn(ctx, key, team) {\n const promises = [];\n\n if (team.conversations.items) {\n promises.push(Promise.all(team.conversations.items.map((item) => ctx.transform('decryptObject', null, item))));\n }\n\n const usableKey = team.encryptionKeyUrl || key;\n\n if (usableKey) {\n promises.push(ctx.transform('decryptPropDisplayName', usableKey, team));\n promises.push(ctx.transform('decryptPropSummary', usableKey, team));\n }\n\n return Promise.all(promises);\n }\n },\n {\n name: 'decryptTeamRoomStatus',\n direction: 'inbound',\n fn(ctx, teamRoomStatus) {\n const keyUrl = get(teamRoomStatus, 'activityEvent.encryptionKeyUrl');\n\n return ctx.transform('decryptObject', keyUrl, teamRoomStatus.activityEvent);\n }\n },\n {\n name: 'decryptPropSummary',\n direction: 'inbound',\n fn(ctx, key, team) {\n return ctx.transform('decryptTextProp', 'summary', key, team);\n }\n },\n {\n name: 'encryptTeam',\n direction: 'outbound',\n fn(ctx, key, team) {\n if (key === false) {\n return Promise.resolve();\n }\n\n return Promise.resolve(key || ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1}))\n .then((keys) => {\n const k = isArray(keys) ? keys[0] : keys;\n\n if (team.kmsMessage && team.kmsMessage.keyUris && !team.kmsMessage.keyUris.includes(k.uri)) {\n team.kmsMessage.keyUris.push(k.uri);\n }\n\n return Promise.all([\n ctx.transform('encryptPropDisplayName', k, team),\n ctx.transform('encryptPropSummary', k, team)\n ])\n .then(() => {\n team.encryptionKeyUrl = k.uri || k;\n\n // we only want to set the defaultActivityEncryptionKeyUrl if we've\n // bound a new key\n if (!key) {\n team.defaultActivityEncryptionKeyUrl = team.defaultActivityEncryptionKeyUrl || k.uri || k;\n }\n });\n });\n }\n },\n {\n name: 'encryptPropSummary',\n direction: 'outbound',\n fn(ctx, key, team) {\n return ctx.transform('encryptTextProp', 'summary', key, team);\n }\n },\n {\n name: 'normalizeTeam',\n fn(ctx, team) {\n team.conversations = team.conversations || {};\n team.conversations.items = team.conversations.items || [];\n team.teamMembers = team.teamMembers || {};\n team.teamMembers.items = team.teamMembers.items || [];\n\n return Promise.all([\n Promise.all(team.conversations.items.map((item) => ctx.transform('normalizeObject', item))),\n Promise.all(team.teamMembers.items.map((item) => ctx.transform('normalizeObject', item)))\n ]);\n }\n }\n ]\n },\n config\n});\n\nexport {default} from './team';\n"],"mappings":"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"}
1
+ {"version":3,"names":["registerInternalPlugin","Team","payloadTransformer","predicates","name","direction","test","ctx","optionsOrResponse","resolve","extract","activity","object","transforms","fn","key","team","promises","conversations","items","push","all","map","item","transform","usableKey","encryptionKeyUrl","teamRoomStatus","keyUrl","activityEvent","webex","internal","encryption","kms","createUnboundKeys","count","then","keys","k","kmsMessage","keyUris","includes","uri","defaultActivityEncryptionKeyUrl","teamMembers","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-conversation';\nimport '@webex/internal-plugin-user';\nimport '@webex/internal-plugin-encryption';\nimport {isArray, has, get} from 'lodash';\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport Team from './team';\nimport config from './config';\n\nregisterInternalPlugin('team', Team, {\n payloadTransformer: {\n predicates: [\n {\n name: 'decryptTeamRoomStatus',\n direction: 'inbound',\n test(ctx, optionsOrResponse) {\n return Promise.resolve(\n has(optionsOrResponse, 'activity.object.activityEvent') &&\n get(optionsOrResponse, 'activity.object.objectType') === 'teamRoomStatus'\n );\n },\n extract(optionsOrResponse) {\n return Promise.resolve(optionsOrResponse.activity.object);\n },\n },\n ],\n transforms: [\n {\n name: 'decryptTeam',\n direction: 'inbound',\n fn(ctx, key, team) {\n const promises = [];\n\n if (team.conversations.items) {\n promises.push(\n Promise.all(\n team.conversations.items.map((item) => ctx.transform('decryptObject', null, item))\n )\n );\n }\n\n const usableKey = team.encryptionKeyUrl || key;\n\n if (usableKey) {\n promises.push(ctx.transform('decryptPropDisplayName', usableKey, team));\n promises.push(ctx.transform('decryptPropSummary', usableKey, team));\n }\n\n return Promise.all(promises);\n },\n },\n {\n name: 'decryptTeamRoomStatus',\n direction: 'inbound',\n fn(ctx, teamRoomStatus) {\n const keyUrl = get(teamRoomStatus, 'activityEvent.encryptionKeyUrl');\n\n return ctx.transform('decryptObject', keyUrl, teamRoomStatus.activityEvent);\n },\n },\n {\n name: 'decryptPropSummary',\n direction: 'inbound',\n fn(ctx, key, team) {\n return ctx.transform('decryptTextProp', 'summary', key, team);\n },\n },\n {\n name: 'encryptTeam',\n direction: 'outbound',\n fn(ctx, key, team) {\n if (key === false) {\n return Promise.resolve();\n }\n\n return Promise.resolve(\n key || ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1})\n ).then((keys) => {\n const k = isArray(keys) ? keys[0] : keys;\n\n if (\n team.kmsMessage &&\n team.kmsMessage.keyUris &&\n !team.kmsMessage.keyUris.includes(k.uri)\n ) {\n team.kmsMessage.keyUris.push(k.uri);\n }\n\n return Promise.all([\n ctx.transform('encryptPropDisplayName', k, team),\n ctx.transform('encryptPropSummary', k, team),\n ]).then(() => {\n team.encryptionKeyUrl = k.uri || k;\n\n // we only want to set the defaultActivityEncryptionKeyUrl if we've\n // bound a new key\n if (!key) {\n team.defaultActivityEncryptionKeyUrl =\n team.defaultActivityEncryptionKeyUrl || k.uri || k;\n }\n });\n });\n },\n },\n {\n name: 'encryptPropSummary',\n direction: 'outbound',\n fn(ctx, key, team) {\n return ctx.transform('encryptTextProp', 'summary', key, team);\n },\n },\n {\n name: 'normalizeTeam',\n fn(ctx, team) {\n team.conversations = team.conversations || {};\n team.conversations.items = team.conversations.items || [];\n team.teamMembers = team.teamMembers || {};\n team.teamMembers.items = team.teamMembers.items || [];\n\n return Promise.all([\n Promise.all(\n team.conversations.items.map((item) => ctx.transform('normalizeObject', item))\n ),\n Promise.all(\n team.teamMembers.items.map((item) => ctx.transform('normalizeObject', item))\n ),\n ]);\n },\n },\n ],\n },\n config,\n});\n\nexport {default} from './team';\n"],"mappings":"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"}