@liveblocks/client 0.15.7 → 0.15.8

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/lib/esm/index.js CHANGED
@@ -1595,6 +1595,18 @@ var __spreadValues$1 = (a, b) => {
1595
1595
  return a;
1596
1596
  };
1597
1597
  var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
1598
+ var __objRest = (source, exclude) => {
1599
+ var target = {};
1600
+ for (var prop in source)
1601
+ if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)
1602
+ target[prop] = source[prop];
1603
+ if (source != null && __getOwnPropSymbols$1)
1604
+ for (var prop of __getOwnPropSymbols$1(source)) {
1605
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))
1606
+ target[prop] = source[prop];
1607
+ }
1608
+ return target;
1609
+ };
1598
1610
  const BACKOFF_RETRY_DELAYS = [250, 500, 1e3, 2e3, 4e3, 8e3, 1e4];
1599
1611
  const BACKOFF_RETRY_DELAYS_SLOW = [2e3, 3e4, 6e4, 3e5];
1600
1612
  const HEARTBEAT_INTERVAL = 3e4;
@@ -1607,7 +1619,10 @@ function makeIdFactory(connectionId) {
1607
1619
  return () => `${connectionId}:${count++}`;
1608
1620
  }
1609
1621
  function makeOthers(presenceMap) {
1610
- const array = Object.values(presenceMap);
1622
+ const array = Object.values(presenceMap).map((presence) => {
1623
+ const _a = presence, publicKeys = __objRest(_a, ["_hasReceivedInitialPresence"]);
1624
+ return publicKeys;
1625
+ });
1611
1626
  return {
1612
1627
  get count() {
1613
1628
  return array.length;
@@ -2002,17 +2017,22 @@ See v0.13 release notes for more information.
2002
2017
  }
2003
2018
  function onUpdatePresenceMessage(message) {
2004
2019
  const user = state.users[message.actor];
2020
+ if (message.targetActor === void 0 && user != null && !user._hasReceivedInitialPresence) {
2021
+ return void 0;
2022
+ }
2005
2023
  if (user == null) {
2006
2024
  state.users[message.actor] = {
2007
2025
  connectionId: message.actor,
2008
- presence: message.data
2026
+ presence: message.data,
2027
+ _hasReceivedInitialPresence: true
2009
2028
  };
2010
2029
  } else {
2011
2030
  state.users[message.actor] = {
2012
2031
  id: user.id,
2013
2032
  info: user.info,
2014
2033
  connectionId: message.actor,
2015
- presence: __spreadValues$1(__spreadValues$1({}, user.presence), message.data)
2034
+ presence: __spreadValues$1(__spreadValues$1({}, user.presence), message.data),
2035
+ _hasReceivedInitialPresence: true
2016
2036
  };
2017
2037
  }
2018
2038
  return {
@@ -2058,7 +2078,8 @@ See v0.13 release notes for more information.
2058
2078
  state.users[message.actor] = {
2059
2079
  connectionId: message.actor,
2060
2080
  info: message.info,
2061
- id: message.id
2081
+ id: message.id,
2082
+ _hasReceivedInitialPresence: true
2062
2083
  };
2063
2084
  if (state.me) {
2064
2085
  state.buffer.messages.push({
@@ -2093,7 +2114,10 @@ See v0.13 release notes for more information.
2093
2114
  break;
2094
2115
  }
2095
2116
  case ServerMessageType.UpdatePresence: {
2096
- updates.others.push(onUpdatePresenceMessage(subMessage));
2117
+ const othersPresenceUpdate = onUpdatePresenceMessage(subMessage);
2118
+ if (othersPresenceUpdate) {
2119
+ updates.others.push(othersPresenceUpdate);
2120
+ }
2097
2121
  break;
2098
2122
  }
2099
2123
  case ServerMessageType.Event: {
package/lib/esm/index.mjs CHANGED
@@ -1595,6 +1595,18 @@ var __spreadValues$1 = (a, b) => {
1595
1595
  return a;
1596
1596
  };
1597
1597
  var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
1598
+ var __objRest = (source, exclude) => {
1599
+ var target = {};
1600
+ for (var prop in source)
1601
+ if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)
1602
+ target[prop] = source[prop];
1603
+ if (source != null && __getOwnPropSymbols$1)
1604
+ for (var prop of __getOwnPropSymbols$1(source)) {
1605
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))
1606
+ target[prop] = source[prop];
1607
+ }
1608
+ return target;
1609
+ };
1598
1610
  const BACKOFF_RETRY_DELAYS = [250, 500, 1e3, 2e3, 4e3, 8e3, 1e4];
1599
1611
  const BACKOFF_RETRY_DELAYS_SLOW = [2e3, 3e4, 6e4, 3e5];
1600
1612
  const HEARTBEAT_INTERVAL = 3e4;
@@ -1607,7 +1619,10 @@ function makeIdFactory(connectionId) {
1607
1619
  return () => `${connectionId}:${count++}`;
1608
1620
  }
1609
1621
  function makeOthers(presenceMap) {
1610
- const array = Object.values(presenceMap);
1622
+ const array = Object.values(presenceMap).map((presence) => {
1623
+ const _a = presence, publicKeys = __objRest(_a, ["_hasReceivedInitialPresence"]);
1624
+ return publicKeys;
1625
+ });
1611
1626
  return {
1612
1627
  get count() {
1613
1628
  return array.length;
@@ -2002,17 +2017,22 @@ See v0.13 release notes for more information.
2002
2017
  }
2003
2018
  function onUpdatePresenceMessage(message) {
2004
2019
  const user = state.users[message.actor];
2020
+ if (message.targetActor === void 0 && user != null && !user._hasReceivedInitialPresence) {
2021
+ return void 0;
2022
+ }
2005
2023
  if (user == null) {
2006
2024
  state.users[message.actor] = {
2007
2025
  connectionId: message.actor,
2008
- presence: message.data
2026
+ presence: message.data,
2027
+ _hasReceivedInitialPresence: true
2009
2028
  };
2010
2029
  } else {
2011
2030
  state.users[message.actor] = {
2012
2031
  id: user.id,
2013
2032
  info: user.info,
2014
2033
  connectionId: message.actor,
2015
- presence: __spreadValues$1(__spreadValues$1({}, user.presence), message.data)
2034
+ presence: __spreadValues$1(__spreadValues$1({}, user.presence), message.data),
2035
+ _hasReceivedInitialPresence: true
2016
2036
  };
2017
2037
  }
2018
2038
  return {
@@ -2058,7 +2078,8 @@ See v0.13 release notes for more information.
2058
2078
  state.users[message.actor] = {
2059
2079
  connectionId: message.actor,
2060
2080
  info: message.info,
2061
- id: message.id
2081
+ id: message.id,
2082
+ _hasReceivedInitialPresence: true
2062
2083
  };
2063
2084
  if (state.me) {
2064
2085
  state.buffer.messages.push({
@@ -2093,7 +2114,10 @@ See v0.13 release notes for more information.
2093
2114
  break;
2094
2115
  }
2095
2116
  case ServerMessageType.UpdatePresence: {
2096
- updates.others.push(onUpdatePresenceMessage(subMessage));
2117
+ const othersPresenceUpdate = onUpdatePresenceMessage(subMessage);
2118
+ if (othersPresenceUpdate) {
2119
+ updates.others.push(othersPresenceUpdate);
2120
+ }
2097
2121
  break;
2098
2122
  }
2099
2123
  case ServerMessageType.Event: {
package/lib/index.js CHANGED
@@ -127,6 +127,21 @@ function _wrapNativeSuper(Class) {
127
127
  return _wrapNativeSuper(Class);
128
128
  }
129
129
 
130
+ function _objectWithoutPropertiesLoose(source, excluded) {
131
+ if (source == null) return {};
132
+ var target = {};
133
+ var sourceKeys = Object.keys(source);
134
+ var key, i;
135
+
136
+ for (i = 0; i < sourceKeys.length; i++) {
137
+ key = sourceKeys[i];
138
+ if (excluded.indexOf(key) >= 0) continue;
139
+ target[key] = source[key];
140
+ }
141
+
142
+ return target;
143
+ }
144
+
130
145
  function _assertThisInitialized(self) {
131
146
  if (self === void 0) {
132
147
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -2417,7 +2432,12 @@ function makeIdFactory(connectionId) {
2417
2432
  function makeOthers(presenceMap) {
2418
2433
  var _ref;
2419
2434
 
2420
- var array = Object.values(presenceMap);
2435
+ var array = Object.values(presenceMap).map(function (presence) {
2436
+ presence._hasReceivedInitialPresence;
2437
+ var publicKeys = _objectWithoutPropertiesLoose(presence, ["_hasReceivedInitialPresence"]);
2438
+
2439
+ return publicKeys;
2440
+ });
2421
2441
  return _ref = {
2422
2442
  get count() {
2423
2443
  return array.length;
@@ -2966,17 +2986,23 @@ function makeStateMachine(state, context, mockedEffects) {
2966
2986
  function onUpdatePresenceMessage(message) {
2967
2987
  var user = state.users[message.actor];
2968
2988
 
2989
+ if (message.targetActor === undefined && user != null && !user._hasReceivedInitialPresence) {
2990
+ return undefined;
2991
+ }
2992
+
2969
2993
  if (user == null) {
2970
2994
  state.users[message.actor] = {
2971
2995
  connectionId: message.actor,
2972
- presence: message.data
2996
+ presence: message.data,
2997
+ _hasReceivedInitialPresence: true
2973
2998
  };
2974
2999
  } else {
2975
3000
  state.users[message.actor] = {
2976
3001
  id: user.id,
2977
3002
  info: user.info,
2978
3003
  connectionId: message.actor,
2979
- presence: _extends({}, user.presence, message.data)
3004
+ presence: _extends({}, user.presence, message.data),
3005
+ _hasReceivedInitialPresence: true
2980
3006
  };
2981
3007
  }
2982
3008
 
@@ -3043,7 +3069,8 @@ function makeStateMachine(state, context, mockedEffects) {
3043
3069
  state.users[message.actor] = {
3044
3070
  connectionId: message.actor,
3045
3071
  info: message.info,
3046
- id: message.id
3072
+ id: message.id,
3073
+ _hasReceivedInitialPresence: true
3047
3074
  };
3048
3075
 
3049
3076
  if (state.me) {
@@ -3093,7 +3120,12 @@ function makeStateMachine(state, context, mockedEffects) {
3093
3120
 
3094
3121
  case ServerMessageType.UpdatePresence:
3095
3122
  {
3096
- updates.others.push(onUpdatePresenceMessage(subMessage));
3123
+ var othersPresenceUpdate = onUpdatePresenceMessage(subMessage);
3124
+
3125
+ if (othersPresenceUpdate) {
3126
+ updates.others.push(othersPresenceUpdate);
3127
+ }
3128
+
3097
3129
  break;
3098
3130
  }
3099
3131
 
package/lib/internal.d.ts CHANGED
@@ -25,6 +25,7 @@ declare type UpdatePresenceMessage = {
25
25
  type: ServerMessageType.UpdatePresence;
26
26
  actor: number;
27
27
  data: Presence;
28
+ targetActor?: number;
28
29
  };
29
30
  declare type UserJoinMessage = {
30
31
  type: ServerMessageType.UserJoined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liveblocks/client",
3
- "version": "0.15.7",
3
+ "version": "0.15.8",
4
4
  "description": "",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -65,4 +65,4 @@
65
65
  "url": "https://github.com/liveblocks/liveblocks.git",
66
66
  "directory": "packages/liveblocks-client"
67
67
  }
68
- }
68
+ }