botframework-webchat-core 4.15.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 (200) hide show
  1. package/babel.config.json +1 -1
  2. package/lib/actions/clearSuggestedActions.js +1 -1
  3. package/lib/actions/connect.js +1 -1
  4. package/lib/actions/connectionStatusUpdate.js +1 -1
  5. package/lib/actions/deleteActivity.d.ts +13 -0
  6. package/lib/actions/deleteActivity.d.ts.map +1 -0
  7. package/lib/actions/deleteActivity.js +5 -3
  8. package/lib/actions/disconnect.js +1 -1
  9. package/lib/actions/dismissNotification.js +1 -1
  10. package/lib/actions/emitTypingIndicator.js +1 -1
  11. package/lib/actions/incomingActivity.d.ts +14 -0
  12. package/lib/actions/incomingActivity.d.ts.map +1 -0
  13. package/lib/actions/incomingActivity.js +5 -3
  14. package/lib/actions/markActivity.d.ts +17 -0
  15. package/lib/actions/markActivity.d.ts.map +1 -0
  16. package/lib/actions/markActivity.js +5 -3
  17. package/lib/actions/postActivity.d.ts +52 -0
  18. package/lib/actions/postActivity.d.ts.map +1 -0
  19. package/lib/actions/postActivity.js +5 -3
  20. package/lib/actions/queueIncomingActivity.js +1 -1
  21. package/lib/actions/sagaError.js +1 -1
  22. package/lib/actions/sendEvent.js +1 -1
  23. package/lib/actions/sendFiles.js +1 -1
  24. package/lib/actions/sendMessage.js +1 -1
  25. package/lib/actions/sendMessageBack.js +1 -1
  26. package/lib/actions/sendPostBack.js +1 -1
  27. package/lib/actions/setDictateInterims.js +1 -1
  28. package/lib/actions/setDictateState.js +1 -1
  29. package/lib/actions/setLanguage.js +1 -1
  30. package/lib/actions/setNotification.js +1 -1
  31. package/lib/actions/setReferenceGrammarID.js +1 -1
  32. package/lib/actions/setSendBox.js +1 -1
  33. package/lib/actions/setSendTimeout.js +1 -1
  34. package/lib/actions/setSendTypingIndicator.js +1 -1
  35. package/lib/actions/setSuggestedActions.js +1 -1
  36. package/lib/actions/startDictate.js +1 -1
  37. package/lib/actions/startSpeakingActivity.js +1 -1
  38. package/lib/actions/stopDictate.js +1 -1
  39. package/lib/actions/stopSpeakingActivity.js +1 -1
  40. package/lib/actions/submitSendBox.js +1 -1
  41. package/lib/actions/updateConnectionStatus.js +1 -1
  42. package/lib/constants/ActivityClientState.js +1 -1
  43. package/lib/definitions/speakingActivity.js +4 -2
  44. package/lib/index.d.ts +15 -14
  45. package/lib/index.d.ts.map +1 -1
  46. package/lib/index.js +4 -3
  47. package/lib/reducer.d.ts +1 -2
  48. package/lib/reducer.d.ts.map +1 -1
  49. package/lib/reducer.js +1 -4
  50. package/lib/reducers/activities.d.ts +10 -0
  51. package/lib/reducers/activities.d.ts.map +1 -0
  52. package/lib/reducers/activities.js +65 -45
  53. package/lib/reducers/typing.js +13 -7
  54. package/lib/sagas/effects/observeOnce.js +1 -1
  55. package/lib/sagas/effects/whileConnected.js +1 -1
  56. package/lib/sagas/observeActivitySaga.js +21 -3
  57. package/lib/sagas/postActivitySaga.js +51 -72
  58. package/lib/sagas/sendFilesToPostActivitySaga.js +4 -4
  59. package/lib/selectors/activities.js +1 -1
  60. package/lib/selectors/combineSelectors.js +3 -3
  61. package/lib/selectors/dictateState.js +1 -1
  62. package/lib/selectors/language.js +1 -1
  63. package/lib/selectors/notifications.js +1 -1
  64. package/lib/selectors/sendBoxValue.js +1 -1
  65. package/lib/selectors/sendTimeout.js +1 -1
  66. package/lib/selectors/sendTypingIndicator.js +1 -1
  67. package/lib/selectors/shouldSpeakIncomingActivity.js +1 -1
  68. package/lib/types/AnyAnd.d.ts +2 -0
  69. package/lib/types/AnyAnd.d.ts.map +1 -0
  70. package/lib/types/AnyAnd.js +6 -0
  71. package/lib/types/OneOrMany.js +4 -0
  72. package/lib/types/WebChatActivity.d.ts +81 -0
  73. package/lib/types/WebChatActivity.d.ts.map +1 -0
  74. package/lib/types/WebChatActivity.js +6 -0
  75. package/lib/types/external/DirectLineActivity.d.ts +1 -1
  76. package/lib/types/external/DirectLineActivity.d.ts.map +1 -1
  77. package/lib/types/external/DirectLineActivity.js +4 -0
  78. package/lib/types/external/DirectLineAnimationCard.d.ts +5 -2
  79. package/lib/types/external/DirectLineAnimationCard.d.ts.map +1 -1
  80. package/lib/types/external/DirectLineAnimationCard.js +4 -0
  81. package/lib/types/external/DirectLineAttachment.d.ts +8 -2
  82. package/lib/types/external/DirectLineAttachment.d.ts.map +1 -1
  83. package/lib/types/external/DirectLineAttachment.js +4 -0
  84. package/lib/types/external/DirectLineAudioCard.d.ts +5 -2
  85. package/lib/types/external/DirectLineAudioCard.d.ts.map +1 -1
  86. package/lib/types/external/DirectLineAudioCard.js +4 -0
  87. package/lib/types/external/DirectLineBasicCardEssence.d.ts +12 -0
  88. package/lib/types/external/DirectLineBasicCardEssence.d.ts.map +1 -0
  89. package/lib/types/external/DirectLineBasicCardEssence.js +6 -0
  90. package/lib/types/external/DirectLineCardAction.d.ts +1 -1
  91. package/lib/types/external/DirectLineCardAction.d.ts.map +1 -1
  92. package/lib/types/external/DirectLineCardAction.js +4 -0
  93. package/lib/types/external/DirectLineCardImage.d.ts +8 -0
  94. package/lib/types/external/DirectLineCardImage.d.ts.map +1 -0
  95. package/lib/types/external/DirectLineCardImage.js +6 -0
  96. package/lib/types/external/DirectLineHeroCard.d.ts +5 -2
  97. package/lib/types/external/DirectLineHeroCard.d.ts.map +1 -1
  98. package/lib/types/external/DirectLineHeroCard.js +4 -0
  99. package/lib/types/external/DirectLineJSBotConnection.d.ts +1 -1
  100. package/lib/types/external/DirectLineJSBotConnection.d.ts.map +1 -1
  101. package/lib/types/external/DirectLineJSBotConnection.js +4 -0
  102. package/lib/types/external/DirectLineMediaCardEssence.d.ts +21 -0
  103. package/lib/types/external/DirectLineMediaCardEssence.d.ts.map +1 -0
  104. package/lib/types/external/DirectLineMediaCardEssence.js +6 -0
  105. package/lib/types/external/DirectLineOAuthCard.d.ts +7 -2
  106. package/lib/types/external/DirectLineOAuthCard.d.ts.map +1 -1
  107. package/lib/types/external/DirectLineOAuthCard.js +4 -0
  108. package/lib/types/external/DirectLineReceiptCard.d.ts +27 -2
  109. package/lib/types/external/DirectLineReceiptCard.d.ts.map +1 -1
  110. package/lib/types/external/DirectLineReceiptCard.js +4 -0
  111. package/lib/types/external/DirectLineSignInCard.d.ts +7 -2
  112. package/lib/types/external/DirectLineSignInCard.d.ts.map +1 -1
  113. package/lib/types/external/DirectLineSignInCard.js +4 -0
  114. package/lib/types/external/DirectLineSuggestedAction.d.ts +6 -2
  115. package/lib/types/external/DirectLineSuggestedAction.d.ts.map +1 -1
  116. package/lib/types/external/DirectLineSuggestedAction.js +4 -0
  117. package/lib/types/external/DirectLineThumbnailCard.d.ts +5 -2
  118. package/lib/types/external/DirectLineThumbnailCard.d.ts.map +1 -1
  119. package/lib/types/external/DirectLineThumbnailCard.js +4 -0
  120. package/lib/types/external/DirectLineVideoCard.d.ts +5 -2
  121. package/lib/types/external/DirectLineVideoCard.d.ts.map +1 -1
  122. package/lib/types/external/DirectLineVideoCard.js +4 -0
  123. package/lib/types/external/Observable.js +6 -0
  124. package/lib/types/internal/Notification.js +6 -0
  125. package/lib/types/internal/ReduxState.js +6 -0
  126. package/lib/utils/dateToLocaleISOString.js +5 -5
  127. package/lib/utils/deleteKey.js +1 -1
  128. package/lib/utils/sleep.js +1 -1
  129. package/lib/utils/uniqueID.js +1 -1
  130. package/package.json +18 -14
  131. package/src/actions/deleteActivity.ts +19 -0
  132. package/src/actions/incomingActivity.ts +21 -0
  133. package/src/actions/markActivity.ts +23 -0
  134. package/src/actions/postActivity.ts +48 -0
  135. package/src/definitions/speakingActivity.js +1 -1
  136. package/src/index.ts +17 -14
  137. package/src/reducer.ts +0 -2
  138. package/src/reducers/activities.ts +172 -0
  139. package/src/reducers/typing.js +6 -5
  140. package/src/sagas/effects/{observeOnce.js → observeOnce.ts} +6 -4
  141. package/src/sagas/effects/{whileConnected.js → whileConnected.ts} +20 -1
  142. package/src/sagas/{observeActivitySaga.js → observeActivitySaga.ts} +25 -6
  143. package/src/sagas/{postActivitySaga.js → postActivitySaga.ts} +57 -48
  144. package/src/sagas/sendFilesToPostActivitySaga.js +1 -1
  145. package/src/selectors/activities.ts +12 -0
  146. package/src/selectors/{combineSelectors.js → combineSelectors.ts} +7 -2
  147. package/src/selectors/dictateState.ts +3 -0
  148. package/src/selectors/language.ts +3 -0
  149. package/src/selectors/notifications.ts +6 -0
  150. package/src/selectors/sendBoxValue.ts +3 -0
  151. package/src/selectors/sendTimeout.ts +3 -0
  152. package/src/selectors/sendTypingIndicator.ts +3 -0
  153. package/src/selectors/shouldSpeakIncomingActivity.ts +3 -0
  154. package/src/types/AnyAnd.ts +1 -0
  155. package/src/types/WebChatActivity.ts +154 -0
  156. package/src/types/external/DirectLineActivity.ts +1 -1
  157. package/src/types/external/DirectLineAnimationCard.ts +6 -3
  158. package/src/types/external/DirectLineAttachment.ts +10 -4
  159. package/src/types/external/DirectLineAudioCard.ts +6 -3
  160. package/src/types/external/DirectLineBasicCardEssence.ts +14 -0
  161. package/src/types/external/DirectLineCardAction.ts +1 -1
  162. package/src/types/external/DirectLineCardImage.ts +9 -0
  163. package/src/types/external/DirectLineHeroCard.ts +6 -3
  164. package/src/types/external/DirectLineJSBotConnection.ts +1 -1
  165. package/src/types/external/DirectLineMediaCardEssence.ts +19 -0
  166. package/src/types/external/DirectLineOAuthCard.ts +7 -3
  167. package/src/types/external/DirectLineReceiptCard.ts +30 -3
  168. package/src/types/external/DirectLineSignInCard.ts +8 -3
  169. package/src/types/external/DirectLineSuggestedAction.ts +6 -3
  170. package/src/types/external/DirectLineThumbnailCard.ts +6 -3
  171. package/src/types/external/DirectLineVideoCard.ts +6 -3
  172. package/src/types/external/Observable.ts +69 -0
  173. package/src/types/internal/Notification.ts +10 -0
  174. package/src/types/internal/ReduxState.ts +16 -0
  175. package/src/utils/{dateToLocaleISOString.js → dateToLocaleISOString.ts} +6 -6
  176. package/src/utils/deleteKey.ts +9 -0
  177. package/src/utils/{sleep.js → sleep.ts} +1 -1
  178. package/src/utils/{uniqueID.js → uniqueID.ts} +1 -1
  179. package/lib/reducers/clockSkewAdjustment.js +0 -44
  180. package/lib/sagas/effects/callUntil.js +0 -48
  181. package/lib/selectors/clockSkewAdjustment.js +0 -14
  182. package/lib/utils/mime-wrapper.js +0 -47
  183. package/src/actions/deleteActivity.js +0 -8
  184. package/src/actions/incomingActivity.js +0 -10
  185. package/src/actions/markActivity.js +0 -14
  186. package/src/actions/postActivity.js +0 -14
  187. package/src/reducers/activities.js +0 -116
  188. package/src/reducers/clockSkewAdjustment.js +0 -29
  189. package/src/sagas/effects/callUntil.js +0 -13
  190. package/src/selectors/activities.js +0 -8
  191. package/src/selectors/clockSkewAdjustment.js +0 -1
  192. package/src/selectors/dictateState.js +0 -1
  193. package/src/selectors/language.js +0 -1
  194. package/src/selectors/notifications.js +0 -3
  195. package/src/selectors/sendBoxValue.js +0 -1
  196. package/src/selectors/sendTimeout.js +0 -1
  197. package/src/selectors/sendTypingIndicator.js +0 -1
  198. package/src/selectors/shouldSpeakIncomingActivity.js +0 -1
  199. package/src/utils/deleteKey.js +0 -9
  200. package/src/utils/mime-wrapper.js +0 -39
