@mescius/js-collaboration-presence 19.0.5 → 19.1.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.
Files changed (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * SpreadJS Library 19.0.5
3
+ * SpreadJS Library 19.1.0
4
4
  *
5
5
  * Copyright(c) MESCIUS inc. All rights reserved.
6
6
  *
@@ -9,4 +9,4 @@
9
9
  * https://developer.mescius.com/spreadjs
10
10
  *
11
11
  */
12
- !function(e,s){if("object"==typeof exports&&"object"==typeof module)module.exports=s();else if("function"==typeof define&&define.amd)define([],s);else{var t=s();for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(this,(()=>(()=>{"use strict";var e={658:(e,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.PresenceManager=void 0;s.PresenceManager=class{constructor(){this._presences=new Map}get presences(){return this._presences}getPresence(e){return this._presences.get(e)}setPresence(e,s){this._presences.set(e,s)}removePresence(e){this._presences.delete(e)}}},17:(e,s,t)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.Presence=void 0;const n=t(773),r="presence-subscribed";s.Presence=class{constructor(){this.presences={}}messageHandler(e,s){if("string"!=typeof s)return;const t=JSON.parse(s);switch(t.a){case n.Actions.update:this._handleUpdateMsg(e,t);break;case n.Actions.updateField:this._handleUpdateFieldMsg(e,t);break;case n.Actions.remove:this._handleRemoveMsg(e);break;case n.Actions.subscribe:this._handleSubscribeMsg(e)}}disconnect(e){this._handleRemoveMsg(e)}_handleUpdateMsg(e,s){if(!("presence"in s))return void this._handleRemoveMsg(e);const t=s.presence,r=(0,n.createPresences)([e.id],[t]);this._has(e.id)?(this.presences[e.id]=t,this._broadCast(e,{a:n.Actions.update,presences:r})):(this.presences[e.id]=t,this._broadCast(e,{a:n.Actions.add,presences:r}))}_handleUpdateFieldMsg(e,s){const t=s.fieldUpdate;if(!t)return;const r=this.presences[e.id];(0,n.canApplyFieldUpdate)(r)&&(r[t.k]=t.v,this._broadCast(e,{a:n.Actions.updateField,fieldUpdates:{[e.id]:t}}))}async _handleSubscribeMsg(e){await e.joinRoomChannel(r),this._send(e,{a:n.Actions.subscribe,presences:this.presences})}_handleRemoveMsg(e){this._has(e.id)&&(delete this.presences[e.id],this._broadCast(e,{a:n.Actions.remove,presencesIds:[e.id]}))}_send(e,s){e.send(JSON.stringify(s),n.PRESENCE_MESSAGE_TYPE)}_broadCast(e,s){e.broadcastToRoomChannel(r,JSON.stringify(s),n.PRESENCE_MESSAGE_TYPE)}_has(e){return e in this.presences}}},773:(e,s)=>{var t;Object.defineProperty(s,"__esModule",{value:!0}),s.PRESENCE_MESSAGE_TYPE=s.Actions=void 0,s.createPresences=function(e,s){const t={};for(let n=0;n<e.length;n++)t[e[n]]=s[n];return t},s.canApplyFieldUpdate=function(e){return"object"==typeof e&&null!==e},function(e){e.subscribe="s",e.unsubscribe="u",e.update="d",e.updateField="df",e.add="a",e.remove="r"}(t||(s.Actions=t={})),s.PRESENCE_MESSAGE_TYPE="presence"}},s={};function t(n){var r=s[n];if(void 0!==r)return r.exports;var o=s[n]={exports:{}};return e[n](o,o.exports,t),o.exports}var n={};return(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.presenceFeature=function(e){return e=null!=e?e:new s.PresenceManager,{middlewares:{message:async(s,t)=>{var n;if(s.type!==o.PRESENCE_MESSAGE_TYPE)return await t();null===(n=e.getPresence(s.roomId))||void 0===n||n.messageHandler(s.connection,s.data)}},hooks:{createRoom:s=>{const t=new r.Presence;e.setPresence(s.roomId,t)},destroyRoom:s=>{e.removePresence(s.roomId)},leaveRoom:s=>{var t;null===(t=e.getPresence(s.roomId))||void 0===t||t.disconnect(s.connection)}}}};const s=t(658),r=t(17),o=t(773)})(),n})()));
12
+ !function(e,s){if("object"==typeof exports&&"object"==typeof module)module.exports=s();else if("function"==typeof define&&define.amd)define([],s);else{var t=s();for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(this,(()=>(()=>{"use strict";var e={658:(e,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.PresenceManager=void 0;s.PresenceManager=class{constructor(){this._presences=new Map}get presences(){return this._presences}getPresence(e){return this._presences.get(e)}setPresence(e,s){this._presences.set(e,s)}removePresence(e){this._presences.delete(e)}}},17:(e,s,t)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.Presence=void 0;const n=t(773),r="presence-subscribed";s.Presence=class{constructor(){this.presences={}}messageHandler(e,s){if("string"!=typeof s)return;const t=(0,n.parsePresenceMessage)(s,(s=>{e.socket.emit("message_error",s)}));if(t)switch(t.a){case n.Actions.update:this._handleUpdateMsg(e,t);break;case n.Actions.updateField:this._handleUpdateFieldMsg(e,t);break;case n.Actions.remove:this._handleRemoveMsg(e);break;case n.Actions.subscribe:this._handleSubscribeMsg(e)}}disconnect(e){this._handleRemoveMsg(e)}_handleUpdateMsg(e,s){if(!("presence"in s))return void this._handleRemoveMsg(e);const t=s.presence,r=(0,n.createPresences)([e.id],[t]);this._has(e.id)?(this.presences[e.id]=t,this._broadCast(e,{a:n.Actions.update,presences:r})):(this.presences[e.id]=t,this._broadCast(e,{a:n.Actions.add,presences:r}))}_handleUpdateFieldMsg(e,s){const t=s.fieldUpdate;if(!t||!(0,n.canApplyFieldUpdateKey)(t.k))return;const r=this.presences[e.id];(0,n.canApplyFieldUpdate)(r)&&(r[t.k]=t.v,this._broadCast(e,{a:n.Actions.updateField,fieldUpdates:{[e.id]:t}}))}async _handleSubscribeMsg(e){await e.joinRoomChannel(r),this._send(e,{a:n.Actions.subscribe,presences:this.presences})}_handleRemoveMsg(e){this._has(e.id)&&(delete this.presences[e.id],this._broadCast(e,{a:n.Actions.remove,presencesIds:[e.id]}))}_send(e,s){e.send(JSON.stringify(s),n.PRESENCE_MESSAGE_TYPE)}_broadCast(e,s){e.broadcastToRoomChannel(r,JSON.stringify(s),n.PRESENCE_MESSAGE_TYPE)}_has(e){return e in this.presences}}},773:(e,s)=>{var t;Object.defineProperty(s,"__esModule",{value:!0}),s.PRESENCE_MESSAGE_TYPE=s.Actions=void 0,s.createPresences=function(e,s){const t={};for(let n=0;n<e.length;n++)t[e[n]]=s[n];return t},s.canApplyFieldUpdate=function(e){return"object"==typeof e&&null!==e},s.parsePresenceMessage=function(e,s){try{const s=JSON.parse(e);if(null===s||"object"!=typeof s)return;return s}catch(e){const t=e instanceof Error?e.message:String(e);return void(null==s||s(`Failed to parse presence message: ${t}`))}},s.canApplyFieldUpdateKey=function(e){return"string"==typeof e&&!n.has(e)},function(e){e.subscribe="s",e.unsubscribe="u",e.update="d",e.updateField="df",e.add="a",e.remove="r"}(t||(s.Actions=t={})),s.PRESENCE_MESSAGE_TYPE="presence";const n=new Set(["__proto__","constructor","prototype"])}},s={};function t(n){var r=s[n];if(void 0!==r)return r.exports;var o=s[n]={exports:{}};return e[n](o,o.exports,t),o.exports}var n={};return(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.presenceFeature=function(e){return e=null!=e?e:new s.PresenceManager,{middlewares:{message:async(s,t)=>{var n;if(s.type!==o.PRESENCE_MESSAGE_TYPE)return await t();null===(n=e.getPresence(s.roomId))||void 0===n||n.messageHandler(s.connection,s.data)}},hooks:{createRoom:s=>{const t=new r.Presence;e.setPresence(s.roomId,t)},destroyRoom:s=>{e.removePresence(s.roomId)},leaveRoom:s=>{var t;null===(t=e.getPresence(s.roomId))||void 0===t||t.disconnect(s.connection)}}}};const s=t(658),r=t(17),o=t(773)})(),n})()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mescius/js-collaboration-presence",
3
- "version": "19.0.5",
3
+ "version": "19.1.0",
4
4
  "type": "commonjs",
5
5
  "main": "./dist/index.js",
6
6
  "exports": {
@@ -26,7 +26,7 @@
26
26
  "license": "Commercial",
27
27
  "description": "SpreadJS Collaboration plugin",
28
28
  "dependencies": {
29
- "@mescius/js-collaboration": "19.0.5"
29
+ "@mescius/js-collaboration": "19.1.0"
30
30
  },
31
31
  "homepage": "https://developer.mescius.com/spreadjs"
32
32
  }