botframework-webchat-core 4.14.1 → 4.15.2-main.20220413.af6e8a3

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 (238) hide show
  1. package/.eslintrc.yml +4 -198
  2. package/.prettierrc.yml +1 -1
  3. package/babel.config.json +1 -1
  4. package/lib/actions/clearSuggestedActions.js +1 -1
  5. package/lib/actions/connect.js +1 -1
  6. package/lib/actions/connectionStatusUpdate.js +1 -1
  7. package/lib/actions/deleteActivity.d.ts +13 -0
  8. package/lib/actions/deleteActivity.d.ts.map +1 -0
  9. package/lib/actions/deleteActivity.js +5 -3
  10. package/lib/actions/disconnect.js +1 -1
  11. package/lib/actions/dismissNotification.js +1 -1
  12. package/lib/actions/emitTypingIndicator.js +1 -1
  13. package/lib/actions/incomingActivity.d.ts +14 -0
  14. package/lib/actions/incomingActivity.d.ts.map +1 -0
  15. package/lib/actions/incomingActivity.js +5 -3
  16. package/lib/actions/markActivity.d.ts +17 -0
  17. package/lib/actions/markActivity.d.ts.map +1 -0
  18. package/lib/actions/markActivity.js +5 -3
  19. package/lib/actions/postActivity.d.ts +52 -0
  20. package/lib/actions/postActivity.d.ts.map +1 -0
  21. package/lib/actions/postActivity.js +5 -3
  22. package/lib/actions/queueIncomingActivity.js +1 -1
  23. package/lib/actions/sagaError.js +1 -1
  24. package/lib/actions/sendEvent.js +1 -1
  25. package/lib/actions/sendFiles.js +1 -1
  26. package/lib/actions/sendMessage.js +1 -1
  27. package/lib/actions/sendMessageBack.js +1 -1
  28. package/lib/actions/sendPostBack.js +1 -1
  29. package/lib/actions/setDictateInterims.js +1 -1
  30. package/lib/actions/setDictateState.js +1 -1
  31. package/lib/actions/setLanguage.js +1 -1
  32. package/lib/actions/setNotification.js +2 -2
  33. package/lib/actions/setReferenceGrammarID.js +1 -1
  34. package/lib/actions/setSendBox.js +1 -1
  35. package/lib/actions/setSendTimeout.js +1 -1
  36. package/lib/actions/setSendTypingIndicator.js +1 -1
  37. package/lib/actions/setSuggestedActions.js +1 -1
  38. package/lib/actions/startDictate.js +1 -1
  39. package/lib/actions/startSpeakingActivity.js +1 -1
  40. package/lib/actions/stopDictate.js +1 -1
  41. package/lib/actions/stopSpeakingActivity.js +1 -1
  42. package/lib/actions/submitSendBox.js +1 -1
  43. package/lib/actions/updateConnectionStatus.js +1 -1
  44. package/lib/constants/ActivityClientState.js +1 -1
  45. package/lib/createStore.d.ts.map +1 -1
  46. package/lib/createStore.js +5 -5
  47. package/lib/definitions/speakingActivity.js +4 -2
  48. package/lib/index.d.ts +17 -15
  49. package/lib/index.d.ts.map +1 -1
  50. package/lib/index.js +12 -3
  51. package/lib/reducer.d.ts +1 -2
  52. package/lib/reducer.d.ts.map +1 -1
  53. package/lib/reducer.js +1 -4
  54. package/lib/reducers/activities.d.ts +10 -0
  55. package/lib/reducers/activities.d.ts.map +1 -0
  56. package/lib/reducers/activities.js +65 -45
  57. package/lib/reducers/notifications.js +21 -14
  58. package/lib/reducers/typing.js +13 -7
  59. package/lib/sagas/connectionStatusToNotificationSaga.js +1 -1
  60. package/lib/sagas/effects/observeOnce.js +1 -1
  61. package/lib/sagas/effects/whileConnected.js +1 -1
  62. package/lib/sagas/observeActivitySaga.js +21 -3
  63. package/lib/sagas/postActivitySaga.js +51 -72
  64. package/lib/sagas/queueIncomingActivitySaga.js +1 -1
  65. package/lib/sagas/sendFilesToPostActivitySaga.js +4 -4
  66. package/lib/sagas/sendMessageBackToPostActivitySaga.js +1 -1
  67. package/lib/sagas/sendTypingIndicatorOnSetSendBoxSaga.js +1 -1
  68. package/lib/sagas/speakActivityAndStartDictateOnIncomingActivityFromOthersSaga.js +1 -1
  69. package/lib/sagas/startSpeakActivityOnPostActivitySaga.js +1 -1
  70. package/lib/sagas/stopSpeakingActivityOnInputSaga.js +1 -1
  71. package/lib/sagas/submitSendBoxSaga.js +1 -1
  72. package/lib/selectors/activities.js +1 -1
  73. package/lib/selectors/combineSelectors.js +9 -4
  74. package/lib/selectors/dictateState.js +1 -1
  75. package/lib/selectors/language.js +1 -1
  76. package/lib/selectors/notifications.js +1 -1
  77. package/lib/selectors/sendBoxValue.js +1 -1
  78. package/lib/selectors/sendTimeout.js +1 -1
  79. package/lib/selectors/sendTypingIndicator.js +1 -1
  80. package/lib/selectors/shouldSpeakIncomingActivity.js +1 -1
  81. package/lib/types/AnyAnd.d.ts +2 -0
  82. package/lib/types/AnyAnd.d.ts.map +1 -0
  83. package/lib/types/AnyAnd.js +6 -0
  84. package/lib/types/OneOrMany.js +4 -0
  85. package/lib/types/WebChatActivity.d.ts +81 -0
  86. package/lib/types/WebChatActivity.d.ts.map +1 -0
  87. package/lib/types/WebChatActivity.js +6 -0
  88. package/lib/types/external/DirectLineActivity.d.ts +2 -2
  89. package/lib/types/external/DirectLineActivity.d.ts.map +1 -1
  90. package/lib/types/external/DirectLineActivity.js +4 -0
  91. package/lib/types/external/DirectLineAnimationCard.d.ts +5 -2
  92. package/lib/types/external/DirectLineAnimationCard.d.ts.map +1 -1
  93. package/lib/types/external/DirectLineAnimationCard.js +4 -0
  94. package/lib/types/external/DirectLineAttachment.d.ts +8 -2
  95. package/lib/types/external/DirectLineAttachment.d.ts.map +1 -1
  96. package/lib/types/external/DirectLineAttachment.js +4 -0
  97. package/lib/types/external/DirectLineAudioCard.d.ts +5 -2
  98. package/lib/types/external/DirectLineAudioCard.d.ts.map +1 -1
  99. package/lib/types/external/DirectLineAudioCard.js +4 -0
  100. package/lib/types/external/DirectLineBasicCardEssence.d.ts +12 -0
  101. package/lib/types/external/DirectLineBasicCardEssence.d.ts.map +1 -0
  102. package/lib/types/external/DirectLineBasicCardEssence.js +6 -0
  103. package/lib/types/external/DirectLineCardAction.d.ts +1 -1
  104. package/lib/types/external/DirectLineCardAction.d.ts.map +1 -1
  105. package/lib/types/external/DirectLineCardAction.js +4 -0
  106. package/lib/types/external/DirectLineCardImage.d.ts +8 -0
  107. package/lib/types/external/DirectLineCardImage.d.ts.map +1 -0
  108. package/lib/types/external/DirectLineCardImage.js +6 -0
  109. package/lib/types/external/DirectLineHeroCard.d.ts +5 -2
  110. package/lib/types/external/DirectLineHeroCard.d.ts.map +1 -1
  111. package/lib/types/external/DirectLineHeroCard.js +4 -0
  112. package/lib/types/external/DirectLineJSBotConnection.d.ts +1 -1
  113. package/lib/types/external/DirectLineJSBotConnection.d.ts.map +1 -1
  114. package/lib/types/external/DirectLineJSBotConnection.js +4 -0
  115. package/lib/types/external/DirectLineMediaCardEssence.d.ts +21 -0
  116. package/lib/types/external/DirectLineMediaCardEssence.d.ts.map +1 -0
  117. package/lib/types/external/DirectLineMediaCardEssence.js +6 -0
  118. package/lib/types/external/DirectLineOAuthCard.d.ts +7 -2
  119. package/lib/types/external/DirectLineOAuthCard.d.ts.map +1 -1
  120. package/lib/types/external/DirectLineOAuthCard.js +4 -0
  121. package/lib/types/external/DirectLineReceiptCard.d.ts +27 -2
  122. package/lib/types/external/DirectLineReceiptCard.d.ts.map +1 -1
  123. package/lib/types/external/DirectLineReceiptCard.js +4 -0
  124. package/lib/types/external/DirectLineSignInCard.d.ts +7 -2
  125. package/lib/types/external/DirectLineSignInCard.d.ts.map +1 -1
  126. package/lib/types/external/DirectLineSignInCard.js +4 -0
  127. package/lib/types/external/DirectLineSuggestedAction.d.ts +6 -2
  128. package/lib/types/external/DirectLineSuggestedAction.d.ts.map +1 -1
  129. package/lib/types/external/DirectLineSuggestedAction.js +4 -0
  130. package/lib/types/external/DirectLineThumbnailCard.d.ts +5 -2
  131. package/lib/types/external/DirectLineThumbnailCard.d.ts.map +1 -1
  132. package/lib/types/external/DirectLineThumbnailCard.js +4 -0
  133. package/lib/types/external/DirectLineVideoCard.d.ts +5 -2
  134. package/lib/types/external/DirectLineVideoCard.d.ts.map +1 -1
  135. package/lib/types/external/DirectLineVideoCard.js +4 -0
  136. package/lib/types/external/Observable.js +6 -0
  137. package/lib/types/internal/Notification.js +6 -0
  138. package/lib/types/internal/ReduxState.js +6 -0
  139. package/lib/utils/dateToLocaleISOString.js +5 -5
  140. package/lib/utils/deleteKey.js +2 -3
  141. package/lib/utils/isForbiddenPropertyName.d.ts +2 -0
  142. package/lib/utils/isForbiddenPropertyName.d.ts.map +1 -0
  143. package/lib/utils/isForbiddenPropertyName.js +21 -0
  144. package/lib/utils/sleep.js +1 -1
  145. package/lib/utils/uniqueID.js +1 -1
  146. package/package.json +20 -23
  147. package/src/__tests__/detectSlowConnectionSaga.spec.js +1 -1
  148. package/src/__tests__/observeOnce.spec.js +3 -3
  149. package/src/actions/deleteActivity.ts +19 -0
  150. package/src/actions/incomingActivity.ts +21 -0
  151. package/src/actions/markActivity.ts +23 -0
  152. package/src/actions/postActivity.ts +48 -0
  153. package/src/actions/setNotification.js +8 -2
  154. package/src/createStore.ts +4 -4
  155. package/src/definitions/speakingActivity.js +1 -1
  156. package/src/index.ts +19 -14
  157. package/src/reducer.ts +0 -2
  158. package/src/reducers/activities.ts +172 -0
  159. package/src/reducers/notifications.js +22 -16
  160. package/src/reducers/typing.js +6 -5
  161. package/src/sagas/connectionStatusToNotificationSaga.js +1 -1
  162. package/src/sagas/effects/{observeOnce.js → observeOnce.ts} +6 -4
  163. package/src/sagas/effects/{whileConnected.js → whileConnected.ts} +20 -1
  164. package/src/sagas/{observeActivitySaga.js → observeActivitySaga.ts} +25 -6
  165. package/src/sagas/{postActivitySaga.js → postActivitySaga.ts} +57 -48
  166. package/src/sagas/queueIncomingActivitySaga.js +40 -39
  167. package/src/sagas/sendFilesToPostActivitySaga.js +1 -1
  168. package/src/sagas/sendMessageBackToPostActivitySaga.js +0 -1
  169. package/src/sagas/sendTypingIndicatorOnSetSendBoxSaga.js +1 -1
  170. package/src/sagas/speakActivityAndStartDictateOnIncomingActivityFromOthersSaga.js +1 -1
  171. package/src/sagas/startSpeakActivityOnPostActivitySaga.js +1 -1
  172. package/src/sagas/stopSpeakingActivityOnInputSaga.js +1 -1
  173. package/src/sagas/submitSendBoxSaga.js +1 -1
  174. package/src/selectors/activities.ts +12 -0
  175. package/src/selectors/combineSelectors.ts +21 -0
  176. package/src/selectors/dictateState.ts +3 -0
  177. package/src/selectors/language.ts +3 -0
  178. package/src/selectors/notifications.ts +6 -0
  179. package/src/selectors/sendBoxValue.ts +3 -0
  180. package/src/selectors/sendTimeout.ts +3 -0
  181. package/src/selectors/sendTypingIndicator.ts +3 -0
  182. package/src/selectors/shouldSpeakIncomingActivity.ts +3 -0
  183. package/src/types/AnyAnd.ts +1 -0
  184. package/src/types/WebChatActivity.ts +154 -0
  185. package/src/types/external/DirectLineActivity.ts +4 -3
  186. package/src/types/external/DirectLineAnimationCard.ts +6 -4
  187. package/src/types/external/DirectLineAttachment.ts +10 -5
  188. package/src/types/external/DirectLineAudioCard.ts +6 -4
  189. package/src/types/external/DirectLineBasicCardEssence.ts +14 -0
  190. package/src/types/external/DirectLineCardAction.ts +1 -1
  191. package/src/types/external/DirectLineCardImage.ts +9 -0
  192. package/src/types/external/DirectLineHeroCard.ts +6 -4
  193. package/src/types/external/DirectLineJSBotConnection.ts +1 -2
  194. package/src/types/external/DirectLineMediaCardEssence.ts +19 -0
  195. package/src/types/external/DirectLineOAuthCard.ts +7 -4
  196. package/src/types/external/DirectLineReceiptCard.ts +30 -4
  197. package/src/types/external/DirectLineSignInCard.ts +8 -4
  198. package/src/types/external/DirectLineSuggestedAction.ts +6 -4
  199. package/src/types/external/DirectLineThumbnailCard.ts +6 -4
  200. package/src/types/external/DirectLineVideoCard.ts +6 -4
  201. package/src/types/external/Observable.ts +69 -0
  202. package/src/types/internal/Notification.ts +10 -0
  203. package/src/types/internal/ReduxState.ts +16 -0
  204. package/src/utils/dateToLocaleISOString.chatham.spec.js +1 -0
  205. package/src/utils/dateToLocaleISOString.japan.spec.js +1 -0
  206. package/src/utils/dateToLocaleISOString.pacific.spec.js +1 -0
  207. package/src/utils/{dateToLocaleISOString.js → dateToLocaleISOString.ts} +6 -6
  208. package/src/utils/dateToLocaleISOString.utc.spec.js +2 -0
  209. package/src/utils/deleteKey.ts +9 -0
  210. package/src/utils/isForbiddenPropertyName.spec.js +6 -0
  211. package/src/utils/isForbiddenPropertyName.ts +33 -0
  212. package/src/utils/{sleep.js → sleep.ts} +1 -1
  213. package/src/utils/uniqueID.ts +7 -0
  214. package/.eslintignore +0 -9
  215. package/lib/reducers/clockSkewAdjustment.js +0 -44
  216. package/lib/sagas/effects/callUntil.js +0 -48
  217. package/lib/selectors/clockSkewAdjustment.js +0 -14
  218. package/lib/utils/mime-wrapper.js +0 -49
  219. package/src/actions/deleteActivity.js +0 -8
  220. package/src/actions/incomingActivity.js +0 -10
  221. package/src/actions/markActivity.js +0 -14
  222. package/src/actions/postActivity.js +0 -14
  223. package/src/reducers/activities.js +0 -116
  224. package/src/reducers/clockSkewAdjustment.js +0 -29
  225. package/src/sagas/effects/callUntil.js +0 -13
  226. package/src/selectors/activities.js +0 -8
  227. package/src/selectors/clockSkewAdjustment.js +0 -1
  228. package/src/selectors/combineSelectors.js +0 -8
  229. package/src/selectors/dictateState.js +0 -1
  230. package/src/selectors/language.js +0 -1
  231. package/src/selectors/notifications.js +0 -3
  232. package/src/selectors/sendBoxValue.js +0 -1
  233. package/src/selectors/sendTimeout.js +0 -1
  234. package/src/selectors/sendTypingIndicator.js +0 -1
  235. package/src/selectors/shouldSpeakIncomingActivity.js +0 -1
  236. package/src/utils/deleteKey.js +0 -11
  237. package/src/utils/mime-wrapper.js +0 -40
  238. package/src/utils/uniqueID.js +0 -12
@@ -19,15 +19,14 @@ var _postActivity = require("../actions/postActivity");
19
19
 
20
20
  var _ActivityClientState = require("../constants/ActivityClientState");
21
21
 
22
- /* eslint no-magic-numbers: ["error", { "ignore": [0, -1] }] */
22
+ /* eslint no-magic-numbers: ["error", { "ignore": [0, 1, -1] }] */
23
23
  var DEFAULT_STATE = [];
24
24
  var DIRECT_LINE_PLACEHOLDER_URL = 'https://docs.botframework.com/static/devportal/client/images/bot-framework-default-placeholder.png';
25
25
 