@@ -1,48 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = callUntilEffect;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _effects = require("redux-saga/effects");
15
-
16
- function callUntilEffect(fn, args, predicate) {
17
- return (0, _effects.call)( /*#__PURE__*/_regenerator["default"].mark(function callUntil() {
18
- var result;
19
- return _regenerator["default"].wrap(function callUntil$(_context) {
20
- while (1) {
21
- switch (_context.prev = _context.next) {
22
- case 0:
23
- _context.next = 2;
24
- return _effects.call.apply(void 0, [fn].concat((0, _toConsumableArray2["default"])(args)));
25
-
26
- case 2:
27
- result = _context.sent;
28
-
29
- if (!predicate(result)) {
30
- _context.next = 5;
31
- break;
32
- }
33
-
34
- return _context.abrupt("break", 7);
35
-
36
- case 5:
37
- _context.next = 0;
38
- break;
39
-
40
- case 7:
41
- case "end":
42
- return _context.stop();
43
- }
44
- }
45
- }, callUntil);
46
- }));
47
- }
48
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zYWdhcy9lZmZlY3RzL2NhbGxVbnRpbC5qcyJdLCJuYW1lcyI6WyJjYWxsVW50aWxFZmZlY3QiLCJmbiIsImFyZ3MiLCJwcmVkaWNhdGUiLCJjYWxsVW50aWwiLCJjYWxsIiwicmVzdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRWUsU0FBU0EsZUFBVCxDQUF5QkMsRUFBekIsRUFBNkJDLElBQTdCLEVBQW1DQyxTQUFuQyxFQUE4QztBQUMzRCxTQUFPLDhEQUFLLFNBQVVDLFNBQVY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFTyxtQkFBTUMsNkJBQUtKLEVBQUwsNkNBQVlDLElBQVosR0FBTjs7QUFGUDtBQUVGSSxZQUFBQSxNQUZFOztBQUFBLGlCQUlKSCxTQUFTLENBQUNHLE1BQUQsQ0FKTDtBQUFBO0FBQUE7QUFBQTs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE9BQVVGLFNBQVY7QUFBQSxHQUFMLEVBQVA7QUFTRCIsInNvdXJjZVJvb3QiOiJjb3JlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbGwgfSBmcm9tICdyZWR1eC1zYWdhL2VmZmVjdHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjYWxsVW50aWxFZmZlY3QoZm4sIGFyZ3MsIHByZWRpY2F0ZSkge1xuICByZXR1cm4gY2FsbChmdW5jdGlvbiogY2FsbFVudGlsKCkge1xuICAgIGZvciAoOzspIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGNhbGwoZm4sIC4uLmFyZ3MpO1xuXG4gICAgICBpZiAocHJlZGljYXRlKHJlc3VsdCkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _default = function _default(_ref) {
9
- var clockSkewAdjustment = _ref.clockSkewAdjustment;
10
- return clockSkewAdjustment;
11
- };
12
-
13
- exports["default"] = _default;
14
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWxlY3RvcnMvY2xvY2tTa2V3QWRqdXN0bWVudC5qcyJdLCJuYW1lcyI6WyJjbG9ja1NrZXdBZGp1c3RtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O2VBQWU7QUFBQSxNQUFHQSxtQkFBSCxRQUFHQSxtQkFBSDtBQUFBLFNBQTZCQSxtQkFBN0I7QUFBQSxDIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgKHsgY2xvY2tTa2V3QWRqdXN0bWVudCB9KSA9PiBjbG9ja1NrZXdBZGp1c3RtZW50O1xuIl19
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _Mime = _interopRequireDefault(require("mime/Mime"));
11
-
12
- /* eslint no-undef: "off" */
13
- // We adopted the work from mime-wrapper, at https://github.com/marlon360/mime-wrapper.
14
- // This file wraps the mime library constructor to include '.json' types. This is needed
15
- // to support Angular CLI web projects, in which the webpack.config files are hidden away
16
- // from the user, and do not support .json file extension module resolutions.
17
- //
18
- // Refer to issue https://github.com/jshttp/mime-types/issues/50#issuecomment-390932678
19
- // and issue https://github.com/broofa/node-mime/issues/208.
20
- //
21
- // This file may need to change if the mime library is bumped a major that may cause a
22
- // breaking change, as it relies on the internal library file placement.
23
- // MIT License
24
- //
25
- // Copyright (c) 2018 Marlon Lückert
26
- //
27
- // Permission is hereby granted, free of charge, to any person obtaining a copy
28
- // of this software and associated documentation files (the "Software"), to deal
29
- // in the Software without restriction, including without limitation the rights
30
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
31
- // copies of the Software, and to permit persons to whom the Software is
32
- // furnished to do so, subject to the following conditions:
33
- //
34
- // The above copyright notice and this permission notice shall be included in all
35
- // copies or substantial portions of the Software.
36
- //
37
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
38
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
39
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
40
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
41
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
42
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
43
- // SOFTWARE.
44
- var _default = new _Mime["default"](require('mime/types/standard'), require('mime/types/other'));
45
-
46
- exports["default"] = _default;
47
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9taW1lLXdyYXBwZXIuanMiXSwibmFtZXMiOlsiTWltZSIsInJlcXVpcmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQW9DQTs7QUFwQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtlQUllLElBQUlBLGdCQUFKLENBQVNDLE9BQU8sQ0FBQyxxQkFBRCxDQUFoQixFQUF5Q0EsT0FBTyxDQUFDLGtCQUFELENBQWhELEMiLCJzb3VyY2VSb290IjoiY29yZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tdW5kZWY6IFwib2ZmXCIgKi9cblxuLy8gV2UgYWRvcHRlZCB0aGUgd29yayBmcm9tIG1pbWUtd3JhcHBlciwgYXQgaHR0cHM6Ly9naXRodWIuY29tL21hcmxvbjM2MC9taW1lLXdyYXBwZXIuXG5cbi8vIFRoaXMgZmlsZSB3cmFwcyB0aGUgbWltZSBsaWJyYXJ5IGNvbnN0cnVjdG9yIHRvIGluY2x1ZGUgJy5qc29uJyB0eXBlcy4gVGhpcyBpcyBuZWVkZWRcbi8vIHRvIHN1cHBvcnQgQW5ndWxhciBDTEkgd2ViIHByb2plY3RzLCBpbiB3aGljaCB0aGUgd2VicGFjay5jb25maWcgZmlsZXMgYXJlIGhpZGRlbiBhd2F5XG4vLyBmcm9tIHRoZSB1c2VyLCBhbmQgZG8gbm90IHN1cHBvcnQgLmpzb24gZmlsZSBleHRlbnNpb24gbW9kdWxlIHJlc29sdXRpb25zLlxuLy9cbi8vIFJlZmVyIHRvIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qc2h0dHAvbWltZS10eXBlcy9pc3N1ZXMvNTAjaXNzdWVjb21tZW50LTM5MDkzMjY3OFxuLy8gYW5kIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9icm9vZmEvbm9kZS1taW1lL2lzc3Vlcy8yMDguXG4vL1xuLy8gVGhpcyBmaWxlIG1heSBuZWVkIHRvIGNoYW5nZSBpZiB0aGUgbWltZSBsaWJyYXJ5IGlzIGJ1bXBlZCBhIG1ham9yIHRoYXQgbWF5IGNhdXNlIGFcbi8vIGJyZWFraW5nIGNoYW5nZSwgYXMgaXQgcmVsaWVzIG9uIHRoZSBpbnRlcm5hbCBsaWJyYXJ5IGZpbGUgcGxhY2VtZW50LlxuXG4vLyBNSVQgTGljZW5zZVxuLy9cbi8vIENvcHlyaWdodCAoYykgMjAxOCBNYXJsb24gTMO8Y2tlcnRcbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4vLyBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbi8vIFNPRlRXQVJFLlxuXG5pbXBvcnQgTWltZSBmcm9tICdtaW1lL01pbWUnO1xuXG5leHBvcnQgZGVmYXVsdCBuZXcgTWltZShyZXF1aXJlKCdtaW1lL3R5cGVzL3N0YW5kYXJkJyksIHJlcXVpcmUoJ21pbWUvdHlwZXMvb3RoZXInKSk7XG4iXX0=
@@ -1,8 +0,0 @@
1
- export const DELETE_ACTIVITY = 'DIRECT_LINE/DELETE_ACTIVITY';
2
-
3
- export default function deleteActivity(activityID) {
4
- return {
5
- type: DELETE_ACTIVITY,
6
- payload: { activityID }
7
- };
8
- }
@@ -1,10 +0,0 @@
1
- const INCOMING_ACTIVITY = 'DIRECT_LINE/INCOMING_ACTIVITY';
2
-
3
- export default function incomingActivity(activity) {
4
- return {
5
- type: INCOMING_ACTIVITY,
6
- payload: { activity }
7
- };
8
- }
9
-
10
- export { INCOMING_ACTIVITY };
@@ -1,14 +0,0 @@
1
- const MARK_ACTIVITY = 'WEB_CHAT/MARK_ACTIVITY';
2
-
3
- export default function markActivity({ id: activityID }, name, value) {
4
- return {
5
- type: MARK_ACTIVITY,
6
- payload: {
7
- activityID,
8
- name,
9
- value
10
- }
11
- };
12
- }
13
-
14
- export { MARK_ACTIVITY };
@@ -1,14 +0,0 @@
1
- const POST_ACTIVITY = 'DIRECT_LINE/POST_ACTIVITY';
2
- export const POST_ACTIVITY_FULFILLED = `${POST_ACTIVITY}_FULFILLED`;
3
- export const POST_ACTIVITY_PENDING = `${POST_ACTIVITY}_PENDING`;
4
- export const POST_ACTIVITY_REJECTED = `${POST_ACTIVITY}_REJECTED`;
5
-
6
- export default function postActivity(activity, method = 'keyboard') {
7
- return {
8
- type: POST_ACTIVITY,
9
- meta: { method },
10
- payload: { activity }
11
- };
12
- }
13
-
14
- export { POST_ACTIVITY };
@@ -1,116 +0,0 @@
1
- /* eslint no-magic-numbers: ["error", { "ignore": [0, -1] }] */
2
-
3
- import updateIn from 'simple-update-in';
4
-
5
- import { DELETE_ACTIVITY } from '../actions/deleteActivity';
6
- import { INCOMING_ACTIVITY } from '../actions/incomingActivity';
7
- import { MARK_ACTIVITY } from '../actions/markActivity';
8
-
9
- import { POST_ACTIVITY_FULFILLED, POST_ACTIVITY_PENDING, POST_ACTIVITY_REJECTED } from '../actions/postActivity';
10
-
11
- import { SEND_FAILED, SENDING, SENT } from '../constants/ActivityClientState';
12
-
13
- const DEFAULT_STATE = [];
14
- const DIRECT_LINE_PLACEHOLDER_URL =
15
- 'https://docs.botframework.com/static/devportal/client/images/bot-framework-default-placeholder.png';
16
-
17
- function getClientActivityID({ channelData: { clientActivityID } = {} }) {
18
- return clientActivityID;
19
- }
20
-
21
- function findByClientActivityID(clientActivityID) {
22
- return activity => getClientActivityID(activity) === clientActivityID;
23
- }
24
-
25
- function patchActivity(activity) {
26
- // Direct Line channel will return a placeholder image for the user-uploaded image.
27
- // As observed, the URL for the placeholder image is https://docs.botframework.com/static/devportal/client/images/bot-framework-default-placeholder.png.
28
- // To make our code simpler, we are removing the value if "contentUrl" is pointing to a placeholder image.
29
-
30
- // TODO: [P2] #2869 This "contentURL" removal code should be moved to DirectLineJS adapter.
31
-
32
- // Also, if the "contentURL" starts with "blob:", this means the user is uploading a file (the URL is constructed by URL.createObjectURL)
33
- // 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.
34
-
35
- return updateIn(activity, ['attachments', () => true, 'contentUrl'], contentUrl => {
36
- if (contentUrl !== DIRECT_LINE_PLACEHOLDER_URL && !/^blob:/iu.test(contentUrl)) {
37
- return contentUrl;
38
- }
39
- });
40
- }
41
-
42
- function upsertActivityWithSort(activities, nextActivity) {
43
- nextActivity = patchActivity(nextActivity);
44
-
45
- const { channelData: { clientActivityID: nextClientActivityID } = {} } = nextActivity;
46
-
47
- const nextTimestamp = Date.parse(nextActivity.timestamp);
48
- const nextActivities = activities.filter(
49
- ({ channelData: { clientActivityID } = {}, id }) =>
50
- // We will remove all "sending messages" activities and activities with same ID
51
- // "clientActivityID" is unique and used to track if the message has been sent and echoed back from the server
52
- !(nextClientActivityID && clientActivityID === nextClientActivityID) && !(id && id === nextActivity.id)
53
- );
54
-
55
- // Then, find the right (sorted) place to insert the new activity at, based on timestamp
56
- // Since clockskew might happen, we will ignore timestamp on messages that are sending
57
-
58
- const indexToInsert = nextActivities.findIndex(
59
- ({ channelData: { state } = {}, timestamp }) =>
60
- Date.parse(timestamp) > nextTimestamp && state !== SENDING && state !== SEND_FAILED
61
- );
62
-
63
- // If no right place are found, append it
64
- nextActivities.splice(~indexToInsert ? indexToInsert : nextActivities.length, 0, nextActivity);
65
-
66
- return nextActivities;
67
- }
68
-
69
- export default function activities(state = DEFAULT_STATE, { meta, payload, type }) {
70
- switch (type) {
71
- case DELETE_ACTIVITY:
72
- state = updateIn(state, [({ id }) => id === payload.activityID]);
73
- break;
74
-
75
- case MARK_ACTIVITY:
76
- state = updateIn(
77
- state,
78
- [({ id }) => id === payload.activityID, 'channelData', payload.name],
79
- () => payload.value
80
- );
81
- break;
82
-
83
- case POST_ACTIVITY_PENDING:
84
- state = upsertActivityWithSort(
85
- state,
86
- updateIn(payload.activity, ['channelData', 'state'], () => SENDING)
87
- );
88
- break;
89
-
90
- case POST_ACTIVITY_REJECTED:
91
- state = updateIn(
92
- state,
93
- [findByClientActivityID(meta.clientActivityID), 'channelData', 'state'],
94
- () => SEND_FAILED
95
- );
96
- break;
97
-
98
- case POST_ACTIVITY_FULFILLED:
99
- state = updateIn(state, [findByClientActivityID(meta.clientActivityID)], () =>
100
- // We will replace the activity with the version from the server
101
- updateIn(patchActivity(payload.activity), ['channelData', 'state'], () => SENT)
102
- );
103
-
104
- break;
105
-
106
- case INCOMING_ACTIVITY:
107
- // TODO: [P4] #2100 Move "typing" into Constants.ActivityType
108
- state = upsertActivityWithSort(state, payload.activity);
109
- break;
110
-
111
- default:
112
- break;
113
- }
114
-
115
- return state;
116
- }
@@ -1,29 +0,0 @@
1
- import { INCOMING_ACTIVITY } from '../actions/incomingActivity';
2
- import { SET_CLOCK_SKEW_ADJUSTMENT } from '../actions/setClockSkewAdjustment';
3
-
4
- export default function clockSkewAdjustment(state = 0, { payload, type }) {
5
- if (type === INCOMING_ACTIVITY) {
6
- const {
7
- activity: { channelData: { clientTimestamp } = {}, timestamp }
8
- } = payload;
9
-
10
- const clientSendTime = Date.parse(clientTimestamp);
11
- const serverTime = Date.parse(timestamp);
12
-
13
- if (!isNaN(clientSendTime) && !isNaN(serverTime)) {
14
- // The adjustment include the latency between the client and the server.
15
- // This means, the adjustment is always larger than the actual value.
16
- // And it means, after adjustment, client time will be ahead of server time.
17
- // And it also means, the user-originated message has higher probability to appear below bot-originated message.
18
- // Although it has higher probability, if the user-originated message is still sending (i.e. did not echoback with server timestamp yet),
19
- // the insertion-sort logic will put the bot-originated below the user-originated message.
20
-
21
- state = serverTime - clientSendTime;
22
- }
23
- } else if (type === SET_CLOCK_SKEW_ADJUSTMENT) {
24
- // Currently, this action is for testing purpose only.
25
- state = payload.value;
26
- }
27
-
28
- return state;
29
- }
@@ -1,13 +0,0 @@
1
- import { call } from 'redux-saga/effects';
2
-
3
- export default function callUntilEffect(fn, args, predicate) {
4
- return call(function* callUntil() {
5
- for (;;) {
6
- const result = yield call(fn, ...args);
7
-
8
- if (predicate(result)) {
9
- break;
10
- }
11
- }
12
- });
13
- }
@@ -1,8 +0,0 @@
1
- const activities = ({ activities }) => activities;
2
-
3
- const of = predicate => state => activities(state).filter(predicate);
4
- const ofID = targetID => of(({ id }) => id === targetID);
5
- const ofType = targetType => of(({ type }) => type === targetType);
6
-
7
- export default activities;
8
- export { of, ofID, ofType };
@@ -1 +0,0 @@
1
- export default ({ clockSkewAdjustment }) => clockSkewAdjustment;
@@ -1 +0,0 @@
1
- export default ({ dictateState }) => dictateState;
@@ -1 +0,0 @@
1
- export default ({ language }) => language;
@@ -1,3 +0,0 @@
1
- const notifications = ({ notifications }) => notifications;
2
-
3
- export default notifications;
@@ -1 +0,0 @@
1
- export default ({ sendBoxValue }) => sendBoxValue;
@@ -1 +0,0 @@
1
- export default ({ sendTimeout }) => sendTimeout;
@@ -1 +0,0 @@
1
- export default ({ sendTypingIndicator }) => sendTypingIndicator;
@@ -1 +0,0 @@
1
- export default ({ shouldSpeakIncomingActivity }) => shouldSpeakIncomingActivity;
@@ -1,9 +0,0 @@
1
- export default function deleteKey(map, key) {
2
- if (!map) {
3
- return map;
4
- }
5
-
6
- const { [key]: _deleted, ...nextMap } = map;
7
-
8
- return nextMap;
9
- }
@@ -1,39 +0,0 @@
1
- /* eslint no-undef: "off" */
2
-
3
- // We adopted the work from mime-wrapper, at https://github.com/marlon360/mime-wrapper.
4
-
5
- // This file wraps the mime library constructor to include '.json' types. This is needed
6
- // to support Angular CLI web projects, in which the webpack.config files are hidden away
7
- // from the user, and do not support .json file extension module resolutions.
8
- //
9
- // Refer to issue https://github.com/jshttp/mime-types/issues/50#issuecomment-390932678
10
- // and issue https://github.com/broofa/node-mime/issues/208.
11
- //
12
- // This file may need to change if the mime library is bumped a major that may cause a
13
- // breaking change, as it relies on the internal library file placement.
14
-
15
- // MIT License
16
- //
17
- // Copyright (c) 2018 Marlon Lückert
18
- //
19
- // Permission is hereby granted, free of charge, to any person obtaining a copy
20
- // of this software and associated documentation files (the "Software"), to deal
21
- // in the Software without restriction, including without limitation the rights
22
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
23
- // copies of the Software, and to permit persons to whom the Software is
24
- // furnished to do so, subject to the following conditions:
25
- //
26
- // The above copyright notice and this permission notice shall be included in all
27
- // copies or substantial portions of the Software.
28
- //
29
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
31
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
32
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
33
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
34
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
35
- // SOFTWARE.
36
-
37
- import Mime from 'mime/Mime';
38
-
39
- export default new Mime(require('mime/types/standard'), require('mime/types/other'));