@atlaskit/mention 27.17.1 → 27.18.1

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 (225) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/cjs/api/AbstractMentionResource.js +111 -0
  3. package/dist/cjs/api/AbstractPresenceResource.js +41 -0
  4. package/dist/cjs/api/AbstractResource.js +48 -0
  5. package/dist/cjs/api/Callback.js +5 -0
  6. package/dist/cjs/api/DefaultMentionNameResolver.js +178 -0
  7. package/dist/cjs/api/DefaultPresenceCache.js +159 -0
  8. package/dist/cjs/api/DefaultPresenceParser.js +91 -0
  9. package/dist/cjs/api/HttpError.js +16 -0
  10. package/dist/cjs/api/MentionNameResolver.js +13 -201
  11. package/dist/cjs/api/MentionResource.js +52 -157
  12. package/dist/cjs/api/PresenceResource.js +39 -263
  13. package/dist/cjs/api/Queue.js +5 -0
  14. package/dist/cjs/api/isResolvingMentionProvider.js +9 -0
  15. package/dist/cjs/api/mergeNameResolverQueues.js +36 -0
  16. package/dist/cjs/components/Mention/MentionInternal.js +247 -0
  17. package/dist/cjs/components/Mention/ResourcedMention.js +5 -4
  18. package/dist/cjs/components/Mention/index.js +29 -243
  19. package/dist/cjs/components/MentionAvatar/index.js +5 -4
  20. package/dist/cjs/components/MentionItem/index.js +18 -12
  21. package/dist/cjs/components/MentionList/index.js +4 -3
  22. package/dist/cjs/components/MentionPicker/MentionPicker.js +231 -0
  23. package/dist/cjs/components/MentionPicker/index.js +18 -225
  24. package/dist/cjs/components/MessagesIntlProvider/index.js +2 -2
  25. package/dist/cjs/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +228 -0
  26. package/dist/cjs/components/ResourcedMentionList/index.js +14 -223
  27. package/dist/cjs/index.js +17 -15
  28. package/dist/cjs/is-agent-mention.js +12 -0
  29. package/dist/cjs/is-app-mention.js +10 -0
  30. package/dist/cjs/is-promise.js +9 -0
  31. package/dist/cjs/is-restricted.js +10 -0
  32. package/dist/cjs/is-special-mention-text.js +9 -0
  33. package/dist/cjs/is-special-mention.js +10 -0
  34. package/dist/cjs/is-team-mention.js +10 -0
  35. package/dist/cjs/resource.js +15 -12
  36. package/dist/cjs/team-resource.js +9 -9
  37. package/dist/cjs/typeahead.js +4 -0
  38. package/dist/cjs/types.js +71 -30
  39. package/dist/cjs/util/actual-mouse-move.js +14 -0
  40. package/dist/cjs/util/analytics.js +91 -107
  41. package/dist/cjs/util/build-sli-payload.js +27 -0
  42. package/dist/cjs/util/fire-analytics-mention-event.js +32 -0
  43. package/dist/cjs/util/fire-analytics-mention-hydration-event.js +33 -0
  44. package/dist/cjs/util/fire-analytics-mention-typeahead-event.js +34 -0
  45. package/dist/cjs/util/fire-analytics.js +18 -0
  46. package/dist/cjs/util/fire-sli-analytics-event.js +16 -0
  47. package/dist/cjs/util/get-messages-for-locale.js +233 -0
  48. package/dist/cjs/util/i18n.js +9 -254
  49. package/dist/cjs/util/left-click.js +9 -0
  50. package/dist/cjs/util/mouse-location.js +12 -0
  51. package/dist/cjs/util/mouse.js +1 -26
  52. package/dist/cjs/util/package-name.js +7 -0
  53. package/dist/cjs/util/package-version.js +7 -0
  54. package/dist/cjs/util/prop-formatter.js +25 -0
  55. package/dist/es2019/api/AbstractMentionResource.js +73 -0
  56. package/dist/es2019/api/AbstractPresenceResource.js +17 -0
  57. package/dist/es2019/api/AbstractResource.js +33 -0
  58. package/dist/es2019/api/Callback.js +1 -0
  59. package/dist/es2019/api/DefaultMentionNameResolver.js +152 -0
  60. package/dist/es2019/api/DefaultPresenceCache.js +111 -0
  61. package/dist/es2019/api/DefaultPresenceParser.js +58 -0
  62. package/dist/es2019/api/HttpError.js +8 -0
  63. package/dist/es2019/api/MentionNameResolver.js +13 -176
  64. package/dist/es2019/api/MentionResource.js +28 -122
  65. package/dist/es2019/api/PresenceResource.js +19 -185
  66. package/dist/es2019/api/Queue.js +1 -0
  67. package/dist/es2019/api/isResolvingMentionProvider.js +1 -0
  68. package/dist/es2019/api/mergeNameResolverQueues.js +25 -0
  69. package/dist/es2019/components/Mention/MentionInternal.js +225 -0
  70. package/dist/es2019/components/Mention/ResourcedMention.js +4 -3
  71. package/dist/es2019/components/Mention/index.js +19 -223
  72. package/dist/es2019/components/MentionAvatar/index.js +3 -2
  73. package/dist/es2019/components/MentionItem/index.js +14 -8
  74. package/dist/es2019/components/MentionList/index.js +2 -1
  75. package/dist/es2019/components/MentionPicker/MentionPicker.js +198 -0
  76. package/dist/es2019/components/MentionPicker/index.js +15 -198
  77. package/dist/es2019/components/MessagesIntlProvider/index.js +1 -1
  78. package/dist/es2019/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +187 -0
  79. package/dist/es2019/components/ResourcedMentionList/index.js +9 -187
  80. package/dist/es2019/element.js +5 -0
  81. package/dist/es2019/index.js +13 -9
  82. package/dist/es2019/is-agent-mention.js +6 -0
  83. package/dist/es2019/is-app-mention.js +4 -0
  84. package/dist/es2019/is-promise.js +1 -0
  85. package/dist/es2019/is-restricted.js +4 -0
  86. package/dist/es2019/is-special-mention-text.js +3 -0
  87. package/dist/es2019/is-special-mention.js +4 -0
  88. package/dist/es2019/is-team-mention.js +4 -0
  89. package/dist/es2019/item.js +5 -0
  90. package/dist/es2019/resource.js +15 -5
  91. package/dist/es2019/team-resource.js +10 -4
  92. package/dist/es2019/typeahead.js +5 -0
  93. package/dist/es2019/types.js +30 -21
  94. package/dist/es2019/util/actual-mouse-move.js +8 -0
  95. package/dist/es2019/util/analytics.js +35 -91
  96. package/dist/es2019/util/build-sli-payload.js +18 -0
  97. package/dist/es2019/util/fire-analytics-mention-event.js +24 -0
  98. package/dist/es2019/util/fire-analytics-mention-hydration-event.js +25 -0
  99. package/dist/es2019/util/fire-analytics-mention-typeahead-event.js +24 -0
  100. package/dist/es2019/util/fire-analytics.js +10 -0
  101. package/dist/es2019/util/fire-sli-analytics-event.js +8 -0
  102. package/dist/es2019/util/get-messages-for-locale.js +145 -0
  103. package/dist/es2019/util/i18n.js +2 -165
  104. package/dist/es2019/util/left-click.js +3 -0
  105. package/dist/es2019/util/mouse-location.js +6 -0
  106. package/dist/es2019/util/mouse.js +0 -18
  107. package/dist/es2019/util/package-name.js +1 -0
  108. package/dist/es2019/util/package-version.js +1 -0
  109. package/dist/es2019/util/prop-formatter.js +18 -0
  110. package/dist/esm/api/AbstractMentionResource.js +104 -0
  111. package/dist/esm/api/AbstractPresenceResource.js +34 -0
  112. package/dist/esm/api/AbstractResource.js +41 -0
  113. package/dist/esm/api/Callback.js +1 -0
  114. package/dist/esm/api/DefaultMentionNameResolver.js +171 -0
  115. package/dist/esm/api/DefaultPresenceCache.js +152 -0
  116. package/dist/esm/api/DefaultPresenceParser.js +84 -0
  117. package/dist/esm/api/HttpError.js +9 -0
  118. package/dist/esm/api/MentionNameResolver.js +13 -198
  119. package/dist/esm/api/MentionResource.js +30 -154
  120. package/dist/esm/api/PresenceResource.js +22 -256
  121. package/dist/esm/api/Queue.js +1 -0
  122. package/dist/esm/api/isResolvingMentionProvider.js +3 -0
  123. package/dist/esm/api/mergeNameResolverQueues.js +29 -0
  124. package/dist/esm/components/Mention/MentionInternal.js +242 -0
  125. package/dist/esm/components/Mention/ResourcedMention.js +4 -3
  126. package/dist/esm/components/Mention/index.js +19 -240
  127. package/dist/esm/components/MentionAvatar/index.js +3 -2
  128. package/dist/esm/components/MentionItem/index.js +14 -8
  129. package/dist/esm/components/MentionList/index.js +2 -1
  130. package/dist/esm/components/MentionPicker/MentionPicker.js +225 -0
  131. package/dist/esm/components/MentionPicker/index.js +15 -225
  132. package/dist/esm/components/MessagesIntlProvider/index.js +1 -1
  133. package/dist/esm/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.js +221 -0
  134. package/dist/esm/components/ResourcedMentionList/index.js +9 -221
  135. package/dist/esm/element.js +5 -0
  136. package/dist/esm/index.js +13 -9
  137. package/dist/esm/is-agent-mention.js +6 -0
  138. package/dist/esm/is-app-mention.js +4 -0
  139. package/dist/esm/is-promise.js +3 -0
  140. package/dist/esm/is-restricted.js +4 -0
  141. package/dist/esm/is-special-mention-text.js +3 -0
  142. package/dist/esm/is-special-mention.js +4 -0
  143. package/dist/esm/is-team-mention.js +4 -0
  144. package/dist/esm/item.js +5 -0
  145. package/dist/esm/resource.js +15 -5
  146. package/dist/esm/team-resource.js +10 -4
  147. package/dist/esm/typeahead.js +5 -0
  148. package/dist/esm/types.js +30 -23
  149. package/dist/esm/util/actual-mouse-move.js +8 -0
  150. package/dist/esm/util/analytics.js +35 -105
  151. package/dist/esm/util/build-sli-payload.js +20 -0
  152. package/dist/esm/util/fire-analytics-mention-event.js +26 -0
  153. package/dist/esm/util/fire-analytics-mention-hydration-event.js +27 -0
  154. package/dist/esm/util/fire-analytics-mention-typeahead-event.js +28 -0
  155. package/dist/esm/util/fire-analytics.js +12 -0
  156. package/dist/esm/util/fire-sli-analytics-event.js +10 -0
  157. package/dist/esm/util/get-messages-for-locale.js +163 -0
  158. package/dist/esm/util/i18n.js +2 -183
  159. package/dist/esm/util/left-click.js +3 -0
  160. package/dist/esm/util/mouse-location.js +6 -0
  161. package/dist/esm/util/mouse.js +0 -18
  162. package/dist/esm/util/package-name.js +1 -0
  163. package/dist/esm/util/package-version.js +1 -0
  164. package/dist/esm/util/prop-formatter.js +18 -0
  165. package/dist/types/api/AbstractMentionResource.d.ts +15 -0
  166. package/dist/types/api/AbstractPresenceResource.d.ts +6 -0
  167. package/dist/types/api/AbstractResource.d.ts +11 -0
  168. package/dist/types/api/Callback.d.ts +4 -0
  169. package/dist/types/api/DefaultMentionNameResolver.d.ts +27 -0
  170. package/dist/types/api/DefaultPresenceCache.d.ts +57 -0
  171. package/dist/types/api/DefaultPresenceParser.d.ts +8 -0
  172. package/dist/types/api/HttpError.d.ts +7 -0
  173. package/dist/types/api/MentionNameResolver.d.ts +14 -35
  174. package/dist/types/api/MentionResource.d.ts +18 -33
  175. package/dist/types/api/PresenceResource.d.ts +15 -69
  176. package/dist/types/api/Queue.d.ts +2 -0
  177. package/dist/types/api/isResolvingMentionProvider.d.ts +2 -0
  178. package/dist/types/api/mergeNameResolverQueues.d.ts +6 -0
  179. package/dist/types/components/Mention/MentionInternal.d.ts +27 -0
  180. package/dist/types/components/Mention/ResourcedMention.d.ts +1 -1
  181. package/dist/types/components/Mention/index.d.ts +9 -20
  182. package/dist/types/components/MentionAvatar/index.d.ts +1 -1
  183. package/dist/types/components/MentionItem/index.d.ts +4 -1
  184. package/dist/types/components/MentionPicker/MentionPicker.d.ts +46 -0
  185. package/dist/types/components/MentionPicker/index.d.ts +5 -42
  186. package/dist/types/components/ResourcedMentionList/ResourcedMentionListWithoutAnalytics.d.ts +30 -0
  187. package/dist/types/components/ResourcedMentionList/index.d.ts +5 -27
  188. package/dist/types/element.d.ts +3 -0
  189. package/dist/types/index.d.ts +15 -10
  190. package/dist/types/is-agent-mention.d.ts +2 -0
  191. package/dist/types/is-app-mention.d.ts +2 -0
  192. package/dist/types/is-promise.d.ts +1 -0
  193. package/dist/types/is-restricted.d.ts +1 -0
  194. package/dist/types/is-special-mention-text.d.ts +1 -0
  195. package/dist/types/is-special-mention.d.ts +2 -0
  196. package/dist/types/is-team-mention.d.ts +2 -0
  197. package/dist/types/item.d.ts +3 -0
  198. package/dist/types/resource.d.ts +15 -6
  199. package/dist/types/team-resource.d.ts +10 -4
  200. package/dist/types/typeahead.d.ts +3 -0
  201. package/dist/types/types.d.ts +28 -8
  202. package/dist/types/util/actual-mouse-move.d.ts +2 -0
  203. package/dist/types/util/analytics.d.ts +33 -10
  204. package/dist/types/util/build-sli-payload.d.ts +4 -0
  205. package/dist/types/util/fire-analytics-mention-event.d.ts +1 -0
  206. package/dist/types/util/fire-analytics-mention-hydration-event.d.ts +1 -0
  207. package/dist/types/util/fire-analytics-mention-typeahead-event.d.ts +1 -0
  208. package/dist/types/util/fire-analytics.d.ts +1 -0
  209. package/dist/types/util/fire-sli-analytics-event.d.ts +1 -0
  210. package/dist/types/util/get-messages-for-locale.d.ts +11 -0
  211. package/dist/types/util/i18n.d.ts +0 -15
  212. package/dist/types/util/left-click.d.ts +2 -0
  213. package/dist/types/util/mouse-location.d.ts +3 -0
  214. package/dist/types/util/mouse.d.ts +0 -4
  215. package/dist/types/util/package-name.d.ts +1 -0
  216. package/dist/types/util/package-version.d.ts +1 -0
  217. package/dist/types/util/prop-formatter.d.ts +5 -0
  218. package/package.json +2 -2
  219. package/dist/cjs/i18n/index.js +0 -216
  220. package/dist/es2019/i18n/index.js +0 -37
  221. package/dist/esm/i18n/index.js +0 -37
  222. package/dist/types/i18n/index.d.ts +0 -37
  223. /package/dist/cjs/components/Mention/{index.compiled.css → MentionInternal.compiled.css} +0 -0
  224. /package/dist/es2019/components/Mention/{index.compiled.css → MentionInternal.compiled.css} +0 -0
  225. /package/dist/esm/components/Mention/{index.compiled.css → MentionInternal.compiled.css} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # @atlaskit/mention
