@webex/plugin-memberships 3.10.0-next.1 → 3.10.0-next.11

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/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["require","_webexCore","_memberships","_interopRequireDefault","registerPlugin","Memberships","_default","exports","default"],"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-mercury';\n\nimport {registerPlugin} from '@webex/webex-core';\n\nimport Memberships from './memberships';\n\nregisterPlugin('memberships', Memberships);\n\nexport default Memberships;\n"],"mappings":";;;;;;;;AAIAA,OAAA;AACAA,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AATA;AACA;AACA;;AASA,IAAAI,yBAAc,EAAC,aAAa,EAAEC,oBAAW,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE5BH,oBAAW"}
1
+ {"version":3,"names":["require","_webexCore","_memberships","_interopRequireDefault","registerPlugin","Memberships","_default","exports","default"],"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-mercury';\n\nimport {registerPlugin} from '@webex/webex-core';\n\nimport Memberships from './memberships';\n\nregisterPlugin('memberships', Memberships);\n\nexport default Memberships;\n"],"mappings":";;;;;;;;AAIAA,OAAA;AACAA,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AATA;AACA;AACA;;AASA,IAAAI,yBAAc,EAAC,aAAa,EAAEC,oBAAW,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE5BH,oBAAW","ignoreList":[]}
@@ -280,7 +280,6 @@ var Memberships = _webexCore.WebexPlugin.extend({
280
280
  roomType: roomType
281
281
  // created is not available in the conversations payload
282
282
  };
283
-
284
283
  if (isRoomHidden && participantInfo.personId === myId) {
285
284
  participantInfo.isRoomHidden = isRoomHidden;
286
285
  }
@@ -598,7 +597,7 @@ var Memberships = _webexCore.WebexPlugin.extend({
598
597
  return null;
599
598
  }
600
599
  },
601
- version: "3.10.0-next.1"
600
+ version: "3.10.0-next.11"
602
601
  });
603
602
  var _default = exports.default = Memberships;