26
- function getClientActivityID(_ref) {
27
- var _ref$channelData = _ref.channelData;
28
- _ref$channelData = _ref$channelData === void 0 ? {} : _ref$channelData;
29
- var clientActivityID = _ref$channelData.clientActivityID;
30
- return clientActivityID;
26
+ function getClientActivityID(activity) {
27
+ var _activity$channelData;
28
+
29
+ return (_activity$channelData = activity.channelData) === null || _activity$channelData === void 0 ? void 0 : _activity$channelData.clientActivityID;
31
30
  }
32
31
 
33
32
  function findByClientActivityID(clientActivityID) {
@@ -36,34 +35,52 @@ function findByClientActivityID(clientActivityID) {
36
35
  };
37
36
  }
38
37
 
39
- function patchActivity(activity) {
38
+ function patchActivity(activity, lastActivity) {
40
39
  // Direct Line channel will return a placeholder image for the user-uploaded image.
41
40
  // As observed, the URL for the placeholder image is https://docs.botframework.com/static/devportal/client/images/bot-framework-default-placeholder.png.
42
41
  // To make our code simpler, we are removing the value if "contentUrl" is pointing to a placeholder image.
43
42
  // TODO: [P2] #2869 This "contentURL" removal code should be moved to DirectLineJS adapter.
44
43
  // Also, if the "contentURL" starts with "blob:", this means the user is uploading a file (the URL is constructed by URL.createObjectURL)
45
44
  // Although the copy/reference of the file is temporary in-memory, to make the UX consistent across page refresh, we do not allow the user to re-download the file either.
46
- return (0, _simpleUpdateIn["default"])(activity, ['attachments', function () {
45
+ activity = (0, _simpleUpdateIn["default"])(activity, ['attachments', function () {
47
46
  return true;
48
47
  }, 'contentUrl'], function (contentUrl) {
49
48
  if (contentUrl !== DIRECT_LINE_PLACEHOLDER_URL && !/^blob:/i.test(contentUrl)) {
50
49
  return contentUrl;
51
50
  }
51
+ }); // If the message does not have sequence ID, use these fallback values:
52
+ // 1. "timestamp" field
53
+ // - outgoing activity will not have "timestamp" field
54
+ // 2. last activity sequence ID (or 0) + 0.001
55
+ // - best effort to put this message the last one in the chat history
56
+
57
+ activity = (0, _simpleUpdateIn["default"])(activity, ['channelData', 'webchat:sequence-id'], function (sequenceId) {
58
+ var _lastActivity$channel;
59
+
60
+ return typeof sequenceId === 'number' ? sequenceId : typeof activity.timestamp !== 'undefined' ? +new Date(activity.timestamp) : // We assume there will be no more than 1,000 messages sent before receiving server response.
61
+ // If there are more than 1,000 messages, some messages will get reordered and appear jumpy after receiving server response.
62
+ // eslint-disable-next-line no-magic-numbers
63
+ ((lastActivity === null || lastActivity === void 0 ? void 0 : (_lastActivity$channel = lastActivity.channelData) === null || _lastActivity$channel === void 0 ? void 0 : _lastActivity$channel['webchat:sequence-id']) || 0) + 0.001;
64
+ }); // TODO: [P1] #3953 We should move this patching logic to a DLJS wrapper for simplicity.
65
+
66
+ activity = (0, _simpleUpdateIn["default"])(activity, ['channelData', 'webchat:sequence-id'], function (sequenceId) {
67
+ return typeof sequenceId === 'number' ? sequenceId : +new Date(activity.timestamp || 0) || 0;
52
68
  });
69
+ return activity;
53
70
  }
54
71
 
55
72
  function upsertActivityWithSort(activities, nextActivity) {
56
- nextActivity = patchActivity(nextActivity);
73
+ nextActivity = patchActivity(nextActivity, activities[activities.length - 1]);
57
74
  var _nextActivity = nextActivity,
58
75
  _nextActivity$channel = _nextActivity.channelData;
59
76
  _nextActivity$channel = _nextActivity$channel === void 0 ? {} : _nextActivity$channel;
60
- var nextClientActivityID = _nextActivity$channel.clientActivityID;
61
- var nextTimestamp = Date.parse(nextActivity.timestamp);
62
- var nextActivities = activities.filter(function (_ref2) {
63
- var _ref2$channelData = _ref2.channelData;
64
- _ref2$channelData = _ref2$channelData === void 0 ? {} : _ref2$channelData;
65
- var clientActivityID = _ref2$channelData.clientActivityID,
66
- id = _ref2.id;
77
+ var nextClientActivityID = _nextActivity$channel.clientActivityID,
78
+ nextSequenceId = _nextActivity$channel['webchat:sequence-id'];
79
+ var nextActivities = activities.filter(function (_ref) {
80
+ var _ref$channelData = _ref.channelData;
81
+ _ref$channelData = _ref$channelData === void 0 ? {} : _ref$channelData;
82
+ var clientActivityID = _ref$channelData.clientActivityID,
83
+ id = _ref.id;
67
84
  return (// We will remove all "sending messages" activities and activities with same ID
68
85
  // "clientActivityID" is unique and used to track if the message has been sent and echoed back from the server
69
86
  !(nextClientActivityID && clientActivityID === nextClientActivityID) && !(id && id === nextActivity.id)
@@ -71,12 +88,12 @@ function upsertActivityWithSort(activities, nextActivity) {
71
88
  }); // Then, find the right (sorted) place to insert the new activity at, based on timestamp
72
89
  // Since clockskew might happen, we will ignore timestamp on messages that are sending
73
90
 
74
- var indexToInsert = nextActivities.findIndex(function (_ref3) {
75
- var _ref3$channelData = _ref3.channelData;
76
- _ref3$channelData = _ref3$channelData === void 0 ? {} : _ref3$channelData;
77
- var state = _ref3$channelData.state,
78
- timestamp = _ref3.timestamp;
79
- return Date.parse(timestamp) > nextTimestamp && state !== _ActivityClientState.SENDING && state !== _ActivityClientState.SEND_FAILED;
91
+ var indexToInsert = nextActivities.findIndex(function (_ref2) {
92
+ var _ref2$channelData = _ref2.channelData;
93
+ _ref2$channelData = _ref2$channelData === void 0 ? {} : _ref2$channelData;
94
+ var state = _ref2$channelData.state,
95
+ sequenceId = _ref2$channelData['webchat:sequence-id'];
96
+ return (sequenceId || 0) > (nextSequenceId || 0) && state !== _ActivityClientState.SENDING && state !== _ActivityClientState.SEND_FAILED;
80
97
  }); // If no right place are found, append it
81
98
 
82
99
  nextActivities.splice(~indexToInsert ? indexToInsert : nextActivities.length, 0, nextActivity);
@@ -85,45 +102,48 @@ function upsertActivityWithSort(activities, nextActivity) {
85
102
 
86
103
  function activities() {
87
104
  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_STATE;
105
+ var action = arguments.length > 1 ? arguments[1] : undefined;
88
106
 
89
- var _ref4 = arguments.length > 1 ? arguments[1] : undefined,
90
- meta = _ref4.meta,
91
- payload = _ref4.payload,
92
- type = _ref4.type;
93
-
94
- switch (type) {
107
+ switch (action.type) {
95
108
  case _deleteActivity.DELETE_ACTIVITY:
96
- state = (0, _simpleUpdateIn["default"])(state, [function (_ref5) {
97
- var id = _ref5.id;
98
- return id === payload.activityID;
109
+ state = (0, _simpleUpdateIn["default"])(state, [function (_ref3) {
110
+ var id = _ref3.id;
111
+ return id === action.payload.activityID;
99
112
  }]);
100
113
  break;
101
114
 
102
115
  case _markActivity.MARK_ACTIVITY:
103
- state = (0, _simpleUpdateIn["default"])(state, [function (_ref6) {
104
- var id = _ref6.id;
105
- return id === payload.activityID;
106
- }, 'channelData', payload.name], function () {
107
- return payload.value;
108
- });
116
+ {
117
+ var payload = action.payload;
118
+ state = (0, _simpleUpdateIn["default"])(state, [function (_ref4) {
119
+ var id = _ref4.id;
120
+ return id === payload.activityID;
121
+ }, 'channelData', payload.name], function () {
122
+ return payload.value;
123
+ });
124
+ }
109
125
  break;
110
126
 
111
127
  case _postActivity.POST_ACTIVITY_PENDING:
112
- state = upsertActivityWithSort(state, (0, _simpleUpdateIn["default"])(payload.activity, ['channelData', 'state'], function () {
113
- return _ActivityClientState.SENDING;
114
- }));
128
+ {
129
+ var _activity = action.payload.activity;
130
+ _activity = (0, _simpleUpdateIn["default"])(_activity, ['channelData', 'state'], function () {
131
+ return _ActivityClientState.SENDING;
132
+ });
133
+ state = upsertActivityWithSort(state, _activity);
134
+ }
115
135
  break;
116
136
 
117
137
  case _postActivity.POST_ACTIVITY_REJECTED:
118
- state = (0, _simpleUpdateIn["default"])(state, [findByClientActivityID(meta.clientActivityID), 'channelData', 'state'], function () {
138
+ state = (0, _simpleUpdateIn["default"])(state, [findByClientActivityID(action.meta.clientActivityID), 'channelData', 'state'], function () {
119
139
  return _ActivityClientState.SEND_FAILED;
120
140
  });
121
141
  break;
122
142
 
123
143
  case _postActivity.POST_ACTIVITY_FULFILLED:
124
- state = (0, _simpleUpdateIn["default"])(state, [findByClientActivityID(meta.clientActivityID)], function () {
144
+ state = (0, _simpleUpdateIn["default"])(state, [findByClientActivityID(action.meta.clientActivityID)], function () {
125
145
  return (// We will replace the activity with the version from the server
126
- (0, _simpleUpdateIn["default"])(patchActivity(payload.activity), ['channelData', 'state'], function () {
146
+ (0, _simpleUpdateIn["default"])(patchActivity(action.payload.activity, state[state.length - 1]), ['channelData', 'state'], function () {
127
147
  return _ActivityClientState.SENT;
128
148
  })
129
149
  );
@@ -132,7 +152,7 @@ function activities() {
132
152
 
133
153
  case _incomingActivity.INCOMING_ACTIVITY:
134
154
  // TODO: [P4] #2100 Move "typing" into Constants.ActivityType
135
- state = upsertActivityWithSort(state, payload.activity);
155
+ state = upsertActivityWithSort(state, action.payload.activity);
136
156
  break;
137
157
 
138
158
  default:
@@ -141,4 +161,4 @@ function activities() {
141
161
 
142
162
  return state;
143
163
  }
144
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy9hY3Rpdml0aWVzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfU1RBVEUiLCJESVJFQ1RfTElORV9QTEFDRUhPTERFUl9VUkwiLCJnZXRDbGllbnRBY3Rpdml0eUlEIiwiY2hhbm5lbERhdGEiLCJjbGllbnRBY3Rpdml0eUlEIiwiZmluZEJ5Q2xpZW50QWN0aXZpdHlJRCIsImFjdGl2aXR5IiwicGF0Y2hBY3Rpdml0eSIsImNvbnRlbnRVcmwiLCJ0ZXN0IiwidXBzZXJ0QWN0aXZpdHlXaXRoU29ydCIsImFjdGl2aXRpZXMiLCJuZXh0QWN0aXZpdHkiLCJuZXh0Q2xpZW50QWN0aXZpdHlJRCIsIm5leHRUaW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJ0aW1lc3RhbXAiLCJuZXh0QWN0aXZpdGllcyIsImZpbHRlciIsImlkIiwiaW5kZXhUb0luc2VydCIsImZpbmRJbmRleCIsInN0YXRlIiwiU0VORElORyIsIlNFTkRfRkFJTEVEIiwic3BsaWNlIiwibGVuZ3RoIiwibWV0YSIsInBheWxvYWQiLCJ0eXBlIiwiREVMRVRFX0FDVElWSVRZIiwiYWN0aXZpdHlJRCIsIk1BUktfQUNUSVZJVFkiLCJuYW1lIiwidmFsdWUiLCJQT1NUX0FDVElWSVRZX1BFTkRJTkciLCJQT1NUX0FDVElWSVRZX1JFSkVDVEVEIiwiUE9TVF9BQ1RJVklUWV9GVUxGSUxMRUQiLCJTRU5UIiwiSU5DT01JTkdfQUNUSVZJVFkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQVZBO0FBWUEsSUFBTUEsYUFBYSxHQUFHLEVBQXRCO0FBQ0EsSUFBTUMsMkJBQTJCLEdBQy9CLG9HQURGOztBQUdBLFNBQVNDLG1CQUFULE9BQXlFO0FBQUEsOEJBQTFDQyxXQUEwQztBQUFBLG1EQUFOLEVBQU07QUFBQSxNQUEzQkMsZ0JBQTJCLG9CQUEzQkEsZ0JBQTJCO0FBQ3ZFLFNBQU9BLGdCQUFQO0FBQ0Q7O0FBRUQs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b3JlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby1tYWdpYy1udW1iZXJzOiBbXCJlcnJvclwiLCB7IFwiaWdub3JlXCI6IFswLCAtMV0gfV0gKi9cblxuaW1wb3J0IHVwZGF0ZUluIGZyb20gJ3NpbXBsZS11cGRhdGUtaW4nO1xuXG5pbXBvcnQgeyBERUxFVEVfQUNUSVZJVFkgfSBmcm9tICcuLi9hY3Rpb25zL2RlbGV0ZUFjdGl2aXR5JztcbmltcG9ydCB7IElOQ09NSU5HX0FDVElWSVRZIH0gZnJvbSAnLi4vYWN0aW9ucy9pbmNvbWluZ0FjdGl2aXR5JztcbmltcG9ydCB7IE1BUktfQUNUSVZJVFkgfSBmcm9tICcuLi9hY3Rpb25zL21hcmtBY3Rpdml0eSc7XG5cbmltcG9ydCB7IFBPU1RfQUNUSVZJVFlfRlVMRklMTEVELCBQT1NUX0FDVElWSVRZX1BFTkRJTkcsIFBPU1RfQUNUSVZJVFlfUkVKRUNURUQgfSBmcm9tICcuLi9hY3Rpb25zL3Bvc3RBY3Rpdml0eSc7XG5cbmltcG9ydCB7IFNFTkRfRkFJTEVELCBTRU5ESU5HLCBTRU5UIH0gZnJvbSAnLi4vY29uc3RhbnRzL0FjdGl2aXR5Q2xpZW50U3RhdGUnO1xuXG5jb25zdCBERUZBVUxUX1NUQVRFID0gW107XG5jb25zdCBESVJFQ1RfTElORV9QTEFDRUhPTERFUl9VUkwgPVxuICAnaHR0cHM6Ly9kb2NzLmJvdGZyYW1ld29yay5jb20vc3RhdGljL2RldnBvcnRhbC9jbGllbnQvaW1hZ2VzL2JvdC1mcmFtZXdvcmstZGVmYXVsdC1wbGFjZWhvbGRlci5wbmcnO1xuXG5mdW5jdGlvbiBnZXRDbGllbnRBY3Rpdml0eUlEKHsgY2hhbm5lbERhdGE6IHsgY2xpZW50QWN0aXZpdHlJRCB9ID0ge30gfSkge1xuICByZXR1cm4gY2xpZW50QWN0aXZpdHlJRDtcbn1cblxuZnVuY3Rpb24gZmluZEJ5Q2xpZW50QWN0aXZpdHlJRChjbGllbnRBY3Rpdml0eUlEKSB7XG4gIHJldHVybiBhY3Rpdml0eSA9PiBnZXRDbGllbnRBY3Rpdml0eUlEKGFjdGl2aXR5KSA9PT0gY2xpZW50QWN0aXZpdHlJRDtcbn1cblxuZnVuY3Rpb24gcGF0Y2hBY3Rpdml0eShhY3Rpdml0eSkge1xuICAvLyBEaXJlY3QgTGluZSBjaGFubmVsIHdpbGwgcmV0dXJuIGEgcGxhY2Vob2xkZXIgaW1hZ2UgZm9yIHRoZSB1c2VyLXVwbG9hZGVkIGltYWdlLlxuICAvLyBBcyBvYnNlcnZlZCwgdGhlIFVSTCBmb3IgdGhlIHBsYWNlaG9sZGVyIGltYWdlIGlzIGh0dHBzOi8vZG9jcy5ib3RmcmFtZXdvcmsuY29tL3N0YXRpYy9kZXZwb3J0YWwvY2xpZW50L2ltYWdlcy9ib3QtZnJhbWV3b3JrLWRlZmF1bHQtcGxhY2Vob2xkZXIucG5nLlxuICAvLyBUbyBtYWtlIG91ciBjb2RlIHNpbXBsZXIsIHdlIGFyZSByZW1vdmluZyB0aGUgdmFsdWUgaWYgXCJjb250ZW50VXJsXCIgaXMgcG9pbnRpbmcgdG8gYSBwbGFjZWhvbGRlciBpbWFnZS5cblxuICAvLyBUT0RPOiBbUDJdICMyODY5IFRoaXMgXCJjb250ZW50VVJMXCIgcmVtb3ZhbCBjb2RlIHNob3VsZCBiZSBtb3ZlZCB0byBEaXJlY3RMaW5lSlMgYWRhcHRlci5cblxuICAvLyBBbHNvLCBpZiB0aGUgXCJjb250ZW50VVJMXCIgc3RhcnRzIHdpdGggXCJibG9iOlwiLCB0aGlzIG1lYW5zIHRoZSB1c2VyIGlzIHVwbG9hZGluZyBhIGZpbGUgKHRoZSBVUkwgaXMgY29uc3RydWN0ZWQgYnkgVVJMLmNyZWF0ZU9iamVjdFVSTClcbiAgLy8gQWx0aG91Z2ggdGhlIGNvcHkvcmVmZXJlbmNlIG9mIHRoZSBmaWxlIGlzIHRlbXBvcmFyeSBpbi1tZW1vcnksIHRvIG1ha2UgdGhlIFVYIGNvbnNpc3RlbnQgYWNyb3NzIHBhZ2UgcmVmcmVzaCwgd2UgZG8gbm90IGFsbG93IHRoZSB1c2VyIHRvIHJlLWRvd25sb2FkIHRoZSBmaWxlIGVpdGhlci5cblxuICByZXR1cm4gdXBkYXRlSW4oYWN0aXZpdHksIFsnYXR0YWNobWVudHMnLCAoKSA9PiB0cnVlLCAnY29udGVudFVybCddLCBjb250ZW50VXJsID0+IHtcbiAgICBpZiAoY29udGVudFVybCAhPT0gRElSRUNUX0xJTkVfUExBQ0VIT0xERVJfVVJMICYmICEvXmJsb2I6L2l1LnRlc3QoY29udGVudFVybCkpIHtcbiAgICAgIHJldHVybiBjb250ZW50VXJsO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHVwc2VydEFjdGl2aXR5V2l0aFNvcnQoYWN0aXZpdGllcywgbmV4dEFjdGl2aXR5KSB7XG4gIG5leHRBY3Rpdml0eSA9IHBhdGNoQWN0aXZpdHkobmV4dEFjdGl2aXR5KTtcblxuICBjb25zdCB7IGNoYW5uZWxEYXRhOiB7IGNsaWVudEFjdGl2aXR5SUQ6IG5leHRDbGllbnRBY3Rpdml0eUlEIH0gPSB7fSB9ID0gbmV4dEFjdGl2aXR5O1xuXG4gIGNvbnN0IG5leHRUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKG5leHRBY3Rpdml0eS50aW1lc3RhbXApO1xuICBjb25zdCBuZXh0QWN0aXZpdGllcyA9IGFjdGl2aXRpZXMuZmlsdGVyKFxuICAgICh7IGNoYW5uZWxEYXRhOiB7IGNsaWVudEFjdGl2aXR5SUQgfSA9IHt9LCBpZCB9KSA9PlxuICAgICAgLy8gV2Ugd2lsbCByZW1vdmUgYWxsIFwic2VuZGluZyBtZXNzYWdlc1wiIGFjdGl2aXRpZXMgYW5kIGFjdGl2aXRpZXMgd2l0aCBzYW1lIElEXG4gICAgICAvLyBcImNsaWVudEFjdGl2aXR5SURcIiBpcyB1bmlxdWUgYW5kIHVzZWQgdG8gdHJhY2sgaWYgdGhlIG1lc3NhZ2UgaGFzIGJlZW4gc2VudCBhbmQgZWNob2VkIGJhY2sgZnJvbSB0aGUgc2VydmVyXG4gICAgICAhKG5leHRDbGllbnRBY3Rpdml0eUlEICYmIGNsaWVudEFjdGl2aXR5SUQgPT09IG5leHRDbGllbnRBY3Rpdml0eUlEKSAmJiAhKGlkICYmIGlkID09PSBuZXh0QWN0aXZpdHkuaWQpXG4gICk7XG5cbiAgLy8gVGhlbiwgZmluZCB0aGUgcmlnaHQgKHNvcnRlZCkgcGxhY2UgdG8gaW5zZXJ0IHRoZSBuZXcgYWN0aXZpdHkgYXQsIGJhc2VkIG9uIHRpbWVzdGFtcFxuICAvLyBTaW5jZSBjbG9ja3NrZXcgbWlnaHQgaGFwcGVuLCB3ZSB3aWxsIGlnbm9yZSB0aW1lc3RhbXAgb24gbWVzc2FnZXMgdGhhdCBhcmUgc2VuZGluZ1xuXG4gIGNvbnN0IGluZGV4VG9JbnNlcnQgPSBuZXh0QWN0aXZpdGllcy5maW5kSW5kZXgoXG4gICAgKHsgY2hhbm5lbERhdGE6IHsgc3RhdGUgfSA9IHt9LCB0aW1lc3RhbXAgfSkgPT5cbiAgICAgIERhdGUucGFyc2UodGltZXN0YW1wKSA+IG5leHRUaW1lc3RhbXAgJiYgc3RhdGUgIT09IFNFTkRJTkcgJiYgc3RhdGUgIT09IFNFTkRfRkFJTEVEXG4gICk7XG5cbiAgLy8gSWYgbm8gcmlnaHQgcGxhY2UgYXJlIGZvdW5kLCBhcHBlbmQgaXRcbiAgbmV4dEFjdGl2aXRpZXMuc3BsaWNlKH5pbmRleFRvSW5zZXJ0ID8gaW5kZXhUb0luc2VydCA6IG5leHRBY3Rpdml0aWVzLmxlbmd0aCwgMCwgbmV4dEFjdGl2aXR5KTtcblxuICByZXR1cm4gbmV4dEFjdGl2aXRpZXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFjdGl2aXRpZXMoc3RhdGUgPSBERUZBVUxUX1NUQVRFLCB7IG1ldGEsIHBheWxvYWQsIHR5cGUgfSkge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIERFTEVURV9BQ1RJVklUWTpcbiAgICAgIHN0YXRlID0gdXBkYXRlSW4oc3RhdGUsIFsoeyBpZCB9KSA9PiBpZCA9PT0gcGF5bG9hZC5hY3Rpdml0eUlEXSk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgTUFSS19BQ1RJVklUWTpcbiAgICAgIHN0YXRlID0gdXBkYXRlSW4oXG4gICAgICAgIHN0YXRlLFxuICAgICAgICBbKHsgaWQgfSkgPT4gaWQgPT09IHBheWxvYWQuYWN0aXZpdHlJRCwgJ2NoYW5uZWxEYXRhJywgcGF5bG9hZC5uYW1lXSxcbiAgICAgICAgKCkgPT4gcGF5bG9hZC52YWx1ZVxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBQT1NUX0FDVElWSVRZX1BFTkRJTkc6XG4gICAgICBzdGF0ZSA9IHVwc2VydEFjdGl2aXR5V2l0aFNvcnQoXG4gICAgICAgIHN0YXRlLFxuICAgICAgICB1cGRhdGVJbihwYXlsb2FkLmFjdGl2aXR5LCBbJ2NoYW5uZWxEYXRhJywgJ3N0YXRlJ10sICgpID0+IFNFTkRJTkcpXG4gICAgICApO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFBPU1RfQUNUSVZJVFlfUkVKRUNURUQ6XG4gICAgICBzdGF0ZSA9IHVwZGF0ZUluKFxuICAgICAgICBzdGF0ZSxcbiAgICAgICAgW2ZpbmRCeUNsaWVudEFjdGl2aXR5SUQobWV0YS5jbGllbnRBY3Rpdml0eUlEKSwgJ2NoYW5uZWxEYXRhJywgJ3N0YXRlJ10sXG4gICAgICAgICgpID0+IFNFTkRfRkFJTEVEXG4gICAgICApO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFBPU1RfQUNUSVZJVFlfRlVMRklMTEVEOlxuICAgICAgc3RhdGUgPSB1cGRhdGVJbihzdGF0ZSwgW2ZpbmRCeUNsaWVudEFjdGl2aXR5SUQobWV0YS5jbGllbnRBY3Rpdml0eUlEKV0sICgpID0+XG4gICAgICAgIC8vIFdlIHdpbGwgcmVwbGFjZSB0aGUgYWN0aXZpdHkgd2l0aCB0aGUgdmVyc2lvbiBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICAgdXBkYXRlSW4ocGF0Y2hBY3Rpdml0eShwYXlsb2FkLmFjdGl2aXR5KSwgWydjaGFubmVsRGF0YScsICdzdGF0ZSddLCAoKSA9PiBTRU5UKVxuICAgICAgKTtcblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIElOQ09NSU5HX0FDVElWSVRZOlxuICAgICAgLy8gVE9ETzogW1A0XSAjMjEwMCBNb3ZlIFwidHlwaW5nXCIgaW50byBDb25zdGFudHMuQWN0aXZpdHlUeXBlXG4gICAgICBzdGF0ZSA9IHVwc2VydEFjdGl2aXR5V2l0aFNvcnQoc3RhdGUsIHBheWxvYWQuYWN0aXZpdHkpO1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG4iXX0=
164
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy9hY3Rpdml0aWVzLnRzIl0sIm5hbWVzIjpbIkRFRkFVTFRfU1RBVEUiLCJESVJFQ1RfTElORV9QTEFDRUhPTERFUl9VUkwiLCJnZXRDbGllbnRBY3Rpdml0eUlEIiwiYWN0aXZpdHkiLCJjaGFubmVsRGF0YSIsImNsaWVudEFjdGl2aXR5SUQiLCJmaW5kQnlDbGllbnRBY3Rpdml0eUlEIiwicGF0Y2hBY3Rpdml0eSIsImxhc3RBY3Rpdml0eSIsImNvbnRlbnRVcmwiLCJ0ZXN0Iiwic2VxdWVuY2VJZCIsInRpbWVzdGFtcCIsIkRhdGUiLCJ1cHNlcnRBY3Rpdml0eVdpdGhTb3J0IiwiYWN0aXZpdGllcyIsIm5leHRBY3Rpdml0eSIsImxlbmd0aCIsIm5leHRDbGllbnRBY3Rpdml0eUlEIiwibmV4dFNlcXVlbmNlSWQiLCJuZXh0QWN0aXZpdGllcyIsImZpbHRlciIsImlkIiwiaW5kZXhUb0luc2VydCIsImZpbmRJbmRleCIsInN0YXRlIiwiU0VORElORyIsIlNFTkRfRkFJTEVEIiwic3BsaWNlIiwiYWN0aW9uIiwidHlwZSIsIkRFTEVURV9BQ1RJVklUWSIsInBheWxvYWQiLCJhY3Rpdml0eUlEIiwiTUFSS19BQ1RJVklUWSIsIm5hbWUiLCJ2YWx1ZSIsIlBPU1RfQUNUSVZJVFlfUEVORElORyIsIlBPU1RfQUNUSVZJVFlfUkVKRUNURUQiLCJtZXRhIiwiUE9TVF9BQ1RJVklUWV9GVUxGSUxMRUQiLCJTRU5UIiwiSU5DT01JTkdfQUNUSVZJVFkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQVJBO0FBNkJBLElBQU1BLGFBQWtDLEdBQUcsRUFBM0M7QUFDQSxJQUFNQywyQkFBMkIsR0FDL0Isb0dBREY7O0FBR0EsU0FBU0MsbUJBQVQsQ0FBNkJDLFFBQTdCLEVBQTRFO0FBQUE7O0FBQzFFLGtDQUFPQSxRQUFRLENBQUNDLFdBQWhCLDBEQUFPLHNCQUFzQkMsZ0JB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OlsiLyogZXNsaW50IG5vLW1hZ2ljLW51bWJlcnM6IFtcImVycm9yXCIsIHsgXCJpZ25vcmVcIjogWzAsIDEsIC0xXSB9XSAqL1xuXG5pbXBvcnQgdXBkYXRlSW4gZnJvbSAnc2ltcGxlLXVwZGF0ZS1pbic7XG5cbmltcG9ydCB7IERFTEVURV9BQ1RJVklUWSB9IGZyb20gJy4uL2FjdGlvbnMvZGVsZXRlQWN0aXZpdHknO1xuaW1wb3J0IHsgSU5DT01JTkdfQUNUSVZJVFkgfSBmcm9tICcuLi9hY3Rpb25zL2luY29taW5nQWN0aXZpdHknO1xuaW1wb3J0IHsgTUFSS19BQ1RJVklUWSB9IGZyb20gJy4uL2FjdGlvbnMvbWFya0FjdGl2aXR5JztcbmltcG9ydCB7IFBPU1RfQUNUSVZJVFlfRlVMRklMTEVELCBQT1NUX0FDVElWSVRZX1BFTkRJTkcsIFBPU1RfQUNUSVZJVFlfUkVKRUNURUQgfSBmcm9tICcuLi9hY3Rpb25zL3Bvc3RBY3Rpdml0eSc7XG5pbXBvcnQgeyBTRU5EX0ZBSUxFRCwgU0VORElORywgU0VOVCB9IGZyb20gJy4uL2NvbnN0YW50cy9BY3Rpdml0eUNsaWVudFN0YXRlJztcbmltcG9ydCB0eXBlIHsgRGVsZXRlQWN0aXZpdHlBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zL2RlbGV0ZUFjdGl2aXR5JztcbmltcG9ydCB0eXBlIHsgSW5jb21pbmdBY3Rpdml0eUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMvaW5jb21pbmdBY3Rpdml0eSc7XG5pbXBvcnQgdHlwZSB7IE1hcmtBY3Rpdml0eUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMvbWFya0FjdGl2aXR5JztcbmltcG9ydCB0eXBlIHtcbiAgUG9zdEFjdGl2aXR5RnVsZmlsbGVkQWN0aW9uLFxuICBQb3N0QWN0aXZpdHlQZW5kaW5nQWN0aW9uLFxuICBQb3N0QWN0aXZpdHlSZWplY3RlZEFjdGlvblxufSBmcm9tICcuLi9hY3Rpb25zL3Bvc3RBY3Rpdml0eSc7XG5pbXBvcnQgdHlwZSB7IFdlYkNoYXRBY3Rpdml0eSB9IGZyb20gJy4uL3R5cGVzL1dlYkNoYXRBY3Rpdml0eSc7XG5cbnR5cGUgQWN0aXZpdGllc0FjdGlvbiA9XG4gIHwgRGVsZXRlQWN0aXZpdHlBY3Rpb25cbiAgfCBJbmNvbWluZ0FjdGl2aXR5QWN0aW9uXG4gIHwgTWFya0FjdGl2aXR5QWN0aW9uXG4gIHwgUG9zdEFjdGl2aXR5RnVsZmlsbGVkQWN0aW9uXG4gIHwgUG9zdEFjdGl2aXR5UGVuZGluZ0FjdGlvblxuICB8IFBvc3RBY3Rpdml0eVJlamVjdGVkQWN0aW9uO1xuXG50eXBlIEFjdGl2aXRpZXNTdGF0ZVR5cGUgPSBXZWJDaGF0QWN0aXZpdHlbXTtcblxuY29uc3QgREVGQVVMVF9TVEFURTogQWN0aXZpdGllc1N0YXRlVHlwZSA9IFtdO1xuY29uc3QgRElSRUNUX0xJTkVfUExBQ0VIT0xERVJfVVJMID1cbiAgJ2h0dHBzOi8vZG9jcy5ib3RmcmFtZXdvcmsuY29tL3N0YXRpYy9kZXZwb3J0YWwvY2xpZW50L2ltYWdlcy9ib3QtZnJhbWV3b3JrLWRlZmF1bHQtcGxhY2Vob2xkZXIucG5nJztcblxuZnVuY3Rpb24gZ2V0Q2xpZW50QWN0aXZpdHlJRChhY3Rpdml0eTogV2ViQ2hhdEFjdGl2aXR5KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGFjdGl2aXR5LmNoYW5uZWxEYXRhPy5jbGllbnRBY3Rpdml0eUlEO1xufVxuXG5mdW5jdGlvbiBmaW5kQnlDbGllbnRBY3Rpdml0eUlEKGNsaWVudEFjdGl2aXR5SUQ6IHN0cmluZyk6IChhY3Rpdml0eTogV2ViQ2hhdEFjdGl2aXR5KSA9PiBib29sZWFuIHtcbiAgcmV0dXJuIChhY3Rpdml0eTogV2ViQ2hhdEFjdGl2aXR5KSA9PiBnZXRDbGllbnRBY3Rpdml0eUlEKGFjdGl2aXR5KSA9PT0gY2xpZW50QWN0aXZpdHlJRDtcbn1cblxuZnVuY3Rpb24gcGF0Y2hBY3Rpdml0eShhY3Rpdml0eTogV2ViQ2hhdEFjdGl2aXR5LCBsYXN0QWN0aXZpdHk6IFdlYkNoYXRBY3Rpdml0eSk6IFdlYkNoYXRBY3Rpdml0eSB7XG4gIC8vIERpcmVjdCBMaW5lIGNoYW5uZWwgd2lsbCByZXR1cm4gYSBwbGFjZWhvbGRlciBpbWFnZSBmb3IgdGhlIHVzZXItdXBsb2FkZWQgaW1hZ2UuXG4gIC8vIEFzIG9ic2VydmVkLCB0aGUgVVJMIGZvciB0aGUgcGxhY2Vob2xkZXIgaW1hZ2UgaXMgaHR0cHM6Ly9kb2NzLmJvdGZyYW1ld29yay5jb20vc3RhdGljL2RldnBvcnRhbC9jbGllbnQvaW1hZ2VzL2JvdC1mcmFtZXdvcmstZGVmYXVsdC1wbGFjZWhvbGRlci5wbmcuXG4gIC8vIFRvIG1ha2Ugb3VyIGNvZGUgc2ltcGxlciwgd2UgYXJlIHJlbW92aW5nIHRoZSB2YWx1ZSBpZiBcImNvbnRlbnRVcmxcIiBpcyBwb2ludGluZyB0byBhIHBsYWNlaG9sZGVyIGltYWdlLlxuXG4gIC8vIFRPRE86IFtQMl0gIzI4NjkgVGhpcyBcImNvbnRlbnRVUkxcIiByZW1vdmFsIGNvZGUgc2hvdWxkIGJlIG1vdmVkIHRvIERpcmVjdExpbmVKUyBhZGFwdGVyLlxuXG4gIC8vIEFsc28sIGlmIHRoZSBcImNvbnRlbnRVUkxcIiBzdGFydHMgd2l0aCBcImJsb2I6XCIsIHRoaXMgbWVhbnMgdGhlIHVzZXIgaXMgdXBsb2FkaW5nIGEgZmlsZSAodGhlIFVSTCBpcyBjb25zdHJ1Y3RlZCBieSBVUkwuY3JlYXRlT2JqZWN0VVJMKVxuICAvLyBBbHRob3VnaCB0aGUgY29weS9yZWZlcmVuY2Ugb2YgdGhlIGZpbGUgaXMgdGVtcG9yYXJ5IGluLW1lbW9yeSwgdG8gbWFrZSB0aGUgVVggY29uc2lzdGVudCBhY3Jvc3MgcGFnZSByZWZyZXNoLCB3ZSBkbyBub3QgYWxsb3cgdGhlIHVzZXIgdG8gcmUtZG93bmxvYWQgdGhlIGZpbGUgZWl0aGVyLlxuXG4gIGFjdGl2aXR5ID0gdXBkYXRlSW4oYWN0aXZpdHksIFsnYXR0YWNobWVudHMnLCAoKSA9PiB0cnVlLCAnY29udGVudFVybCddLCAoY29udGVudFVybDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGNvbnRlbnRVcmwgIT09IERJUkVDVF9MSU5FX1BMQUNFSE9MREVSX1VSTCAmJiAhL15ibG9iOi9pdS50ZXN0KGNvbnRlbnRVcmwpKSB7XG4gICAgICByZXR1cm4gY29udGVudFVybDtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIElmIHRoZSBtZXNzYWdlIGRvZXMgbm90IGhhdmUgc2VxdWVuY2UgSUQsIHVzZSB0aGVzZSBmYWxsYmFjayB2YWx1ZXM6XG4gIC8vIDEuIFwidGltZXN0YW1wXCIgZmllbGRcbiAgLy8gICAgLSBvdXRnb2luZyBhY3Rpdml0eSB3aWxsIG5vdCBoYXZlIFwidGltZXN0YW1wXCIgZmllbGRcbiAgLy8gMi4gbGFzdCBhY3Rpdml0eSBzZXF1ZW5jZSBJRCAob3IgMCkgKyAwLjAwMVxuICAvLyAgICAtIGJlc3QgZWZmb3J0IHRvIHB1dCB0aGlzIG1lc3NhZ2UgdGhlIGxhc3Qgb25lIGluIHRoZSBjaGF0IGhpc3RvcnlcbiAgYWN0aXZpdHkgPSB1cGRhdGVJbihhY3Rpdml0eSwgWydjaGFubmVsRGF0YScsICd3ZWJjaGF0OnNlcXVlbmNlLWlkJ10sIChzZXF1ZW5jZUlkPzogbnVtYmVyKSA9PlxuICAgIHR5cGVvZiBzZXF1ZW5jZUlkID09PSAnbnVtYmVyJ1xuICAgICAgPyBzZXF1ZW5jZUlkXG4gICAgICA6IHR5cGVvZiBhY3Rpdml0eS50aW1lc3RhbXAgIT09ICd1bmRlZmluZWQnXG4gICAgICA/ICtuZXcgRGF0ZShhY3Rpdml0eS50aW1lc3RhbXApXG4gICAgICA6IC8vIFdlIGFzc3VtZSB0aGVyZSB3aWxsIGJlIG5vIG1vcmUgdGhhbiAxLDAwMCBtZXNzYWdlcyBzZW50IGJlZm9yZSByZWNlaXZpbmcgc2VydmVyIHJlc3BvbnNlLlxuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbW9yZSB0aGFuIDEsMDAwIG1lc3NhZ2VzLCBzb21lIG1lc3NhZ2VzIHdpbGwgZ2V0IHJlb3JkZXJlZCBhbmQgYXBwZWFyIGp1bXB5IGFmdGVyIHJlY2VpdmluZyBzZXJ2ZXIgcmVzcG9uc2UuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tYWdpYy1udW1iZXJzXG4gICAgICAgIChsYXN0QWN0aXZpdHk/LmNoYW5uZWxEYXRhPy5bJ3dlYmNoYXQ6c2VxdWVuY2UtaWQnXSB8fCAwKSArIDAuMDAxXG4gICk7XG5cbiAgLy8gVE9ETzogW1AxXSAjMzk1MyBXZSBzaG91bGQgbW92ZSB0aGlzIHBhdGNoaW5nIGxvZ2ljIHRvIGEgRExKUyB3cmFwcGVyIGZvciBzaW1wbGljaXR5LlxuICBhY3Rpdml0eSA9IHVwZGF0ZUluKGFjdGl2aXR5LCBbJ2NoYW5uZWxEYXRhJywgJ3dlYmNoYXQ6c2VxdWVuY2UtaWQnXSwgKHNlcXVlbmNlSWQ6IG51bWJlcikgPT5cbiAgICB0eXBlb2Ygc2VxdWVuY2VJZCA9PT0gJ251bWJlcicgPyBzZXF1ZW5jZUlkIDogK25ldyBEYXRlKGFjdGl2aXR5LnRpbWVzdGFtcCB8fCAwKSB8fCAwXG4gICk7XG5cbiAgcmV0dXJuIGFjdGl2aXR5O1xufVxuXG5mdW5jdGlvbiB1cHNlcnRBY3Rpdml0eVdpdGhTb3J0KGFjdGl2aXRpZXM6IFdlYkNoYXRBY3Rpdml0eVtdLCBuZXh0QWN0aXZpdHk6IFdlYkNoYXRBY3Rpdml0eSk6IFdlYkNoYXRBY3Rpdml0eVtdIHtcbiAgbmV4dEFjdGl2aXR5ID0gcGF0Y2hBY3Rpdml0eShuZXh0QWN0aXZpdHksIGFjdGl2aXRpZXNbYWN0aXZpdGllcy5sZW5ndGggLSAxXSk7XG5cbiAgY29uc3QgeyBjaGFubmVsRGF0YTogeyBjbGllbnRBY3Rpdml0eUlEOiBuZXh0Q2xpZW50QWN0aXZpdHlJRCwgJ3dlYmNoYXQ6c2VxdWVuY2UtaWQnOiBuZXh0U2VxdWVuY2VJZCB9ID0ge30gfSA9XG4gICAgbmV4dEFjdGl2aXR5O1xuXG4gIGNvbnN0IG5leHRBY3Rpdml0aWVzID0gYWN0aXZpdGllcy5maWx0ZXIoXG4gICAgKHsgY2hhbm5lbERhdGE6IHsgY2xpZW50QWN0aXZpdHlJRCB9ID0ge30sIGlkIH0pID0+XG4gICAgICAvLyBXZSB3aWxsIHJlbW92ZSBhbGwgXCJzZW5kaW5nIG1lc3NhZ2VzXCIgYWN0aXZpdGllcyBhbmQgYWN0aXZpdGllcyB3aXRoIHNhbWUgSURcbiAgICAgIC8vIFwiY2xpZW50QWN0aXZpdHlJRFwiIGlzIHVuaXF1ZSBhbmQgdXNlZCB0byB0cmFjayBpZiB0aGUgbWVzc2FnZSBoYXMgYmVlbiBzZW50IGFuZCBlY2hvZWQgYmFjayBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgICEobmV4dENsaWVudEFjdGl2aXR5SUQgJiYgY2xpZW50QWN0aXZpdHlJRCA9PT0gbmV4dENsaWVudEFjdGl2aXR5SUQpICYmICEoaWQgJiYgaWQgPT09IG5leHRBY3Rpdml0eS5pZClcbiAgKTtcblxuICAvLyBUaGVuLCBmaW5kIHRoZSByaWdodCAoc29ydGVkKSBwbGFjZSB0byBpbnNlcnQgdGhlIG5ldyBhY3Rpdml0eSBhdCwgYmFzZWQgb24gdGltZXN0YW1wXG4gIC8vIFNpbmNlIGNsb2Nrc2tldyBtaWdodCBoYXBwZW4sIHdlIHdpbGwgaWdub3JlIHRpbWVzdGFtcCBvbiBtZXNzYWdlcyB0aGF0IGFyZSBzZW5kaW5nXG5cbiAgY29uc3QgaW5kZXhUb0luc2VydCA9IG5leHRBY3Rpdml0aWVzLmZpbmRJbmRleChcbiAgICAoeyBjaGFubmVsRGF0YTogeyBzdGF0ZSwgJ3dlYmNoYXQ6c2VxdWVuY2UtaWQnOiBzZXF1ZW5jZUlkIH0gPSB7fSB9KSA9PlxuICAgICAgKHNlcXVlbmNlSWQgfHwgMCkgPiAobmV4dFNlcXVlbmNlSWQgfHwgMCkgJiYgc3RhdGUgIT09IFNFTkRJTkcgJiYgc3RhdGUgIT09IFNFTkRfRkFJTEVEXG4gICk7XG5cbiAgLy8gSWYgbm8gcmlnaHQgcGxhY2UgYXJlIGZvdW5kLCBhcHBlbmQgaXRcbiAgbmV4dEFjdGl2aXRpZXMuc3BsaWNlKH5pbmRleFRvSW5zZXJ0ID8gaW5kZXhUb0luc2VydCA6IG5leHRBY3Rpdml0aWVzLmxlbmd0aCwgMCwgbmV4dEFjdGl2aXR5KTtcblxuICByZXR1cm4gbmV4dEFjdGl2aXRpZXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFjdGl2aXRpZXMoXG4gIHN0YXRlOiBBY3Rpdml0aWVzU3RhdGVUeXBlID0gREVGQVVMVF9TVEFURSxcbiAgYWN0aW9uOiBBY3Rpdml0aWVzQWN0aW9uXG4pOiBBY3Rpdml0aWVzU3RhdGVUeXBlIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgREVMRVRFX0FDVElWSVRZOlxuICAgICAgc3RhdGUgPSB1cGRhdGVJbihzdGF0ZSwgWyh7IGlkIH06IFdlYkNoYXRBY3Rpdml0eSkgPT4gaWQgPT09IGFjdGlvbi5wYXlsb2FkLmFjdGl2aXR5SURdKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBNQVJLX0FDVElWSVRZOlxuICAgICAge1xuICAgICAgICBjb25zdCB7IHBheWxvYWQgfSA9IGFjdGlvbjtcblxuICAgICAgICBzdGF0ZSA9IHVwZGF0ZUluKFxuICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgIFsoeyBpZCB9OiBXZWJDaGF0QWN0aXZpdHkpID0+IGlkID09PSBwYXlsb2FkLmFjdGl2aXR5SUQsICdjaGFubmVsRGF0YScsIHBheWxvYWQubmFtZV0sXG4gICAgICAgICAgKCkgPT4gcGF5bG9hZC52YWx1ZVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgUE9TVF9BQ1RJVklUWV9QRU5ESU5HOlxuICAgICAge1xuICAgICAgICBsZXQge1xuICAgICAgICAgIHBheWxvYWQ6IHsgYWN0aXZpdHkgfVxuICAgICAgICB9ID0gYWN0aW9uO1xuXG4gICAgICAgIGFjdGl2aXR5ID0gdXBkYXRlSW4oYWN0aXZpdHksIFsnY2hhbm5lbERhdGEnLCAnc3RhdGUnXSwgKCkgPT4gU0VORElORyk7XG5cbiAgICAgICAgc3RhdGUgPSB1cHNlcnRBY3Rpdml0eVdpdGhTb3J0KHN0YXRlLCBhY3Rpdml0eSk7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBQT1NUX0FDVElWSVRZX1JFSkVDVEVEOlxuICAgICAgc3RhdGUgPSB1cGRhdGVJbihcbiAgICAgICAgc3RhdGUsXG4gICAgICAgIFtmaW5kQnlDbGllbnRBY3Rpdml0eUlEKGFjdGlvbi5tZXRhLmNsaWVudEFjdGl2aXR5SUQpLCAnY2hhbm5lbERhdGEnLCAnc3RhdGUnXSxcbiAgICAgICAgKCkgPT4gU0VORF9GQUlMRURcbiAgICAgICk7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBQT1NUX0FDVElWSVRZX0ZVTEZJTExFRDpcbiAgICAgIHN0YXRlID0gdXBkYXRlSW4oc3RhdGUsIFtmaW5kQnlDbGllbnRBY3Rpdml0eUlEKGFjdGlvbi5tZXRhLmNsaWVudEFjdGl2aXR5SUQpXSwgKCkgPT5cbiAgICAgICAgLy8gV2Ugd2lsbCByZXBsYWNlIHRoZSBhY3Rpdml0eSB3aXRoIHRoZSB2ZXJzaW9uIGZyb20gdGhlIHNlcnZlclxuICAgICAgICB1cGRhdGVJbihwYXRjaEFjdGl2aXR5KGFjdGlvbi5wYXlsb2FkLmFjdGl2aXR5LCBzdGF0ZVtzdGF0ZS5sZW5ndGggLSAxXSksIFsnY2hhbm5lbERhdGEnLCAnc3RhdGUnXSwgKCkgPT4gU0VOVClcbiAgICAgICk7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBJTkNPTUlOR19BQ1RJVklUWTpcbiAgICAgIC8vIFRPRE86IFtQNF0gIzIxMDAgTW92ZSBcInR5cGluZ1wiIGludG8gQ29uc3RhbnRzLkFjdGl2aXR5VHlwZVxuICAgICAgc3RhdGUgPSB1cHNlcnRBY3Rpdml0eVdpdGhTb3J0KHN0YXRlLCBhY3Rpb24ucGF5bG9hZC5hY3Rpdml0eSk7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuIl19
@@ -15,6 +15,8 @@ var _sagaError = require("../actions/sagaError");
15
15
 
16
16
  var _setNotification = require("../actions/setNotification");
17
17
 
18
+ var _isForbiddenPropertyName = _interopRequireDefault(require("../utils/isForbiddenPropertyName"));
19
+
18
20
  var DEFAULT_STATE = {};
19
21
 
20
22
  function notifications() {
@@ -38,22 +40,27 @@ function notifications() {
38
40
  id = payload.id,
39
41
  level = payload.level,
40
42
  message = payload.message;
41
- var notification = state[id];
42
-
43
- if (!notification || alt !== notification.alt || !Object.is(data, notification.data) || level !== notification.level || message !== notification.message) {
44
- state = (0, _simpleUpdateIn["default"])(state, [id], function () {
45
- return {
46
- alt: alt,
47
- data: data,
48
- id: id,
49
- level: level,
50
- message: message,
51
- timestamp: now
52
- };
53
- });
43
+
44
+ if (!(0, _isForbiddenPropertyName["default"])(id)) {
45
+ // Mitigated through denylisting.
46
+ // eslint-disable-next-line security/detect-object-injection
47
+ var notification = state[id];
48
+
49
+ if (!notification || alt !== notification.alt || !Object.is(data, notification.data) || level !== notification.level || message !== notification.message) {
50
+ state = (0, _simpleUpdateIn["default"])(state, [id], function () {
51
+ return {
52
+ alt: alt,
53
+ data: data,
54
+ id: id,
55
+ level: level,
56
+ message: message,
57
+ timestamp: now
58
+ };
59
+ });
60
+ }
54
61
  }
55
62
  }
56
63
 
57
64
  return state;
58
65
  }
59
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy9ub3RpZmljYXRpb25zLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfU1RBVEUiLCJub3RpZmljYXRpb25zIiwic3RhdGUiLCJwYXlsb2FkIiwidHlwZSIsIm5vdyIsIkRhdGUiLCJESVNNSVNTX05PVElGSUNBVElPTiIsImlkIiwiU0FHQV9FUlJPUiIsIlNFVF9OT1RJRklDQVRJT04iLCJhbHQiLCJkYXRhIiwibGV2ZWwiLCJtZXNzYWdlIiwibm90aWZpY2F0aW9uIiwiT2JqZWN0IiwiaXMiLCJ0aW1lc3RhbXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUNBOztBQUVBLElBQU1BLGFBQWEsR0FBRyxFQUF0Qjs7QUFFZSxTQUFTQyxhQUFULEdBQWlFO0FBQUEsTUFBMUNDLEtBQTBDLHVFQUFsQ0YsYUFBa0M7O0FBQUE7QUFBQSxNQUFqQkcsT0FBaUIsUUFBakJBLE9BQWlCO0FBQUEsTUFBUkMsSUFBUSxRQUFSQSxJQUFROztBQUM5RSxNQUFNQyxHQUFHLEdBQUdDLElBQUksQ0FBQ0QsR0FBTCxFQUFaOztBQUVBLE1BQUlELElBQUksS0FBS0cseUNBQWIsRUFBbUM7QUFDakNMLElBQUFBLEtBQUssR0FBRyxnQ0FBU0EsS0FBVCxFQUFnQixDQUFDQyxPQUFPLENBQUNLLEVBQVQsQ0FBaEIsQ0FBUjtBQUNELEdBRkQsTUFFTyxJQUFJSixJQUFJLEtBQUtLLHFCQUFiLEVBQXlCO0FBQzlCUCxJQUFBQSxLQUFLLEdBQUcsZ0NBQVNBLEtBQVQsRUFBZ0IsQ0FBQyxvQkFBRCxFQUF1QixTQUF2QixDQUFoQixFQUFtRDtBQUFBLGFBQU0saUJBQU47QUFBQSxLQUFuRCxDQUFSO0FBQ0QsR0FGTSxNQUVBLElBQUlFLElBQUksS0FBS00saUNBQWIsRUFBK0I7QUFDcEMsUUFBUUMsR0FBUixHQUEwQ1IsT0FBMUMsQ0FBUVEsR0FBUjtBQUFBLFFBQWFDLElBQWIsR0FBMENULE9BQTFDLENBQWFTLElBQWI7QUFBQSxRQUFtQkosRUFBbkIsR0FBMENMLE9BQTFDLENBQW1CSyxFQUFuQjtBQUFBLFFBQXVCSyxLQUF2QixHQUEwQ1YsT0FBMUMsQ0FBdUJVLEtBQXZCO0FBQUEsUUFBOEJDLE9BQTlCLEdBQTBDWCxPQUExQyxDQUE4QlcsT0FBOUI7QUFDQSxRQUFNQyxZQUFZLEdBQUdiLEtBQUssQ0FBQ00sRUFBRCxDQUExQjs7QUFFQSxRQUNFLENBQUNPLFlBQUQsSUFDQUosR0FBRyxLQUFLSSxZQUFZLENBQUNKLEdBRHJCLElBRUEsQ0FBQ0ssTUFBTSxDQUFDQyxFQUFQLENBQVVMLElBQVYsRUFBZ0JHLFlBQVksQ0FBQ0gsSUFBN0IsQ0FGRCxJQUdBQyxLQUFLLEtBQUtFLFlBQVksQ0FBQ0YsS0FIdkIsSUFJQUMsT0FBTyxLQUFLQyxZQUFZLENBQUNELE9BTDNCLEVBTUU7QUFDQVosTUFBQUEsS0FBSyxHQUFHLGdDQUFTQSxLQUFULEVBQWdCLENBQUNNLEVBQUQsQ0FBaEIsRUFBc0I7QUFBQSxlQUFPO0FBQ25DRyxVQUFBQSxHQUFHLEVBQUhBLEdBRG1DO0FBRW5DQyxVQUFBQSxJQUFJLEVBQUpBLElBRm1DO0FBR25DSixVQUFBQSxFQUFFLEVBQUZBLEVBSG1DO0FBSW5DSyxVQUFBQSxLQUFLLEVBQUxBLEtBSm1DO0FBS25DQyxVQUFBQSxPQUFPLEVBQVBBLE9BTG1DO0FBTW5DSSxVQUFBQSxTQUFTLEVBQUViO0FBTndCLFNBQVA7QUFBQSxPQUF0QixDQUFSO0FBUUQ7QUFDRjs7QUFFRCxTQUFPSCxLQUFQO0FBQ0QiLCJzb3VyY2VSb290IjoiY29yZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdXBkYXRlSW4gZnJvbSAnc2ltcGxlLXVwZGF0ZS1pbic7XG5cbmltcG9ydCB7IERJU01JU1NfTk9USUZJQ0FUSU9OIH0gZnJvbSAnLi4vYWN0aW9ucy9kaXNtaXNzTm90aWZpY2F0aW9uJztcbmltcG9ydCB7IFNBR0FfRVJST1IgfSBmcm9tICcuLi9hY3Rpb25zL3NhZ2FFcnJvcic7XG5pbXBvcnQgeyBTRVRfTk9USUZJQ0FUSU9OIH0gZnJvbSAnLi4vYWN0aW9ucy9zZXROb3RpZmljYXRpb24nO1xuXG5jb25zdCBERUZBVUxUX1NUQVRFID0ge307XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vdGlmaWNhdGlvbnMoc3RhdGUgPSBERUZBVUxUX1NUQVRFLCB7IHBheWxvYWQsIHR5cGUgfSkge1xuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuXG4gIGlmICh0eXBlID09PSBESVNNSVNTX05PVElGSUNBVElPTikge1xuICAgIHN0YXRlID0gdXBkYXRlSW4oc3RhdGUsIFtwYXlsb2FkLmlkXSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU0FHQV9FUlJPUikge1xuICAgIHN0YXRlID0gdXBkYXRlSW4oc3RhdGUsIFsnY29ubmVjdGl2aXR5c3RhdHVzJywgJ21lc3NhZ2UnXSwgKCkgPT4gJ2phdmFzY3JpcHRlcnJvcicpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFNFVF9OT1RJRklDQVRJT04pIHtcbiAgICBjb25zdCB7IGFsdCwgZGF0YSwgaWQsIGxldmVsLCBtZXNzYWdlIH0gPSBwYXlsb2FkO1xuICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHN0YXRlW2lkXTtcblxuICAgIGlmIChcbiAgICAgICFub3RpZmljYXRpb24gfHxcbiAgICAgIGFsdCAhPT0gbm90aWZpY2F0aW9uLmFsdCB8fFxuICAgICAgIU9iamVjdC5pcyhkYXRhLCBub3RpZmljYXRpb24uZGF0YSkgfHxcbiAgICAgIGxldmVsICE9PSBub3RpZmljYXRpb24ubGV2ZWwgfHxcbiAgICAgIG1lc3NhZ2UgIT09IG5vdGlmaWNhdGlvbi5tZXNzYWdlXG4gICAgKSB7XG4gICAgICBzdGF0ZSA9IHVwZGF0ZUluKHN0YXRlLCBbaWRdLCAoKSA9PiAoe1xuICAgICAgICBhbHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGlkLFxuICAgICAgICBsZXZlbCxcbiAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgdGltZXN0YW1wOiBub3dcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy9ub3RpZmljYXRpb25zLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfU1RBVEUiLCJub3RpZmljYXRpb25zIiwic3RhdGUiLCJwYXlsb2FkIiwidHlwZSIsIm5vdyIsIkRhdGUiLCJESVNNSVNTX05PVElGSUNBVElPTiIsImlkIiwiU0FHQV9FUlJPUiIsIlNFVF9OT1RJRklDQVRJT04iLCJhbHQiLCJkYXRhIiwibGV2ZWwiLCJtZXNzYWdlIiwibm90aWZpY2F0aW9uIiwiT2JqZWN0IiwiaXMiLCJ0aW1lc3RhbXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQU1BLGFBQWEsR0FBRyxFQUF0Qjs7QUFFZSxTQUFTQyxhQUFULEdBQWlFO0FBQUEsTUFBMUNDLEtBQTBDLHVFQUFsQ0YsYUFBa0M7O0FBQUE7QUFBQSxNQUFqQkcsT0FBaUIsUUFBakJBLE9BQWlCO0FBQUEsTUFBUkMsSUFBUSxRQUFSQSxJQUFROztBQUM5RSxNQUFNQyxHQUFHLEdBQUdDLElBQUksQ0FBQ0QsR0FBTCxFQUFaOztBQUVBLE1BQUlELElBQUksS0FBS0cseUNBQWIsRUFBbUM7QUFDakNMLElBQUFBLEtBQUssR0FBRyxnQ0FBU0EsS0FBVCxFQUFnQixDQUFDQyxPQUFPLENBQUNLLEVBQVQsQ0FBaEIsQ0FBUjtBQUNELEdBRkQsTUFFTyxJQUFJSixJQUFJLEtBQUtLLHFCQUFiLEVBQXlCO0FBQzlCUCxJQUFBQSxLQUFLLEdBQUcsZ0NBQVNBLEtBQVQsRUFBZ0IsQ0FBQyxvQkFBRCxFQUF1QixTQUF2QixDQUFoQixFQUFtRDtBQUFBLGFBQU0saUJBQU47QUFBQSxLQUFuRCxDQUFSO0FBQ0QsR0FGTSxNQUVBLElBQUlFLElBQUksS0FBS00saUNBQWIsRUFBK0I7QUFDcEMsUUFBUUMsR0FBUixHQUEwQ1IsT0FBMUMsQ0FBUVEsR0FBUjtBQUFBLFFBQWFDLElBQWIsR0FBMENULE9BQTFDLENBQWFTLElBQWI7QUFBQSxRQUFtQkosRUFBbkIsR0FBMENMLE9BQTFDLENBQW1CSyxFQUFuQjtBQUFBLFFBQXVCSyxLQUF2QixHQUEwQ1YsT0FBMUMsQ0FBdUJVLEtBQXZCO0FBQUEsUUFBOEJDLE9BQTlCLEdBQTBDWCxPQUExQyxDQUE4QlcsT0FBOUI7O0FBRUEsUUFBSSxDQUFDLHlDQUF3Qk4sRUFBeEIsQ0FBTCxFQUFrQztBQUNoQztBQUNBO0FBQ0EsVUFBTU8sWUFBWSxHQUFHYixLQUFLLENBQUNNLEVBQUQsQ0FBMUI7O0FBRUEsVUFDRSxDQUFDTyxZQUFELElBQ0FKLEdBQUcsS0FBS0ksWUFBWSxDQUFDSixHQURyQixJQUVBLENBQUNLLE1BQU0sQ0FBQ0MsRUFBUCxDQUFVTCxJQUFWLEVBQWdCRyxZQUFZLENBQUNILElBQTdCLENBRkQsSUFHQUMsS0FBSyxLQUFLRSxZQUFZLENBQUNGLEtBSHZCLElBSUFDLE9BQU8sS0FBS0MsWUFBWSxDQUFDRCxPQUwzQixFQU1FO0FBQ0FaLFFBQUFBLEtBQUssR0FBRyxnQ0FBU0EsS0FBVCxFQUFnQixDQUFDTSxFQUFELENBQWhCLEVBQXNCO0FBQUEsaUJBQU87QUFDbkNHLFlBQUFBLEdBQUcsRUFBSEEsR0FEbUM7QUFFbkNDLFlBQUFBLElBQUksRUFBSkEsSUFGbUM7QUFHbkNKLFlBQUFBLEVBQUUsRUFBRkEsRUFIbUM7QUFJbkNLLFlBQUFBLEtBQUssRUFBTEEsS0FKbUM7QUFLbkNDLFlBQUFBLE9BQU8sRUFBUEEsT0FMbUM7QUFNbkNJLFlBQUFBLFNBQVMsRUFBRWI7QUFOd0IsV0FBUDtBQUFBLFNBQXRCLENBQVI7QUFRRDtBQUNGO0FBQ0Y7O0FBRUQsU0FBT0gsS0FBUDtBQUNEIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHVwZGF0ZUluIGZyb20gJ3NpbXBsZS11cGRhdGUtaW4nO1xuXG5pbXBvcnQgeyBESVNNSVNTX05PVElGSUNBVElPTiB9IGZyb20gJy4uL2FjdGlvbnMvZGlzbWlzc05vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBTQUdBX0VSUk9SIH0gZnJvbSAnLi4vYWN0aW9ucy9zYWdhRXJyb3InO1xuaW1wb3J0IHsgU0VUX05PVElGSUNBVElPTiB9IGZyb20gJy4uL2FjdGlvbnMvc2V0Tm90aWZpY2F0aW9uJztcbmltcG9ydCBpc0ZvcmJpZGRlblByb3BlcnR5TmFtZSBmcm9tICcuLi91dGlscy9pc0ZvcmJpZGRlblByb3BlcnR5TmFtZSc7XG5cbmNvbnN0IERFRkFVTFRfU1RBVEUgPSB7fTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbm90aWZpY2F0aW9ucyhzdGF0ZSA9IERFRkFVTFRfU1RBVEUsIHsgcGF5bG9hZCwgdHlwZSB9KSB7XG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG5cbiAgaWYgKHR5cGUgPT09IERJU01JU1NfTk9USUZJQ0FUSU9OKSB7XG4gICAgc3RhdGUgPSB1cGRhdGVJbihzdGF0ZSwgW3BheWxvYWQuaWRdKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSBTQUdBX0VSUk9SKSB7XG4gICAgc3RhdGUgPSB1cGRhdGVJbihzdGF0ZSwgWydjb25uZWN0aXZpdHlzdGF0dXMnLCAnbWVzc2FnZSddLCAoKSA9PiAnamF2YXNjcmlwdGVycm9yJyk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gU0VUX05PVElGSUNBVElPTikge1xuICAgIGNvbnN0IHsgYWx0LCBkYXRhLCBpZCwgbGV2ZWwsIG1lc3NhZ2UgfSA9IHBheWxvYWQ7XG5cbiAgICBpZiAoIWlzRm9yYmlkZGVuUHJvcGVydHlOYW1lKGlkKSkge1xuICAgICAgLy8gTWl0aWdhdGVkIHRocm91Z2ggZGVueWxpc3RpbmcuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHN0YXRlW2lkXTtcblxuICAgICAgaWYgKFxuICAgICAgICAhbm90aWZpY2F0aW9uIHx8XG4gICAgICAgIGFsdCAhPT0gbm90aWZpY2F0aW9uLmFsdCB8fFxuICAgICAgICAhT2JqZWN0LmlzKGRhdGEsIG5vdGlmaWNhdGlvbi5kYXRhKSB8fFxuICAgICAgICBsZXZlbCAhPT0gbm90aWZpY2F0aW9uLmxldmVsIHx8XG4gICAgICAgIG1lc3NhZ2UgIT09IG5vdGlmaWNhdGlvbi5tZXNzYWdlXG4gICAgICApIHtcbiAgICAgICAgc3RhdGUgPSB1cGRhdGVJbihzdGF0ZSwgW2lkXSwgKCkgPT4gKHtcbiAgICAgICAgICBhbHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgIHRpbWVzdGFtcDogbm93XG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG4iXX0=
@@ -34,12 +34,18 @@ function lastTyping() {
34
34
  activityType = _payload$activity.type;
35
35
 
36
36
  if (activityType === 'typing') {
37
- state = (0, _simpleUpdateIn["default"])(state, [id], function () {
38
- return {
39
- at: Date.now(),
40
- name: name,
41
- role: role
42
- };
37
+ var now = Date.now();
38
+ state = (0, _simpleUpdateIn["default"])(state, [id, 'at'], function (at) {
39
+ return at || now;
40
+ });
41
+ state = (0, _simpleUpdateIn["default"])(state, [id, 'last'], function () {
42
+ return now;
43
+ });
44
+ state = (0, _simpleUpdateIn["default"])(state, [id, 'name'], function () {
45
+ return name;
46
+ });
47
+ state = (0, _simpleUpdateIn["default"])(state, [id, 'role'], function () {
48
+ return role;
43
49
  });
44
50
  } else if (activityType === 'message') {
45
51
  state = (0, _simpleUpdateIn["default"])(state, [id]);
@@ -48,4 +54,4 @@ function lastTyping() {
48
54
 
49
55
  return state;
50
56
  }
51
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy90eXBpbmcuanMiXSwibmFtZXMiOlsiREVGQVVMVF9TVEFURSIsImxhc3RUeXBpbmciLCJzdGF0ZSIsInBheWxvYWQiLCJ0eXBlIiwiSU5DT01JTkdfQUNUSVZJVFkiLCJQT1NUX0FDVElWSVRZX1BFTkRJTkciLCJhY3Rpdml0eSIsImZyb20iLCJpZCIsIm5hbWUiLCJyb2xlIiwiYWN0aXZpdHlUeXBlIiwiYXQiLCJEYXRlIiwibm93Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQTs7QUFFQTs7QUFDQTs7QUFOQTs7QUFDQTtBQU9BLElBQU1BLGFBQWEsR0FBRyxFQUF0Qjs7QUFFZSxTQUFTQyxVQUFULEdBQThEO0FBQUEsTUFBMUNDLEtBQTBDLHVFQUFsQ0YsYUFBa0M7O0FBQUE7QUFBQSxNQUFqQkcsT0FBaUIsUUFBakJBLE9BQWlCO0FBQUEsTUFBUkMsSUFBUSxRQUFSQSxJQUFROztBQUMzRSxNQUFJQSxJQUFJLEtBQUtDLG1DQUFULElBQThCRCxJQUFJLEtBQUtFLG1DQUEzQyxFQUFrRTtBQUNoRSw0QkFLSUgsT0FMSixDQUNFSSxRQURGO0FBQUEsa0RBRUlDLElBRko7QUFBQSxRQUVZQyxFQUZaLHlCQUVZQSxFQUZaO0FBQUEsUUFFZ0JDLElBRmhCLHlCQUVnQkEsSUFGaEI7QUFBQSxRQUVzQkMsSUFGdEIseUJBRXNCQSxJQUZ0QjtBQUFBLFFBR1VDLFlBSFYscUJBR0lSLElBSEo7O0FBT0EsUUFBSVEsWUFBWSxLQUFLLFFBQXJCLEVBQStCO0FBQzdCVixNQUFBQSxLQUFLLEdBQUcsZ0NBQVNBLEtBQVQsRUFBZ0IsQ0FBQ08sRUFBRCxDQUFoQixFQUFzQjtBQUFBLGVBQU87QUFDbkNJLFVBQUFBLEVBQUUsRUFBRUMsSUFBSSxDQUFDQyxHQUFMLEVBRCtCO0FBRW5DTCxVQUFBQSxJQUFJLEVBQUpBLElBRm1DO0FBR25DQyxVQUFBQSxJQUFJLEVBQUpBO0FBSG1DLFNBQVA7QUFBQSxPQUF0QixDQUFSO0FBS0QsS0FORCxNQU1PLElBQUlDLFlBQVksS0FBSyxTQUFyQixFQUFnQztBQUNyQ1YsTUFBQUEsS0FBSyxHQUFHLGdDQUFTQSxLQUFULEVBQWdCLENBQUNPLEVBQUQsQ0FBaEIsQ0FBUjtBQUNEO0FBQ0Y7O0FBRUQsU0FBT1AsS0FBUDtBQUNEIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyplc2xpbnQgbm8tY2FzZS1kZWNsYXJhdGlvbnM6IFwib2ZmXCIqL1xuLyplc2xpbnQgbm8tdW51c2VkLXZhcnM6IFwib2ZmXCIqL1xuXG5pbXBvcnQgdXBkYXRlSW4gZnJvbSAnc2ltcGxlLXVwZGF0ZS1pbic7XG5cbmltcG9ydCB7IElOQ09NSU5HX0FDVElWSVRZIH0gZnJvbSAnLi4vYWN0aW9ucy9pbmNvbWluZ0FjdGl2aXR5JztcbmltcG9ydCB7IFBPU1RfQUNUSVZJVFlfUEVORElORyB9IGZyb20gJy4uL2FjdGlvbnMvcG9zdEFjdGl2aXR5JztcblxuY29uc3QgREVGQVVMVF9TVEFURSA9IHt9O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsYXN0VHlwaW5nKHN0YXRlID0gREVGQVVMVF9TVEFURSwgeyBwYXlsb2FkLCB0eXBlIH0pIHtcbiAgaWYgKHR5cGUgPT09IElOQ09NSU5HX0FDVElWSVRZIHx8IHR5cGUgPT09IFBPU1RfQUNUSVZJVFlfUEVORElORykge1xuICAgIGNvbnN0IHtcbiAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgIGZyb206IHsgaWQsIG5hbWUsIHJvbGUgfSxcbiAgICAgICAgdHlwZTogYWN0aXZpdHlUeXBlXG4gICAgICB9XG4gICAgfSA9IHBheWxvYWQ7XG5cbiAgICBpZiAoYWN0aXZpdHlUeXBlID09PSAndHlwaW5nJykge1xuICAgICAgc3RhdGUgPSB1cGRhdGVJbihzdGF0ZSwgW2lkXSwgKCkgPT4gKHtcbiAgICAgICAgYXQ6IERhdGUubm93KCksXG4gICAgICAgIG5hbWUsXG4gICAgICAgIHJvbGVcbiAgICAgIH0pKTtcbiAgICB9IGVsc2UgaWYgKGFjdGl2aXR5VHlwZSA9PT0gJ21lc3NhZ2UnKSB7XG4gICAgICBzdGF0ZSA9IHVwZGF0ZUluKHN0YXRlLCBbaWRdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy90eXBpbmcuanMiXSwibmFtZXMiOlsiREVGQVVMVF9TVEFURSIsImxhc3RUeXBpbmciLCJzdGF0ZSIsInBheWxvYWQiLCJ0eXBlIiwiSU5DT01JTkdfQUNUSVZJVFkiLCJQT1NUX0FDVElWSVRZX1BFTkRJTkciLCJhY3Rpdml0eSIsImZyb20iLCJpZCIsIm5hbWUiLCJyb2xlIiwiYWN0aXZpdHlUeXBlIiwibm93IiwiRGF0ZSIsImF0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQTs7QUFFQTs7QUFDQTs7QUFOQTs7QUFDQTtBQU9BLElBQU1BLGFBQWEsR0FBRyxFQUF0Qjs7QUFFZSxTQUFTQyxVQUFULEdBQThEO0FBQUEsTUFBMUNDLEtBQTBDLHVFQUFsQ0YsYUFBa0M7O0FBQUE7QUFBQSxNQUFqQkcsT0FBaUIsUUFBakJBLE9BQWlCO0FBQUEsTUFBUkMsSUFBUSxRQUFSQSxJQUFROztBQUMzRSxNQUFJQSxJQUFJLEtBQUtDLG1DQUFULElBQThCRCxJQUFJLEtBQUtFLG1DQUEzQyxFQUFrRTtBQUNoRSw0QkFLSUgsT0FMSixDQUNFSSxRQURGO0FBQUEsa0RBRUlDLElBRko7QUFBQSxRQUVZQyxFQUZaLHlCQUVZQSxFQUZaO0FBQUEsUUFFZ0JDLElBRmhCLHlCQUVnQkEsSUFGaEI7QUFBQSxRQUVzQkMsSUFGdEIseUJBRXNCQSxJQUZ0QjtBQUFBLFFBR1VDLFlBSFYscUJBR0lSLElBSEo7O0FBT0EsUUFBSVEsWUFBWSxLQUFLLFFBQXJCLEVBQStCO0FBQzdCLFVBQU1DLEdBQUcsR0FBR0MsSUFBSSxDQUFDRCxHQUFMLEVBQVo7QUFFQVgsTUFBQUEsS0FBSyxHQUFHLGdDQUFTQSxLQUFULEVBQWdCLENBQUNPLEVBQUQsRUFBSyxJQUFMLENBQWhCLEVBQTRCLFVBQUFNLEVBQUU7QUFBQSxlQUFJQSxFQUFFLElBQUlGLEdBQVY7QUFBQSxPQUE5QixDQUFSO0FBQ0FYLE1BQUFBLEtBQUssR0FBRyxnQ0FBU0EsS0FBVCxFQUFnQixDQUFDTyxFQUFELEVBQUssTUFBTCxDQUFoQixFQUE4QjtBQUFBLGVBQU1JLEdBQU47QUFBQSxPQUE5QixDQUFSO0FBQ0FYLE1BQUFBLEtBQUssR0FBRyxnQ0FBU0EsS0FBVCxFQUFnQixDQUFDTyxFQUFELEVBQUssTUFBTCxDQUFoQixFQUE4QjtBQUFBLGVBQU1DLElBQU47QUFBQSxPQUE5QixDQUFSO0FBQ0FSLE1BQUFBLEtBQUssR0FBRyxnQ0FBU0EsS0FBVCxFQUFnQixDQUFDTyxFQUFELEVBQUssTUFBTCxDQUFoQixFQUE4QjtBQUFBLGVBQU1FLElBQU47QUFBQSxPQUE5QixDQUFSO0FBQ0QsS0FQRCxNQU9PLElBQUlDLFlBQVksS0FBSyxTQUFyQixFQUFnQztBQUNyQ1YsTUFBQUEsS0FBSyxHQUFHLGdDQUFTQSxLQUFULEVBQWdCLENBQUNPLEVBQUQsQ0FBaEIsQ0FBUjtBQUNEO0FBQ0Y7O0FBRUQsU0FBT1AsS0FBUDtBQUNEIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyplc2xpbnQgbm8tY2FzZS1kZWNsYXJhdGlvbnM6IFwib2ZmXCIqL1xuLyplc2xpbnQgbm8tdW51c2VkLXZhcnM6IFwib2ZmXCIqL1xuXG5pbXBvcnQgdXBkYXRlSW4gZnJvbSAnc2ltcGxlLXVwZGF0ZS1pbic7XG5cbmltcG9ydCB7IElOQ09NSU5HX0FDVElWSVRZIH0gZnJvbSAnLi4vYWN0aW9ucy9pbmNvbWluZ0FjdGl2aXR5JztcbmltcG9ydCB7IFBPU1RfQUNUSVZJVFlfUEVORElORyB9IGZyb20gJy4uL2FjdGlvbnMvcG9zdEFjdGl2aXR5JztcblxuY29uc3QgREVGQVVMVF9TVEFURSA9IHt9O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsYXN0VHlwaW5nKHN0YXRlID0gREVGQVVMVF9TVEFURSwgeyBwYXlsb2FkLCB0eXBlIH0pIHtcbiAgaWYgKHR5cGUgPT09IElOQ09NSU5HX0FDVElWSVRZIHx8IHR5cGUgPT09IFBPU1RfQUNUSVZJVFlfUEVORElORykge1xuICAgIGNvbnN0IHtcbiAgICAgIGFjdGl2aXR5OiB7XG4gICAgICAgIGZyb206IHsgaWQsIG5hbWUsIHJvbGUgfSxcbiAgICAgICAgdHlwZTogYWN0aXZpdHlUeXBlXG4gICAgICB9XG4gICAgfSA9IHBheWxvYWQ7XG5cbiAgICBpZiAoYWN0aXZpdHlUeXBlID09PSAndHlwaW5nJykge1xuICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgICAgc3RhdGUgPSB1cGRhdGVJbihzdGF0ZSwgW2lkLCAnYXQnXSwgYXQgPT4gYXQgfHwgbm93KTtcbiAgICAgIHN0YXRlID0gdXBkYXRlSW4oc3RhdGUsIFtpZCwgJ2xhc3QnXSwgKCkgPT4gbm93KTtcbiAgICAgIHN0YXRlID0gdXBkYXRlSW4oc3RhdGUsIFtpZCwgJ25hbWUnXSwgKCkgPT4gbmFtZSk7XG4gICAgICBzdGF0ZSA9IHVwZGF0ZUluKHN0YXRlLCBbaWQsICdyb2xlJ10sICgpID0+IHJvbGUpO1xuICAgIH0gZWxzZSBpZiAoYWN0aXZpdHlUeXBlID09PSAnbWVzc2FnZScpIHtcbiAgICAgIHN0YXRlID0gdXBkYXRlSW4oc3RhdGUsIFtpZF0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cbiJdfQ==
@@ -129,4 +129,4 @@ function _callee() {
129
129
  }
130
130
  }, _marked2);
131
131
  }
132
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWdhcy9jb25uZWN0aW9uU3RhdHVzVG9Ob3RpZmljYXRpb25TYWdhLmpzIl0sIm5hbWVzIjpbImNvbm5lY3Rpb25TdGF0dXNUb05vdGlmaWNhdGlvbiIsIkNPTk5FQ1RJVklUWV9TVEFUVVNfTk9USUZJQ0FUSU9OX0lEIiwic3Vic2NyaWJlVG9Qcm9taXNlUXVldWUiLCJvYnNlcnZhYmxlIiwicHVzaCIsInNoaWZ0Iiwic3Vic2NyaXB0aW9uIiwic3Vic2NyaWJlIiwibmV4dCIsInVuc3Vic2NyaWJlIiwiZGlyZWN0TGluZSIsInBheWxvYWQiLCJjb25uZWN0aW9uU3RhdHVzJCIsInZhbHVlIiwiaWQiLCJsZXZlbCIsIm1lc3NhZ2UiLCJyZWNvbm5lY3RpbmciLCJDT05ORUNUIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBOztBQUVBOztBQUNBOztBQUNBOzt3REFnQlVBLDhCOzs7QUFkVixJQUFNQyxtQ0FBbUMsR0FBRyxvQkFBNUM7O0FBRUEsU0FBU0MsdUJBQVQsQ0FBaUNDLFVBQWpDLEVBQTZDO0FBQzNDLDRCQUF3QixzQ0FBeEI7QUFBQSxNQUFRQyxJQUFSLHVCQUFRQSxJQUFSO0FBQUEsTUFBY0MsS0FBZCx1QkFBY0EsS0FBZDs7QUFDQSxNQUFNQyxZQUFZLEdBQUdILFVBQVUsQ0FBQ0ksU0FBWCxDQUFxQjtBQUFFQyxJQUFBQSxJQUFJLEVBQUVKO0FBQVIsR0FBckIsQ0FBckI7QUFFQSxTQUFPO0FBQ0xDLElBQUFBLEtBQUssRUFBTEEsS0FESztBQUVMSSxJQUFBQSxXQUZLLHlCQUVTO0FBQ1pILE1BQUFBLFlBQVksQ0FBQ0csV0FBYjtBQUNEO0FBSkksR0FBUDtBQU1EOztBQUVELFNBQVVULDhCQUFWO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0RVLFVBQUFBLFVBQXRELFFBQTJDQyxPQUEzQyxDQUFzREQsVUFBdEQ7QUFBQSxrQ0FDaUNSLHVCQUF1QixDQUFDUSxVQUFVLENBQUNFLGlCQUFaLENBRHhELEVBQ1VQLEtBRFYseUJBQ1VBLEtBRFYsRUFDaUJJLFdBRGpCLHlCQUNpQkEsV0FEakI7QUFBQTs7QUFBQTtBQUFBO0FBT29CLGlCQUFNLG1CQUFLSixLQUFMLENBQU47O0FBUHBCO0FBT1lRLFVBQUFBLEtBUFo7QUFBQSx3QkFTY0EsS0FUZDtBQUFBLDBDQVVhLENBVmIsdUJBV2EsQ0FYYix1QkFzQmEsQ0F0QmIsd0JBbUNhLENBbkNiLHdCQW9DYSxDQXBDYjtBQUFBOztBQUFBO0FBQUE7QUFZVSxpQkFBTSxrQkFDSixpQ0FBZ0I7QUFDZEMsWUFBQUEsRUFBRSxFQUFFYixtQ0FEVTtBQUVkYyxZQUFBQSxLQUFLLEVBQUUsTUFGTztBQUdkQyxZQUFBQSxPQUFPLEVBQUVDLFlBQVksR0FBRyxjQUFILEdBQW9CO0FBSDNCLFdBQWhCLENBREksQ0FBTjs7QUFaVjtBQUFBOztBQUFBO0FBdUJVQSxVQUFBQSxZQUFZLEdBQUcsQ0FBZjtBQXZCVjtBQXlCVSxpQkFBTSxrQkFDSixpQ0FBZ0I7QUFDZEgsWUFBQUEsRUFBRSxFQUFFYixtQ0FEVTtBQUVkYyxZQUFBQSxLQUFLLEVBQUUsU0FGTztBQUdkQyxZQUFBQSxPQUFPLEVBQUU7QUFISyxXQUFoQixDQURJLENBQU47O0FBekJWO0FBQUE7O0FBQUE7QUFxQ1VDLFVBQUFBLFlBQVksR0FBRyxDQUFmO0FBckNWO0FBdUNVLGlCQUFNLGtCQUNKLGlDQUFnQjtBQUNkSCxZQUFBQSxFQUFFLEVBQUViLG1DQURVO0FBRWRjLFlBQUFBLEtBQUssRUFBRSxPQUZPO0FBR2RDLFlBQUFBLE9BQU8sRUFBRTtBQUhLLFdBQWhCLENBREksQ0FBTjs7QUF2Q1Y7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBc0RJUCxVQUFBQSxXQUFXO0FBdERmOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQTBEZTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDYixpQkFBTSx5QkFBV1MsZ0JBQVgsRUFBb0JsQiw4QkFBcEIsQ0FBTjs7QUFEYTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSIsInNvdXJjZVJvb3QiOiJjb3JlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby1tYWdpYy1udW1iZXJzOiBbXCJlcnJvclwiLCB7IFwiaWdub3JlXCI6IFswLCAxLCAyLCAzLCA0XSB9XSAqL1xuXG5pbXBvcnQgeyBjYWxsLCBwdXQsIHRha2VMYXRlc3QgfSBmcm9tICdyZWR1eC1zYWdhL2VmZmVjdHMnO1xuXG5pbXBvcnQgeyBDT05ORUNUIH0gZnJvbSAnLi4vYWN0aW9ucy9jb25uZWN0JztcbmltcG9ydCBjcmVhdGVQcm9taXNlUXVldWUgZnJvbSAnLi4vY3JlYXRlUHJvbWlzZVF1ZXVlJztcbmltcG9ydCBzZXROb3RpZmljYXRpb24gZnJvbSAnLi4vYWN0aW9ucy9zZXROb3RpZmljYXRpb24nO1xuXG5jb25zdCBDT05ORUNUSVZJVFlfU1RBVFVTX05PVElGSUNBVElPTl9JRCA9ICdjb25uZWN0aXZpdHlzdGF0dXMnO1xuXG5mdW5jdGlvbiBzdWJzY3JpYmVUb1Byb21pc2VRdWV1ZShvYnNlcnZhYmxlKSB7XG4gIGNvbnN0IHsgcHVzaCwgc2hpZnQgfSA9IGNyZWF0ZVByb21pc2VRdWV1ZSgpO1xuICBjb25zdCBzdWJzY3JpcHRpb24gPSBvYnNlcnZhYmxlLnN1YnNjcmliZSh7IG5leHQ6IHB1c2ggfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzaGlmdCxcbiAgICB1bnN1YnNjcmliZSgpIHtcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24qIGNvbm5lY3Rpb25TdGF0dXNUb05vdGlmaWNhdGlvbih7IHBheWxvYWQ6IHsgZGlyZWN0TGluZSB9IH0pIHtcbiAgY29uc3QgeyBzaGlmdCwgdW5zdWJzY3JpYmUgfSA9IHN1YnNjcmliZVRvUHJvbWlzZVF1ZXVlKGRpcmVjdExpbmUuY29ubmVjdGlvblN0YXR1cyQpO1xuXG4gIHRyeSB7XG4gICAgbGV0IHJlY29ubmVjdGluZztcblxuICAgIGZvciAoOzspIHtcbiAgICAgIGNvbnN0IHZhbHVlID0geWllbGQgY2FsbChzaGlmdCk7XG5cbiAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgeWllbGQgcHV0KFxuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgaWQ6IENPTk5FQ1RJVklUWV9TVEFUVVNfTk9USUZJQ0FUSU9OX0lELFxuICAgICAgICAgICAgICBsZXZlbDogJ2luZm8nLFxuICAgICAgICAgICAgICBtZXNzYWdlOiByZWNvbm5lY3RpbmcgPyAncmVjb25uZWN0aW5nJyA6ICdjb25uZWN0aW5nJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHJlY29ubmVjdGluZyA9IDE7XG5cbiAgICAgICAgICB5aWVsZCBwdXQoXG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICBpZDogQ09OTkVDVElWSVRZX1NUQVRVU19OT1RJRklDQVRJT05fSUQsXG4gICAgICAgICAgICAgIGxldmVsOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdjb25uZWN0ZWQnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDM6XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZWNvbm5lY3RpbmcgPSAxO1xuXG4gICAgICAgICAgeWllbGQgcHV0KFxuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgaWQ6IENPTk5FQ1RJVklUWV9TVEFUVVNfTk9USUZJQ0FUSU9OX0lELFxuICAgICAgICAgICAgICBsZXZlbDogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ2ZhaWxlZHRvY29ubmVjdCdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24qKCkge1xuICB5aWVsZCB0YWtlTGF0ZXN0KENPTk5FQ1QsIGNvbm5lY3Rpb25TdGF0dXNUb05vdGlmaWNhdGlvbik7XG59XG4iXX0=
132
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWdhcy9jb25uZWN0aW9uU3RhdHVzVG9Ob3RpZmljYXRpb25TYWdhLmpzIl0sIm5hbWVzIjpbImNvbm5lY3Rpb25TdGF0dXNUb05vdGlmaWNhdGlvbiIsIkNPTk5FQ1RJVklUWV9TVEFUVVNfTk9USUZJQ0FUSU9OX0lEIiwic3Vic2NyaWJlVG9Qcm9taXNlUXVldWUiLCJvYnNlcnZhYmxlIiwicHVzaCIsInNoaWZ0Iiwic3Vic2NyaXB0aW9uIiwic3Vic2NyaWJlIiwibmV4dCIsInVuc3Vic2NyaWJlIiwiZGlyZWN0TGluZSIsInBheWxvYWQiLCJjb25uZWN0aW9uU3RhdHVzJCIsInZhbHVlIiwiaWQiLCJsZXZlbCIsIm1lc3NhZ2UiLCJyZWNvbm5lY3RpbmciLCJDT05ORUNUIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBOztBQUVBOztBQUNBOztBQUNBOzt3REFnQlVBLDhCOzs7QUFkVixJQUFNQyxtQ0FBbUMsR0FBRyxvQkFBNUM7O0FBRUEsU0FBU0MsdUJBQVQsQ0FBaUNDLFVBQWpDLEVBQTZDO0FBQzNDLDRCQUF3QixzQ0FBeEI7QUFBQSxNQUFRQyxJQUFSLHVCQUFRQSxJQUFSO0FBQUEsTUFBY0MsS0FBZCx1QkFBY0EsS0FBZDs7QUFDQSxNQUFNQyxZQUFZLEdBQUdILFVBQVUsQ0FBQ0ksU0FBWCxDQUFxQjtBQUFFQyxJQUFBQSxJQUFJLEVBQUVKO0FBQVIsR0FBckIsQ0FBckI7QUFFQSxTQUFPO0FBQ0xDLElBQUFBLEtBQUssRUFBTEEsS0FESztBQUVMSSxJQUFBQSxXQUZLLHlCQUVTO0FBQ1pILE1BQUFBLFlBQVksQ0FBQ0csV0FBYjtBQUNEO0FBSkksR0FBUDtBQU1EOztBQUVELFNBQVVULDhCQUFWO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0RVLFVBQUFBLFVBQXRELFFBQTJDQyxPQUEzQyxDQUFzREQsVUFBdEQ7QUFBQSxrQ0FDaUNSLHVCQUF1QixDQUFDUSxVQUFVLENBQUNFLGlCQUFaLENBRHhELEVBQ1VQLEtBRFYseUJBQ1VBLEtBRFYsRUFDaUJJLFdBRGpCLHlCQUNpQkEsV0FEakI7QUFBQTs7QUFBQTtBQUFBO0FBT29CLGlCQUFNLG1CQUFLSixLQUFMLENBQU47O0FBUHBCO0FBT1lRLFVBQUFBLEtBUFo7QUFBQSx3QkFTY0EsS0FUZDtBQUFBLDBDQVVhLENBVmIsdUJBV2EsQ0FYYix1QkFzQmEsQ0F0QmIsd0JBbUNhLENBbkNiLHdCQW9DYSxDQXBDYjtBQUFBOztBQUFBO0FBQUE7QUFZVSxpQkFBTSxrQkFDSixpQ0FBZ0I7QUFDZEMsWUFBQUEsRUFBRSxFQUFFYixtQ0FEVTtBQUVkYyxZQUFBQSxLQUFLLEVBQUUsTUFGTztBQUdkQyxZQUFBQSxPQUFPLEVBQUVDLFlBQVksR0FBRyxjQUFILEdBQW9CO0FBSDNCLFdBQWhCLENBREksQ0FBTjs7QUFaVjtBQUFBOztBQUFBO0FBdUJVQSxVQUFBQSxZQUFZLEdBQUcsQ0FBZjtBQXZCVjtBQXlCVSxpQkFBTSxrQkFDSixpQ0FBZ0I7QUFDZEgsWUFBQUEsRUFBRSxFQUFFYixtQ0FEVTtBQUVkYyxZQUFBQSxLQUFLLEVBQUUsU0FGTztBQUdkQyxZQUFBQSxPQUFPLEVBQUU7QUFISyxXQUFoQixDQURJLENBQU47O0FBekJWO0FBQUE7O0FBQUE7QUFxQ1VDLFVBQUFBLFlBQVksR0FBRyxDQUFmO0FBckNWO0FBdUNVLGlCQUFNLGtCQUNKLGlDQUFnQjtBQUNkSCxZQUFBQSxFQUFFLEVBQUViLG1DQURVO0FBRWRjLFlBQUFBLEtBQUssRUFBRSxPQUZPO0FBR2RDLFlBQUFBLE9BQU8sRUFBRTtBQUhLLFdBQWhCLENBREksQ0FBTjs7QUF2Q1Y7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBc0RJUCxVQUFBQSxXQUFXO0FBdERmOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQTBEZTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDYixpQkFBTSx5QkFBV1MsZ0JBQVgsRUFBb0JsQiw4QkFBcEIsQ0FBTjs7QUFEYTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSIsInNvdXJjZVJvb3QiOiJjb3JlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludCBuby1tYWdpYy1udW1iZXJzOiBbXCJlcnJvclwiLCB7IFwiaWdub3JlXCI6IFswLCAxLCAyLCAzLCA0XSB9XSAqL1xuXG5pbXBvcnQgeyBjYWxsLCBwdXQsIHRha2VMYXRlc3QgfSBmcm9tICdyZWR1eC1zYWdhL2VmZmVjdHMnO1xuXG5pbXBvcnQgeyBDT05ORUNUIH0gZnJvbSAnLi4vYWN0aW9ucy9jb25uZWN0JztcbmltcG9ydCBjcmVhdGVQcm9taXNlUXVldWUgZnJvbSAnLi4vY3JlYXRlUHJvbWlzZVF1ZXVlJztcbmltcG9ydCBzZXROb3RpZmljYXRpb24gZnJvbSAnLi4vYWN0aW9ucy9zZXROb3RpZmljYXRpb24nO1xuXG5jb25zdCBDT05ORUNUSVZJVFlfU1RBVFVTX05PVElGSUNBVElPTl9JRCA9ICdjb25uZWN0aXZpdHlzdGF0dXMnO1xuXG5mdW5jdGlvbiBzdWJzY3JpYmVUb1Byb21pc2VRdWV1ZShvYnNlcnZhYmxlKSB7XG4gIGNvbnN0IHsgcHVzaCwgc2hpZnQgfSA9IGNyZWF0ZVByb21pc2VRdWV1ZSgpO1xuICBjb25zdCBzdWJzY3JpcHRpb24gPSBvYnNlcnZhYmxlLnN1YnNjcmliZSh7IG5leHQ6IHB1c2ggfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzaGlmdCxcbiAgICB1bnN1YnNjcmliZSgpIHtcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24qIGNvbm5lY3Rpb25TdGF0dXNUb05vdGlmaWNhdGlvbih7IHBheWxvYWQ6IHsgZGlyZWN0TGluZSB9IH0pIHtcbiAgY29uc3QgeyBzaGlmdCwgdW5zdWJzY3JpYmUgfSA9IHN1YnNjcmliZVRvUHJvbWlzZVF1ZXVlKGRpcmVjdExpbmUuY29ubmVjdGlvblN0YXR1cyQpO1xuXG4gIHRyeSB7XG4gICAgbGV0IHJlY29ubmVjdGluZztcblxuICAgIGZvciAoOzspIHtcbiAgICAgIGNvbnN0IHZhbHVlID0geWllbGQgY2FsbChzaGlmdCk7XG5cbiAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgeWllbGQgcHV0KFxuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgaWQ6IENPTk5FQ1RJVklUWV9TVEFUVVNfTk9USUZJQ0FUSU9OX0lELFxuICAgICAgICAgICAgICBsZXZlbDogJ2luZm8nLFxuICAgICAgICAgICAgICBtZXNzYWdlOiByZWNvbm5lY3RpbmcgPyAncmVjb25uZWN0aW5nJyA6ICdjb25uZWN0aW5nJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHJlY29ubmVjdGluZyA9IDE7XG5cbiAgICAgICAgICB5aWVsZCBwdXQoXG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICBpZDogQ09OTkVDVElWSVRZX1NUQVRVU19OT1RJRklDQVRJT05fSUQsXG4gICAgICAgICAgICAgIGxldmVsOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdjb25uZWN0ZWQnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDM6XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZWNvbm5lY3RpbmcgPSAxO1xuXG4gICAgICAgICAgeWllbGQgcHV0KFxuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgaWQ6IENPTk5FQ1RJVklUWV9TVEFUVVNfTk9USUZJQ0FUSU9OX0lELFxuICAgICAgICAgICAgICBsZXZlbDogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ2ZhaWxlZHRvY29ubmVjdCdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24qICgpIHtcbiAgeWllbGQgdGFrZUxhdGVzdChDT05ORUNULCBjb25uZWN0aW9uU3RhdHVzVG9Ob3RpZmljYXRpb24pO1xufVxuIl19
@@ -46,4 +46,4 @@ function observeOnceEffect(observable) {
46
46
  }, observeOnce, null, [[0,, 4, 7]]);
47
47
  }));
48
48
  }
49
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zYWdhcy9lZmZlY3RzL29ic2VydmVPbmNlLmpzIl0sIm5hbWVzIjpbIm9ic2VydmVPbmNlRWZmZWN0Iiwib2JzZXJ2YWJsZSIsIm9ic2VydmVPbmNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzdWJzY3JpcHRpb24iLCJzdWJzY3JpYmUiLCJjb21wbGV0ZSIsImVycm9yIiwibmV4dCIsInVuc3Vic2NyaWJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUVlLFNBQVNBLGlCQUFULENBQTJCQyxVQUEzQixFQUF1QztBQUNwRCxTQUFPLDhEQUFLLFNBQVVDLFdBQVY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlELG1CQUFNLG1CQUNYO0FBQUEscUJBQ0UsSUFBSUMsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFxQjtBQUMvQkMsZ0JBQUFBLFlBQVksR0FBR0wsVUFBVSxDQUFDTSxTQUFYLENBQXFCO0FBQ2xDQyxrQkFBQUEsUUFBUSxFQUFFSixPQUR3QjtBQUVsQ0ssa0JBQUFBLEtBQUssRUFBRUosTUFGMkI7QUFHbENLLGtCQUFBQSxJQUFJLEVBQUVOO0FBSDRCLGlCQUFyQixDQUFmO0FBS0QsZUFORCxDQURGO0FBQUEsYUFEVyxDQUFOOztBQUpDO0FBQUE7O0FBQUE7QUFBQTtBQWVSRSxZQUFBQSxZQUFZLElBQUlBLFlBQVksQ0FBQ0ssV0FBYixFQUFoQjtBQWZROztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxPQUFVVCxXQUFWO0FBQUEsR0FBTCxFQUFQO0FBa0JEIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FsbCB9IGZyb20gJ3JlZHV4LXNhZ2EvZWZmZWN0cyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG9ic2VydmVPbmNlRWZmZWN0KG9ic2VydmFibGUpIHtcbiAgcmV0dXJuIGNhbGwoZnVuY3Rpb24qIG9ic2VydmVPbmNlKCkge1xuICAgIGxldCBzdWJzY3JpcHRpb247XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHlpZWxkIGNhbGwoXG4gICAgICAgICgpID0+XG4gICAgICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uID0gb2JzZXJ2YWJsZS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICBjb21wbGV0ZTogcmVzb2x2ZSxcbiAgICAgICAgICAgICAgZXJyb3I6IHJlamVjdCxcbiAgICAgICAgICAgICAgbmV4dDogcmVzb2x2ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHN1YnNjcmlwdGlvbiAmJiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH0pO1xufVxuIl19
49
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zYWdhcy9lZmZlY3RzL29ic2VydmVPbmNlLnRzIl0sIm5hbWVzIjpbIm9ic2VydmVPbmNlRWZmZWN0Iiwib2JzZXJ2YWJsZSIsIm9ic2VydmVPbmNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzdWJzY3JpcHRpb24iLCJzdWJzY3JpYmUiLCJjb21wbGV0ZSIsImVycm9yIiwibmV4dCIsInVuc3Vic2NyaWJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUllLFNBQVNBLGlCQUFULENBQThCQyxVQUE5QixFQUF5RDtBQUN0RSxTQUFPLDhEQUFLLFNBQVVDLFdBQVY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlELG1CQUFNLG1CQUNYO0FBQUEscUJBQ0UsSUFBSUMsT0FBSixDQUFlLFVBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFxQjtBQUNsQ0MsZ0JBQUFBLFlBQVksR0FBR0wsVUFBVSxDQUFDTSxTQUFYLENBQXFCO0FBQ2xDQyxrQkFBQUEsUUFBUSxFQUFFSixPQUR3QjtBQUVsQ0ssa0JBQUFBLEtBQUssRUFBRUosTUFGMkI7QUFHbENLLGtCQUFBQSxJQUFJLEVBQUVOO0FBSDRCLGlCQUFyQixDQUFmO0FBS0QsZUFORCxDQURGO0FBQUEsYUFEVyxDQUFOOztBQUpDO0FBQUE7O0FBQUE7QUFBQTtBQWVSRSxZQUFBQSxZQUFZLElBQUlBLFlBQVksQ0FBQ0ssV0FBYixFQUFoQjtBQWZROztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxPQUFVVCxXQUFWO0FBQUEsR0FBTCxFQUFQO0FBa0JEIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FsbCB9IGZyb20gJ3JlZHV4LXNhZ2EvZWZmZWN0cyc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcy9leHRlcm5hbC9PYnNlcnZhYmxlJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb2JzZXJ2ZU9uY2VFZmZlY3Q8VD4ob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPikge1xuICByZXR1cm4gY2FsbChmdW5jdGlvbiogb2JzZXJ2ZU9uY2UoKSB7XG4gICAgbGV0IHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB5aWVsZCBjYWxsKFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIG5ldyBQcm9taXNlPFQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IG9ic2VydmFibGUuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgY29tcGxldGU6IHJlc29sdmUsXG4gICAgICAgICAgICAgIGVycm9yOiByZWplY3QsXG4gICAgICAgICAgICAgIG5leHQ6IHJlc29sdmVcbiAgICAgICAgICAgIH0gYXMgT2JzZXJ2ZXI8VD4pO1xuICAgICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzdWJzY3JpcHRpb24gJiYgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
@@ -62,4 +62,4 @@ function whileConnectedEffect(fn) {
62
62
  }, whileConnected);
63
63
  }));
64
64
  }
65
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zYWdhcy9lZmZlY3RzL3doaWxlQ29ubmVjdGVkLmpzIl0sIm5hbWVzIjpbIndoaWxlQ29ubmVjdGVkRWZmZWN0IiwiZm4iLCJ3aGlsZUNvbm5lY3RlZCIsIkNPTk5FQ1RfRlVMRklMTElORyIsIlJFQ09OTkVDVF9GVUxGSUxMSU5HIiwibWV0YSIsInVzZXJJRCIsInVzZXJuYW1lIiwiZGlyZWN0TGluZSIsInBheWxvYWQiLCJ0YXNrIiwiRElTQ09OTkVDVF9QRU5ESU5HIiwiUkVDT05ORUNUX1BFTkRJTkciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBRWUsU0FBU0Esb0JBQVQsQ0FBOEJDLEVBQTlCLEVBQWtDO0FBQy9DLFNBQU8sOERBQUssU0FBVUMsY0FBVjtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLSixtQkFBTSxtQkFBSyxDQUFDQywyQkFBRCxFQUFxQkMsK0JBQXJCLENBQUwsQ0FBTjs7QUFMSTtBQUFBO0FBQUEsMkNBR05DLElBSE07QUFHRUMsWUFBQUEsTUFIRixvQkFHRUEsTUFIRjtBQUdVQyxZQUFBQSxRQUhWLG9CQUdVQSxRQUhWO0FBSUtDLFlBQUFBLFVBSkwsZUFJTkMsT0FKTSxDQUlLRCxVQUpMO0FBQUE7QUFNSyxtQkFBTSxtQkFBS1AsRUFBTCxFQUFTO0FBQUVPLGNBQUFBLFVBQVUsRUFBVkEsVUFBRjtBQUFjRixjQUFBQSxNQUFNLEVBQU5BLE1BQWQ7QUFBc0JDLGNBQUFBLFFBQVEsRUFBUkE7QUFBdEIsYUFBVCxDQUFOOztBQU5MO0FBTUZHLFlBQUFBLElBTkU7QUFBQTtBQVVSLG1CQUFNLG1CQUFLLENBQUNDLDhCQUFELEVBQXFCQyw0QkFBckIsQ0FBTCxDQUFOOztBQVZRO0FBQUE7QUFXUixtQkFBTSxxQkFBT0YsSUFBUCxDQUFOOztBQVhRO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsT0FBVVIsY0FBVjtBQUFBLEdBQUwsRUFBUDtBQWNEIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FsbCwgY2FuY2VsLCBmb3JrLCB0YWtlIH0gZnJvbSAncmVkdXgtc2FnYS9lZmZlY3RzJztcblxuaW1wb3J0IHsgQ09OTkVDVF9GVUxGSUxMSU5HIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9jb25uZWN0JztcbmltcG9ydCB7IERJU0NPTk5FQ1RfUEVORElORyB9IGZyb20gJy4uLy4uL2FjdGlvbnMvZGlzY29ubmVjdCc7XG5pbXBvcnQgeyBSRUNPTk5FQ1RfUEVORElORywgUkVDT05ORUNUX0ZVTEZJTExJTkcgfSBmcm9tICcuLi8uLi9hY3Rpb25zL3JlY29ubmVjdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHdoaWxlQ29ubmVjdGVkRWZmZWN0KGZuKSB7XG4gIHJldHVybiBjYWxsKGZ1bmN0aW9uKiB3aGlsZUNvbm5lY3RlZCgpIHtcbiAgICBmb3IgKDs7KSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1ldGE6IHsgdXNlcklELCB1c2VybmFtZSB9LFxuICAgICAgICBwYXlsb2FkOiB7IGRpcmVjdExpbmUgfVxuICAgICAgfSA9IHlpZWxkIHRha2UoW0NPTk5FQ1RfRlVMRklMTElORywgUkVDT05ORUNUX0ZVTEZJTExJTkddKTtcbiAgICAgIGNvbnN0IHRhc2sgPSB5aWVsZCBmb3JrKGZuLCB7IGRpcmVjdExpbmUsIHVzZXJJRCwgdXNlcm5hbWUgfSk7XG5cbiAgICAgIC8vIFdoZW4gd2UgcmVjZWl2ZSBESVNDT05ORUNUX1BFTkRJTkcgb3IgUkVDT05ORUNUX1BFTkRJTkcsIHRoZSBEaXJlY3QgTGluZSBjb25uZWN0aW9uIGlzIGN1cnJlbnRseSBidXN5IGFuZCBzaG91bGQgbm90IGJlIHVzZWQuXG5cbiAgICAgIHlpZWxkIHRha2UoW0RJU0NPTk5FQ1RfUEVORElORywgUkVDT05ORUNUX1BFTkRJTkddKTtcbiAgICAgIHlpZWxkIGNhbmNlbCh0YXNrKTtcbiAgICB9XG4gIH0pO1xufVxuIl19
65
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zYWdhcy9lZmZlY3RzL3doaWxlQ29ubmVjdGVkLnRzIl0sIm5hbWVzIjpbIndoaWxlQ29ubmVjdGVkRWZmZWN0IiwiZm4iLCJ3aGlsZUNvbm5lY3RlZCIsIkNPTk5FQ1RfRlVMRklMTElORyIsIlJFQ09OTkVDVF9GVUxGSUxMSU5HIiwibWV0YSIsInVzZXJJRCIsInVzZXJuYW1lIiwiZGlyZWN0TGluZSIsInBheWxvYWQiLCJ0YXNrIiwiRElTQ09OTkVDVF9QRU5ESU5HIiwiUkVDT05ORUNUX1BFTkRJTkciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBSWUsU0FBU0Esb0JBQVQsQ0FDYkMsRUFEYSxFQVViO0FBQ0EsU0FBTyw4REFBSyxTQUFVQyxjQUFWO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdKLG1CQUFNLG1CQUFLLENBQUNDLDJCQUFELEVBQXFCQywrQkFBckIsQ0FBTCxDQUFOOztBQVhJO0FBQUE7QUFBQSwyQ0FHTkMsSUFITTtBQUdFQyxZQUFBQSxNQUhGLG9CQUdFQSxNQUhGO0FBR1VDLFlBQUFBLFFBSFYsb0JBR1VBLFFBSFY7QUFJS0MsWUFBQUEsVUFKTCxlQUlOQyxPQUpNLENBSUtELFVBSkw7QUFBQTtBQWFLLG1CQUFNLG1CQUFLUCxFQUFMLEVBQVM7QUFBRU8sY0FBQUEsVUFBVSxFQUFWQSxVQUFGO0FBQWNGLGNBQUFBLE1BQU0sRUFBTkEsTUFBZDtBQUFzQkMsY0FBQUEsUUFBUSxFQUFSQTtBQUF0QixhQUFULENBQU47O0FBYkw7QUFhRkcsWUFBQUEsSUFiRTtBQUFBO0FBaUJSLG1CQUFNLG1CQUFLLENBQUNDLDhCQUFELEVBQXFCQyw0QkFBckIsQ0FBTCxDQUFOOztBQWpCUTtBQUFBO0FBa0JSLG1CQUFNLHFCQUFPRixJQUFQLENBQU47O0FBbEJRO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsT0FBVVIsY0FBVjtBQUFBLEdBQUwsRUFBUDtBQXFCRCIsInNvdXJjZVJvb3QiOiJjb3JlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbGwsIGNhbmNlbCwgZm9yaywgdGFrZSB9IGZyb20gJ3JlZHV4LXNhZ2EvZWZmZWN0cyc7XG5cbmltcG9ydCB7IENPTk5FQ1RfRlVMRklMTElORyB9IGZyb20gJy4uLy4uL2FjdGlvbnMvY29ubmVjdCc7XG5pbXBvcnQgeyBESVNDT05ORUNUX1BFTkRJTkcgfSBmcm9tICcuLi8uLi9hY3Rpb25zL2Rpc2Nvbm5lY3QnO1xuaW1wb3J0IHsgUkVDT05ORUNUX1BFTkRJTkcsIFJFQ09OTkVDVF9GVUxGSUxMSU5HIH0gZnJvbSAnLi4vLi4vYWN0aW9ucy9yZWNvbm5lY3QnO1xuXG5pbXBvcnQgdHlwZSB7IERpcmVjdExpbmVKU0JvdENvbm5lY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy9leHRlcm5hbC9EaXJlY3RMaW5lSlNCb3RDb25uZWN0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2hpbGVDb25uZWN0ZWRFZmZlY3QoXG4gIGZuOiAoe1xuICAgIGRpcmVjdExpbmUsXG4gICAgdXNlcklELFxuICAgIHVzZXJuYW1lXG4gIH06IHtcbiAgICBkaXJlY3RMaW5lOiBEaXJlY3RMaW5lSlNCb3RDb25uZWN0aW9uO1xuICAgIHVzZXJJRDogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gIH0pID0+IHZvaWRcbikge1xuICByZXR1cm4gY2FsbChmdW5jdGlvbiogd2hpbGVDb25uZWN0ZWQoKSB7XG4gICAgZm9yICg7Oykge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtZXRhOiB7IHVzZXJJRCwgdXNlcm5hbWUgfSxcbiAgICAgICAgcGF5bG9hZDogeyBkaXJlY3RMaW5lIH1cbiAgICAgIH06IHtcbiAgICAgICAgbWV0YToge1xuICAgICAgICAgIHVzZXJJRDogc3RyaW5nO1xuICAgICAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIHBheWxvYWQ6IHsgZGlyZWN0TGluZTogRGlyZWN0TGluZUpTQm90Q29ubmVjdGlvbiB9O1xuICAgICAgfSA9IHlpZWxkIHRha2UoW0NPTk5FQ1RfRlVMRklMTElORywgUkVDT05ORUNUX0ZVTEZJTExJTkddKTtcblxuICAgICAgY29uc3QgdGFzayA9IHlpZWxkIGZvcmsoZm4sIHsgZGlyZWN0TGluZSwgdXNlcklELCB1c2VybmFtZSB9KTtcblxuICAgICAgLy8gV2hlbiB3ZSByZWNlaXZlIERJU0NPTk5FQ1RfUEVORElORyBvciBSRUNPTk5FQ1RfUEVORElORywgdGhlIERpcmVjdCBMaW5lIGNvbm5lY3Rpb24gaXMgY3VycmVudGx5IGJ1c3kgYW5kIHNob3VsZCBub3QgYmUgdXNlZC5cblxuICAgICAgeWllbGQgdGFrZShbRElTQ09OTkVDVF9QRU5ESU5HLCBSRUNPTk5FQ1RfUEVORElOR10pO1xuICAgICAgeWllbGQgY2FuY2VsKHRhc2spO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=
@@ -63,6 +63,22 @@ function patchNullAsUndefined(activity) {
63
63
  var value = activity[name];
64
64
  return (0, _simpleUpdateIn["default"])(activity, [name], typeof value === 'undefined' || value === null ? undefined : PASSTHRU_FN);
65
65
  }, activity);
66
+ } // Patching the `from.name` to be a human readable name.
67
+ // We use the `from.name` for typing indicator, such that it read "John is typing...".
68
+
69
+
70
+ function patchFromName(activity) {
71
+ return (0, _simpleUpdateIn["default"])(activity, ['from', 'name'], function (name) {
72
+ var channelId = activity.channelId,
73
+ _activity$from = activity.from,
74
+ from = _activity$from === void 0 ? {} : _activity$from;
75
+
76
+ if ((channelId === 'directline' || channelId === 'webchat') && from.id === from.name && from.role === 'bot') {
77
+ return 'Bot';
78
+ }
79
+
80
+ return name;
81
+ });
66
82
  }
67
83
 
68
84
  function observeActivity(_ref) {
@@ -78,12 +94,14 @@ function observeActivity(_ref) {
78
94
  while (1) {
79
95
  switch (_context.prev = _context.next) {
80
96
  case 0:
97
+ // TODO: [P2] #3953 Move the patching logic to a DirectLineJS wrapper, instead of too close to inners of Web Chat.
81
98
  activity = patchNullAsUndefined(activity);
82
99
  activity = patchActivityWithFromRole(activity, userID);
83
- _context.next = 4;
100
+ activity = patchFromName(activity);
101
+ _context.next = 5;
84
102
  return (0, _effects.put)((0, _queueIncomingActivity["default"])(activity));
85
103
 
86
- case 4:
104
+ case 5:
87
105
  case "end":
88
106
  return _context.stop();
89
107
  }
@@ -114,4 +132,4 @@ function observeActivitySaga() {
114
132
  }
115
133
  }, _marked2);
116
134
  }
117
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWdhcy9vYnNlcnZlQWN0aXZpdHlTYWdhLmpzIl0sIm5hbWVzIjpbIm9ic2VydmVBY3Rpdml0eSIsIm9ic2VydmVBY3Rpdml0eVNhZ2EiLCJQQVNTVEhSVV9GTiIsInZhbHVlIiwicGF0Y2hBY3Rpdml0eVdpdGhGcm9tUm9sZSIsImFjdGl2aXR5IiwidXNlcklEIiwiZnJvbSIsInJvbGUiLCJpZCIsInBhdGNoTnVsbEFzVW5kZWZpbmVkIiwicmVkdWNlIiwibmFtZSIsInVuZGVmaW5lZCIsImRpcmVjdExpbmUiLCJhY3Rpdml0eSQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7cURBcURVQSxlO3NEQVNlQyxtQjs7QUE1RHpCLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFKO0FBQUEsQ0FBekI7O0FBRUEsU0FBU0MseUJBQVQsQ0FBbUNDLFFBQW5DLEVBQTZDQyxNQUE3QyxFQUFxRDtBQUNuRDtBQUNBO0FBQ0E7QUFFQTtBQUNBLE1BQUksQ0FBQ0QsUUFBUSxDQUFDRSxJQUFkLEVBQW9CO0FBQ2xCRixJQUFBQSxRQUFRLEdBQUcsZ0NBQVNBLFFBQVQsRUFBbUIsQ0FBQyxNQUFELEVBQVMsTUFBVCxDQUFuQixFQUFxQztBQUFBLGFBQU0sU0FBTjtBQUFBLEtBQXJDLENBQVg7QUFDRCxHQUZELE1BRU8sSUFBSSxDQUFDQSxRQUFRLENBQUNFLElBQVQsQ0FBY0MsSUFBbkIsRUFBeUI7QUFDOUIsUUFBSUgsUUFBUSxDQUFDRSxJQUFULENBQWNFLEVBQWQsS0FBcUJILE1BQXpCLEVBQWlDO0FBQy9CRCxNQUFBQSxRQUFRLEdBQUcsZ0NBQVNBLFFBQVQsRUFBbUIsQ0FBQyxNQUFELEVBQVMsTUFBVCxDQUFuQixFQUFxQztBQUFBLGVBQU0sTUFBTjtBQUFBLE9BQXJDLENBQVg7QUFDRCxLQUZELE1BRU8sSUFBSUEsUUFBUSxDQUFDRSxJQUFULENBQWNFLEVBQWxCLEVBQXNCO0FBQzNCSixNQUFBQSxRQUFRLEdBQUcsZ0NBQVNBLFFBQVQsRUFBbUIsQ0FBQyxNQUFELEVBQVMsTUFBVCxDQUFuQixFQUFxQztBQUFBLGVBQU0sS0FBTjtBQUFBLE9BQXJDLENBQVg7QUFDRCxLQUZNLE1BRUE7QUFDTEEsTUFBQUEsUUFBUSxHQUFHLGdDQUFTQSxRQUFULEVBQW1CLENBQUMsTUFBRCxFQUFTLE1BQVQsQ0FBbkIsRUFBcUM7QUFBQSxlQUFNLFNBQU47QUFBQSxPQUFyQyxDQUFYO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPQSxRQUFQO0FBQ0Q7O0FBRUQsU0FBU0ssb0JBQVQsQ0FBOEJMLFFBQTlCLEVBQXdDO0FBQ3RDO0FBQ0E7QUFFQSxTQUFPLENBQ0wsa0JBREssRUFFTCxhQUZLLEVBR0wsYUFISyxFQUlMLGNBSkssRUFLTCxVQUxLLEVBTUwsTUFOSyxFQU9MLFdBUEssRUFRTCxRQVJLLEVBU0wsTUFUSyxFQVVMLFdBVkssRUFXTCxPQVhLLEVBWUwsa0JBWkssRUFhTCxNQWJLLEVBY0wsWUFkSyxFQWVMLFdBZkssRUFnQkwsTUFoQkssRUFpQkxNLE1BakJLLENBaUJFLFVBQUNOLFFBQUQsRUFBV08sSUFBWCxFQUFvQjtBQUMzQixRQUFnQlQsS0FBaEIsR0FBMEJFLFFBQTFCLENBQVNPLElBQVQ7QUFFQSxXQUFPLGdDQUFTUCxRQUFULEVBQW1CLENBQUNPLElBQUQsQ0FBbkIsRUFBMkIsT0FBT1QsS0FBUCxLQUFpQixXQUFqQixJQUFnQ0EsS0FBSyxLQUFLLElBQTFDLEdBQWlEVSxTQUFqRCxHQUE2RFgsV0FBeEYsQ0FBUDtBQUNELEdBckJNLEVBcUJKRyxRQXJCSSxDQUFQO0FBc0JEOztBQUVELFNBQVVMLGVBQVY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQTRCYyxVQUFBQSxVQUE1QixRQUE0QkEsVUFBNUIsRUFBd0NSLE1BQXhDLFFBQXdDQSxNQUF4QztBQUFBO0FBQ0UsaUJBQU0sNkJBQVlRLFVBQVUsQ0FBQ0MsU0FBdkIsNENBQWtDLFNBQVVmLGVBQVYsQ0FBMEJLLFFBQTFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDdENBLG9CQUFBQSxRQUFRLEdBQUdLLG9CQUFvQixDQUFDTCxRQUFELENBQS9CO0FBQ0FBLG9CQUFBQSxRQUFRLEdBQUdELHlCQUF5QixDQUFDQyxRQUFELEVBQVdDLE1BQVgsQ0FBcEM7QUFGc0M7QUFJdEMsMkJBQU0sa0JBQUksdUNBQXNCRCxRQUF0QixDQUFKLENBQU47O0FBSnNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQUFVTCxlQUFWO0FBQUEsV0FBbEMsRUFBTjs7QUFERjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFTZSxTQUFVQyxtQkFBVjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDYixpQkFBTSxnQ0FBZUQsZUFBZixDQUFOOztBQURhO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHV0IH0gZnJvbSAncmVkdXgtc2FnYS9lZmZlY3RzJztcbmltcG9ydCB1cGRhdGVJbiBmcm9tICdzaW1wbGUtdXBkYXRlLWluJztcblxuaW1wb3J0IG9ic2VydmVFYWNoIGZyb20gJy4vZWZmZWN0cy9vYnNlcnZlRWFjaCc7XG5pbXBvcnQgcXVldWVJbmNvbWluZ0FjdGl2aXR5IGZyb20gJy4uL2FjdGlvbnMvcXVldWVJbmNvbWluZ0FjdGl2aXR5JztcbmltcG9ydCB3aGlsZUNvbm5lY3RlZCBmcm9tICcuL2VmZmVjdHMvd2hpbGVDb25uZWN0ZWQnO1xuXG5jb25zdCBQQVNTVEhSVV9GTiA9IHZhbHVlID0+IHZhbHVlO1xuXG5mdW5jdGlvbiBwYXRjaEFjdGl2aXR5V2l0aEZyb21Sb2xlKGFjdGl2aXR5LCB1c2VySUQpIHtcbiAgLy8gU29tZSBhY3Rpdml0aWVzLCBzdWNoIGFzIFwiQ29udmVyc2F0aW9uVXBkYXRlXCIsIGRvZXMgbm90IGhhdmUgXCJmcm9tXCIgZGVmaW5lZC5cbiAgLy8gQW5kIGFsdGhvdWdoIFwicm9sZVwiIGlzIGRlZmluZWQgaW4gRGlyZWN0IExpbmUgc3BlYywgaXQgd2FzIG5vdCBzZW50IG92ZXIgdGhlIHdpcmUuXG4gIC8vIFdlIG5vcm1hbGl6ZSB0aGUgYWN0aXZpdHkgaGVyZSB0byBzaW1wbGlmeSBudWxsLWNoZWNrIGFuZCBsb2dpYyBsYXRlci5cblxuICAvLyBQYXRjaCBhY3Rpdml0eS5mcm9tLnJvbGUgdG8gbWFrZSBzdXJlIGl0cyBlaXRoZXIgXCJib3RcIiwgXCJ1c2VyXCIsIG9yIFwiY2hhbm5lbFwiXG4gIGlmICghYWN0aXZpdHkuZnJvbSkge1xuICAgIGFjdGl2aXR5ID0gdXBkYXRlSW4oYWN0aXZpdHksIFsnZnJvbScsICdyb2xlJ10sICgpID0+ICdjaGFubmVsJyk7XG4gIH0gZWxzZSBpZiAoIWFjdGl2aXR5LmZyb20ucm9sZSkge1xuICAgIGlmIChhY3Rpdml0eS5mcm9tLmlkID09PSB1c2VySUQpIHtcbiAgICAgIGFjdGl2aXR5ID0gdXBkYXRlSW4oYWN0aXZpdHksIFsnZnJvbScsICdyb2xlJ10sICgpID0+ICd1c2VyJyk7XG4gICAgfSBlbHNlIGlmIChhY3Rpdml0eS5mcm9tLmlkKSB7XG4gICAgICBhY3Rpdml0eSA9IHVwZGF0ZUluKGFjdGl2aXR5LCBbJ2Zyb20nLCAncm9sZSddLCAoKSA9PiAnYm90Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjdGl2aXR5ID0gdXBkYXRlSW4oYWN0aXZpdHksIFsnZnJvbScsICdyb2xlJ10sICgpID0+ICdjaGFubmVsJyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFjdGl2aXR5O1xufVxuXG5mdW5jdGlvbiBwYXRjaE51bGxBc1VuZGVmaW5lZChhY3Rpdml0eSkge1xuICAvLyBUaGVzZSBmaWVsZHMgYXJlIGtub3duIHVzZWQgaW4gV2ViIENoYXQgYW5kIGluIGFueSBjYXNlcywgdGhleSBzaG91bGQgbm90IGJlIG51bGwsIGJ1dCB1bmRlZmluZWQuXG4gIC8vIFRoZSBvbmx5IGZpZWxkIG9taXR0ZWQgaXMgXCJ2YWx1ZVwiLCBhcyBpdCBjb3VsZCBiZSBudWxsIHB1cnBvc2VmdWxseS5cblxuICByZXR1cm4gW1xuICAgICdhdHRhY2htZW50TGF5b3V0JyxcbiAgICAnYXR0YWNobWVudHMnLFxuICAgICdjaGFubmVsRGF0YScsXG4gICAgJ2NvbnZlcnNhdGlvbicsXG4gICAgJ2VudGl0aWVzJyxcbiAgICAnZnJvbScsXG4gICAgJ2lucHV0SGludCcsXG4gICAgJ2xvY2FsZScsXG4gICAgJ25hbWUnLFxuICAgICdyZWNpcGllbnQnLFxuICAgICdzcGVhaycsXG4gICAgJ3N1Z2dlc3RlZEFjdGlvbnMnLFxuICAgICd0ZXh0JyxcbiAgICAndGV4dEZvcm1hdCcsXG4gICAgJ3RpbWVzdGFtcCcsXG4gICAgJ3R5cGUnXG4gIF0ucmVkdWNlKChhY3Rpdml0eSwgbmFtZSkgPT4ge1xuICAgIGNvbnN0IHsgW25hbWVdOiB2YWx1ZSB9ID0gYWN0aXZpdHk7XG5cbiAgICByZXR1cm4gdXBkYXRlSW4oYWN0aXZpdHksIFtuYW1lXSwgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IFBBU1NUSFJVX0ZOKTtcbiAgfSwgYWN0aXZpdHkpO1xufVxuXG5mdW5jdGlvbiogb2JzZXJ2ZUFjdGl2aXR5KHsgZGlyZWN0TGluZSwgdXNlcklEIH0pIHtcbiAgeWllbGQgb2JzZXJ2ZUVhY2goZGlyZWN0TGluZS5hY3Rpdml0eSQsIGZ1bmN0aW9uKiBvYnNlcnZlQWN0aXZpdHkoYWN0aXZpdHkpIHtcbiAgICBhY3Rpdml0eSA9IHBhdGNoTnVsbEFzVW5kZWZpbmVkKGFjdGl2aXR5KTtcbiAgICBhY3Rpdml0eSA9IHBhdGNoQWN0aXZpdHlXaXRoRnJvbVJvbGUoYWN0aXZpdHksIHVzZXJJRCk7XG5cbiAgICB5aWVsZCBwdXQocXVldWVJbmNvbWluZ0FjdGl2aXR5KGFjdGl2aXR5KSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiogb2JzZXJ2ZUFjdGl2aXR5U2FnYSgpIHtcbiAgeWllbGQgd2hpbGVDb25uZWN0ZWQob2JzZXJ2ZUFjdGl2aXR5KTtcbn1cbiJdfQ==
135
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWdhcy9vYnNlcnZlQWN0aXZpdHlTYWdhLnRzIl0sIm5hbWVzIjpbIm9ic2VydmVBY3Rpdml0eSIsIm9ic2VydmVBY3Rpdml0eVNhZ2EiLCJQQVNTVEhSVV9GTiIsInZhbHVlIiwicGF0Y2hBY3Rpdml0eVdpdGhGcm9tUm9sZSIsImFjdGl2aXR5IiwidXNlcklEIiwiZnJvbSIsInJvbGUiLCJpZCIsInBhdGNoTnVsbEFzVW5kZWZpbmVkIiwicmVkdWNlIiwibmFtZSIsInVuZGVmaW5lZCIsInBhdGNoRnJvbU5hbWUiLCJjaGFubmVsSWQiLCJkaXJlY3RMaW5lIiwiYWN0aXZpdHkkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O3FEQXNFVUEsZTtzREFXZUMsbUI7O0FBNUV6QixJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFDQyxLQUFEO0FBQUEsU0FBb0JBLEtBQXBCO0FBQUEsQ0FBcEI7O0FBRUEsU0FBU0MseUJBQVQsQ0FBbUNDLFFBQW5DLEVBQWlFQyxNQUFqRSxFQUFzRztBQUNwRztBQUNBO0FBQ0E7QUFFQTtBQUNBLE1BQUksQ0FBQ0QsUUFBUSxDQUFDRSxJQUFkLEVBQW9CO0FBQ2xCRixJQUFBQSxRQUFRLEdBQUcsZ0NBQVNBLFFBQVQsRUFBbUIsQ0FBQyxNQUFELEVBQVMsTUFBVCxDQUFuQixFQUFxQztBQUFBLGFBQU0sU0FBTjtBQUFBLEtBQXJDLENBQVg7QUFDRCxHQUZELE1BRU8sSUFBSSxDQUFDQSxRQUFRLENBQUNFLElBQVQsQ0FBY0MsSUFBbkIsRUFBeUI7QUFDOUIsUUFBSUgsUUFBUSxDQUFDRSxJQUFULENBQWNFLEVBQWQsS0FBcUJILE1BQXpCLEVBQWlDO0FBQy9CRCxNQUFBQSxRQUFRLEdBQUcsZ0NBQVNBLFFBQVQsRUFBbUIsQ0FBQyxNQUFELEVBQVMsTUFBVCxDQUFuQixFQUFxQztBQUFBLGVBQU0sTUFBTjtBQUFBLE9BQXJDLENBQVg7QUFDRCxL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QUFBQTtBQUFBIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHV0IH0gZnJvbSAncmVkdXgtc2FnYS9lZmZlY3RzJztcbmltcG9ydCB1cGRhdGVJbiBmcm9tICdzaW1wbGUtdXBkYXRlLWluJztcblxuaW1wb3J0IG9ic2VydmVFYWNoIGZyb20gJy4vZWZmZWN0cy9vYnNlcnZlRWFjaCc7XG5pbXBvcnQgcXVldWVJbmNvbWluZ0FjdGl2aXR5IGZyb20gJy4uL2FjdGlvbnMvcXVldWVJbmNvbWluZ0FjdGl2aXR5JztcbmltcG9ydCB3aGlsZUNvbm5lY3RlZCBmcm9tICcuL2VmZmVjdHMvd2hpbGVDb25uZWN0ZWQnO1xuaW1wb3J0IHR5cGUgeyBEaXJlY3RMaW5lQWN0aXZpdHkgfSBmcm9tICcuLi90eXBlcy9leHRlcm5hbC9EaXJlY3RMaW5lQWN0aXZpdHknO1xuaW1wb3J0IHR5cGUgeyBEaXJlY3RMaW5lSlNCb3RDb25uZWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMvZXh0ZXJuYWwvRGlyZWN0TGluZUpTQm90Q29ubmVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IFdlYkNoYXRBY3Rpdml0eSB9IGZyb20gJy4uL3R5cGVzL1dlYkNoYXRBY3Rpdml0eSc7XG5cbmNvbnN0IFBBU1NUSFJVX0ZOID0gKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZTtcblxuZnVuY3Rpb24gcGF0Y2hBY3Rpdml0eVdpdGhGcm9tUm9sZShhY3Rpdml0eTogRGlyZWN0TGluZUFjdGl2aXR5LCB1c2VySUQ/OiBzdHJpbmcpOiBEaXJlY3RMaW5lQWN0aXZpdHkge1xuICAvLyBTb21lIGFjdGl2aXRpZXMsIHN1Y2ggYXMgXCJDb252ZXJzYXRpb25VcGRhdGVcIiwgZG9lcyBub3QgaGF2ZSBcImZyb21cIiBkZWZpbmVkLlxuICAvLyBBbmQgYWx0aG91Z2ggXCJyb2xlXCIgaXMgZGVmaW5lZCBpbiBEaXJlY3QgTGluZSBzcGVjLCBpdCB3YXMgbm90IHNlbnQgb3ZlciB0aGUgd2lyZS5cbiAgLy8gV2Ugbm9ybWFsaXplIHRoZSBhY3Rpdml0eSBoZXJlIHRvIHNpbXBsaWZ5IG51bGwtY2hlY2sgYW5kIGxvZ2ljIGxhdGVyLlxuXG4gIC8vIFBhdGNoIGFjdGl2aXR5LmZyb20ucm9sZSB0byBtYWtlIHN1cmUgaXRzIGVpdGhlciBcImJvdFwiLCBcInVzZXJcIiwgb3IgXCJjaGFubmVsXCJcbiAgaWYgKCFhY3Rpdml0eS5mcm9tKSB7XG4gICAgYWN0aXZpdHkgPSB1cGRhdGVJbihhY3Rpdml0eSwgWydmcm9tJywgJ3JvbGUnXSwgKCkgPT4gJ2NoYW5uZWwnKTtcbiAgfSBlbHNlIGlmICghYWN0aXZpdHkuZnJvbS5yb2xlKSB7XG4gICAgaWYgKGFjdGl2aXR5LmZyb20uaWQgPT09IHVzZXJJRCkge1xuICAgICAgYWN0aXZpdHkgPSB1cGRhdGVJbihhY3Rpdml0eSwgWydmcm9tJywgJ3JvbGUnXSwgKCkgPT4gJ3VzZXInKTtcbiAgICB9IGVsc2UgaWYgKGFjdGl2aXR5LmZyb20uaWQpIHtcbiAgICAgIGFjdGl2aXR5ID0gdXBkYXRlSW4oYWN0aXZpdHksIFsnZnJvbScsICdyb2xlJ10sICgpID0+ICdib3QnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYWN0aXZpdHkgPSB1cGRhdGVJbihhY3Rpdml0eSwgWydmcm9tJywgJ3JvbGUnXSwgKCkgPT4gJ2NoYW5uZWwnKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYWN0aXZpdHk7XG59XG5cbmZ1bmN0aW9uIHBhdGNoTnVsbEFzVW5kZWZpbmVkKGFjdGl2aXR5OiBEaXJlY3RMaW5lQWN0aXZpdHkpOiBEaXJlY3RMaW5lQWN0aXZpdHkge1xuICAvLyBUaGVzZSBmaWVsZHMgYXJlIGtub3duIHVzZWQgaW4gV2ViIENoYXQgYW5kIGluIGFueSBjYXNlcywgdGhleSBzaG91bGQgbm90IGJlIG51bGwsIGJ1dCB1bmRlZmluZWQuXG4gIC8vIFRoZSBvbmx5IGZpZWxkIG9taXR0ZWQgaXMgXCJ2YWx1ZVwiLCBhcyBpdCBjb3VsZCBiZSBudWxsIHB1cnBvc2VmdWxseS5cblxuICByZXR1cm4gW1xuICAgICdhdHRhY2htZW50TGF5b3V0JyxcbiAgICAnYXR0YWNobWVudHMnLFxuICAgICdjaGFubmVsRGF0YScsXG4gICAgJ2NvbnZlcnNhdGlvbicsXG4gICAgJ2VudGl0aWVzJyxcbiAgICAnZnJvbScsXG4gICAgJ2lucHV0SGludCcsXG4gICAgJ2xvY2FsZScsXG4gICAgJ25hbWUnLFxuICAgICdyZWNpcGllbnQnLFxuICAgICdzcGVhaycsXG4gICAgJ3N1Z2dlc3RlZEFjdGlvbnMnLFxuICAgICd0ZXh0JyxcbiAgICAndGV4dEZvcm1hdCcsXG4gICAgJ3RpbWVzdGFtcCcsXG4gICAgJ3R5cGUnXG4gIF0ucmVkdWNlKChhY3Rpdml0eSwgbmFtZSkgPT4ge1xuICAgIGNvbnN0IHsgW25hbWVdOiB2YWx1ZSB9ID0gYWN0aXZpdHk7XG5cbiAgICByZXR1cm4gdXBkYXRlSW4oYWN0aXZpdHksIFtuYW1lXSwgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IFBBU1NUSFJVX0ZOKTtcbiAgfSwgYWN0aXZpdHkpO1xufVxuXG4vLyBQYXRjaGluZyB0aGUgYGZyb20ubmFtZWAgdG8gYmUgYSBodW1hbiByZWFkYWJsZSBuYW1lLlxuLy8gV2UgdXNlIHRoZSBgZnJvbS5uYW1lYCBmb3IgdHlwaW5nIGluZGljYXRvciwgc3VjaCB0aGF0IGl0IHJlYWQgXCJKb2huIGlzIHR5cGluZy4uLlwiLlxuZnVuY3Rpb24gcGF0Y2hGcm9tTmFtZShhY3Rpdml0eTogRGlyZWN0TGluZUFjdGl2aXR5KSB7XG4gIHJldHVybiB1cGRhdGVJbihhY3Rpdml0eSwgWydmcm9tJywgJ25hbWUnXSwgKG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyA9PiB7XG4gICAgY29uc3QgeyBjaGFubmVsSWQsIGZyb20gPSB7fSB9ID0gYWN0aXZpdHk7XG5cbiAgICBpZiAoKGNoYW5uZWxJZCA9PT0gJ2RpcmVjdGxpbmUnIHx8IGNoYW5uZWxJZCA9PT0gJ3dlYmNoYXQnKSAmJiBmcm9tLmlkID09PSBmcm9tLm5hbWUgJiYgZnJvbS5yb2xlID09PSAnYm90Jykge1xuICAgICAgcmV0dXJuICdCb3QnO1xuICAgIH1cblxuICAgIHJldHVybiBuYW1lO1xuICB9KTtcbn1cblxuZnVuY3Rpb24qIG9ic2VydmVBY3Rpdml0eSh7IGRpcmVjdExpbmUsIHVzZXJJRCB9OiB7IGRpcmVjdExpbmU6IERpcmVjdExpbmVKU0JvdENvbm5lY3Rpb247IHVzZXJJRD86IHN0cmluZyB9KSB7XG4gIHlpZWxkIG9ic2VydmVFYWNoKGRpcmVjdExpbmUuYWN0aXZpdHkkLCBmdW5jdGlvbiogb2JzZXJ2ZUFjdGl2aXR5KGFjdGl2aXR5OiBEaXJlY3RMaW5lQWN0aXZpdHkpIHtcbiAgICAvLyBUT0RPOiBbUDJdICMzOTUzIE1vdmUgdGhlIHBhdGNoaW5nIGxvZ2ljIHRvIGEgRGlyZWN0TGluZUpTIHdyYXBwZXIsIGluc3RlYWQgb2YgdG9vIGNsb3NlIHRvIGlubmVycyBvZiBXZWIgQ2hhdC5cbiAgICBhY3Rpdml0eSA9IHBhdGNoTnVsbEFzVW5kZWZpbmVkKGFjdGl2aXR5KTtcbiAgICBhY3Rpdml0eSA9IHBhdGNoQWN0aXZpdHlXaXRoRnJvbVJvbGUoYWN0aXZpdHksIHVzZXJJRCk7XG4gICAgYWN0aXZpdHkgPSBwYXRjaEZyb21OYW1lKGFjdGl2aXR5KTtcblxuICAgIHlpZWxkIHB1dChxdWV1ZUluY29taW5nQWN0aXZpdHkoYWN0aXZpdHkgYXMgV2ViQ2hhdEFjdGl2aXR5KSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiogb2JzZXJ2ZUFjdGl2aXR5U2FnYSgpIHtcbiAgeWllbGQgd2hpbGVDb25uZWN0ZWQob2JzZXJ2ZUFjdGl2aXR5KTtcbn1cbiJdfQ==