2
2
 
3
+ ## 27.18.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 27.18.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`febe6719dffd4`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/febe6719dffd4) -
14
+ Apply Volt multi-export standards via `volt-migrate-package`. `@atlaskit/mention` already resolved
15
+ its subpaths directly to `./src/*`, so the `exports` map is **unchanged** — all 24 public subpaths
16
+ keep their existing targets. What changed is the module layout: multi-export modules were split so
17
+ each shippable module owns a single export (for example `api/AbstractResource.ts`,
18
+ `api/DefaultMentionNameResolver.ts`, `api/HttpError.ts`, `is-special-mention.ts`,
19
+ `is-promise.ts`), with `@deprecated` compatibility re-exports left behind on the original module.
20
+
21
+ ### No public API was removed
22
+
23
+ Every symbol that moved is still exported from the subpath that previously exposed it, so existing
24
+ imports keep working:
25
+
26
+ ```ts
27
+ // Still valid — no change required, but deprecated
28
+ import { AbstractMentionResource } from '@atlaskit/mention/resource';
29
+ ```
30
+
31
+ A few subpaths now expose additional symbols as a result of the split:
32
+ - `./analytics` — `MENTION_ANALYTICS_PREFIX`, `packageName`, `packageVersion`
33
+ - `./mention-name-resolver` — the `Callback` and `Queue` types
34
+ - `./presence-resource` — `PresenceResource` as a named export alongside its default
35
+
36
+ ### Note for consumers that mock these modules
37
+
38
+ Internal cross-module imports now point at the split modules rather than the module that used to
39
+ declare everything. If your tests `jest.mock()` a `@atlaskit/mention` subpath to intercept a
40
+ symbol that mention itself consumes internally, the mock may no longer take effect — mock the
41
+ module that now owns the export instead.
42
+
3
43
  ## 27.17.1