604
603
  //# sourceMappingURL=memberships.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_common","require","_webexCore","_lodash","debug","Memberships","WebexPlugin","extend","listen","_this","createEventEnvelope","webex","SDK_EVENT","EXTERNAL","RESOURCE","MEMBERSHIPS","then","envelope","eventEnvelope","internal","mercury","connect","listenTo","INTERNAL","WEBEX_ACTIVITY","event","onWebexApiEvent","create","membership","request","method","service","resource","body","res","get","id","concat","items","list","options","_this2","qs","Page","listWithReadStatus","_this3","deconstructedId","deconstructHydraId","roomId","conversation","cluster","ensureMyIdIsAvailable","services","waitForCatalog","participantAckFilter","activitiesLimit","resp","roomUUID","buildHydraRoomId","participants","lastReadInfo","roomType","getHydraRoomType","tags","myId","me","isRoomHidden","includes","ACTIVITY_TAG","HIDDEN","i","length","participant","participantInfo","buildHydraMembershipId","entryUUID","personId","buildHydraPersonId","personEmail","entryEmailAddress","entryEmail","personDisplayName","displayName","personOrgId","buildHydraOrgId","orgId","isMonitor","roomProperties","lastSeenId","buildHydraMessageId","lastSeenActivityUUID","lastSeenDate","lastSeenActivityDate","isModerator","push","_promise","default","resolve","e","reject","remove","statusCode","undefined","update","updateLastSeen","message","_this4","activity","acknowledge","ack","object","actor","target","emailAddress","created","published","_this5","data","verb","ACTIVITY_VERB","CREATE","membershipCreatedEventDataArray","map","output","cloneDeep","getMembershipEvent","EVENT_TYPE","CREATED","forEach","_stringify","trigger","ADD","membershipCreatedEventData","LEAVE","membershipDeletedEventData","DELETED","ADD_MODERATOR","REMOVE_MODERATOR","HIDE","membershipUpdatedEventData","UPDATED","ACKNOWLEDGE","membershipSeenEventData","SEEN","sdkEvent","getHydraClusterString","url","member","space","actorId","SPACE_TYPE","DIRECT","ACTIVITY_FIELD","ACTOR","TARGET","OBJECT","logger","error","version","_default","exports"],"sources":["memberships.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {\n SDK_EVENT,\n createEventEnvelope,\n ensureMyIdIsAvailable,\n buildHydraMembershipId,\n buildHydraMessageId,\n buildHydraOrgId,\n buildHydraPersonId,\n buildHydraRoomId,\n getHydraClusterString,\n getHydraRoomType,\n deconstructHydraId,\n} from '@webex/common';\nimport {WebexPlugin, Page} from '@webex/webex-core';\nimport {cloneDeep} from 'lodash';\n\nconst debug = require('debug')('memberships');\n\n/**\n * @typedef {Object} MembershipObject\n * @property {string} id - Unique identifier for the membership\n * @property {string} roomId - The room ID\n * @property {string} personId - The person ID\n * @property {email} personEmail - The email address of the person / room member\n * @property {boolean} isModerator - Indicates whether the specified person should be a room moderator\n * @property {boolean} isMonitor - Indicates whether the specified member is a room monitor\n * @property {isoDate} created - The date and time that this membership was created\n */\n\n/**\n * Memberships represent a person's relationship to a room. Use this API to list\n * members of any room that you're in or create memberships to invite someone\n * to a room. Memberships can also be updated to make someone a moderator\n * or deleted to remove them from the room.\n * @class\n * @name Memberships\n */\nconst Memberships = WebexPlugin.extend({\n /**\n * Register to listen for incoming membership events\n * This is an alternate approach to registering for membership webhooks.\n * The events passed to any registered handlers will be similar to the webhook JSON,\n * but will omit webhook specific fields such as name, secret, url, etc.\n * To utilize the `listen()` method, the authorization token used\n * will need to have `spark:all` and `spark:kms` scopes enabled.\n * Note that by configuring your application to enable or disable `spark:all`\n * via its configuration page will also enable or disable `spark:kms`.\n * See the <a href=\"https://webex.github.io/webex-js-sdk/samples/browser-socket/\">Sample App</a>\n * for more details.\n * @instance\n * @memberof Memberships\n * @returns {Promise}\n * @example\n * webex.memberships.listen()\n * .then(() => {\n * console.log('listening to membership events');\n * webex.memberships.on('created', (event) => {\n * console.log(`Got a membership:created event:\\n${event}`);\n * }\n * webex.memberships.on('updated', (event) => {\n * console.log(`Got a membership:updated event:\\n${event}`);\n * }\n * webex.memberships.on('seen', (event) => {\n * // This represents a \"read receipt\" and will include a\n * // lastSeenId for the message this member has just \"read\",\n * // There is currently no equivalent webhook for this event.\n * console.log(`Got a membership:seen event:\\n${event}`);\n * }\n * webex.memberships.on('deleted', (event) => => {\n * console.log(`Got a membership:created event:\\n${event}`);\n * }\n * })\n * .catch((e) => console.error(`Unable to register for membership events: ${e}`));\n * // App logic goes here...\n * // Later when it is time to clean up\n * webex.memberships.stopListening();\n * webex.memberships.off('created');\n * webex.memberships.off('updated');\n * webex.memberships.off('seen');\n * webex.memberships.off('deleted');\n\n */\n listen() {\n // Create a common envelope that we will wrap all events in\n return createEventEnvelope(this.webex, SDK_EVENT.EXTERNAL.RESOURCE.MEMBERSHIPS).then(\n (envelope) => {\n this.eventEnvelope = envelope;\n\n // Register to listen to events\n return this.webex.internal.mercury.connect().then(() => {\n this.listenTo(this.webex.internal.mercury, SDK_EVENT.INTERNAL.WEBEX_ACTIVITY, (event) =>\n this.onWebexApiEvent(event)\n );\n });\n }\n );\n },\n\n /**\n * Adds a person to a room. The person can be added by ID (`personId`) or by\n * Email Address (`personEmail`). The person can be optionally added to the room\n * as a moderator.\n * @instance\n * @memberof Memberships\n * @param {MembershipObject} membership\n * @returns {Promise<MembershipObject>}\n * @example\n * webex.rooms.create({title: 'Create Membership Example'})\n * .then(function(room) {\n * return webex.memberships.create({\n * personEmail: 'alice@example.com',\n * roomId: room.id\n * });\n * })\n * .then(function(membership) {\n * var assert = require('assert');\n * assert(membership.id);\n * assert(membership.roomId);\n * assert(membership.personId);\n * assert(membership.personEmail);\n * assert('isModerator' in membership);\n * assert('isMonitor' in membership);\n * assert(membership.created);\n * return 'success';\n * });\n * // => success\n */\n create(membership) {\n return this.request({\n method: 'POST',\n service: 'hydra',\n resource: 'memberships',\n body: membership,\n }).then((res) => res.body);\n },\n\n /**\n * Returns a single membership.\n * @instance\n * @memberof Memberships\n * @param {MembershipObject|uuid} membership\n * @returns {Promise<MembershipObject>}\n * @example\n * var membership;\n * webex.rooms.create({title: 'Get Membership Example'})\n * .then(function(room) {\n * return webex.memberships.create({\n * personEmail: 'alice@example.com',\n * roomId: room.id\n * });\n * })\n * .then(function(m) {\n * membership = m;\n * return webex.memberships.get(m.id);\n * })\n * .then(function(m) {\n * var assert = require('assert');\n * assert.deepEqual(m, membership);\n * return 'success';\n * });\n * // => success\n */\n get(membership) {\n const id = membership.id || membership;\n\n return this.request({\n service: 'hydra',\n resource: `memberships/${id}`,\n }).then((res) => res.body.items || res.body);\n },\n\n /**\n * Returns a list of memberships. In most cases the results will only contain\n * rooms that the authenticated user is a member of. You can filter the results\n * by room to list people in a room or by person to find rooms that a\n * specific person is a member of.\n * @instance\n * @memberof Memberships\n * @param {Object} options\n * @param {string} options.personId\n * @param {string} options.personEmail\n * @param {string} options.roomId\n * @param {number} options.max\n * @returns {Promise<Page<MembershipObject>>}\n * @example\n * var room;\n * webex.rooms.create({title: 'List Membership Example'})\n * .then(function(r) {\n * room = r;\n * return webex.memberships.create({\n * personEmail: 'alice@example.com',\n * roomId: room.id\n * });\n * })\n * .then(function() {\n * return webex.memberships.list({roomId: room.id});\n * })\n * .then(function(memberships) {\n * var assert = require('assert');\n * assert.equal(memberships.length, 2);\n * for (var i = 0; i < memberships.length; i+= 1) {\n * assert.equal(memberships.items[i].roomId, room.id);\n * }\n * return 'success';\n * });\n * // => success\n */\n list(options) {\n return this.request({\n service: 'hydra',\n resource: 'memberships',\n qs: options,\n }).then((res) => new Page(res, this.webex));\n },\n\n /**\n * Returns a list of memberships with details about the lastSeenId for each\n * user, allowing a client to indicate \"read status\" in a space GUI\n *\n * This differs from the memberships.list() function in the following ways:\n * -- it accepts only a room or object with a valid roomId\n * -- no other options, eg: max, are considered\n * -- results are not paginated\n * -- memberships in the return do not include the\n * \"created\", \"isRoomHidden\", fields\n * -- memberships in the return do include the new\n * \"lastSeenId\", and \"lastSeenDate\" fields\n * these will not exist if the member has never \"seen\" the space\n *\n * In general this function should be used only when the\n * client needs to access read status info.\n *\n * This function may be deprecated when this info is provided in the membership\n * objects returned in the list function.\n *\n *\n * @instance\n * @memberof Memberships\n * @param {Object} options\n * @param {string} options.roomId\n * @returns {Promise<MembershipObjectList>}\n */\n listWithReadStatus(options) {\n const deconstructedId = deconstructHydraId(options.roomId);\n const conversation = {\n id: deconstructedId.id,\n cluster: deconstructedId.cluster,\n };\n\n return ensureMyIdIsAvailable(this.webex).then(() =>\n this.webex.internal.services.waitForCatalog('postauth').then(() =>\n this.webex.internal.conversation\n .get(conversation, {\n participantAckFilter: 'all', // show lastAck info for each participant\n activitiesLimit: 0, // don't send the whole history of activity\n })\n .then((resp) => {\n try {\n // We keep track of the last read message by each user\n const roomUUID = resp.id;\n const roomId = buildHydraRoomId(roomUUID, conversation.cluster);\n const participants = resp.participants.items;\n const lastReadInfo = {items: []};\n const roomType = getHydraRoomType(resp.tags);\n const myId = this.webex.internal.me.id;\n const isRoomHidden = resp.tags.includes(SDK_EVENT.INTERNAL.ACTIVITY_TAG.HIDDEN);\n\n for (let i = 0; i < participants.length; i += 1) {\n const participant = participants[i];\n const participantInfo = {\n id: buildHydraMembershipId(participant.entryUUID, roomUUID, conversation.cluster),\n roomId,\n personId: buildHydraPersonId(participant.entryUUID),\n personEmail: participant.entryEmailAddress || participant.entryEmail,\n personDisplayName: participant.displayName,\n personOrgId: buildHydraOrgId(participant.orgId, conversation.cluster),\n isMonitor: false, // deprecated, but included for completeness\n roomType,\n // created is not available in the conversations payload\n };\n\n if (isRoomHidden && participantInfo.personId === myId) {\n participantInfo.isRoomHidden = isRoomHidden;\n }\n\n if ('roomProperties' in participant) {\n if ('lastSeenActivityDate' in participant.roomProperties) {\n participantInfo.lastSeenId = buildHydraMessageId(\n participant.roomProperties.lastSeenActivityUUID,\n conversation.cluster\n );\n participantInfo.lastSeenDate = participant.roomProperties.lastSeenActivityDate;\n }\n if ('isModerator' in participant.roomProperties) {\n participantInfo.isModerator = participant.roomProperties.isModerator;\n }\n }\n\n lastReadInfo.items.push(participantInfo);\n }\n\n return Promise.resolve(lastReadInfo);\n } catch (e) {\n return Promise.reject(e);\n }\n })\n )\n );\n },\n\n /**\n * Deletes a single membership.\n * @instance\n * @memberof Memberships\n * @param {MembershipObject|uuid} membership\n * @returns {Promise}\n * @example\n * var membership, room;\n * webex.rooms.create({title: 'Remove Membership Example'})\n * .then(function(r) {\n * room = r;\n * return webex.memberships.create({\n * personEmail: 'alice@example.com',\n * roomId: room.id\n * });\n * })\n * .then(function(m) {\n * membership = m;\n * return webex.memberships.list({roomId: room.id});\n * })\n * .then(function(memberships) {\n * var assert = require('assert');\n * assert.equal(memberships.length, 2);\n * return webex.memberships.remove(membership);\n * })\n * .then(function() {\n * return webex.memberships.list({roomId: room.id});\n * })\n * .then(function(memberships) {\n * var assert = require('assert');\n * assert.equal(memberships.length, 1);\n * return 'success';\n * });\n * // => success\n */\n remove(membership) {\n const id = membership.id || membership;\n\n return this.request({\n method: 'DELETE',\n service: 'hydra',\n resource: `memberships/${id}`,\n }).then((res) => {\n // Firefox has some issues with 204s and/or DELETE. This should move to\n // http-core\n if (res.statusCode === 204) {\n return undefined;\n }\n\n return res.body;\n });\n },\n\n /**\n * Used to update a single membership's properties\n * @instance\n * @memberof Memberships\n * @param {MembershipObject|uuid} membership\n * @returns {Promise<MembershipObject>}\n * @example\n * // Change membership to make user a moderator\n * var membership, room;\n * webex.rooms.create({title: 'Memberships Example'})\n * .then(function(r) {\n * room = r;\n * return webex.memberships.list({roomId: room.id});\n * })\n * .then(function(memberships) {\n * membership = memberships.items[0];\n * var assert = require('assert');\n * assert.equal(membership.isModerator, false);\n * membership.isModerator = true;\n * return webex.memberships.update(membership);\n * })\n * .then(function() {\n * return webex.memberships.get(membership.id);\n * })\n * .then(function(membership) {\n * var assert = require('assert');\n * assert.equal(membership.isModerator, true);\n * return 'success';\n * });\n * // => success\n * @example\n * // Hide a one on one space\n * var assert = require('assert');\n * var membership, myId;\n * webex.people.get('me')\n * .then(function(person) {\n * myId = personId;\n * return webex.messages.create({\n * toPersonEmail: 'otherUser@acme.com',\n * text: 'This message will create a 1-1 space'\n * });\n * })\n * then(function(message) {\n * return webex.memberships.list({\n * roomId: message.roomId,\n * personId: myId\n * });\n * })\n * .then((memberships) => {\n * membership = memberships.items[0];\n * assert.equal(membership.isRoomHidden, false);\n * membership.isRoomHidden = true;\n * // This will generate a memberships:updated event\n * // that will only be seen by this user\n * return webex.memberships.update(membership);\n * })\n * .then(function(membership) {\n * assert.equal(membership.isRoomHidden, true);\n * return 'success';\n * });\n * // => success\n */\n update(membership) {\n const id = membership.id || membership;\n\n return this.request({\n method: 'PUT',\n service: 'hydra',\n resource: `memberships/${id}`,\n body: membership,\n }).then((res) => res.body);\n },\n\n /**\n * Updates the lastSeenId attribute of a membership.\n * Call this method to send a \"read receipt\" for a given message.\n * This will update the lastSeenId for the user's membership in\n * space where the message is.\n * @instance\n * @memberof Memberships\n * @param {string} message\n * @returns {Promise<MembershipObject>}\n */\n updateLastSeen(message) {\n const activity = {\n id: deconstructHydraId(message.id).id,\n };\n const deconstructedId = deconstructHydraId(message.roomId);\n const conversation = {\n id: deconstructedId.id,\n cluster: deconstructedId.cluster,\n };\n\n return this.webex.internal.services.waitForCatalog('postauth').then(() =>\n this.webex.internal.conversation.acknowledge(conversation, activity).then((ack) => ({\n lastSeenId: buildHydraMessageId(ack.object.id, conversation.cluster),\n id: buildHydraMembershipId(ack.actor.entryUUID, ack.target.id, conversation.cluster),\n personId: buildHydraPersonId(ack.actor.entryUUID, conversation.cluster),\n personEmail: ack.actor.emailAddress || ack.actor.entryEmail,\n personDisplayName: ack.actor.displayName,\n personOrgId: buildHydraOrgId(ack.actor.orgId, conversation.cluster),\n roomId: buildHydraRoomId(ack.target.id, conversation.cluster),\n roomType: getHydraRoomType(ack.target.tags),\n isRoomHidden: false, // any activity unhides a space.\n isMonitor: false, // deprecated, returned for back compat\n created: ack.published,\n }))\n );\n },\n\n /**\n * This function is called when an internal membership events fires,\n * if the user registered for these events with the public listen() method.\n * External users of the SDK should not call this function\n * @private\n * @memberof Memberships\n * @param {Object} event\n * @returns {void}\n */\n onWebexApiEvent(event) {\n const {activity} = event.data;\n\n /* eslint-disable no-case-declarations */\n switch (activity.verb) {\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.CREATE:\n const membershipCreatedEventDataArray = activity.object.participants.items.map(\n (participant) => {\n const output = cloneDeep(activity);\n\n output.target = cloneDeep(activity.object);\n output.object = cloneDeep(participant);\n\n return this.getMembershipEvent(output, SDK_EVENT.EXTERNAL.EVENT_TYPE.CREATED);\n }\n );\n\n membershipCreatedEventDataArray.forEach((data) => {\n if (data) {\n debug(`membership \"created\" payload: ${JSON.stringify(data)}`);\n this.trigger(SDK_EVENT.EXTERNAL.EVENT_TYPE.CREATED, data);\n }\n });\n break;\n\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.ADD:\n const membershipCreatedEventData = this.getMembershipEvent(\n activity,\n SDK_EVENT.EXTERNAL.EVENT_TYPE.CREATED\n );\n\n if (membershipCreatedEventData) {\n debug(`membership \"created\" payload: \\\n ${JSON.stringify(membershipCreatedEventData)}`);\n this.trigger(SDK_EVENT.EXTERNAL.EVENT_TYPE.CREATED, membershipCreatedEventData);\n }\n break;\n\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.LEAVE:\n const membershipDeletedEventData = this.getMembershipEvent(\n activity,\n SDK_EVENT.EXTERNAL.EVENT_TYPE.DELETED\n );\n\n if (membershipDeletedEventData) {\n debug(`membership \"deleted\" payload: \\\n ${JSON.stringify(membershipDeletedEventData)}`);\n this.trigger(SDK_EVENT.EXTERNAL.EVENT_TYPE.DELETED, membershipDeletedEventData);\n }\n break;\n\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.ADD_MODERATOR:\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.REMOVE_MODERATOR:\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.HIDE:\n const membershipUpdatedEventData = this.getMembershipEvent(\n activity,\n SDK_EVENT.EXTERNAL.EVENT_TYPE.UPDATED\n );\n\n if (membershipUpdatedEventData) {\n debug(`membership \"updated\" payload: \\\n ${JSON.stringify(membershipUpdatedEventData)}`);\n this.trigger(SDK_EVENT.EXTERNAL.EVENT_TYPE.UPDATED, membershipUpdatedEventData);\n }\n break;\n\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.ACKNOWLEDGE:\n const membershipSeenEventData = this.getMembershipEvent(\n activity,\n SDK_EVENT.EXTERNAL.EVENT_TYPE.SEEN\n );\n\n if (membershipSeenEventData) {\n debug(`membership \"updated\" payload: \\\n ${JSON.stringify(membershipSeenEventData)}`);\n this.trigger(SDK_EVENT.EXTERNAL.EVENT_TYPE.SEEN, membershipSeenEventData);\n }\n break;\n\n default:\n break;\n }\n },\n\n /**\n * Constructs the data object for an event on the memberships resource,\n * adhering to Hydra's Webhook data structure memberships.\n * External users of the SDK should not call this function\n * @private\n * @memberof Memberships\n * @param {Object} activity from mercury\n * @param {Object} event type of \"webhook\" event\n * @returns {Object} constructed event\n */\n getMembershipEvent(activity, event) {\n try {\n const sdkEvent = cloneDeep(this.eventEnvelope);\n const cluster =\n activity.verb !== SDK_EVENT.INTERNAL.ACTIVITY_VERB.HIDE\n ? getHydraClusterString(this.webex, activity.target.url)\n : getHydraClusterString(this.webex, activity.url);\n let member;\n let space;\n\n sdkEvent.event = event;\n sdkEvent.data.created = activity.published;\n sdkEvent.actorId = buildHydraPersonId(activity.actor.entryUUID, cluster);\n if (activity.verb !== SDK_EVENT.INTERNAL.ACTIVITY_VERB.HIDE) {\n sdkEvent.data.roomId = buildHydraRoomId(activity.target.id, cluster);\n sdkEvent.data.roomType = getHydraRoomType(activity.target.tags);\n sdkEvent.data.isRoomHidden = false; // any activity unhides a space.\n } else {\n sdkEvent.data.roomId = buildHydraRoomId(activity.object.id, cluster);\n sdkEvent.data.roomType = SDK_EVENT.EXTERNAL.SPACE_TYPE.DIRECT;\n // currently hidden attribute is only set on 1-1\n sdkEvent.data.isRoomHidden = true;\n }\n if (activity.verb !== SDK_EVENT.INTERNAL.ACTIVITY_VERB.ACKNOWLEDGE) {\n if (activity.object.roomProperties && activity.object.roomProperties.isModerator) {\n sdkEvent.data.isModerator = true;\n } else {\n sdkEvent.data.isModerator = false;\n }\n }\n // This is deprecated but still sent in the webhooks\n // We won't send it for our new SDK events\n // sdkEvent.data.isMonitor = false;\n\n if (activity.verb === SDK_EVENT.INTERNAL.ACTIVITY_VERB.ACKNOWLEDGE) {\n // For a read receipt the person is the \"actor\" or the one who did the reading\n member = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.ACTOR;\n // The space with the read message is the \"target\"\n space = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.TARGET;\n // And the \"object\" is the message that was last seen\n sdkEvent.data.lastSeenId = buildHydraMessageId(activity.object.id, cluster);\n } else if (activity.verb === SDK_EVENT.INTERNAL.ACTIVITY_VERB.HIDE) {\n // For a hide activity the person is also the \"actor\"\n member = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.ACTOR;\n // But the space is now the \"object\"\n space = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.OBJECT;\n } else {\n // For most memberships events the person is the 'object\"\n member = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.OBJECT;\n // and the space is the \"target\"\n space = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.TARGET;\n }\n\n sdkEvent.data.id = buildHydraMembershipId(\n activity[member].entryUUID,\n activity[space].id,\n cluster\n );\n sdkEvent.data.personId = buildHydraPersonId(activity[member].entryUUID, cluster);\n sdkEvent.data.personEmail = activity[member].emailAddress || activity[member].entryEmail;\n sdkEvent.data.personDisplayName = activity[member].displayName;\n sdkEvent.data.personOrgId = buildHydraOrgId(activity[member].orgId, cluster);\n\n return sdkEvent;\n } catch (e) {\n this.webex.logger.error(`Unable to generate SDK event from mercury \\\n'socket activity for memberships:${event} event: ${e.message}`);\n\n return null;\n }\n },\n});\n\nexport default Memberships;\n"],"mappings":";;;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAaA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAlBA;AACA;AACA;;AAkBA,IAAMG,KAAK,GAAGH,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMI,WAAW,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACrC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAEEC,MAAM,WAAAA,OAAA,EAAG;IAAA,IAAAC,KAAA;IACP;IACA,OAAO,IAAAC,2BAAmB,EAAC,IAAI,CAACC,KAAK,EAAEC,iBAAS,CAACC,QAAQ,CAACC,QAAQ,CAACC,WAAW,CAAC,CAACC,IAAI,CAClF,UAACC,QAAQ,EAAK;MACZR,KAAI,CAACS,aAAa,GAAGD,QAAQ;;MAE7B;MACA,OAAOR,KAAI,CAACE,KAAK,CAACQ,QAAQ,CAACC,OAAO,CAACC,OAAO,CAAC,CAAC,CAACL,IAAI,CAAC,YAAM;QACtDP,KAAI,CAACa,QAAQ,CAACb,KAAI,CAACE,KAAK,CAACQ,QAAQ,CAACC,OAAO,EAAER,iBAAS,CAACW,QAAQ,CAACC,cAAc,EAAE,UAACC,KAAK;UAAA,OAClFhB,KAAI,CAACiB,eAAe,CAACD,KAAK,CAAC;QAAA,CAC7B,CAAC;MACH,CAAC,CAAC;IACJ,CACF,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEE,MAAM,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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEE,MAAM,WAAAA,OAACxE,UAAU,EAAE;IACjB,IAAMQ,EAAE,GAAGR,UAAU,CAACQ,EAAE,IAAIR,UAAU;IAEtC,OAAO,IAAI,CAACC,OAAO,CAAC;MAClBC,MAAM,EAAE,QAAQ;MAChBC,OAAO,EAAE,OAAO;MAChBC,QAAQ,iBAAAK,MAAA,CAAiBD,EAAE;IAC7B,CAAC,CAAC,CAACpB,IAAI,CAAC,UAACkB,GAAG,EAAK;MACf;MACA;MACA,IAAIA,GAAG,CAACmE,UAAU,KAAK,GAAG,EAAE;QAC1B,OAAOC,SAAS;MAClB;MAEA,OAAOpE,GAAG,CAACD,IAAI;IACjB,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEsE,MAAM,WAAAA,OAAC3E,UAAU,EAAE;IACjB,IAAMQ,EAAE,GAAGR,UAAU,CAACQ,EAAE,IAAIR,UAAU;IAEtC,OAAO,IAAI,CAACC,OAAO,CAAC;MAClBC,MAAM,EAAE,KAAK;MACbC,OAAO,EAAE,OAAO;MAChBC,QAAQ,iBAAAK,MAAA,CAAiBD,EAAE,CAAE;MAC7BH,IAAI,EAAEL;IACR,CAAC,CAAC,CAACZ,IAAI,CAAC,UAACkB,GAAG;MAAA,OAAKA,GAAG,CAACD,IAAI;IAAA,EAAC;EAC5B,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEuE,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"}
