botframework-webchat-core 4.14.1 → 4.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.yml +4 -198
- package/.prettierrc.yml +1 -1
- package/lib/actions/setNotification.js +1 -1
- package/lib/createStore.d.ts.map +1 -1
- package/lib/createStore.js +5 -5
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -2
- package/lib/reducers/notifications.js +21 -14
- package/lib/sagas/connectionStatusToNotificationSaga.js +1 -1
- package/lib/sagas/queueIncomingActivitySaga.js +1 -1
- package/lib/sagas/sendMessageBackToPostActivitySaga.js +1 -1
- package/lib/sagas/sendTypingIndicatorOnSetSendBoxSaga.js +1 -1
- package/lib/sagas/speakActivityAndStartDictateOnIncomingActivityFromOthersSaga.js +1 -1
- package/lib/sagas/startSpeakActivityOnPostActivitySaga.js +1 -1
- package/lib/sagas/stopSpeakingActivityOnInputSaga.js +1 -1
- package/lib/sagas/submitSendBoxSaga.js +1 -1
- package/lib/selectors/combineSelectors.js +7 -2
- package/lib/types/external/DirectLineActivity.d.ts +1 -1
- package/lib/types/external/DirectLineActivity.d.ts.map +1 -1
- package/lib/types/external/DirectLineAnimationCard.d.ts.map +1 -1
- package/lib/types/external/DirectLineAttachment.d.ts.map +1 -1
- package/lib/types/external/DirectLineAudioCard.d.ts.map +1 -1
- package/lib/types/external/DirectLineHeroCard.d.ts.map +1 -1
- package/lib/types/external/DirectLineJSBotConnection.d.ts.map +1 -1
- package/lib/types/external/DirectLineOAuthCard.d.ts.map +1 -1
- package/lib/types/external/DirectLineReceiptCard.d.ts.map +1 -1
- package/lib/types/external/DirectLineSignInCard.d.ts.map +1 -1
- package/lib/types/external/DirectLineSuggestedAction.d.ts.map +1 -1
- package/lib/types/external/DirectLineThumbnailCard.d.ts.map +1 -1
- package/lib/types/external/DirectLineVideoCard.d.ts.map +1 -1
- package/lib/utils/deleteKey.js +2 -3
- package/lib/utils/isForbiddenPropertyName.d.ts +2 -0
- package/lib/utils/isForbiddenPropertyName.d.ts.map +1 -0
- package/lib/utils/isForbiddenPropertyName.js +21 -0
- package/lib/utils/mime-wrapper.js +2 -4
- package/lib/utils/uniqueID.js +1 -1
- package/package.json +6 -13
- package/src/__tests__/detectSlowConnectionSaga.spec.js +1 -1
- package/src/__tests__/observeOnce.spec.js +3 -3
- package/src/actions/setNotification.js +8 -2
- package/src/createStore.ts +4 -4
- package/src/index.ts +2 -0
- package/src/reducers/notifications.js +22 -16
- package/src/sagas/connectionStatusToNotificationSaga.js +1 -1
- package/src/sagas/queueIncomingActivitySaga.js +40 -39
- package/src/sagas/sendMessageBackToPostActivitySaga.js +0 -1
- package/src/sagas/sendTypingIndicatorOnSetSendBoxSaga.js +1 -1
- package/src/sagas/speakActivityAndStartDictateOnIncomingActivityFromOthersSaga.js +1 -1
- package/src/sagas/startSpeakActivityOnPostActivitySaga.js +1 -1
- package/src/sagas/stopSpeakingActivityOnInputSaga.js +1 -1
- package/src/sagas/submitSendBoxSaga.js +1 -1
- package/src/selectors/combineSelectors.js +9 -1
- package/src/types/external/DirectLineActivity.ts +3 -2
- package/src/types/external/DirectLineAnimationCard.ts +0 -1
- package/src/types/external/DirectLineAttachment.ts +0 -1
- package/src/types/external/DirectLineAudioCard.ts +0 -1
- package/src/types/external/DirectLineHeroCard.ts +0 -1
- package/src/types/external/DirectLineJSBotConnection.ts +0 -1
- package/src/types/external/DirectLineOAuthCard.ts +0 -1
- package/src/types/external/DirectLineReceiptCard.ts +0 -1
- package/src/types/external/DirectLineSignInCard.ts +0 -1
- package/src/types/external/DirectLineSuggestedAction.ts +0 -1
- package/src/types/external/DirectLineThumbnailCard.ts +0 -1
- package/src/types/external/DirectLineVideoCard.ts +0 -1
- package/src/utils/dateToLocaleISOString.chatham.spec.js +1 -0
- package/src/utils/dateToLocaleISOString.japan.spec.js +1 -0
- package/src/utils/dateToLocaleISOString.pacific.spec.js +1 -0
- package/src/utils/dateToLocaleISOString.utc.spec.js +2 -0
- package/src/utils/deleteKey.js +1 -3
- package/src/utils/isForbiddenPropertyName.spec.js +6 -0
- package/src/utils/isForbiddenPropertyName.ts +33 -0
- package/src/utils/mime-wrapper.js +1 -2
- package/src/utils/uniqueID.js +1 -6
- package/.eslintignore +0 -9
|
@@ -78,4 +78,4 @@ function stopSpeakingActivityOnInputSaga() {
|
|
|
78
78
|
}
|
|
79
79
|
}, _marked2);
|
|
80
80
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWdhcy9zdG9wU3BlYWtpbmdBY3Rpdml0eU9uSW5wdXRTYWdhLmpzIl0sIm5hbWVzIjpbInN0b3BTcGVha2luZ0FjdGl2aXR5T25JbnB1dCIsInN0b3BTcGVha2luZ0FjdGl2aXR5T25JbnB1dFNhZ2EiLCJtZXRhIiwicGF5bG9hZCIsInR5cGUiLCJTRVRfU0VORF9CT1giLCJ0ZXh0IiwiUE9TVF9BQ1RJVklUWV9QRU5ESU5HIiwibWV0aG9kIiwiYWN0aXZpdHkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7cURBRVVBLDJCO3NEQWVlQywrQjs7QUFmekIsU0FBVUQsMkJBQVY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0UsaUJBQU0sd0JBQ0o7QUFBQSxnQkFBR0UsSUFBSCxRQUFHQSxJQUFIO0FBQUEsZ0JBQVNDLE9BQVQsUUFBU0EsT0FBVDtBQUFBLGdCQUFrQkMsSUFBbEIsUUFBa0JBLElBQWxCO0FBQUEsbUJBQ0dBLElBQUksS0FBS0Msd0JBQVQsSUFBeUJGLE9BQU8sQ0FBQ0csSUFBbEMsSUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDRixZQUFBQSxJQUFJLEtBQUtHLG1DQUFULElBQWtDTCxJQUFJLENBQUNNLE1BQUwsS0FBZ0IsUUFBbEQsSUFBOERMLE9BQU8sQ0FBQ00sUUFBUixDQUFpQkwsSUFBakIsS0FBMEIsU0FOM0Y7QUFBQSxXQURJLDRDQVFKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNFLDJCQUFNLGtCQUFJLHVDQUFKLENBQU47O0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FSSSxFQUFOOztBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQWVlLFNBQVVILCtCQUFWO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNiLGlCQUFNLGdDQUFlRCwyQkFBZixDQUFOOztBQURhO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHV0LCB0YWtlRXZlcnkgfSBmcm9tICdyZWR1eC1zYWdhL2VmZmVjdHMnO1xuXG5pbXBvcnQgeyBQT1NUX0FDVElWSVRZX1BFTkRJTkcgfSBmcm9tICcuLi9hY3Rpb25zL3Bvc3RBY3Rpdml0eSc7XG5pbXBvcnQgeyBTRVRfU0VORF9CT1ggfSBmcm9tICcuLi9hY3Rpb25zL3NldFNlbmRCb3gnO1xuaW1wb3J0IHN0b3BTcGVha2luZ0FjdGl2aXR5IGZyb20gJy4uL2FjdGlvbnMvc3RvcFNwZWFraW5nQWN0aXZpdHknO1xuaW1wb3J0IHdoaWxlQ29ubmVjdGVkIGZyb20gJy4vZWZmZWN0cy93aGlsZUNvbm5lY3RlZCc7XG5cbmZ1bmN0aW9uKiBzdG9wU3BlYWtpbmdBY3Rpdml0eU9uSW5wdXQoKSB7XG4gIHlpZWxkIHRha2VFdmVyeShcbiAgICAoeyBtZXRhLCBwYXlsb2FkLCB0eXBlIH0pID0+
|
|
81
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWdhcy9zdG9wU3BlYWtpbmdBY3Rpdml0eU9uSW5wdXRTYWdhLmpzIl0sIm5hbWVzIjpbInN0b3BTcGVha2luZ0FjdGl2aXR5T25JbnB1dCIsInN0b3BTcGVha2luZ0FjdGl2aXR5T25JbnB1dFNhZ2EiLCJtZXRhIiwicGF5bG9hZCIsInR5cGUiLCJTRVRfU0VORF9CT1giLCJ0ZXh0IiwiUE9TVF9BQ1RJVklUWV9QRU5ESU5HIiwibWV0aG9kIiwiYWN0aXZpdHkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7cURBRVVBLDJCO3NEQWVlQywrQjs7QUFmekIsU0FBVUQsMkJBQVY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0UsaUJBQU0sd0JBQ0o7QUFBQSxnQkFBR0UsSUFBSCxRQUFHQSxJQUFIO0FBQUEsZ0JBQVNDLE9BQVQsUUFBU0EsT0FBVDtBQUFBLGdCQUFrQkMsSUFBbEIsUUFBa0JBLElBQWxCO0FBQUEsbUJBQ0dBLElBQUksS0FBS0Msd0JBQVQsSUFBeUJGLE9BQU8sQ0FBQ0csSUFBbEMsSUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDRixZQUFBQSxJQUFJLEtBQUtHLG1DQUFULElBQWtDTCxJQUFJLENBQUNNLE1BQUwsS0FBZ0IsUUFBbEQsSUFBOERMLE9BQU8sQ0FBQ00sUUFBUixDQUFpQkwsSUFBakIsS0FBMEIsU0FOM0Y7QUFBQSxXQURJLDRDQVFKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNFLDJCQUFNLGtCQUFJLHVDQUFKLENBQU47O0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FSSSxFQUFOOztBQURGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQWVlLFNBQVVILCtCQUFWO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNiLGlCQUFNLGdDQUFlRCwyQkFBZixDQUFOOztBQURhO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHV0LCB0YWtlRXZlcnkgfSBmcm9tICdyZWR1eC1zYWdhL2VmZmVjdHMnO1xuXG5pbXBvcnQgeyBQT1NUX0FDVElWSVRZX1BFTkRJTkcgfSBmcm9tICcuLi9hY3Rpb25zL3Bvc3RBY3Rpdml0eSc7XG5pbXBvcnQgeyBTRVRfU0VORF9CT1ggfSBmcm9tICcuLi9hY3Rpb25zL3NldFNlbmRCb3gnO1xuaW1wb3J0IHN0b3BTcGVha2luZ0FjdGl2aXR5IGZyb20gJy4uL2FjdGlvbnMvc3RvcFNwZWFraW5nQWN0aXZpdHknO1xuaW1wb3J0IHdoaWxlQ29ubmVjdGVkIGZyb20gJy4vZWZmZWN0cy93aGlsZUNvbm5lY3RlZCc7XG5cbmZ1bmN0aW9uKiBzdG9wU3BlYWtpbmdBY3Rpdml0eU9uSW5wdXQoKSB7XG4gIHlpZWxkIHRha2VFdmVyeShcbiAgICAoeyBtZXRhLCBwYXlsb2FkLCB0eXBlIH0pID0+XG4gICAgICAodHlwZSA9PT0gU0VUX1NFTkRfQk9YICYmIHBheWxvYWQudGV4dCkgfHxcbiAgICAgIC8vIFdlIHdhbnQgdG8gc3RvcCBzcGVha2luZyBhY3Rpdml0eSB3aGVuIHRoZSB1c2VyIGNsaWNrIG9uIGEgY2FyZCBhY3Rpb25cbiAgICAgIC8vIEJ1dCBjdXJyZW50bHkgdGhlcmUgYXJlIG5vIGFjdGlvbnMgZ2VuZXJhdGVkIG91dCBvZiBhIGNhcmQgYWN0aW9uXG4gICAgICAvLyBTbywgcmlnaHQgbm93LCB3ZSBhcmUgdXNpbmcgYmVzdC1lZmZvcnQgYnkgbGlzdGVuaW5nIHRvIFBPU1RfQUNUSVZJVFlfUEVORElORyB3aXRoIGEgXCJtZXNzYWdlXCIgZXZlbnRcbiAgICAgIC8vIFdlIGZpbHRlciBvdXQgc3BlZWNoIGJlY2F1c2Ugd2Ugd2lsbCBjYWxsIHN0YXJ0U3BlYWtpbmdBY3Rpdml0eSgpIGZvciBQT1NUX0FDVElWSVRZX1BFTkRJTkcgZGlzcGF0Y2hlZCBieSBzcGVlY2hcbiAgICAgICh0eXBlID09PSBQT1NUX0FDVElWSVRZX1BFTkRJTkcgJiYgbWV0YS5tZXRob2QgIT09ICdzcGVlY2gnICYmIHBheWxvYWQuYWN0aXZpdHkudHlwZSA9PT0gJ21lc3NhZ2UnKSxcbiAgICBmdW5jdGlvbiogKCkge1xuICAgICAgeWllbGQgcHV0KHN0b3BTcGVha2luZ0FjdGl2aXR5KCkpO1xuICAgIH1cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24qIHN0b3BTcGVha2luZ0FjdGl2aXR5T25JbnB1dFNhZ2EoKSB7XG4gIHlpZWxkIHdoaWxlQ29ubmVjdGVkKHN0b3BTcGVha2luZ0FjdGl2aXR5T25JbnB1dCk7XG59XG4iXX0=
|
|
@@ -91,4 +91,4 @@ function submitSendBoxSaga() {
|
|
|
91
91
|
}
|
|
92
92
|
}, _marked2);
|
|
93
93
|
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWdhcy9zdWJtaXRTZW5kQm94U2FnYS5qcyJdLCJuYW1lcyI6WyJzdWJtaXRTZW5kQm94Iiwic3VibWl0U2VuZEJveFNhZ2EiLCJTVUJNSVRfU0VORF9CT1giLCJwYXlsb2FkIiwiY2hhbm5lbERhdGEiLCJtZXRob2QiLCJzZW5kQm94VmFsdWVTZWxlY3RvciIsInNlbmRCb3hWYWx1ZSIsInRyaW0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7cURBRVVBLGE7c0RBV2VDLGlCOztBQVh6QixTQUFVRCxhQUFWO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNFLGlCQUFNLHdCQUFVRSw4QkFBViw0Q0FBMkI7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHdDQUFhQyxPQUFiLEVBQXdCQyxXQUF4QixnQkFBd0JBLFdBQXhCLEVBQXFDQyxNQUFyQyxnQkFBcUNBLE1BQXJDO0FBQUE7QUFDViwyQkFBTSxxQkFBT0Msd0JBQVAsQ0FBTjs7QUFEVTtBQUN6QkMsb0JBQUFBLFlBRHlCOztBQUFBLHlCQUczQkEsWUFIMkI7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFJN0IsMkJBQU0sa0JBQUksNkJBQVlBLFlBQVksQ0FBQ0MsSUFBYixFQUFaLEVBQWlDSCxNQUFqQyxFQUF5QztBQUFFRCxzQkFBQUEsV0FBVyxFQUFYQTtBQUFGLHFCQUF6QyxDQUFKLENBQU47O0FBSjZCO0FBQUE7QUFLN0IsMkJBQU0sa0JBQUksNEJBQVcsRUFBWCxDQUFKLENBQU47O0FBTDZCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBQTNCLEVBQU47O0FBREY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBV2UsU0FBVUgsaUJBQVY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ2IsaUJBQU0sZ0NBQWVELGFBQWYsQ0FBTjs7QUFEYTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSIsInNvdXJjZVJvb3QiOiJjb3JlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHB1dCwgc2VsZWN0LCB0YWtlRXZlcnkgfSBmcm9tICdyZWR1eC1zYWdhL2VmZmVjdHMnO1xuXG5pbXBvcnQgeyBTVUJNSVRfU0VORF9CT1ggfSBmcm9tICcuLi9hY3Rpb25zL3N1Ym1pdFNlbmRCb3gnO1xuaW1wb3J0IHNlbmRCb3hWYWx1ZVNlbGVjdG9yIGZyb20gJy4uL3NlbGVjdG9ycy9zZW5kQm94VmFsdWUnO1xuaW1wb3J0IHNlbmRNZXNzYWdlIGZyb20gJy4uL2FjdGlvbnMvc2VuZE1lc3NhZ2UnO1xuaW1wb3J0IHNldFNlbmRCb3ggZnJvbSAnLi4vYWN0aW9ucy9zZXRTZW5kQm94JztcbmltcG9ydCB3aGlsZUNvbm5lY3RlZCBmcm9tICcuL2VmZmVjdHMvd2hpbGVDb25uZWN0ZWQnO1xuXG5mdW5jdGlvbiogc3VibWl0U2VuZEJveCgpIHtcbiAgeWllbGQgdGFrZUV2ZXJ5KFNVQk1JVF9TRU5EX0JPWCwgZnVuY3Rpb24qICh7IHBheWxvYWQ6IHsgY2hhbm5lbERhdGEsIG1ldGhvZCB9IH0pIHtcbiAgICBjb25zdCBzZW5kQm94VmFsdWUgPSB5aWVsZCBzZWxlY3Qoc2VuZEJveFZhbHVlU2VsZWN0b3IpO1xuXG4gICAgaWYgKHNlbmRCb3hWYWx1ZSkge1xuICAgICAgeWllbGQgcHV0KHNlbmRNZXNzYWdlKHNlbmRCb3hWYWx1ZS50cmltKCksIG1ldGhvZCwgeyBjaGFubmVsRGF0YSB9KSk7XG4gICAgICB5aWVsZCBwdXQoc2V0U2VuZEJveCgnJykpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKiBzdWJtaXRTZW5kQm94U2FnYSgpIHtcbiAgeWllbGQgd2hpbGVDb25uZWN0ZWQoc3VibWl0U2VuZEJveCk7XG59XG4iXX0=
|
|
@@ -11,6 +11,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
11
11
|
|
|
12
12
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
13
|
|
|
14
|
+
var _isForbiddenPropertyName = _interopRequireDefault(require("../utils/isForbiddenPropertyName"));
|
|
15
|
+
|
|
14
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
15
17
|
|
|
16
18
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
@@ -26,8 +28,11 @@ function combineSelectors(selectors) {
|
|
|
26
28
|
|
|
27
29
|
return function (state) {
|
|
28
30
|
return Object.keys(selectors).reduce(function (combinedState, key) {
|
|
29
|
-
return
|
|
31
|
+
return (// Mitigated through denylisting.
|
|
32
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
33
|
+
(0, _isForbiddenPropertyName["default"])(key) ? combinedState : _objectSpread(_objectSpread({}, combinedState), {}, (0, _defineProperty2["default"])({}, key, selectors[key](state)))
|
|
34
|
+
);
|
|
30
35
|
}, {});
|
|
31
36
|
};
|
|
32
37
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWxlY3RvcnMvY29tYmluZVNlbGVjdG9ycy5qcyJdLCJuYW1lcyI6WyJjb21iaW5lU2VsZWN0b3JzIiwic2VsZWN0b3JzIiwiQXJyYXkiLCJpc0FycmF5Iiwic3RhdGUiLCJyZWR1Y2UiLCJjb21iaW5lZFN0YXRlIiwic2VsZWN0b3IiLCJPYmplY3QiLCJrZXlzIiwia2V5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7OztBQUVlLFNBQVNBLGdCQUFULENBQTBCQyxTQUExQixFQUFxQztBQUNsRCxNQUFJQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0YsU0FBZCxDQUFKLEVBQThCO0FBQzVCLFdBQU8sVUFBQUcsS0FBSztBQUFBLGFBQUlILFNBQVMsQ0FBQ0ksTUFBVixDQUFpQixVQUFDQyxhQUFELEVBQWdCQyxRQUFoQjtBQUFBLDZEQUFpQ0QsYUFBakMsSUFBZ0RDLFFBQVEsQ0FBQ0gsS0FBRCxDQUF4RDtBQUFBLE9BQWpCLEVBQW1GLEVBQW5GLENBQUo7QUFBQSxLQUFaO0FBQ0Q7O0FBRUQsU0FBTyxVQUFBQSxLQUFLO0FBQUEsV0FDVkksTUFBTSxDQUFDQyxJQUFQLENBQVlSLFNBQVosRUFBdUJJLE1BQXZCLENBQ0UsVUFBQ0MsYUFBRCxFQUFnQkksR0FBaEI7QUFBQSxhQUNFO0FBQ0E7QUFDQSxpREFBd0JBLEdBQXhCLElBQStCSixhQUEvQixtQ0FBb0RBLGFBQXBELDRDQUFvRUksR0FBcEUsRUFBMEVULFNBQVMsQ0FBQ1MsR0FBRCxDQUFULENBQWVOLEtBQWYsQ0FBMUU7QUFIRjtBQUFBLEtBREYsRUFLRSxFQUxGLENBRFU7QUFBQSxHQUFaO0FBUUQiLCJzb3VyY2VSb290IjoiY29yZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNGb3JiaWRkZW5Qcm9wZXJ0eU5hbWUgZnJvbSAnLi4vdXRpbHMvaXNGb3JiaWRkZW5Qcm9wZXJ0eU5hbWUnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21iaW5lU2VsZWN0b3JzKHNlbGVjdG9ycykge1xuICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3RvcnMpKSB7XG4gICAgcmV0dXJuIHN0YXRlID0+IHNlbGVjdG9ycy5yZWR1Y2UoKGNvbWJpbmVkU3RhdGUsIHNlbGVjdG9yKSA9PiBbLi4uY29tYmluZWRTdGF0ZSwgc2VsZWN0b3Ioc3RhdGUpXSwgW10pO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlID0+XG4gICAgT2JqZWN0LmtleXMoc2VsZWN0b3JzKS5yZWR1Y2UoXG4gICAgICAoY29tYmluZWRTdGF0ZSwga2V5KSA9PlxuICAgICAgICAvLyBNaXRpZ2F0ZWQgdGhyb3VnaCBkZW55bGlzdGluZy5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlY3VyaXR5L2RldGVjdC1vYmplY3QtaW5qZWN0aW9uXG4gICAgICAgIGlzRm9yYmlkZGVuUHJvcGVydHlOYW1lKGtleSkgPyBjb21iaW5lZFN0YXRlIDogeyAuLi5jb21iaW5lZFN0YXRlLCBba2V5XTogc2VsZWN0b3JzW2tleV0oc3RhdGUpIH0sXG4gICAgICB7fVxuICAgICk7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineActivity.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineActivity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineActivity.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineActivity.ts"],"names":[],"mappings":"AAIA,aAAK,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAElF,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineAnimationCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineAnimationCard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineAnimationCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineAnimationCard.ts"],"names":[],"mappings":"AAEA,aAAK,uBAAuB,GAAG,GAAG,CAAC;AAEnC,eAAe,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineAttachment.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineAttachment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineAttachment.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineAttachment.ts"],"names":[],"mappings":"AAEA,aAAK,oBAAoB,GAAG,GAAG,CAAC;AAEhC,eAAe,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineAudioCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineAudioCard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineAudioCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineAudioCard.ts"],"names":[],"mappings":"AAEA,aAAK,mBAAmB,GAAG,GAAG,CAAC;AAE/B,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineHeroCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineHeroCard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineHeroCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineHeroCard.ts"],"names":[],"mappings":"AAEA,aAAK,kBAAkB,GAAG,GAAG,CAAC;AAE9B,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineJSBotConnection.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineJSBotConnection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineJSBotConnection.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineJSBotConnection.ts"],"names":[],"mappings":"AAEA,aAAK,yBAAyB,GAAG,GAAG,CAAC;AAErC,eAAe,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineOAuthCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineOAuthCard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineOAuthCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineOAuthCard.ts"],"names":[],"mappings":"AAEA,aAAK,mBAAmB,GAAG,GAAG,CAAC;AAE/B,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineReceiptCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineReceiptCard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineReceiptCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineReceiptCard.ts"],"names":[],"mappings":"AAEA,aAAK,qBAAqB,GAAG,GAAG,CAAC;AAEjC,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineSignInCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineSignInCard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineSignInCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineSignInCard.ts"],"names":[],"mappings":"AAEA,aAAK,oBAAoB,GAAG,GAAG,CAAC;AAEhC,eAAe,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineSuggestedAction.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineSuggestedAction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineSuggestedAction.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineSuggestedAction.ts"],"names":[],"mappings":"AAEA,aAAK,yBAAyB,GAAG,GAAG,CAAC;AAErC,eAAe,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineThumbnailCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineThumbnailCard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineThumbnailCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineThumbnailCard.ts"],"names":[],"mappings":"AAEA,aAAK,uBAAuB,GAAG,GAAG,CAAC;AAEnC,eAAe,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectLineVideoCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineVideoCard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DirectLineVideoCard.d.ts","sourceRoot":"","sources":["../../../src/types/external/DirectLineVideoCard.ts"],"names":[],"mappings":"AAEA,aAAK,mBAAmB,GAAG,GAAG,CAAC;AAE/B,eAAe,mBAAmB,CAAC"}
|
package/lib/utils/deleteKey.js
CHANGED
|
@@ -17,14 +17,13 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
|
|
|
17
17
|
|
|
18
18
|
function _toPrimitive(input, hint) { if ((0, _typeof2["default"])(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if ((0, _typeof2["default"])(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
19
19
|
|
|
20
|
-
/* eslint no-unused-vars: ["error", { "varsIgnorePattern": "^deleted$" }] */
|
|
21
20
|
function deleteKey(map, key) {
|
|
22
21
|
if (!map) {
|
|
23
22
|
return map;
|
|
24
23
|
}
|
|
25
24
|
|
|
26
|
-
var
|
|
25
|
+
var _deleted = map[key],
|
|
27
26
|
nextMap = (0, _objectWithoutProperties2["default"])(map, [key].map(_toPropertyKey));
|
|
28
27
|
return nextMap;
|
|
29
28
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kZWxldGVLZXkuanMiXSwibmFtZXMiOlsiZGVsZXRlS2V5IiwibWFwIiwia2V5IiwiX2RlbGV0ZWQiLCJuZXh0TWFwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQWUsU0FBU0EsU0FBVCxDQUFtQkMsR0FBbkIsRUFBd0JDLEdBQXhCLEVBQTZCO0FBQzFDLE1BQUksQ0FBQ0QsR0FBTCxFQUFVO0FBQ1IsV0FBT0EsR0FBUDtBQUNEOztBQUVELE1BQWVFLFFBQWYsR0FBd0NGLEdBQXhDLENBQVNDLEdBQVQ7QUFBQSxNQUE0QkUsT0FBNUIsNkNBQXdDSCxHQUF4QyxHQUFTQyxHQUFUO0FBRUEsU0FBT0UsT0FBUDtBQUNEIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGVsZXRlS2V5KG1hcCwga2V5KSB7XG4gIGlmICghbWFwKSB7XG4gICAgcmV0dXJuIG1hcDtcbiAgfVxuXG4gIGNvbnN0IHsgW2tleV06IF9kZWxldGVkLCAuLi5uZXh0TWFwIH0gPSBtYXA7XG5cbiAgcmV0dXJuIG5leHRNYXA7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isForbiddenPropertyName.d.ts","sourceRoot":"","sources":["../../src/utils/isForbiddenPropertyName.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAE7E"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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"] = isForbiddenPropertyName;
|
|
9
|
+
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
|
|
12
|
+
var FORBIDDEN_PROPERTY_NAMES;
|
|
13
|
+
|
|
14
|
+
function getForbiddenPropertyNames() {
|
|
15
|
+
return FORBIDDEN_PROPERTY_NAMES || (FORBIDDEN_PROPERTY_NAMES = Object.freeze(Array.from(new Set([].concat((0, _toConsumableArray2["default"])(Object.getOwnPropertyNames(Object.prototype)), ['prototype'])))));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function isForbiddenPropertyName(propertyName) {
|
|
19
|
+
return getForbiddenPropertyNames().includes(propertyName);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pc0ZvcmJpZGRlblByb3BlcnR5TmFtZS50cyJdLCJuYW1lcyI6WyJGT1JCSURERU5fUFJPUEVSVFlfTkFNRVMiLCJnZXRGb3JiaWRkZW5Qcm9wZXJ0eU5hbWVzIiwiT2JqZWN0IiwiZnJlZXplIiwiQXJyYXkiLCJmcm9tIiwiU2V0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInByb3RvdHlwZSIsImlzRm9yYmlkZGVuUHJvcGVydHlOYW1lIiwicHJvcGVydHlOYW1lIiwiaW5jbHVkZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsSUFBSUEsd0JBQUo7O0FBRUEsU0FBU0MseUJBQVQsR0FBK0M7QUFDN0MsU0FDRUQsd0JBQXdCLEtBQ3ZCQSx3QkFBd0IsR0FBR0UsTUFBTSxDQUFDQyxNQUFQLENBQzFCQyxLQUFLLENBQUNDLElBQU4sQ0FDRSxJQUFJQyxHQUFKLCtDQWNLSixNQUFNLENBQUNLLG1CQUFQLENBQTJCTCxNQUFNLENBQUNNLFNBQWxDLENBZEwsSUFnQkUsV0FoQkYsR0FERixDQUQwQixDQURKLENBRDFCO0FBeUJEOztBQUVjLFNBQVNDLHVCQUFULENBQWlDQyxZQUFqQyxFQUFnRTtBQUM3RSxTQUFPVCx5QkFBeUIsR0FBR1UsUUFBNUIsQ0FBcUNELFlBQXJDLENBQVA7QUFDRCIsInNvdXJjZVJvb3QiOiJjb3JlOi8vLyIsInNvdXJjZXNDb250ZW50IjpbImxldCBGT1JCSURERU5fUFJPUEVSVFlfTkFNRVM7XG5cbmZ1bmN0aW9uIGdldEZvcmJpZGRlblByb3BlcnR5TmFtZXMoKTogc3RyaW5nW10ge1xuICByZXR1cm4gKFxuICAgIEZPUkJJRERFTl9QUk9QRVJUWV9OQU1FUyB8fFxuICAgIChGT1JCSURERU5fUFJPUEVSVFlfTkFNRVMgPSBPYmplY3QuZnJlZXplKFxuICAgICAgQXJyYXkuZnJvbShcbiAgICAgICAgbmV3IFNldChbXG4gICAgICAgICAgLy8gQXMtb2Ygd3JpdGluZywgYE9iamVjdC5wcm90b3R5cGVgIGluY2x1ZGVzOlxuICAgICAgICAgIC8vICAgX19kZWZpbmVHZXR0ZXJfX1xuICAgICAgICAgIC8vICAgX19kZWZpbmVTZXR0ZXJfX1xuICAgICAgICAgIC8vICAgX19sb29rdXBHZXR0ZXJfX1xuICAgICAgICAgIC8vICAgX19sb29rdXBTZXR0ZXJcbiAgICAgICAgICAvLyAgIF9fcHJvdG9fX1xuICAgICAgICAgIC8vICAgY29uc3RydWN0b3JcbiAgICAgICAgICAvLyAgIGhhc093blByb3BlcnR5XG4gICAgICAgICAgLy8gICBpc1Byb3RvdHlwZU9mXG4gICAgICAgICAgLy8gICBwcm9wZXJ0eUlzRW51bWVyYWJsZVxuICAgICAgICAgIC8vICAgdG9Mb2NhbGVTdHJpbmdcbiAgICAgICAgICAvLyAgIHRvU3RyaW5nXG4gICAgICAgICAgLy8gICB2YWx1ZU9mXG4gICAgICAgICAgLi4uT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoT2JqZWN0LnByb3RvdHlwZSksXG5cbiAgICAgICAgICAncHJvdG90eXBlJ1xuICAgICAgICBdKVxuICAgICAgKVxuICAgICkpXG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzRm9yYmlkZGVuUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRGb3JiaWRkZW5Qcm9wZXJ0eU5hbWVzKCkuaW5jbHVkZXMocHJvcGVydHlOYW1lKTtcbn1cbiJdfQ==
|
|
@@ -9,9 +9,7 @@ exports["default"] = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _Mime = _interopRequireDefault(require("mime/Mime"));
|
|
11
11
|
|
|
12
|
-
/* eslint no-undef: "off"*/
|
|
13
|
-
|
|
14
|
-
/* eslint node/global-require: "off"*/
|
|
12
|
+
/* eslint no-undef: "off" */
|
|
15
13
|
// We adopted the work from mime-wrapper, at https://github.com/marlon360/mime-wrapper.
|
|
16
14
|
// This file wraps the mime library constructor to include '.json' types. This is needed
|
|
17
15
|
// to support Angular CLI web projects, in which the webpack.config files are hidden away
|
|
@@ -46,4 +44,4 @@ var _Mime = _interopRequireDefault(require("mime/Mime"));
|
|
|
46
44
|
var _default = new _Mime["default"](require('mime/types/standard'), require('mime/types/other'));
|
|
47
45
|
|
|
48
46
|
exports["default"] = _default;
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9taW1lLXdyYXBwZXIuanMiXSwibmFtZXMiOlsiTWltZSIsInJlcXVpcmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQW9DQTs7QUFwQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtlQUllLElBQUlBLGdCQUFKLENBQVNDLE9BQU8sQ0FBQyxxQkFBRCxDQUFoQixFQUF5Q0EsT0FBTyxDQUFDLGtCQUFELENBQWhELEMiLCJzb3VyY2VSb290IjoiY29yZTovLy8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tdW5kZWY6IFwib2ZmXCIgKi9cblxuLy8gV2UgYWRvcHRlZCB0aGUgd29yayBmcm9tIG1pbWUtd3JhcHBlciwgYXQgaHR0cHM6Ly9naXRodWIuY29tL21hcmxvbjM2MC9taW1lLXdyYXBwZXIuXG5cbi8vIFRoaXMgZmlsZSB3cmFwcyB0aGUgbWltZSBsaWJyYXJ5IGNvbnN0cnVjdG9yIHRvIGluY2x1ZGUgJy5qc29uJyB0eXBlcy4gVGhpcyBpcyBuZWVkZWRcbi8vIHRvIHN1cHBvcnQgQW5ndWxhciBDTEkgd2ViIHByb2plY3RzLCBpbiB3aGljaCB0aGUgd2VicGFjay5jb25maWcgZmlsZXMgYXJlIGhpZGRlbiBhd2F5XG4vLyBmcm9tIHRoZSB1c2VyLCBhbmQgZG8gbm90IHN1cHBvcnQgLmpzb24gZmlsZSBleHRlbnNpb24gbW9kdWxlIHJlc29sdXRpb25zLlxuLy9cbi8vIFJlZmVyIHRvIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qc2h0dHAvbWltZS10eXBlcy9pc3N1ZXMvNTAjaXNzdWVjb21tZW50LTM5MDkzMjY3OFxuLy8gYW5kIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9icm9vZmEvbm9kZS1taW1lL2lzc3Vlcy8yMDguXG4vL1xuLy8gVGhpcyBmaWxlIG1heSBuZWVkIHRvIGNoYW5nZSBpZiB0aGUgbWltZSBsaWJyYXJ5IGlzIGJ1bXBlZCBhIG1ham9yIHRoYXQgbWF5IGNhdXNlIGFcbi8vIGJyZWFraW5nIGNoYW5nZSwgYXMgaXQgcmVsaWVzIG9uIHRoZSBpbnRlcm5hbCBsaWJyYXJ5IGZpbGUgcGxhY2VtZW50LlxuXG4vLyBNSVQgTGljZW5zZVxuLy9cbi8vIENvcHlyaWdodCAoYykgMjAxOCBNYXJsb24gTMO8Y2tlcnRcbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4vLyBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbi8vIFNPRlRXQVJFLlxuXG5pbXBvcnQgTWltZSBmcm9tICdtaW1lL01pbWUnO1xuXG5leHBvcnQgZGVmYXVsdCBuZXcgTWltZShyZXF1aXJlKCdtaW1lL3R5cGVzL3N0YW5kYXJkJyksIHJlcXVpcmUoJ21pbWUvdHlwZXMvb3RoZXInKSk7XG4iXX0=
|
package/lib/utils/uniqueID.js
CHANGED
|
@@ -13,4 +13,4 @@ var _mathRandom = _interopRequireDefault(require("math-random"));
|
|
|
13
13
|
function uniqueID() {
|
|
14
14
|
return Date.now() + (0, _mathRandom["default"])().toString(36).substr(2);
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy91bmlxdWVJRC5qcyJdLCJuYW1lcyI6WyJ1bmlxdWVJRCIsIkRhdGUiLCJub3ciLCJ0b1N0cmluZyIsInN1YnN0ciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUE7O0FBRkE7QUFJZSxTQUFTQSxRQUFULEdBQW9CO0FBQ2pDLFNBQU9DLElBQUksQ0FBQ0MsR0FBTCxLQUFhLDhCQUFTQyxRQUFULENBQWtCLEVBQWxCLEVBQXNCQyxNQUF0QixDQUE2QixDQUE3QixDQUFwQjtBQUNEIiwic291cmNlUm9vdCI6ImNvcmU6Ly8vIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLW1hZ2ljLW51bWJlcnM6IFtcImVycm9yXCIsIHsgXCJpZ25vcmVcIjogWzIsIDM2XSB9XSAqL1xuXG5pbXBvcnQgcmFuZG9tIGZyb20gJ21hdGgtcmFuZG9tJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdW5pcXVlSUQoKSB7XG4gIHJldHVybiBEYXRlLm5vdygpICsgcmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyKTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "botframework-webchat-core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.15.0",
|
|
4
4
|
"description": "Core of botframework-webchat",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -22,9 +22,8 @@
|
|
|
22
22
|
"build:typescript": "tsc --project src/tsconfig.json",
|
|
23
23
|
"eslint": "npm run precommit",
|
|
24
24
|
"precommit": "npm run precommit:eslint -- src && npm run precommit:typecheck",
|
|
25
|
-
"precommit:eslint": "eslint",
|
|
25
|
+
"precommit:eslint": "../../node_modules/.bin/eslint --report-unused-disable-directives --max-warnings 0",
|
|
26
26
|
"precommit:typecheck": "tsc --project ./src --emitDeclarationOnly false --esModuleInterop true --noEmit --pretty false",
|
|
27
|
-
"prettier": "prettier --check src/**/*.{js,ts,tsx}",
|
|
28
27
|
"prestart": "npm run build:babel",
|
|
29
28
|
"start": "concurrently --kill-others --names \"babel,tsc\" \"npm run start:babel\" \"npm run start:typescript\"",
|
|
30
29
|
"start:babel": "npm run build:babel -- --skip-initial-build --watch",
|
|
@@ -37,25 +36,19 @@
|
|
|
37
36
|
"@babel/preset-env": "^7.14.7",
|
|
38
37
|
"@babel/preset-typescript": "^7.14.5",
|
|
39
38
|
"@types/node": "^16.3.1",
|
|
40
|
-
"@typescript-eslint/eslint-plugin": "^4.28.3",
|
|
41
|
-
"@typescript-eslint/parser": "^4.28.3",
|
|
42
39
|
"babel-plugin-istanbul": "^6.0.0",
|
|
43
40
|
"babel-plugin-transform-inline-environment-variables": "^0.4.3",
|
|
44
|
-
"botframework-directlinejs": "0.15.
|
|
45
|
-
"concurrently": "^6.
|
|
46
|
-
"eslint": "^7.30.0",
|
|
47
|
-
"eslint-plugin-node": "^11.1.0",
|
|
48
|
-
"eslint-plugin-prettier": "^3.4.0",
|
|
49
|
-
"prettier": "^2.3.2",
|
|
41
|
+
"botframework-directlinejs": "0.15.1",
|
|
42
|
+
"concurrently": "^6.3.0",
|
|
50
43
|
"typescript": "^4.3.5"
|
|
51
44
|
},
|
|
52
45
|
"dependencies": {
|
|
53
|
-
"@babel/runtime": "7.
|
|
46
|
+
"@babel/runtime": "7.15.4",
|
|
54
47
|
"jwt-decode": "3.1.2",
|
|
55
48
|
"math-random": "2.0.1",
|
|
56
49
|
"mime": "2.5.2",
|
|
57
50
|
"p-defer": "4.0.0",
|
|
58
|
-
"p-defer-es5": "2.0.
|
|
51
|
+
"p-defer-es5": "2.0.1",
|
|
59
52
|
"redux": "4.0.5",
|
|
60
53
|
"redux-devtools-extension": "2.13.9",
|
|
61
54
|
"redux-saga": "1.1.3",
|
|
@@ -36,7 +36,7 @@ describe('observeOnce', () => {
|
|
|
36
36
|
|
|
37
37
|
test('should unsubscribe after first next', () =>
|
|
38
38
|
new Promise((resolve, reject) => {
|
|
39
|
-
runSaga(inputOutput, function*() {
|
|
39
|
+
runSaga(inputOutput, function* () {
|
|
40
40
|
try {
|
|
41
41
|
const [result] = yield all([observeOnce(observable), call(() => onNext('Hello, World!'))]);
|
|
42
42
|
|
|
@@ -53,7 +53,7 @@ describe('observeOnce', () => {
|
|
|
53
53
|
|
|
54
54
|
test('should unsubscribe and throw after first error', () =>
|
|
55
55
|
new Promise((resolve, reject) => {
|
|
56
|
-
runSaga(inputOutput, function*() {
|
|
56
|
+
runSaga(inputOutput, function* () {
|
|
57
57
|
try {
|
|
58
58
|
try {
|
|
59
59
|
yield all([observeOnce(observable), call(() => onError(new Error('Hello, World!')))]);
|
|
@@ -75,7 +75,7 @@ describe('observeOnce', () => {
|
|
|
75
75
|
|
|
76
76
|
test('should unsubscribe after complete', () =>
|
|
77
77
|
new Promise((resolve, reject) => {
|
|
78
|
-
runSaga(inputOutput, function*() {
|
|
78
|
+
runSaga(inputOutput, function* () {
|
|
79
79
|
try {
|
|
80
80
|
const [result] = yield all([observeOnce(observable), call(() => onComplete())]);
|
|
81
81
|
|
|
@@ -4,12 +4,18 @@ const SET_NOTIFICATION = 'WEB_CHAT/SET_NOTIFICATION';
|
|
|
4
4
|
|
|
5
5
|
export default function setNotification({ alt, data, id, level, message }) {
|
|
6
6
|
if (!id || typeof id !== 'string') {
|
|
7
|
-
console.warn(
|
|
7
|
+
console.warn(
|
|
8
|
+
'botframework-webchat: The "id" argument passed to "setNotification" must be a string; defaulting to a random value.'
|
|
9
|
+
);
|
|
10
|
+
|
|
8
11
|
id = uniqueID();
|
|
9
12
|
}
|
|
10
13
|
|
|
11
14
|
if (!level || typeof level !== 'string') {
|
|
12
|
-
console.warn(
|
|
15
|
+
console.warn(
|
|
16
|
+
'botframework-webchat: The "level" argument passed to "setNotification" must be a string; defaulting to "info".'
|
|
17
|
+
);
|
|
18
|
+
|
|
13
19
|
level = 'info';
|
|
14
20
|
}
|
|
15
21
|
|
package/src/createStore.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
2
|
-
// This is for the racing between sagaMiddleware and store
|
|
3
|
-
/* eslint no-use-before-define: "off" */
|
|
4
|
-
|
|
5
1
|
import { applyMiddleware, createStore as createReduxStore, Store } from 'redux';
|
|
6
2
|
import { composeWithDevTools } from 'redux-devtools-extension';
|
|
7
3
|
import createSagaMiddleware from 'redux-saga';
|
|
@@ -30,6 +26,8 @@ function createEnhancerAndSagaMiddleware(getStore, ...middlewares) {
|
|
|
30
26
|
}
|
|
31
27
|
|
|
32
28
|
export default function createStore(initialState?, ...middlewares): Store {
|
|
29
|
+
// We are sure the "getStore" (first argument) is not called on "createEnhancerAndSagaMiddleware()".
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
33
31
|
const { enhancer, sagaMiddleware } = createEnhancerAndSagaMiddleware(() => store, ...middlewares);
|
|
34
32
|
const store = createReduxStore(reducer, initialState || {}, enhancer);
|
|
35
33
|
|
|
@@ -39,6 +37,8 @@ export default function createStore(initialState?, ...middlewares): Store {
|
|
|
39
37
|
}
|
|
40
38
|
|
|
41
39
|
export function withDevTools(initialState?, ...middlewares): Store {
|
|
40
|
+
// We are sure the "getStore" (first argument) is not called on "createEnhancerAndSagaMiddleware()".
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
42
42
|
const { enhancer, sagaMiddleware } = createEnhancerAndSagaMiddleware(() => store, ...middlewares);
|
|
43
43
|
const store = createReduxStore(reducer, initialState || {}, composeWithDevTools(enhancer));
|
|
44
44
|
|
package/src/index.ts
CHANGED
|
@@ -19,6 +19,7 @@ import DirectLineVideoCard from './types/external/DirectLineVideoCard';
|
|
|
19
19
|
import disconnect from './actions/disconnect';
|
|
20
20
|
import dismissNotification from './actions/dismissNotification';
|
|
21
21
|
import emitTypingIndicator from './actions/emitTypingIndicator';
|
|
22
|
+
import isForbiddenPropertyName from './utils/isForbiddenPropertyName';
|
|
22
23
|
import markActivity from './actions/markActivity';
|
|
23
24
|
import OneOrMany from './types/OneOrMany';
|
|
24
25
|
import postActivity from './actions/postActivity';
|
|
@@ -54,6 +55,7 @@ export {
|
|
|
54
55
|
disconnect,
|
|
55
56
|
dismissNotification,
|
|
56
57
|
emitTypingIndicator,
|
|
58
|
+
isForbiddenPropertyName,
|
|
57
59
|
markActivity,
|
|
58
60
|
postActivity,
|
|
59
61
|
sendEvent,
|
|
@@ -3,6 +3,7 @@ import updateIn from 'simple-update-in';
|
|
|
3
3
|
import { DISMISS_NOTIFICATION } from '../actions/dismissNotification';
|
|
4
4
|
import { SAGA_ERROR } from '../actions/sagaError';
|
|
5
5
|
import { SET_NOTIFICATION } from '../actions/setNotification';
|
|
6
|
+
import isForbiddenPropertyName from '../utils/isForbiddenPropertyName';
|
|
6
7
|
|
|
7
8
|
const DEFAULT_STATE = {};
|
|
8
9
|
|
|
@@ -15,23 +16,28 @@ export default function notifications(state = DEFAULT_STATE, { payload, type })
|
|
|
15
16
|
state = updateIn(state, ['connectivitystatus', 'message'], () => 'javascripterror');
|
|
16
17
|
} else if (type === SET_NOTIFICATION) {
|
|
17
18
|
const { alt, data, id, level, message } = payload;
|
|
18
|
-
const notification = state[id];
|
|
19
19
|
|
|
20
|
-
if (
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
20
|
+
if (!isForbiddenPropertyName(id)) {
|
|
21
|
+
// Mitigated through denylisting.
|
|
22
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
23
|
+
const notification = state[id];
|
|
24
|
+
|
|
25
|
+
if (
|
|
26
|
+
!notification ||
|
|
27
|
+
alt !== notification.alt ||
|
|
28
|
+
!Object.is(data, notification.data) ||
|
|
29
|
+
level !== notification.level ||
|
|
30
|
+
message !== notification.message
|
|
31
|
+
) {
|
|
32
|
+
state = updateIn(state, [id], () => ({
|
|
33
|
+
alt,
|
|
34
|
+
data,
|
|
35
|
+
id,
|
|
36
|
+
level,
|
|
37
|
+
message,
|
|
38
|
+
timestamp: now
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
35
41
|
}
|
|
36
42
|
}
|
|
37
43
|
|
|
@@ -50,51 +50,52 @@ function* waitForActivityId(replyToId, initialActivities) {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
function* queueIncomingActivity({ userID }) {
|
|
53
|
-
yield takeEveryAndSelect(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
53
|
+
yield takeEveryAndSelect(
|
|
54
|
+
QUEUE_INCOMING_ACTIVITY,
|
|
55
|
+
activitiesSelector,
|
|
56
|
+
function* queueIncomingActivity({ payload: { activity } }, initialActivities) {
|
|
57
|
+
// This is for resolving an accessibility issue.
|
|
58
|
+
// If the incoming activity has "replyToId" field, hold on it until the activity replied to is in the transcript, then release this one.
|
|
59
|
+
const { replyToId } = activity;
|
|
60
|
+
const initialBotActivities = initialActivities.filter(({ from: { role } }) => role === 'bot');
|
|
61
|
+
|
|
62
|
+
// To speed up the first activity render time, we do not delay the first activity from the bot.
|
|
63
|
+
// Even if it is the first activity from the bot, the bot might be "replying" to the "conversationUpdate" event.
|
|
64
|
+
// Thus, the "replyToId" will always be there even it is the first activity in the conversation.
|
|
65
|
+
if (replyToId && initialBotActivities.length) {
|
|
66
|
+
// Either the activity replied to is in the transcript or after timeout.
|
|
67
|
+
const result = yield race({
|
|
68
|
+
_: waitForActivityId(replyToId, initialActivities),
|
|
69
|
+
timeout: call(sleep, REPLY_TIMEOUT)
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
if ('timeout' in result) {
|
|
73
|
+
console.warn(
|
|
74
|
+
`botframework-webchat: Timed out while waiting for activity "${replyToId}" which activity "${activity.id}" is replying to.`,
|
|
75
|
+
{
|
|
76
|
+
activity,
|
|
77
|
+
replyToId
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
}
|
|
80
81
|
}
|
|
81
|
-
}
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
yield put(incomingActivity(activity));
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
// Update suggested actions
|
|
86
|
+
// TODO: [P3] We could put this logic inside reducer to minimize number of actions dispatched.
|
|
87
|
+
const messageActivities = yield select(activitiesOfType('message'));
|
|
88
|
+
const lastMessageActivity = messageActivities[messageActivities.length - 1];
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
if (activityFromBot(lastMessageActivity)) {
|
|
91
|
+
const { suggestedActions: { actions, to } = {} } = lastMessageActivity;
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
// If suggested actions is not destined to anyone, or is destined to the user, show it.
|
|
94
|
+
// In other words, if suggested actions is destined to someone else, don't show it.
|
|
95
|
+
yield put(setSuggestedActions(to && to.length && !to.includes(userID) ? null : actions));
|
|
96
|
+
}
|
|
96
97
|
}
|
|
97
|
-
|
|
98
|
+
);
|
|
98
99
|
}
|
|
99
100
|
|
|
100
101
|
export default function* queueIncomingActivitySaga() {
|
|
@@ -3,7 +3,6 @@ import postActivity from '../actions/postActivity';
|
|
|
3
3
|
import { SEND_MESSAGE_BACK } from '../actions/sendMessageBack';
|
|
4
4
|
import whileConnected from './effects/whileConnected';
|
|
5
5
|
|
|
6
|
-
|
|
7
6
|
// https://github.com/microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#message-back
|
|
8
7
|
function* postActivityWithMessageBack({ payload: { displayText, text, value } }) {
|
|
9
8
|
yield put(
|
|
@@ -34,7 +34,7 @@ function* sendTypingIndicatorOnSetSendBox() {
|
|
|
34
34
|
// When the user type, and then post the activity at t = 1500, we still have a pending typing indicator at t = 3000.
|
|
35
35
|
// This code is to cancel the typing indicator at t = 3000.
|
|
36
36
|
(type === POST_ACTIVITY && payload.activity.type !== 'typing'),
|
|
37
|
-
function*({ payload, type }) {
|
|
37
|
+
function* ({ payload, type }) {
|
|
38
38
|
if (type === SET_SEND_BOX) {
|
|
39
39
|
const interval = SEND_INTERVAL - Date.now() + lastSend;
|
|
40
40
|
|
|
@@ -16,7 +16,7 @@ function* speakActivityAndStartDictateOnIncomingActivityFromOthers({ userID }) {
|
|
|
16
16
|
// In Direct Line Speech, we do not know the user ID, but "role" is filled with "bot" or "user".
|
|
17
17
|
// Here, we do two checks: the speakable activity must not have user ID, and must not have role === 'user'
|
|
18
18
|
type === INCOMING_ACTIVITY && payload.activity.from.id !== userID && payload.activity.from.role !== 'user',
|
|
19
|
-
function*({ payload: { activity } }) {
|
|
19
|
+
function* ({ payload: { activity } }) {
|
|
20
20
|
const shouldSpeakIncomingActivity = yield select(shouldSpeakIncomingActivitySelector);
|
|
21
21
|
const shouldSpeak = speakableActivity(activity) && shouldSpeakIncomingActivity;
|
|
22
22
|
|
|
@@ -8,7 +8,7 @@ function* startSpeakActivityOnPostActivity() {
|
|
|
8
8
|
yield takeEvery(
|
|
9
9
|
({ meta, payload, type }) =>
|
|
10
10
|
type === POST_ACTIVITY_PENDING && meta.method === 'speech' && payload.activity.type === 'message',
|
|
11
|
-
function*() {
|
|
11
|
+
function* () {
|
|
12
12
|
yield put(startSpeakingActivity());
|
|
13
13
|
}
|
|
14
14
|
);
|
|
@@ -14,7 +14,7 @@ function* stopSpeakingActivityOnInput() {
|
|
|
14
14
|
// So, right now, we are using best-effort by listening to POST_ACTIVITY_PENDING with a "message" event
|
|
15
15
|
// We filter out speech because we will call startSpeakingActivity() for POST_ACTIVITY_PENDING dispatched by speech
|
|
16
16
|
(type === POST_ACTIVITY_PENDING && meta.method !== 'speech' && payload.activity.type === 'message'),
|
|
17
|
-
function*() {
|
|
17
|
+
function* () {
|
|
18
18
|
yield put(stopSpeakingActivity());
|
|
19
19
|
}
|
|
20
20
|
);
|
|
@@ -7,7 +7,7 @@ import setSendBox from '../actions/setSendBox';
|
|
|
7
7
|
import whileConnected from './effects/whileConnected';
|
|
8
8
|
|
|
9
9
|
function* submitSendBox() {
|
|
10
|
-
yield takeEvery(SUBMIT_SEND_BOX, function*({ payload: { channelData, method } }) {
|
|
10
|
+
yield takeEvery(SUBMIT_SEND_BOX, function* ({ payload: { channelData, method } }) {
|
|
11
11
|
const sendBoxValue = yield select(sendBoxValueSelector);
|
|
12
12
|
|
|
13
13
|
if (sendBoxValue) {
|