4
44
 
5
45
  ### Patch Changes
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AbstractMentionResource = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _logger = _interopRequireDefault(require("../util/logger"));
14
+ var _AbstractResource2 = require("./AbstractResource");
15
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
16
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
17
+ var MAX_NOTIFIED_ITEMS = 20;
18
+ var AbstractMentionResource = exports.AbstractMentionResource = /*#__PURE__*/function (_AbstractResource) {
19
+ function AbstractMentionResource() {
20
+ (0, _classCallCheck2.default)(this, AbstractMentionResource);
21
+ return _callSuper(this, AbstractMentionResource, arguments);
22
+ }
23
+ (0, _inherits2.default)(AbstractMentionResource, _AbstractResource);
24
+ return (0, _createClass2.default)(AbstractMentionResource, [{
25
+ key: "shouldHighlightMention",
26
+ value: function shouldHighlightMention(_mention) {
27
+ return false;
28
+ }
29
+
30
+ // eslint-disable-next-line class-methods-use-this
31
+ }, {
32
+ key: "filter",
33
+ value: function filter(query) {
34
+ throw new Error("not yet implemented.\nParams: query=".concat(query));
35
+ }
36
+
37
+ // eslint-disable-next-line class-methods-use-this, no-unused-vars
38
+ }, {
39
+ key: "recordMentionSelection",
40
+ value: function recordMentionSelection(_mention) {
41
+ // Do nothing
42
+ }
43
+ }, {
44
+ key: "isFiltering",
45
+ value: function isFiltering(_query) {
46
+ return false;
47
+ }
48
+ }, {
49
+ key: "_notifyListeners",
50
+ value: function _notifyListeners(mentionsResult, stats) {
51
+ (0, _logger.default)('ak-mention-resource._notifyListeners', mentionsResult && mentionsResult.mentions && mentionsResult.mentions.length, this.changeListeners);
52
+ this.changeListeners.forEach(function (listener, key) {
53
+ try {
54
+ listener(mentionsResult.mentions.slice(0, MAX_NOTIFIED_ITEMS), mentionsResult.query, stats);
55
+ } catch (e) {
56
+ // ignore error from listener
57
+ (0, _logger.default)("error from listener '".concat(key, "', ignoring"), e);
58
+ }
59
+ });
60
+ }
61
+ }, {
62
+ key: "_notifyAllResultsListeners",
63
+ value: function _notifyAllResultsListeners(mentionsResult) {
64
+ (0, _logger.default)('ak-mention-resource._notifyAllResultsListeners', mentionsResult && mentionsResult.mentions && mentionsResult.mentions.length, this.changeListeners);
65
+ this.allResultsListeners.forEach(function (listener, key) {
66
+ try {
67
+ listener(mentionsResult.mentions.slice(0, MAX_NOTIFIED_ITEMS), mentionsResult.query);
68
+ } catch (e) {
69
+ // ignore error from listener
70
+ (0, _logger.default)("error from listener '".concat(key, "', ignoring"), e);
71
+ }
72
+ });
73
+ }
74
+ }, {
75
+ key: "_notifyErrorListeners",
76
+ value: function _notifyErrorListeners(error, query) {
77
+ this.errListeners.forEach(function (listener, key) {
78
+ try {
79
+ listener(error, query);
80
+ } catch (e) {
81
+ // ignore error from listener
82
+ (0, _logger.default)("error from listener '".concat(key, "', ignoring"), e);
83
+ }
84
+ });
85
+ }
86
+ }, {
87
+ key: "_notifyInfoListeners",
88
+ value: function _notifyInfoListeners(info) {
89
+ this.infoListeners.forEach(function (listener, key) {
90
+ try {
91
+ listener(info);
92
+ } catch (e) {
93
+ // ignore error fromr listener
94
+ (0, _logger.default)("error from listener '".concat(key, "', ignoring"), e);
95
+ }
96
+ });
97
+ }
98
+ }, {
99
+ key: "_notifyAnalyticsListeners",
100
+ value: function _notifyAnalyticsListeners(event, actionSubject, action, attributes) {
101
+ this.analyticsListeners.forEach(function (listener, key) {
102
+ try {
103
+ listener(event, actionSubject, action, attributes);
104
+ } catch (e) {
105
+ // ignore error from listener
106
+ (0, _logger.default)("error from listener '".concat(key, "', ignoring"), e);
107
+ }
108
+ });
109
+ }
110
+ }]);
111
+ }(_AbstractResource2.AbstractResource);
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AbstractPresenceResource = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _logger = _interopRequireDefault(require("../util/logger"));
14
+ var _AbstractResource2 = require("./AbstractResource");
15
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
16
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
17
+ var AbstractPresenceResource = exports.AbstractPresenceResource = /*#__PURE__*/function (_AbstractResource) {
18
+ function AbstractPresenceResource() {
19
+ (0, _classCallCheck2.default)(this, AbstractPresenceResource);
20
+ return _callSuper(this, AbstractPresenceResource, arguments);
21
+ }
22
+ (0, _inherits2.default)(AbstractPresenceResource, _AbstractResource);
23
+ return (0, _createClass2.default)(AbstractPresenceResource, [{
24
+ key: "refreshPresence",
25
+ value: function refreshPresence(userIds) {
26
+ throw new Error("not yet implemented.\nParams: userIds=".concat(userIds));
27
+ }
28
+ }, {
29
+ key: "notifyListeners",
30
+ value: function notifyListeners(presences) {
31
+ this.changeListeners.forEach(function (listener, key) {
32
+ try {
33
+ listener(presences);
34
+ } catch (e) {
35
+ // ignore error from listener
36
+ (0, _logger.default)("error from listener '".concat(key, "', ignoring"), e);
37
+ }
38
+ });
39
+ }
40
+ }]);
41
+ }(_AbstractResource2.AbstractResource);
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AbstractResource = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var AbstractResource = exports.AbstractResource = /*#__PURE__*/function () {
11
+ function AbstractResource() {
12
+ (0, _classCallCheck2.default)(this, AbstractResource);
13
+ this.changeListeners = new Map();
14
+ this.allResultsListeners = new Map();
15
+ this.errListeners = new Map();
16
+ this.infoListeners = new Map();
17
+ this.analyticsListeners = new Map();
18
+ }
19
+ return (0, _createClass2.default)(AbstractResource, [{
20
+ key: "subscribe",
21
+ value: function subscribe(key, callback, errCallback, infoCallback, allResultsCallback, analyticsListeners) {
22
+ if (callback) {
23
+ this.changeListeners.set(key, callback);
24
+ }
25
+ if (errCallback) {
26
+ this.errListeners.set(key, errCallback);
27
+ }
28
+ if (infoCallback) {
29
+ this.infoListeners.set(key, infoCallback);
30
+ }
31
+ if (allResultsCallback) {
32
+ this.allResultsListeners.set(key, allResultsCallback);
33
+ }
34
+ if (analyticsListeners) {
35
+ this.analyticsListeners.set(key, analyticsListeners);
36
+ }
37
+ }
38
+ }, {
39
+ key: "unsubscribe",
40
+ value: function unsubscribe(key) {
41
+ this.changeListeners.delete(key);
42
+ this.errListeners.delete(key);
43
+ this.infoListeners.delete(key);
44
+ this.allResultsListeners.delete(key);
45
+ this.analyticsListeners.delete(key);
46
+ }
47
+ }]);
48
+ }();
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DefaultMentionNameResolver = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _types = require("../types");
13
+ var _fireAnalyticsMentionHydrationEvent = require("../util/fire-analytics-mention-hydration-event");
14
+ var _mergeNameResolverQueues = require("./mergeNameResolverQueues");
15
+ var DefaultMentionNameResolver = exports.DefaultMentionNameResolver = /*#__PURE__*/function () {
16
+ function DefaultMentionNameResolver(client) {
17
+ var _this = this;
18
+ var analyticsProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
19
+ var onResolvedAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
20
+ (0, _classCallCheck2.default)(this, DefaultMentionNameResolver);
21
+ (0, _defineProperty2.default)(this, "nameCache", new Map());
22
+ (0, _defineProperty2.default)(this, "nameQueue", new Map());
23
+ (0, _defineProperty2.default)(this, "nameStartTime", new Map());
24
+ (0, _defineProperty2.default)(this, "processingQueue", new Map());
25
+ (0, _defineProperty2.default)(this, "debounce", 0);
26
+ (0, _defineProperty2.default)(this, "debounceOnResolve", null);
27
+ (0, _defineProperty2.default)(this, "isOnResolvedAllCalled", false);
28
+ (0, _defineProperty2.default)(this, "processQueue", function () {
29
+ clearTimeout(_this.debounce);
30
+ _this.debounce = 0;
31
+ var _this$splitQueueAtLim = _this.splitQueueAtLimit(),
32
+ queue = _this$splitQueueAtLim.queue,
33
+ extraQueue = _this$splitQueueAtLim.extraQueue;
34
+ _this.nameQueue = extraQueue;
35
+ _this.processingQueue = (0, _mergeNameResolverQueues.mergeNameResolverQueues)(_this.processingQueue, queue);
36
+ _this.client.lookupMentionNames(Array.from(queue.keys())).then(function (response) {
37
+ response.forEach(function (mentionDetail) {
38
+ var id = mentionDetail.id;
39
+ queue.delete(id);
40
+ _this.resolveQueueItem(mentionDetail);
41
+ });
42
+ queue.forEach(function (_callback, id) {
43
+ // No response from client for these ids treat as unknown
44
+ _this.resolveQueueItem({
45
+ id: id,
46
+ status: _types.MentionNameStatus.UNKNOWN
47
+ });
48
+ });
49
+ }).catch(function () {
50
+ // Service completely failed, reject all items in the queue
51
+ queue.forEach(function (_callback, id) {
52
+ _this.resolveQueueItem({
53
+ id: id,
54
+ status: _types.MentionNameStatus.SERVICE_ERROR
55
+ });
56
+ });
57
+ });
58
+
59
+ // Make sure anything left in the queue gets processed.
60
+ if (_this.nameQueue.size > 0) {
61
+ _this.scheduleProcessQueue();
62
+ } else {
63
+ _this.scheduleOnAllResolved();
64
+ }
65
+ });
66
+ this.client = client;
67
+ this.fireHydrationEvent = (0, _fireAnalyticsMentionHydrationEvent.fireAnalyticsMentionHydrationEvent)(analyticsProps);
68
+ // If provided, this will be called once all pending mentions in the queue are resolved.
69
+ // A sample usage is scrolling to a mention on page load, after the mentions have loadad.
70
+ this.onResolvedAll = onResolvedAll;
71
+ }
72
+ return (0, _createClass2.default)(DefaultMentionNameResolver, [{
73
+ key: "lookupName",
74
+ value: function lookupName(id) {
75
+ var _this2 = this;
76
+ var name = this.nameCache.get(id);
77
+ if (name) {
78
+ this.fireAnalytics(true, name);
79
+ if (this.nameQueue.size === 0) {
80
+ this.scheduleOnAllResolved();
81
+ }
82
+ return name;
83
+ }
84
+ return new Promise(function (resolve) {
85
+ var processingItems = _this2.processingQueue.get(id);
86
+ if (processingItems) {
87
+ _this2.processingQueue.set(id, [].concat((0, _toConsumableArray2.default)(processingItems), [resolve]));
88
+ }
89
+ var queuedItems = _this2.nameQueue.get(id) || [];
90
+ _this2.nameQueue.set(id, [].concat((0, _toConsumableArray2.default)(queuedItems), [resolve]));
91
+ if (queuedItems.length === 0 && !processingItems) {
92
+ _this2.nameStartTime.set(id, Date.now());
93
+ }
94
+ _this2.scheduleProcessQueue();
95
+ if (_this2.isQueueAtLimit()) {
96
+ _this2.processQueue();
97
+ }
98
+ });
99
+ }
100
+ }, {
101
+ key: "cacheName",
102
+ value: function cacheName(id, name) {
103
+ this.nameCache.set(id, {
104
+ id: id,
105
+ name: name,
106
+ status: _types.MentionNameStatus.OK
107
+ });
108
+ }
109
+ }, {
110
+ key: "scheduleProcessQueue",
111
+ value: function scheduleProcessQueue() {
112
+ if (!this.debounce) {
113
+ this.debounce = window.setTimeout(this.processQueue, DefaultMentionNameResolver.waitForBatch);
114
+ }
115
+ }
116
+ }, {
117
+ key: "scheduleOnAllResolved",
118
+ value: function scheduleOnAllResolved() {
119
+ var _this3 = this;
120
+ if (this.debounceOnResolve) {
121
+ clearTimeout(this.debounceOnResolve);
122
+ }
123
+ this.debounceOnResolve = window.setTimeout(function () {
124
+ if (_this3.isOnResolvedAllCalled) {
125
+ return;
126
+ }
127
+ _this3.onResolvedAll();
128
+ _this3.isOnResolvedAllCalled = true;
129
+ }, DefaultMentionNameResolver.waitForResolveAll);
130
+ }
131
+ }, {
132
+ key: "isQueueAtLimit",
133
+ value: function isQueueAtLimit() {
134
+ return this.nameQueue.size >= this.client.getLookupLimit();
135
+ }
136
+ }, {
137
+ key: "splitQueueAtLimit",
138
+ value: function splitQueueAtLimit() {
139
+ var values = Array.from(this.nameQueue.entries());
140
+ var splitPoint = this.client.getLookupLimit();
141
+ return {
142
+ queue: new Map(values.slice(0, splitPoint)),
143
+ extraQueue: new Map(values.slice(splitPoint))
144
+ };
145
+ }
146
+ }, {
147
+ key: "resolveQueueItem",
148
+ value: function resolveQueueItem(mentionDetail) {
149
+ var id = mentionDetail.id;
150
+ var resolvers = this.processingQueue.get(id);
151
+ if (resolvers) {
152
+ this.processingQueue.delete(id);
153
+ this.nameCache.set(id, mentionDetail);
154
+ resolvers.forEach(function (resolve) {
155
+ try {
156
+ resolve(mentionDetail);
157
+ } catch (_unused) {
158
+ // ignore - exception in consumer
159
+ }
160
+ });
161
+ this.fireAnalytics(false, mentionDetail);
162
+ }
163
+ }
164
+ }, {
165
+ key: "fireAnalytics",
166
+ value: function fireAnalytics(fromCache, mentionDetail) {
167
+ var id = mentionDetail.id;
168
+ var action = mentionDetail.status === _types.MentionNameStatus.OK ? 'completed' : 'failed';
169
+ var start = this.nameStartTime.get(id);
170
+ var duration = start ? Date.now() - start : 0;
171
+ this.nameStartTime.delete(id);
172
+ this.fireHydrationEvent(action, id, fromCache, duration);
173
+ }
174
+ }]);
175
+ }();
176
+ (0, _defineProperty2.default)(DefaultMentionNameResolver, "waitForBatch", 100);
177
+ // ms
178
+ (0, _defineProperty2.default)(DefaultMentionNameResolver, "waitForResolveAll", 800);
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DefaultPresenceCache = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
12
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
13
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
14
+ var CacheEntry = /*#__PURE__*/function () {
15
+ function CacheEntry(pres, timeout) {
16
+ (0, _classCallCheck2.default)(this, CacheEntry);
17
+ this.presence = pres;
18
+ this.expiry = Date.now() + timeout;
19
+ }
20
+ return (0, _createClass2.default)(CacheEntry, [{
21
+ key: "expired",
22
+ value: function expired() {
23
+ return Date.now() > this.expiry;
24
+ }
25
+ }]);
26
+ }();
27
+ var DefaultPresenceCache = exports.DefaultPresenceCache = /*#__PURE__*/function () {
28
+ function DefaultPresenceCache(cacheTimeout, cacheTrigger) {
29
+ (0, _classCallCheck2.default)(this, DefaultPresenceCache);
30
+ this.expiryInMillis = cacheTimeout ? cacheTimeout : DefaultPresenceCache.defaultTimeout;
31
+ this.flushTrigger = cacheTrigger ? cacheTrigger : DefaultPresenceCache.defaultFlushTrigger;
32
+ this.cache = {};
33
+ this.size = 0;
34
+ }
35
+
36
+ /**
37
+ * Precondition: _delete is only called internally if userId exists in cache
38
+ * Removes cache entry
39
+ * @param userId
40
+ */
41
+ return (0, _createClass2.default)(DefaultPresenceCache, [{
42
+ key: "_delete",
43
+ value: function _delete(userId) {
44
+ delete this.cache[userId];
45
+ this.size--;
46
+ }
47
+
48
+ /**
49
+ * Checks a cache entry and calls delete if the info has expired
50
+ * @param userId
51
+ */
52
+ }, {
53
+ key: "_deleteIfExpired",
54
+ value: function _deleteIfExpired(userId) {
55
+ if (this.contains(userId) && this.cache[userId].expired()) {
56
+ this._delete(userId);
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Cleans expired entries from cache
62
+ */
63
+ }, {
64
+ key: "_removeExpired",
65
+ value: function _removeExpired() {
66
+ var _this = this;
67
+ Object.keys(this.cache).forEach(function (id) {
68
+ _this._deleteIfExpired(id);
69
+ });
70
+ }
71
+
72
+ /**
73
+ * Checks if a user exists in the cache
74
+ * @param userId
75
+ */
76
+ }, {
77
+ key: "contains",
78
+ value: function contains(userId) {
79
+ return this.cache.hasOwnProperty(userId);
80
+ }
81
+
82
+ /**
83
+ * Retrieves a presence from the cache after checking for expired entries
84
+ * @param userId - to index the cache
85
+ * @returns Presence - the presence that matches the userId
86
+ */
87
+ }, {
88
+ key: "get",
89
+ value: function get(userId) {
90
+ this._deleteIfExpired(userId);
91
+ if (!this.contains(userId)) {
92
+ return {};
93
+ }
94
+ return this.cache[userId].presence;
95
+ }
96
+
97
+ /**
98
+ * Retrieve multiple presences at once from the cache
99
+ * @param userIds - to index the cache
100
+ * @returns PresenceMap - A map of userIds to cached Presences
101
+ */
102
+ }, {
103
+ key: "getBulk",
104
+ value: function getBulk(userIds) {
105
+ var presences = {};
106
+ var _iterator = _createForOfIteratorHelper(userIds),
107
+ _step;
108
+ try {
109
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
110
+ var _userId = _step.value;
111
+ if (this.contains(_userId)) {
112
+ presences[_userId] = this.get(_userId);
113
+ }
114
+ }
115
+ } catch (err) {
116
+ _iterator.e(err);
117
+ } finally {
118
+ _iterator.f();
119
+ }
120
+ return presences;
121
+ }
122
+
123
+ /**
124
+ * For a given list of ids, returns a subset
125
+ * of all the ids with missing cache entries.
126
+ * @param userIds - to index the cache
127
+ * @returns string[] - ids missing from the cache
128
+ */
129
+ }, {
130
+ key: "getMissingUserIds",
131
+ value: function getMissingUserIds(userIds) {
132
+ var _this2 = this;
133
+ return userIds.filter(function (id) {
134
+ return !_this2.contains(id);
135
+ });
136
+ }
137
+
138
+ /**
139
+ * Precondition: presMap only contains ids of users not in cache
140
+ * expired users must first be removed then reinserted with updated presence
141
+ * Updates the cache by adding the new Presence entries and setting the expiry time
142
+ * @param presMap
143
+ */
144
+ }, {
145
+ key: "update",
146
+ value: function update(presMap) {
147
+ var _this3 = this;
148
+ if (this.size >= this.flushTrigger) {
149
+ this._removeExpired();
150
+ }
151
+ Object.keys(presMap).forEach(function (userId) {
152
+ _this3.cache[userId] = new CacheEntry(presMap[userId], _this3.expiryInMillis);
153
+ _this3.size++;
154
+ });
155
+ }
156
+ }]);
157
+ }();
158
+ (0, _defineProperty2.default)(DefaultPresenceCache, "defaultTimeout", 20000);
159
+ (0, _defineProperty2.default)(DefaultPresenceCache, "defaultFlushTrigger", 50);
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DefaultPresenceParser = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
12
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
13
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
14
+ var DefaultPresenceParser = exports.DefaultPresenceParser = /*#__PURE__*/function () {
15
+ function DefaultPresenceParser() {
16
+ (0, _classCallCheck2.default)(this, DefaultPresenceParser);
17
+ }
18
+ return (0, _createClass2.default)(DefaultPresenceParser, [{
19
+ key: "mapState",
20
+ value: function mapState(state) {
21
+ if (state === 'unavailable') {
22
+ return 'offline';
23
+ } else if (state === 'available') {
24
+ return 'online';
25
+ } else {
26
+ return state;
27
+ }
28
+ }
29
+ }, {
30
+ key: "parse",
31
+ value: function parse(response) {
32
+ var presences = {};
33
+ if (response.hasOwnProperty('data') && response['data'].hasOwnProperty('PresenceBulk')) {
34
+ var results = response['data'].PresenceBulk;
35
+ // Store map of state and time indexed by userId. Ignore null results.
36
+ var _iterator = _createForOfIteratorHelper(results),
37
+ _step;
38
+ try {
39
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
40
+ var user = _step.value;
41
+ if (user.userId && user.state) {
42
+ var state = DefaultPresenceParser.extractState(user) || user.state;
43
+ presences[user.userId] = {
44
+ status: this.mapState(state)
45
+ };
46
+ } else if (!user.hasOwnProperty('userId') || !user.hasOwnProperty('state')) {
47
+ // eslint-disable-next-line no-console
48
+ console.error('Unexpected response from presence service contains keys: ' + Object.keys(user));
49
+ }
50
+ }
51
+ } catch (err) {
52
+ _iterator.e(err);
53
+ } finally {
54
+ _iterator.f();
55
+ }
56
+ }
57
+ return presences;
58
+ }
59
+ }], [{
60
+ key: "extractState",
61
+ value: function extractState(presence) {
62
+ if (DefaultPresenceParser.isFocusState(presence)) {
63
+ return DefaultPresenceParser.FOCUS_STATE;
64
+ }
65
+ return presence.state;
66
+ }
67
+
68
+ /*
69
+ This is a bit of an odd exception. In the case where a user is in "Focus Mode", their presence state
70
+ is returned as 'busy' along with a `stateMetadata` object containing a `focus` field.
71
+ In this case we ignore the value of the `state` field and treat the presence as a 'focus' state.
72
+ */
73
+ }, {
74
+ key: "isFocusState",
75
+ value: function isFocusState(presence) {
76
+ if (presence.stateMetadata) {
77
+ try {
78
+ var metadata = JSON.parse(presence.stateMetadata);
79
+ return metadata && !!metadata.focus;
80
+ } catch (e) {
81
+ // eslint-disable-next-line no-console
82
+ console.error("Failed to parse presence's stateMetadata for user with id ".concat(presence.userId, ": ").concat(presence.stateMetadata));
83
+ // eslint-disable-next-line no-console
84
+ console.error(e);
85
+ }
86
+ }
87
+ return false;
88
+ }
89
+ }]);
90
+ }();
91
+ (0, _defineProperty2.default)(DefaultPresenceParser, "FOCUS_STATE", 'focus');