1
+ {"version":3,"names":["_common","require","_webexCore","_lodash","debug","Memberships","WebexPlugin","extend","listen","_this","createEventEnvelope","webex","SDK_EVENT","EXTERNAL","RESOURCE","MEMBERSHIPS","then","envelope","eventEnvelope","internal","mercury","connect","listenTo","INTERNAL","WEBEX_ACTIVITY","event","onWebexApiEvent","create","membership","request","method","service","resource","body","res","get","id","concat","items","list","options","_this2","qs","Page","listWithReadStatus","_this3","deconstructedId","deconstructHydraId","roomId","conversation","cluster","ensureMyIdIsAvailable","services","waitForCatalog","participantAckFilter","activitiesLimit","resp","roomUUID","buildHydraRoomId","participants","lastReadInfo","roomType","getHydraRoomType","tags","myId","me","isRoomHidden","includes","ACTIVITY_TAG","HIDDEN","i","length","participant","participantInfo","buildHydraMembershipId","entryUUID","personId","buildHydraPersonId","personEmail","entryEmailAddress","entryEmail","personDisplayName","displayName","personOrgId","buildHydraOrgId","orgId","isMonitor","roomProperties","lastSeenId","buildHydraMessageId","lastSeenActivityUUID","lastSeenDate","lastSeenActivityDate","isModerator","push","_promise","default","resolve","e","reject","remove","statusCode","undefined","update","updateLastSeen","message","_this4","activity","acknowledge","ack","object","actor","target","emailAddress","created","published","_this5","data","verb","ACTIVITY_VERB","CREATE","membershipCreatedEventDataArray","map","output","cloneDeep","getMembershipEvent","EVENT_TYPE","CREATED","forEach","_stringify","trigger","ADD","membershipCreatedEventData","LEAVE","membershipDeletedEventData","DELETED","ADD_MODERATOR","REMOVE_MODERATOR","HIDE","membershipUpdatedEventData","UPDATED","ACKNOWLEDGE","membershipSeenEventData","SEEN","sdkEvent","getHydraClusterString","url","member","space","actorId","SPACE_TYPE","DIRECT","ACTIVITY_FIELD","ACTOR","TARGET","OBJECT","logger","error","version","_default","exports"],"sources":["memberships.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {\n SDK_EVENT,\n createEventEnvelope,\n ensureMyIdIsAvailable,\n buildHydraMembershipId,\n buildHydraMessageId,\n buildHydraOrgId,\n buildHydraPersonId,\n buildHydraRoomId,\n getHydraClusterString,\n getHydraRoomType,\n deconstructHydraId,\n} from '@webex/common';\nimport {WebexPlugin, Page} from '@webex/webex-core';\nimport {cloneDeep} from 'lodash';\n\nconst debug = require('debug')('memberships');\n\n/**\n * @typedef {Object} MembershipObject\n * @property {string} id - Unique identifier for the membership\n * @property {string} roomId - The room ID\n * @property {string} personId - The person ID\n * @property {email} personEmail - The email address of the person / room member\n * @property {boolean} isModerator - Indicates whether the specified person should be a room moderator\n * @property {boolean} isMonitor - Indicates whether the specified member is a room monitor\n * @property {isoDate} created - The date and time that this membership was created\n */\n\n/**\n * Memberships represent a person's relationship to a room. Use this API to list\n * members of any room that you're in or create memberships to invite someone\n * to a room. Memberships can also be updated to make someone a moderator\n * or deleted to remove them from the room.\n * @class\n * @name Memberships\n */\nconst Memberships = WebexPlugin.extend({\n /**\n * Register to listen for incoming membership events\n * This is an alternate approach to registering for membership webhooks.\n * The events passed to any registered handlers will be similar to the webhook JSON,\n * but will omit webhook specific fields such as name, secret, url, etc.\n * To utilize the `listen()` method, the authorization token used\n * will need to have `spark:all` and `spark:kms` scopes enabled.\n * Note that by configuring your application to enable or disable `spark:all`\n * via its configuration page will also enable or disable `spark:kms`.\n * See the <a href=\"https://webex.github.io/webex-js-sdk/samples/browser-socket/\">Sample App</a>\n * for more details.\n * @instance\n * @memberof Memberships\n * @returns {Promise}\n * @example\n * webex.memberships.listen()\n * .then(() => {\n * console.log('listening to membership events');\n * webex.memberships.on('created', (event) => {\n * console.log(`Got a membership:created event:\\n${event}`);\n * }\n * webex.memberships.on('updated', (event) => {\n * console.log(`Got a membership:updated event:\\n${event}`);\n * }\n * webex.memberships.on('seen', (event) => {\n * // This represents a \"read receipt\" and will include a\n * // lastSeenId for the message this member has just \"read\",\n * // There is currently no equivalent webhook for this event.\n * console.log(`Got a membership:seen event:\\n${event}`);\n * }\n * webex.memberships.on('deleted', (event) => => {\n * console.log(`Got a membership:created event:\\n${event}`);\n * }\n * })\n * .catch((e) => console.error(`Unable to register for membership events: ${e}`));\n * // App logic goes here...\n * // Later when it is time to clean up\n * webex.memberships.stopListening();\n * webex.memberships.off('created');\n * webex.memberships.off('updated');\n * webex.memberships.off('seen');\n * webex.memberships.off('deleted');\n\n */\n listen() {\n // Create a common envelope that we will wrap all events in\n return createEventEnvelope(this.webex, SDK_EVENT.EXTERNAL.RESOURCE.MEMBERSHIPS).then(\n (envelope) => {\n this.eventEnvelope = envelope;\n\n // Register to listen to events\n return this.webex.internal.mercury.connect().then(() => {\n this.listenTo(this.webex.internal.mercury, SDK_EVENT.INTERNAL.WEBEX_ACTIVITY, (event) =>\n this.onWebexApiEvent(event)\n );\n });\n }\n );\n },\n\n /**\n * Adds a person to a room. The person can be added by ID (`personId`) or by\n * Email Address (`personEmail`). The person can be optionally added to the room\n * as a moderator.\n * @instance\n * @memberof Memberships\n * @param {MembershipObject} membership\n * @returns {Promise<MembershipObject>}\n * @example\n * webex.rooms.create({title: 'Create Membership Example'})\n * .then(function(room) {\n * return webex.memberships.create({\n * personEmail: 'alice@example.com',\n * roomId: room.id\n * });\n * })\n * .then(function(membership) {\n * var assert = require('assert');\n * assert(membership.id);\n * assert(membership.roomId);\n * assert(membership.personId);\n * assert(membership.personEmail);\n * assert('isModerator' in membership);\n * assert('isMonitor' in membership);\n * assert(membership.created);\n * return 'success';\n * });\n * // => success\n */\n create(membership) {\n return this.request({\n method: 'POST',\n service: 'hydra',\n resource: 'memberships',\n body: membership,\n }).then((res) => res.body);\n },\n\n /**\n * Returns a single membership.\n * @instance\n * @memberof Memberships\n * @param {MembershipObject|uuid} membership\n * @returns {Promise<MembershipObject>}\n * @example\n * var membership;\n * webex.rooms.create({title: 'Get Membership Example'})\n * .then(function(room) {\n * return webex.memberships.create({\n * personEmail: 'alice@example.com',\n * roomId: room.id\n * });\n * })\n * .then(function(m) {\n * membership = m;\n * return webex.memberships.get(m.id);\n * })\n * .then(function(m) {\n * var assert = require('assert');\n * assert.deepEqual(m, membership);\n * return 'success';\n * });\n * // => success\n */\n get(membership) {\n const id = membership.id || membership;\n\n return this.request({\n service: 'hydra',\n resource: `memberships/${id}`,\n }).then((res) => res.body.items || res.body);\n },\n\n /**\n * Returns a list of memberships. In most cases the results will only contain\n * rooms that the authenticated user is a member of. You can filter the results\n * by room to list people in a room or by person to find rooms that a\n * specific person is a member of.\n * @instance\n * @memberof Memberships\n * @param {Object} options\n * @param {string} options.personId\n * @param {string} options.personEmail\n * @param {string} options.roomId\n * @param {number} options.max\n * @returns {Promise<Page<MembershipObject>>}\n * @example\n * var room;\n * webex.rooms.create({title: 'List Membership Example'})\n * .then(function(r) {\n * room = r;\n * return webex.memberships.create({\n * personEmail: 'alice@example.com',\n * roomId: room.id\n * });\n * })\n * .then(function() {\n * return webex.memberships.list({roomId: room.id});\n * })\n * .then(function(memberships) {\n * var assert = require('assert');\n * assert.equal(memberships.length, 2);\n * for (var i = 0; i < memberships.length; i+= 1) {\n * assert.equal(memberships.items[i].roomId, room.id);\n * }\n * return 'success';\n * });\n * // => success\n */\n list(options) {\n return this.request({\n service: 'hydra',\n resource: 'memberships',\n qs: options,\n }).then((res) => new Page(res, this.webex));\n },\n\n /**\n * Returns a list of memberships with details about the lastSeenId for each\n * user, allowing a client to indicate \"read status\" in a space GUI\n *\n * This differs from the memberships.list() function in the following ways:\n * -- it accepts only a room or object with a valid roomId\n * -- no other options, eg: max, are considered\n * -- results are not paginated\n * -- memberships in the return do not include the\n * \"created\", \"isRoomHidden\", fields\n * -- memberships in the return do include the new\n * \"lastSeenId\", and \"lastSeenDate\" fields\n * these will not exist if the member has never \"seen\" the space\n *\n * In general this function should be used only when the\n * client needs to access read status info.\n *\n * This function may be deprecated when this info is provided in the membership\n * objects returned in the list function.\n *\n *\n * @instance\n * @memberof Memberships\n * @param {Object} options\n * @param {string} options.roomId\n * @returns {Promise<MembershipObjectList>}\n */\n listWithReadStatus(options) {\n const deconstructedId = deconstructHydraId(options.roomId);\n const conversation = {\n id: deconstructedId.id,\n cluster: deconstructedId.cluster,\n };\n\n return ensureMyIdIsAvailable(this.webex).then(() =>\n this.webex.internal.services.waitForCatalog('postauth').then(() =>\n this.webex.internal.conversation\n .get(conversation, {\n participantAckFilter: 'all', // show lastAck info for each participant\n activitiesLimit: 0, // don't send the whole history of activity\n })\n .then((resp) => {\n try {\n // We keep track of the last read message by each user\n const roomUUID = resp.id;\n const roomId = buildHydraRoomId(roomUUID, conversation.cluster);\n const participants = resp.participants.items;\n const lastReadInfo = {items: []};\n const roomType = getHydraRoomType(resp.tags);\n const myId = this.webex.internal.me.id;\n const isRoomHidden = resp.tags.includes(SDK_EVENT.INTERNAL.ACTIVITY_TAG.HIDDEN);\n\n for (let i = 0; i < participants.length; i += 1) {\n const participant = participants[i];\n const participantInfo = {\n id: buildHydraMembershipId(participant.entryUUID, roomUUID, conversation.cluster),\n roomId,\n personId: buildHydraPersonId(participant.entryUUID),\n personEmail: participant.entryEmailAddress || participant.entryEmail,\n personDisplayName: participant.displayName,\n personOrgId: buildHydraOrgId(participant.orgId, conversation.cluster),\n isMonitor: false, // deprecated, but included for completeness\n roomType,\n // created is not available in the conversations payload\n };\n\n if (isRoomHidden && participantInfo.personId === myId) {\n participantInfo.isRoomHidden = isRoomHidden;\n }\n\n if ('roomProperties' in participant) {\n if ('lastSeenActivityDate' in participant.roomProperties) {\n participantInfo.lastSeenId = buildHydraMessageId(\n participant.roomProperties.lastSeenActivityUUID,\n conversation.cluster\n );\n participantInfo.lastSeenDate = participant.roomProperties.lastSeenActivityDate;\n }\n if ('isModerator' in participant.roomProperties) {\n participantInfo.isModerator = participant.roomProperties.isModerator;\n }\n }\n\n lastReadInfo.items.push(participantInfo);\n }\n\n return Promise.resolve(lastReadInfo);\n } catch (e) {\n return Promise.reject(e);\n }\n })\n )\n );\n },\n\n /**\n * Deletes a single membership.\n * @instance\n * @memberof Memberships\n * @param {MembershipObject|uuid} membership\n * @returns {Promise}\n * @example\n * var membership, room;\n * webex.rooms.create({title: 'Remove Membership Example'})\n * .then(function(r) {\n * room = r;\n * return webex.memberships.create({\n * personEmail: 'alice@example.com',\n * roomId: room.id\n * });\n * })\n * .then(function(m) {\n * membership = m;\n * return webex.memberships.list({roomId: room.id});\n * })\n * .then(function(memberships) {\n * var assert = require('assert');\n * assert.equal(memberships.length, 2);\n * return webex.memberships.remove(membership);\n * })\n * .then(function() {\n * return webex.memberships.list({roomId: room.id});\n * })\n * .then(function(memberships) {\n * var assert = require('assert');\n * assert.equal(memberships.length, 1);\n * return 'success';\n * });\n * // => success\n */\n remove(membership) {\n const id = membership.id || membership;\n\n return this.request({\n method: 'DELETE',\n service: 'hydra',\n resource: `memberships/${id}`,\n }).then((res) => {\n // Firefox has some issues with 204s and/or DELETE. This should move to\n // http-core\n if (res.statusCode === 204) {\n return undefined;\n }\n\n return res.body;\n });\n },\n\n /**\n * Used to update a single membership's properties\n * @instance\n * @memberof Memberships\n * @param {MembershipObject|uuid} membership\n * @returns {Promise<MembershipObject>}\n * @example\n * // Change membership to make user a moderator\n * var membership, room;\n * webex.rooms.create({title: 'Memberships Example'})\n * .then(function(r) {\n * room = r;\n * return webex.memberships.list({roomId: room.id});\n * })\n * .then(function(memberships) {\n * membership = memberships.items[0];\n * var assert = require('assert');\n * assert.equal(membership.isModerator, false);\n * membership.isModerator = true;\n * return webex.memberships.update(membership);\n * })\n * .then(function() {\n * return webex.memberships.get(membership.id);\n * })\n * .then(function(membership) {\n * var assert = require('assert');\n * assert.equal(membership.isModerator, true);\n * return 'success';\n * });\n * // => success\n * @example\n * // Hide a one on one space\n * var assert = require('assert');\n * var membership, myId;\n * webex.people.get('me')\n * .then(function(person) {\n * myId = personId;\n * return webex.messages.create({\n * toPersonEmail: 'otherUser@acme.com',\n * text: 'This message will create a 1-1 space'\n * });\n * })\n * then(function(message) {\n * return webex.memberships.list({\n * roomId: message.roomId,\n * personId: myId\n * });\n * })\n * .then((memberships) => {\n * membership = memberships.items[0];\n * assert.equal(membership.isRoomHidden, false);\n * membership.isRoomHidden = true;\n * // This will generate a memberships:updated event\n * // that will only be seen by this user\n * return webex.memberships.update(membership);\n * })\n * .then(function(membership) {\n * assert.equal(membership.isRoomHidden, true);\n * return 'success';\n * });\n * // => success\n */\n update(membership) {\n const id = membership.id || membership;\n\n return this.request({\n method: 'PUT',\n service: 'hydra',\n resource: `memberships/${id}`,\n body: membership,\n }).then((res) => res.body);\n },\n\n /**\n * Updates the lastSeenId attribute of a membership.\n * Call this method to send a \"read receipt\" for a given message.\n * This will update the lastSeenId for the user's membership in\n * space where the message is.\n * @instance\n * @memberof Memberships\n * @param {string} message\n * @returns {Promise<MembershipObject>}\n */\n updateLastSeen(message) {\n const activity = {\n id: deconstructHydraId(message.id).id,\n };\n const deconstructedId = deconstructHydraId(message.roomId);\n const conversation = {\n id: deconstructedId.id,\n cluster: deconstructedId.cluster,\n };\n\n return this.webex.internal.services.waitForCatalog('postauth').then(() =>\n this.webex.internal.conversation.acknowledge(conversation, activity).then((ack) => ({\n lastSeenId: buildHydraMessageId(ack.object.id, conversation.cluster),\n id: buildHydraMembershipId(ack.actor.entryUUID, ack.target.id, conversation.cluster),\n personId: buildHydraPersonId(ack.actor.entryUUID, conversation.cluster),\n personEmail: ack.actor.emailAddress || ack.actor.entryEmail,\n personDisplayName: ack.actor.displayName,\n personOrgId: buildHydraOrgId(ack.actor.orgId, conversation.cluster),\n roomId: buildHydraRoomId(ack.target.id, conversation.cluster),\n roomType: getHydraRoomType(ack.target.tags),\n isRoomHidden: false, // any activity unhides a space.\n isMonitor: false, // deprecated, returned for back compat\n created: ack.published,\n }))\n );\n },\n\n /**\n * This function is called when an internal membership events fires,\n * if the user registered for these events with the public listen() method.\n * External users of the SDK should not call this function\n * @private\n * @memberof Memberships\n * @param {Object} event\n * @returns {void}\n */\n onWebexApiEvent(event) {\n const {activity} = event.data;\n\n /* eslint-disable no-case-declarations */\n switch (activity.verb) {\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.CREATE:\n const membershipCreatedEventDataArray = activity.object.participants.items.map(\n (participant) => {\n const output = cloneDeep(activity);\n\n output.target = cloneDeep(activity.object);\n output.object = cloneDeep(participant);\n\n return this.getMembershipEvent(output, SDK_EVENT.EXTERNAL.EVENT_TYPE.CREATED);\n }\n );\n\n membershipCreatedEventDataArray.forEach((data) => {\n if (data) {\n debug(`membership \"created\" payload: ${JSON.stringify(data)}`);\n this.trigger(SDK_EVENT.EXTERNAL.EVENT_TYPE.CREATED, data);\n }\n });\n break;\n\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.ADD:\n const membershipCreatedEventData = this.getMembershipEvent(\n activity,\n SDK_EVENT.EXTERNAL.EVENT_TYPE.CREATED\n );\n\n if (membershipCreatedEventData) {\n debug(`membership \"created\" payload: \\\n ${JSON.stringify(membershipCreatedEventData)}`);\n this.trigger(SDK_EVENT.EXTERNAL.EVENT_TYPE.CREATED, membershipCreatedEventData);\n }\n break;\n\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.LEAVE:\n const membershipDeletedEventData = this.getMembershipEvent(\n activity,\n SDK_EVENT.EXTERNAL.EVENT_TYPE.DELETED\n );\n\n if (membershipDeletedEventData) {\n debug(`membership \"deleted\" payload: \\\n ${JSON.stringify(membershipDeletedEventData)}`);\n this.trigger(SDK_EVENT.EXTERNAL.EVENT_TYPE.DELETED, membershipDeletedEventData);\n }\n break;\n\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.ADD_MODERATOR:\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.REMOVE_MODERATOR:\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.HIDE:\n const membershipUpdatedEventData = this.getMembershipEvent(\n activity,\n SDK_EVENT.EXTERNAL.EVENT_TYPE.UPDATED\n );\n\n if (membershipUpdatedEventData) {\n debug(`membership \"updated\" payload: \\\n ${JSON.stringify(membershipUpdatedEventData)}`);\n this.trigger(SDK_EVENT.EXTERNAL.EVENT_TYPE.UPDATED, membershipUpdatedEventData);\n }\n break;\n\n case SDK_EVENT.INTERNAL.ACTIVITY_VERB.ACKNOWLEDGE:\n const membershipSeenEventData = this.getMembershipEvent(\n activity,\n SDK_EVENT.EXTERNAL.EVENT_TYPE.SEEN\n );\n\n if (membershipSeenEventData) {\n debug(`membership \"updated\" payload: \\\n ${JSON.stringify(membershipSeenEventData)}`);\n this.trigger(SDK_EVENT.EXTERNAL.EVENT_TYPE.SEEN, membershipSeenEventData);\n }\n break;\n\n default:\n break;\n }\n },\n\n /**\n * Constructs the data object for an event on the memberships resource,\n * adhering to Hydra's Webhook data structure memberships.\n * External users of the SDK should not call this function\n * @private\n * @memberof Memberships\n * @param {Object} activity from mercury\n * @param {Object} event type of \"webhook\" event\n * @returns {Object} constructed event\n */\n getMembershipEvent(activity, event) {\n try {\n const sdkEvent = cloneDeep(this.eventEnvelope);\n const cluster =\n activity.verb !== SDK_EVENT.INTERNAL.ACTIVITY_VERB.HIDE\n ? getHydraClusterString(this.webex, activity.target.url)\n : getHydraClusterString(this.webex, activity.url);\n let member;\n let space;\n\n sdkEvent.event = event;\n sdkEvent.data.created = activity.published;\n sdkEvent.actorId = buildHydraPersonId(activity.actor.entryUUID, cluster);\n if (activity.verb !== SDK_EVENT.INTERNAL.ACTIVITY_VERB.HIDE) {\n sdkEvent.data.roomId = buildHydraRoomId(activity.target.id, cluster);\n sdkEvent.data.roomType = getHydraRoomType(activity.target.tags);\n sdkEvent.data.isRoomHidden = false; // any activity unhides a space.\n } else {\n sdkEvent.data.roomId = buildHydraRoomId(activity.object.id, cluster);\n sdkEvent.data.roomType = SDK_EVENT.EXTERNAL.SPACE_TYPE.DIRECT;\n // currently hidden attribute is only set on 1-1\n sdkEvent.data.isRoomHidden = true;\n }\n if (activity.verb !== SDK_EVENT.INTERNAL.ACTIVITY_VERB.ACKNOWLEDGE) {\n if (activity.object.roomProperties && activity.object.roomProperties.isModerator) {\n sdkEvent.data.isModerator = true;\n } else {\n sdkEvent.data.isModerator = false;\n }\n }\n // This is deprecated but still sent in the webhooks\n // We won't send it for our new SDK events\n // sdkEvent.data.isMonitor = false;\n\n if (activity.verb === SDK_EVENT.INTERNAL.ACTIVITY_VERB.ACKNOWLEDGE) {\n // For a read receipt the person is the \"actor\" or the one who did the reading\n member = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.ACTOR;\n // The space with the read message is the \"target\"\n space = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.TARGET;\n // And the \"object\" is the message that was last seen\n sdkEvent.data.lastSeenId = buildHydraMessageId(activity.object.id, cluster);\n } else if (activity.verb === SDK_EVENT.INTERNAL.ACTIVITY_VERB.HIDE) {\n // For a hide activity the person is also the \"actor\"\n member = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.ACTOR;\n // But the space is now the \"object\"\n space = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.OBJECT;\n } else {\n // For most memberships events the person is the 'object\"\n member = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.OBJECT;\n // and the space is the \"target\"\n space = SDK_EVENT.INTERNAL.ACTIVITY_FIELD.TARGET;\n }\n\n sdkEvent.data.id = buildHydraMembershipId(\n activity[member].entryUUID,\n activity[space].id,\n cluster\n );\n sdkEvent.data.personId = buildHydraPersonId(activity[member].entryUUID, cluster);\n sdkEvent.data.personEmail = activity[member].emailAddress || activity[member].entryEmail;\n sdkEvent.data.personDisplayName = activity[member].displayName;\n sdkEvent.data.personOrgId = buildHydraOrgId(activity[member].orgId, cluster);\n\n return sdkEvent;\n } catch (e) {\n this.webex.logger.error(`Unable to generate SDK event from mercury \\\n'socket activity for memberships:${event} event: ${e.message}`);\n\n return null;\n }\n },\n});\n\nexport default Memberships;\n"],"mappings":";;;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAaA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAlBA;AACA;AACA;;AAkBA,IAAMG,KAAK,GAAGH,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMI,WAAW,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACrC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAEEC,MAAM,WAANA,MAAMA,CAAA,EAAG;IAAA,IAAAC,KAAA;IACP;IACA,OAAO,IAAAC,2BAAmB,EAAC,IAAI,CAACC,KAAK,EAAEC,iBAAS,CAACC,QAAQ,CAACC,QAAQ,CAACC,WAAW,CAAC,CAACC,IAAI,CAClF,UAACC,QAAQ,EAAK;MACZR,KAAI,CAACS,aAAa,GAAGD,QAAQ;;MAE7B;MACA,OAAOR,KAAI,CAACE,KAAK,CAACQ,QAAQ,CAACC,OAAO,CAACC,OAAO,CAAC,CAAC,CAACL,IAAI,CAAC,YAAM;QACtDP,KAAI,CAACa,QAAQ,CAACb,KAAI,CAACE,KAAK,CAACQ,QAAQ,CAACC,OAAO,EAAER,iBAAS,CAACW,QAAQ,CAACC,cAAc,EAAE,UAACC,KAAK;UAAA,OAClFhB,KAAI,CAACiB,eAAe,CAACD,KAAK,CAAC;QAAA,CAC7B,CAAC;MACH,CAAC,CAAC;IACJ,CACF,CAAC;EACH,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEE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AC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEE,MAAM,WAANA,MAAMA,CAACxE,UAAU,EAAE;IACjB,IAAMQ,EAAE,GAAGR,UAAU,CAACQ,EAAE,IAAIR,UAAU;IAEtC,OAAO,IAAI,CAACC,OAAO,CAAC;MAClBC,MAAM,EAAE,QAAQ;MAChBC,OAAO,EAAE,OAAO;MAChBC,QAAQ,iBAAAK,MAAA,CAAiBD,EAAE;IAC7B,CAAC,CAAC,CAACpB,IAAI,CAAC,UAACkB,GAAG,EAAK;MACf;MACA;MACA,IAAIA,GAAG,CAACmE,UAAU,KAAK,GAAG,EAAE;QAC1B,OAAOC,SAAS;MAClB;MAEA,OAAOpE,GAAG,CAACD,IAAI;IACjB,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEsE,MAAM,WAANA,MAAMA,CAAC3E,UAAU,EAAE;IACjB,IAAMQ,EAAE,GAAGR,UAAU,CAACQ,EAAE,IAAIR,UAAU;IAEtC,OAAO,IAAI,CAACC,OAAO,CAAC;MAClBC,MAAM,EAAE,KAAK;MACbC,OAAO,EAAE,OAAO;MAChBC,QAAQ,iBAAAK,MAAA,CAAiBD,EAAE,CAAE;MAC7BH,IAAI,EAAEL;IACR,CAAC,CAAC,CAACZ,IAAI,CAAC,UAACkB,GAAG;MAAA,OAAKA,GAAG,CAACD,IAAI;IAAA,EAAC;EAC5B,CAAC;EAED;AACF;AACA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","ignoreList":[]}
package/package.json CHANGED
@@ -24,27 +24,27 @@
24
24
  "@webex/eslint-config-legacy": "0.0.0",
25
25
  "@webex/jest-config-legacy": "0.0.0",
26
26
  "@webex/legacy-tools": "0.0.0",
27
- "@webex/test-helper-chai": "3.8.1-next.11",
28
- "@webex/test-helper-mocha": "3.8.1-next.11",
29
- "@webex/test-helper-mock-webex": "3.8.1-next.11",
30
- "@webex/test-helper-test-users": "3.8.1-next.11",
27
+ "@webex/test-helper-chai": "3.10.0-next.1",
28
+ "@webex/test-helper-mocha": "3.10.0-next.1",
29
+ "@webex/test-helper-mock-webex": "3.10.0-next.1",
30
+ "@webex/test-helper-test-users": "3.10.0-next.1",
31
31
  "eslint": "^8.24.0",
32
32
  "prettier": "^2.7.1",
33
33
  "sinon": "^9.2.4"
34
34
  },
35
35
  "dependencies": {
36
- "@webex/common": "3.8.1-next.11",
37
- "@webex/internal-plugin-conversation": "3.10.0-next.1",
38
- "@webex/internal-plugin-mercury": "3.10.0-next.1",
39
- "@webex/webex-core": "3.10.0-next.1",
36
+ "@webex/common": "3.10.0-next.1",
37
+ "@webex/internal-plugin-conversation": "3.10.0-next.11",
38
+ "@webex/internal-plugin-mercury": "3.10.0-next.11",
39
+ "@webex/webex-core": "3.10.0-next.11",
40
40
  "debug": "^4.3.4",
41
41
  "lodash": "^4.17.21"
42
42
  },
43
43
  "peerDependencies": {
44
- "@webex/plugin-logger": "3.10.0-next.1",
45
- "@webex/plugin-messages": "3.10.0-next.1",
46
- "@webex/plugin-people": "3.10.0-next.1",
47
- "@webex/plugin-rooms": "3.10.0-next.1"
44
+ "@webex/plugin-logger": "3.10.0-next.11",
45
+ "@webex/plugin-messages": "3.10.0-next.11",
46
+ "@webex/plugin-people": "3.10.0-next.11",
47
+ "@webex/plugin-rooms": "3.10.0-next.11"
48
48
  },
49
49
  "scripts": {
50
50
  "build": "yarn build:src",
@@ -54,5 +54,5 @@
54
54
  "test:browser:broken": "webex-legacy-tools test --integration --runner karma",
55
55
  "test:style": "eslint ./src/**/*.*"
56
56
  },
57
- "version": "3.10.0-next.1"
57
+ "version": "3.10.0-next.11"
58
58
  }