botframework-webchat-core 4.18.1 → 4.19.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/LICENSE +21 -0
- package/activity.js +3 -0
- package/boot/deprecated/activity.js +7 -0
- package/boot/deprecated/activity.mjs +5 -0
- package/boot/deprecated/graph.js +7 -0
- package/boot/deprecated/graph.mjs +5 -0
- package/boot/deprecated/internal.js +7 -0
- package/boot/deprecated/internal.mjs +5 -0
- package/dist/WebChatActivity-CYqxBG_4.d.mts +271 -0
- package/dist/WebChatActivity-CYqxBG_4.d.ts +271 -0
- package/dist/_dtsroll-chunks/B7Whm73Q-tagged.d.ts +71 -0
- package/dist/_dtsroll-chunks/C-MxR98A-botframework-webchat-core-debug-api.d.ts +135 -0
- package/dist/_dtsroll-chunks/CAquHfZK-botframework-webchat-base.utils.d.ts +17 -0
- package/dist/_dtsroll-chunks/CDVed0Q--botframework-webchat-core.org-schema.d.ts +601 -0
- package/dist/_dtsroll-chunks/vlDgTKWF-botframework-webchat-core-graph.d.ts +239 -0
- package/dist/botframework-webchat-core.activity.d.mts +23 -0
- package/dist/botframework-webchat-core.activity.d.ts +23 -0
- package/dist/botframework-webchat-core.activity.js +2 -0
- package/dist/botframework-webchat-core.activity.js.map +1 -0
- package/dist/botframework-webchat-core.activity.mjs +2 -0
- package/dist/botframework-webchat-core.activity.mjs.map +1 -0
- package/dist/botframework-webchat-core.d.mts +267 -662
- package/dist/botframework-webchat-core.d.ts +556 -0
- package/dist/botframework-webchat-core.graph.d.mts +9 -0
- package/dist/botframework-webchat-core.graph.d.ts +9 -0
- package/dist/botframework-webchat-core.graph.js +2 -0
- package/dist/botframework-webchat-core.graph.js.map +1 -0
- package/dist/botframework-webchat-core.graph.mjs +2 -0
- package/dist/botframework-webchat-core.graph.mjs.map +1 -0
- package/dist/botframework-webchat-core.internal.d.mts +61 -0
- package/dist/botframework-webchat-core.internal.d.ts +61 -0
- package/dist/botframework-webchat-core.internal.js +2 -0
- package/dist/botframework-webchat-core.internal.js.map +1 -0
- package/dist/botframework-webchat-core.internal.mjs +2 -0
- package/dist/botframework-webchat-core.internal.mjs.map +1 -0
- package/dist/botframework-webchat-core.js +2 -0
- package/dist/botframework-webchat-core.js.map +1 -0
- package/dist/botframework-webchat-core.json-ld.d.mts +2 -0
- package/dist/botframework-webchat-core.json-ld.d.ts +2 -0
- package/dist/botframework-webchat-core.json-ld.js +2 -0
- package/dist/botframework-webchat-core.json-ld.js.map +1 -0
- package/dist/botframework-webchat-core.json-ld.mjs +2 -0
- package/dist/botframework-webchat-core.json-ld.mjs.map +1 -0
- package/dist/botframework-webchat-core.mjs +1 -2
- package/dist/botframework-webchat-core.mjs.map +1 -1
- package/dist/botframework-webchat-core.org-schema.d.mts +2 -0
- package/dist/botframework-webchat-core.org-schema.d.ts +2 -0
- package/dist/botframework-webchat-core.org-schema.js +2 -0
- package/dist/botframework-webchat-core.org-schema.js.map +1 -0
- package/dist/botframework-webchat-core.org-schema.mjs +2 -0
- package/dist/botframework-webchat-core.org-schema.mjs.map +1 -0
- package/dist/chunk-A4GEFYZJ.mjs +2 -0
- package/dist/chunk-A4GEFYZJ.mjs.map +1 -0
- package/dist/chunk-HZWWJL43.mjs +2 -0
- package/dist/chunk-HZWWJL43.mjs.map +1 -0
- package/dist/chunk-ICNZKQJW.mjs +2 -0
- package/dist/chunk-ICNZKQJW.mjs.map +1 -0
- package/dist/chunk-K6E6QQMQ.js +2 -0
- package/dist/chunk-K6E6QQMQ.js.map +1 -0
- package/dist/chunk-KPT5FBH2.mjs +2 -0
- package/dist/chunk-KPT5FBH2.mjs.map +1 -0
- package/dist/chunk-LO5BZSVE.js +2 -0
- package/dist/chunk-LO5BZSVE.js.map +1 -0
- package/dist/chunk-LP2X2JTR.js +2 -0
- package/dist/chunk-LP2X2JTR.js.map +1 -0
- package/dist/chunk-RUERYYZO.js +2 -0
- package/dist/chunk-RUERYYZO.js.map +1 -0
- package/dist/chunk-XOE3AOSM.js +2 -0
- package/dist/chunk-XOE3AOSM.js.map +1 -0
- package/dist/chunk-Y6ZDNVRT.mjs +2 -0
- package/dist/chunk-Y6ZDNVRT.mjs.map +1 -0
- package/{lib/createStore.d.ts → dist/createStore-CcvouBrW.d.mts} +29 -7
- package/dist/createStore-CcvouBrW.d.ts +65 -0
- package/dist/metafile-cjs.json +1 -0
- package/dist/metafile-esm.json +1 -1
- package/graph.js +3 -0
- package/internal.js +3 -0
- package/json-ld.js +3 -0
- package/org-schema.js +3 -0
- package/package.json +147 -73
- package/src/__tests__/activityFromBot.spec.js +2 -0
- package/src/__tests__/addMetaTag.spec.js +8 -0
- package/src/__tests__/addMetaTag.spec.mjs +8 -0
- package/src/__tests__/connectSaga.spec.js +2 -0
- package/src/__tests__/deleteKey.spec.js +2 -0
- package/src/__tests__/detectSlowConnectionSaga.spec.js +3 -1
- package/src/__tests__/observeOnce.spec.js +2 -0
- package/src/__tests__/speakableActivity.spec.js +2 -0
- package/src/__tests__/uniqueID.spec.js +2 -0
- package/src/actions/clearSuggestedActions.ts +20 -0
- package/src/actions/{connect.js → connect.ts} +9 -1
- package/src/actions/muteVoiceRecording.ts +17 -0
- package/src/actions/postVoiceActivity.ts +21 -0
- package/src/actions/registerActionSink.ts +29 -0
- package/src/actions/registerVoiceHandler.ts +24 -0
- package/src/actions/{sendEvent.js → sendEvent.ts} +1 -1
- package/src/actions/{sendMessageBack.js → sendMessageBack.ts} +1 -1
- package/src/actions/{sendPostBack.js → sendPostBack.ts} +1 -1
- package/src/actions/{setDictateInterims.js → setDictateInterims.ts} +1 -1
- package/src/actions/{setDictateState.js → setDictateState.ts} +1 -1
- package/src/actions/{setLanguage.js → setLanguage.ts} +1 -1
- package/src/actions/{setSendBox.js → setSendBox.ts} +1 -1
- package/src/actions/{setSendTimeout.js → setSendTimeout.ts} +1 -1
- package/src/actions/setSendTypingIndicator.ts +1 -1
- package/src/actions/setSuggestedActions.ts +35 -0
- package/src/actions/setVoiceState.ts +21 -0
- package/src/actions/startVoiceRecording.ts +17 -0
- package/src/actions/stopVoiceRecording.ts +17 -0
- package/src/actions/{submitSendBox.js → submitSendBox.ts} +1 -1
- package/src/actions/unmuteVoiceRecording.ts +17 -0
- package/src/actions/unregisterActionSink.ts +29 -0
- package/src/actions/unregisterVoiceHandler.ts +19 -0
- package/src/boot/activity.ts +19 -0
- package/src/boot/graph.ts +18 -0
- package/src/boot/internal.ts +11 -0
- package/src/boot/json-ld.ts +6 -0
- package/src/boot/org-schema.ts +29 -0
- package/src/buildInfo.ts +9 -0
- package/src/constants/{ActivityClientState.js → ActivityClientState.ts} +3 -3
- package/src/constants/DictateState.ts +10 -0
- package/src/createPromiseQueue.js +8 -6
- package/src/createReducer.ts +28 -20
- package/src/createSagas.ts +6 -3
- package/src/createStore.ts +26 -10
- package/src/env.d.ts +12 -0
- package/src/graph/createGraphFromStore.ts +121 -0
- package/src/index.ts +62 -45
- package/src/internal/StoreDebugAPIRegistry.ts +4 -0
- package/src/internal/actions/setRawState.ts +48 -0
- package/src/internal/types/suggestedActions.ts +11 -0
- package/src/internal/types/suggestedActionsOriginActivity.ts +16 -0
- package/src/reducers/activities/combineActivitiesReducer.ts +58 -0
- package/src/reducers/activities/createGroupedActivitiesReducer.ts +297 -0
- package/src/reducers/activities/patchActivity.ts +37 -0
- package/src/reducers/activities/sort/deleteActivityByLocalId.activity.spec.ts +144 -0
- package/src/reducers/activities/sort/deleteActivityByLocalId.howTo.spec.ts +148 -0
- package/src/reducers/activities/sort/deleteActivityByLocalId.howToWithLivestream.spec.ts +248 -0
- package/src/reducers/activities/sort/deleteActivityByLocalId.livestream.spec.ts +156 -0
- package/src/reducers/activities/sort/deleteActivityByLocalId.ts +177 -0
- package/src/reducers/activities/sort/private/computePartListTimestamp.ts +9 -0
- package/src/reducers/activities/sort/private/computeSortedActivities.ts +51 -0
- package/src/reducers/activities/sort/private/getLogicalTimestamp.spec.ts +49 -0
- package/src/reducers/activities/sort/private/getLogicalTimestamp.ts +33 -0
- package/src/reducers/activities/sort/private/getPartGroupingMetadataMap.spec.ts +92 -0
- package/src/reducers/activities/sort/private/getPartGroupingMetadataMap.ts +37 -0
- package/src/reducers/activities/sort/private/insertSorted.spec.ts +106 -0
- package/src/reducers/activities/sort/private/insertSorted.ts +18 -0
- package/src/reducers/activities/sort/property/LocalId.ts +60 -0
- package/src/reducers/activities/sort/property/Position.ts +39 -0
- package/src/reducers/activities/sort/property/ReceivedAt.ts +45 -0
- package/src/reducers/activities/sort/property/SendStatus.ts +51 -0
- package/src/reducers/activities/sort/queryLocalIdByActivityId.ts +6 -0
- package/src/reducers/activities/sort/queryLocalIdByClientActivityId.ts +6 -0
- package/src/reducers/activities/sort/types.ts +80 -0
- package/src/reducers/activities/sort/updateActivityChannelData.ts +101 -0
- package/src/reducers/activities/sort/updateSendState.ts +22 -0
- package/src/reducers/activities/sort/upsert.activity.spec.ts +500 -0
- package/src/reducers/activities/sort/upsert.howTo.spec.ts +368 -0
- package/src/reducers/activities/sort/upsert.howToWithLivestream.spec.ts +384 -0
- package/src/reducers/activities/sort/upsert.livestream.spec.ts +418 -0
- package/src/reducers/activities/sort/upsert.ts +498 -0
- package/src/reducers/activities/tsconfig.json +4 -0
- package/src/reducers/createNotificationsReducer.ts +4 -4
- package/src/reducers/suggestedActions.ts +21 -0
- package/src/reducers/suggestedActionsOriginActivity.ts +24 -0
- package/src/reducers/voiceActivity.ts +102 -0
- package/src/sagas/actionSinkSaga.ts +39 -0
- package/src/sagas/observeActivitySaga.ts +51 -1
- package/src/sagas/postActivitySaga.ts +17 -10
- package/src/sagas/postVoiceActivitySaga.ts +76 -0
- package/src/sagas/queueIncomingActivitySaga.ts +10 -4
- package/src/sagas/sendMessageToPostActivitySaga.ts +4 -1
- package/src/sagas/speakActivityAndStartDictateOnIncomingActivityFromOthersSaga.js +10 -4
- package/src/sagas/startDictateOnSpeakCompleteSaga.js +3 -3
- package/src/sagas/startSpeakActivityOnPostActivitySaga.js +15 -5
- package/src/sagas/stopDictateOnCardActionSaga.js +11 -3
- package/src/sagas/stopSpeakingActivityOnInputSaga.js +22 -4
- package/src/selectors/combineSelectors.ts +1 -1
- package/src/tsconfig.json +3 -15
- package/src/types/StoreDebugAPI.ts +25 -0
- package/src/types/WebChatActivity.ts +31 -14
- package/src/types/external/DirectLineActivity.ts +1 -1
- package/src/types/external/Observable.ts +4 -1
- package/src/types/internal/GlobalScopeClock.ts +10 -10
- package/src/types/internal/ReduxState.ts +2 -0
- package/src/types/internal/WebChatOutgoingActivity.ts +1 -1
- package/src/utils/dateToLocaleISOString.chatham.spec.js +1 -2
- package/src/utils/dateToLocaleISOString.japan.spec.js +1 -2
- package/src/utils/dateToLocaleISOString.newfoundland.spec.js +1 -2
- package/src/utils/dateToLocaleISOString.pacific.spec.js +1 -2
- package/src/utils/dateToLocaleISOString.utc.spec.js +1 -3
- package/src/utils/deleteKey.ts +1 -1
- package/src/utils/getActivityLivestreamingMetadata.spec.ts +297 -0
- package/src/utils/getActivityLivestreamingMetadata.ts +197 -0
- package/src/utils/getOrgSchemaMessage.spec.ts +4 -1
- package/src/utils/getOrgSchemaMessage.ts +16 -16
- package/src/utils/onErrorResumeNext.ts +1 -1
- package/src/utils/voiceActivity/getVoiceActivityRole.spec.ts +150 -0
- package/src/utils/voiceActivity/getVoiceActivityRole.ts +16 -0
- package/src/utils/voiceActivity/getVoiceActivityText.spec.ts +100 -0
- package/src/utils/voiceActivity/getVoiceActivityText.ts +11 -0
- package/src/utils/voiceActivity/isVoiceActivity.spec.ts +202 -0
- package/src/utils/voiceActivity/isVoiceActivity.ts +21 -0
- package/src/utils/voiceActivity/isVoiceTranscriptActivity.spec.ts +224 -0
- package/src/utils/voiceActivity/isVoiceTranscriptActivity.ts +24 -0
- package/dist/botframework-webchat-core.mjs.LEGAL.txt +0 -0
- package/lib/actions/clearSuggestedActions.js +0 -15
- package/lib/actions/connect.js +0 -33
- package/lib/actions/connectionStatusUpdate.js +0 -20
- package/lib/actions/deleteActivity.d.ts +0 -13
- package/lib/actions/deleteActivity.d.ts.map +0 -1
- package/lib/actions/deleteActivity.js +0 -19
- package/lib/actions/disconnect.js +0 -21
- package/lib/actions/dismissNotification.d.ts +0 -12
- package/lib/actions/dismissNotification.d.ts.map +0 -1
- package/lib/actions/dismissNotification.js +0 -19
- package/lib/actions/emitTypingIndicator.js +0 -15
- package/lib/actions/incomingActivity.d.ts +0 -14
- package/lib/actions/incomingActivity.d.ts.map +0 -1
- package/lib/actions/incomingActivity.js +0 -19
- package/lib/actions/markActivity.d.ts +0 -17
- package/lib/actions/markActivity.d.ts.map +0 -1
- package/lib/actions/markActivity.js +0 -22
- package/lib/actions/postActivity.d.ts +0 -64
- package/lib/actions/postActivity.d.ts.map +0 -1
- package/lib/actions/postActivity.js +0 -31
- package/lib/actions/queueIncomingActivity.js +0 -18
- package/lib/actions/reconnect.js +0 -17
- package/lib/actions/sagaError.d.ts +0 -8
- package/lib/actions/sagaError.d.ts.map +0 -1
- package/lib/actions/sagaError.js +0 -15
- package/lib/actions/sendEvent.js +0 -19
- package/lib/actions/sendFiles.d.ts +0 -19
- package/lib/actions/sendFiles.d.ts.map +0 -1
- package/lib/actions/sendFiles.js +0 -20
- package/lib/actions/sendMessage.d.ts +0 -19
- package/lib/actions/sendMessage.d.ts.map +0 -1
- package/lib/actions/sendMessage.js +0 -24
- package/lib/actions/sendMessageBack.js +0 -20
- package/lib/actions/sendPostBack.js +0 -18
- package/lib/actions/setClockSkewAdjustment.js +0 -12
- package/lib/actions/setDictateInterims.js +0 -18
- package/lib/actions/setDictateState.js +0 -18
- package/lib/actions/setLanguage.js +0 -18
- package/lib/actions/setNotification.d.ts +0 -10
- package/lib/actions/setNotification.d.ts.map +0 -1
- package/lib/actions/setNotification.js +0 -37
- package/lib/actions/setReferenceGrammarID.js +0 -18
- package/lib/actions/setSendBox.js +0 -18
- package/lib/actions/setSendBoxAttachments.d.ts +0 -13
- package/lib/actions/setSendBoxAttachments.d.ts.map +0 -1
- package/lib/actions/setSendBoxAttachments.js +0 -18
- package/lib/actions/setSendTimeout.js +0 -18
- package/lib/actions/setSendTypingIndicator.d.ts +0 -11
- package/lib/actions/setSendTypingIndicator.d.ts.map +0 -1
- package/lib/actions/setSendTypingIndicator.js +0 -18
- package/lib/actions/setSuggestedActions.js +0 -20
- package/lib/actions/startDictate.js +0 -15
- package/lib/actions/startSpeakingActivity.js +0 -15
- package/lib/actions/stopDictate.js +0 -15
- package/lib/actions/stopSpeakingActivity.js +0 -15
- package/lib/actions/submitSendBox.js +0 -22
- package/lib/actions/updateConnectionStatus.js +0 -18
- package/lib/constants/ActivityClientState.js +0 -16
- package/lib/constants/DictateState.js +0 -17
- package/lib/createPromiseQueue.js +0 -30
- package/lib/createReducer.d.ts +0 -60
- package/lib/createReducer.d.ts.map +0 -1
- package/lib/createReducer.js +0 -45
- package/lib/createSagas.d.ts +0 -8
- package/lib/createSagas.d.ts.map +0 -1
- package/lib/createSagas.js +0 -112
- package/lib/createStore.d.ts.map +0 -1
- package/lib/createStore.js +0 -131
- package/lib/definitions/activityFromBot.js +0 -11
- package/lib/definitions/speakableActivity.js +0 -10
- package/lib/definitions/speakingActivity.js +0 -13
- package/lib/index.d.ts +0 -76
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -309
- package/lib/reducers/connectivityStatus.js +0 -49
- package/lib/reducers/createActivitiesReducer.d.ts +0 -12
- package/lib/reducers/createActivitiesReducer.d.ts.map +0 -1
- package/lib/reducers/createActivitiesReducer.js +0 -267
- package/lib/reducers/createInternalReducer.d.ts +0 -10
- package/lib/reducers/createInternalReducer.d.ts.map +0 -1
- package/lib/reducers/createInternalReducer.js +0 -19
- package/lib/reducers/createNotificationsReducer.d.ts +0 -11
- package/lib/reducers/createNotificationsReducer.d.ts.map +0 -1
- package/lib/reducers/createNotificationsReducer.js +0 -55
- package/lib/reducers/createTypingReducer.d.ts +0 -14
- package/lib/reducers/createTypingReducer.d.ts.map +0 -1
- package/lib/reducers/createTypingReducer.js +0 -50
- package/lib/reducers/dictateInterims.js +0 -23
- package/lib/reducers/dictateState.js +0 -38
- package/lib/reducers/language.js +0 -23
- package/lib/reducers/private/findBeforeAfter.d.ts +0 -4
- package/lib/reducers/private/findBeforeAfter.d.ts.map +0 -1
- package/lib/reducers/private/findBeforeAfter.js +0 -24
- package/lib/reducers/readyState.js +0 -23
- package/lib/reducers/referenceGrammarID.js +0 -23
- package/lib/reducers/sendBoxAttachments.d.ts +0 -9
- package/lib/reducers/sendBoxAttachments.d.ts.map +0 -1
- package/lib/reducers/sendBoxAttachments.js +0 -23
- package/lib/reducers/sendBoxValue.js +0 -23
- package/lib/reducers/sendTimeout.js +0 -23
- package/lib/reducers/sendTypingIndicator.js +0 -23
- package/lib/reducers/shouldSpeakIncomingActivity.js +0 -25
- package/lib/reducers/suggestedActions.js +0 -32
- package/lib/sagas/clearSuggestedActionsOnPostActivitySaga.js +0 -62
- package/lib/sagas/connectSaga.js +0 -445
- package/lib/sagas/connectionStatusToNotificationSaga.js +0 -107
- package/lib/sagas/connectionStatusUpdateSaga.js +0 -63
- package/lib/sagas/detectSlowConnectionSaga.d.ts +0 -5
- package/lib/sagas/detectSlowConnectionSaga.d.ts.map +0 -1
- package/lib/sagas/detectSlowConnectionSaga.js +0 -50
- package/lib/sagas/effects/forever.js +0 -19
- package/lib/sagas/effects/forkPut.js +0 -51
- package/lib/sagas/effects/observeEach.js +0 -45
- package/lib/sagas/effects/observeOnce.d.ts +0 -3
- package/lib/sagas/effects/observeOnce.d.ts.map +0 -1
- package/lib/sagas/effects/observeOnce.js +0 -42
- package/lib/sagas/effects/whileConnected.d.ts +0 -7
- package/lib/sagas/effects/whileConnected.d.ts.map +0 -1
- package/lib/sagas/effects/whileConnected.js +0 -55
- package/lib/sagas/emitTypingIndicatorToPostActivitySaga.js +0 -63
- package/lib/sagas/markAllAsSpokenOnStopSpeakActivitySaga.js +0 -78
- package/lib/sagas/observeActivitySaga.d.ts +0 -2
- package/lib/sagas/observeActivitySaga.d.ts.map +0 -1
- package/lib/sagas/observeActivitySaga.js +0 -117
- package/lib/sagas/postActivitySaga.d.ts +0 -3
- package/lib/sagas/postActivitySaga.d.ts.map +0 -1
- package/lib/sagas/postActivitySaga.js +0 -264
- package/lib/sagas/queueIncomingActivitySaga.d.ts +0 -3
- package/lib/sagas/queueIncomingActivitySaga.d.ts.map +0 -1
- package/lib/sagas/queueIncomingActivitySaga.js +0 -197
- package/lib/sagas/sendEventToPostActivitySaga.js +0 -68
- package/lib/sagas/sendFilesToPostActivitySaga.js +0 -85
- package/lib/sagas/sendMessageBackToPostActivitySaga.js +0 -70
- package/lib/sagas/sendMessageToPostActivitySaga.d.ts +0 -2
- package/lib/sagas/sendMessageToPostActivitySaga.d.ts.map +0 -1
- package/lib/sagas/sendMessageToPostActivitySaga.js +0 -91
- package/lib/sagas/sendPostBackToPostActivitySaga.js +0 -69
- package/lib/sagas/sendTypingIndicatorOnSetSendBoxSaga.d.ts +0 -3
- package/lib/sagas/sendTypingIndicatorOnSetSendBoxSaga.d.ts.map +0 -1
- package/lib/sagas/sendTypingIndicatorOnSetSendBoxSaga.js +0 -145
- package/lib/sagas/speakActivityAndStartDictateOnIncomingActivityFromOthersSaga.js +0 -106
- package/lib/sagas/startDictateOnSpeakCompleteSaga.js +0 -65
- package/lib/sagas/startSpeakActivityOnPostActivitySaga.js +0 -62
- package/lib/sagas/stopDictateOnCardActionSaga.js +0 -65
- package/lib/sagas/stopSpeakingActivityOnInputSaga.js +0 -68
- package/lib/sagas/submitSendBoxSaga.js +0 -84
- package/lib/selectors/activities.d.ts +0 -9
- package/lib/selectors/activities.d.ts.map +0 -1
- package/lib/selectors/activities.js +0 -33
- package/lib/selectors/combineSelectors.js +0 -31
- package/lib/selectors/dictateState.js +0 -12
- package/lib/selectors/language.d.ts +0 -4
- package/lib/selectors/language.d.ts.map +0 -1
- package/lib/selectors/language.js +0 -12
- package/lib/selectors/notifications.js +0 -13
- package/lib/selectors/sendBoxAttachments.js +0 -11
- package/lib/selectors/sendBoxValue.js +0 -12
- package/lib/selectors/sendTimeout.d.ts +0 -4
- package/lib/selectors/sendTimeout.d.ts.map +0 -1
- package/lib/selectors/sendTimeout.js +0 -12
- package/lib/selectors/sendTypingIndicator.d.ts +0 -4
- package/lib/selectors/sendTypingIndicator.d.ts.map +0 -1
- package/lib/selectors/sendTypingIndicator.js +0 -12
- package/lib/selectors/shouldSpeakIncomingActivity.js +0 -12
- package/lib/types/AnyAnd.d.ts +0 -2
- package/lib/types/AnyAnd.d.ts.map +0 -1
- package/lib/types/AnyAnd.js +0 -6
- package/lib/types/GlobalScopePonyfill.d.ts +0 -8
- package/lib/types/GlobalScopePonyfill.d.ts.map +0 -1
- package/lib/types/GlobalScopePonyfill.js +0 -6
- package/lib/types/OneOrMany.d.ts +0 -3
- package/lib/types/OneOrMany.d.ts.map +0 -1
- package/lib/types/OneOrMany.js +0 -6
- package/lib/types/SendBoxAttachment.d.ts +0 -5
- package/lib/types/SendBoxAttachment.d.ts.map +0 -1
- package/lib/types/SendBoxAttachment.js +0 -6
- package/lib/types/WebChatActivity.d.ts +0 -128
- package/lib/types/WebChatActivity.d.ts.map +0 -1
- package/lib/types/WebChatActivity.js +0 -6
- package/lib/types/external/DirectLineActivity.d.ts +0 -3
- package/lib/types/external/DirectLineActivity.d.ts.map +0 -1
- package/lib/types/external/DirectLineActivity.js +0 -6
- package/lib/types/external/DirectLineAnimationCard.d.ts +0 -6
- package/lib/types/external/DirectLineAnimationCard.d.ts.map +0 -1
- package/lib/types/external/DirectLineAnimationCard.js +0 -6
- package/lib/types/external/DirectLineAttachment.d.ts +0 -9
- package/lib/types/external/DirectLineAttachment.d.ts.map +0 -1
- package/lib/types/external/DirectLineAttachment.js +0 -6
- package/lib/types/external/DirectLineAudioCard.d.ts +0 -6
- package/lib/types/external/DirectLineAudioCard.d.ts.map +0 -1
- package/lib/types/external/DirectLineAudioCard.js +0 -6
- package/lib/types/external/DirectLineBasicCardEssence.d.ts +0 -12
- package/lib/types/external/DirectLineBasicCardEssence.d.ts.map +0 -1
- package/lib/types/external/DirectLineBasicCardEssence.js +0 -6
- package/lib/types/external/DirectLineCardAction.d.ts +0 -110
- package/lib/types/external/DirectLineCardAction.d.ts.map +0 -1
- package/lib/types/external/DirectLineCardAction.js +0 -6
- package/lib/types/external/DirectLineCardImage.d.ts +0 -8
- package/lib/types/external/DirectLineCardImage.d.ts.map +0 -1
- package/lib/types/external/DirectLineCardImage.js +0 -6
- package/lib/types/external/DirectLineHeroCard.d.ts +0 -6
- package/lib/types/external/DirectLineHeroCard.d.ts.map +0 -1
- package/lib/types/external/DirectLineHeroCard.js +0 -6
- package/lib/types/external/DirectLineJSBotConnection.d.ts +0 -3
- package/lib/types/external/DirectLineJSBotConnection.d.ts.map +0 -1
- package/lib/types/external/DirectLineJSBotConnection.js +0 -6
- package/lib/types/external/DirectLineMediaCardEssence.d.ts +0 -21
- package/lib/types/external/DirectLineMediaCardEssence.d.ts.map +0 -1
- package/lib/types/external/DirectLineMediaCardEssence.js +0 -6
- package/lib/types/external/DirectLineOAuthCard.d.ts +0 -8
- package/lib/types/external/DirectLineOAuthCard.d.ts.map +0 -1
- package/lib/types/external/DirectLineOAuthCard.js +0 -6
- package/lib/types/external/DirectLineReceiptCard.d.ts +0 -28
- package/lib/types/external/DirectLineReceiptCard.d.ts.map +0 -1
- package/lib/types/external/DirectLineReceiptCard.js +0 -6
- package/lib/types/external/DirectLineSignInCard.d.ts +0 -8
- package/lib/types/external/DirectLineSignInCard.d.ts.map +0 -1
- package/lib/types/external/DirectLineSignInCard.js +0 -6
- package/lib/types/external/DirectLineSuggestedAction.d.ts +0 -7
- package/lib/types/external/DirectLineSuggestedAction.d.ts.map +0 -1
- package/lib/types/external/DirectLineSuggestedAction.js +0 -6
- package/lib/types/external/DirectLineThumbnailCard.d.ts +0 -6
- package/lib/types/external/DirectLineThumbnailCard.d.ts.map +0 -1
- package/lib/types/external/DirectLineThumbnailCard.js +0 -6
- package/lib/types/external/DirectLineVideoCard.d.ts +0 -6
- package/lib/types/external/DirectLineVideoCard.d.ts.map +0 -1
- package/lib/types/external/DirectLineVideoCard.js +0 -6
- package/lib/types/external/Observable.d.ts +0 -49
- package/lib/types/external/Observable.d.ts.map +0 -1
- package/lib/types/external/Observable.js +0 -6
- package/lib/types/external/OrgSchema/Action.d.ts +0 -29
- package/lib/types/external/OrgSchema/Action.d.ts.map +0 -1
- package/lib/types/external/OrgSchema/Action.js +0 -38
- package/lib/types/external/OrgSchema/Claim.d.ts +0 -35
- package/lib/types/external/OrgSchema/Claim.d.ts.map +0 -1
- package/lib/types/external/OrgSchema/Claim.js +0 -41
- package/lib/types/external/OrgSchema/CreativeWork.d.ts +0 -57
- package/lib/types/external/OrgSchema/CreativeWork.d.ts.map +0 -1
- package/lib/types/external/OrgSchema/CreativeWork.js +0 -52
- package/lib/types/external/OrgSchema/DefinedTerm.d.ts +0 -26
- package/lib/types/external/OrgSchema/DefinedTerm.d.ts.map +0 -1
- package/lib/types/external/OrgSchema/DefinedTerm.js +0 -33
- package/lib/types/external/OrgSchema/Project.d.ts +0 -20
- package/lib/types/external/OrgSchema/Project.d.ts.map +0 -1
- package/lib/types/external/OrgSchema/Project.js +0 -32
- package/lib/types/external/OrgSchema/Thing.d.ts +0 -53
- package/lib/types/external/OrgSchema/Thing.d.ts.map +0 -1
- package/lib/types/external/OrgSchema/Thing.js +0 -54
- package/lib/types/external/OrgSchema/VoteAction.d.ts +0 -22
- package/lib/types/external/OrgSchema/VoteAction.d.ts.map +0 -1
- package/lib/types/external/OrgSchema/VoteAction.js +0 -34
- package/lib/types/external/OrgSchema/private/orgSchemaProperties.d.ts +0 -3
- package/lib/types/external/OrgSchema/private/orgSchemaProperties.d.ts.map +0 -1
- package/lib/types/external/OrgSchema/private/orgSchemaProperties.js +0 -22
- package/lib/types/external/OrgSchema/private/orgSchemaProperty.d.ts +0 -4
- package/lib/types/external/OrgSchema/private/orgSchemaProperty.d.ts.map +0 -1
- package/lib/types/external/OrgSchema/private/orgSchemaProperty.js +0 -15
- package/lib/types/internal/GlobalScopeClock.d.ts +0 -15
- package/lib/types/internal/GlobalScopeClock.d.ts.map +0 -1
- package/lib/types/internal/GlobalScopeClock.js +0 -6
- package/lib/types/internal/Notification.d.ts +0 -10
- package/lib/types/internal/Notification.d.ts.map +0 -1
- package/lib/types/internal/Notification.js +0 -6
- package/lib/types/internal/ReduxState.d.ts +0 -19
- package/lib/types/internal/ReduxState.d.ts.map +0 -1
- package/lib/types/internal/ReduxState.js +0 -6
- package/lib/types/internal/SendStatus.d.ts +0 -7
- package/lib/types/internal/SendStatus.d.ts.map +0 -1
- package/lib/types/internal/SendStatus.js +0 -19
- package/lib/types/internal/WebChatOutgoingActivity.d.ts +0 -49
- package/lib/types/internal/WebChatOutgoingActivity.d.ts.map +0 -1
- package/lib/types/internal/WebChatOutgoingActivity.js +0 -6
- package/lib/utils/dateToLocaleISOString.d.ts +0 -2
- package/lib/utils/dateToLocaleISOString.d.ts.map +0 -1
- package/lib/utils/dateToLocaleISOString.js +0 -52
- package/lib/utils/deleteKey.d.ts +0 -2
- package/lib/utils/deleteKey.d.ts.map +0 -1
- package/lib/utils/deleteKey.js +0 -30
- package/lib/utils/getOrgSchemaMessage.d.ts +0 -4
- package/lib/utils/getOrgSchemaMessage.d.ts.map +0 -1
- package/lib/utils/getOrgSchemaMessage.js +0 -21
- package/lib/utils/isForbiddenPropertyName.d.ts +0 -2
- package/lib/utils/isForbiddenPropertyName.d.ts.map +0 -1
- package/lib/utils/isForbiddenPropertyName.js +0 -16
- package/lib/utils/onErrorResumeNext.d.ts +0 -3
- package/lib/utils/onErrorResumeNext.d.ts.map +0 -1
- package/lib/utils/onErrorResumeNext.js +0 -19
- package/lib/utils/once.d.ts +0 -2
- package/lib/utils/once.d.ts.map +0 -1
- package/lib/utils/once.js +0 -16
- package/lib/utils/singleToArray.d.ts +0 -2
- package/lib/utils/singleToArray.d.ts.map +0 -1
- package/lib/utils/singleToArray.js +0 -10
- package/lib/utils/sleep.d.ts +0 -3
- package/lib/utils/sleep.d.ts.map +0 -1
- package/lib/utils/sleep.js +0 -12
- package/lib/utils/uniqueID.d.ts +0 -2
- package/lib/utils/uniqueID.d.ts.map +0 -1
- package/lib/utils/uniqueID.js +0 -14
- package/lib/utils/warnOnce.d.ts +0 -2
- package/lib/utils/warnOnce.d.ts.map +0 -1
- package/lib/utils/warnOnce.js +0 -14
- package/src/actions/clearSuggestedActions.js +0 -9
- package/src/actions/setSuggestedActions.js +0 -12
- package/src/constants/DictateState.js +0 -7
- package/src/reducers/createActivitiesReducer.ts +0 -304
- package/src/reducers/private/findBeforeAfter.spec.ts +0 -90
- package/src/reducers/private/findBeforeAfter.ts +0 -30
- package/src/reducers/suggestedActions.js +0 -23
- package/src/types/OneOrMany.ts +0 -3
- package/src/types/external/OrgSchema/Action.spec.ts +0 -35
- package/src/types/external/OrgSchema/Action.ts +0 -52
- package/src/types/external/OrgSchema/Claim.spec.ts +0 -45
- package/src/types/external/OrgSchema/Claim.ts +0 -48
- package/src/types/external/OrgSchema/CreativeWork.parseCreativeWork.spec.ts +0 -51
- package/src/types/external/OrgSchema/CreativeWork.ts +0 -83
- package/src/types/external/OrgSchema/DefinedTerm.ts +0 -37
- package/src/types/external/OrgSchema/Project.parseProject.spec.ts +0 -17
- package/src/types/external/OrgSchema/Project.ts +0 -29
- package/src/types/external/OrgSchema/Thing.parseThing.spec.ts +0 -54
- package/src/types/external/OrgSchema/Thing.ts +0 -94
- package/src/types/external/OrgSchema/VoteAction.spec.ts +0 -35
- package/src/types/external/OrgSchema/VoteAction.ts +0 -31
- package/src/types/external/OrgSchema/private/orgSchemaProperties.spec.ts +0 -41
- package/src/types/external/OrgSchema/private/orgSchemaProperties.ts +0 -23
- package/src/types/external/OrgSchema/private/orgSchemaProperty.spec.ts +0 -21
- package/src/types/external/OrgSchema/private/orgSchemaProperty.ts +0 -6
- package/src/utils/isForbiddenPropertyName.spec.js +0 -6
- package/src/utils/isForbiddenPropertyName.ts +0 -33
- package/src/utils/singleToArray.ts +0 -3
- package/src/utils/warnOnce.ts +0 -5
- /package/src/actions/{connectionStatusUpdate.js → connectionStatusUpdate.ts} +0 -0
- /package/src/actions/{disconnect.js → disconnect.ts} +0 -0
- /package/src/actions/{emitTypingIndicator.js → emitTypingIndicator.ts} +0 -0
- /package/src/actions/{queueIncomingActivity.js → queueIncomingActivity.ts} +0 -0
- /package/src/actions/{reconnect.js → reconnect.ts} +0 -0
- /package/src/actions/{startDictate.js → startDictate.ts} +0 -0
- /package/src/actions/{startSpeakingActivity.js → startSpeakingActivity.ts} +0 -0
- /package/src/actions/{stopDictate.js → stopDictate.ts} +0 -0
- /package/src/actions/{stopSpeakingActivity.js → stopSpeakingActivity.ts} +0 -0
- /package/src/actions/{updateConnectionStatus.js → updateConnectionStatus.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/actions/clearSuggestedActions.js","../src/actions/connect.js","../src/actions/disconnect.js","../src/actions/dismissNotification.ts","../src/actions/emitTypingIndicator.js","../src/actions/markActivity.ts","../src/actions/postActivity.ts","../src/actions/sendEvent.js","../src/actions/sendFiles.ts","../src/actions/sendMessage.ts","../src/actions/sendMessageBack.js","../src/actions/sendPostBack.js","../src/actions/setDictateInterims.js","../src/actions/setDictateState.js","../src/actions/setLanguage.js","../src/utils/uniqueID.ts","../src/actions/setNotification.ts","../src/actions/setSendBox.js","../src/actions/setSendBoxAttachments.ts","../src/actions/setSendTimeout.js","../src/actions/setSendTypingIndicator.ts","../src/actions/startDictate.js","../src/actions/startSpeakingActivity.js","../src/actions/stopDictate.js","../src/actions/stopSpeakingActivity.js","../src/actions/submitSendBox.js","../src/constants/ActivityClientState.js","../src/constants/DictateState.js","../src/createStore.ts","../src/createReducer.ts","../src/actions/reconnect.js","../src/actions/sagaError.ts","../src/reducers/connectivityStatus.js","../src/reducers/createActivitiesReducer.ts","../src/actions/deleteActivity.ts","../src/actions/incomingActivity.ts","../src/types/internal/SendStatus.ts","../src/reducers/private/findBeforeAfter.ts","../src/reducers/createInternalReducer.ts","../src/reducers/createNotificationsReducer.ts","../src/utils/isForbiddenPropertyName.ts","../src/reducers/createTypingReducer.ts","../src/reducers/dictateInterims.js","../src/reducers/dictateState.js","../src/reducers/language.js","../src/actions/connectionStatusUpdate.js","../src/reducers/readyState.js","../src/actions/setReferenceGrammarID.js","../src/reducers/referenceGrammarID.js","../src/reducers/sendBoxAttachments.ts","../src/reducers/sendBoxValue.js","../src/reducers/sendTimeout.js","../src/reducers/sendTypingIndicator.js","../src/reducers/shouldSpeakIncomingActivity.js","../src/actions/setSuggestedActions.js","../src/reducers/suggestedActions.js","../src/createSagas.ts","../src/sagas/clearSuggestedActionsOnPostActivitySaga.js","../src/sagas/effects/whileConnected.ts","../src/sagas/connectionStatusToNotificationSaga.js","../src/createPromiseQueue.js","../src/sagas/connectionStatusUpdateSaga.js","../src/sagas/effects/observeEach.js","../src/sagas/connectSaga.js","../src/sagas/effects/forkPut.js","../src/actions/updateConnectionStatus.js","../src/sagas/detectSlowConnectionSaga.ts","../src/utils/sleep.ts","../src/sagas/emitTypingIndicatorToPostActivitySaga.js","../src/sagas/markAllAsSpokenOnStopSpeakActivitySaga.js","../src/selectors/activities.ts","../src/definitions/speakingActivity.js","../src/sagas/observeActivitySaga.ts","../src/actions/queueIncomingActivity.js","../src/sagas/postActivitySaga.ts","../src/utils/dateToLocaleISOString.ts","../src/utils/deleteKey.ts","../src/selectors/language.ts","../src/sagas/effects/observeOnce.ts","../src/selectors/sendTimeout.ts","../src/sagas/queueIncomingActivitySaga.ts","../src/definitions/activityFromBot.js","../src/sagas/sendEventToPostActivitySaga.js","../src/sagas/sendFilesToPostActivitySaga.js","../src/sagas/sendMessageBackToPostActivitySaga.js","../src/sagas/sendMessageToPostActivitySaga.ts","../src/sagas/sendPostBackToPostActivitySaga.js","../src/sagas/sendTypingIndicatorOnSetSendBoxSaga.ts","../src/selectors/sendTypingIndicator.ts","../src/sagas/speakActivityAndStartDictateOnIncomingActivityFromOthersSaga.js","../src/selectors/shouldSpeakIncomingActivity.ts","../src/definitions/speakableActivity.js","../src/sagas/startDictateOnSpeakCompleteSaga.js","../src/selectors/dictateState.ts","../src/sagas/startSpeakActivityOnPostActivitySaga.js","../src/sagas/stopDictateOnCardActionSaga.js","../src/sagas/stopSpeakingActivityOnInputSaga.js","../src/sagas/submitSendBoxSaga.js","../src/selectors/sendBoxAttachments.ts","../src/selectors/sendBoxValue.ts","../src/types/external/OrgSchema/Action.ts","../src/types/external/OrgSchema/private/orgSchemaProperty.ts","../src/types/external/OrgSchema/Project.ts","../src/types/external/OrgSchema/Thing.ts","../src/types/external/OrgSchema/private/orgSchemaProperties.ts","../src/types/external/OrgSchema/Claim.ts","../src/types/external/OrgSchema/CreativeWork.ts","../src/types/external/OrgSchema/DefinedTerm.ts","../src/types/external/OrgSchema/VoteAction.ts","../src/utils/getOrgSchemaMessage.ts","../src/utils/onErrorResumeNext.ts","../src/utils/singleToArray.ts","../src/utils/once.ts","../src/utils/warnOnce.ts","../src/index.ts"],"sourcesContent":["const CLEAR_SUGGESTED_ACTIONS = 'WEB_CHAT/CLEAR_SUGGESTED_ACTIONS';\n\nexport default function clearSuggestedActions() {\n return {\n type: CLEAR_SUGGESTED_ACTIONS\n };\n}\n\nexport { CLEAR_SUGGESTED_ACTIONS };\n","const CONNECT = 'DIRECT_LINE/CONNECT';\nconst CONNECT_FULFILLED = `${CONNECT}_FULFILLED`;\nconst CONNECT_FULFILLING = `${CONNECT}_FULFILLING`;\nconst CONNECT_PENDING = `${CONNECT}_PENDING`;\nconst CONNECT_REJECTED = `${CONNECT}_REJECTED`;\nconst CONNECT_STILL_PENDING = `${CONNECT}_STILL_PENDING`;\n\nexport default function connect({ directLine, userID, username }) {\n return {\n type: CONNECT,\n payload: {\n directLine,\n userID,\n username\n }\n };\n}\n\nexport { CONNECT, CONNECT_FULFILLED, CONNECT_FULFILLING, CONNECT_PENDING, CONNECT_REJECTED, CONNECT_STILL_PENDING };\n","const DISCONNECT = 'DIRECT_LINE/DISCONNECT';\nconst DISCONNECT_PENDING = `${DISCONNECT}_PENDING`;\nconst DISCONNECT_REJECTED = `${DISCONNECT}_REJECTED`;\nconst DISCONNECT_FULFILLED = `${DISCONNECT}_FULFILLED`;\n\nexport default function disconnect() {\n return {\n type: DISCONNECT\n };\n}\n\nexport { DISCONNECT, DISCONNECT_PENDING, DISCONNECT_REJECTED, DISCONNECT_FULFILLED };\n","const DISMISS_NOTIFICATION = 'WEB_CHAT/DISMISS_NOTIFICATION';\n\ntype DismissNotificationAction = {\n payload: { id: string };\n type: typeof DISMISS_NOTIFICATION;\n};\n\nfunction dismissNotification(id: string): DismissNotificationAction {\n return {\n payload: { id },\n type: DISMISS_NOTIFICATION\n };\n}\n\nexport default dismissNotification;\n\nexport { DISMISS_NOTIFICATION };\n\nexport type { DismissNotificationAction };\n","const EMIT_TYPING_INDICATOR = 'WEB_CHAT/EMIT_TYPING_INDICATOR';\n\nexport default function emitTypingIndicator() {\n return {\n type: EMIT_TYPING_INDICATOR\n };\n}\n\nexport { EMIT_TYPING_INDICATOR };\n","type MarkActivityActionType = 'WEB_CHAT/MARK_ACTIVITY';\n\ntype MarkActivityAction = {\n payload: { activityID: string; name: string; value: any };\n type: MarkActivityActionType;\n};\n\nconst MARK_ACTIVITY: MarkActivityActionType = 'WEB_CHAT/MARK_ACTIVITY';\n\nfunction markActivity({ id: activityID }: { id: string }, name: string, value: any): MarkActivityAction {\n return {\n type: MARK_ACTIVITY,\n payload: {\n activityID,\n name,\n value\n }\n };\n}\n\nexport default markActivity;\nexport { MARK_ACTIVITY };\nexport type { MarkActivityAction };\n","import type { WebChatActivity } from '../types/WebChatActivity';\n\ntype PostActivityActionType = 'DIRECT_LINE/POST_ACTIVITY';\ntype PostActivityFulfilledActionType = 'DIRECT_LINE/POST_ACTIVITY_FULFILLED';\ntype PostActivityImpededActionType = 'DIRECT_LINE/POST_ACTIVITY_IMPEDED';\ntype PostActivityPendingActionType = 'DIRECT_LINE/POST_ACTIVITY_PENDING';\ntype PostActivityRejectedActionType = 'DIRECT_LINE/POST_ACTIVITY_REJECTED';\n\ntype PostActivityAction = {\n meta: { method: string };\n payload: { activity: WebChatActivity };\n type: PostActivityActionType;\n};\n\ntype PostActivityFulfilledAction = {\n meta: { clientActivityID: string; method: string };\n payload: { activity: WebChatActivity };\n type: PostActivityFulfilledActionType;\n};\n\ntype PostActivityImpededAction = {\n meta: { clientActivityID: string; method: string };\n payload: { activity: WebChatActivity };\n type: PostActivityImpededActionType;\n};\n\ntype PostActivityPendingAction = {\n meta: { clientActivityID: string; method: string };\n payload: { activity: WebChatActivity };\n type: PostActivityPendingActionType;\n};\n\ntype PostActivityRejectedAction = {\n error: true;\n meta: { clientActivityID: string; method: string };\n payload: Error;\n type: PostActivityRejectedActionType;\n};\n\nconst POST_ACTIVITY: PostActivityActionType = 'DIRECT_LINE/POST_ACTIVITY';\nconst POST_ACTIVITY_FULFILLED: PostActivityFulfilledActionType = `${POST_ACTIVITY}_FULFILLED`;\nconst POST_ACTIVITY_IMPEDED: PostActivityImpededActionType = `${POST_ACTIVITY}_IMPEDED`;\nconst POST_ACTIVITY_PENDING: PostActivityPendingActionType = `${POST_ACTIVITY}_PENDING`;\nconst POST_ACTIVITY_REJECTED: PostActivityRejectedActionType = `${POST_ACTIVITY}_REJECTED`;\n\nfunction postActivity(activity: WebChatActivity, method = 'keyboard'): PostActivityAction {\n return {\n type: POST_ACTIVITY,\n meta: { method },\n payload: { activity }\n };\n}\n\nexport default postActivity;\nexport { POST_ACTIVITY, POST_ACTIVITY_FULFILLED, POST_ACTIVITY_IMPEDED, POST_ACTIVITY_PENDING, POST_ACTIVITY_REJECTED };\nexport type {\n PostActivityAction,\n PostActivityFulfilledAction,\n PostActivityImpededAction,\n PostActivityPendingAction,\n PostActivityRejectedAction\n};\n","const SEND_EVENT = 'WEB_CHAT/SEND_EVENT';\n\nexport default function sendEvent(name, value) {\n return {\n type: SEND_EVENT,\n payload: { name, value }\n };\n}\n\nexport { SEND_EVENT };\n","const SEND_FILES = 'WEB_CHAT/SEND_FILES';\n\n// TODO: [P1] We could obsolete this or dispatch { type: SEND_MESSAGE } insetad.\nexport default function sendFiles(\n files: readonly Readonly<{\n name: string;\n size: number;\n url: string;\n thumbnail?: string;\n }>[]\n) {\n return {\n type: SEND_FILES,\n payload: { files }\n };\n}\n\nexport { SEND_FILES };\n","import { type SendBoxAttachment } from '../types/SendBoxAttachment';\n\nconst SEND_MESSAGE = 'WEB_CHAT/SEND_MESSAGE';\n\nexport default function sendMessage(\n text: string | undefined,\n method: string | undefined,\n { attachments, channelData }: { attachments?: readonly SendBoxAttachment[]; channelData?: any } = {}\n) {\n return {\n type: SEND_MESSAGE,\n payload: { attachments, channelData, method, text }\n };\n}\n\nexport { SEND_MESSAGE };\n","const SEND_MESSAGE_BACK = 'WEB_CHAT/SEND_MESSAGE_BACK';\n\nexport default function sendMessageback(value, text, displayText) {\n return {\n type: SEND_MESSAGE_BACK,\n payload: { displayText, text, value }\n };\n}\n\nexport { SEND_MESSAGE_BACK };\n","const SEND_POST_BACK = 'WEB_CHAT/SEND_POST_BACK';\n\nexport default function sendPostback(value) {\n return {\n type: SEND_POST_BACK,\n payload: { value }\n };\n}\n\nexport { SEND_POST_BACK };\n","const SET_DICTATE_INTERIMS = 'WEB_CHAT/SET_DICTATE_INTERIMS';\n\nexport default function setDictateInterims(dictateInterims) {\n return {\n type: SET_DICTATE_INTERIMS,\n payload: { dictateInterims }\n };\n}\n\nexport { SET_DICTATE_INTERIMS };\n","const SET_DICTATE_STATE = 'WEB_CHAT/SET_DICTATE_STATE';\n\nexport default function setDictateState(dictateState) {\n return {\n type: SET_DICTATE_STATE,\n payload: { dictateState }\n };\n}\n\nexport { SET_DICTATE_STATE };\n","const SET_LANGUAGE = 'WEB_CHAT/SET_LANGUAGE';\n\nexport default function setLanguage(language) {\n return {\n type: SET_LANGUAGE,\n payload: { language }\n };\n}\n\nexport { SET_LANGUAGE };\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [2, 36] }] */\n\nimport random from 'math-random';\n\nexport default function uniqueID(): string {\n return random().toString(36).substring(2);\n}\n","import uniqueID from '../utils/uniqueID';\n\nimport type { Notification } from '../types/internal/Notification';\n\nconst SET_NOTIFICATION = 'WEB_CHAT/SET_NOTIFICATION';\n\ntype SetNotificationAction = {\n payload: Omit<Notification, 'timestamp'>;\n type: typeof SET_NOTIFICATION;\n};\n\nexport default function setNotification({\n alt,\n data,\n id,\n level,\n message\n}: Omit<Notification, 'timestamp'>): SetNotificationAction {\n if (!id || typeof id !== 'string') {\n console.warn(\n 'botframework-webchat: The \"id\" argument passed to \"setNotification\" must be a string; defaulting to a random value.'\n );\n\n id = uniqueID();\n }\n\n if (!level || typeof level !== 'string') {\n console.warn(\n 'botframework-webchat: The \"level\" argument passed to \"setNotification\" must be a string; defaulting to \"info\".'\n );\n\n level = 'info';\n }\n\n return {\n type: SET_NOTIFICATION,\n payload: { alt, data, id, level, message }\n };\n}\n\nexport { SET_NOTIFICATION };\n\nexport type { SetNotificationAction };\n","const SET_SEND_BOX = 'WEB_CHAT/SET_SEND_BOX';\n\nexport default function setSendBox(text) {\n return {\n type: SET_SEND_BOX,\n payload: { text }\n };\n}\n\nexport { SET_SEND_BOX };\n","import type { SendBoxAttachment } from '../types/SendBoxAttachment';\n\nconst SET_SEND_BOX_ATTACHMENTS = 'WEB_CHAT/SET_SEND_BOX_ATTACHMENTS';\n\nexport default function setSendBoxAttachments(attachments: readonly SendBoxAttachment[]) {\n return {\n type: SET_SEND_BOX_ATTACHMENTS,\n payload: { attachments }\n };\n}\n\nexport { SET_SEND_BOX_ATTACHMENTS };\n","const SET_SEND_TIMEOUT = 'WEB_CHAT/SET_SEND_TIMEOUT';\n\nexport default function setSendTimeout(sendTimeout) {\n return {\n type: SET_SEND_TIMEOUT,\n payload: { sendTimeout }\n };\n}\n\nexport { SET_SEND_TIMEOUT };\n","const SET_SEND_TYPING_INDICATOR = 'WEB_CHAT/SET_SEND_TYPING_INDICATOR';\n\ntype SetSendTypingIndicatorAction = {\n payload: { sendTypingIndicator: boolean };\n type: typeof SET_SEND_TYPING_INDICATOR;\n};\n\nexport default function setSendTypingIndicator(value): SetSendTypingIndicatorAction {\n return {\n payload: { sendTypingIndicator: !!value },\n type: SET_SEND_TYPING_INDICATOR\n };\n}\n\nexport { SET_SEND_TYPING_INDICATOR };\n\nexport type { SetSendTypingIndicatorAction };\n","const START_DICTATE = 'WEB_CHAT/START_DICTATE';\n\nexport default function startDictate() {\n return { type: START_DICTATE };\n}\n\nexport { START_DICTATE };\n","const START_SPEAKING_ACTIVITY = 'WEB_CHAT/START_SPEAKING';\n\nexport default function startSpeakingActivity() {\n return {\n type: START_SPEAKING_ACTIVITY\n };\n}\n\nexport { START_SPEAKING_ACTIVITY };\n","const STOP_DICTATE = 'WEB_CHAT/STOP_DICTATE';\n\nexport default function stopDictate() {\n return { type: STOP_DICTATE };\n}\n\nexport { STOP_DICTATE };\n","const STOP_SPEAKING_ACTIVITY = 'WEB_CHAT/STOP_SPEAKING';\n\nexport default function stopSpeakingActivity() {\n return {\n type: STOP_SPEAKING_ACTIVITY\n };\n}\n\nexport { STOP_SPEAKING_ACTIVITY };\n","const SUBMIT_SEND_BOX = 'WEB_CHAT/SUBMIT_SEND_BOX';\n\nexport default function submitSendBox(method = 'keyboard', { channelData } = {}) {\n return {\n type: SUBMIT_SEND_BOX,\n payload: { channelData, method }\n };\n}\n\nexport { SUBMIT_SEND_BOX };\n","/** @deprecated This constant is being deprecated, please use string literal instead. Will be remove on or after 2024-07-31. */\nconst SEND_FAILED = 'send failed';\n/** @deprecated This constant is being deprecated, please use string literal instead. Will be remove on or after 2024-07-31. */\nconst SENDING = 'sending';\n/** @deprecated This constant is being deprecated, please use string literal instead. Will be remove on or after 2024-07-31. */\nconst SENT = 'sent';\n\nexport { SEND_FAILED, SENDING, SENT };\n","const IDLE = 0;\nconst WILL_START = 1;\nconst STARTING = 2;\nconst DICTATING = 3;\nconst STOPPING = 4;\n\nexport { DICTATING, IDLE, STARTING, STOPPING, WILL_START };\n","import { applyMiddleware, createStore as createReduxStore, type Store } from 'redux';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport createSagaMiddleware from 'redux-saga';\n\nimport createReducer from './createReducer';\nimport createSagas from './createSagas';\nimport sagaError from './actions/sagaError';\n\nimport type { GlobalScopePonyfill } from './types/GlobalScopePonyfill';\n\ntype CreateStoreOptions = {\n /**\n * True, to enable Redux development tools, otherwise, false.\n *\n * Because Web Chat use sagas for business logics, some store state are keep at JavaScript heaps.\n * Time-travelling and saving/restoring store state are not supported.\n */\n devTools?: boolean;\n\n /**\n * Ponyfill to overrides specific global scope members.\n *\n * This option is for development use only. Not all features in Web Chat are ponyfilled.\n *\n * To fake timers, `setTimeout` and related functions can be passed to overrides the original global scope members.\n *\n * Please see [#4662](https://github.com/microsoft/BotFramework-WebChat/pull/4662) for details.\n */\n ponyfill?: Partial<GlobalScopePonyfill>;\n};\n\nfunction createEnhancerAndSagaMiddleware(getStore, ...middlewares) {\n const sagaMiddleware = createSagaMiddleware({\n onError: (...args) => {\n const [err] = args;\n\n console.error(err);\n\n const store = getStore();\n\n store && store.dispatch(sagaError());\n }\n });\n\n return {\n enhancer: applyMiddleware(...middlewares, sagaMiddleware),\n sagaMiddleware\n };\n}\n\n/**\n * Creates a Redux store internally used by Web Chat.\n *\n * This store is critical for Web Chat business logics to operate, please use with cautions.\n */\n\n// The complexity is introduced by the check of ponyfill.\n// eslint-disable-next-line complexity\nexport function withOptions(options: CreateStoreOptions, initialState?, ...middlewares): Store {\n // IE Mode does not have `globalThis`.\n const globalThisOrWindow = typeof globalThis === 'undefined' ? window : globalThis;\n const ponyfillFromOptions: Partial<GlobalScopePonyfill> = options.ponyfill || {};\n\n // TODO: [P2] Dedupe: when we have an utility package, move this code there and mark it as internal use.\n const ponyfill: GlobalScopePonyfill = {\n cancelAnimationFrame:\n ponyfillFromOptions.cancelAnimationFrame ||\n // Using clock functions from global if not provided.\n // eslint-disable-next-line no-restricted-globals\n (typeof cancelAnimationFrame === 'function' ? cancelAnimationFrame.bind(globalThisOrWindow) : undefined),\n cancelIdleCallback:\n ponyfillFromOptions.cancelIdleCallback ||\n // eslint-disable-next-line no-restricted-globals\n (typeof cancelIdleCallback === 'function' ? cancelIdleCallback.bind(globalThisOrWindow) : undefined),\n clearImmediate:\n ponyfillFromOptions.clearImmediate ||\n // eslint-disable-next-line no-restricted-globals\n (typeof clearImmediate === 'function' ? clearImmediate.bind(globalThisOrWindow) : undefined),\n clearInterval:\n ponyfillFromOptions.clearInterval ||\n // eslint-disable-next-line no-restricted-globals\n (typeof clearInterval === 'function' ? clearInterval.bind(globalThisOrWindow) : undefined),\n clearTimeout:\n ponyfillFromOptions.clearTimeout ||\n // eslint-disable-next-line no-restricted-globals\n (typeof clearTimeout === 'function' ? clearTimeout.bind(globalThisOrWindow) : undefined),\n // eslint-disable-next-line no-restricted-globals\n Date: ponyfillFromOptions.Date || Date,\n requestAnimationFrame:\n ponyfillFromOptions.requestAnimationFrame ||\n // eslint-disable-next-line no-restricted-globals\n (typeof requestAnimationFrame === 'function' ? requestAnimationFrame.bind(globalThisOrWindow) : undefined),\n requestIdleCallback:\n ponyfillFromOptions.requestIdleCallback ||\n // eslint-disable-next-line no-restricted-globals\n (typeof requestIdleCallback === 'function' ? requestIdleCallback.bind(globalThisOrWindow) : undefined),\n setImmediate:\n ponyfillFromOptions.setImmediate ||\n // eslint-disable-next-line no-restricted-globals\n (typeof setImmediate === 'function' ? setImmediate.bind(globalThisOrWindow) : undefined),\n setInterval:\n ponyfillFromOptions.setInterval ||\n // eslint-disable-next-line no-restricted-globals\n (typeof setInterval === 'function' ? setInterval.bind(globalThisOrWindow) : undefined),\n setTimeout:\n ponyfillFromOptions.setTimeout ||\n // eslint-disable-next-line no-restricted-globals\n (typeof setTimeout === 'function' ? setTimeout.bind(globalThisOrWindow) : undefined)\n };\n\n // We are sure the \"getStore\" (first argument) is not called on \"createEnhancerAndSagaMiddleware()\".\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n const { enhancer, sagaMiddleware } = createEnhancerAndSagaMiddleware(() => store, ...middlewares);\n const store = createReduxStore(\n createReducer(ponyfill),\n initialState || {},\n options.devTools ? composeWithDevTools(enhancer) : enhancer\n );\n\n sagaMiddleware.run(createSagas({ ponyfill }));\n\n return store;\n}\n\n/**\n * Creates a Redux store internally used by Web Chat.\n *\n * This store is critical for Web Chat business logics to operate, please use with cautions.\n */\nexport default function createStore(initialState?, ...middlewares): Store {\n return withOptions({}, initialState, ...middlewares);\n}\n\n/**\n * Creates a Redux store internally used by Web Chat, with Redux development tools.\n *\n * This store is critical for Web Chat business logics to operate, please use with cautions.\n *\n * @deprecated Use `withOptions` instead and pass `{ devTools: true }`\n */\nexport function withDevTools(initialState?, ...middlewares): Store {\n return withOptions({ devTools: true }, initialState, ...middlewares);\n}\n","import { combineReducers } from 'redux';\n\nimport connectivityStatus from './reducers/connectivityStatus';\nimport createActivitiesReducer from './reducers/createActivitiesReducer';\nimport createInternalReducer from './reducers/createInternalReducer';\nimport createNotificationsReducer from './reducers/createNotificationsReducer';\nimport createTypingReducer from './reducers/createTypingReducer';\nimport dictateInterims from './reducers/dictateInterims';\nimport dictateState from './reducers/dictateState';\nimport language from './reducers/language';\nimport readyState from './reducers/readyState';\nimport referenceGrammarID from './reducers/referenceGrammarID';\nimport sendBoxAttachments from './reducers/sendBoxAttachments';\nimport sendBoxValue from './reducers/sendBoxValue';\nimport sendTimeout from './reducers/sendTimeout';\nimport sendTypingIndicator from './reducers/sendTypingIndicator';\nimport shouldSpeakIncomingActivity from './reducers/shouldSpeakIncomingActivity';\nimport suggestedActions from './reducers/suggestedActions';\n\nimport type { GlobalScopePonyfill } from './types/GlobalScopePonyfill';\n\nexport default function createReducer(ponyfill: GlobalScopePonyfill) {\n return combineReducers({\n activities: createActivitiesReducer(ponyfill),\n connectivityStatus,\n dictateInterims,\n dictateState,\n internal: createInternalReducer(ponyfill),\n language,\n notifications: createNotificationsReducer(ponyfill),\n readyState,\n referenceGrammarID,\n sendBoxAttachments,\n sendBoxValue,\n sendTimeout,\n sendTypingIndicator,\n shouldSpeakIncomingActivity,\n suggestedActions,\n typing: createTypingReducer(ponyfill)\n });\n}\n","const RECONNECT = 'DIRECT_LINE/RECONNECT';\nconst RECONNECT_FULFILLED = `${RECONNECT}_FULFILLED`;\nconst RECONNECT_FULFILLING = `${RECONNECT}_FULFILLING`;\nconst RECONNECT_PENDING = `${RECONNECT}_PENDING`;\nconst RECONNECT_REJECTED = `${RECONNECT}_REJECTED`;\n\nexport { RECONNECT, RECONNECT_FULFILLED, RECONNECT_FULFILLING, RECONNECT_PENDING, RECONNECT_REJECTED };\n","const SAGA_ERROR = 'WEB_CHAT/SAGA_ERROR';\n\ntype SagaErrorAction = {\n type: typeof SAGA_ERROR;\n};\n\nexport default function sagaError(): SagaErrorAction {\n return { type: SAGA_ERROR };\n}\n\nexport { SAGA_ERROR };\n\nexport type { SagaErrorAction };\n","import { CONNECT_FULFILLED, CONNECT_PENDING, CONNECT_REJECTED, CONNECT_STILL_PENDING } from '../actions/connect';\n\nimport { RECONNECT_PENDING, RECONNECT_FULFILLED } from '../actions/reconnect';\n\nimport { DISCONNECT_FULFILLED } from '../actions/disconnect';\nimport { SAGA_ERROR } from '../actions/sagaError';\n\nconst DEFAULT_STATE = 'uninitialized';\n\nexport default function connectivityStatus(state = DEFAULT_STATE, { type, meta }) {\n if (state !== 'sagaerror') {\n switch (type) {\n case CONNECT_PENDING:\n case RECONNECT_PENDING:\n if (state !== 'uninitialized') {\n state = 'reconnecting';\n }\n\n break;\n\n case CONNECT_FULFILLED:\n state = 'connected';\n break;\n\n case RECONNECT_FULFILLED:\n state = 'reconnected';\n break;\n\n case CONNECT_REJECTED:\n state = 'error';\n break;\n\n case CONNECT_STILL_PENDING:\n state = 'connectingslow';\n break;\n\n case DISCONNECT_FULFILLED:\n state = meta && meta.error ? 'error' : 'notconnected';\n break;\n\n case SAGA_ERROR:\n state = 'sagaerror';\n break;\n\n default:\n break;\n }\n }\n\n return state;\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [0, 1, -1] }] */\n\nimport updateIn from 'simple-update-in';\n\nimport { DELETE_ACTIVITY } from '../actions/deleteActivity';\nimport { INCOMING_ACTIVITY } from '../actions/incomingActivity';\nimport { MARK_ACTIVITY } from '../actions/markActivity';\nimport {\n POST_ACTIVITY_FULFILLED,\n POST_ACTIVITY_IMPEDED,\n POST_ACTIVITY_PENDING,\n POST_ACTIVITY_REJECTED\n} from '../actions/postActivity';\nimport { SENDING, SEND_FAILED, SENT } from '../types/internal/SendStatus';\nimport findBeforeAfter from './private/findBeforeAfter';\n\nimport type { Reducer } from 'redux';\nimport type { DeleteActivityAction } from '../actions/deleteActivity';\nimport type { IncomingActivityAction } from '../actions/incomingActivity';\nimport type { MarkActivityAction } from '../actions/markActivity';\nimport type {\n PostActivityFulfilledAction,\n PostActivityImpededAction,\n PostActivityPendingAction,\n PostActivityRejectedAction\n} from '../actions/postActivity';\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\nimport type { WebChatActivity } from '../types/WebChatActivity';\n\ntype ActivitiesAction =\n | DeleteActivityAction\n | IncomingActivityAction\n | MarkActivityAction\n | PostActivityFulfilledAction\n | PostActivityImpededAction\n | PostActivityPendingAction\n | PostActivityRejectedAction;\n\ntype ActivitiesState = WebChatActivity[];\n\nconst DEFAULT_STATE: ActivitiesState = [];\nconst DIRECT_LINE_PLACEHOLDER_URL =\n 'https://docs.botframework.com/static/devportal/client/images/bot-framework-default-placeholder.png';\n\nfunction getClientActivityID(activity: WebChatActivity): string | undefined {\n return activity.channelData?.clientActivityID;\n}\n\nfunction findByClientActivityID(clientActivityID: string): (activity: WebChatActivity) => boolean {\n return (activity: WebChatActivity) => getClientActivityID(activity) === clientActivityID;\n}\n\nfunction isPartOfLivestreamSession(\n activity: WebChatActivity\n): activity is WebChatActivity & { text: string; type: 'typing' } {\n return activity.type === 'typing' && 'text' in activity && typeof activity.text === 'string';\n}\n\nfunction patchActivity(\n activity: WebChatActivity,\n activities: WebChatActivity[],\n { Date }: GlobalScopePonyfill\n): WebChatActivity {\n // Direct Line channel will return a placeholder image for the user-uploaded image.\n // As observed, the URL for the placeholder image is https://docs.botframework.com/static/devportal/client/images/bot-framework-default-placeholder.png.\n // To make our code simpler, we are removing the value if \"contentUrl\" is pointing to a placeholder image.\n\n // TODO: [P2] #2869 This \"contentURL\" removal code should be moved to DirectLineJS adapter.\n\n // Also, if the \"contentURL\" starts with \"blob:\", this means the user is uploading a file (the URL is constructed by URL.createObjectURL)\n // 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.\n\n activity = updateIn(activity, ['attachments', () => true, 'contentUrl'], (contentUrl: string) => {\n if (contentUrl !== DIRECT_LINE_PLACEHOLDER_URL && !/^blob:/iu.test(contentUrl)) {\n return contentUrl;\n }\n });\n\n activity = updateIn(activity, ['channelData'], channelData => ({ ...channelData }));\n activity = updateIn(activity, ['channelData', 'webChat', 'receivedAt'], () => Date.now());\n\n const {\n channelData: { 'webchat:sequence-id': sequenceId }\n } = activity;\n\n // TODO: [P1] #3953 We should move this patching logic to a DLJS wrapper for simplicity.\n // If the message does not have sequence ID, use these fallback values:\n // 1. \"channelData.streamSequence\" field (if available)\n // - 0.0001 * streamSequence should be good\n // 2. \"timestamp\" field\n // - outgoing activity will not have \"timestamp\" field\n // 3. last activity sequence ID (or 0) + 0.001\n // - best effort to put this message the last one in the chat history\n if (typeof sequenceId !== 'number') {\n let after: WebChatActivity;\n let before: WebChatActivity;\n\n if (isPartOfLivestreamSession(activity) && typeof activity.channelData.streamSequence === 'number') {\n [before, after] = findBeforeAfter(activities, target => {\n if (target.type === 'typing' && target.channelData.streamId === activity.channelData.streamId) {\n return target.channelData.streamSequence < activity.channelData.streamSequence ? 'before' : 'after';\n }\n\n return 'unknown';\n });\n }\n\n let sequenceId: number;\n\n if (before) {\n // eslint-disable-next-line no-magic-numbers\n sequenceId = before.channelData['webchat:sequence-id'] + 0.001;\n } else if (after) {\n // eslint-disable-next-line no-magic-numbers\n sequenceId = after.channelData['webchat:sequence-id'] - 0.001;\n } else if (typeof activity.timestamp !== 'undefined') {\n sequenceId = +new Date(activity.timestamp);\n } else {\n // We assume there will be no more than 1,000 messages sent before receiving server response.\n // If there are more than 1,000 messages, some messages will get reordered and appear jumpy after receiving server response.\n // eslint-disable-next-line no-magic-numbers\n sequenceId = (activities[activities.length - 1]?.channelData['webchat:sequence-id'] || 0) + 0.001;\n }\n\n activity = updateIn(activity, ['channelData', 'webchat:sequence-id'], () => sequenceId);\n }\n\n return activity;\n}\n\nfunction upsertActivityWithSort(\n activities: WebChatActivity[],\n nextActivity: WebChatActivity,\n ponyfill: GlobalScopePonyfill\n): WebChatActivity[] {\n nextActivity = patchActivity(nextActivity, activities, ponyfill);\n\n const { channelData: { clientActivityID: nextClientActivityID, 'webchat:sequence-id': nextSequenceId } = {} } =\n nextActivity;\n\n const nextActivities = activities.filter(\n ({ channelData: { clientActivityID } = {}, id }) =>\n // We will remove all \"sending messages\" activities and activities with same ID\n // \"clientActivityID\" is unique and used to track if the message has been sent and echoed back from the server\n !(nextClientActivityID && clientActivityID === nextClientActivityID) && !(id && id === nextActivity.id)\n );\n\n // Then, find the right (sorted) place to insert the new activity at, based on sequence ID.\n const indexToInsert = nextActivities.findIndex(\n ({ channelData: { 'webchat:sequence-id': sequenceId } = {} }) => (sequenceId || 0) > (nextSequenceId || 0)\n );\n\n // If no right place are found, append it\n nextActivities.splice(~indexToInsert ? indexToInsert : nextActivities.length, 0, nextActivity);\n\n return nextActivities;\n}\n\nexport default function createActivitiesReducer(\n ponyfill: GlobalScopePonyfill\n): Reducer<ActivitiesState, ActivitiesAction> {\n return function activities(state: ActivitiesState = DEFAULT_STATE, action: ActivitiesAction): ActivitiesState {\n switch (action.type) {\n case DELETE_ACTIVITY:\n state = updateIn(state, [({ id }: WebChatActivity) => id === action.payload.activityID]);\n break;\n\n case MARK_ACTIVITY:\n {\n const { payload } = action;\n\n state = updateIn(\n state,\n [({ id }: WebChatActivity) => id === payload.activityID, 'channelData', payload.name],\n () => payload.value\n );\n }\n\n break;\n\n case POST_ACTIVITY_PENDING:\n {\n let {\n payload: { activity }\n } = action;\n\n // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`.\n // Please refer to #4362 for details. Remove on or after 2024-07-31.\n activity = updateIn(activity, ['channelData', 'state'], () => SENDING);\n activity = updateIn(activity, ['channelData', 'webchat:send-status'], () => SENDING);\n\n state = upsertActivityWithSort(state, activity, ponyfill);\n }\n\n break;\n\n case POST_ACTIVITY_IMPEDED:\n state = updateIn(\n state,\n // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`.\n // Please refer to #4362 for details. Remove on or after 2024-07-31.\n [findByClientActivityID(action.meta.clientActivityID), 'channelData', 'state'],\n () => SEND_FAILED\n );\n\n break;\n\n case POST_ACTIVITY_REJECTED:\n state = updateIn(state, [findByClientActivityID(action.meta.clientActivityID)], activity => {\n activity = updateIn(activity, ['channelData', 'state'], () => SEND_FAILED);\n\n return updateIn(activity, ['channelData', 'webchat:send-status'], () => SEND_FAILED);\n });\n\n break;\n\n case POST_ACTIVITY_FULFILLED:\n {\n // We will replace the activity with the version from the server\n const activity = updateIn(\n updateIn(\n patchActivity(action.payload.activity, state, ponyfill),\n // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`.\n // Please refer to #4362 for details. Remove on or after 2024-07-31.\n ['channelData', 'state'],\n () => SENT\n ),\n ['channelData', 'webchat:send-status'],\n () => SENT\n );\n\n state = updateIn(state, [findByClientActivityID(action.meta.clientActivityID)], () => activity);\n }\n\n break;\n\n case INCOMING_ACTIVITY:\n {\n let {\n payload: { activity }\n } = action;\n\n // If the incoming activity is an echo back, we should keep the existing `channelData['webchat:send-status']` field.\n //\n // Otherwise, it will fail following scenario:\n //\n // 1. Send an activity to the service\n // 2. Service echoed back the activity\n // 3. Service did NOT return `postActivity` call\n // - EXPECT: `channelData['webchat:send-status']` should be \"sending\".\n // - ACTUAL: `channelData['webchat:send-status']` is `undefined` because the activity get overwritten by the echo back activity.\n // The echo back activity contains no `channelData['webchat:send-status']`.\n //\n // While we are looking out for the scenario above, we should also look at the following scenarios:\n //\n // 1. Service restore chat history, including activities sent from the user. These activities has the following characteristics:\n // - They do not have `channelData['webchat:send-status']`;\n // - They do not have an ongoing `postActivitySaga`;\n // - They should not previously appear in the chat history.\n // 2. We need to mark these activities as \"sent\".\n //\n // In the future, when we revamp our object model, we could use a different signal so we don't need the code below, for example:\n //\n // - If `activity.id` is set, it is \"sent\", because the chat service assigned an ID to the activity;\n // - If `activity.id` is not set, it is either \"sending\" or \"send failed\";\n // - If `activity.channelData['webchat:send-failed-reason']` is set, it is \"send failed\" with the reason, otherwise;\n // - It is sending.\n if (activity.from.role === 'user') {\n const { id } = activity;\n const clientActivityID = getClientActivityID(activity);\n\n const existingActivity = state.find(\n activity =>\n (clientActivityID && getClientActivityID(activity) === clientActivityID) || (id && activity.id === id)\n );\n\n if (existingActivity) {\n const {\n channelData: { 'webchat:send-status': sendStatus }\n } = existingActivity;\n\n if (sendStatus === SENDING || sendStatus === SEND_FAILED || sendStatus === SENT) {\n activity = updateIn(activity, ['channelData', 'webchat:send-status'], () => sendStatus);\n }\n } else {\n // If there are no existing activity, probably this activity is restored from chat history.\n // All outgoing activities restored from service means they arrived at the service successfully.\n // Thus, we are marking them as \"sent\".\n activity = updateIn(activity, ['channelData', 'webchat:send-status'], () => SENT);\n }\n }\n\n state = upsertActivityWithSort(state, activity, ponyfill);\n }\n\n break;\n\n default:\n break;\n }\n\n return state;\n };\n}\n","type DeleteActivityActionType = 'DIRECT_LINE/DELETE_ACTIVITY';\n\ntype DeleteActivityAction = {\n payload: { activityID: string };\n type: DeleteActivityActionType;\n};\n\nconst DELETE_ACTIVITY: DeleteActivityActionType = 'DIRECT_LINE/DELETE_ACTIVITY';\n\nfunction deleteActivity(activityID: string): DeleteActivityAction {\n return {\n type: DELETE_ACTIVITY,\n payload: { activityID }\n };\n}\n\nexport default deleteActivity;\nexport { DELETE_ACTIVITY };\nexport type { DeleteActivityAction };\n","import type { WebChatActivity } from '../types/WebChatActivity';\n\ntype IncomingActivityActionType = 'DIRECT_LINE/INCOMING_ACTIVITY';\n\ntype IncomingActivityAction = {\n payload: { activity: WebChatActivity };\n type: IncomingActivityActionType;\n};\n\nconst INCOMING_ACTIVITY: IncomingActivityActionType = 'DIRECT_LINE/INCOMING_ACTIVITY';\n\nfunction incomingActivity(activity: WebChatActivity): IncomingActivityAction {\n return {\n type: INCOMING_ACTIVITY,\n payload: { activity }\n };\n}\n\nexport default incomingActivity;\nexport { INCOMING_ACTIVITY };\nexport type { IncomingActivityAction };\n","// This type is only for this package only and help reducing size of the bundle.\n// Externals should use the string literal directly instead.\n\n// TODO: [P3] #4040 When improve treeshaking with named exports, we could export internals from `core` package.\n// import { SENDING, SEND_FAILED, SENT } from 'botframework-webchat-core/internal/SendStatus';\n\nconst SENDING = 'sending';\nconst SEND_FAILED = 'send failed';\nconst SENT = 'sent';\n\ntype SendStatus = typeof SENDING | typeof SEND_FAILED | typeof SENT;\n\nexport { SENDING, SEND_FAILED, SENT };\nexport type { SendStatus };\n","type Position = 'after' | 'before' | 'unknown';\n\nexport default function findBeforeAfter<T>(\n array: T[],\n getPosition: (value: T) => Position\n): [T | undefined, T | undefined, number | undefined] {\n let lastValue: T | undefined;\n let lastPosition: Position = 'unknown';\n\n for (let index = 0; index < array.length; index++) {\n const value = array[+index];\n const currentPosition = getPosition(value);\n\n if (\n ((lastPosition === 'before' || lastPosition === 'unknown') && currentPosition === 'after') ||\n (lastPosition === 'before' && (currentPosition === 'after' || currentPosition === 'unknown'))\n ) {\n return [lastValue, value, index];\n }\n\n lastValue = value;\n lastPosition = currentPosition;\n }\n\n if (lastPosition === 'before') {\n return [lastValue, undefined, array.length];\n }\n\n return [undefined, undefined, undefined];\n}\n","import type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\n\n/**\n * Creates a Redux reducer to store the ponyfill.\n *\n * The ponyfill is used to check if React and Redux does not use a matching ponyfill.\n */\nexport default function createInternalReducer(ponyfill: GlobalScopePonyfill): () => { ponyfill: GlobalScopePonyfill } {\n return () => ({ ponyfill });\n}\n","import updateIn from 'simple-update-in';\n\nimport { DISMISS_NOTIFICATION } from '../actions/dismissNotification';\nimport { SAGA_ERROR } from '../actions/sagaError';\nimport { SET_NOTIFICATION } from '../actions/setNotification';\nimport isForbiddenPropertyName from '../utils/isForbiddenPropertyName';\n\nimport type { DismissNotificationAction } from '../actions/dismissNotification';\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\nimport type { Notification } from '../types/internal/Notification';\nimport type { Reducer } from 'redux';\nimport type { SagaErrorAction } from '../actions/sagaError';\nimport type { SetNotificationAction } from '../actions/setNotification';\n\ntype NotificationsAction = DismissNotificationAction | SagaErrorAction | SetNotificationAction;\ntype NotificationsState = Record<string, Notification>;\n\nconst DEFAULT_STATE: NotificationsState = {};\n\nexport default function createNotificationsReducer({\n Date\n}: GlobalScopePonyfill): Reducer<NotificationsState, NotificationsAction> {\n return function notifications(\n state: NotificationsState = DEFAULT_STATE,\n action: NotificationsAction\n ): NotificationsState {\n const { type } = action;\n const now = Date.now();\n\n if (type === DISMISS_NOTIFICATION) {\n state = updateIn(state, [action.payload.id]);\n } else if (type === SAGA_ERROR) {\n state = updateIn(state, ['connectivitystatus', 'message'], () => 'javascripterror');\n } else if (type === SET_NOTIFICATION) {\n const { alt, data, id, level, message } = action.payload;\n\n if (!isForbiddenPropertyName(id)) {\n // Mitigated through denylisting.\n // eslint-disable-next-line security/detect-object-injection\n const notification = state[id];\n\n if (\n !notification ||\n alt !== notification.alt ||\n !Object.is(data, notification.data) ||\n level !== notification.level ||\n message !== notification.message\n ) {\n state = updateIn(state, [id], () => ({\n alt,\n data,\n id,\n level,\n message,\n timestamp: now\n }));\n }\n }\n }\n\n return state;\n };\n}\n","let FORBIDDEN_PROPERTY_NAMES;\n\nfunction getForbiddenPropertyNames(): string[] {\n return (\n FORBIDDEN_PROPERTY_NAMES ||\n (FORBIDDEN_PROPERTY_NAMES = Object.freeze(\n Array.from(\n new Set([\n // As-of writing, `Object.prototype` includes:\n // __defineGetter__\n // __defineSetter__\n // __lookupGetter__\n // __lookupSetter\n // __proto__\n // constructor\n // hasOwnProperty\n // isPrototypeOf\n // propertyIsEnumerable\n // toLocaleString\n // toString\n // valueOf\n ...Object.getOwnPropertyNames(Object.prototype),\n\n 'prototype'\n ])\n )\n ))\n );\n}\n\nexport default function isForbiddenPropertyName(propertyName: string): boolean {\n return getForbiddenPropertyNames().includes(propertyName);\n}\n","/* eslint no-case-declarations: \"off\" */\n/* eslint no-unused-vars: \"off\" */\n\nimport updateIn from 'simple-update-in';\n\nimport { INCOMING_ACTIVITY } from '../actions/incomingActivity';\nimport { POST_ACTIVITY_PENDING } from '../actions/postActivity';\n\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\nimport type { IncomingActivityAction } from '../actions/incomingActivity';\nimport type { PostActivityPendingAction } from '../actions/postActivity';\nimport type { Reducer } from 'redux';\n\ntype TypingState = Record<\n string,\n {\n at: number;\n last: number;\n name: string;\n role: 'bot' | 'channel' | 'user';\n }\n>;\ntype TypingAction = IncomingActivityAction | PostActivityPendingAction;\n\nconst DEFAULT_STATE: TypingState = {};\n\nexport default function createLastTypingReducer({ Date }: GlobalScopePonyfill): Reducer<TypingState, TypingAction> {\n return function lastTyping(state: TypingState = DEFAULT_STATE, { payload, type }: TypingAction): TypingState {\n if (type === INCOMING_ACTIVITY || type === POST_ACTIVITY_PENDING) {\n const {\n activity: {\n from: { id, name, role },\n type: activityType\n }\n } = payload;\n\n if (activityType === 'typing') {\n const now = Date.now();\n\n state = updateIn(state, [id, 'at'], at => at || now);\n state = updateIn(state, [id, 'last'], () => now);\n state = updateIn(state, [id, 'name'], () => name);\n state = updateIn(state, [id, 'role'], () => role);\n } else if (activityType === 'message') {\n state = updateIn(state, [id]);\n }\n }\n\n return state;\n };\n}\n","import { SET_DICTATE_INTERIMS } from '../actions/setDictateInterims';\n\nconst DEFAULT_STATE = [];\n\nexport default function dictateInterims(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_DICTATE_INTERIMS:\n state = payload.dictateInterims;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { DICTATING, IDLE, STARTING, STOPPING, WILL_START } from '../constants/DictateState';\n\nimport { SET_DICTATE_STATE } from '../actions/setDictateState';\nimport { START_DICTATE } from '../actions/startDictate';\nimport { STOP_DICTATE } from '../actions/stopDictate';\n\nconst DEFAULT_STATE = IDLE;\n\nexport default function dictateState(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_DICTATE_STATE:\n state = payload.dictateState;\n break;\n\n case START_DICTATE:\n if (state === IDLE || state === STOPPING || state === WILL_START) {\n state = STARTING;\n }\n\n break;\n\n case STOP_DICTATE:\n if (state === STARTING || state === DICTATING) {\n state = STOPPING;\n } else if (state === WILL_START) {\n state = IDLE;\n }\n\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { SET_LANGUAGE } from '../actions/setLanguage';\n\nconst DEFAULT_STATE = 'en-US';\n\nexport default function language(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_LANGUAGE:\n state = payload.language;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","// TODO: [P3] We should obsolete this action in favor of DIRECT_LINE/UPDATE_CONNECTION_STATUS.\n// But today, both actions behave differently, this one only dispatch after connected and not dispatched when disconnected.\nconst CONNECTION_STATUS_UPDATE = 'DIRECT_LINE/CONNECTION_STATUS_UPDATE';\n\nexport default function connectionStatusUpdate(connectionStatus) {\n return {\n type: CONNECTION_STATUS_UPDATE,\n payload: { connectionStatus }\n };\n}\n\nexport { CONNECTION_STATUS_UPDATE };\n","import { CONNECTION_STATUS_UPDATE } from '../actions/connectionStatusUpdate';\n\nconst DEFAULT_STATE = 0;\n\nexport default function readyState(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case CONNECTION_STATUS_UPDATE:\n state = payload.connectionStatus;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","const SET_REFERENCE_GRAMMAR_ID = 'WEB_CHAT/SET_REFERENCE_GRAMMAR_ID';\n\nexport default function setReferenceGrammarID(referenceGrammarID) {\n return {\n type: SET_REFERENCE_GRAMMAR_ID,\n payload: { referenceGrammarID }\n };\n}\n\nexport { SET_REFERENCE_GRAMMAR_ID };\n","import { SET_REFERENCE_GRAMMAR_ID } from '../actions/setReferenceGrammarID';\n\nconst DEFAULT_STATE = null;\n\nexport default function referenceGrammarID(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_REFERENCE_GRAMMAR_ID:\n state = payload.referenceGrammarID || null;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { SET_SEND_BOX_ATTACHMENTS } from '../actions/setSendBoxAttachments';\nimport type { SendBoxAttachment } from '../types/SendBoxAttachment';\n\nconst DEFAULT_STATE: readonly SendBoxAttachment[] = Object.freeze([]);\n\nexport default function sendBoxAttachments(state = DEFAULT_STATE, { payload, type }): readonly SendBoxAttachment[] {\n switch (type) {\n case SET_SEND_BOX_ATTACHMENTS:\n state = payload.attachments;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { SET_SEND_BOX } from '../actions/setSendBox';\n\nconst DEFAULT_STATE = '';\n\nexport default function sendBoxValue(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_SEND_BOX:\n state = payload.text;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { SET_SEND_TIMEOUT } from '../actions/setSendTimeout';\n\nconst DEFAULT_STATE = 20000;\n\nexport default function sendTimeout(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_SEND_TIMEOUT:\n state = payload.sendTimeout;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { SET_SEND_TYPING_INDICATOR } from '../actions/setSendTypingIndicator';\n\nconst DEFAULT_STATE = false;\n\nexport default function sendTypingIndicator(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_SEND_TYPING_INDICATOR:\n state = payload.sendTypingIndicator;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { START_SPEAKING_ACTIVITY } from '../actions/startSpeakingActivity';\nimport { STOP_SPEAKING_ACTIVITY } from '../actions/stopSpeakingActivity';\n\nexport default function shouldSpeakIncomingActivity(state = false, { type }) {\n switch (type) {\n case START_SPEAKING_ACTIVITY:\n state = true;\n break;\n\n case STOP_SPEAKING_ACTIVITY:\n state = false;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","const EMPTY_ARRAY = [];\n\nconst SET_SUGGESTED_ACTIONS = 'WEB_CHAT/SET_SUGGESTED_ACTIONS';\n\nexport default function setSuggestedActions(suggestedActions = EMPTY_ARRAY) {\n return {\n type: SET_SUGGESTED_ACTIONS,\n payload: { suggestedActions }\n };\n}\n\nexport { SET_SUGGESTED_ACTIONS };\n","import { CLEAR_SUGGESTED_ACTIONS } from '../actions/clearSuggestedActions';\nimport { SET_SUGGESTED_ACTIONS } from '../actions/setSuggestedActions';\n\nconst DEFAULT_STATE = [];\n\nexport default function suggestedActions(state = DEFAULT_STATE, { payload = {}, type }) {\n switch (type) {\n case SET_SUGGESTED_ACTIONS:\n if ((payload.suggestedActions || []).length) {\n state = [].slice.call(payload.suggestedActions);\n } else {\n state = DEFAULT_STATE;\n }\n break;\n case CLEAR_SUGGESTED_ACTIONS:\n state = DEFAULT_STATE;\n break;\n default:\n break;\n }\n\n return state;\n}\n","import { fork } from 'redux-saga/effects';\n\nimport clearSuggestedActionsOnPostActivitySaga from './sagas/clearSuggestedActionsOnPostActivitySaga';\nimport connectionStatusToNotificationSaga from './sagas/connectionStatusToNotificationSaga';\nimport connectionStatusUpdateSaga from './sagas/connectionStatusUpdateSaga';\nimport connectSaga from './sagas/connectSaga';\nimport detectSlowConnectionSaga from './sagas/detectSlowConnectionSaga';\nimport emitTypingIndicatorToPostActivitySaga from './sagas/emitTypingIndicatorToPostActivitySaga';\nimport markAllAsSpokenOnStopSpeakActivitySaga from './sagas/markAllAsSpokenOnStopSpeakActivitySaga';\nimport observeActivitySaga from './sagas/observeActivitySaga';\nimport postActivitySaga from './sagas/postActivitySaga';\nimport queueIncomingActivitySaga from './sagas/queueIncomingActivitySaga';\nimport sendEventToPostActivitySaga from './sagas/sendEventToPostActivitySaga';\nimport sendFilesToPostActivitySaga from './sagas/sendFilesToPostActivitySaga';\nimport sendMessageBackToPostActivitySaga from './sagas/sendMessageBackToPostActivitySaga';\nimport sendMessageToPostActivitySaga from './sagas/sendMessageToPostActivitySaga';\nimport sendPostBackToPostActivitySaga from './sagas/sendPostBackToPostActivitySaga';\nimport sendTypingIndicatorOnSetSendBoxSaga from './sagas/sendTypingIndicatorOnSetSendBoxSaga';\nimport speakActivityAndStartDictateOnIncomingActivityFromOthersSaga from './sagas/speakActivityAndStartDictateOnIncomingActivityFromOthersSaga';\nimport startDictateOnSpeakCompleteSaga from './sagas/startDictateOnSpeakCompleteSaga';\nimport startSpeakActivityOnPostActivitySaga from './sagas/startSpeakActivityOnPostActivitySaga';\nimport stopDictateOnCardActionSaga from './sagas/stopDictateOnCardActionSaga';\nimport stopSpeakingActivityOnInputSaga from './sagas/stopSpeakingActivityOnInputSaga';\nimport submitSendBoxSaga from './sagas/submitSendBoxSaga';\n\nimport type { GlobalScopePonyfill } from './types/GlobalScopePonyfill';\nimport type { Saga } from 'redux-saga';\n\ntype CreateSagasOptions = {\n ponyfill: GlobalScopePonyfill;\n};\n\nexport default function createSagas({ ponyfill }: CreateSagasOptions): Saga {\n return function* () {\n // TODO: [P2] Since fork() silently catches all exceptions, we need to find a way to console.error them out.\n\n yield fork(clearSuggestedActionsOnPostActivitySaga);\n yield fork(connectionStatusToNotificationSaga);\n yield fork(connectionStatusUpdateSaga);\n yield fork(connectSaga);\n yield fork(detectSlowConnectionSaga, ponyfill);\n yield fork(emitTypingIndicatorToPostActivitySaga);\n yield fork(markAllAsSpokenOnStopSpeakActivitySaga);\n yield fork(observeActivitySaga);\n yield fork(postActivitySaga, ponyfill);\n yield fork(queueIncomingActivitySaga, ponyfill);\n yield fork(sendEventToPostActivitySaga);\n yield fork(sendFilesToPostActivitySaga);\n yield fork(sendMessageBackToPostActivitySaga);\n yield fork(sendMessageToPostActivitySaga);\n yield fork(sendPostBackToPostActivitySaga);\n yield fork(sendTypingIndicatorOnSetSendBoxSaga, ponyfill);\n yield fork(speakActivityAndStartDictateOnIncomingActivityFromOthersSaga);\n yield fork(startDictateOnSpeakCompleteSaga);\n yield fork(startSpeakActivityOnPostActivitySaga);\n yield fork(stopDictateOnCardActionSaga);\n yield fork(stopSpeakingActivityOnInputSaga);\n yield fork(submitSendBoxSaga);\n };\n}\n","import { put, takeEvery } from 'redux-saga/effects';\n\nimport { POST_ACTIVITY_PENDING } from '../actions/postActivity';\nimport setSuggestedActions from '../actions/setSuggestedActions';\nimport whileConnected from './effects/whileConnected';\n\nfunction* clearSuggestedActions() {\n yield put(setSuggestedActions());\n}\n\nfunction* clearSuggestedActionsOnPostActivity() {\n yield takeEvery(\n ({ payload, type }) => type === POST_ACTIVITY_PENDING && payload.activity.type === 'message',\n clearSuggestedActions\n );\n}\n\nexport default function* clearSuggestedActionsOnPostActivitySaga() {\n yield whileConnected(clearSuggestedActionsOnPostActivity);\n}\n","import { call, cancel, fork, take } from 'redux-saga/effects';\n\nimport { CONNECT_FULFILLING } from '../../actions/connect';\nimport { DISCONNECT_PENDING } from '../../actions/disconnect';\nimport { RECONNECT_PENDING, RECONNECT_FULFILLING } from '../../actions/reconnect';\n\nimport type { DirectLineJSBotConnection } from '../../types/external/DirectLineJSBotConnection';\n\nexport default function whileConnectedEffect<P extends any[]>(\n fn: (\n {\n directLine,\n userID,\n username\n }: {\n directLine: DirectLineJSBotConnection;\n userID: string;\n username: string;\n },\n ...args: P\n ) => void,\n ...args: P\n) {\n return call(function* whileConnected() {\n for (;;) {\n const {\n meta: { userID, username },\n payload: { directLine }\n }: {\n meta: {\n userID: string;\n username: string;\n };\n payload: { directLine: DirectLineJSBotConnection };\n } = yield take([CONNECT_FULFILLING, RECONNECT_FULFILLING]);\n\n const task = yield fork(fn, { directLine, userID, username }, ...args);\n\n // When we receive DISCONNECT_PENDING or RECONNECT_PENDING, the Direct Line connection is currently busy and should not be used.\n\n yield take([DISCONNECT_PENDING, RECONNECT_PENDING]);\n yield cancel(task);\n }\n });\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [0, 1, 2, 3, 4] }] */\n\nimport { call, put, takeLatest } from 'redux-saga/effects';\n\nimport { CONNECT } from '../actions/connect';\nimport createPromiseQueue from '../createPromiseQueue';\nimport setNotification from '../actions/setNotification';\n\nconst CONNECTIVITY_STATUS_NOTIFICATION_ID = 'connectivitystatus';\n\nfunction subscribeToPromiseQueue(observable) {\n const { push, shift } = createPromiseQueue();\n const subscription = observable.subscribe({ next: push });\n\n return {\n shift,\n unsubscribe() {\n subscription.unsubscribe();\n }\n };\n}\n\nfunction* connectionStatusToNotification({ payload: { directLine } }) {\n const { shift, unsubscribe } = subscribeToPromiseQueue(directLine.connectionStatus$);\n\n try {\n let reconnecting;\n\n for (;;) {\n const value = yield call(shift);\n\n switch (value) {\n case 0:\n case 1:\n yield put(\n setNotification({\n id: CONNECTIVITY_STATUS_NOTIFICATION_ID,\n level: 'info',\n message: reconnecting ? 'reconnecting' : 'connecting'\n })\n );\n\n break;\n\n case 2:\n reconnecting = 1;\n\n yield put(\n setNotification({\n id: CONNECTIVITY_STATUS_NOTIFICATION_ID,\n level: 'success',\n message: 'connected'\n })\n );\n\n break;\n\n case 3:\n case 4:\n reconnecting = 1;\n\n yield put(\n setNotification({\n id: CONNECTIVITY_STATUS_NOTIFICATION_ID,\n level: 'error',\n message: 'failedtoconnect'\n })\n );\n\n break;\n\n default:\n break;\n }\n }\n } finally {\n unsubscribe();\n }\n}\n\nexport default function* () {\n yield takeLatest(CONNECT, connectionStatusToNotification);\n}\n","import createDeferred from 'p-defer-es5';\n\nexport default function createPromiseQueue() {\n let deferred;\n const queue = [];\n\n const push = value => {\n if (deferred) {\n const { resolve } = deferred;\n\n deferred = null;\n resolve(value);\n } else {\n queue.push(value);\n }\n };\n\n const shift = () =>\n queue.length ? Promise.resolve(queue.shift()) : (deferred || (deferred = createDeferred())).promise;\n\n return {\n push,\n shift\n };\n}\n","import { put } from 'redux-saga/effects';\n\nimport connectionStatusUpdate from '../actions/connectionStatusUpdate';\nimport observeEach from './effects/observeEach';\nimport setReferenceGrammarID from '../actions/setReferenceGrammarID';\nimport whileConnected from './effects/whileConnected';\n\nfunction* observeConnectionStatus({ directLine }) {\n yield observeEach(directLine.connectionStatus$, function* updateConnectionStatus(connectionStatus) {\n yield put(connectionStatusUpdate(connectionStatus));\n yield put(setReferenceGrammarID(directLine.referenceGrammarId));\n });\n}\n\nexport default function* connectionStatusUpdateSaga() {\n yield whileConnected(observeConnectionStatus);\n}\n","import { call } from 'redux-saga/effects';\n\nimport createPromiseQueue from '../../createPromiseQueue';\n\nexport default function observeEachEffect(observable, saga) {\n return call(function* observeEach() {\n const queue = createPromiseQueue();\n const subscription = observable.subscribe({ next: queue.push });\n\n try {\n for (;;) {\n const result = yield call(queue.shift);\n\n yield call(saga, result);\n }\n } finally {\n subscription.unsubscribe();\n }\n });\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [0, 10] }] */\n\nimport { call, cancel, cancelled, fork, put, race, take } from 'redux-saga/effects';\n\nimport { jwtDecode } from 'jwt-decode';\n\nimport { CONNECT } from '../actions/connect';\nimport createPromiseQueue from '../createPromiseQueue';\nimport forkPut from './effects/forkPut';\nimport uniqueID from '../utils/uniqueID';\nimport updateConnectionStatus, { UPDATE_CONNECTION_STATUS } from '../actions/updateConnectionStatus';\n\nimport { DISCONNECT, DISCONNECT_PENDING, DISCONNECT_FULFILLED } from '../actions/disconnect';\n\nimport { RECONNECT } from '../actions/reconnect';\n\nconst CONNECTING = 1;\nconst ONLINE = 2;\nconst UNINITIALIZED = 0;\n\nfunction randomUserID() {\n return `r_${uniqueID().substring(0, 10)}`;\n}\n\nfunction* observeAndPutConnectionStatusUpdate(directLine) {\n const connectionStatusQueue = createPromiseQueue();\n const connectionStatusSubscription = directLine.connectionStatus$.subscribe({ next: connectionStatusQueue.push });\n\n try {\n for (;;) {\n const connectionStatus = yield call(connectionStatusQueue.shift);\n\n yield put(updateConnectionStatus(connectionStatus));\n }\n } finally {\n connectionStatusSubscription.unsubscribe();\n }\n}\n\n// TODO: [P2] We should move this check and rectification to DirectLineJS.\nfunction rectifyUserID(directLine, userIDFromAction) {\n const { token } = directLine;\n\n let userIDFromToken;\n\n // TODO: Add test to make sure \"jwt-decode\" work as expected.\n try {\n userIDFromToken = (jwtDecode(token) || {}).user;\n // eslint-disable-next-line no-empty\n } catch (err) {}\n\n const result = {\n fromAction: userIDFromAction,\n fromToken: userIDFromToken\n };\n\n if (userIDFromToken) {\n if (userIDFromAction && userIDFromAction !== userIDFromToken) {\n console.warn(\n 'Web Chat: user ID is both specified in the Direct Line token and passed in, will use the user ID from the token.'\n );\n }\n\n result.final = userIDFromToken;\n } else if (userIDFromAction) {\n if (typeof userIDFromAction !== 'string') {\n console.warn('Web Chat: user ID must be a string.');\n\n result.final = randomUserID();\n } else if (/^dl_/u.test(userIDFromAction)) {\n console.warn(\n 'Web Chat: user ID prefixed with \"dl_\" is reserved and must be embedded into the Direct Line token to prevent forgery.'\n );\n\n result.final = randomUserID();\n } else {\n result.final = userIDFromAction;\n }\n } else {\n result.final = randomUserID();\n }\n\n return result;\n}\n\n// We could make this a Promise instead of saga (function generator) to make the code cleaner, if:\n// 1. We found a way to cancel Promise\n// 2. subscribe() are shared amongst all subscriptions, e.g. turn Observable into events\nfunction* connectSaga(directLine) {\n // DirectLineJS starts the connection only after the first subscriber for activity$, not connectionStatus$\n const activitySubscription = directLine.activity$.subscribe({ next: () => 0 });\n const unsubscribeActivity = activitySubscription.unsubscribe.bind(activitySubscription);\n\n try {\n for (;;) {\n const {\n payload: { connectionStatus }\n } = yield take(UPDATE_CONNECTION_STATUS);\n\n if (connectionStatus === ONLINE) {\n // TODO: [P2] DirectLineJS should kill the connection when we unsubscribe\n // But currently in v3, DirectLineJS does not have this functionality\n // Thus, we need to call \"end()\" explicitly\n\n return () => {\n unsubscribeActivity();\n directLine.end();\n };\n } else if (connectionStatus !== UNINITIALIZED && connectionStatus !== CONNECTING) {\n throw new Error(`Failed to connect, DirectLineJS returned ${connectionStatus}.`);\n }\n }\n } catch (err) {\n // We will unsubscribe if we failed to connect or got cancelled only.\n // We should not unsubscribe in happy case, because DirectLineJS should relying on the subscription to connect/disconnect.\n unsubscribeActivity();\n\n throw err;\n } finally {\n if (yield cancelled()) {\n unsubscribeActivity();\n }\n }\n}\n\nfunction* reconnectSaga() {\n for (;;) {\n const {\n payload: { connectionStatus }\n } = yield take(UPDATE_CONNECTION_STATUS);\n\n if (connectionStatus === ONLINE) {\n break;\n } else if (connectionStatus !== CONNECTING) {\n throw new Error(`Failed to reconnect. DirectLineJS returned ${connectionStatus}.`);\n }\n }\n}\n\n// This is similar to behavior of redux-promise-middleware, but using saga instead of Promise.\n// We guarantee PENDING -> FULFILLING -> FULFILLED, or PENDING -> REJECTED. This will help us simplify logic in other part of code.\n// Note that after the saga is cancelled, subsequent call to put() will be ignored silently.\nfunction* runAsyncEffect({ type, meta, payload }, callEffectFactory) {\n try {\n yield forkPut({ type: `${type}_PENDING`, meta, payload });\n\n const result = yield callEffectFactory();\n\n yield forkPut({ type: `${type}_FULFILLING`, meta, payload }, { type: `${type}_FULFILLED`, meta, payload });\n\n return result;\n } catch (payload) {\n yield forkPut({ type: `${type}_REJECTED`, error: true, meta, payload });\n\n throw payload;\n }\n}\n\nfunction* takeDisconnectAsError() {\n yield take(DISCONNECT);\n\n throw new Error('disconnected');\n}\n\nfunction runAsyncEffectUntilDisconnect(baseAction, callEffectFactory) {\n // We cannot use saga cancel() here, because cancelling saga will prohibit us from sending *_REJECTED.\n // Without REJECTED, it impacts our assumptions around PENDING/FULFILLED/REJECTED.\n return runAsyncEffect(baseAction, function* runUntilDisconnect() {\n const { result } = yield race({\n _: takeDisconnectAsError(),\n result: callEffectFactory()\n });\n\n return result;\n });\n}\n\nexport default function* () {\n for (;;) {\n const {\n payload: { directLine, userID: userIDFromAction, username }\n } = yield take(CONNECT);\n\n const updateConnectionStatusTask = yield fork(observeAndPutConnectionStatusUpdate, directLine);\n const rectifiedUserID = rectifyUserID(directLine, userIDFromAction);\n\n // TODO: [P2] Checks if this attached subtask will get killed if the parent task is complete (peacefully), errored out, or cancelled.\n const meta = {\n userID: rectifiedUserID.final,\n username\n };\n\n // Send user ID to DirectLineJS if it was specified from props of <API.Composer>.\n // However, DirectLineJS may still prefer the user ID from token if it is burnt into the token.\n // To prevent DirectLineJS giving false warnings, we will only call setUserId() if it is different than the token.\n directLine.setUserId && rectifiedUserID.fromToken !== meta.userID && directLine.setUserId(meta.userID);\n\n let disconnectMeta;\n\n // We will dispatch CONNECT_PENDING, wait for connect completed, errored, or cancelled (thru disconnect).\n // Then dispatch CONNECT_FULFILLED/CONNECT_REJECTED as needed.\n try {\n const endDirectLine = yield runAsyncEffectUntilDisconnect(\n {\n type: CONNECT,\n meta,\n payload: { directLine }\n },\n () => call(connectSaga, directLine)\n );\n\n try {\n for (;;) {\n // We are waiting for connection status change or disconnect action.\n const { updateConnectionStatusAction: { payload: { connectionStatus } = {} } = {} } = yield race({\n _: take(DISCONNECT),\n updateConnectionStatusAction: take(UPDATE_CONNECTION_STATUS)\n });\n\n // If it is not disconnect action, connectionStatus will not be undefined.\n if (connectionStatus === CONNECTING) {\n // If DirectLineJS changed connectionStatus to CONNECTING, we will treat it as reconnect status.\n yield runAsyncEffectUntilDisconnect(\n {\n type: RECONNECT,\n meta,\n payload: { directLine }\n },\n () => call(reconnectSaga)\n );\n } else if (connectionStatus !== ONLINE) {\n if (typeof connectionStatus !== 'undefined') {\n // We need to kill the connection because DirectLineJS want to close it.\n throw new Error(`Connection status changed to ${connectionStatus}`);\n } else {\n // Someone dispatched disconnect action.\n break;\n }\n }\n }\n } finally {\n endDirectLine();\n }\n } catch (error) {\n disconnectMeta = { error };\n } finally {\n yield cancel(updateConnectionStatusTask);\n\n // Even if the connection is interrupted, we will still emit DISCONNECT_PENDING.\n // This will makes handling logic easier. If CONNECT_FULFILLED, we guarantee DISCONNECT_PENDING.\n yield forkPut(\n { type: DISCONNECT_PENDING, meta: disconnectMeta, payload: { directLine } },\n { type: DISCONNECT_FULFILLED, meta: disconnectMeta, payload: { directLine } }\n );\n }\n }\n}\n","import { fork, put } from 'redux-saga/effects';\n\n// In redux-saga, if we call the following effects in order, we might miss the take('C').\n// 1. take('A')\n// 2. put({ type: 'B' })\n// 3. take('C')\n\n// We need to modify step 2 to:\n// 2. fork(function* () { yield put({ type: 'B' }) })\n\n// This is a helper function for this purpose.\n\nexport default function forkPutEffect(...actions) {\n return fork(function* forkPut() {\n for (const action of actions) {\n yield put(action);\n }\n });\n}\n","const UPDATE_CONNECTION_STATUS = 'DIRECT_LINE/UPDATE_CONNECTION_STATUS';\n\nexport default function updateConnectionStatus(connectionStatus) {\n return {\n type: UPDATE_CONNECTION_STATUS,\n payload: { connectionStatus }\n };\n}\n\nexport { UPDATE_CONNECTION_STATUS };\n","import { call, put, race, take } from 'redux-saga/effects';\n\nimport { CONNECT_FULFILLED, CONNECT_PENDING, CONNECT_REJECTED, CONNECT_STILL_PENDING } from '../actions/connect';\nimport { RECONNECT_FULFILLED, RECONNECT_PENDING, RECONNECT_REJECTED } from '../actions/reconnect';\nimport sleep from '../utils/sleep';\n\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\n\nconst SLOW_CONNECTION_AFTER = 15000;\n\nexport default function* detectSlowConnectionSaga(ponyfill: GlobalScopePonyfill) {\n for (;;) {\n yield take([CONNECT_PENDING, RECONNECT_PENDING]);\n\n const connectivityRace = yield race({\n fulfilled: take([CONNECT_FULFILLED, RECONNECT_FULFILLED]),\n rejected: take([CONNECT_REJECTED, RECONNECT_REJECTED]),\n slow: call(sleep, SLOW_CONNECTION_AFTER, ponyfill)\n });\n\n if ('slow' in connectivityRace) {\n yield put({ type: CONNECT_STILL_PENDING });\n }\n }\n}\n","import type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\n\nexport default function sleep(interval: number, ponyfill: GlobalScopePonyfill): Promise<void> {\n return new Promise(resolve => ponyfill.setTimeout(resolve, Math.max(interval, 0)));\n}\n","import { put, takeEvery } from 'redux-saga/effects';\n\nimport { EMIT_TYPING_INDICATOR } from '../actions/emitTypingIndicator';\nimport postActivity from '../actions/postActivity';\nimport whileConnected from './effects/whileConnected';\n\nfunction* postTypingActivity() {\n yield put(\n postActivity({\n type: 'typing'\n })\n );\n}\n\nfunction* emitTypingActivityToPostActivity() {\n yield takeEvery(({ type }) => type === EMIT_TYPING_INDICATOR, postTypingActivity);\n}\n\nexport default function* emitTypingActivityToPostActivitySaga() {\n yield whileConnected(emitTypingActivityToPostActivity);\n}\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport { of as activitiesOf } from '../selectors/activities';\nimport { STOP_SPEAKING_ACTIVITY } from '../actions/stopSpeakingActivity';\nimport markActivity from '../actions/markActivity';\nimport speakingActivity from '../definitions/speakingActivity';\n\nfunction* markAllAsSpoken() {\n const speakingActivities = yield select(activitiesOf(speakingActivity));\n\n for (const activity of speakingActivities) {\n yield put(markActivity(activity, 'speak', false));\n }\n}\n\n// TODO: [P4] We should turn this into a reducer instead\nexport default function* markAllAsSpokenOnStopSpeakActivitySaga() {\n yield takeEvery(STOP_SPEAKING_ACTIVITY, markAllAsSpoken);\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\nimport type { WebChatActivity } from '../types/WebChatActivity';\n\nconst activities = ({ activities }: ReduxState) => activities;\n\nconst of = (predicate: (activity: WebChatActivity) => boolean) => (state: ReduxState) =>\n activities(state).filter(predicate);\nconst ofID = (targetID: string) => of(({ id }) => id === targetID);\nconst ofType = (targetType: string) => of(({ type }) => type === targetType);\n\nexport default activities;\nexport { of, ofID, ofType };\n","// If true, the activity is in the queue and needs to be spoken.\n\nexport default function speakingActivity(activity) {\n return activity.channelData?.speak;\n}\n","import { put } from 'redux-saga/effects';\nimport updateIn from 'simple-update-in';\n\nimport observeEach from './effects/observeEach';\nimport queueIncomingActivity from '../actions/queueIncomingActivity';\nimport whileConnected from './effects/whileConnected';\nimport type { DirectLineActivity } from '../types/external/DirectLineActivity';\nimport type { DirectLineJSBotConnection } from '../types/external/DirectLineJSBotConnection';\nimport type { WebChatActivity } from '../types/WebChatActivity';\n\nconst PASSTHRU_FN = (value: unknown) => value;\n\nfunction patchActivityWithFromRole(activity: DirectLineActivity, userID?: string): DirectLineActivity {\n // Some activities, such as \"ConversationUpdate\", does not have \"from\" defined.\n // And although \"role\" is defined in Direct Line spec, it was not sent over the wire.\n // We normalize the activity here to simplify null-check and logic later.\n\n // Patch activity.from.role to make sure its either \"bot\", \"user\", or \"channel\"\n if (!activity.from) {\n activity = updateIn(activity, ['from', 'role'], () => 'channel');\n } else if (!activity.from.role) {\n if (activity.from.id === userID) {\n activity = updateIn(activity, ['from', 'role'], () => 'user');\n } else if (activity.from.id) {\n activity = updateIn(activity, ['from', 'role'], () => 'bot');\n } else {\n activity = updateIn(activity, ['from', 'role'], () => 'channel');\n }\n }\n\n return activity;\n}\n\nfunction patchNullAsUndefined(activity: DirectLineActivity): DirectLineActivity {\n // These fields are known used in Web Chat and in any cases, they should not be null, but undefined.\n // The only field omitted is \"value\", as it could be null purposefully.\n\n return [\n 'attachmentLayout',\n 'attachments',\n 'channelData',\n 'conversation',\n 'entities',\n 'from',\n 'inputHint',\n 'locale',\n 'name',\n 'recipient',\n 'speak',\n 'suggestedActions',\n 'text',\n 'textFormat',\n 'timestamp',\n 'type'\n ].reduce((activity, name) => {\n const { [name]: value } = activity;\n\n return updateIn(activity, [name], typeof value === 'undefined' || value === null ? undefined : PASSTHRU_FN);\n }, activity);\n}\n\n// Patching the `from.name` to be a human readable name.\n// We use the `from.name` for typing indicator, such that it read \"John is typing...\".\nfunction patchFromName(activity: DirectLineActivity) {\n return updateIn(activity, ['from', 'name'], (name: string | undefined): string => {\n const { channelId, from = {} } = activity;\n\n if ((channelId === 'directline' || channelId === 'webchat') && from.id === from.name && from.role === 'bot') {\n return 'Bot';\n }\n\n return name;\n });\n}\n\nfunction* observeActivity({ directLine, userID }: { directLine: DirectLineJSBotConnection; userID?: string }) {\n yield observeEach(directLine.activity$, function* observeActivity(activity: DirectLineActivity) {\n // TODO: [P2] #3953 Move the patching logic to a DirectLineJS wrapper, instead of too close to inners of Web Chat.\n activity = patchNullAsUndefined(activity);\n activity = patchActivityWithFromRole(activity, userID);\n activity = patchFromName(activity);\n\n yield put(queueIncomingActivity(activity as WebChatActivity));\n });\n}\n\nexport default function* observeActivitySaga() {\n yield whileConnected(observeActivity);\n}\n","const QUEUE_INCOMING_ACTIVITY = 'DIRECT_LINE/QUEUE_INCOMING_ACTIVITY';\n\nexport default function queueIncomingActivity(activity) {\n return {\n type: QUEUE_INCOMING_ACTIVITY,\n payload: { activity }\n };\n}\n\nexport { QUEUE_INCOMING_ACTIVITY };\n","import { all, call, cancelled, put, race, select, take, takeEvery } from 'redux-saga/effects';\n\nimport { INCOMING_ACTIVITY } from '../actions/incomingActivity';\nimport {\n POST_ACTIVITY,\n POST_ACTIVITY_FULFILLED,\n POST_ACTIVITY_IMPEDED,\n POST_ACTIVITY_PENDING,\n POST_ACTIVITY_REJECTED\n} from '../actions/postActivity';\nimport dateToLocaleISOString from '../utils/dateToLocaleISOString';\nimport deleteKey from '../utils/deleteKey';\nimport languageSelector from '../selectors/language';\nimport observeOnce from './effects/observeOnce';\nimport sendTimeoutSelector from '../selectors/sendTimeout';\nimport sleep from '../utils/sleep';\nimport uniqueID from '../utils/uniqueID';\nimport whileConnected from './effects/whileConnected';\n\nimport type { DirectLineActivity } from '../types/external/DirectLineActivity';\nimport type { DirectLineJSBotConnection } from '../types/external/DirectLineJSBotConnection';\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\nimport type { IncomingActivityAction } from '../actions/incomingActivity';\nimport type {\n PostActivityAction,\n PostActivityFulfilledAction,\n PostActivityImpededAction,\n PostActivityPendingAction,\n PostActivityRejectedAction\n} from '../actions/postActivity';\nimport type { WebChatActivity } from '../types/WebChatActivity';\nimport type { WebChatOutgoingActivity } from '../types/internal/WebChatOutgoingActivity';\n\n// After 5 minutes, the saga will stop from listening for echo backs and consider the outgoing message as permanently undeliverable.\n// This value must be equals to or larger than the user-defined `styleOptions.sendTimeout`.\nconst HARD_SEND_TIMEOUT = 300000;\n\nfunction* postActivity(\n directLine: DirectLineJSBotConnection,\n userID: string,\n username: string,\n numActivitiesPosted: number,\n { meta: { method }, payload: { activity } }: PostActivityAction,\n ponyfill: GlobalScopePonyfill\n) {\n const attachments = (activity.type === 'message' && activity.attachments) || [];\n const clientActivityID = uniqueID();\n const locale = yield select(languageSelector);\n const localTimeZone =\n typeof window.Intl === 'undefined' ? undefined : new Intl.DateTimeFormat().resolvedOptions().timeZone;\n const now = new ponyfill.Date();\n\n // Currently, we allow untyped outgoing activity as long as the chat adapter can deliver.\n // In the future, we should warn if the outgoing activity is not matching the type.\n const outgoingActivity: WebChatOutgoingActivity = {\n ...deleteKey(activity, 'id'),\n channelData: {\n // Remove local fields that should not be send to the service.\n // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`.\n // Please refer to #4362 for details. Remove on or after 2024-07-31.\n ...deleteKey(activity.channelData, 'state', 'webchat:send-status'),\n clientActivityID\n },\n channelId: 'webchat',\n from: {\n id: userID,\n name: username,\n role: 'user'\n },\n locale,\n localTimestamp: dateToLocaleISOString(now),\n localTimezone: localTimeZone,\n ...(activity.type === 'message'\n ? {\n attachments:\n attachments &&\n attachments.map(({ contentType, contentUrl, name, thumbnailUrl }) => ({\n contentType,\n contentUrl,\n name,\n thumbnailUrl\n })),\n text: activity.text\n }\n : activity.type === 'event'\n ? {\n name: activity.name,\n value: activity.value\n }\n : {})\n };\n\n if (!numActivitiesPosted) {\n outgoingActivity.entities = [\n ...(outgoingActivity.entities || []),\n {\n // TODO: [P4] Currently in v3, we send the capabilities although the client might not actually have them\n // We need to understand why we need to send these, and only send capabilities the client have\n requiresBotState: true,\n supportsListening: true,\n supportsTts: true,\n type: 'ClientCapabilities'\n }\n ];\n }\n\n const meta: { clientActivityID: string; method: string } = { clientActivityID, method };\n\n yield put({\n type: POST_ACTIVITY_PENDING,\n meta,\n payload: { activity: outgoingActivity }\n } as PostActivityPendingAction);\n\n let echoed: boolean | undefined;\n\n try {\n // Quirks: We might receive INCOMING_ACTIVITY before the postActivity call completed\n // So, we setup expectation first, then postActivity afterward\n\n const echoBackCall = call(function* () {\n for (;;) {\n const {\n payload: { activity }\n }: IncomingActivityAction = yield take(INCOMING_ACTIVITY);\n if (activity.channelData?.clientActivityID === clientActivityID && activity.id) {\n echoed = true;\n\n return activity;\n }\n }\n });\n\n // Timeout could be due to either:\n // - Post activity call may take too long time to complete\n // - Direct Line service only respond on HTTP after bot respond to Direct Line\n // - Activity may take too long time to echo back\n\n const sendTimeout: number = yield select(sendTimeoutSelector);\n\n const {\n send: { echoBack }\n }: { send: { echoBack: WebChatActivity } } = yield race({\n send: all({\n echoBack: echoBackCall,\n postActivity: observeOnce(directLine.postActivity(outgoingActivity as DirectLineActivity))\n }),\n timeout: call(function* () {\n yield call(sleep, sendTimeout, ponyfill);\n\n // The IMPEDED action is for backward compatibility by changing `channelData.state` to \"send failed\".\n // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`.\n // Please refer to #4362 for details. Remove on or after 2024-07-31.\n yield put({\n type: POST_ACTIVITY_IMPEDED,\n meta,\n payload: { activity: outgoingActivity }\n } as PostActivityImpededAction);\n\n yield call(sleep, HARD_SEND_TIMEOUT - sendTimeout, ponyfill);\n\n throw !echoed\n ? new Error('timed out while waiting for outgoing message to echo back')\n : new Error('timed out while waiting for postActivity to return any values');\n })\n });\n\n yield put({ type: POST_ACTIVITY_FULFILLED, meta, payload: { activity: echoBack } } as PostActivityFulfilledAction);\n } catch (err) {\n console.error('botframework-webchat: Failed to post activity to chat adapter.', err);\n\n yield put({\n type: POST_ACTIVITY_REJECTED,\n error: true,\n meta,\n payload: err\n } as PostActivityRejectedAction);\n } finally {\n if (yield cancelled()) {\n yield put({\n type: POST_ACTIVITY_REJECTED,\n error: true,\n meta,\n payload: new Error('cancelled')\n } as PostActivityRejectedAction);\n }\n }\n}\n\nexport default function* postActivitySaga(ponyfill: GlobalScopePonyfill) {\n yield whileConnected(function* postActivityWhileConnected({\n directLine,\n userID,\n username\n }: {\n directLine: DirectLineJSBotConnection;\n userID: string;\n username: string;\n }) {\n let numActivitiesPosted = 0;\n\n yield takeEvery(POST_ACTIVITY, function* postActivityWrapper(action: PostActivityAction) {\n yield* postActivity(directLine, userID, username, numActivitiesPosted++, action, ponyfill);\n });\n });\n}\n","/* eslint no-magic-numbers: [\"off\", { \"ignore\": [1, 2, 3, 60] }] */\n\nfunction pad(value: number, count = 2): string {\n if (typeof value !== 'number') {\n throw new Error('First argument must be a number');\n }\n\n let stringValue = value + '';\n\n while (stringValue.length < count) {\n stringValue = '0' + stringValue;\n }\n\n return stringValue;\n}\n\n// Adopted from https://stackoverflow.com/questions/17415579/how-to-iso-8601-format-a-date-with-timezone-offset-in-javascript.\n// Use typing of `Date` from globalThis.\n// eslint-disable-next-line no-restricted-globals\nexport default function dateToLocaleISOString(date: Date): string {\n const isDateLike =\n // @ts-ignore TypeScript think this is always true.\n date.getTimezoneOffset &&\n // @ts-ignore TypeScript think this is always true.\n date.getFullYear &&\n // @ts-ignore TypeScript think this is always true.\n date.getMonth &&\n // @ts-ignore TypeScript think this is always true.\n date.getDate &&\n // @ts-ignore TypeScript think this is always true.\n date.getHours &&\n // @ts-ignore TypeScript think this is always true.\n date.getMinutes &&\n // @ts-ignore TypeScript think this is always true.\n date.getSeconds &&\n date.getMilliseconds;\n\n if (!isDateLike) {\n throw new Error('First argument must be a Date-like object.');\n }\n\n const timezoneOffset = -date.getTimezoneOffset();\n const timezoneSign = timezoneOffset < 0 ? '-' : '+';\n\n // \"yyyy-MM-DDTHH:mm:ss.fff+08:00\" for GMT+08\n // \"yyyy-MM-DDTHH:mm:ss.fffZ\" for UTC\n\n const absoluteTimezoneOffset = ~~Math.abs(timezoneOffset);\n\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}T${pad(date.getHours())}:${pad(\n date.getMinutes()\n )}:${pad(date.getSeconds())}.${pad(date.getMilliseconds(), 3)}${\n timezoneOffset ? `${timezoneSign}${pad(~~(absoluteTimezoneOffset / 60))}:${pad(absoluteTimezoneOffset % 60)}` : 'Z'\n }`;\n}\n","import isForbiddenPropertyName from './isForbiddenPropertyName';\n\nexport default function deleteKey<TMap, TKey extends keyof TMap>(map: TMap, ...keys: TKey[]): Omit<TMap, TKey> {\n if (!map) {\n return map;\n }\n\n const nextMap = { ...map };\n\n for (const key of keys) {\n if (typeof key !== 'string' || !isForbiddenPropertyName(key)) {\n // Mitigation through denylisting.\n // eslint-disable-next-line security/detect-object-injection\n delete nextMap[key];\n }\n }\n\n return nextMap;\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ language }: ReduxState): string => language;\n","import { call } from 'redux-saga/effects';\n\nimport { Observable, Observer, Subscription } from '../../types/external/Observable';\n\nexport default function observeOnceEffect<T>(observable: Observable<T>) {\n return call(function* observeOnce() {\n let subscription: Subscription;\n\n try {\n return yield call(\n () =>\n new Promise<T>((resolve, reject) => {\n subscription = observable.subscribe({\n complete: resolve,\n error: reject,\n next: resolve\n } as Observer<T>);\n })\n );\n } finally {\n subscription && subscription.unsubscribe();\n }\n });\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ sendTimeout }: ReduxState): number => sendTimeout;\n","import { call, cancelled, fork, put, race, select, take } from 'redux-saga/effects';\n\nimport { QUEUE_INCOMING_ACTIVITY } from '../actions/queueIncomingActivity';\nimport activitiesSelector, { ofType as activitiesOfType } from '../selectors/activities';\nimport activityFromBot from '../definitions/activityFromBot';\nimport incomingActivity, { INCOMING_ACTIVITY } from '../actions/incomingActivity';\nimport setSuggestedActions from '../actions/setSuggestedActions';\nimport sleep from '../utils/sleep';\nimport whileConnected from './effects/whileConnected';\n\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\n\n// We will hold up the replying activity if the originating activity did not arrive, up to 5 seconds.\nconst REPLY_TIMEOUT = 5000;\n\nfunction* takeEveryAndSelect(actionType, selector, fn) {\n // select() will free up the code execution.\n // If we pair up with takeEvery(), it will allow actions to slip through.\n // Thus, we are writing one that don't use takeEvery().\n while (!(yield cancelled())) {\n const action = yield take(actionType);\n const state = yield select(selector);\n\n yield fork(fn, action, state);\n }\n}\n\n// Wait for specific activity to arrive in the transcript.\n// We will use the initial set of activities to close time gaps between select() and take().\n// If another activity with the same \"replyToId\" is already rendered (in the \"activities\" array),\n// we will skip the wait as we already waited long enough for the missing activity to show up.\nfunction* waitForActivityId(replyToId, initialActivities) {\n let activities = initialActivities;\n\n for (;;) {\n const replied = activities.find(activity => activity.id === replyToId || activity.replyToId === replyToId);\n\n if (replied) {\n break;\n }\n\n const {\n payload: { activity }\n } = yield take(INCOMING_ACTIVITY);\n\n if (activity.id === replyToId) {\n break;\n }\n\n activities = yield select(activitiesSelector);\n }\n}\n\nfunction* queueIncomingActivity({ userID }: { userID: string }, ponyfill: GlobalScopePonyfill) {\n yield takeEveryAndSelect(\n QUEUE_INCOMING_ACTIVITY,\n activitiesSelector,\n function* queueIncomingActivity({ payload: { activity } }, initialActivities) {\n // This is for resolving an accessibility issue.\n // If the incoming activity has \"replyToId\" field, hold on it until the activity replied to is in the transcript, then release this one.\n const { replyToId } = activity;\n const initialBotActivities = initialActivities.filter(({ from: { role } }) => role === 'bot');\n\n // To speed up the first activity render time, we do not delay the first activity from the bot.\n // Even if it is the first activity from the bot, the bot might be \"replying\" to the \"conversationUpdate\" event.\n // Thus, the \"replyToId\" will always be there even it is the first activity in the conversation.\n if (replyToId && initialBotActivities.length) {\n // Either the activity replied to is in the transcript or after timeout.\n const result = yield race({\n _: waitForActivityId(replyToId, initialActivities),\n timeout: call(sleep, REPLY_TIMEOUT, ponyfill)\n });\n\n if ('timeout' in result) {\n console.warn(\n `botframework-webchat: Timed out while waiting for activity \"${replyToId}\" which activity \"${activity.id}\" is replying to.`,\n {\n activity,\n replyToId\n }\n );\n }\n }\n\n yield put(incomingActivity(activity));\n\n // Update suggested actions\n // TODO: [P3] We could put this logic inside reducer to minimize number of actions dispatched.\n const messageActivities = yield select(activitiesOfType('message'));\n const lastMessageActivity = messageActivities[messageActivities.length - 1];\n\n if (activityFromBot(lastMessageActivity)) {\n const { suggestedActions: { actions, to } = { actions: undefined, to: undefined } } = lastMessageActivity;\n\n // If suggested actions is not destined to anyone, or is destined to the user, show it.\n // In other words, if suggested actions is destined to someone else, don't show it.\n yield put(setSuggestedActions(to?.length && !to.includes(userID) ? null : actions));\n }\n }\n );\n}\n\nexport default function* queueIncomingActivitySaga(ponyfill: GlobalScopePonyfill) {\n yield whileConnected(queueIncomingActivity, ponyfill);\n}\n","export default activity => activity && activity.from.role === 'bot';\n","import { put, takeEvery } from 'redux-saga/effects';\n\nimport { SEND_EVENT } from '../actions/sendEvent';\nimport postActivity from '../actions/postActivity';\nimport whileConnected from './effects/whileConnected';\n\nfunction* postActivityWithEvent({ payload: { name, value } }) {\n yield put(\n postActivity({\n name,\n type: 'event',\n value\n })\n );\n}\n\nfunction* sendEventToPostActivity() {\n yield takeEvery(({ payload, type }) => type === SEND_EVENT && payload.name, postActivityWithEvent);\n}\n\nexport default function* sendEventToPostActivitySaga() {\n yield whileConnected(sendEventToPostActivity);\n}\n","import { put, takeEvery } from 'redux-saga/effects';\nimport mime from 'mime';\n\nimport { SEND_FILES } from '../actions/sendFiles';\nimport postActivity from '../actions/postActivity';\nimport whileConnected from './effects/whileConnected';\n\nconst getType = mime.getType.bind(mime);\n\nfunction* postActivityWithFiles({ payload: { files } }) {\n yield put(\n postActivity({\n attachments: [].map.call(files, ({ name, thumbnail, url }) => ({\n contentType: getType(name) || 'application/octet-stream',\n contentUrl: url,\n name,\n thumbnailUrl: thumbnail\n })),\n channelData: {\n attachmentSizes: [].map.call(files, ({ size }) => size)\n },\n type: 'message'\n })\n );\n}\n\nfunction* sendFilesToPostActivity() {\n yield takeEvery(({ payload, type }) => type === SEND_FILES && payload.files.length, postActivityWithFiles);\n}\n\nexport default function* sendFilesToPostActivitySaga() {\n yield whileConnected(sendFilesToPostActivity);\n}\n","import { put, takeEvery } from 'redux-saga/effects';\nimport postActivity from '../actions/postActivity';\nimport { SEND_MESSAGE_BACK } from '../actions/sendMessageBack';\nimport whileConnected from './effects/whileConnected';\n\n// https://github.com/microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#message-back\nfunction* postActivityWithMessageBack({ payload: { displayText, text, value } }) {\n yield put(\n postActivity({\n channelData: {\n messageBack: {\n displayText\n }\n },\n text,\n type: 'message',\n value\n })\n );\n}\n\nfunction* sendMessageBackToPostActivity() {\n yield takeEvery(SEND_MESSAGE_BACK, postActivityWithMessageBack);\n}\n\nexport default function* sendMessageBackToPostActivitySaga() {\n yield whileConnected(sendMessageBackToPostActivity);\n}\n","import { put, takeEvery } from 'redux-saga/effects';\n\nimport postActivity from '../actions/postActivity';\nimport sendMessage, { SEND_MESSAGE } from '../actions/sendMessage';\nimport whileConnected from './effects/whileConnected';\n\nfunction* postActivityWithMessage({\n payload: { attachments = [], channelData, method, text }\n}: ReturnType<typeof sendMessage>) {\n yield put(\n postActivity(\n {\n attachments: attachments.map(({ blob, thumbnailURL }) => ({\n contentType: (blob instanceof File && blob.type) || 'application/octet-stream',\n contentUrl: URL.createObjectURL(blob),\n name: blob instanceof File ? blob.name : undefined,\n thumbnailUrl: thumbnailURL?.toString()\n })),\n channelData: {\n ...channelData,\n attachmentSizes: attachments.map(({ blob: { size } }) => size)\n },\n text: text || undefined,\n textFormat: 'plain',\n type: 'message'\n } as any, // TODO: Fix WebChatActivity. Currently, it only works with incoming activity, not outgoing.\n method\n )\n );\n}\n\nfunction* sendMessageToPostActivity() {\n yield takeEvery(\n ({ payload, type }) => type === SEND_MESSAGE && (payload.text || payload.attachments?.length),\n postActivityWithMessage\n );\n}\n\nexport default function* sendMessageToPostActivitySaga() {\n yield whileConnected(sendMessageToPostActivity);\n}\n","// This is for the ternary operator of text and value.\n/* eslint no-undefined: \"off\" */\n\nimport { put, takeEvery } from 'redux-saga/effects';\nimport postActivity from '../actions/postActivity';\nimport { SEND_POST_BACK } from '../actions/sendPostBack';\nimport whileConnected from './effects/whileConnected';\n\n// https://github.com/microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#post-back\nfunction* postActivityWithPostBack({ payload: { value } }) {\n yield put(\n postActivity({\n channelData: {\n postBack: true\n },\n text: typeof value === 'string' ? value : undefined,\n type: 'message',\n value: typeof value !== 'string' ? value : undefined\n })\n );\n}\n\nfunction* sendPostBackToPostActivity() {\n yield takeEvery(SEND_POST_BACK, postActivityWithPostBack);\n}\n\nexport default function* sendPostBackToPostActivitySaga() {\n yield whileConnected(sendPostBackToPostActivity);\n}\n","// We will revisit this logic in #2157 and should remove the following eslint ignore\n/* eslint require-atomic-updates: \"off\" */\n\nimport { call, cancel, put, select, take, takeLatest } from 'redux-saga/effects';\n\nimport { SET_SEND_BOX } from '../actions/setSendBox';\nimport { SET_SEND_TYPING_INDICATOR } from '../actions/setSendTypingIndicator';\nimport { POST_ACTIVITY } from '../actions/postActivity';\nimport emitTypingIndicator from '../actions/emitTypingIndicator';\nimport sendTypingIndicatorSelector from '../selectors/sendTypingIndicator';\nimport sleep from '../utils/sleep';\nimport whileConnected from './effects/whileConnected';\n\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\nimport type setSendTypingIndicator from '../actions/setSendTypingIndicator';\n\ntype SetSendTypingIndicatorAction = ReturnType<typeof setSendTypingIndicator>;\n\nconst SEND_INTERVAL = 3000;\n\nfunction takeSendTypingIndicator(value: boolean) {\n return take<SetSendTypingIndicatorAction>(\n // TODO: \"any\" should be replaced all known types in the system.\n ({ payload, type }: any) => type === SET_SEND_TYPING_INDICATOR && !payload.sendTypingIndicator === !value\n );\n}\n\nfunction* sendTypingIndicatorOnSetSendBox(_, ponyfill: GlobalScopePonyfill) {\n const { Date } = ponyfill;\n const sendTypingIndicator = yield select(sendTypingIndicatorSelector);\n\n if (!sendTypingIndicator) {\n yield takeSendTypingIndicator(true);\n }\n\n for (;;) {\n let lastSend = -Infinity;\n const task = yield takeLatest(\n ({ payload, type }) =>\n (type === SET_SEND_BOX && payload.text) ||\n // Stop sending pending typing indicator if the user has posted anything.\n // We send typing indicator in a debounce way (t = 0, t = 3000, t = 6000).\n // When the user type, and then post the activity at t = 1500, we still have a pending typing indicator at t = 3000.\n // This code is to cancel the typing indicator at t = 3000.\n (type === POST_ACTIVITY && payload.activity.type !== 'typing'),\n function* ({ payload, type }) {\n if (type === SET_SEND_BOX) {\n const interval = SEND_INTERVAL - Date.now() + lastSend;\n\n if (interval > 0) {\n yield call(sleep, interval, ponyfill);\n }\n\n yield put(emitTypingIndicator());\n\n lastSend = Date.now();\n } else if (payload.activity.type === 'message') {\n lastSend = -Infinity;\n }\n }\n );\n\n yield takeSendTypingIndicator(false);\n yield cancel(task);\n yield takeSendTypingIndicator(true);\n }\n}\n\nexport default function* sendTypingIndicatorOnSetSendBoxSaga(ponyfill: GlobalScopePonyfill) {\n yield whileConnected(sendTypingIndicatorOnSetSendBox, ponyfill);\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ sendTypingIndicator }: ReduxState): boolean => sendTypingIndicator;\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport { INCOMING_ACTIVITY } from '../actions/incomingActivity';\nimport { WILL_START } from '../constants/DictateState';\nimport markActivity from '../actions/markActivity';\nimport setDictateState from '../actions/setDictateState';\nimport shouldSpeakIncomingActivitySelector from '../selectors/shouldSpeakIncomingActivity';\nimport speakableActivity from '../definitions/speakableActivity';\nimport stopDictate from '../actions/stopDictate';\nimport whileConnected from './effects/whileConnected';\n\nfunction* speakActivityAndStartDictateOnIncomingActivityFromOthers({ userID }) {\n yield takeEvery(\n ({ payload, type }) =>\n // In Direct Line, the \"role\" is not filled (yet), but we do know the user ID.\n // In Direct Line Speech, we do not know the user ID, but \"role\" is filled with \"bot\" or \"user\".\n // Here, we do two checks: the speakable activity must not have user ID, and must not have role === 'user'\n type === INCOMING_ACTIVITY && payload.activity.from.id !== userID && payload.activity.from.role !== 'user',\n function* ({ payload: { activity } }) {\n const shouldSpeakIncomingActivity = yield select(shouldSpeakIncomingActivitySelector);\n const shouldSpeak = speakableActivity(activity) && shouldSpeakIncomingActivity;\n\n if (\n shouldSpeak &&\n (activity.speak ||\n activity.text ||\n ~(activity.attachments || []).findIndex(({ content: { speak } = {} }) => speak))\n ) {\n yield put(markActivity(activity, 'speak', true));\n }\n\n if (shouldSpeak && activity.inputHint === 'expectingInput') {\n yield put(setDictateState(WILL_START));\n } else if (activity.inputHint === 'ignoringInput') {\n yield put(stopDictate());\n }\n }\n );\n}\n\nexport default function* speakActivityAndStartDictateOnIncomingActivityFromOthersSaga() {\n yield whileConnected(speakActivityAndStartDictateOnIncomingActivityFromOthers);\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ shouldSpeakIncomingActivity }: ReduxState): boolean => shouldSpeakIncomingActivity;\n","export default function speakableActivity(activity) {\n return activity && activity.from && activity.type === 'message';\n}\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport { MARK_ACTIVITY } from '../actions/markActivity';\nimport { of as activitiesOf } from '../selectors/activities';\nimport { SET_DICTATE_STATE } from '../actions/setDictateState';\nimport { WILL_START } from '../constants/DictateState';\nimport dictateStateSelector from '../selectors/dictateState';\nimport speakingActivity from '../definitions/speakingActivity';\nimport startDictate from '../actions/startDictate';\n\nfunction* startDictateOnSpeakComplete() {\n const speakingActivities = yield select(activitiesOf(speakingActivity));\n const dictateState = yield select(dictateStateSelector);\n\n if (dictateState === WILL_START && !speakingActivities.length) {\n yield put(startDictate());\n }\n}\n\n// TODO: [P4] We should turn this into a reducer instead\nexport default function* startDictateOnSpeakCompleteSaga() {\n yield takeEvery(({ type }) => type === MARK_ACTIVITY || type === SET_DICTATE_STATE, startDictateOnSpeakComplete);\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ dictateState }: ReduxState) => dictateState;\n","import { put, takeEvery } from 'redux-saga/effects';\n\nimport { POST_ACTIVITY_PENDING } from '../actions/postActivity';\nimport startSpeakingActivity from '../actions/startSpeakingActivity';\nimport whileConnected from './effects/whileConnected';\n\nfunction* startSpeakActivityOnPostActivity() {\n yield takeEvery(\n ({ meta, payload, type }) =>\n type === POST_ACTIVITY_PENDING && meta.method === 'speech' && payload.activity.type === 'message',\n function* () {\n yield put(startSpeakingActivity());\n }\n );\n}\n\nexport default function* startSpeakActivityOnPostActivitySaga() {\n yield whileConnected(startSpeakActivityOnPostActivity);\n}\n","import { put, takeEvery } from 'redux-saga/effects';\n\nimport { POST_ACTIVITY_PENDING } from '../actions/postActivity';\nimport stopDictate from '../actions/stopDictate';\nimport whileConnected from './effects/whileConnected';\n\nfunction* stopDictateOnCardAction() {\n // TODO: [P2] We should stop speech input when the user click on anything on a card, including open URL which doesn't generate postActivity\n // This functionality was not implemented in v3\n\n yield takeEvery(\n // Currently, there are no actions that are related to card input\n // For now, we are using POST_ACTIVITY of a \"message\" activity\n // In the future, if we have an action for card input, we should use that instead\n ({ payload, type }) => type === POST_ACTIVITY_PENDING && payload.activity.type === 'message',\n function* putStopDictate() {\n yield put(stopDictate());\n }\n );\n}\n\nexport default function* stopDictateOnCardActionSaga() {\n yield whileConnected(stopDictateOnCardAction);\n}\n","import { put, takeEvery } from 'redux-saga/effects';\n\nimport { POST_ACTIVITY_PENDING } from '../actions/postActivity';\nimport { SET_SEND_BOX } from '../actions/setSendBox';\nimport stopSpeakingActivity from '../actions/stopSpeakingActivity';\nimport whileConnected from './effects/whileConnected';\n\nfunction* stopSpeakingActivityOnInput() {\n yield takeEvery(\n ({ meta, payload, type }) =>\n (type === SET_SEND_BOX && payload.text) ||\n // We want to stop speaking activity when the user click on a card action\n // But currently there are no actions generated out of a card action\n // So, right now, we are using best-effort by listening to POST_ACTIVITY_PENDING with a \"message\" event\n // We filter out speech because we will call startSpeakingActivity() for POST_ACTIVITY_PENDING dispatched by speech\n (type === POST_ACTIVITY_PENDING && meta.method !== 'speech' && payload.activity.type === 'message'),\n function* () {\n yield put(stopSpeakingActivity());\n }\n );\n}\n\nexport default function* stopSpeakingActivityOnInputSaga() {\n yield whileConnected(stopSpeakingActivityOnInput);\n}\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport sendMessage from '../actions/sendMessage';\nimport setSendBox from '../actions/setSendBox';\nimport setSendBoxAttachments from '../actions/setSendBoxAttachments';\nimport { SUBMIT_SEND_BOX } from '../actions/submitSendBox';\nimport sendBoxAttachmentsSelector from '../selectors/sendBoxAttachments';\nimport sendBoxValueSelector from '../selectors/sendBoxValue';\nimport whileConnected from './effects/whileConnected';\n\nfunction* submitSendBox() {\n yield takeEvery(SUBMIT_SEND_BOX, function* ({ payload: { channelData, method } }) {\n const attachments = yield select(sendBoxAttachmentsSelector);\n const sendBoxValue = yield select(sendBoxValueSelector);\n\n // TODO: [P2] If the trimmed value is empty, we should not send.\n // TODO: [P2] We should expose this logic (\"cannot send empty message\") to other components such as UI.\n if (attachments.length || sendBoxValue) {\n yield put(sendMessage(sendBoxValue.trim(), method, { attachments, channelData }));\n\n yield put(setSendBox(''));\n yield put(setSendBoxAttachments(Object.freeze([])));\n }\n });\n}\n\nexport default function* submitSendBoxSaga() {\n // TODO: [P2] We should expose this logic (\"send only when connected\") to other components such as UI.\n yield whileConnected(submitSendBox);\n}\n","import type { SendBoxAttachment } from '../types/SendBoxAttachment';\nimport type { ReduxState } from '../types/internal/ReduxState';\n\nexport default function sendBoxAttachments({ sendBoxAttachments }: ReduxState): readonly SendBoxAttachment[] {\n return sendBoxAttachments;\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ sendBoxValue }: ReduxState): string => sendBoxValue;\n","import { lazy, parse, string, union, value, type ObjectEntries, type StringSchema } from 'valibot';\n\nimport orgSchemaProperty from './private/orgSchemaProperty';\nimport { project, type Project } from './Project';\nimport { thing, type Thing } from './Thing';\n\n/**\n * An action performed by a direct agent and indirect participants upon a direct object. Optionally happens at a location with the help of an inanimate instrument. The execution of the action may produce a result. Specific action sub-type documentation specifies the exact expectation of each argument/role.\n *\n * See also [blog post](http://blog.schema.org/2014/04/announcing-schemaorg-actions.html) and [Actions overview document](https://schema.org/docs/actions.html).\n *\n * This is partial implementation of https://schema.org/Action.\n *\n * @see https://schema.org/Action\n */\nexport type Action = Thing & {\n /**\n * Indicates the current disposition of the Action.\n *\n * @see https://schema.org/actionStatus\n */\n actionStatus?:\n | 'ActiveActionStatus'\n | 'CompletedActionStatu'\n | 'FailedActionStatus'\n | 'PotentialActionStatus'\n | undefined;\n\n /**\n * The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller. Supersedes [carrier](https://schema.org/carrier).\n *\n * @see https://schema.org/provider\n */\n provider?: Project | undefined;\n};\n\nexport const action = <TEntries extends ObjectEntries>(entries?: TEntries | undefined) =>\n thing({\n actionStatus: orgSchemaProperty(\n union([\n string([value('ActiveActionStatus')]) as StringSchema<'ActiveActionStatus'>,\n string([value('CompletedActionStatus')]) as StringSchema<'CompletedActionStatus'>,\n string([value('FailedActionStatus')]) as StringSchema<'FailedActionStatus'>,\n string([value('PotentialActionStatus')]) as StringSchema<'PotentialActionStatus'>\n ])\n ),\n provider: orgSchemaProperty(lazy(() => project())),\n\n ...entries\n });\n\nexport const parseAction = (data: unknown): Action => parse(action(), data);\n","import { array, fallback, optional, transform, union, type BaseSchema } from 'valibot';\n\nconst orgSchemaProperty = <T extends BaseSchema>(schema: T) =>\n fallback(optional(union([transform(array(schema), array => array[0]), schema])), undefined);\n\nexport default orgSchemaProperty;\n","import { parse, string, type ObjectEntries } from 'valibot';\n\nimport { thing, type Thing } from './Thing';\nimport orgSchemaProperty from './private/orgSchemaProperty';\n\nexport const project = <TEntries extends ObjectEntries>(entries?: TEntries | undefined) =>\n thing({\n slogan: orgSchemaProperty(string()),\n\n ...entries\n });\n\n/**\n * An enterprise (potentially individual but typically collaborative), planned to achieve a particular aim. Use properties from [Organization](https://schema.org/Organization), [subOrganization](https://schema.org/subOrganization)/[parentOrganization](https://schema.org/parentOrganization) to indicate project sub-structures.\n *\n * This is partial implementation of https://schema.org/Project.\n *\n * @see https://schema.org/Project\n */\nexport type Project = Thing & {\n /**\n * A slogan or motto associated with the item.\n *\n * @see https://schema.org/slogan\n */\n slogan?: string | undefined;\n};\n\nexport const parseProject = (data: unknown): Project => parse(project(), data);\n","import { type EmptyObject } from 'type-fest';\nimport { lazy, object, optional, parse, string, unknown, value, type ObjectEntries, type StringSchema } from 'valibot';\n\nimport { action, type Action } from './Action';\nimport orgSchemaProperties from './private/orgSchemaProperties';\nimport orgSchemaProperty from './private/orgSchemaProperty';\n\n/**\n * The most generic type of item.\n *\n * This is partial implementation of https://schema.org/Thing.\n *\n * @see https://schema.org/Thing\n */\nexport type Thing = {\n '@context'?: 'https://schema.org' | undefined;\n '@id'?: string | undefined;\n '@type': string;\n\n /**\n * An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. Typically the value is a URI-identified RDF class, and in this case corresponds to the use of rdf:type in RDF. Text values can be used sparingly, for cases where useful information can be added without their being an appropriate schema to reference. In the case of text values, the class label should follow the schema.org [style guide](https://schema.org/docs/styleguide.html).\n *\n * @see https://schema.org/additionalType\n */\n additionalType?: string | undefined;\n\n /**\n * An alias for the item.\n *\n * @see https://schema.org/alternateName\n */\n alternateName?: string | undefined;\n\n /**\n * A description of the item.\n *\n * @see https://schema.org/description\n */\n description?: string | undefined;\n\n /**\n * The name of the item.\n *\n * @see https://schema.org/name\n */\n name?: string | undefined;\n\n /**\n * Indicates a potential Action, which describes an idealized action in which this thing would play an 'object' role.\n *\n * @see https://schema.org/potentialAction\n */\n potentialAction?: readonly Action[] | undefined;\n\n /**\n * URL of the item.\n *\n * @see https://schema.org/url\n */\n url?: string | undefined;\n};\n\nconst thingEntries = {\n '@context': optional(string([value('https://schema.org')]) as StringSchema<'https://schema.org'>),\n '@id': optional(string()),\n '@type': string(),\n\n additionalType: orgSchemaProperty(string()),\n alternateName: orgSchemaProperty(string()),\n description: orgSchemaProperty(string()),\n name: orgSchemaProperty(string()),\n potentialAction: orgSchemaProperties(lazy(() => action())),\n url: orgSchemaProperty(string())\n};\n\nexport const thing = <TEntries extends ObjectEntries>(entries?: TEntries | undefined) =>\n object(\n {\n ...thingEntries,\n ...entries\n },\n // Forward compatibility is the reason why we use unknown() here and not adhere to JSON-LD which drop unknown fields.\n //\n // Example:\n // - CreativeWork.editor must be type of Person (or any of its subtypes, Patient)\n // - Without unknown(), when we parse the CreativeWork, we will drop Patient.diagnosis\n // - That means, CreativeWork.editor.diagnosis will be unset despite CreativeWork.editor is of type Patient\n //\n // We can drop unknown() if there is a way to keep CreativeWork.editor.diagnosis.\n // It is okay to drop future/unsupported properties. But not today/supported properties.\n unknown()\n );\n\nexport const parseThing = (data: unknown): Thing => parse(thing<EmptyObject>(), data);\n","import {\n array,\n fallback,\n parse,\n transform,\n type ArraySchema,\n type BaseSchema,\n type FallbackInfo,\n type Output,\n type UndefinedSchema\n} from 'valibot';\n\nimport orgSchemaProperty from './orgSchemaProperty';\n\nconst singularToArray = <T extends BaseSchema>(schema: T): ArraySchema<T> | UndefinedSchema =>\n fallback<ArraySchema<T> | UndefinedSchema, (info?: FallbackInfo) => Output<T>>(\n transform(array(schema), value => value.filter(value => typeof value !== 'undefined')),\n value => (value?.input ? [parse(schema, value?.input)] : undefined)\n );\n\nexport default function orgSchemaProperties<T extends BaseSchema>(schema: T) {\n return singularToArray(orgSchemaProperty(schema));\n}\n","import { lazy, number, parse, string, union, type ObjectEntries } from 'valibot';\n\nimport { creativeWork, type CreativeWork } from './CreativeWork';\nimport { project, type Project } from './Project';\nimport orgSchemaProperty from './private/orgSchemaProperty';\n\n/**\n * A [Claim](https://schema.org/Claim) in Schema.org represents a specific, factually-oriented claim that could be the [itemReviewed](https://schema.org/itemReviewed) in a [ClaimReview](https://schema.org/ClaimReview). The content of a claim can be summarized with the [text](https://schema.org/text) property. Variations on well known claims can have their common identity indicated via [sameAs](https://schema.org/sameAs) links, and summarized with a name. Ideally, a [Claim](https://schema.org/Claim) description includes enough contextual information to minimize the risk of ambiguity or inclarity. In practice, many claims are better understood in the context in which they appear or the interpretations provided by claim reviews.\n *\n * Beyond [ClaimReview](https://schema.org/ClaimReview), the Claim type can be associated with related creative works - for example a [ScholarlyArticle](https://schema.org/ScholarlyArticle) or [Question](https://schema.org/Question) might be about some [Claim](https://schema.org/Claim).\n *\n * This is partial implementation of https://schema.org/Claim.\n *\n * @see https://schema.org/Claim.\n */\nexport type Claim = CreativeWork & {\n /**\n * Indicates an occurrence of a [Claim](https://schema.org/Claim) in some [CreativeWork](https://schema.org/CreativeWork).\n *\n * @see https://schema.org/appearance.\n */\n appearance?: CreativeWork | undefined;\n\n /**\n * For a [Claim](https://schema.org/Claim) interpreted from [MediaObject](https://schema.org/MediaObject) content sed to indicate a claim contained, implied or refined from the content of a [MediaObject](https://schema.org/MediaObject).\n *\n * @see https://schema.org/claimInterpreter.\n */\n claimInterpreter?: Project | undefined;\n\n /**\n * The position of an item in a series or sequence of items.\n *\n * @see https://schema.org/position.\n */\n position?: number | string;\n};\n\nexport const claim = <TEntries extends ObjectEntries>(entries?: TEntries | undefined) =>\n creativeWork({\n appearance: orgSchemaProperty(lazy(() => creativeWork())),\n claimInterpreter: orgSchemaProperty(lazy(() => project())),\n position: orgSchemaProperty(union([number(), string()])),\n\n ...entries\n });\n\nexport const parseClaim = (data: unknown): Claim => parse(claim(), data);\n","import { lazy, parse, string, union, type ObjectEntries } from 'valibot';\n\nimport { definedTerm, type DefinedTerm } from './DefinedTerm';\nimport orgSchemaProperties from './private/orgSchemaProperties';\nimport orgSchemaProperty from './private/orgSchemaProperty';\nimport { thing, type Thing } from './Thing';\n\n/**\n * The most generic kind of creative work, including books, movies, photographs, software programs, etc.\n *\n * This is partial implementation of https://schema.org/CreativeWork.\n *\n * @see https://schema.org/CreativeWork\n */\n// Due to limitations of TypeScript, when using valibot.lazy(), the output type must be explicitly set.\nexport type CreativeWork = Thing & {\n /**\n * An abstract is a short description that summarizes a [CreativeWork](https://schema.org/CreativeWork).\n *\n * @see https://schema.org/abstract\n */\n abstract?: string | undefined;\n\n /**\n * The author of this content or rating. Please note that author is special in that HTML 5 provides a special mechanism for indicating authorship via the rel tag. That is equivalent to this and may be used interchangeably.\n *\n * @see https://schema.org/author\n */\n author?: string | undefined;\n\n /**\n * A citation or reference to another creative work, such as another publication, web page, scholarly article, etc.\n *\n * @see https://schema.org/citation\n */\n citation?: readonly CreativeWork[] | undefined;\n\n /**\n * Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property.\n *\n * @see https://schema.org/keywords\n */\n keywords?: readonly (DefinedTerm | string)[] | undefined;\n\n /**\n * A pattern that something has, for example 'polka dot', 'striped', 'Canadian flag'. Values are typically expressed as text, although links to controlled value schemes are also supported.\n *\n * @see https://schema.org/pattern\n */\n pattern?: DefinedTerm | undefined;\n\n /**\n * The textual content of this CreativeWork.\n *\n * @see https://schema.org/text\n */\n text?: string | undefined;\n\n /**\n * The schema.org [usageInfo](https://schema.org/usageInfo) property indicates further information about a [CreativeWork](https://schema.org/CreativeWork). This property is applicable both to works that are freely available and to those that require payment or other transactions. It can reference additional information, e.g. community expectations on preferred linking and citation conventions, as well as purchasing details. For something that can be commercially licensed, usageInfo can provide detailed, resource-specific information about licensing options.\n *\n * This property can be used alongside the license property which indicates license(s) applicable to some piece of content. The usageInfo property can provide information about other licensing options, e.g. acquiring commercial usage rights for an image that is also available under non-commercial creative commons licenses.\n */\n usageInfo?: CreativeWork | undefined;\n};\n\nexport const creativeWork = <TEntries extends ObjectEntries>(entries?: TEntries | undefined) =>\n thing({\n // For forward compatibility, we did not enforce @type must be \"CreativeWork\" or any other subtypes.\n // In future, if Schema.org introduced a new subtype of CreativeWork, we should still able to parse that one as a CreativeWork.\n\n abstract: orgSchemaProperty(string()),\n author: orgSchemaProperties(string()),\n citation: orgSchemaProperties(lazy(() => creativeWork())),\n keywords: orgSchemaProperties(union([lazy(() => definedTerm()), string()])),\n pattern: orgSchemaProperty(lazy(() => definedTerm())),\n text: orgSchemaProperty(string()),\n usageInfo: orgSchemaProperty(lazy(() => creativeWork())),\n\n ...entries\n });\n\nexport const parseCreativeWork = (data: unknown): CreativeWork => parse(creativeWork(), data);\n","import { parse, string, type ObjectEntries } from 'valibot';\n\nimport { thing, type Thing } from './Thing';\nimport orgSchemaProperty from './private/orgSchemaProperty';\n\nexport const definedTerm = <TEntries extends ObjectEntries>(entries?: TEntries | undefined) =>\n thing({\n inDefinedTermSet: orgSchemaProperty(string()),\n termCode: orgSchemaProperty(string()),\n\n ...entries\n });\n\n/**\n * A word, name, acronym, phrase, etc. with a formal definition. Often used in the context of category or subject classification, glossaries or dictionaries, product or creative work types, etc. Use the name property for the term being defined, use termCode if the term has an alpha-numeric code allocated, use description to provide the definition of the term.\n *\n * This is partial implementation of https://schema.org/DefinedTerm.\n *\n * @see https://schema.org/DefinedTerm\n */\nexport type DefinedTerm = Thing & {\n /**\n * A [DefinedTermSet](https://schema.org/DefinedTermSet) that contains this term.\n *\n * @see https://schema.org/inDefinedTermSet\n */\n inDefinedTermSet?: string | undefined;\n\n /**\n * A code that identifies this [DefinedTerm](https://schema.org/DefinedTerm) within a [DefinedTermSet](https://schema.org/DefinedTermSet).\n *\n * @see https://schema.org/termCode\n */\n termCode?: string | undefined;\n};\n\nexport const parseDefinedTerm = (data: unknown): DefinedTerm => parse(definedTerm(), data);\n","import { parse, string, type ObjectEntries } from 'valibot';\n\nimport { action, type Action } from './Action';\nimport orgSchemaProperty from './private/orgSchemaProperty';\n\n/**\n * An action performed by a direct agent and indirect participants upon a direct object. Optionally happens at a location with the help of an inanimate instrument. The execution of the action may produce a result. Specific action sub-type documentation specifies the exact expectation of each argument/role.\n *\n * See also [blog post](http://blog.schema.org/2014/04/announcing-schemaorg-actions.html) and [Actions overview document](https://schema.org/docs/actions.html).\n *\n * This is partial implementation of https://schema.org/Action.\n *\n * @see https://schema.org/Action\n */\nexport type VoteAction = Action & {\n /**\n * A sub property of object. The options subject to this action. Supersedes [option](https://schema.org/option).\n *\n * @see https://schema.org/VoteAction\n */\n actionOption?: string | undefined;\n};\n\nexport const voteAction = <TEntries extends ObjectEntries>(entries?: TEntries | undefined) =>\n action({\n actionOption: orgSchemaProperty(string()),\n\n ...entries\n });\n\nexport const parseVoteAction = (data: unknown): VoteAction => parse(voteAction(), data);\n","import { type WebChatActivity } from '../types/WebChatActivity';\nimport { parseCreativeWork, type CreativeWork } from '../types/external/OrgSchema/CreativeWork';\nimport { parseThing } from '../types/external/OrgSchema/Thing';\n\nexport default function getOrgSchemaMessage(\n graph: readonly WebChatActivity['entities'][0][]\n): CreativeWork | undefined {\n const messageEntity = (graph || []).find(entity => {\n const isThing = entity.type?.startsWith('https://schema.org/');\n\n if (isThing) {\n const thing = parseThing(entity);\n\n return thing['@id'] === '';\n }\n });\n\n const message = messageEntity && parseCreativeWork(messageEntity);\n\n return message && parseCreativeWork(message);\n}\n","export default function onErrorResumeNext<T>(fn: () => T): T | undefined;\nexport default function onErrorResumeNext<T, U = T>(fn: () => T, defaultValue: U): T | U;\n\n/**\n * Calls the function and returns its return value.\n *\n * If the function failed, return default value if specified, otherwise, `undefined`.\n */\nexport default function onErrorResumeNext<T>(fn: () => T, defaultValue?: T): T | undefined {\n try {\n return fn();\n } catch (error) {\n return defaultValue;\n }\n}\n","export default function singleToArray<T>(singleOrArray: T | T[]): T[] {\n return singleOrArray ? (Array.isArray(singleOrArray) ? singleOrArray : [singleOrArray]) : [];\n}\n","export default function once(fn: () => void): () => void {\n let done;\n\n return () => {\n if (!done) {\n fn();\n done = 1;\n }\n };\n}\n","import once from './once';\n\nexport default function warnOnce(message: string): () => void {\n return once(() => console.warn(`botframework-webchat: ${message}.`));\n}\n","import clearSuggestedActions from './actions/clearSuggestedActions';\nimport connect from './actions/connect';\nimport disconnect from './actions/disconnect';\nimport dismissNotification from './actions/dismissNotification';\nimport emitTypingIndicator from './actions/emitTypingIndicator';\nimport markActivity from './actions/markActivity';\nimport postActivity from './actions/postActivity';\nimport sendEvent from './actions/sendEvent';\nimport sendFiles from './actions/sendFiles';\nimport sendMessage from './actions/sendMessage';\nimport sendMessageBack from './actions/sendMessageBack';\nimport sendPostBack from './actions/sendPostBack';\nimport setDictateInterims from './actions/setDictateInterims';\nimport setDictateState from './actions/setDictateState';\nimport setLanguage from './actions/setLanguage';\nimport setNotification from './actions/setNotification';\nimport setSendBox from './actions/setSendBox';\nimport setSendBoxAttachments from './actions/setSendBoxAttachments';\nimport setSendTimeout from './actions/setSendTimeout';\nimport setSendTypingIndicator from './actions/setSendTypingIndicator';\nimport startDictate from './actions/startDictate';\nimport startSpeakingActivity from './actions/startSpeakingActivity';\nimport stopDictate from './actions/stopDictate';\nimport stopSpeakingActivity from './actions/stopSpeakingActivity';\nimport submitSendBox from './actions/submitSendBox';\nimport * as ActivityClientState from './constants/ActivityClientState';\nimport * as DictateState from './constants/DictateState';\nimport createStore, {\n withDevTools as createStoreWithDevTools,\n withOptions as createStoreWithOptions\n} from './createStore';\nimport OneOrMany from './types/OneOrMany';\nimport { parseAction } from './types/external/OrgSchema/Action';\nimport { parseClaim } from './types/external/OrgSchema/Claim';\nimport { parseCreativeWork } from './types/external/OrgSchema/CreativeWork';\nimport { parseDefinedTerm } from './types/external/OrgSchema/DefinedTerm';\nimport { parseProject } from './types/external/OrgSchema/Project';\nimport { parseThing } from './types/external/OrgSchema/Thing';\nimport { parseVoteAction } from './types/external/OrgSchema/VoteAction';\nimport getOrgSchemaMessage from './utils/getOrgSchemaMessage';\nimport isForbiddenPropertyName from './utils/isForbiddenPropertyName';\nimport onErrorResumeNext from './utils/onErrorResumeNext';\nimport singleToArray from './utils/singleToArray';\nimport warnOnce from './utils/warnOnce';\n\nimport type { GlobalScopePonyfill } from './types/GlobalScopePonyfill';\nimport type { SendBoxAttachment } from './types/SendBoxAttachment';\nimport type { WebChatActivity } from './types/WebChatActivity';\nimport type { DirectLineActivity } from './types/external/DirectLineActivity';\nimport type { DirectLineAnimationCard } from './types/external/DirectLineAnimationCard';\nimport type { DirectLineAttachment } from './types/external/DirectLineAttachment';\nimport type { DirectLineAudioCard } from './types/external/DirectLineAudioCard';\nimport type { DirectLineCardAction } from './types/external/DirectLineCardAction';\nimport type { DirectLineHeroCard } from './types/external/DirectLineHeroCard';\nimport type { DirectLineJSBotConnection } from './types/external/DirectLineJSBotConnection';\nimport type { DirectLineOAuthCard } from './types/external/DirectLineOAuthCard';\nimport type { DirectLineReceiptCard } from './types/external/DirectLineReceiptCard';\nimport type { DirectLineSignInCard } from './types/external/DirectLineSignInCard';\nimport type { DirectLineSuggestedAction } from './types/external/DirectLineSuggestedAction';\nimport type { DirectLineThumbnailCard } from './types/external/DirectLineThumbnailCard';\nimport type { DirectLineVideoCard } from './types/external/DirectLineVideoCard';\nimport type { Observable } from './types/external/Observable';\nimport type { Action as OrgSchemaAction } from './types/external/OrgSchema/Action';\nimport type { Claim as OrgSchemaClaim } from './types/external/OrgSchema/Claim';\nimport type { CreativeWork as OrgSchemaCreativeWork } from './types/external/OrgSchema/CreativeWork';\nimport type { DefinedTerm as OrgSchemaDefinedTerm } from './types/external/OrgSchema/DefinedTerm';\nimport type { Project as OrgSchemaProject } from './types/external/OrgSchema/Project';\nimport type { Thing as OrgSchemaThing } from './types/external/OrgSchema/Thing';\n\nconst Constants = { ActivityClientState, DictateState };\nconst buildTool = process.env.build_tool;\nconst moduleFormat = process.env.module_format;\nconst version = process.env.npm_package_version;\n\nconst buildInfo = { buildTool, moduleFormat, version };\n\nexport {\n Constants,\n buildInfo,\n clearSuggestedActions,\n connect,\n createStore,\n createStoreWithDevTools,\n createStoreWithOptions,\n disconnect,\n dismissNotification,\n emitTypingIndicator,\n getOrgSchemaMessage,\n isForbiddenPropertyName,\n markActivity,\n moduleFormat,\n onErrorResumeNext,\n parseAction,\n parseClaim,\n parseCreativeWork,\n parseDefinedTerm,\n parseProject,\n parseThing,\n parseVoteAction,\n postActivity,\n sendEvent,\n sendFiles,\n sendMessage,\n sendMessageBack,\n sendPostBack,\n setDictateInterims,\n setDictateState,\n setLanguage,\n setNotification,\n setSendBox,\n setSendBoxAttachments,\n setSendTimeout,\n setSendTypingIndicator,\n singleToArray,\n startDictate,\n startSpeakingActivity,\n stopDictate,\n stopSpeakingActivity,\n submitSendBox,\n version,\n warnOnce\n};\n\nexport type {\n DirectLineActivity,\n DirectLineAnimationCard,\n DirectLineAttachment,\n DirectLineAudioCard,\n DirectLineCardAction,\n DirectLineHeroCard,\n DirectLineJSBotConnection,\n DirectLineOAuthCard,\n DirectLineReceiptCard,\n DirectLineSignInCard,\n DirectLineSuggestedAction,\n DirectLineThumbnailCard,\n DirectLineVideoCard,\n GlobalScopePonyfill,\n Observable,\n OneOrMany,\n OrgSchemaAction,\n OrgSchemaClaim,\n OrgSchemaCreativeWork,\n OrgSchemaDefinedTerm,\n OrgSchemaProject,\n OrgSchemaThing,\n SendBoxAttachment,\n WebChatActivity\n};\n"],"mappings":"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","names":["CLEAR_SUGGESTED_ACTIONS","clearSuggestedActions","CONNECT","CONNECT_FULFILLED","CONNECT_FULFILLING","CONNECT_PENDING","CONNECT_REJECTED","CONNECT_STILL_PENDING","connect","directLine","userID","username","DISCONNECT","DISCONNECT_PENDING","DISCONNECT_REJECTED","DISCONNECT_FULFILLED","disconnect","DISMISS_NOTIFICATION","dismissNotification","id","dismissNotification_default","EMIT_TYPING_INDICATOR","emitTypingIndicator","MARK_ACTIVITY","markActivity","activityID","name","value","markActivity_default","POST_ACTIVITY","POST_ACTIVITY_FULFILLED","POST_ACTIVITY_IMPEDED","POST_ACTIVITY_PENDING","POST_ACTIVITY_REJECTED","postActivity","activity","method","postActivity_default","SEND_EVENT","sendEvent","name","value","SEND_FILES","sendFiles","files","SEND_MESSAGE","sendMessage","text","method","attachments","channelData","SEND_MESSAGE_BACK","sendMessageback","value","text","displayText","SEND_POST_BACK","sendPostback","value","SET_DICTATE_INTERIMS","setDictateInterims","dictateInterims","SET_DICTATE_STATE","setDictateState","dictateState","SET_LANGUAGE","setLanguage","language","random","uniqueID","SET_NOTIFICATION","setNotification","alt","data","id","level","message","uniqueID","SET_SEND_BOX","setSendBox","text","SET_SEND_BOX_ATTACHMENTS","setSendBoxAttachments","attachments","SET_SEND_TIMEOUT","setSendTimeout","sendTimeout","SET_SEND_TYPING_INDICATOR","setSendTypingIndicator","value","START_DICTATE","startDictate","START_SPEAKING_ACTIVITY","startSpeakingActivity","STOP_DICTATE","stopDictate","STOP_SPEAKING_ACTIVITY","stopSpeakingActivity","SUBMIT_SEND_BOX","submitSendBox","method","channelData","ActivityClientState_exports","__export","SENDING","SEND_FAILED","SENT","DictateState_exports","__export","DICTATING","IDLE","STARTING","STOPPING","WILL_START","applyMiddleware","createReduxStore","composeWithDevTools","createSagaMiddleware","combineReducers","RECONNECT","RECONNECT_FULFILLED","RECONNECT_FULFILLING","RECONNECT_PENDING","RECONNECT_REJECTED","SAGA_ERROR","sagaError","DEFAULT_STATE","connectivityStatus","state","type","meta","CONNECT_PENDING","RECONNECT_PENDING","CONNECT_FULFILLED","RECONNECT_FULFILLED","CONNECT_REJECTED","CONNECT_STILL_PENDING","DISCONNECT_FULFILLED","SAGA_ERROR","updateIn","DELETE_ACTIVITY","INCOMING_ACTIVITY","incomingActivity","activity","incomingActivity_default","SENDING","SEND_FAILED","SENT","findBeforeAfter","array","getPosition","lastValue","lastPosition","index","value","currentPosition","DEFAULT_STATE","DIRECT_LINE_PLACEHOLDER_URL","getClientActivityID","activity","findByClientActivityID","clientActivityID","isPartOfLivestreamSession","patchActivity","activities","Date","updateIn","contentUrl","channelData","sequenceId","after","before","findBeforeAfter","target","upsertActivityWithSort","nextActivity","ponyfill","nextClientActivityID","nextSequenceId","nextActivities","id","indexToInsert","createActivitiesReducer","state","action","DELETE_ACTIVITY","MARK_ACTIVITY","payload","POST_ACTIVITY_PENDING","SENDING","POST_ACTIVITY_IMPEDED","SEND_FAILED","POST_ACTIVITY_REJECTED","POST_ACTIVITY_FULFILLED","SENT","INCOMING_ACTIVITY","existingActivity","sendStatus","createInternalReducer","ponyfill","updateIn","FORBIDDEN_PROPERTY_NAMES","getForbiddenPropertyNames","isForbiddenPropertyName","propertyName","DEFAULT_STATE","createNotificationsReducer","Date","state","action","type","now","DISMISS_NOTIFICATION","updateIn","SAGA_ERROR","SET_NOTIFICATION","alt","data","id","level","message","isForbiddenPropertyName","notification","updateIn","DEFAULT_STATE","createLastTypingReducer","Date","state","payload","type","INCOMING_ACTIVITY","POST_ACTIVITY_PENDING","id","name","role","activityType","now","updateIn","at","DEFAULT_STATE","dictateInterims","state","payload","type","SET_DICTATE_INTERIMS","DEFAULT_STATE","dictateState","state","payload","type","SET_DICTATE_STATE","START_DICTATE","STOP_DICTATE","DEFAULT_STATE","language","state","payload","type","SET_LANGUAGE","CONNECTION_STATUS_UPDATE","connectionStatusUpdate","connectionStatus","DEFAULT_STATE","readyState","state","payload","type","CONNECTION_STATUS_UPDATE","SET_REFERENCE_GRAMMAR_ID","setReferenceGrammarID","referenceGrammarID","DEFAULT_STATE","referenceGrammarID","state","payload","type","SET_REFERENCE_GRAMMAR_ID","DEFAULT_STATE","sendBoxAttachments","state","payload","type","SET_SEND_BOX_ATTACHMENTS","DEFAULT_STATE","sendBoxValue","state","payload","type","SET_SEND_BOX","DEFAULT_STATE","sendTimeout","state","payload","type","SET_SEND_TIMEOUT","DEFAULT_STATE","sendTypingIndicator","state","payload","type","SET_SEND_TYPING_INDICATOR","shouldSpeakIncomingActivity","state","type","START_SPEAKING_ACTIVITY","STOP_SPEAKING_ACTIVITY","EMPTY_ARRAY","SET_SUGGESTED_ACTIONS","setSuggestedActions","suggestedActions","DEFAULT_STATE","suggestedActions","state","payload","type","SET_SUGGESTED_ACTIONS","CLEAR_SUGGESTED_ACTIONS","createReducer","ponyfill","combineReducers","createActivitiesReducer","connectivityStatus","dictateInterims","dictateState","createInternalReducer","language","createNotificationsReducer","readyState","referenceGrammarID","sendBoxAttachments","sendBoxValue","sendTimeout","sendTypingIndicator","shouldSpeakIncomingActivity","suggestedActions","createLastTypingReducer","fork","put","takeEvery","call","cancel","fork","take","whileConnectedEffect","fn","args","call","userID","username","directLine","take","CONNECT_FULFILLING","RECONNECT_FULFILLING","task","fork","DISCONNECT_PENDING","RECONNECT_PENDING","cancel","clearSuggestedActions","put","setSuggestedActions","clearSuggestedActionsOnPostActivity","takeEvery","payload","type","POST_ACTIVITY_PENDING","clearSuggestedActionsOnPostActivitySaga","whileConnectedEffect","call","put","takeLatest","createDeferred","createPromiseQueue","deferred","queue","value","resolve","CONNECTIVITY_STATUS_NOTIFICATION_ID","subscribeToPromiseQueue","observable","push","shift","createPromiseQueue","subscription","connectionStatusToNotification","directLine","unsubscribe","reconnecting","call","put","setNotification","connectionStatusToNotificationSaga_default","takeLatest","CONNECT","put","call","observeEachEffect","observable","saga","call","queue","createPromiseQueue","subscription","result","observeConnectionStatus","directLine","observeEachEffect","connectionStatus","put","connectionStatusUpdate","setReferenceGrammarID","connectionStatusUpdateSaga","whileConnectedEffect","call","cancel","cancelled","fork","put","race","take","jwtDecode","fork","put","forkPutEffect","actions","action","UPDATE_CONNECTION_STATUS","updateConnectionStatus","connectionStatus","CONNECTING","ONLINE","UNINITIALIZED","randomUserID","uniqueID","observeAndPutConnectionStatusUpdate","directLine","connectionStatusQueue","createPromiseQueue","connectionStatusSubscription","connectionStatus","call","put","updateConnectionStatus","rectifyUserID","userIDFromAction","token","userIDFromToken","jwtDecode","result","connectSaga","activitySubscription","unsubscribeActivity","take","UPDATE_CONNECTION_STATUS","err","cancelled","reconnectSaga","runAsyncEffect","type","meta","payload","callEffectFactory","forkPutEffect","takeDisconnectAsError","DISCONNECT","runAsyncEffectUntilDisconnect","baseAction","race","connectSaga_default","username","CONNECT","updateConnectionStatusTask","fork","rectifiedUserID","disconnectMeta","endDirectLine","RECONNECT","error","cancel","DISCONNECT_PENDING","DISCONNECT_FULFILLED","call","put","race","take","sleep","interval","ponyfill","resolve","SLOW_CONNECTION_AFTER","detectSlowConnectionSaga","ponyfill","take","CONNECT_PENDING","RECONNECT_PENDING","race","CONNECT_FULFILLED","RECONNECT_FULFILLED","CONNECT_REJECTED","RECONNECT_REJECTED","call","sleep","put","CONNECT_STILL_PENDING","put","takeEvery","postTypingActivity","put","postActivity_default","emitTypingActivityToPostActivity","takeEvery","type","EMIT_TYPING_INDICATOR","emitTypingActivityToPostActivitySaga","whileConnectedEffect","put","select","takeEvery","activities","of","predicate","state","ofType","targetType","of","type","activities_default","activities","speakingActivity","activity","markAllAsSpoken","speakingActivities","select","of","speakingActivity","activity","put","markActivity_default","markAllAsSpokenOnStopSpeakActivitySaga","takeEvery","STOP_SPEAKING_ACTIVITY","put","updateIn","QUEUE_INCOMING_ACTIVITY","queueIncomingActivity","activity","PASSTHRU_FN","value","patchActivityWithFromRole","activity","userID","updateIn","patchNullAsUndefined","name","patchFromName","channelId","from","observeActivity","directLine","observeEachEffect","put","queueIncomingActivity","observeActivitySaga","whileConnectedEffect","all","call","cancelled","put","race","select","take","takeEvery","pad","value","count","stringValue","dateToLocaleISOString","date","timezoneOffset","timezoneSign","absoluteTimezoneOffset","deleteKey","map","keys","nextMap","key","isForbiddenPropertyName","language_default","language","call","observeOnceEffect","observable","subscription","resolve","reject","sendTimeout_default","sendTimeout","HARD_SEND_TIMEOUT","postActivity","directLine","userID","username","numActivitiesPosted","method","activity","ponyfill","attachments","clientActivityID","uniqueID","locale","select","language_default","localTimeZone","now","outgoingActivity","deleteKey","dateToLocaleISOString","contentType","contentUrl","name","thumbnailUrl","meta","put","POST_ACTIVITY_PENDING","echoed","echoBackCall","call","take","INCOMING_ACTIVITY","sendTimeout","sendTimeout_default","echoBack","race","all","observeOnceEffect","sleep","POST_ACTIVITY_IMPEDED","POST_ACTIVITY_FULFILLED","err","POST_ACTIVITY_REJECTED","cancelled","postActivitySaga","whileConnectedEffect","takeEvery","POST_ACTIVITY","action","call","cancelled","fork","put","race","select","take","activityFromBot_default","activity","REPLY_TIMEOUT","takeEveryAndSelect","actionType","selector","fn","cancelled","action","take","state","select","fork","waitForActivityId","replyToId","initialActivities","activities","activity","INCOMING_ACTIVITY","activities_default","queueIncomingActivity","userID","ponyfill","QUEUE_INCOMING_ACTIVITY","initialBotActivities","role","race","call","sleep","put","incomingActivity_default","messageActivities","ofType","lastMessageActivity","activityFromBot_default","actions","to","setSuggestedActions","queueIncomingActivitySaga","whileConnectedEffect","put","takeEvery","postActivityWithEvent","name","value","put","postActivity_default","sendEventToPostActivity","takeEvery","payload","type","SEND_EVENT","sendEventToPostActivitySaga","whileConnectedEffect","put","takeEvery","mime","getType","mime","postActivityWithFiles","files","put","postActivity_default","name","thumbnail","url","size","sendFilesToPostActivity","takeEvery","payload","type","SEND_FILES","sendFilesToPostActivitySaga","whileConnectedEffect","put","takeEvery","postActivityWithMessageBack","displayText","text","value","put","postActivity_default","sendMessageBackToPostActivity","takeEvery","SEND_MESSAGE_BACK","sendMessageBackToPostActivitySaga","whileConnectedEffect","put","takeEvery","postActivityWithMessage","attachments","channelData","method","text","put","postActivity_default","blob","thumbnailURL","size","sendMessageToPostActivity","takeEvery","payload","type","SEND_MESSAGE","sendMessageToPostActivitySaga","whileConnectedEffect","put","takeEvery","postActivityWithPostBack","value","put","postActivity_default","sendPostBackToPostActivity","takeEvery","SEND_POST_BACK","sendPostBackToPostActivitySaga","whileConnectedEffect","call","cancel","put","select","take","takeLatest","sendTypingIndicator_default","sendTypingIndicator","SEND_INTERVAL","takeSendTypingIndicator","value","take","payload","type","SET_SEND_TYPING_INDICATOR","sendTypingIndicatorOnSetSendBox","_","ponyfill","Date","select","sendTypingIndicator_default","lastSend","task","takeLatest","SET_SEND_BOX","POST_ACTIVITY","interval","call","sleep","put","emitTypingIndicator","cancel","sendTypingIndicatorOnSetSendBoxSaga","whileConnectedEffect","put","select","takeEvery","shouldSpeakIncomingActivity_default","shouldSpeakIncomingActivity","speakableActivity","activity","speakActivityAndStartDictateOnIncomingActivityFromOthers","userID","takeEvery","payload","type","INCOMING_ACTIVITY","activity","shouldSpeakIncomingActivity","select","shouldSpeakIncomingActivity_default","shouldSpeak","speakableActivity","speak","put","markActivity_default","setDictateState","stopDictate","speakActivityAndStartDictateOnIncomingActivityFromOthersSaga","whileConnectedEffect","put","select","takeEvery","dictateState_default","dictateState","startDictateOnSpeakComplete","speakingActivities","select","of","speakingActivity","dictateState_default","put","startDictate","startDictateOnSpeakCompleteSaga","takeEvery","type","MARK_ACTIVITY","SET_DICTATE_STATE","put","takeEvery","startSpeakActivityOnPostActivity","takeEvery","meta","payload","type","POST_ACTIVITY_PENDING","put","startSpeakingActivity","startSpeakActivityOnPostActivitySaga","whileConnectedEffect","put","takeEvery","stopDictateOnCardAction","takeEvery","payload","type","POST_ACTIVITY_PENDING","put","stopDictate","stopDictateOnCardActionSaga","whileConnectedEffect","put","takeEvery","stopSpeakingActivityOnInput","takeEvery","meta","payload","type","SET_SEND_BOX","POST_ACTIVITY_PENDING","put","stopSpeakingActivity","stopSpeakingActivityOnInputSaga","whileConnectedEffect","put","select","takeEvery","sendBoxAttachments","sendBoxValue_default","sendBoxValue","submitSendBox","takeEvery","SUBMIT_SEND_BOX","channelData","method","attachments","select","sendBoxAttachments","sendBoxValue","sendBoxValue_default","put","sendMessage","setSendBox","setSendBoxAttachments","submitSendBoxSaga","whileConnectedEffect","createSagas","ponyfill","fork","clearSuggestedActionsOnPostActivitySaga","connectionStatusToNotificationSaga_default","connectionStatusUpdateSaga","connectSaga_default","detectSlowConnectionSaga","emitTypingActivityToPostActivitySaga","markAllAsSpokenOnStopSpeakActivitySaga","observeActivitySaga","postActivitySaga","queueIncomingActivitySaga","sendEventToPostActivitySaga","sendFilesToPostActivitySaga","sendMessageBackToPostActivitySaga","sendMessageToPostActivitySaga","sendPostBackToPostActivitySaga","sendTypingIndicatorOnSetSendBoxSaga","speakActivityAndStartDictateOnIncomingActivityFromOthersSaga","startDictateOnSpeakCompleteSaga","startSpeakActivityOnPostActivitySaga","stopDictateOnCardActionSaga","stopSpeakingActivityOnInputSaga","submitSendBoxSaga","createEnhancerAndSagaMiddleware","getStore","middlewares","sagaMiddleware","createSagaMiddleware","args","err","store","sagaError","applyMiddleware","withOptions","options","initialState","globalThisOrWindow","ponyfillFromOptions","ponyfill","enhancer","createReduxStore","createReducer","composeWithDevTools","createSagas","createStore","withDevTools","lazy","parse","string","union","value","array","fallback","optional","transform","union","orgSchemaProperty","schema","orgSchemaProperty_default","parse","string","lazy","object","optional","parse","string","unknown","value","array","fallback","parse","transform","singularToArray","schema","fallback","transform","array","value","parse","orgSchemaProperties","orgSchemaProperty_default","thingEntries","optional","string","value","orgSchemaProperty_default","orgSchemaProperties","lazy","action","thing","entries","object","unknown","parseThing","data","parse","project","entries","thing","orgSchemaProperty_default","string","parseProject","data","parse","action","entries","thing","orgSchemaProperty_default","union","string","value","lazy","project","parseAction","data","parse","lazy","number","parse","string","union","lazy","parse","string","union","parse","string","definedTerm","entries","thing","orgSchemaProperty_default","string","parseDefinedTerm","data","parse","creativeWork","entries","thing","orgSchemaProperty_default","string","orgSchemaProperties","lazy","union","definedTerm","parseCreativeWork","data","parse","claim","entries","creativeWork","orgSchemaProperty_default","lazy","project","union","number","string","parseClaim","data","parse","parse","string","voteAction","entries","action","orgSchemaProperty_default","string","parseVoteAction","data","parse","getOrgSchemaMessage","graph","messageEntity","entity","parseThing","message","parseCreativeWork","onErrorResumeNext","fn","defaultValue","singleToArray","singleOrArray","once","fn","done","warnOnce","message","once","Constants","ActivityClientState_exports","DictateState_exports","buildTool","moduleFormat","version","buildInfo"]}
|
|
1
|
+
{"version":3,"sources":["../src/actions/connect.ts","../src/actions/disconnect.ts","../src/actions/dismissNotification.ts","../src/actions/emitTypingIndicator.ts","../src/actions/markActivity.ts","../src/actions/muteVoiceRecording.ts","../src/actions/postActivity.ts","../src/actions/postVoiceActivity.ts","../src/actions/registerVoiceHandler.ts","../src/actions/sendEvent.ts","../src/actions/sendFiles.ts","../src/actions/sendMessage.ts","../src/actions/sendMessageBack.ts","../src/actions/sendPostBack.ts","../src/actions/setDictateInterims.ts","../src/actions/setDictateState.ts","../src/actions/setLanguage.ts","../src/utils/uniqueID.ts","../src/actions/setNotification.ts","../src/actions/setSendBox.ts","../src/actions/setSendBoxAttachments.ts","../src/actions/setSendTimeout.ts","../src/actions/setSendTypingIndicator.ts","../src/actions/setVoiceState.ts","../src/actions/startDictate.ts","../src/actions/startSpeakingActivity.ts","../src/actions/startVoiceRecording.ts","../src/actions/stopDictate.ts","../src/actions/stopSpeakingActivity.ts","../src/actions/stopVoiceRecording.ts","../src/actions/submitSendBox.ts","../src/actions/unmuteVoiceRecording.ts","../src/actions/unregisterVoiceHandler.ts","../src/constants/ActivityClientState.ts","../src/constants/DictateState.ts","../src/createStore.ts","../src/actions/sagaError.ts","../src/createReducer.ts","../../base/dist/chunk-73SFLUWV.mjs","../../../node_modules/core-js-pure/internals/global-this.js","../../../node_modules/core-js-pure/internals/fails.js","../../../node_modules/core-js-pure/internals/function-bind-native.js","../../../node_modules/core-js-pure/internals/function-apply.js","../../../node_modules/core-js-pure/internals/function-uncurry-this.js","../../../node_modules/core-js-pure/internals/classof-raw.js","../../../node_modules/core-js-pure/internals/function-uncurry-this-clause.js","../../../node_modules/core-js-pure/internals/is-callable.js","../../../node_modules/core-js-pure/internals/descriptors.js","../../../node_modules/core-js-pure/internals/function-call.js","../../../node_modules/core-js-pure/internals/object-property-is-enumerable.js","../../../node_modules/core-js-pure/internals/create-property-descriptor.js","../../../node_modules/core-js-pure/internals/indexed-object.js","../../../node_modules/core-js-pure/internals/is-null-or-undefined.js","../../../node_modules/core-js-pure/internals/require-object-coercible.js","../../../node_modules/core-js-pure/internals/to-indexed-object.js","../../../node_modules/core-js-pure/internals/is-object.js","../../../node_modules/core-js-pure/internals/path.js","../../../node_modules/core-js-pure/internals/get-built-in.js","../../../node_modules/core-js-pure/internals/object-is-prototype-of.js","../../../node_modules/core-js-pure/internals/environment-user-agent.js","../../../node_modules/core-js-pure/internals/environment-v8-version.js","../../../node_modules/core-js-pure/internals/symbol-constructor-detection.js","../../../node_modules/core-js-pure/internals/use-symbol-as-uid.js","../../../node_modules/core-js-pure/internals/is-symbol.js","../../../node_modules/core-js-pure/internals/try-to-string.js","../../../node_modules/core-js-pure/internals/a-callable.js","../../../node_modules/core-js-pure/internals/get-method.js","../../../node_modules/core-js-pure/internals/ordinary-to-primitive.js","../../../node_modules/core-js-pure/internals/is-pure.js","../../../node_modules/core-js-pure/internals/define-global-property.js","../../../node_modules/core-js-pure/internals/shared-store.js","../../../node_modules/core-js-pure/internals/shared.js","../../../node_modules/core-js-pure/internals/to-object.js","../../../node_modules/core-js-pure/internals/has-own-property.js","../../../node_modules/core-js-pure/internals/uid.js","../../../node_modules/core-js-pure/internals/well-known-symbol.js","../../../node_modules/core-js-pure/internals/to-primitive.js","../../../node_modules/core-js-pure/internals/to-property-key.js","../../../node_modules/core-js-pure/internals/document-create-element.js","../../../node_modules/core-js-pure/internals/ie8-dom-define.js","../../../node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","../../../node_modules/core-js-pure/internals/is-forced.js","../../../node_modules/core-js-pure/internals/function-bind-context.js","../../../node_modules/core-js-pure/internals/v8-prototype-define-bug.js","../../../node_modules/core-js-pure/internals/an-object.js","../../../node_modules/core-js-pure/internals/object-define-property.js","../../../node_modules/core-js-pure/internals/create-non-enumerable-property.js","../../../node_modules/core-js-pure/internals/export.js","../../../node_modules/core-js-pure/internals/add-to-unscopables.js","../../../node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js","../../../node_modules/core-js-pure/internals/math-trunc.js","../../../node_modules/core-js-pure/internals/to-integer-or-infinity.js","../../../node_modules/core-js-pure/internals/to-length.js","../../../node_modules/core-js-pure/internals/length-of-array-like.js","../../../node_modules/core-js-pure/internals/to-absolute-index.js","../../../node_modules/core-js-pure/internals/create-property.js","../../../node_modules/core-js-pure/modules/es.array.to-spliced.js","../../../node_modules/core-js-pure/internals/entry-unbind.js","../../../node_modules/core-js-pure/es/array/to-spliced.js","../../../node_modules/core-js-pure/stable/array/to-spliced.js","../../../node_modules/core-js-pure/modules/esnext.array.to-spliced.js","../../../node_modules/core-js-pure/actual/array/to-spliced.js","../../../node_modules/core-js-pure/full/array/to-spliced.js","../../../node_modules/core-js-pure/features/array/to-spliced.js","../../../node_modules/core-js-pure/internals/environment.js","../../../node_modules/core-js-pure/internals/environment-is-node.js","../../../node_modules/core-js-pure/internals/define-built-in.js","../../../node_modules/core-js-pure/internals/function-uncurry-this-accessor.js","../../../node_modules/core-js-pure/internals/is-possible-prototype.js","../../../node_modules/core-js-pure/internals/a-possible-prototype.js","../../../node_modules/core-js-pure/internals/object-set-prototype-of.js","../../../node_modules/core-js-pure/internals/to-string-tag-support.js","../../../node_modules/core-js-pure/internals/classof.js","../../../node_modules/core-js-pure/internals/object-to-string.js","../../../node_modules/core-js-pure/internals/set-to-string-tag.js","../../../node_modules/core-js-pure/internals/define-built-in-accessor.js","../../../node_modules/core-js-pure/internals/set-species.js","../../../node_modules/core-js-pure/internals/an-instance.js","../../../node_modules/core-js-pure/internals/inspect-source.js","../../../node_modules/core-js-pure/internals/is-constructor.js","../../../node_modules/core-js-pure/internals/a-constructor.js","../../../node_modules/core-js-pure/internals/species-constructor.js","../../../node_modules/core-js-pure/internals/html.js","../../../node_modules/core-js-pure/internals/array-slice.js","../../../node_modules/core-js-pure/internals/validate-arguments-length.js","../../../node_modules/core-js-pure/internals/environment-is-ios.js","../../../node_modules/core-js-pure/internals/task.js","../../../node_modules/core-js-pure/internals/safe-get-built-in.js","../../../node_modules/core-js-pure/internals/queue.js","../../../node_modules/core-js-pure/internals/environment-is-ios-pebble.js","../../../node_modules/core-js-pure/internals/environment-is-webos-webkit.js","../../../node_modules/core-js-pure/internals/microtask.js","../../../node_modules/core-js-pure/internals/host-report-errors.js","../../../node_modules/core-js-pure/internals/perform.js","../../../node_modules/core-js-pure/internals/weak-map-basic-detection.js","../../../node_modules/core-js-pure/internals/shared-key.js","../../../node_modules/core-js-pure/internals/hidden-keys.js","../../../node_modules/core-js-pure/internals/internal-state.js","../../../node_modules/core-js-pure/internals/promise-native-constructor.js","../../../node_modules/core-js-pure/internals/promise-constructor-detection.js","../../../node_modules/core-js-pure/internals/new-promise-capability.js","../../../node_modules/core-js-pure/modules/es.promise.constructor.js","../../../node_modules/core-js-pure/internals/iterators.js","../../../node_modules/core-js-pure/internals/is-array-iterator-method.js","../../../node_modules/core-js-pure/internals/get-iterator-method.js","../../../node_modules/core-js-pure/internals/get-iterator.js","../../../node_modules/core-js-pure/internals/iterator-close.js","../../../node_modules/core-js-pure/internals/iterate.js","../../../node_modules/core-js-pure/internals/check-correctness-of-iteration.js","../../../node_modules/core-js-pure/internals/promise-statics-incorrect-iteration.js","../../../node_modules/core-js-pure/modules/es.promise.all.js","../../../node_modules/core-js-pure/modules/es.promise.catch.js","../../../node_modules/core-js-pure/modules/es.promise.race.js","../../../node_modules/core-js-pure/modules/es.promise.reject.js","../../../node_modules/core-js-pure/internals/promise-resolve.js","../../../node_modules/core-js-pure/modules/es.promise.resolve.js","../../../node_modules/core-js-pure/modules/es.promise.js","../../../node_modules/core-js-pure/modules/es.promise.with-resolvers.js","../../../node_modules/core-js-pure/es/promise/with-resolvers.js","../../../node_modules/core-js-pure/stable/promise/with-resolvers.js","../../../node_modules/core-js-pure/modules/esnext.promise.with-resolvers.js","../../../node_modules/core-js-pure/actual/promise/with-resolvers.js","../../../node_modules/core-js-pure/full/promise/with-resolvers.js","../../../node_modules/core-js-pure/features/promise/with-resolvers.js","../../base/src/utils/setMetaTag.ts","../../base/src/utils/createBuildInfo.ts","../../base/src/utils/private/once.ts","../../base/src/utils/warnOnce.ts","../../base/src/utils/deprecateObject.ts","../../base/src/utils/isForbiddenPropertyName.ts","../../base/src/utils/isPlainObject.ts","../../base/src/utils/iterateEquals.ts","../../base/src/utils/singleToArray.ts","../../base/src/utils/toSpliced.ts","../../base/src/utils/withResolvers.ts","../src/reducers/activities/createGroupedActivitiesReducer.ts","../src/actions/deleteActivity.ts","../src/actions/incomingActivity.ts","../src/types/internal/SendStatus.ts","../src/reducers/activities/patchActivity.ts","../src/reducers/activities/sort/private/computePartListTimestamp.ts","../src/reducers/activities/sort/private/computeSortedActivities.ts","../src/reducers/activities/sort/deleteActivityByLocalId.ts","../src/reducers/activities/sort/queryLocalIdByActivityId.ts","../src/reducers/activities/sort/queryLocalIdByClientActivityId.ts","../src/reducers/activities/sort/updateActivityChannelData.ts","../src/utils/getActivityLivestreamingMetadata.ts","../src/utils/getOrgSchemaMessage.ts","../src/reducers/activities/sort/private/getLogicalTimestamp.ts","../src/reducers/activities/sort/private/getPartGroupingMetadataMap.ts","../src/reducers/activities/sort/private/insertSorted.ts","../src/reducers/activities/sort/upsert.ts","../src/reducers/activities/combineActivitiesReducer.ts","../src/actions/reconnect.ts","../src/reducers/connectivityStatus.js","../src/reducers/createInternalReducer.ts","../src/reducers/createNotificationsReducer.ts","../src/reducers/createTypingReducer.ts","../src/reducers/dictateInterims.js","../src/reducers/dictateState.js","../src/reducers/language.js","../src/actions/connectionStatusUpdate.ts","../src/reducers/readyState.js","../src/actions/setReferenceGrammarID.js","../src/reducers/referenceGrammarID.js","../src/reducers/sendBoxAttachments.ts","../src/reducers/sendBoxValue.js","../src/reducers/sendTimeout.js","../src/reducers/sendTypingIndicator.js","../src/reducers/shouldSpeakIncomingActivity.js","../src/reducers/suggestedActions.ts","../src/reducers/suggestedActionsOriginActivity.ts","../src/reducers/voiceActivity.ts","../src/createSagas.ts","../src/sagas/actionSinkSaga.ts","../src/actions/registerActionSink.ts","../src/actions/unregisterActionSink.ts","../src/sagas/clearSuggestedActionsOnPostActivitySaga.js","../src/actions/setSuggestedActions.ts","../src/sagas/effects/whileConnected.ts","../src/sagas/connectionStatusToNotificationSaga.js","../src/createPromiseQueue.js","../src/sagas/connectionStatusUpdateSaga.js","../src/sagas/effects/observeEach.js","../src/sagas/connectSaga.js","../src/sagas/effects/forkPut.js","../src/actions/updateConnectionStatus.ts","../src/sagas/detectSlowConnectionSaga.ts","../src/utils/sleep.ts","../src/sagas/emitTypingIndicatorToPostActivitySaga.js","../src/sagas/markAllAsSpokenOnStopSpeakActivitySaga.js","../src/selectors/activities.ts","../src/definitions/speakingActivity.js","../src/sagas/observeActivitySaga.ts","../src/actions/queueIncomingActivity.ts","../src/utils/voiceActivity/isVoiceActivity.ts","../src/utils/voiceActivity/isVoiceTranscriptActivity.ts","../src/sagas/postActivitySaga.ts","../src/selectors/language.ts","../src/selectors/sendTimeout.ts","../src/utils/dateToLocaleISOString.ts","../src/utils/deleteKey.ts","../src/sagas/effects/observeOnce.ts","../src/sagas/queueIncomingActivitySaga.ts","../src/definitions/activityFromBot.js","../src/sagas/sendEventToPostActivitySaga.js","../src/sagas/sendFilesToPostActivitySaga.js","../src/sagas/sendMessageBackToPostActivitySaga.js","../src/sagas/sendMessageToPostActivitySaga.ts","../src/sagas/sendPostBackToPostActivitySaga.js","../src/sagas/sendTypingIndicatorOnSetSendBoxSaga.ts","../src/selectors/sendTypingIndicator.ts","../src/sagas/speakActivityAndStartDictateOnIncomingActivityFromOthersSaga.js","../src/definitions/speakableActivity.js","../src/selectors/dictateState.ts","../src/selectors/shouldSpeakIncomingActivity.ts","../src/sagas/startDictateOnSpeakCompleteSaga.js","../src/sagas/startSpeakActivityOnPostActivitySaga.js","../src/sagas/stopDictateOnCardActionSaga.js","../src/sagas/stopSpeakingActivityOnInputSaga.js","../src/sagas/submitSendBoxSaga.js","../src/selectors/sendBoxAttachments.ts","../src/selectors/sendBoxValue.ts","../src/sagas/postVoiceActivitySaga.ts","../src/utils/onErrorResumeNext.ts","../src/utils/voiceActivity/getVoiceActivityRole.ts","../src/utils/voiceActivity/getVoiceActivityText.ts","../src/actions/clearSuggestedActions.ts","../src/buildInfo.ts","../src/index.ts"],"sourcesContent":["const CONNECT = 'DIRECT_LINE/CONNECT';\nconst CONNECT_FULFILLED = `${CONNECT}_FULFILLED`;\nconst CONNECT_FULFILLING = `${CONNECT}_FULFILLING`;\nconst CONNECT_PENDING = `${CONNECT}_PENDING`;\nconst CONNECT_REJECTED = `${CONNECT}_REJECTED`;\nconst CONNECT_STILL_PENDING = `${CONNECT}_STILL_PENDING`;\n\nexport default function connect({\n directLine,\n userID,\n username\n}: {\n readonly directLine: any;\n readonly userID: string;\n readonly username: string;\n}) {\n return {\n type: CONNECT,\n payload: {\n directLine,\n userID,\n username\n }\n };\n}\n\nexport { CONNECT, CONNECT_FULFILLED, CONNECT_FULFILLING, CONNECT_PENDING, CONNECT_REJECTED, CONNECT_STILL_PENDING };\n","const DISCONNECT = 'DIRECT_LINE/DISCONNECT';\nconst DISCONNECT_PENDING = `${DISCONNECT}_PENDING`;\nconst DISCONNECT_REJECTED = `${DISCONNECT}_REJECTED`;\nconst DISCONNECT_FULFILLED = `${DISCONNECT}_FULFILLED`;\n\nexport default function disconnect() {\n return {\n type: DISCONNECT\n };\n}\n\nexport { DISCONNECT, DISCONNECT_PENDING, DISCONNECT_REJECTED, DISCONNECT_FULFILLED };\n","const DISMISS_NOTIFICATION = 'WEB_CHAT/DISMISS_NOTIFICATION';\n\ntype DismissNotificationAction = {\n payload: { id: string };\n type: typeof DISMISS_NOTIFICATION;\n};\n\nfunction dismissNotification(id: string): DismissNotificationAction {\n return {\n payload: { id },\n type: DISMISS_NOTIFICATION\n };\n}\n\nexport default dismissNotification;\n\nexport { DISMISS_NOTIFICATION };\n\nexport type { DismissNotificationAction };\n","const EMIT_TYPING_INDICATOR = 'WEB_CHAT/EMIT_TYPING_INDICATOR';\n\nexport default function emitTypingIndicator() {\n return {\n type: EMIT_TYPING_INDICATOR\n };\n}\n\nexport { EMIT_TYPING_INDICATOR };\n","type MarkActivityActionType = 'WEB_CHAT/MARK_ACTIVITY';\n\ntype MarkActivityAction = {\n payload: { activityID: string; name: string; value: any };\n type: MarkActivityActionType;\n};\n\nconst MARK_ACTIVITY: MarkActivityActionType = 'WEB_CHAT/MARK_ACTIVITY';\n\nfunction markActivity({ id: activityID }: { id: string }, name: string, value: any): MarkActivityAction {\n return {\n type: MARK_ACTIVITY,\n payload: {\n activityID,\n name,\n value\n }\n };\n}\n\nexport default markActivity;\nexport { MARK_ACTIVITY };\nexport type { MarkActivityAction };\n","const VOICE_MUTE_RECORDING = 'WEB_CHAT/VOICE_MUTE_RECORDING' as const;\n\ntype VoiceMuteRecordingAction = {\n type: typeof VOICE_MUTE_RECORDING;\n};\n\nfunction muteVoiceRecording(): VoiceMuteRecordingAction {\n return {\n type: VOICE_MUTE_RECORDING\n };\n}\n\nexport default muteVoiceRecording;\n\nexport { VOICE_MUTE_RECORDING };\n\nexport type { VoiceMuteRecordingAction };\n","import type { WebChatActivity } from '../types/WebChatActivity';\n\ntype PostActivityActionType = 'DIRECT_LINE/POST_ACTIVITY';\ntype PostActivityFulfilledActionType = 'DIRECT_LINE/POST_ACTIVITY_FULFILLED';\ntype PostActivityImpededActionType = 'DIRECT_LINE/POST_ACTIVITY_IMPEDED';\ntype PostActivityPendingActionType = 'DIRECT_LINE/POST_ACTIVITY_PENDING';\ntype PostActivityRejectedActionType = 'DIRECT_LINE/POST_ACTIVITY_REJECTED';\n\ntype PostActivityAction = {\n meta: { method: string };\n payload: { activity: WebChatActivity };\n type: PostActivityActionType;\n};\n\ntype PostActivityFulfilledAction = {\n meta: { clientActivityID: string; method: string };\n payload: { activity: WebChatActivity };\n type: PostActivityFulfilledActionType;\n};\n\ntype PostActivityImpededAction = {\n meta: { clientActivityID: string; method: string };\n payload: { activity: WebChatActivity };\n type: PostActivityImpededActionType;\n};\n\ntype PostActivityPendingAction = {\n meta: { clientActivityID: string; method: string };\n payload: { activity: WebChatActivity };\n type: PostActivityPendingActionType;\n};\n\ntype PostActivityRejectedAction = {\n error: true;\n meta: { clientActivityID: string; method: string };\n payload: Error;\n type: PostActivityRejectedActionType;\n};\n\nconst POST_ACTIVITY: PostActivityActionType = 'DIRECT_LINE/POST_ACTIVITY';\nconst POST_ACTIVITY_FULFILLED: PostActivityFulfilledActionType = `${POST_ACTIVITY}_FULFILLED`;\nconst POST_ACTIVITY_IMPEDED: PostActivityImpededActionType = `${POST_ACTIVITY}_IMPEDED`;\nconst POST_ACTIVITY_PENDING: PostActivityPendingActionType = `${POST_ACTIVITY}_PENDING`;\nconst POST_ACTIVITY_REJECTED: PostActivityRejectedActionType = `${POST_ACTIVITY}_REJECTED`;\n\nfunction postActivity(activity: WebChatActivity, method = 'keyboard'): PostActivityAction {\n return {\n type: POST_ACTIVITY,\n meta: { method },\n payload: { activity }\n };\n}\n\nexport default postActivity;\nexport { POST_ACTIVITY, POST_ACTIVITY_FULFILLED, POST_ACTIVITY_IMPEDED, POST_ACTIVITY_PENDING, POST_ACTIVITY_REJECTED };\nexport type {\n PostActivityAction,\n PostActivityFulfilledAction,\n PostActivityImpededAction,\n PostActivityPendingAction,\n PostActivityRejectedAction\n};\n","import type { WebChatActivity } from '../types/WebChatActivity';\n\nconst VOICE_POST_ACTIVITY = 'WEB_CHAT/VOICE_POST_ACTIVITY' as const;\n\ntype VoicePostActivityAction = {\n type: typeof VOICE_POST_ACTIVITY;\n payload: { activity: WebChatActivity };\n};\n\nfunction postVoiceActivity(activity: WebChatActivity): VoicePostActivityAction {\n return {\n type: VOICE_POST_ACTIVITY,\n payload: { activity }\n };\n}\n\nexport default postVoiceActivity;\n\nexport { VOICE_POST_ACTIVITY };\n\nexport type { VoicePostActivityAction };\n","const VOICE_REGISTER_HANDLER = 'WEB_CHAT/VOICE_REGISTER_HANDLER' as const;\n\ntype VoiceHandler = {\n queueAudio: (base64: string) => void;\n stopAllAudio: () => void;\n};\n\ntype VoiceRegisterHandlerAction = {\n type: typeof VOICE_REGISTER_HANDLER;\n payload: { id: string; voiceHandler: VoiceHandler };\n};\n\nfunction registerVoiceHandler(id: string, voiceHandler: VoiceHandler): VoiceRegisterHandlerAction {\n return {\n type: VOICE_REGISTER_HANDLER,\n payload: { id, voiceHandler }\n };\n}\n\nexport default registerVoiceHandler;\n\nexport { VOICE_REGISTER_HANDLER };\n\nexport type { VoiceHandler, VoiceRegisterHandlerAction };\n","const SEND_EVENT = 'WEB_CHAT/SEND_EVENT';\n\nexport default function sendEvent(name: string, value: any) {\n return {\n type: SEND_EVENT,\n payload: { name, value }\n };\n}\n\nexport { SEND_EVENT };\n","const SEND_FILES = 'WEB_CHAT/SEND_FILES';\n\n// TODO: [P1] We could obsolete this or dispatch { type: SEND_MESSAGE } insetad.\nexport default function sendFiles(\n files: readonly Readonly<{\n name: string;\n size: number;\n url: string;\n thumbnail?: string;\n }>[]\n) {\n return {\n type: SEND_FILES,\n payload: { files }\n };\n}\n\nexport { SEND_FILES };\n","import { type SendBoxAttachment } from '../types/SendBoxAttachment';\n\nconst SEND_MESSAGE = 'WEB_CHAT/SEND_MESSAGE';\n\nexport default function sendMessage(\n text: string | undefined,\n method: string | undefined,\n { attachments, channelData }: { attachments?: readonly SendBoxAttachment[]; channelData?: any } = {}\n) {\n return {\n type: SEND_MESSAGE,\n payload: { attachments, channelData, method, text }\n };\n}\n\nexport { SEND_MESSAGE };\n","const SEND_MESSAGE_BACK = 'WEB_CHAT/SEND_MESSAGE_BACK';\n\nexport default function sendMessageback(value: any, text: string | undefined, displayText: string | undefined) {\n return {\n type: SEND_MESSAGE_BACK,\n payload: { displayText, text, value }\n };\n}\n\nexport { SEND_MESSAGE_BACK };\n","const SEND_POST_BACK = 'WEB_CHAT/SEND_POST_BACK';\n\nexport default function sendPostback(value: any) {\n return {\n type: SEND_POST_BACK,\n payload: { value }\n };\n}\n\nexport { SEND_POST_BACK };\n","const SET_DICTATE_INTERIMS = 'WEB_CHAT/SET_DICTATE_INTERIMS';\n\nexport default function setDictateInterims(dictateInterims: readonly string[]) {\n return {\n type: SET_DICTATE_INTERIMS,\n payload: { dictateInterims }\n };\n}\n\nexport { SET_DICTATE_INTERIMS };\n","const SET_DICTATE_STATE = 'WEB_CHAT/SET_DICTATE_STATE';\n\nexport default function setDictateState(dictateState: number) {\n return {\n type: SET_DICTATE_STATE,\n payload: { dictateState }\n };\n}\n\nexport { SET_DICTATE_STATE };\n","const SET_LANGUAGE = 'WEB_CHAT/SET_LANGUAGE';\n\nexport default function setLanguage(language: string) {\n return {\n type: SET_LANGUAGE,\n payload: { language }\n };\n}\n\nexport { SET_LANGUAGE };\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [2, 36] }] */\n\nimport random from 'math-random';\n\nexport default function uniqueID(): string {\n return random().toString(36).substring(2);\n}\n","import uniqueID from '../utils/uniqueID';\n\nimport type { Notification } from '../types/internal/Notification';\n\nconst SET_NOTIFICATION = 'WEB_CHAT/SET_NOTIFICATION';\n\ntype SetNotificationAction = {\n payload: Omit<Notification, 'timestamp'>;\n type: typeof SET_NOTIFICATION;\n};\n\nexport default function setNotification({\n alt,\n data,\n id,\n level,\n message\n}: Omit<Notification, 'timestamp'>): SetNotificationAction {\n if (!id || typeof id !== 'string') {\n console.warn(\n 'botframework-webchat: The \"id\" argument passed to \"setNotification\" must be a string; defaulting to a random value.'\n );\n\n id = uniqueID();\n }\n\n if (!level || typeof level !== 'string') {\n console.warn(\n 'botframework-webchat: The \"level\" argument passed to \"setNotification\" must be a string; defaulting to \"info\".'\n );\n\n level = 'info';\n }\n\n return {\n type: SET_NOTIFICATION,\n payload: { alt, data, id, level, message }\n };\n}\n\nexport { SET_NOTIFICATION };\n\nexport type { SetNotificationAction };\n","const SET_SEND_BOX = 'WEB_CHAT/SET_SEND_BOX';\n\nexport default function setSendBox(text: string) {\n return {\n type: SET_SEND_BOX,\n payload: { text }\n };\n}\n\nexport { SET_SEND_BOX };\n","import type { SendBoxAttachment } from '../types/SendBoxAttachment';\n\nconst SET_SEND_BOX_ATTACHMENTS = 'WEB_CHAT/SET_SEND_BOX_ATTACHMENTS';\n\nexport default function setSendBoxAttachments(attachments: readonly SendBoxAttachment[]) {\n return {\n type: SET_SEND_BOX_ATTACHMENTS,\n payload: { attachments }\n };\n}\n\nexport { SET_SEND_BOX_ATTACHMENTS };\n","const SET_SEND_TIMEOUT = 'WEB_CHAT/SET_SEND_TIMEOUT';\n\nexport default function setSendTimeout(sendTimeout: number) {\n return {\n type: SET_SEND_TIMEOUT,\n payload: { sendTimeout }\n };\n}\n\nexport { SET_SEND_TIMEOUT };\n","const SET_SEND_TYPING_INDICATOR = 'WEB_CHAT/SET_SEND_TYPING_INDICATOR';\n\ntype SetSendTypingIndicatorAction = {\n payload: { sendTypingIndicator: boolean };\n type: typeof SET_SEND_TYPING_INDICATOR;\n};\n\nexport default function setSendTypingIndicator(value: boolean): SetSendTypingIndicatorAction {\n return {\n payload: { sendTypingIndicator: !!value },\n type: SET_SEND_TYPING_INDICATOR\n };\n}\n\nexport { SET_SEND_TYPING_INDICATOR };\n\nexport type { SetSendTypingIndicatorAction };\n","const VOICE_SET_STATE = 'WEB_CHAT/VOICE_SET_STATE' as const;\n\ntype VoiceState = 'idle' | 'listening' | 'user_speaking' | 'processing' | 'bot_speaking';\n\ntype VoiceSetStateAction = {\n type: typeof VOICE_SET_STATE;\n payload: { voiceState: VoiceState };\n};\n\nfunction setVoiceState(voiceState: VoiceState): VoiceSetStateAction {\n return {\n type: VOICE_SET_STATE,\n payload: { voiceState }\n };\n}\n\nexport default setVoiceState;\n\nexport { VOICE_SET_STATE };\n\nexport type { VoiceState, VoiceSetStateAction };\n","const START_DICTATE = 'WEB_CHAT/START_DICTATE';\n\nexport default function startDictate() {\n return { type: START_DICTATE };\n}\n\nexport { START_DICTATE };\n","const START_SPEAKING_ACTIVITY = 'WEB_CHAT/START_SPEAKING';\n\nexport default function startSpeakingActivity() {\n return {\n type: START_SPEAKING_ACTIVITY\n };\n}\n\nexport { START_SPEAKING_ACTIVITY };\n","const VOICE_START_RECORDING = 'WEB_CHAT/VOICE_START_RECORDING' as const;\n\ntype VoiceStartRecordingAction = {\n type: typeof VOICE_START_RECORDING;\n};\n\nfunction startVoiceRecording(): VoiceStartRecordingAction {\n return {\n type: VOICE_START_RECORDING\n };\n}\n\nexport default startVoiceRecording;\n\nexport { VOICE_START_RECORDING };\n\nexport type { VoiceStartRecordingAction };\n","const STOP_DICTATE = 'WEB_CHAT/STOP_DICTATE';\n\nexport default function stopDictate() {\n return { type: STOP_DICTATE };\n}\n\nexport { STOP_DICTATE };\n","const STOP_SPEAKING_ACTIVITY = 'WEB_CHAT/STOP_SPEAKING';\n\nexport default function stopSpeakingActivity() {\n return {\n type: STOP_SPEAKING_ACTIVITY\n };\n}\n\nexport { STOP_SPEAKING_ACTIVITY };\n","const VOICE_STOP_RECORDING = 'WEB_CHAT/VOICE_STOP_RECORDING' as const;\n\ntype VoiceStopRecordingAction = {\n type: typeof VOICE_STOP_RECORDING;\n};\n\nfunction stopVoiceRecording(): VoiceStopRecordingAction {\n return {\n type: VOICE_STOP_RECORDING\n };\n}\n\nexport default stopVoiceRecording;\n\nexport { VOICE_STOP_RECORDING };\n\nexport type { VoiceStopRecordingAction };\n","const SUBMIT_SEND_BOX = 'WEB_CHAT/SUBMIT_SEND_BOX';\n\nexport default function submitSendBox(method = 'keyboard', { channelData } = { channelData: undefined }) {\n return {\n type: SUBMIT_SEND_BOX,\n payload: { channelData, method }\n };\n}\n\nexport { SUBMIT_SEND_BOX };\n","const VOICE_UNMUTE_RECORDING = 'WEB_CHAT/VOICE_UNMUTE_RECORDING' as const;\n\ntype VoiceUnmuteRecordingAction = {\n type: typeof VOICE_UNMUTE_RECORDING;\n};\n\nfunction unmuteVoiceRecording(): VoiceUnmuteRecordingAction {\n return {\n type: VOICE_UNMUTE_RECORDING\n };\n}\n\nexport default unmuteVoiceRecording;\n\nexport { VOICE_UNMUTE_RECORDING };\n\nexport type { VoiceUnmuteRecordingAction };\n","const VOICE_UNREGISTER_HANDLER = 'WEB_CHAT/VOICE_UNREGISTER_HANDLER' as const;\n\ntype VoiceUnregisterHandlerAction = {\n type: typeof VOICE_UNREGISTER_HANDLER;\n payload: { id: string };\n};\n\nfunction unregisterVoiceHandler(id: string): VoiceUnregisterHandlerAction {\n return {\n type: VOICE_UNREGISTER_HANDLER,\n payload: { id }\n };\n}\n\nexport default unregisterVoiceHandler;\n\nexport { VOICE_UNREGISTER_HANDLER };\n\nexport type { VoiceUnregisterHandlerAction };\n","/** @deprecated This constant is being deprecated, please use string literal instead. Will be remove on or after 2024-07-31. */\nconst SEND_FAILED = 'send failed' as const;\n/** @deprecated This constant is being deprecated, please use string literal instead. Will be remove on or after 2024-07-31. */\nconst SENDING = 'sending' as const;\n/** @deprecated This constant is being deprecated, please use string literal instead. Will be remove on or after 2024-07-31. */\nconst SENT = 'sent' as const;\n\nexport { SEND_FAILED, SENDING, SENT };\n","const IDLE = 0 as const;\nconst WILL_START = 1 as const;\n// eslint-disable-next-line no-magic-numbers\nconst STARTING = 2 as const;\n// eslint-disable-next-line no-magic-numbers\nconst DICTATING = 3 as const;\n// eslint-disable-next-line no-magic-numbers\nconst STOPPING = 4 as const;\n\nexport { DICTATING, IDLE, STARTING, STOPPING, WILL_START };\n","import { composeWithDevTools } from '@redux-devtools/extension';\nimport { applyMiddleware, createStore as createReduxStore, type Middleware, type Store } from 'redux';\nimport createSagaMiddleware from 'redux-saga';\n\nimport sagaError from './actions/sagaError';\nimport createReducer from './createReducer';\nimport createSagas from './createSagas';\nimport { RestrictedStoreDebugAPI } from './types/StoreDebugAPI';\n\nimport type { GlobalScopePonyfill } from './types/GlobalScopePonyfill';\nimport StoreDebugAPIRegistry from './internal/StoreDebugAPIRegistry';\n\ntype CreateStoreOptions = {\n /**\n * True, to enable Redux development tools, otherwise, false.\n *\n * Because Web Chat use sagas for business logics, some store state are keep at JavaScript heaps.\n * Time-travelling and saving/restoring store state are not supported.\n */\n devTools?: boolean;\n\n /**\n * Ponyfill to overrides specific global scope members.\n *\n * This option is for development use only. Not all features in Web Chat are ponyfilled.\n *\n * To fake timers, `setTimeout` and related functions can be passed to overrides the original global scope members.\n *\n * Please see [#4662](https://github.com/microsoft/BotFramework-WebChat/pull/4662) for details.\n */\n ponyfill?: Partial<GlobalScopePonyfill>;\n};\n\nfunction createEnhancerAndSagaMiddleware(getStore: () => any, ...middlewares: readonly Middleware[]) {\n const sagaMiddleware = createSagaMiddleware({\n onError: (...args) => {\n const [err] = args;\n\n console.error(err);\n\n const store = getStore();\n\n store && store.dispatch(sagaError());\n }\n });\n\n return {\n enhancer: applyMiddleware(...middlewares, sagaMiddleware),\n sagaMiddleware\n };\n}\n\n/**\n * Creates a Redux store internally used by Web Chat.\n *\n * This store is critical for Web Chat business logics to operate, please use with cautions.\n */\n\n// The complexity is introduced by the check of ponyfill.\n// eslint-disable-next-line complexity\nexport function withOptions(\n options: CreateStoreOptions,\n initialState?: any | undefined,\n ...middlewares: readonly Middleware[]\n): Store {\n // IE Mode does not have `globalThis`.\n const globalThisOrWindow = typeof globalThis === 'undefined' ? window : globalThis;\n const ponyfillFromOptions: Partial<GlobalScopePonyfill> = options.ponyfill || {};\n\n // TODO: [P2] Dedupe: when we have an utility package, move this code there and mark it as internal use.\n const ponyfill: GlobalScopePonyfill = {\n cancelAnimationFrame:\n ponyfillFromOptions.cancelAnimationFrame ||\n // Using clock functions from global if not provided.\n // eslint-disable-next-line no-restricted-globals\n (typeof cancelAnimationFrame === 'function' ? cancelAnimationFrame.bind(globalThisOrWindow) : undefined),\n cancelIdleCallback:\n ponyfillFromOptions.cancelIdleCallback ||\n // eslint-disable-next-line no-restricted-globals\n (typeof cancelIdleCallback === 'function' ? cancelIdleCallback.bind(globalThisOrWindow) : undefined),\n clearImmediate:\n ponyfillFromOptions.clearImmediate ||\n // eslint-disable-next-line no-restricted-globals\n (typeof clearImmediate === 'function' ? clearImmediate.bind(globalThisOrWindow) : undefined),\n clearInterval:\n ponyfillFromOptions.clearInterval ||\n // eslint-disable-next-line no-restricted-globals\n (typeof clearInterval === 'function' ? clearInterval.bind(globalThisOrWindow) : undefined),\n clearTimeout:\n ponyfillFromOptions.clearTimeout ||\n // eslint-disable-next-line no-restricted-globals\n (typeof clearTimeout === 'function' ? clearTimeout.bind(globalThisOrWindow) : undefined),\n // eslint-disable-next-line no-restricted-globals\n Date: ponyfillFromOptions.Date || Date,\n requestAnimationFrame:\n ponyfillFromOptions.requestAnimationFrame ||\n // eslint-disable-next-line no-restricted-globals\n (typeof requestAnimationFrame === 'function' ? requestAnimationFrame.bind(globalThisOrWindow) : undefined),\n requestIdleCallback:\n ponyfillFromOptions.requestIdleCallback ||\n // eslint-disable-next-line no-restricted-globals\n (typeof requestIdleCallback === 'function' ? requestIdleCallback.bind(globalThisOrWindow) : undefined),\n setImmediate:\n ponyfillFromOptions.setImmediate ||\n // eslint-disable-next-line no-restricted-globals\n (typeof setImmediate === 'function' ? setImmediate.bind(globalThisOrWindow) : undefined),\n setInterval:\n ponyfillFromOptions.setInterval ||\n // eslint-disable-next-line no-restricted-globals\n (typeof setInterval === 'function' ? setInterval.bind(globalThisOrWindow) : undefined),\n setTimeout:\n ponyfillFromOptions.setTimeout ||\n // eslint-disable-next-line no-restricted-globals\n (typeof setTimeout === 'function' ? setTimeout.bind(globalThisOrWindow) : undefined)\n };\n\n // We are doing lazy init and cyclic dependencies.\n // eslint-disable-next-line prefer-const\n let store: Store | undefined;\n\n const restrictedStoreDebugAPI = new RestrictedStoreDebugAPI(() => store?.getState().activities);\n\n // We are sure the \"getStore\" (first argument) is not called on \"createEnhancerAndSagaMiddleware()\".\n const { enhancer, sagaMiddleware } = createEnhancerAndSagaMiddleware(() => store, ...middlewares);\n\n store = createReduxStore(\n createReducer(ponyfill, restrictedStoreDebugAPI),\n initialState || {},\n options.devTools ? composeWithDevTools(enhancer) : enhancer\n );\n\n // TODO: [P1] When we redesign the store and chat adapter, we should have the Debug API stored somewhere else.\n StoreDebugAPIRegistry.set(store, restrictedStoreDebugAPI.toPublic());\n\n // TODO: [P1] When we redesign the store and chat adapter, we shoulstore.getState().activities\n sagaMiddleware.run(createSagas({ ponyfill }));\n\n return store;\n}\n\n/**\n * Creates a Redux store internally used by Web Chat.\n *\n * This store is critical for Web Chat business logics to operate, please use with cautions.\n */\nexport default function createStore(initialState?: any, ...middlewares: readonly Middleware[]): Store {\n return withOptions({}, initialState, ...middlewares);\n}\n\n/**\n * Creates a Redux store internally used by Web Chat, with Redux development tools.\n *\n * This store is critical for Web Chat business logics to operate, please use with cautions.\n *\n * @deprecated Use `withOptions` instead and pass `{ devTools: true }`\n */\nexport function withDevTools(initialState?: any, ...middlewares: readonly Middleware[]): Store {\n return withOptions({ devTools: true }, initialState, ...middlewares);\n}\n","const SAGA_ERROR = 'WEB_CHAT/SAGA_ERROR';\n\ntype SagaErrorAction = {\n type: typeof SAGA_ERROR;\n};\n\nexport default function sagaError(): SagaErrorAction {\n return { type: SAGA_ERROR };\n}\n\nexport { SAGA_ERROR };\n\nexport type { SagaErrorAction };\n","import { combineReducers } from 'redux';\n\nimport combineActivitiesReducer from './reducers/activities/combineActivitiesReducer';\nimport connectivityStatus from './reducers/connectivityStatus';\nimport createInternalReducer from './reducers/createInternalReducer';\nimport createNotificationsReducer from './reducers/createNotificationsReducer';\nimport createTypingReducer from './reducers/createTypingReducer';\nimport dictateInterims from './reducers/dictateInterims';\nimport dictateState from './reducers/dictateState';\nimport language from './reducers/language';\nimport readyState from './reducers/readyState';\nimport referenceGrammarID from './reducers/referenceGrammarID';\nimport sendBoxAttachments from './reducers/sendBoxAttachments';\nimport sendBoxValue from './reducers/sendBoxValue';\nimport sendTimeout from './reducers/sendTimeout';\nimport sendTypingIndicator from './reducers/sendTypingIndicator';\nimport shouldSpeakIncomingActivity from './reducers/shouldSpeakIncomingActivity';\nimport suggestedActions from './reducers/suggestedActions';\nimport suggestedActionsOriginActivity from './reducers/suggestedActionsOriginActivity';\nimport voiceActivity from './reducers/voiceActivity';\n\nimport type { GlobalScopePonyfill } from './types/GlobalScopePonyfill';\nimport type { RestrictedStoreDebugAPI } from './types/StoreDebugAPI';\n\nexport default function createReducer(ponyfill: GlobalScopePonyfill, restrictedStoreDebugAPI: RestrictedStoreDebugAPI) {\n return combineActivitiesReducer(\n ponyfill,\n restrictedStoreDebugAPI,\n combineReducers({\n connectivityStatus,\n dictateInterims,\n dictateState,\n internal: createInternalReducer(ponyfill),\n language,\n notifications: createNotificationsReducer(ponyfill),\n readyState,\n referenceGrammarID,\n sendBoxAttachments,\n sendBoxValue,\n sendTimeout,\n sendTypingIndicator,\n shouldSpeakIncomingActivity,\n suggestedActions,\n suggestedActionsOriginActivity,\n typing: createTypingReducer(ponyfill),\n voice: voiceActivity\n })\n );\n}\n","var g=Object.create;var f=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports);var l=(b,a,c,e)=>{if(a&&typeof a==\"object\"||typeof a==\"function\")for(let d of i(a))!k.call(b,d)&&d!==c&&f(b,d,{get:()=>a[d],enumerable:!(e=h(a,d))||e.enumerable});return b};var n=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?f(c,\"default\",{value:b,enumerable:!0}):c,b));export{m as a,n as b};\n//# sourceMappingURL=chunk-73SFLUWV.mjs.map","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = function () { /* empty */ }.bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar path = require('../internals/path');\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n return isCallable(variable) ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(globalThis[namespace])\n : path[namespace] && path[namespace][method] || globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nmodule.exports = true;\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.49.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',\n license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n// add debugging info\nrequire('../internals/shared-store');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof Wrapper) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return apply(NativeConstructor, this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? globalThis : STATIC ? globalThis[TARGET] : globalThis[TARGET] && globalThis[TARGET].prototype;\n\n var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (!FORCED && !PROTO && typeof targetProperty == typeof sourceProperty) continue;\n\n // bind methods to global for calling from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, globalThis);\n // wrap global constructors for prevent changes in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n createNonEnumerableProperty(target, key, resultProperty);\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n // export real prototype methods\n if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","'use strict';\nmodule.exports = function () { /* empty */ };\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.toSpliced` method\n// https://tc39.es/ecma262/#sec-array.prototype.tospliced\n$({ target: 'Array', proto: true }, {\n toSpliced: function toSpliced(start, deleteCount /* , ...items */) {\n var O = toIndexedObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var k = 0;\n var insertCount, actualDeleteCount, newLen, A;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = $Array(newLen);\n\n for (; k < actualStart; k++) createProperty(A, k, O[k]);\n for (; k < actualStart + insertCount; k++) createProperty(A, k, arguments[k - actualStart + 2]);\n for (; k < newLen; k++) createProperty(A, k, O[k + actualDeleteCount - insertCount]);\n\n return A;\n }\n});\n\naddToUnscopables('toSpliced');\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn;\n","'use strict';\nrequire('../../modules/es.array.to-spliced');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'toSpliced');\n","'use strict';\nvar parent = require('../../es/array/to-spliced');\n\nmodule.exports = parent;\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.to-spliced');\n","'use strict';\nvar parent = require('../../stable/array/to-spliced');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.array.to-spliced');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/array/to-spliced');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../../full/array/to-spliced');\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (target, key, value, options) {\n if (options && options.enumerable) target[key] = value;\n else createNonEnumerableProperty(target, key, value);\n return target;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/object-to-string');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC, SET_METHOD) {\n var target = STATIC ? it : it && it.prototype;\n if (target) {\n if (!hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {\n createNonEnumerableProperty(target, 'toString', toString);\n }\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && /applewebkit/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = globalThis.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return globalThis[name];\n var descriptor = getOwnPropertyDescriptor(globalThis, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, globalThis);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis.Promise;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\nvar path = require('../internals/path');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n globalThis.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: null\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nPromiseWrapper = path.Promise;\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n var $iterator = iterator;\n iterator = undefined;\n if ($iterator) iteratorClose($iterator, 'normal');\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n // `IteratorValue` errors should propagate without closing the iterator\n var value = step.value;\n try {\n result = callFn(value);\n } catch (error) {\n if (iterator) iteratorClose(iterator, 'throw', error);\n else throw error;\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://tc39.es/ecma262/#sec-promise.withResolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","'use strict';\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.with-resolvers');\nvar call = require('../../internals/function-call');\nvar isCallable = require('../../internals/is-callable');\nvar path = require('../../internals/path');\n\nvar Promise = path.Promise;\nvar promiseWithResolvers = Promise.withResolvers;\n\nmodule.exports = function withResolvers() {\n return call(promiseWithResolvers, isCallable(this) ? this : Promise);\n};\n","'use strict';\nvar parent = require('../../es/promise/with-resolvers');\n\nmodule.exports = parent;\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.with-resolvers');\n","'use strict';\nvar parent = require('../../stable/promise/with-resolvers');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.promise.with-resolvers');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/promise/with-resolvers');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../../full/promise/with-resolvers');\n","/// <reference lib=\"dom\" />\n\n// Courtesy of https://stackoverflow.com/a/67243723.\nfunction kebabCase(value: string): string {\n return value.replace(/[A-Z]+(?![a-z])|[A-Z]/gu, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\n}\n\nexport default function setMetaTag(name: string, content: string): void;\nexport default function setMetaTag(name: string, contentMap: ReadonlyMap<string, string | undefined>): void;\n\nexport default function setMetaTag(name: string, contentMap: ReadonlyMap<string, string | undefined> | string): void {\n try {\n const { document } = globalThis;\n\n if (typeof document !== 'undefined' && document.createElement && document.head && document.head.appendChild) {\n const meta = document.querySelector(`html meta[name=\"${encodeURI(name)}\"]`) || document.createElement('meta');\n\n meta.setAttribute('name', name);\n meta.setAttribute(\n 'content',\n typeof contentMap === 'string'\n ? contentMap\n : Array.from(contentMap.entries())\n .map(([key, value]) => {\n const name = kebabCase(encodeURIComponent(key));\n\n return typeof value === 'undefined' ? name : `${name}=${encodeURIComponent(value)}`;\n })\n .join('; ')\n );\n\n document.head.appendChild(meta);\n }\n } catch {\n // Intentionally left blank.\n }\n}\n","import setMetaTag from './setMetaTag';\n\ntype BaseBuildInfoObject = {\n readonly buildTool?: string | undefined;\n readonly moduleFormat?: string | undefined;\n readonly version?: string | undefined;\n};\n\ninterface ReadonlyBuildInfo {\n get name(): string;\n get object(): BaseBuildInfoObject;\n get version(): string | undefined;\n\n delete(key: string): void;\n get(key: string): string | undefined;\n set(key: 'variant', value: 'full' | 'full-es5' | 'minimal'): void;\n set(key: string, value: string | undefined): void;\n}\n\nclass BuildInfo implements ReadonlyBuildInfo {\n constructor(name: string) {\n this.#name = name;\n }\n\n #map = new Map<string, string | undefined>();\n #name: string;\n #object: BaseBuildInfoObject = {};\n\n get name() {\n return this.#name;\n }\n\n get object() {\n return this.#object;\n }\n\n get version(): string | undefined {\n return this.#map.get('version');\n }\n\n #commit() {\n setMetaTag(this.name, this.#map);\n\n this.version && setMetaTag(`${this.name}:version`, this.version);\n }\n\n delete(key: string) {\n this.#map.delete(key);\n }\n\n get(key: string): string | undefined {\n return this.#map.get(key);\n }\n\n set(key: string, value: string | undefined): void {\n this.#map.set(key, value);\n\n Object.defineProperty(this.#object, key, {\n configurable: true,\n enumerable: true,\n value,\n writable: false\n });\n\n this.#commit();\n }\n}\n\nfunction createBuildInfo(name: 'botframework-webchat' | `botframework-webchat:${string}`): ReadonlyBuildInfo {\n return new BuildInfo(name);\n}\n\nexport default createBuildInfo;\nexport { type BuildInfo, type ReadonlyBuildInfo };\n","export default function once<P extends any[]>(fn: (...args: P) => void): (...args: P) => void {\n let done = false;\n\n return (...args) => {\n if (!done) {\n fn(...args);\n done = true;\n }\n };\n}\n","import once from './private/once';\n\nexport default function warnOnce(message: string): (...args: any[]) => void {\n return once((...args: any[]) => console.warn(`botframework-webchat: ${message}`, ...args));\n}\n","import warnOnce from './warnOnce';\n\nconst PROPERTY_DENYLIST = new Set<string | symbol>([\n '__defineGetter__',\n '__defineSetter__',\n '__lookupGetter__',\n '__lookupSetter__',\n '__proto__',\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'prototype',\n 'toString',\n 'valueOf'\n]);\n\nexport default function deprecateObject<T extends { [key: string | symbol]: any }>(namespace: T, message: string): T {\n const warnDeprecation = warnOnce(message);\n\n return new Proxy<T>(namespace, {\n get(target, p) {\n if (\n !PROPERTY_DENYLIST.has(p) &&\n (typeof p === 'string'\n ? Object.getOwnPropertyNames(target).includes(p)\n : Object.getOwnPropertySymbols(target).includes(p))\n ) {\n warnDeprecation(p);\n\n // Only can get own properties.\n // eslint-disable-next-line security/detect-object-injection\n return target[p];\n }\n }\n });\n}\n","const FORBIDDEN_PROPERTY_NAMES: readonly string[] = Object.freeze(\n Array.from(\n new Set([\n // As-of writing, `Object.prototype` includes:\n // __defineGetter__\n // __defineSetter__\n // __lookupGetter__\n // __lookupSetter\n // __proto__\n // constructor\n // hasOwnProperty\n // isPrototypeOf\n // propertyIsEnumerable\n // toLocaleString\n // toString\n // valueOf\n ...Object.getOwnPropertyNames(Object.prototype),\n\n 'prototype'\n ])\n )\n);\n\nexport default function isForbiddenPropertyName(propertyName: string): boolean {\n return FORBIDDEN_PROPERTY_NAMES.includes(propertyName);\n}\n","const OBJECT_PROTOTYPE = Object.prototype;\n\nexport default function isPlainObject(obj: unknown): boolean {\n return Object.getPrototypeOf(obj) === OBJECT_PROTOTYPE;\n}\n","const MAX_ITERATION = 1_000_000;\n\nexport default function iterateEquals<T>(x: Iterable<T>, y: Iterable<T>): boolean {\n const xIterator = x[Symbol.iterator]();\n const yIterator = y[Symbol.iterator]();\n\n if (Object.is(xIterator, yIterator)) {\n throw new Error('Must not pass same instance twice');\n }\n\n for (let count = 0; count < MAX_ITERATION; count++) {\n const resultX = xIterator.next();\n const resultY = yIterator.next();\n\n const { done: xDone } = resultX;\n const { done: yDone } = resultY;\n\n if (xDone && yDone) {\n return true;\n } else if (xDone || yDone || !Object.is(resultX.value, resultY.value)) {\n break;\n }\n }\n\n return false;\n}\n","const EMPTY_ARRAY: readonly any[] = Object.freeze([]);\n\n/** @deprecated Will be removed on or after 2028-03-16. */\nexport default function singleToArray<T>(singleOrArray: T | readonly T[]): readonly T[] {\n return typeof singleOrArray === 'undefined'\n ? (EMPTY_ARRAY as readonly T[])\n : Object.freeze(Array.isArray(singleOrArray) ? [...singleOrArray] : [singleOrArray]);\n}\n","// @ts-expect-error: no types available\nimport coreJSToSpliced from 'core-js-pure/features/array/to-spliced.js';\n\nexport default function toSpliced<T>(array: readonly T[], start: number, deleteCount: number, ...items: T[]): T[] {\n return coreJSToSpliced(array, start, deleteCount, ...items);\n}\n","// Promise.withResolvers() is about 90 KiB.\n// @ts-expect-error: no types available\nimport coreJSWithResolvers from 'core-js-pure/features/promise/with-resolvers.js';\n\nexport type PromiseWithResolvers<T> = {\n promise: Promise<T>;\n reject: (error: unknown) => void;\n resolve: (value: T) => void;\n};\n\nexport default function withResolvers<T>(): PromiseWithResolvers<T> {\n return coreJSWithResolvers();\n}\n","/* eslint-disable complexity */\n/* eslint no-magic-numbers: [\"error\", { \"ignore\": [0, 1, -1] }] */\n\n// @ts-ignore No @types/simple-update-in\nimport updateIn from 'simple-update-in';\nimport { v4 } from 'uuid';\n\nimport { DELETE_ACTIVITY } from '../../actions/deleteActivity';\nimport { INCOMING_ACTIVITY } from '../../actions/incomingActivity';\nimport { MARK_ACTIVITY } from '../../actions/markActivity';\nimport {\n POST_ACTIVITY_FULFILLED,\n POST_ACTIVITY_IMPEDED,\n POST_ACTIVITY_PENDING,\n POST_ACTIVITY_REJECTED\n} from '../../actions/postActivity';\nimport { SENDING, SEND_FAILED, SENT } from '../../types/internal/SendStatus';\n\nimport type { Reducer } from 'redux';\nimport type { DeleteActivityAction } from '../../actions/deleteActivity';\nimport type { IncomingActivityAction } from '../../actions/incomingActivity';\nimport type { MarkActivityAction } from '../../actions/markActivity';\nimport type {\n PostActivityFulfilledAction,\n PostActivityImpededAction,\n PostActivityPendingAction,\n PostActivityRejectedAction\n} from '../../actions/postActivity';\nimport type { GlobalScopePonyfill } from '../../types/GlobalScopePonyfill';\nimport { type RestrictedStoreDebugAPI } from '../../types/StoreDebugAPI';\nimport type { WebChatActivity } from '../../types/WebChatActivity';\nimport patchActivity from './patchActivity';\nimport deleteActivityByLocalId from './sort/deleteActivityByLocalId';\nimport { generateLocalIdInActivity, getLocalIdFromActivity, setLocalIdInActivity } from './sort/property/LocalId';\nimport { getPositionFromActivity, setPositionInActivity } from './sort/property/Position';\nimport { setReceivedAtInActivity } from './sort/property/ReceivedAt';\nimport { querySendStatusFromOutgoingActivity, setSendStatusInOutgoingActivity } from './sort/property/SendStatus';\nimport queryLocalIdAByActivityId from './sort/queryLocalIdByActivityId';\nimport queryLocalIdAByClientActivityId from './sort/queryLocalIdByClientActivityId';\nimport type { State } from './sort/types';\nimport updateActivityChannelData, {\n updateActivityChannelDataInternalSkipNameCheck\n} from './sort/updateActivityChannelData';\nimport upsert, { INITIAL_STATE } from './sort/upsert';\n\ntype GroupedActivitiesAction =\n | DeleteActivityAction\n | IncomingActivityAction\n | MarkActivityAction\n | PostActivityFulfilledAction\n | PostActivityImpededAction\n | PostActivityPendingAction\n | PostActivityRejectedAction;\n\ntype GroupedActivitiesState = State;\n\nconst DEFAULT_STATE: GroupedActivitiesState = INITIAL_STATE;\n\nfunction getClientActivityID(activity: WebChatActivity): string | undefined {\n return activity.channelData?.clientActivityID;\n}\n\nfunction createGroupedActivitiesReducer(\n ponyfill: GlobalScopePonyfill,\n restrictedStoreDebugAPI: RestrictedStoreDebugAPI\n): Reducer<GroupedActivitiesState, GroupedActivitiesAction> {\n return function activities(\n state: GroupedActivitiesState = DEFAULT_STATE,\n action: GroupedActivitiesAction\n ): GroupedActivitiesState {\n switch (action.type) {\n case DELETE_ACTIVITY: {\n console.warn(\n 'botframework-webchat: Delete activity is being deprecated, please build your own chat adapter instead.'\n );\n\n const localId = queryLocalIdAByActivityId(state, action.payload.activityID);\n\n if (localId) {\n state = deleteActivityByLocalId(state, localId);\n }\n\n break;\n }\n\n case MARK_ACTIVITY: {\n // We need to deprecate this, however, it is currently using by speech.\n\n const localId = queryLocalIdAByActivityId(state, action.payload.activityID);\n\n if (localId) {\n state = updateActivityChannelData(state, localId, action.payload.name, action.payload.value);\n }\n\n break;\n }\n\n case POST_ACTIVITY_PENDING: {\n let {\n payload: { activity }\n } = action;\n\n // Patch activity so the outgoing blob: URL is not re-downloadable.\n // Related to /__tests__/html2/accessibility/liveRegion/attachment/file.\n\n // Why not re-downloadable?\n // - When the activity echo back, the URL will be dummy (not downloadable)\n // - Outgoing -> echo back, the UI will be \"downloadable\" and flash to \"not downloadable\" in a short amount of time\n\n // TODO: [P0] Consider modify attachment middleware so all outgoing activity is not downloadable.\n\n activity = patchActivity(activity, ponyfill);\n activity = setReceivedAtInActivity(activity, ponyfill.Date.now());\n activity = generateLocalIdInActivity(activity);\n // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`.\n // Please refer to #4362 for details. Remove on or after 2024-07-31.\n activity = updateIn(activity, ['channelData', 'state'], () => SENDING);\n activity = setSendStatusInOutgoingActivity(activity, SENDING);\n\n state = upsert(ponyfill, state, activity);\n\n break;\n }\n\n case POST_ACTIVITY_IMPEDED: {\n const localId = queryLocalIdAByClientActivityId(state, action.meta.clientActivityID);\n\n if (localId) {\n state = updateActivityChannelDataInternalSkipNameCheck(\n state,\n localId,\n // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`.\n // Please refer to #4362 for details. Remove on or after 2024-07-31.\n 'state',\n SEND_FAILED\n );\n }\n\n break;\n }\n\n case POST_ACTIVITY_REJECTED: {\n const localId = queryLocalIdAByClientActivityId(state, action.meta.clientActivityID);\n\n if (localId) {\n state = updateActivityChannelDataInternalSkipNameCheck(state, localId, 'state', SEND_FAILED);\n state = updateActivityChannelDataInternalSkipNameCheck(state, localId, 'webchat:send-status', SEND_FAILED);\n }\n\n break;\n }\n\n case POST_ACTIVITY_FULFILLED: {\n const localId = queryLocalIdAByClientActivityId(state, action.meta.clientActivityID);\n\n const existingActivity = localId && state.activityMap.get(localId)?.activity;\n\n if (!existingActivity) {\n throw new Error(\n 'botframework-webchat-internal: On POST_ACTIVITY_FULFILLED, there is no activities with same client activity ID'\n );\n }\n\n // We will replace the outgoing activity with the version from the server\n let activity = patchActivity(action.payload.activity, ponyfill);\n\n activity = updateIn(\n activity,\n // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`.\n // Please refer to #4362 for details. Remove on or after 2024-07-31.\n ['channelData', 'state'],\n () => SENT\n );\n\n activity = setSendStatusInOutgoingActivity(activity, SENT);\n activity = setLocalIdInActivity(activity, localId);\n\n // Keep existing position.\n activity = setPositionInActivity(activity, getPositionFromActivity(existingActivity));\n\n // Compare the INCOMING_ACTIVITY below:\n // - POST_ACTIVITY_FULFILLED will mark send status as SENT\n // - INCOMING_ACTIVITY will not change send status and leave it as-is\n state = upsert(ponyfill, state, activity);\n\n break;\n }\n\n case INCOMING_ACTIVITY: {\n let {\n payload: { activity }\n } = action;\n\n // We cannot call breakpoint inside Redux because DebugContext cannot call getState(), need setTimeout.\n queueMicrotask(() => restrictedStoreDebugAPI.UNSAFE_callBreakpoint.incomingActivity({ activity }));\n\n activity = patchActivity(activity, ponyfill);\n\n // Clean internal properties if they were passed from chat adapter.\n // These properties should not be passed from external systems.\n activity = setLocalIdInActivity(activity, undefined);\n activity = setPositionInActivity(activity, undefined);\n activity = setSendStatusInOutgoingActivity(activity, undefined);\n\n // If the incoming activity is an echo back, we should keep the existing `channelData['webchat:send-status']` field.\n //\n // Otherwise, it will fail following scenario:\n //\n // 1. Send an activity to the service\n // 2. Service echoed back the activity\n // 3. Service did NOT return `postActivity` call\n // - EXPECT: `channelData['webchat:send-status']` should be \"sending\".\n // - ACTUAL: `channelData['webchat:send-status']` is `undefined` because the activity get overwritten by the echo back activity.\n // The echo back activity contains no `channelData['webchat:send-status']`.\n //\n // While we are looking out for the scenario above, we should also look at the following scenarios:\n //\n // 1. Service restore chat history, including activities sent from the user. These activities has the following characteristics:\n // - They do not have `channelData['webchat:send-status']`;\n // - They do not have an ongoing `postActivitySaga`;\n // - They should not previously appear in the chat history.\n // 2. We need to mark these activities as \"sent\".\n //\n // In the future, when we revamp our object model, we could use a different signal so we don't need the code below, for example:\n //\n // - If `activity.id` is set, it is \"sent\", because the chat service assigned an ID to the activity;\n // - If `activity.id` is not set, it is either \"sending\" or \"send failed\";\n // - If `activity.channelData['webchat:send-failed-reason']` is set, it is \"send failed\" with the reason, otherwise;\n // - It is sending.\n if (activity.from.role === 'user') {\n const { id } = activity;\n const clientActivityID = getClientActivityID(activity);\n\n const existingLocalId = clientActivityID\n ? queryLocalIdAByClientActivityId(state, clientActivityID)\n : id\n ? queryLocalIdAByActivityId(state, id)\n : undefined;\n const existingActivity = existingLocalId && state.activityMap.get(existingLocalId)?.activity;\n\n if (existingActivity) {\n activity = setLocalIdInActivity(activity, getLocalIdFromActivity(existingActivity));\n\n const existingSendStatus = querySendStatusFromOutgoingActivity(existingActivity);\n\n if (typeof existingSendStatus !== 'undefined') {\n activity = setSendStatusInOutgoingActivity(activity, existingSendStatus);\n }\n } else {\n activity = generateLocalIdInActivity(activity);\n\n // If there are no existing activity, probably this activity is restored from chat history.\n // All outgoing activities restored from service means they arrived at the service successfully.\n // Thus, we are marking them as \"sent\".\n activity = setSendStatusInOutgoingActivity(activity, SENT);\n }\n } else {\n let { id } = activity;\n\n if (!id) {\n id = v4();\n\n console.warn(\n 'botframework-webchat: Incoming activity must have \"id\" field set, assigning a random value as ID',\n {\n activity,\n newActivityId: id\n }\n );\n\n activity = updateIn(activity, ['id'], () => id);\n }\n\n const existingLocalId = queryLocalIdAByActivityId(state, id);\n\n if (existingLocalId) {\n activity = setLocalIdInActivity(activity, existingLocalId);\n } else {\n activity = generateLocalIdInActivity(activity);\n }\n }\n\n state = upsert(ponyfill, state, activity);\n\n break;\n }\n\n default:\n break;\n }\n\n return state;\n };\n}\n\nexport default createGroupedActivitiesReducer;\nexport type { GroupedActivitiesAction, GroupedActivitiesState };\n","type DeleteActivityActionType = 'DIRECT_LINE/DELETE_ACTIVITY';\n\ntype DeleteActivityAction = {\n payload: { activityID: string };\n type: DeleteActivityActionType;\n};\n\nconst DELETE_ACTIVITY: DeleteActivityActionType = 'DIRECT_LINE/DELETE_ACTIVITY';\n\nfunction deleteActivity(activityID: string): DeleteActivityAction {\n return {\n type: DELETE_ACTIVITY,\n payload: { activityID }\n };\n}\n\nexport default deleteActivity;\nexport { DELETE_ACTIVITY };\nexport type { DeleteActivityAction };\n","import type { WebChatActivity } from '../types/WebChatActivity';\n\ntype IncomingActivityActionType = 'DIRECT_LINE/INCOMING_ACTIVITY';\n\ntype IncomingActivityAction = {\n payload: { activity: WebChatActivity };\n type: IncomingActivityActionType;\n};\n\nconst INCOMING_ACTIVITY: IncomingActivityActionType = 'DIRECT_LINE/INCOMING_ACTIVITY';\n\nfunction incomingActivity(activity: WebChatActivity): IncomingActivityAction {\n return {\n type: INCOMING_ACTIVITY,\n payload: { activity }\n };\n}\n\nexport default incomingActivity;\nexport { INCOMING_ACTIVITY };\nexport type { IncomingActivityAction };\n","// This type is only for this package only and help reducing size of the bundle.\n// Externals should use the string literal directly instead.\n\n// TODO: [P3] #4040 When improve treeshaking with named exports, we could export internals from `core` package.\n// import { SENDING, SEND_FAILED, SENT } from 'botframework-webchat-core/internal/SendStatus';\n\nconst SENDING = 'sending';\nconst SEND_FAILED = 'send failed';\nconst SENT = 'sent';\n\ntype SendStatus = typeof SENDING | typeof SEND_FAILED | typeof SENT;\n\nexport { SENDING, SEND_FAILED, SENT };\nexport type { SendStatus };\n","// @ts-ignore No @types/simple-update-in\nimport updateIn from 'simple-update-in';\nimport type { GlobalScopePonyfill } from '../../types/GlobalScopePonyfill';\nimport type { WebChatActivity } from '../../types/WebChatActivity';\nimport { setReceivedAtInActivity } from './sort/property/ReceivedAt';\n\nconst DIRECT_LINE_PLACEHOLDER_URL =\n 'https://docs.botframework.com/static/devportal/client/images/bot-framework-default-placeholder.png';\n\n/**\n * Patches incoming activity.\n *\n * @returns A patched activity.\n */\nexport default function patchActivity(activity: WebChatActivity, { Date }: GlobalScopePonyfill): WebChatActivity {\n // Direct Line channel will return a placeholder image for the user-uploaded image.\n // As observed, the URL for the placeholder image is https://docs.botframework.com/static/devportal/client/images/bot-framework-default-placeholder.png.\n // To make our code simpler, we are removing the value if \"contentUrl\" is pointing to a placeholder image.\n\n // TODO: [P2] #2869 This \"contentURL\" removal code should be moved to DirectLineJS adapter.\n\n // Also, if the \"contentURL\" starts with \"blob:\", this means the user is uploading a file (the URL is constructed by URL.createObjectURL)\n // 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.\n\n activity = updateIn(activity, ['attachments', () => true, 'contentUrl'], (contentUrl: string) => {\n if (contentUrl !== DIRECT_LINE_PLACEHOLDER_URL && !/^blob:/iu.test(contentUrl)) {\n return contentUrl;\n }\n\n return undefined;\n });\n\n activity = updateIn(activity, ['channelData'], (channelData: any) => ({ ...channelData }));\n activity = setReceivedAtInActivity(activity, Date.now());\n\n return activity;\n}\n","import type { HowToGroupingMapPartEntry } from '../types';\n\nexport default function computePartListTimestamp(partList: readonly HowToGroupingMapPartEntry[]): number | undefined {\n return partList.reduce<number | undefined>(\n (max, { logicalTimestamp }) =>\n typeof logicalTimestamp === 'undefined' ? max : Math.max(max ?? -Infinity, logicalTimestamp),\n undefined\n );\n}\n","import type { Activity, LivestreamSessionMap, State } from '../types';\n\nfunction* yieldSessionActivities(\n session: NonNullable<ReturnType<LivestreamSessionMap['get']>>,\n activityMap: State['activityMap']\n): Generator<Activity> {\n if (session.finalized) {\n // After finalization, only yield the final revision — intermediate revisions are pruned.\n // eslint-disable-next-line no-magic-numbers\n const lastEntry = session.activities.at(-1);\n\n lastEntry && (yield activityMap.get(lastEntry.activityLocalId)!.activity);\n } else {\n for (const activityEntry of session.activities) {\n yield activityMap.get(activityEntry.activityLocalId)!.activity;\n }\n }\n}\n\nexport default function computeSortedActivities(\n temporalState: Pick<State, 'activityMap' | 'howToGroupingMap' | 'livestreamSessionMap' | 'sortedChatHistoryList'>\n): Activity[] {\n const { activityMap, howToGroupingMap, livestreamSessionMap, sortedChatHistoryList } = temporalState;\n\n return Array.from<Activity>(\n (function* () {\n for (const sortedEntry of sortedChatHistoryList) {\n if (sortedEntry.type === 'activity') {\n // TODO: [P*] Instead of deferencing using internal ID, use pointer instead.\n yield activityMap.get(sortedEntry.activityLocalId)!.activity;\n } else if (sortedEntry.type === 'how to grouping') {\n const howToGrouping = howToGroupingMap.get(sortedEntry.howToGroupingId)!;\n\n for (const howToPartEntry of howToGrouping.partList) {\n if (howToPartEntry.type === 'activity') {\n yield activityMap.get(howToPartEntry.activityLocalId)!.activity;\n } else {\n howToPartEntry.type satisfies 'livestream session';\n\n yield* yieldSessionActivities(livestreamSessionMap.get(howToPartEntry.livestreamSessionId)!, activityMap);\n }\n }\n } else {\n sortedEntry.type satisfies 'livestream session';\n\n yield* yieldSessionActivities(livestreamSessionMap.get(sortedEntry.livestreamSessionId)!, activityMap);\n }\n }\n })()\n );\n}\n","import computePartListTimestamp from './private/computePartListTimestamp';\nimport computeSortedActivities from './private/computeSortedActivities';\nimport type { LocalId } from './property/LocalId';\nimport type { LivestreamSessionMapEntry, State } from './types';\n\nexport default function deleteActivityByLocalId(state: State, localId: LocalId): State {\n const nextActivityIdToLocalIdMap = new Map(state.activityIdToLocalIdMap);\n const nextActivityMap = new Map(state.activityMap);\n const nextClientActivityIdToLocalIdMap = new Map(state.clientActivityIdToLocalIdMap);\n const nextHowToGroupingMap = new Map(state.howToGroupingMap);\n const nextLivestreamSessionMap = new Map(state.livestreamSessionMap);\n let nextSortedChatHistoryList = Array.from(state.sortedChatHistoryList);\n\n if (!nextActivityMap.delete(localId)) {\n throw new Error(`botframework-webchat: Cannot find activity with local ID \"${localId}\" to delete`);\n }\n\n for (const entry of nextActivityIdToLocalIdMap) {\n if (entry[1] === localId) {\n nextActivityIdToLocalIdMap.delete(entry[0]);\n\n break;\n }\n }\n\n for (const entry of nextClientActivityIdToLocalIdMap) {\n if (entry[1] === localId) {\n nextClientActivityIdToLocalIdMap.delete(entry[0]);\n\n break;\n }\n }\n\n for (const [howToGroupingId, entry] of nextHowToGroupingMap) {\n const partIndex = entry.partList.findIndex(part => part.type === 'activity' && part.activityLocalId === localId);\n\n if (~partIndex) {\n const nextPartList = Array.from(entry.partList);\n\n nextPartList.splice(partIndex, 1);\n\n if (nextPartList.length) {\n const nextHowToGroupingMapEntry = Object.freeze({\n ...entry,\n logicalTimestamp: computePartListTimestamp(nextPartList),\n partList: Object.freeze(nextPartList)\n });\n\n nextHowToGroupingMap.set(howToGroupingId, nextHowToGroupingMapEntry);\n\n nextSortedChatHistoryList = nextSortedChatHistoryList.map(entry => {\n if (entry.type === 'how to grouping' && entry.howToGroupingId === howToGroupingId) {\n return {\n howToGroupingId,\n logicalTimestamp: nextHowToGroupingMapEntry.logicalTimestamp,\n type: 'how to grouping'\n };\n }\n\n return entry;\n });\n } else {\n nextHowToGroupingMap.delete(howToGroupingId);\n\n const sortedChatHistoryListIndex = nextSortedChatHistoryList.findIndex(\n entry => entry.type === 'how to grouping' && entry.howToGroupingId === howToGroupingId\n );\n\n ~sortedChatHistoryListIndex && nextSortedChatHistoryList.splice(sortedChatHistoryListIndex, 1);\n }\n }\n }\n\n for (const [livestreamSessionId, livestreamSessionMapEntry] of nextLivestreamSessionMap) {\n const activityIndex = livestreamSessionMapEntry.activities.findIndex(\n activity => activity.activityLocalId === localId\n );\n\n if (~activityIndex) {\n const nextActivities = Array.from(livestreamSessionMapEntry.activities);\n\n nextActivities.splice(activityIndex, 1);\n\n if (nextActivities.length) {\n // eslint-disable-next-line no-magic-numbers\n const lastActivity = nextActivities.at(-1);\n const finalActivity = lastActivity?.sequenceNumber === Infinity ? lastActivity : undefined;\n\n const logicalTimestamp = finalActivity\n ? finalActivity.logicalTimestamp\n : nextActivities.at(0)?.logicalTimestamp;\n\n const nextLivestreamSessionMapEntry: LivestreamSessionMapEntry = {\n ...livestreamSessionMapEntry,\n activities: nextActivities,\n finalized: !!finalActivity,\n logicalTimestamp\n };\n\n nextLivestreamSessionMap.set(livestreamSessionId, nextLivestreamSessionMapEntry);\n\n for (const [howToGroupingId, entry] of nextHowToGroupingMap) {\n let changed = false;\n\n const nextPartList = entry.partList.map(part => {\n if (part.type === 'livestream session' && part.livestreamSessionId === livestreamSessionId) {\n changed = true;\n\n return { ...part, logicalTimestamp };\n }\n\n return part;\n });\n\n if (changed) {\n nextHowToGroupingMap.set(howToGroupingId, {\n ...entry,\n logicalTimestamp: computePartListTimestamp(nextPartList),\n partList: nextPartList\n });\n }\n }\n } else {\n nextLivestreamSessionMap.delete(livestreamSessionId);\n\n const sortedChatHistoryListIndex = nextSortedChatHistoryList.findIndex(\n entry => entry.type === 'livestream session' && entry.livestreamSessionId === livestreamSessionId\n );\n\n ~sortedChatHistoryListIndex && nextSortedChatHistoryList.splice(sortedChatHistoryListIndex, 1);\n\n for (const [howToGroupingId, entry] of nextHowToGroupingMap) {\n const partIndex = entry.partList.findIndex(\n part => part.type === 'livestream session' && part.livestreamSessionId === livestreamSessionId\n );\n\n if (~partIndex) {\n const nextPartList = Array.from(entry.partList);\n\n nextPartList.splice(partIndex, 1);\n\n nextHowToGroupingMap.set(howToGroupingId, {\n ...entry,\n logicalTimestamp: computePartListTimestamp(nextPartList),\n partList: nextPartList\n });\n }\n }\n }\n }\n }\n\n nextSortedChatHistoryList = nextSortedChatHistoryList.filter(entry => {\n if (entry.type === 'activity' && entry.activityLocalId === localId) {\n return false;\n }\n\n return true;\n });\n\n const nextSortedActivities = computeSortedActivities({\n activityMap: nextActivityMap,\n howToGroupingMap: nextHowToGroupingMap,\n livestreamSessionMap: nextLivestreamSessionMap,\n sortedChatHistoryList: nextSortedChatHistoryList\n });\n\n return Object.freeze({\n activityIdToLocalIdMap: Object.freeze(nextActivityIdToLocalIdMap),\n activityMap: Object.freeze(nextActivityMap),\n clientActivityIdToLocalIdMap: Object.freeze(nextClientActivityIdToLocalIdMap),\n howToGroupingMap: Object.freeze(nextHowToGroupingMap),\n livestreamSessionMap: Object.freeze(nextLivestreamSessionMap),\n sortedActivities: Object.freeze(nextSortedActivities),\n sortedChatHistoryList: Object.freeze(nextSortedChatHistoryList)\n } satisfies State);\n}\n","import type { LocalId } from './property/LocalId';\nimport type { State } from './types';\n\nexport default function queryLocalIdAByActivityId(state: State, activityId: string): LocalId | undefined {\n return state.activityIdToLocalIdMap.get(activityId);\n}\n","import type { LocalId } from './property/LocalId';\nimport type { State } from './types';\n\nexport default function queryLocalIdAByClientActivityId(state: State, clientActivityId: string): LocalId | undefined {\n return state.clientActivityIdToLocalIdMap.get(clientActivityId);\n}\n","import { check, parse, pipe, string, type GenericSchema } from 'valibot';\nimport { getLocalIdFromActivity, type LocalId } from './property/LocalId';\nimport type { Activity, ActivityMapEntry, State } from './types';\n\nconst channelDataNameSchema: GenericSchema<\n Exclude<string, 'state' | 'streamId' | 'streamSequence' | 'streamType' | `webchat:${string}`>\n> = pipe(\n string(),\n check(\n value =>\n value !== 'state' &&\n value !== 'streamId' &&\n value !== 'streamSequence' &&\n value !== 'streamType' &&\n !value.startsWith('webchat:'),\n 'name must not be a reserved'\n )\n);\n\n/**\n * Updates activity channel data.\n *\n * Note: after channel data is updated, it will not update to a new position.\n * Do not use this function for updating channel data that would affect position, such as `streamSequence`.\n *\n * @param state\n * @param activityLocalId\n * @param name\n * @param value\n * @returns\n */\nfunction updateActivityChannelDataInternalSkipNameCheck(\n state: State,\n activityLocalId: LocalId,\n name: string,\n value: unknown\n): State {\n const activityEntry = state.activityMap.get(activityLocalId);\n\n if (!activityEntry) {\n throw new Error(`botframework-webchat: no activity found with internal ID ${activityLocalId}`);\n }\n\n // TODO: [P0] We will freeze activity in future.\n const nextActivity: Activity = {\n ...activityEntry.activity,\n channelData: {\n ...activityEntry.activity.channelData,\n [name]: value\n } as any\n };\n\n const nextActivityMap = new Map(state.activityMap).set(\n activityLocalId,\n Object.freeze({ ...activityEntry, activity: nextActivity } satisfies ActivityMapEntry)\n );\n\n const nextSortedActivities = Array.from(state.sortedActivities);\n\n const existingActivityIndex = nextSortedActivities.findIndex(\n activity => getLocalIdFromActivity(activity) === activityLocalId\n );\n\n if (!~existingActivityIndex) {\n throw new Error(`botframework-webchat: no activity found in sortedActivities with internal ID ${activityLocalId}`);\n }\n\n nextSortedActivities[+existingActivityIndex] = nextActivity;\n\n return Object.freeze({\n ...state,\n activityMap: Object.freeze(nextActivityMap),\n sortedActivities: Object.freeze(nextSortedActivities)\n } satisfies State);\n}\n\n/**\n * Update activity channel data.\n *\n * @deprecated Channel data update is being deprecated, please use a custom state management solution instead.\n * @param state\n * @param activityLocalId\n * @param name\n * @param value\n * @returns\n */\nfunction updateActivityChannelData(state: State, activityLocalId: LocalId, name: string, value: unknown): State {\n if (name.startsWith('webchat:')) {\n throw new Error('botframework-webchat: custom channel data name must not use prefix \"webchat:\"');\n }\n\n return updateActivityChannelDataInternalSkipNameCheck(\n state,\n activityLocalId,\n parse(channelDataNameSchema, name),\n value\n );\n}\n\nexport default updateActivityChannelData;\nexport { updateActivityChannelDataInternalSkipNameCheck };\n","import {\n any,\n array,\n check,\n findItem,\n integer,\n is,\n literal,\n minValue,\n nonEmpty,\n number,\n object,\n optional,\n pipe,\n safeParse,\n string,\n transform,\n undefinedable,\n union,\n type ErrorMessage,\n type ObjectEntries,\n type ObjectIssue,\n type ObjectSchema\n} from 'valibot';\n\nimport { type WebChatActivity } from '../types/WebChatActivity';\nimport getOrgSchemaMessage from './getOrgSchemaMessage';\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\nconst streamSequenceSchema = pipe(number(), integer(), minValue(1));\n\nfunction eitherChannelDataOrEntities<\n TActivityEntries extends ObjectEntries,\n TActivityMessage extends ErrorMessage<ObjectIssue> | undefined,\n TMetadataEntries extends ObjectEntries,\n TMetadataMessage extends ErrorMessage<ObjectIssue> | undefined\n>(\n activitySchema: ObjectSchema<TActivityEntries, TActivityMessage>,\n metadataSchema: ObjectSchema<TMetadataEntries, TMetadataMessage>\n) {\n const metadataInEntitiesSchema = object({\n ...metadataSchema.entries,\n type: literal('streaminfo')\n });\n\n return union([\n object({\n ...activitySchema.entries,\n channelData: metadataSchema\n }),\n pipe(\n object({\n ...activitySchema.entries,\n // We use `findItem`/`filterItem` than `variant`/`someItem` because the output of the latter is an union type.\n // Consider `{ type: string } | { streamId: string; type: 'streaminfo' }`, it turns into `{ type: string }` immediately.\n\n // TODO: [P2] valibot@1.1.0 did not infer output type for `filterItem()`, only infer for `findItem()`.\n // Bump valibot@latest and see if they solved the issue.\n entities: pipe(\n array(any()),\n findItem(value => is(metadataInEntitiesSchema, value)),\n check(value => !!value)\n )\n }),\n // This is quite hacky, we should not mutate the parse output to ease metadata extractions.\n transform(({ entities, ...value }) => ({ ...value, streamInfoEntity: entities! }))\n )\n ]);\n}\n\nconst livestreamingActivitySchema = union([\n // Interim.\n eitherChannelDataOrEntities(\n object({\n attachments: optional(array(any()), EMPTY_ARRAY),\n id: string(),\n // \"text\" is optional. If not set or empty, it presents a contentless activity.\n text: optional(undefinedable(string())),\n type: literal('typing')\n }),\n object({\n // \"streamId\" is optional for the very first activity in the session.\n streamId: optional(undefinedable(string())),\n streamSequence: streamSequenceSchema,\n streamType: literal('streaming')\n })\n ),\n // Informative message.\n eitherChannelDataOrEntities(\n object({\n attachments: optional(array(any()), EMPTY_ARRAY),\n id: string(),\n // Informative may not have \"text\", but should have abstract instead (checked later)\n text: optional(undefinedable(string())),\n type: literal('typing'),\n entities: optional(array(any()), EMPTY_ARRAY)\n }),\n object({\n // \"streamId\" is optional for the very first activity in the session.\n streamId: optional(undefinedable(string())),\n streamSequence: streamSequenceSchema,\n streamType: literal('informative')\n })\n ),\n // Conclude with a message.\n eitherChannelDataOrEntities(\n object({\n attachments: optional(array(any()), EMPTY_ARRAY),\n id: string(),\n // If \"text\" is empty, it represents \"regretting\" the livestream.\n text: optional(undefinedable(string())),\n type: literal('message')\n }),\n object({\n // \"streamId\" is required for the final activity in the session.\n // The final activity must not be the sole activity in the session.\n streamId: pipe(string(), nonEmpty()),\n streamType: literal('final')\n })\n ),\n // Conclude without a message.\n eitherChannelDataOrEntities(\n object({\n attachments: optional(array(any()), EMPTY_ARRAY),\n id: string(),\n // If \"text\" is not set or empty, it represents \"regretting\" the livestream.\n text: optional(undefinedable(literal(''))),\n type: literal('typing')\n }),\n object({\n // \"streamId\" is required for the final activity in the session.\n // The final activity must not be the sole activity in the session.\n streamId: pipe(string(), nonEmpty()),\n streamType: literal('final')\n })\n )\n]);\n\n/**\n * Gets the livestreaming metadata of the activity, or `undefined` if the activity is not participating in a livestreaming session.\n *\n * - `sessionId` - ID of the livestreaming session\n * - `sequenceNumber` - sequence number of the activity\n * - `type`\n * - `\"contentless\"` - ongoing but no content, should show indicator\n * - `\"interim activity\"` - current response, could be partial-from-start, or complete response.\n * More activities are expected. Future interim activities always replace past interim activities, enable erasing or backtracking response.\n * - `\"informative message\"` - optional side-channel informative message describing the current response, e.g. \"Searching your document library\".\n * Always replace past informative messages. May interleave with interim activities.\n * - `\"final activity\"` - complete-and-final response, always replace past interim activities and remove all informative messages.\n * This activity indicates end of the session, all future activities must be ignored.\n * - `undefined` - not part of a livestream session or the activity is not valid\n *\n * @returns {object} Livestreaming metadata of the activity, or `undefined` if the activity is not participating in a livestreaming session.\n */\nexport default function getActivityLivestreamingMetadata(activity: WebChatActivity):\n | Readonly<{\n sessionId: string;\n sequenceNumber: number;\n type: 'contentless' | 'final activity' | 'informative message' | 'interim activity';\n }>\n | undefined {\n const result = safeParse(livestreamingActivitySchema, activity);\n\n if (result.success) {\n const { output } = result;\n const livestreamMetadata = 'channelData' in output ? output.channelData : output.streamInfoEntity;\n\n // If the activity is the first in the session, session ID should be the activity ID.\n const sessionId = livestreamMetadata.streamId || output.id;\n\n return Object.freeze(\n livestreamMetadata.streamType === 'final'\n ? {\n sequenceNumber: Infinity,\n sessionId,\n type: 'final activity'\n }\n : {\n sequenceNumber: livestreamMetadata.streamSequence,\n sessionId,\n type: !(\n output.text ||\n output.attachments?.length ||\n ('entities' in output && getOrgSchemaMessage(output.entities)?.abstract[0])\n )\n ? 'contentless'\n : livestreamMetadata.streamType === 'informative'\n ? 'informative message'\n : 'interim activity'\n }\n );\n }\n\n return undefined;\n}\n","import { parse } from 'valibot';\nimport { orgSchemaCreativeWorkSchema, type OrgSchemaCreativeWork } from '@msinternal/botframework-webchat-core-json-ld';\nimport type { WebChatActivity } from '../types/WebChatActivity';\n\ntype EntityType = NonNullable<WebChatActivity['entities']>[number];\n\nexport default function getOrgSchemaMessage(graph: readonly EntityType[]): OrgSchemaCreativeWork | undefined {\n for (const entity of graph ?? []) {\n const isPossiblySelfMessage =\n entity &&\n typeof entity === 'object' &&\n 'type' in entity &&\n entity.type?.startsWith('https://schema.org/') &&\n '@id' in entity &&\n entity['@id'] === '';\n\n if (isPossiblySelfMessage) {\n return parse(orgSchemaCreativeWorkSchema, entity);\n }\n }\n}\n","import type { GlobalScopePonyfill } from '../../../../types/GlobalScopePonyfill';\nimport type { Activity } from '../types';\n\n/**\n * Get sequence ID from `activity.channelData['webchat:sequence-id']` and fallback to `+new Date(activity.timestamp)`.\n *\n * Chat adapter may send sequence ID to affect activity reordering. Sequence ID is supposed to be Unix timestamp.\n *\n * @param activity Activity to get sequence ID from.\n * @returns Sequence ID.\n */\nexport default function getLogicalTimestamp(\n activity: Activity,\n ponyfill: Pick<GlobalScopePonyfill, 'Date'>\n): number | undefined {\n const sequenceId = activity.channelData?.['webchat:sequence-id'];\n\n if (typeof sequenceId === 'number') {\n return sequenceId;\n }\n\n const { timestamp } = activity;\n\n if (typeof timestamp === 'string') {\n return +new ponyfill.Date(timestamp);\n } else if (typeof timestamp !== 'undefined' && (timestamp as any) instanceof ponyfill.Date) {\n console.warn('botframework-webchat: \"timestamp\" must be of type string, instead of Date.');\n\n return +timestamp;\n }\n\n return undefined;\n}\n","import type { WebChatActivity } from '../../../../types/WebChatActivity';\nimport getOrgSchemaMessage from '../../../../utils/getOrgSchemaMessage';\n\ntype PartGroupingMetadataMapEntry = {\n readonly groupingId: string;\n readonly position: number | undefined;\n};\n\nfunction getPartGroupingMetadataMap(activity: WebChatActivity): ReadonlyMap<string, PartGroupingMetadataMapEntry> {\n const metadataMap = new Map<string, PartGroupingMetadataMapEntry>();\n\n const message = getOrgSchemaMessage(activity.entities || []);\n\n if (message) {\n for (const item of message.isPartOf) {\n if (item['@id']) {\n const [firstPosition] = message.position;\n\n for (const type of item['@type']) {\n metadataMap.set(\n type,\n Object.freeze({\n groupingId: item['@id'],\n // We do not support non-number position.\n position: typeof firstPosition === 'number' ? firstPosition : undefined\n })\n );\n }\n }\n }\n }\n\n return metadataMap;\n}\n\nexport default getPartGroupingMetadataMap;\nexport type { PartGroupingMetadataMapEntry };\n","import { toSpliced } from '@msinternal/botframework-webchat-base/utils';\n\n/**\n * Inserts a single item into a sorted array.\n *\n * For multiple items, consider other options for efficiency.\n *\n * @param sortedArray A sorted array.\n * @param item Item to be inserted.\n * @param compareFn Function used to determine the order of the elements. It is expected to return a negative value if the first argument is less than the second argument, zero if they're equal, and a positive value otherwise.\n * @returns A new sorted array with the new item.\n */\nexport default function insertSorted<T>(sortedArray: readonly T[], item: T, compareFn: (x: T, y: T) => number): T[] {\n // TODO: Implements `binaryFindIndex()` for better performance.\n const indexToInsert = sortedArray.findIndex(i => compareFn(i, item) > 0);\n\n return toSpliced(sortedArray, ~indexToInsert ? indexToInsert : sortedArray.length, 0, item);\n}\n","/* eslint-disable complexity */\nimport type { GlobalScopePonyfill } from '../../../types/GlobalScopePonyfill';\nimport getActivityLivestreamingMetadata from '../../../utils/getActivityLivestreamingMetadata';\nimport computePartListTimestamp from './private/computePartListTimestamp';\nimport computeSortedActivities from './private/computeSortedActivities';\nimport getLogicalTimestamp from './private/getLogicalTimestamp';\nimport getPartGroupingMetadataMap from './private/getPartGroupingMetadataMap';\nimport insertSorted from './private/insertSorted';\nimport { toSpliced } from '@msinternal/botframework-webchat-base/utils';\nimport { getLocalIdFromActivity } from './property/LocalId';\nimport { queryPositionFromActivity, setPositionInActivity } from './property/Position';\nimport {\n type Activity,\n type ActivityMapEntry,\n type HowToGroupingId,\n type LivestreamSessionId,\n type LivestreamSessionMapEntry,\n type LivestreamSessionMapEntryActivityEntry,\n type SortedChatHistoryEntry,\n type State\n} from './types';\n\n// Honoring timestamp or not:\n//\n// - Update activity\n// - (Should honor) every changes\n// - Echo back activity\n// - (Should honor) timestamp of echo back of outgoing message\n// - Livestream activity\n// - (Should not honor) timestamp of revisions of livestream as it could \"flash\" them to the bottom\n// - Should not update session timestamp\n// - How:\n// - If it's 1 or Nth revision, copy the timestamp from upserting activity into session\n// - Otherwise, it's 2...N-1, don't copy the timestamp into session\n// - HowTo part grouping\n// - (Should not honor) timestamp change via livestream as it could \"flash\" them to the bottom\n// - Not honoring by copying the timestamp from livestream session\n// - How: copy the timestamp from the upserting part (livestream or update) into part grouping\n//\n// Simplifying/concluding all rules:\n//\n// - Always copy timestamp, except when it's a livestream of 2...N-1 revision\n// - Part grouping timestamp is copied from upserting entry (either livestream session or activity)\n\nconst POSITION_INCREMENT = 1_000;\n\nconst INITIAL_STATE = Object.freeze({\n activityIdToLocalIdMap: Object.freeze(new Map()),\n activityMap: Object.freeze(new Map()),\n clientActivityIdToLocalIdMap: Object.freeze(new Map()),\n livestreamSessionMap: Object.freeze(new Map()),\n howToGroupingMap: Object.freeze(new Map()),\n sortedActivities: Object.freeze([]),\n sortedChatHistoryList: Object.freeze([])\n} satisfies State);\n\n// Question: Why insertion sort works but not quick sort?\n// Short answer: Arrival order matters.\n// Long answer:\n// - Update activity: when replacing an activity, data from their previous revision matters\n// - Duplicate timestamps: activities without timestamp can't be sort deterministically with quick sort\n\nfunction upsert(ponyfill: Pick<GlobalScopePonyfill, 'Date'>, state: State, activity: Activity): State {\n const activityLocalId = getLocalIdFromActivity(activity);\n const logicalTimestamp = getLogicalTimestamp(activity, ponyfill);\n const activityLivestreamingMetadata = getActivityLivestreamingMetadata(activity);\n\n // #region Streaming fast path\n //\n // For revision 2..N-1 of an existing, non-finalized livestream session without HowTo grouping:\n // avoid the heavier full rebuild path, including sortedChatHistoryList recomputation,\n // computeSortedActivities, and full position resequencing. This is still not constant-time:\n // the fast path continues to clone Maps and update sortedActivities, but it avoids the\n // broader recomputation required for the general case.\n if (activityLivestreamingMetadata) {\n const sessionId = activityLivestreamingMetadata.sessionId as LivestreamSessionId;\n const existingSession = state.livestreamSessionMap.get(sessionId);\n const finalized = activityLivestreamingMetadata.type === 'final activity';\n\n if (\n existingSession &&\n !existingSession.finalized &&\n !finalized &&\n !getPartGroupingMetadataMap(activity).has('HowTo')\n ) {\n // Defer all Map cloning until after the position-collision check succeeds.\n // First build the next session entry (needed to determine insertIndex), then\n // locate the insertion point in sortedActivities, compute the new position,\n // and only clone Maps when we know the fast path will be taken.\n\n // 1. Compute the next session entry (needed to find insertIndex).\n // Timestamp is NOT updated for rev 2..N-1 (only for first and final).\n const nextSessionEntry: LivestreamSessionMapEntry = {\n activities: Object.freeze(\n insertSorted<LivestreamSessionMapEntryActivityEntry>(\n existingSession.activities,\n Object.freeze({\n activityLocalId,\n logicalTimestamp,\n sequenceNumber: activityLivestreamingMetadata.sequenceNumber,\n type: 'activity'\n }),\n ({ sequenceNumber: x }, { sequenceNumber: y }) =>\n typeof x === 'undefined' || typeof y === 'undefined'\n ? // eslint-disable-next-line no-magic-numbers\n -1\n : x - y\n )\n ),\n finalized: false,\n logicalTimestamp: existingSession.logicalTimestamp\n };\n\n // 2. sortedActivities: find the insertion point before cloning anything.\n // The session's activities are sorted by sequence number via insertSorted.\n // Find where the new activity landed in that list and locate the correct\n // insertion point in sortedActivities relative to its session neighbors.\n const newIndexInSession = nextSessionEntry.activities.findIndex(\n entry => entry.activityLocalId === activityLocalId\n );\n\n const successorInSession =\n newIndexInSession + 1 < nextSessionEntry.activities.length\n ? nextSessionEntry.activities[newIndexInSession + 1]\n : undefined;\n\n let insertIndex = state.sortedActivities.length;\n\n if (successorInSession) {\n // Insert before the successor activity in sortedActivities.\n for (let i = 0; i < state.sortedActivities.length; i++) {\n // eslint-disable-next-line security/detect-object-injection\n if (getLocalIdFromActivity(state.sortedActivities[i]!) === successorInSession.activityLocalId) {\n insertIndex = i;\n break;\n }\n }\n } else {\n // New activity is last in the session; insert after the previous last activity.\n // eslint-disable-next-line no-magic-numbers\n const prevLastSessionActivity = existingSession.activities.at(-1);\n\n if (prevLastSessionActivity) {\n for (let i = state.sortedActivities.length - 1; i >= 0; i--) {\n // eslint-disable-next-line security/detect-object-injection\n if (getLocalIdFromActivity(state.sortedActivities[i]!) === prevLastSessionActivity.activityLocalId) {\n insertIndex = i + 1;\n break;\n }\n }\n }\n }\n\n // 3. Position: assign the new activity a position based on its neighbors.\n const prevPosition =\n insertIndex > 0 ? (queryPositionFromActivity(state.sortedActivities[insertIndex - 1]!) ?? 0) : 0;\n\n const nextSiblingPosition =\n insertIndex < state.sortedActivities.length\n ? queryPositionFromActivity(state.sortedActivities[+insertIndex]!)\n : undefined;\n\n let newPosition = prevPosition + POSITION_INCREMENT;\n\n // Squeeze if the default increment would collide with the next sibling.\n if (typeof nextSiblingPosition !== 'undefined' && newPosition >= nextSiblingPosition) {\n newPosition = prevPosition + 1;\n }\n\n // If position is valid (no collision), clone Maps and return fast path result.\n // Otherwise fall through to slow path for full re-sequencing.\n if (typeof nextSiblingPosition === 'undefined' || newPosition < nextSiblingPosition) {\n const positionedActivity = setPositionInActivity(activity, newPosition);\n\n // 4. activityIdToLocalIdMap: reuse if no activity.id, copy + add otherwise.\n let nextActivityIdToLocalIdMap = state.activityIdToLocalIdMap;\n\n if (typeof activity.id !== 'undefined') {\n nextActivityIdToLocalIdMap = new Map(state.activityIdToLocalIdMap);\n nextActivityIdToLocalIdMap.set(activity.id, activityLocalId);\n }\n\n // 5. activityMap: +1 entry with the positioned activity.\n const nextActivityMap = new Map(state.activityMap);\n\n nextActivityMap.set(\n activityLocalId,\n Object.freeze({ activity: positionedActivity, activityLocalId, logicalTimestamp, type: 'activity' as const })\n );\n\n // 6. clientActivityIdToLocalIdMap: reuse if no clientActivityID, copy + add otherwise.\n const { clientActivityID } = activity.channelData;\n let nextClientActivityIdToLocalIdMap = state.clientActivityIdToLocalIdMap;\n\n if (typeof clientActivityID !== 'undefined') {\n nextClientActivityIdToLocalIdMap = new Map(state.clientActivityIdToLocalIdMap);\n nextClientActivityIdToLocalIdMap.set(clientActivityID, activityLocalId);\n }\n\n // 7. livestreamSessionMap: record the updated session.\n const nextLivestreamSessionMap = new Map(state.livestreamSessionMap);\n\n nextLivestreamSessionMap.set(sessionId, Object.freeze(nextSessionEntry));\n\n return Object.freeze({\n activityIdToLocalIdMap: Object.freeze(nextActivityIdToLocalIdMap),\n activityMap: Object.freeze(nextActivityMap),\n clientActivityIdToLocalIdMap: Object.freeze(nextClientActivityIdToLocalIdMap),\n howToGroupingMap: state.howToGroupingMap,\n livestreamSessionMap: Object.freeze(nextLivestreamSessionMap),\n sortedActivities: Object.freeze(toSpliced(state.sortedActivities, insertIndex, 0, positionedActivity)),\n sortedChatHistoryList: state.sortedChatHistoryList\n } satisfies State);\n }\n }\n }\n\n // #endregion\n\n // Slow path: full recalculation for non-streaming, first/final revisions, reorders, or HowTo grouping.\n const nextActivityIdToLocalIdMap = new Map(state.activityIdToLocalIdMap);\n const nextActivityMap = new Map(state.activityMap);\n const nextClientActivityIdToLocalIdMap = new Map(state.clientActivityIdToLocalIdMap);\n const nextLivestreamSessionMap = new Map(state.livestreamSessionMap);\n const nextHowToGroupingMap = new Map(state.howToGroupingMap);\n let nextSortedChatHistoryList = Array.from(state.sortedChatHistoryList);\n\n if (typeof activity.id !== 'undefined') {\n nextActivityIdToLocalIdMap.set(activity.id, activityLocalId);\n }\n\n const { clientActivityID } = activity.channelData;\n\n if (typeof clientActivityID !== 'undefined') {\n nextClientActivityIdToLocalIdMap.set(clientActivityID, activityLocalId);\n }\n\n nextActivityMap.set(\n activityLocalId,\n Object.freeze({\n activity,\n activityLocalId,\n logicalTimestamp,\n type: 'activity'\n })\n );\n\n let sortedChatHistoryListEntry: SortedChatHistoryEntry = {\n activityLocalId,\n logicalTimestamp,\n type: 'activity'\n };\n\n // #region Livestreaming\n\n if (activityLivestreamingMetadata) {\n const sessionId = activityLivestreamingMetadata.sessionId as LivestreamSessionId;\n\n const livestreamSessionMapEntry = nextLivestreamSessionMap.get(sessionId);\n\n const wasFinalized = livestreamSessionMapEntry ? livestreamSessionMapEntry.finalized : false;\n\n if (wasFinalized) {\n console.warn(\n `botframework-webchat: Cannot update livestreaming session ${sessionId} because it has been concluded`\n );\n\n // This is a special case.\n // TODO: [P1] Revisit this and see how we should process activity after the livestream is finalized.\n // 1. Received a previous-and-valid revision while the livestream is finalized (probably should keep to maintain history)\n // 2. Received a final activity while the livestream is already finalized (probably drop due to bad packet)\n // Related to /__tests__/html2/livestream/concludedLivestream.html.\n return state;\n }\n\n const finalized = activityLivestreamingMetadata.type === 'final activity';\n\n const nextLivestreamSessionMapEntry = {\n activities: Object.freeze(\n insertSorted<LivestreamSessionMapEntryActivityEntry>(\n livestreamSessionMapEntry ? livestreamSessionMapEntry.activities : [],\n Object.freeze({\n activityLocalId,\n logicalTimestamp,\n sequenceNumber: activityLivestreamingMetadata.sequenceNumber,\n type: 'activity'\n }),\n ({ sequenceNumber: x }, { sequenceNumber: y }) =>\n typeof x === 'undefined' || typeof y === 'undefined'\n ? // eslint-disable-next-line no-magic-numbers\n -1\n : x - y\n )\n ),\n finalized,\n // Update timestamp if the upserting activity is the first or last in the livestream session.\n // We don't update timestamp for 2...N-1, because it would cause too much flickering.\n logicalTimestamp:\n finalized || !livestreamSessionMapEntry ? logicalTimestamp : livestreamSessionMapEntry.logicalTimestamp\n } satisfies LivestreamSessionMapEntry;\n\n nextLivestreamSessionMap.set(sessionId, Object.freeze(nextLivestreamSessionMapEntry));\n\n sortedChatHistoryListEntry = {\n livestreamSessionId: sessionId,\n logicalTimestamp: nextLivestreamSessionMapEntry.logicalTimestamp,\n type: 'livestream session'\n };\n }\n\n // #endregion\n\n // #region How-to grouping\n\n const howToGrouping = getPartGroupingMetadataMap(activity).get('HowTo');\n\n if (howToGrouping) {\n const howToGroupingId = howToGrouping.groupingId as HowToGroupingId;\n const { position: howToGroupingPosition } = howToGrouping;\n\n const partGroupingMapEntry = nextHowToGroupingMap.get(howToGroupingId);\n\n let nextPartList = partGroupingMapEntry ? Array.from(partGroupingMapEntry.partList) : [];\n\n const existingPartEntryIndex = activityLivestreamingMetadata\n ? nextPartList.findIndex(\n entry =>\n entry.type === 'livestream session' && entry.livestreamSessionId === activityLivestreamingMetadata.sessionId\n )\n : nextPartList.findIndex(entry => entry.type === 'activity' && entry.activityLocalId === activityLocalId);\n\n const nextPartEntry = Object.freeze({ ...sortedChatHistoryListEntry, position: howToGroupingPosition });\n\n // If the upserting activity is position-less and an earlier revision is in the grouping, update the existing entry instead of splice/insert.\n if (~existingPartEntryIndex && typeof howToGroupingPosition === 'undefined') {\n nextPartList[+existingPartEntryIndex] = nextPartEntry;\n } else {\n // The upserting activity has position, or it never exist in the grouping.\n ~existingPartEntryIndex && nextPartList.splice(existingPartEntryIndex, 1);\n\n nextPartList = insertSorted(\n nextPartList,\n nextPartEntry,\n // eslint-disable-next-line no-magic-numbers\n ({ position: x }, { position: y }) => (typeof x === 'undefined' || typeof y === 'undefined' ? -1 : x - y)\n );\n }\n\n const nextPartGroupingEntry = {\n logicalTimestamp: computePartListTimestamp(nextPartList),\n partList: Object.freeze(nextPartList)\n };\n\n nextHowToGroupingMap.set(howToGroupingId, Object.freeze(nextPartGroupingEntry));\n\n sortedChatHistoryListEntry = {\n howToGroupingId,\n logicalTimestamp: nextPartGroupingEntry.logicalTimestamp,\n type: 'how to grouping'\n };\n }\n\n // #endregion\n\n // #region Sorted chat history\n\n const existingSortedChatHistoryListEntryIndex =\n sortedChatHistoryListEntry.type === 'how to grouping'\n ? nextSortedChatHistoryList.findIndex(\n entry =>\n entry.type === 'how to grouping' && entry.howToGroupingId === sortedChatHistoryListEntry.howToGroupingId\n )\n : sortedChatHistoryListEntry.type === 'livestream session'\n ? nextSortedChatHistoryList.findIndex(\n entry =>\n entry.type === 'livestream session' &&\n entry.livestreamSessionId === sortedChatHistoryListEntry.livestreamSessionId\n )\n : sortedChatHistoryListEntry.type === 'activity'\n ? nextSortedChatHistoryList.findIndex(\n entry => entry.type === 'activity' && entry.activityLocalId === activityLocalId\n )\n : // eslint-disable-next-line no-magic-numbers\n -1;\n\n ~existingSortedChatHistoryListEntryIndex &&\n nextSortedChatHistoryList.splice(existingSortedChatHistoryListEntryIndex, 1);\n\n nextSortedChatHistoryList = insertSorted(\n nextSortedChatHistoryList,\n Object.freeze(sortedChatHistoryListEntry),\n (x, y) => {\n // Compare logical timestamp if both have it.\n // Otherwise, compare local timestamp if both have it.\n // Otherwise, -1.\n const xLogicalTimestamp = x.logicalTimestamp;\n const yLogicalTimestamp = y.logicalTimestamp;\n\n if (typeof xLogicalTimestamp !== 'undefined' && typeof yLogicalTimestamp !== 'undefined') {\n return xLogicalTimestamp - yLogicalTimestamp;\n }\n\n if (x.type === 'activity' && y.type === 'activity') {\n const xActivity = nextActivityMap.get(x.activityLocalId);\n const yActivity = nextActivityMap.get(y.activityLocalId);\n\n const xLocalTimestamp = xActivity?.activity.localTimestamp;\n const yLocalTimestamp = yActivity?.activity.localTimestamp;\n\n if (typeof xLocalTimestamp !== 'undefined' && typeof yLocalTimestamp !== 'undefined') {\n return +new ponyfill.Date(xLocalTimestamp) - +new ponyfill.Date(yLocalTimestamp);\n }\n }\n\n // eslint-disable-next-line no-magic-numbers\n return -1;\n }\n );\n // }\n\n // #endregion\n\n // #region Sorted activities\n\n const nextSortedActivities = computeSortedActivities({\n activityMap: nextActivityMap,\n howToGroupingMap: nextHowToGroupingMap,\n livestreamSessionMap: nextLivestreamSessionMap,\n sortedChatHistoryList: nextSortedChatHistoryList\n });\n\n // #endregion\n\n // #region Sequence sorted activities\n\n let lastPosition = 0;\n\n for (\n let index = 0, { length: nextSortedActivitiesLength } = nextSortedActivities;\n index < nextSortedActivitiesLength;\n index++\n ) {\n const currentActivity = nextSortedActivities[+index]!;\n const currentActivityId = getLocalIdFromActivity(currentActivity);\n const hasNextSibling = index + 1 < nextSortedActivitiesLength;\n const position = queryPositionFromActivity(currentActivity);\n\n let nextPosition: number;\n\n if (typeof position === 'undefined' || position <= lastPosition) {\n if (hasNextSibling) {\n const nextSiblingPosition = queryPositionFromActivity(nextSortedActivities[+index + 1]!);\n\n nextPosition = lastPosition + 1;\n\n if (typeof nextSiblingPosition === 'undefined' || nextPosition > nextSiblingPosition) {\n nextPosition = lastPosition + POSITION_INCREMENT;\n }\n } else {\n nextPosition = lastPosition + POSITION_INCREMENT;\n }\n } else {\n nextPosition = position;\n }\n\n if (nextPosition !== position) {\n const activityMapEntry = nextActivityMap.get(currentActivityId)!;\n\n const nextActivityEntry: ActivityMapEntry = Object.freeze({\n ...activityMapEntry,\n // TODO: [P0] We should freeze the activity.\n // For backcompat, we should consider have a props that temporarily disable this behavior.\n activity: setPositionInActivity(activityMapEntry.activity, nextPosition)\n });\n\n nextActivityMap.set(currentActivityId, nextActivityEntry);\n\n nextSortedActivities[+index] = nextActivityEntry.activity;\n }\n\n lastPosition = nextPosition;\n }\n\n // #endregion\n\n return Object.freeze({\n activityIdToLocalIdMap: Object.freeze(nextActivityIdToLocalIdMap),\n activityMap: Object.freeze(nextActivityMap),\n clientActivityIdToLocalIdMap: Object.freeze(nextClientActivityIdToLocalIdMap),\n howToGroupingMap: Object.freeze(nextHowToGroupingMap),\n livestreamSessionMap: Object.freeze(nextLivestreamSessionMap),\n sortedActivities: Object.freeze(nextSortedActivities),\n sortedChatHistoryList: Object.freeze(nextSortedChatHistoryList)\n } satisfies State);\n}\n\nexport default upsert;\nexport { INITIAL_STATE };\n","import { isForbiddenPropertyName } from '@msinternal/botframework-webchat-base/utils';\nimport type { ActionFromReducersMapObject, combineReducers, Reducer, StateFromReducersMapObject } from 'redux';\nimport type { GlobalScopePonyfill } from '../../types/GlobalScopePonyfill';\nimport type { RestrictedStoreDebugAPI } from '../../types/StoreDebugAPI';\nimport type { WebChatActivity } from '../../types/WebChatActivity';\nimport createGroupedActivitiesReducer, {\n type GroupedActivitiesAction,\n type GroupedActivitiesState\n} from './createGroupedActivitiesReducer';\n\ntype ActivitiesState = {\n activities: readonly WebChatActivity[];\n groupedActivities: GroupedActivitiesState;\n};\n\n/**\n * Creates a reducer by combining slice `activities` and `groupedActivities` to an existing sliced reducer.\n *\n * @param ponyfill\n * @param existingSlicedReducer\n * @returns\n */\nexport default function combineActivitiesReducer<M>(\n ponyfill: GlobalScopePonyfill,\n restrictedStoreDebugAPI: RestrictedStoreDebugAPI,\n existingSlicedReducer: ReturnType<typeof combineReducers<M>>\n): Reducer<StateFromReducersMapObject<M> & ActivitiesState, ActionFromReducersMapObject<M> & GroupedActivitiesAction> {\n type ExistingState = StateFromReducersMapObject<M>;\n type ExistingAction = ActionFromReducersMapObject<M>;\n\n const groupedActivitiesReducer = createGroupedActivitiesReducer(ponyfill, restrictedStoreDebugAPI);\n\n return function (\n state: (ExistingState & ActivitiesState) | undefined,\n action: ExistingAction & GroupedActivitiesAction\n ): ExistingState & ActivitiesState {\n const { activities: _activities, groupedActivities, ...existingState } = state ?? {};\n const nextState = existingSlicedReducer(existingState as ExistingState, action);\n const nextGroupedActivities = groupedActivitiesReducer(groupedActivities, action);\n\n const existingStateEntries = Object.entries(existingState);\n const nextStateEntries = Object.entries(nextState);\n\n const hasChanged =\n !state ||\n !Object.is(state.groupedActivities, nextGroupedActivities) ||\n existingStateEntries.length !== nextStateEntries.length ||\n existingStateEntries.some(\n // Denylisting forbidden property names.\n // eslint-disable-next-line security/detect-object-injection\n ([key, value]) => !Object.is(value, isForbiddenPropertyName(key) ? undefined : (nextState as any)[key])\n );\n\n return hasChanged\n ? { ...nextState, activities: nextGroupedActivities.sortedActivities, groupedActivities: nextGroupedActivities }\n : state;\n };\n}\n","const RECONNECT = 'DIRECT_LINE/RECONNECT';\nconst RECONNECT_FULFILLED = `${RECONNECT}_FULFILLED`;\nconst RECONNECT_FULFILLING = `${RECONNECT}_FULFILLING`;\nconst RECONNECT_PENDING = `${RECONNECT}_PENDING`;\nconst RECONNECT_REJECTED = `${RECONNECT}_REJECTED`;\n\nexport { RECONNECT, RECONNECT_FULFILLED, RECONNECT_FULFILLING, RECONNECT_PENDING, RECONNECT_REJECTED };\n","import { CONNECT_FULFILLED, CONNECT_PENDING, CONNECT_REJECTED, CONNECT_STILL_PENDING } from '../actions/connect';\n\nimport { RECONNECT_PENDING, RECONNECT_FULFILLED } from '../actions/reconnect';\n\nimport { DISCONNECT_FULFILLED } from '../actions/disconnect';\nimport { SAGA_ERROR } from '../actions/sagaError';\n\nconst DEFAULT_STATE = 'uninitialized';\n\nexport default function connectivityStatus(state = DEFAULT_STATE, { type, meta }) {\n if (state !== 'sagaerror') {\n switch (type) {\n case CONNECT_PENDING:\n case RECONNECT_PENDING:\n if (state !== 'uninitialized') {\n state = 'reconnecting';\n }\n\n break;\n\n case CONNECT_FULFILLED:\n state = 'connected';\n break;\n\n case RECONNECT_FULFILLED:\n state = 'reconnected';\n break;\n\n case CONNECT_REJECTED:\n state = 'error';\n break;\n\n case CONNECT_STILL_PENDING:\n state = 'connectingslow';\n break;\n\n case DISCONNECT_FULFILLED:\n state = meta && meta.error ? 'error' : 'notconnected';\n break;\n\n case SAGA_ERROR:\n state = 'sagaerror';\n break;\n\n default:\n break;\n }\n }\n\n return state;\n}\n","import type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\n\n/**\n * Creates a Redux reducer to store the ponyfill.\n *\n * The ponyfill is used to check if React and Redux does not use a matching ponyfill.\n */\nexport default function createInternalReducer(ponyfill: GlobalScopePonyfill): () => { ponyfill: GlobalScopePonyfill } {\n return () => ({ ponyfill });\n}\n","import { isForbiddenPropertyName } from '@msinternal/botframework-webchat-base/utils';\nimport updateIn from 'simple-update-in';\n\nimport { DISMISS_NOTIFICATION } from '../actions/dismissNotification';\nimport { SAGA_ERROR } from '../actions/sagaError';\nimport { SET_NOTIFICATION } from '../actions/setNotification';\n\nimport type { Reducer } from 'redux';\nimport type { DismissNotificationAction } from '../actions/dismissNotification';\nimport type { SagaErrorAction } from '../actions/sagaError';\nimport type { SetNotificationAction } from '../actions/setNotification';\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\nimport type { Notification } from '../types/internal/Notification';\n\ntype NotificationsAction = DismissNotificationAction | SagaErrorAction | SetNotificationAction;\ntype NotificationsState = Record<string, Notification>;\n\nconst DEFAULT_STATE: NotificationsState = {};\n\nexport default function createNotificationsReducer({\n Date\n}: GlobalScopePonyfill): Reducer<NotificationsState, NotificationsAction> {\n return function notifications(\n state: NotificationsState = DEFAULT_STATE,\n action: NotificationsAction\n ): NotificationsState {\n const { type } = action;\n const now = Date.now();\n\n if (type === DISMISS_NOTIFICATION) {\n state = updateIn(state, [action.payload.id]);\n } else if (type === SAGA_ERROR) {\n state = updateIn(state, ['connectivitystatus', 'message'], () => 'javascripterror');\n } else if (type === SET_NOTIFICATION) {\n const { alt, data, id, level, message } = action.payload;\n\n if (!isForbiddenPropertyName(id)) {\n // Mitigated through denylisting.\n // eslint-disable-next-line security/detect-object-injection\n const notification = state[id];\n\n if (\n !notification ||\n alt !== notification.alt ||\n !Object.is(data, notification.data) ||\n level !== notification.level ||\n message !== notification.message\n ) {\n state = updateIn(state, [id], () => ({\n alt,\n data,\n id,\n level,\n message,\n timestamp: now\n }));\n }\n }\n }\n\n return state;\n };\n}\n","/* eslint no-case-declarations: \"off\" */\n/* eslint no-unused-vars: \"off\" */\n\nimport updateIn from 'simple-update-in';\n\nimport { INCOMING_ACTIVITY } from '../actions/incomingActivity';\nimport { POST_ACTIVITY_PENDING } from '../actions/postActivity';\n\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\nimport type { IncomingActivityAction } from '../actions/incomingActivity';\nimport type { PostActivityPendingAction } from '../actions/postActivity';\nimport type { Reducer } from 'redux';\n\ntype TypingState = Record<\n string,\n {\n at: number;\n last: number;\n name: string;\n role: 'bot' | 'channel' | 'user';\n }\n>;\ntype TypingAction = IncomingActivityAction | PostActivityPendingAction;\n\nconst DEFAULT_STATE: TypingState = {};\n\nexport default function createLastTypingReducer({ Date }: GlobalScopePonyfill): Reducer<TypingState, TypingAction> {\n return function lastTyping(state: TypingState = DEFAULT_STATE, { payload, type }: TypingAction): TypingState {\n if (type === INCOMING_ACTIVITY || type === POST_ACTIVITY_PENDING) {\n const {\n activity: {\n from: { id, name, role },\n type: activityType\n }\n } = payload;\n\n if (activityType === 'typing') {\n const now = Date.now();\n\n state = updateIn(state, [id, 'at'], at => at || now);\n state = updateIn(state, [id, 'last'], () => now);\n state = updateIn(state, [id, 'name'], () => name);\n state = updateIn(state, [id, 'role'], () => role);\n } else if (activityType === 'message') {\n state = updateIn(state, [id]);\n }\n }\n\n return state;\n };\n}\n","import { SET_DICTATE_INTERIMS } from '../actions/setDictateInterims';\n\nconst DEFAULT_STATE = [];\n\nexport default function dictateInterims(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_DICTATE_INTERIMS:\n state = payload.dictateInterims;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { DICTATING, IDLE, STARTING, STOPPING, WILL_START } from '../constants/DictateState';\n\nimport { SET_DICTATE_STATE } from '../actions/setDictateState';\nimport { START_DICTATE } from '../actions/startDictate';\nimport { STOP_DICTATE } from '../actions/stopDictate';\n\nconst DEFAULT_STATE = IDLE;\n\nexport default function dictateState(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_DICTATE_STATE:\n state = payload.dictateState;\n break;\n\n case START_DICTATE:\n if (state === IDLE || state === STOPPING || state === WILL_START) {\n state = STARTING;\n }\n\n break;\n\n case STOP_DICTATE:\n if (state === STARTING || state === DICTATING) {\n state = STOPPING;\n } else if (state === WILL_START) {\n state = IDLE;\n }\n\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { SET_LANGUAGE } from '../actions/setLanguage';\n\nconst DEFAULT_STATE = 'en-US';\n\nexport default function language(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_LANGUAGE:\n state = payload.language;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","// TODO: [P3] We should obsolete this action in favor of DIRECT_LINE/UPDATE_CONNECTION_STATUS.\n// But today, both actions behave differently, this one only dispatch after connected and not dispatched when disconnected.\nconst CONNECTION_STATUS_UPDATE = 'DIRECT_LINE/CONNECTION_STATUS_UPDATE';\n\nexport default function connectionStatusUpdate(connectionStatus) {\n return {\n type: CONNECTION_STATUS_UPDATE,\n payload: { connectionStatus }\n };\n}\n\nexport { CONNECTION_STATUS_UPDATE };\n","import { CONNECTION_STATUS_UPDATE } from '../actions/connectionStatusUpdate';\n\nconst DEFAULT_STATE = 0;\n\nexport default function readyState(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case CONNECTION_STATUS_UPDATE:\n state = payload.connectionStatus;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","const SET_REFERENCE_GRAMMAR_ID = 'WEB_CHAT/SET_REFERENCE_GRAMMAR_ID';\n\nexport default function setReferenceGrammarID(referenceGrammarID) {\n return {\n type: SET_REFERENCE_GRAMMAR_ID,\n payload: { referenceGrammarID }\n };\n}\n\nexport { SET_REFERENCE_GRAMMAR_ID };\n","import { SET_REFERENCE_GRAMMAR_ID } from '../actions/setReferenceGrammarID';\n\nconst DEFAULT_STATE = null;\n\nexport default function referenceGrammarID(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_REFERENCE_GRAMMAR_ID:\n state = payload.referenceGrammarID || null;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { SET_SEND_BOX_ATTACHMENTS } from '../actions/setSendBoxAttachments';\nimport type { SendBoxAttachment } from '../types/SendBoxAttachment';\n\nconst DEFAULT_STATE: readonly SendBoxAttachment[] = Object.freeze([]);\n\nexport default function sendBoxAttachments(state = DEFAULT_STATE, { payload, type }): readonly SendBoxAttachment[] {\n switch (type) {\n case SET_SEND_BOX_ATTACHMENTS:\n state = payload.attachments;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { SET_SEND_BOX } from '../actions/setSendBox';\n\nconst DEFAULT_STATE = '';\n\nexport default function sendBoxValue(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_SEND_BOX:\n state = payload.text;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { SET_SEND_TIMEOUT } from '../actions/setSendTimeout';\n\nconst DEFAULT_STATE = 20000;\n\nexport default function sendTimeout(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_SEND_TIMEOUT:\n state = payload.sendTimeout;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { SET_SEND_TYPING_INDICATOR } from '../actions/setSendTypingIndicator';\n\nconst DEFAULT_STATE = false;\n\nexport default function sendTypingIndicator(state = DEFAULT_STATE, { payload, type }) {\n switch (type) {\n case SET_SEND_TYPING_INDICATOR:\n state = payload.sendTypingIndicator;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { START_SPEAKING_ACTIVITY } from '../actions/startSpeakingActivity';\nimport { STOP_SPEAKING_ACTIVITY } from '../actions/stopSpeakingActivity';\n\nexport default function shouldSpeakIncomingActivity(state = false, { type }) {\n switch (type) {\n case START_SPEAKING_ACTIVITY:\n state = true;\n break;\n\n case STOP_SPEAKING_ACTIVITY:\n state = false;\n break;\n\n default:\n break;\n }\n\n return state;\n}\n","import { type Action } from 'redux';\nimport { parse } from 'valibot';\n\nimport { SET_RAW_STATE, setRawStateActionSchema } from '../internal/actions/setRawState';\nimport { type SuggestedActionsState } from '../internal/types/suggestedActions';\n\nconst DEFAULT_STATE: SuggestedActionsState = Object.freeze([]);\n\nfunction suggestedActions(state: SuggestedActionsState = DEFAULT_STATE, action: Action): SuggestedActionsState {\n if (action.type === SET_RAW_STATE) {\n const parsedAction = parse(setRawStateActionSchema, action);\n\n if (parsedAction.payload.name === 'suggestedActions') {\n ({ state } = parsedAction.payload);\n }\n }\n\n return state;\n}\n\nexport default suggestedActions;\n","import { type Action } from 'redux';\nimport { parse } from 'valibot';\n\nimport { SET_RAW_STATE, setRawStateActionSchema } from '../internal/actions/setRawState';\nimport { type SuggestedActionsOriginActivityState } from '../internal/types/suggestedActionsOriginActivity';\n\nconst DEFAULT_STATE: SuggestedActionsOriginActivityState = Object.freeze({ activity: undefined });\n\nfunction suggestedActionsOriginActivity(\n state: SuggestedActionsOriginActivityState = DEFAULT_STATE,\n action: Action\n): SuggestedActionsOriginActivityState {\n if (action.type === SET_RAW_STATE) {\n const parsedAction = parse(setRawStateActionSchema, action);\n\n if (parsedAction.payload.name === 'suggestedActionsOriginActivity') {\n ({ state } = parsedAction.payload);\n }\n }\n\n return state;\n}\n\nexport default suggestedActionsOriginActivity;\n","import { VOICE_MUTE_RECORDING } from '../actions/muteVoiceRecording';\nimport { VOICE_REGISTER_HANDLER } from '../actions/registerVoiceHandler';\nimport { VOICE_SET_STATE } from '../actions/setVoiceState';\nimport { VOICE_START_RECORDING } from '../actions/startVoiceRecording';\nimport { VOICE_STOP_RECORDING } from '../actions/stopVoiceRecording';\nimport { VOICE_UNMUTE_RECORDING } from '../actions/unmuteVoiceRecording';\nimport { VOICE_UNREGISTER_HANDLER } from '../actions/unregisterVoiceHandler';\n\nimport type { VoiceMuteRecordingAction } from '../actions/muteVoiceRecording';\nimport type { VoiceHandler, VoiceRegisterHandlerAction } from '../actions/registerVoiceHandler';\nimport type { VoiceSetStateAction, VoiceState } from '../actions/setVoiceState';\nimport type { VoiceStartRecordingAction } from '../actions/startVoiceRecording';\nimport type { VoiceStopRecordingAction } from '../actions/stopVoiceRecording';\nimport type { VoiceUnmuteRecordingAction } from '../actions/unmuteVoiceRecording';\nimport type { VoiceUnregisterHandlerAction } from '../actions/unregisterVoiceHandler';\n\ntype VoiceActivityActions =\n | VoiceMuteRecordingAction\n | VoiceRegisterHandlerAction\n | VoiceSetStateAction\n | VoiceStartRecordingAction\n | VoiceStopRecordingAction\n | VoiceUnmuteRecordingAction\n | VoiceUnregisterHandlerAction;\n\ninterface VoiceActivityState {\n microphoneMuted: boolean;\n voiceState: VoiceState;\n voiceHandlers: Map<string, VoiceHandler>;\n}\n\nconst DEFAULT_STATE: VoiceActivityState = {\n microphoneMuted: false,\n voiceState: 'idle',\n voiceHandlers: new Map()\n};\n\nexport default function voiceActivity(\n state: VoiceActivityState = DEFAULT_STATE,\n action: VoiceActivityActions\n): VoiceActivityState {\n switch (action.type) {\n case VOICE_MUTE_RECORDING:\n return {\n ...state,\n microphoneMuted: true\n };\n\n case VOICE_REGISTER_HANDLER: {\n const newHandlers = new Map(state.voiceHandlers);\n newHandlers.set(action.payload.id, action.payload.voiceHandler);\n return {\n ...state,\n voiceHandlers: newHandlers\n };\n }\n\n case VOICE_UNREGISTER_HANDLER: {\n const newHandlers = new Map(state.voiceHandlers);\n newHandlers.delete(action.payload.id);\n return {\n ...state,\n voiceHandlers: newHandlers\n };\n }\n\n case VOICE_SET_STATE:\n return {\n ...state,\n voiceState: action.payload.voiceState\n };\n\n case VOICE_START_RECORDING:\n if (state.voiceState !== 'idle') {\n console.warn(`botframework-webchat: Should not transit from \"${state.voiceState}\" to \"listening\"`);\n }\n\n return {\n ...state,\n microphoneMuted: false,\n voiceState: 'listening'\n };\n\n case VOICE_STOP_RECORDING:\n return {\n ...state,\n microphoneMuted: false,\n voiceState: 'idle'\n };\n\n case VOICE_UNMUTE_RECORDING:\n return {\n ...state,\n microphoneMuted: false\n };\n\n default:\n return state;\n }\n}\n\nexport type { VoiceActivityState };\n","import { type Saga } from 'redux-saga';\nimport { fork } from 'redux-saga/effects';\n\nimport actionSinkSaga from './sagas/actionSinkSaga';\nimport clearSuggestedActionsOnPostActivitySaga from './sagas/clearSuggestedActionsOnPostActivitySaga';\nimport connectionStatusToNotificationSaga from './sagas/connectionStatusToNotificationSaga';\nimport connectionStatusUpdateSaga from './sagas/connectionStatusUpdateSaga';\nimport connectSaga from './sagas/connectSaga';\nimport detectSlowConnectionSaga from './sagas/detectSlowConnectionSaga';\nimport emitTypingIndicatorToPostActivitySaga from './sagas/emitTypingIndicatorToPostActivitySaga';\nimport markAllAsSpokenOnStopSpeakActivitySaga from './sagas/markAllAsSpokenOnStopSpeakActivitySaga';\nimport observeActivitySaga from './sagas/observeActivitySaga';\nimport postActivitySaga from './sagas/postActivitySaga';\nimport queueIncomingActivitySaga from './sagas/queueIncomingActivitySaga';\nimport sendEventToPostActivitySaga from './sagas/sendEventToPostActivitySaga';\nimport sendFilesToPostActivitySaga from './sagas/sendFilesToPostActivitySaga';\nimport sendMessageBackToPostActivitySaga from './sagas/sendMessageBackToPostActivitySaga';\nimport sendMessageToPostActivitySaga from './sagas/sendMessageToPostActivitySaga';\nimport sendPostBackToPostActivitySaga from './sagas/sendPostBackToPostActivitySaga';\nimport sendTypingIndicatorOnSetSendBoxSaga from './sagas/sendTypingIndicatorOnSetSendBoxSaga';\nimport speakActivityAndStartDictateOnIncomingActivityFromOthersSaga from './sagas/speakActivityAndStartDictateOnIncomingActivityFromOthersSaga';\nimport startDictateOnSpeakCompleteSaga from './sagas/startDictateOnSpeakCompleteSaga';\nimport startSpeakActivityOnPostActivitySaga from './sagas/startSpeakActivityOnPostActivitySaga';\nimport stopDictateOnCardActionSaga from './sagas/stopDictateOnCardActionSaga';\nimport stopSpeakingActivityOnInputSaga from './sagas/stopSpeakingActivityOnInputSaga';\nimport submitSendBoxSaga from './sagas/submitSendBoxSaga';\nimport postVoiceActivitySaga from './sagas/postVoiceActivitySaga';\nimport { type GlobalScopePonyfill } from './types/GlobalScopePonyfill';\n\ntype CreateSagasOptions = {\n ponyfill: GlobalScopePonyfill;\n};\n\nexport default function createSagas({ ponyfill }: CreateSagasOptions): Saga {\n return function* () {\n // TODO: [P2] Since fork() silently catches all exceptions, we need to find a way to console.error them out.\n\n yield fork(actionSinkSaga);\n yield fork(clearSuggestedActionsOnPostActivitySaga);\n yield fork(connectionStatusToNotificationSaga);\n yield fork(connectionStatusUpdateSaga);\n yield fork(connectSaga);\n yield fork(detectSlowConnectionSaga, ponyfill);\n yield fork(emitTypingIndicatorToPostActivitySaga);\n yield fork(markAllAsSpokenOnStopSpeakActivitySaga);\n yield fork(observeActivitySaga);\n yield fork(postActivitySaga, ponyfill);\n yield fork(postVoiceActivitySaga, ponyfill);\n yield fork(queueIncomingActivitySaga, ponyfill);\n yield fork(sendEventToPostActivitySaga);\n yield fork(sendFilesToPostActivitySaga);\n yield fork(sendMessageBackToPostActivitySaga);\n yield fork(sendMessageToPostActivitySaga);\n yield fork(sendPostBackToPostActivitySaga);\n yield fork(sendTypingIndicatorOnSetSendBoxSaga, ponyfill);\n yield fork(speakActivityAndStartDictateOnIncomingActivityFromOthersSaga);\n yield fork(startDictateOnSpeakCompleteSaga);\n yield fork(startSpeakActivityOnPostActivitySaga);\n yield fork(stopDictateOnCardActionSaga);\n yield fork(stopSpeakingActivityOnInputSaga);\n yield fork(submitSendBoxSaga);\n };\n}\n","import { type Action } from 'redux';\nimport { take, takeEvery } from 'redux-saga/effects';\nimport { safeParse } from 'valibot';\n\nimport {\n REGISTER_ACTION_SINK,\n registerActionSinkActionSchema,\n type RegisterActionSinkAction\n} from '../actions/registerActionSink';\nimport { UNREGISTER_ACTION_SINK, unregisterActionSinkActionSchema } from '../actions/unregisterActionSink';\n\nexport default function* actionSinkSaga() {\n yield takeEvery(\n ({ type }) => type === REGISTER_ACTION_SINK,\n function* (action: RegisterActionSinkAction) {\n const result = safeParse(registerActionSinkActionSchema, action);\n\n if (result.success) {\n const {\n payload: { sink }\n } = result.output;\n\n for (;;) {\n const action: Action = yield take();\n\n if (action.type === UNREGISTER_ACTION_SINK) {\n const result = safeParse(unregisterActionSinkActionSchema, action);\n\n if (result.success && result.output.payload.sink === sink) {\n break;\n }\n }\n\n sink(action);\n }\n }\n }\n );\n}\n","import { type Action } from 'redux';\nimport { custom, function_, is, literal, object, pipe, readonly, type InferOutput } from 'valibot';\n\nconst REGISTER_ACTION_SINK = 'WEB_CHAT_INTERNAL/REGISTER_ACTION_SINK' as const;\n\nconst registerActionSinkActionSchema = pipe(\n object({\n payload: pipe(\n object({\n sink: custom<(action: Action) => void>(value => is(function_(), value))\n }),\n readonly()\n ),\n type: literal(REGISTER_ACTION_SINK)\n }),\n readonly()\n);\n\ntype RegisterActionSinkAction = InferOutput<typeof registerActionSinkActionSchema>;\n\nfunction registerActionSink(sink: (action: Action) => void): RegisterActionSinkAction {\n return {\n payload: { sink },\n type: REGISTER_ACTION_SINK\n };\n}\n\nexport default registerActionSink;\nexport { REGISTER_ACTION_SINK, registerActionSinkActionSchema, type RegisterActionSinkAction };\n","import { type Action } from 'redux';\nimport { custom, function_, is, literal, object, pipe, readonly, type InferOutput } from 'valibot';\n\nconst UNREGISTER_ACTION_SINK = 'WEB_CHAT_INTERNAL/UNREGISTER_ACTION_SINK' as const;\n\nconst unregisterActionSinkActionSchema = pipe(\n object({\n payload: pipe(\n object({\n sink: custom<(action: Action) => void>(value => is(function_(), value))\n }),\n readonly()\n ),\n type: literal(UNREGISTER_ACTION_SINK)\n }),\n readonly()\n);\n\ntype UnregisterActionSinkAction = InferOutput<typeof unregisterActionSinkActionSchema>;\n\nfunction unregisterActionSink(sink: (action: Action) => void): UnregisterActionSinkAction {\n return {\n payload: { sink },\n type: UNREGISTER_ACTION_SINK\n };\n}\n\nexport default unregisterActionSink;\nexport { UNREGISTER_ACTION_SINK, unregisterActionSinkActionSchema, type UnregisterActionSinkAction };\n","import { put, takeEvery } from 'redux-saga/effects';\n\nimport { POST_ACTIVITY_PENDING } from '../actions/postActivity';\nimport setSuggestedActions from '../actions/setSuggestedActions';\nimport whileConnected from './effects/whileConnected';\n\nfunction* clearSuggestedActions() {\n yield put(setSuggestedActions());\n}\n\nfunction* clearSuggestedActionsOnPostActivity() {\n yield takeEvery(\n ({ payload, type }) => type === POST_ACTIVITY_PENDING && payload.activity.type === 'message',\n clearSuggestedActions\n );\n}\n\nexport default function* clearSuggestedActionsOnPostActivitySaga() {\n yield whileConnected(clearSuggestedActionsOnPostActivity);\n}\n","import { array, custom, is, literal, object, optional, pipe, readonly, type InferOutput } from 'valibot';\nimport { type DirectLineCardAction } from '../types/external/DirectLineCardAction';\nimport { type WebChatActivity } from '../types/WebChatActivity';\n\nconst EMPTY_ARRAY: readonly DirectLineCardAction[] = Object.freeze([]);\n\nconst SET_SUGGESTED_ACTIONS = 'WEB_CHAT/SET_SUGGESTED_ACTIONS' as const;\n\nconst setSuggestedActionsActionSchema = pipe(\n object({\n payload: pipe(\n object({\n originActivity: optional(custom<WebChatActivity>(value => is(object({}), value))),\n suggestedActions: pipe(array(custom<DirectLineCardAction>(value => is(object({}), value))), readonly())\n }),\n readonly()\n ),\n type: literal(SET_SUGGESTED_ACTIONS)\n }),\n readonly()\n);\n\ntype SetSuggestedActionsAction = InferOutput<typeof setSuggestedActionsActionSchema>;\n\nexport default function setSuggestedActions(\n suggestedActions: readonly DirectLineCardAction[] = EMPTY_ARRAY,\n originActivity: undefined | WebChatActivity = undefined\n): SetSuggestedActionsAction {\n return {\n type: SET_SUGGESTED_ACTIONS,\n payload: { originActivity, suggestedActions }\n };\n}\n\nexport { SET_SUGGESTED_ACTIONS, setSuggestedActionsActionSchema, type SetSuggestedActionsAction };\n","import { call, cancel, fork, take } from 'redux-saga/effects';\n\nimport { CONNECT_FULFILLING } from '../../actions/connect';\nimport { DISCONNECT_PENDING } from '../../actions/disconnect';\nimport { RECONNECT_PENDING, RECONNECT_FULFILLING } from '../../actions/reconnect';\n\nimport type { DirectLineJSBotConnection } from '../../types/external/DirectLineJSBotConnection';\n\nexport default function whileConnectedEffect<P extends any[]>(\n fn: (\n {\n directLine,\n userID,\n username\n }: {\n directLine: DirectLineJSBotConnection;\n userID: string;\n username: string;\n },\n ...args: P\n ) => void,\n ...args: P\n) {\n return call(function* whileConnected() {\n for (;;) {\n const {\n meta: { userID, username },\n payload: { directLine }\n }: {\n meta: {\n userID: string;\n username: string;\n };\n payload: { directLine: DirectLineJSBotConnection };\n } = yield take([CONNECT_FULFILLING, RECONNECT_FULFILLING]);\n\n const task = yield fork(fn, { directLine, userID, username }, ...args);\n\n // When we receive DISCONNECT_PENDING or RECONNECT_PENDING, the Direct Line connection is currently busy and should not be used.\n\n yield take([DISCONNECT_PENDING, RECONNECT_PENDING]);\n yield cancel(task);\n }\n });\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [0, 1, 2, 3, 4] }] */\n\nimport { call, put, takeLatest } from 'redux-saga/effects';\n\nimport { CONNECT } from '../actions/connect';\nimport createPromiseQueue from '../createPromiseQueue';\nimport setNotification from '../actions/setNotification';\n\nconst CONNECTIVITY_STATUS_NOTIFICATION_ID = 'connectivitystatus';\n\nfunction subscribeToPromiseQueue(observable) {\n const { push, shift } = createPromiseQueue();\n const subscription = observable.subscribe({ next: push });\n\n return {\n shift,\n unsubscribe() {\n subscription.unsubscribe();\n }\n };\n}\n\nfunction* connectionStatusToNotification({ payload: { directLine } }) {\n const { shift, unsubscribe } = subscribeToPromiseQueue(directLine.connectionStatus$);\n\n try {\n let reconnecting;\n\n for (;;) {\n const value = yield call(shift);\n\n switch (value) {\n case 0:\n case 1:\n yield put(\n setNotification({\n id: CONNECTIVITY_STATUS_NOTIFICATION_ID,\n level: 'info',\n message: reconnecting ? 'reconnecting' : 'connecting'\n })\n );\n\n break;\n\n case 2:\n reconnecting = 1;\n\n yield put(\n setNotification({\n id: CONNECTIVITY_STATUS_NOTIFICATION_ID,\n level: 'success',\n message: 'connected'\n })\n );\n\n break;\n\n case 3:\n case 4:\n reconnecting = 1;\n\n yield put(\n setNotification({\n id: CONNECTIVITY_STATUS_NOTIFICATION_ID,\n level: 'error',\n message: 'failedtoconnect'\n })\n );\n\n break;\n\n default:\n break;\n }\n }\n } finally {\n unsubscribe();\n }\n}\n\nexport default function* () {\n yield takeLatest(CONNECT, connectionStatusToNotification);\n}\n","import { withResolvers } from '@msinternal/botframework-webchat-base/utils';\n\nexport default function createPromiseQueue() {\n let promiseWithResolvers;\n const queue = [];\n\n const push = value => {\n if (promiseWithResolvers) {\n const { resolve } = promiseWithResolvers;\n\n promiseWithResolvers = null;\n resolve(value);\n } else {\n queue.push(value);\n }\n };\n\n const shift = () =>\n queue.length\n ? Promise.resolve(queue.shift())\n : (promiseWithResolvers || (promiseWithResolvers = withResolvers())).promise;\n\n return {\n push,\n shift\n };\n}\n","import { put } from 'redux-saga/effects';\n\nimport connectionStatusUpdate from '../actions/connectionStatusUpdate';\nimport observeEach from './effects/observeEach';\nimport setReferenceGrammarID from '../actions/setReferenceGrammarID';\nimport whileConnected from './effects/whileConnected';\n\nfunction* observeConnectionStatus({ directLine }) {\n yield observeEach(directLine.connectionStatus$, function* updateConnectionStatus(connectionStatus) {\n yield put(connectionStatusUpdate(connectionStatus));\n yield put(setReferenceGrammarID(directLine.referenceGrammarId));\n });\n}\n\nexport default function* connectionStatusUpdateSaga() {\n yield whileConnected(observeConnectionStatus);\n}\n","import { call } from 'redux-saga/effects';\n\nimport createPromiseQueue from '../../createPromiseQueue';\n\nexport default function observeEachEffect(observable, saga) {\n return call(function* observeEach() {\n const queue = createPromiseQueue();\n const subscription = observable.subscribe({ next: queue.push });\n\n try {\n for (;;) {\n const result = yield call(queue.shift);\n\n yield call(saga, result);\n }\n } finally {\n subscription.unsubscribe();\n }\n });\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [0, 10] }] */\n\nimport { call, cancel, cancelled, fork, put, race, take } from 'redux-saga/effects';\n\nimport { jwtDecode } from 'jwt-decode';\n\nimport { CONNECT } from '../actions/connect';\nimport createPromiseQueue from '../createPromiseQueue';\nimport forkPut from './effects/forkPut';\nimport uniqueID from '../utils/uniqueID';\nimport updateConnectionStatus, { UPDATE_CONNECTION_STATUS } from '../actions/updateConnectionStatus';\n\nimport { DISCONNECT, DISCONNECT_PENDING, DISCONNECT_FULFILLED } from '../actions/disconnect';\n\nimport { RECONNECT } from '../actions/reconnect';\n\nconst CONNECTING = 1;\nconst ONLINE = 2;\nconst UNINITIALIZED = 0;\n\nfunction randomUserID() {\n return `r_${uniqueID().substring(0, 10)}`;\n}\n\nfunction* observeAndPutConnectionStatusUpdate(directLine) {\n const connectionStatusQueue = createPromiseQueue();\n const connectionStatusSubscription = directLine.connectionStatus$.subscribe({ next: connectionStatusQueue.push });\n\n try {\n for (;;) {\n const connectionStatus = yield call(connectionStatusQueue.shift);\n\n yield put(updateConnectionStatus(connectionStatus));\n }\n } finally {\n connectionStatusSubscription.unsubscribe();\n }\n}\n\n// TODO: [P2] We should move this check and rectification to DirectLineJS.\nfunction rectifyUserID(directLine, userIDFromAction) {\n const { token } = directLine;\n\n let userIDFromToken;\n\n // TODO: Add test to make sure \"jwt-decode\" work as expected.\n try {\n userIDFromToken = (jwtDecode(token) || {}).user;\n // eslint-disable-next-line no-empty\n } catch (err) {}\n\n const result = {\n fromAction: userIDFromAction,\n fromToken: userIDFromToken\n };\n\n if (userIDFromToken) {\n if (userIDFromAction && userIDFromAction !== userIDFromToken) {\n console.warn(\n 'Web Chat: user ID is both specified in the Direct Line token and passed in, will use the user ID from the token.'\n );\n }\n\n result.final = userIDFromToken;\n } else if (userIDFromAction) {\n if (typeof userIDFromAction !== 'string') {\n console.warn('Web Chat: user ID must be a string.');\n\n result.final = randomUserID();\n } else if (/^dl_/u.test(userIDFromAction)) {\n console.warn(\n 'Web Chat: user ID prefixed with \"dl_\" is reserved and must be embedded into the Direct Line token to prevent forgery.'\n );\n\n result.final = randomUserID();\n } else {\n result.final = userIDFromAction;\n }\n } else {\n result.final = randomUserID();\n }\n\n return result;\n}\n\n// We could make this a Promise instead of saga (function generator) to make the code cleaner, if:\n// 1. We found a way to cancel Promise\n// 2. subscribe() are shared amongst all subscriptions, e.g. turn Observable into events\nfunction* connectSaga(directLine) {\n // DirectLineJS starts the connection only after the first subscriber for activity$, not connectionStatus$\n const activitySubscription = directLine.activity$.subscribe({ next: () => 0 });\n const unsubscribeActivity = activitySubscription.unsubscribe.bind(activitySubscription);\n\n try {\n for (;;) {\n const {\n payload: { connectionStatus }\n } = yield take(UPDATE_CONNECTION_STATUS);\n\n if (connectionStatus === ONLINE) {\n // TODO: [P2] DirectLineJS should kill the connection when we unsubscribe\n // But currently in v3, DirectLineJS does not have this functionality\n // Thus, we need to call \"end()\" explicitly\n\n return () => {\n unsubscribeActivity();\n directLine.end();\n };\n } else if (connectionStatus !== UNINITIALIZED && connectionStatus !== CONNECTING) {\n throw new Error(`Failed to connect, DirectLineJS returned ${connectionStatus}.`);\n }\n }\n } catch (err) {\n // We will unsubscribe if we failed to connect or got cancelled only.\n // We should not unsubscribe in happy case, because DirectLineJS should relying on the subscription to connect/disconnect.\n unsubscribeActivity();\n\n throw err;\n } finally {\n if (yield cancelled()) {\n unsubscribeActivity();\n }\n }\n}\n\nfunction* reconnectSaga() {\n for (;;) {\n const {\n payload: { connectionStatus }\n } = yield take(UPDATE_CONNECTION_STATUS);\n\n if (connectionStatus === ONLINE) {\n break;\n } else if (connectionStatus !== CONNECTING) {\n throw new Error(`Failed to reconnect. DirectLineJS returned ${connectionStatus}.`);\n }\n }\n}\n\n// This is similar to behavior of redux-promise-middleware, but using saga instead of Promise.\n// We guarantee PENDING -> FULFILLING -> FULFILLED, or PENDING -> REJECTED. This will help us simplify logic in other part of code.\n// Note that after the saga is cancelled, subsequent call to put() will be ignored silently.\nfunction* runAsyncEffect({ type, meta, payload }, callEffectFactory) {\n try {\n yield forkPut({ type: `${type}_PENDING`, meta, payload });\n\n const result = yield callEffectFactory();\n\n yield forkPut({ type: `${type}_FULFILLING`, meta, payload }, { type: `${type}_FULFILLED`, meta, payload });\n\n return result;\n } catch (payload) {\n yield forkPut({ type: `${type}_REJECTED`, error: true, meta, payload });\n\n throw payload;\n }\n}\n\nfunction* takeDisconnectAsError() {\n yield take(DISCONNECT);\n\n throw new Error('disconnected');\n}\n\nfunction runAsyncEffectUntilDisconnect(baseAction, callEffectFactory) {\n // We cannot use saga cancel() here, because cancelling saga will prohibit us from sending *_REJECTED.\n // Without REJECTED, it impacts our assumptions around PENDING/FULFILLED/REJECTED.\n return runAsyncEffect(baseAction, function* runUntilDisconnect() {\n const { result } = yield race({\n _: takeDisconnectAsError(),\n result: callEffectFactory()\n });\n\n return result;\n });\n}\n\nexport default function* () {\n for (;;) {\n const {\n payload: { directLine, userID: userIDFromAction, username }\n } = yield take(CONNECT);\n\n const updateConnectionStatusTask = yield fork(observeAndPutConnectionStatusUpdate, directLine);\n const rectifiedUserID = rectifyUserID(directLine, userIDFromAction);\n\n // TODO: [P2] Checks if this attached subtask will get killed if the parent task is complete (peacefully), errored out, or cancelled.\n const meta = {\n userID: rectifiedUserID.final,\n username\n };\n\n // Send user ID to DirectLineJS if it was specified from props of <API.Composer>.\n // However, DirectLineJS may still prefer the user ID from token if it is burnt into the token.\n // To prevent DirectLineJS giving false warnings, we will only call setUserId() if it is different than the token.\n directLine.setUserId && rectifiedUserID.fromToken !== meta.userID && directLine.setUserId(meta.userID);\n\n let disconnectMeta;\n\n // We will dispatch CONNECT_PENDING, wait for connect completed, errored, or cancelled (thru disconnect).\n // Then dispatch CONNECT_FULFILLED/CONNECT_REJECTED as needed.\n try {\n const endDirectLine = yield runAsyncEffectUntilDisconnect(\n {\n type: CONNECT,\n meta,\n payload: { directLine }\n },\n () => call(connectSaga, directLine)\n );\n\n try {\n for (;;) {\n // We are waiting for connection status change or disconnect action.\n const { updateConnectionStatusAction: { payload: { connectionStatus } = {} } = {} } = yield race({\n _: take(DISCONNECT),\n updateConnectionStatusAction: take(UPDATE_CONNECTION_STATUS)\n });\n\n // If it is not disconnect action, connectionStatus will not be undefined.\n if (connectionStatus === CONNECTING) {\n // If DirectLineJS changed connectionStatus to CONNECTING, we will treat it as reconnect status.\n yield runAsyncEffectUntilDisconnect(\n {\n type: RECONNECT,\n meta,\n payload: { directLine }\n },\n () => call(reconnectSaga)\n );\n } else if (connectionStatus !== ONLINE) {\n if (typeof connectionStatus !== 'undefined') {\n // We need to kill the connection because DirectLineJS want to close it.\n throw new Error(`Connection status changed to ${connectionStatus}`);\n } else {\n // Someone dispatched disconnect action.\n break;\n }\n }\n }\n } finally {\n endDirectLine();\n }\n } catch (error) {\n disconnectMeta = { error };\n } finally {\n yield cancel(updateConnectionStatusTask);\n\n // Even if the connection is interrupted, we will still emit DISCONNECT_PENDING.\n // This will makes handling logic easier. If CONNECT_FULFILLED, we guarantee DISCONNECT_PENDING.\n yield forkPut(\n { type: DISCONNECT_PENDING, meta: disconnectMeta, payload: { directLine } },\n { type: DISCONNECT_FULFILLED, meta: disconnectMeta, payload: { directLine } }\n );\n }\n }\n}\n","import { fork, put } from 'redux-saga/effects';\n\n// In redux-saga, if we call the following effects in order, we might miss the take('C').\n// 1. take('A')\n// 2. put({ type: 'B' })\n// 3. take('C')\n\n// We need to modify step 2 to:\n// 2. fork(function* () { yield put({ type: 'B' }) })\n\n// This is a helper function for this purpose.\n\nexport default function forkPutEffect(...actions) {\n return fork(function* forkPut() {\n for (const action of actions) {\n yield put(action);\n }\n });\n}\n","const UPDATE_CONNECTION_STATUS = 'DIRECT_LINE/UPDATE_CONNECTION_STATUS';\n\nexport default function updateConnectionStatus(connectionStatus) {\n return {\n type: UPDATE_CONNECTION_STATUS,\n payload: { connectionStatus }\n };\n}\n\nexport { UPDATE_CONNECTION_STATUS };\n","import { call, put, race, take } from 'redux-saga/effects';\n\nimport { CONNECT_FULFILLED, CONNECT_PENDING, CONNECT_REJECTED, CONNECT_STILL_PENDING } from '../actions/connect';\nimport { RECONNECT_FULFILLED, RECONNECT_PENDING, RECONNECT_REJECTED } from '../actions/reconnect';\nimport sleep from '../utils/sleep';\n\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\n\nconst SLOW_CONNECTION_AFTER = 15000;\n\nexport default function* detectSlowConnectionSaga(ponyfill: GlobalScopePonyfill) {\n for (;;) {\n yield take([CONNECT_PENDING, RECONNECT_PENDING]);\n\n const connectivityRace = yield race({\n fulfilled: take([CONNECT_FULFILLED, RECONNECT_FULFILLED]),\n rejected: take([CONNECT_REJECTED, RECONNECT_REJECTED]),\n slow: call(sleep, SLOW_CONNECTION_AFTER, ponyfill)\n });\n\n if ('slow' in connectivityRace) {\n yield put({ type: CONNECT_STILL_PENDING });\n }\n }\n}\n","import type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\n\nexport default function sleep(interval: number, ponyfill: GlobalScopePonyfill): Promise<void> {\n return new Promise(resolve => ponyfill.setTimeout(resolve, Math.max(interval, 0)));\n}\n","import { put, takeEvery } from 'redux-saga/effects';\n\nimport { EMIT_TYPING_INDICATOR } from '../actions/emitTypingIndicator';\nimport postActivity from '../actions/postActivity';\nimport whileConnected from './effects/whileConnected';\n\nfunction* postTypingActivity() {\n yield put(\n postActivity({\n type: 'typing'\n })\n );\n}\n\nfunction* emitTypingActivityToPostActivity() {\n yield takeEvery(({ type }) => type === EMIT_TYPING_INDICATOR, postTypingActivity);\n}\n\nexport default function* emitTypingActivityToPostActivitySaga() {\n yield whileConnected(emitTypingActivityToPostActivity);\n}\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport { of as activitiesOf } from '../selectors/activities';\nimport { STOP_SPEAKING_ACTIVITY } from '../actions/stopSpeakingActivity';\nimport markActivity from '../actions/markActivity';\nimport speakingActivity from '../definitions/speakingActivity';\n\nfunction* markAllAsSpoken() {\n const speakingActivities = yield select(activitiesOf(speakingActivity));\n\n for (const activity of speakingActivities) {\n yield put(markActivity(activity, 'speak', false));\n }\n}\n\n// TODO: [P4] We should turn this into a reducer instead\nexport default function* markAllAsSpokenOnStopSpeakActivitySaga() {\n yield takeEvery(STOP_SPEAKING_ACTIVITY, markAllAsSpoken);\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\nimport type { WebChatActivity } from '../types/WebChatActivity';\n\nconst activities = ({ activities }: ReduxState) => activities;\n\nconst of = (predicate: (activity: WebChatActivity) => boolean) => (state: ReduxState) =>\n activities(state).filter(predicate);\nconst ofID = (targetID: string) => of(({ id }) => id === targetID);\nconst ofType = (targetType: string) => of(({ type }) => type === targetType);\n\nexport default activities;\nexport { of, ofID, ofType };\n","// If true, the activity is in the queue and needs to be spoken.\n\nexport default function speakingActivity(activity) {\n return activity.channelData?.speak;\n}\n","import { put, select } from 'redux-saga/effects';\nimport updateIn from 'simple-update-in';\n\nimport observeEach from './effects/observeEach';\nimport queueIncomingActivity from '../actions/queueIncomingActivity';\nimport setVoiceState from '../actions/setVoiceState';\nimport whileConnected from './effects/whileConnected';\nimport isVoiceActivity from '../utils/voiceActivity/isVoiceActivity';\nimport isVoiceTranscriptActivity from '../utils/voiceActivity/isVoiceTranscriptActivity';\nimport type { DirectLineActivity } from '../types/external/DirectLineActivity';\nimport type { DirectLineJSBotConnection } from '../types/external/DirectLineJSBotConnection';\nimport type { WebChatActivity } from '../types/WebChatActivity';\n\nconst PASSTHRU_FN = (value: unknown) => value;\n\nfunction patchActivityWithFromRole(activity: DirectLineActivity, userID?: string): DirectLineActivity {\n // Some activities, such as \"ConversationUpdate\", does not have \"from\" defined.\n // And although \"role\" is defined in Direct Line spec, it was not sent over the wire.\n // We normalize the activity here to simplify null-check and logic later.\n\n // Patch activity.from.role to make sure its either \"bot\", \"user\", or \"channel\"\n if (!activity.from) {\n activity = updateIn(activity, ['from', 'role'], () => 'channel');\n } else if (!activity.from.role) {\n if (activity.from.id === userID) {\n activity = updateIn(activity, ['from', 'role'], () => 'user');\n } else if (activity.from.id) {\n activity = updateIn(activity, ['from', 'role'], () => 'bot');\n } else {\n activity = updateIn(activity, ['from', 'role'], () => 'channel');\n }\n }\n\n return activity;\n}\n\nfunction patchNullAsUndefined(activity: DirectLineActivity): DirectLineActivity {\n // These fields are known used in Web Chat and in any cases, they should not be null, but undefined.\n // The only field omitted is \"value\", as it could be null purposefully.\n\n return [\n 'attachmentLayout',\n 'attachments',\n 'channelData',\n 'conversation',\n 'entities',\n 'from',\n 'inputHint',\n 'locale',\n 'name',\n 'recipient',\n 'speak',\n 'suggestedActions',\n 'text',\n 'textFormat',\n 'timestamp',\n 'type'\n ].reduce((activity, name) => {\n const { [name]: value } = activity;\n\n return updateIn(activity, [name], typeof value === 'undefined' || value === null ? undefined : PASSTHRU_FN);\n }, activity);\n}\n\n// Patching the `from.name` to be a human readable name.\n// We use the `from.name` for typing indicator, such that it read \"John is typing...\".\nfunction patchFromName(activity: DirectLineActivity) {\n return updateIn(activity, ['from', 'name'], (name: string | undefined): string => {\n const { channelId, from = {} } = activity;\n\n if ((channelId === 'directline' || channelId === 'webchat') && from.id === from.name && from.role === 'bot') {\n return 'Bot';\n }\n\n return name;\n });\n}\n\nfunction* observeActivity({ directLine, userID }: { directLine: DirectLineJSBotConnection; userID?: string }) {\n yield observeEach(directLine.activity$, function* observeActivity(activity: DirectLineActivity) {\n // Handle voice activities separately - don't store them in Redux (except transcripts)\n if (isVoiceActivity(activity) && !isVoiceTranscriptActivity(activity)) {\n const { recording, voiceHandlers } = yield select(state => ({\n recording: state.voice.voiceState !== 'idle',\n voiceHandlers: state.voice.voiceHandlers\n }));\n\n // Only process voice chunks if speech-to-speech is enabled.\n if (!recording) {\n return;\n }\n\n switch (activity.name) {\n case 'media.chunk': {\n const audioContent = activity?.value?.content;\n if (audioContent) {\n voiceHandlers.forEach(handler => handler.queueAudio(audioContent));\n }\n break;\n }\n\n case 'request.update': {\n const state = activity?.value?.state;\n\n switch (state) {\n case 'detected':\n voiceHandlers.forEach(handler => handler.stopAllAudio());\n yield put(setVoiceState('user_speaking'));\n break;\n\n case 'processing':\n yield put(setVoiceState('processing'));\n break;\n\n default:\n break;\n }\n break;\n }\n\n default:\n break;\n }\n\n return;\n }\n\n // TODO: [P2] #3953 Move the patching logic to a DirectLineJS wrapper, instead of too close to inners of Web Chat.\n activity = patchNullAsUndefined(activity);\n activity = patchActivityWithFromRole(activity, userID);\n activity = patchFromName(activity);\n\n yield put(queueIncomingActivity(activity as WebChatActivity));\n });\n}\n\nexport default function* observeActivitySaga() {\n yield whileConnected(observeActivity);\n}\n","const QUEUE_INCOMING_ACTIVITY = 'DIRECT_LINE/QUEUE_INCOMING_ACTIVITY';\n\nexport default function queueIncomingActivity(activity) {\n return {\n type: QUEUE_INCOMING_ACTIVITY,\n payload: { activity }\n };\n}\n\nexport { QUEUE_INCOMING_ACTIVITY };\n","import { check, is, literal, looseObject, object, pipe, string, type InferOutput } from 'valibot';\r\n\r\nimport { WebChatActivity } from '../../types/WebChatActivity';\r\n\r\n// Activity spec proposal - https://github.com/microsoft/Agents/issues/416\r\n// valueType: contains 'audio' or 'dtmf' (works with any server prefix like azure.directline, ccv2, etc.)\r\nconst VoiceActivitySchema = object({\r\n name: string(),\r\n type: literal('event'),\r\n value: looseObject({}),\r\n valueType: pipe(\r\n string(),\r\n check(value => value.includes('audio') || value.includes('dtmf'))\r\n )\r\n});\r\n\r\nconst isVoiceActivity = (\r\n activity: WebChatActivity\r\n): activity is WebChatActivity & InferOutput<typeof VoiceActivitySchema> => is(VoiceActivitySchema, activity);\r\n\r\nexport default isVoiceActivity;\r\n","import { check, is, literal, object, picklist, pipe, string, type InferOutput } from 'valibot';\n\nimport { WebChatActivity } from '../../types/WebChatActivity';\n\n// valueType: contains 'audio.transcript' (e.g., azure.directline.audio.transcript)\nconst VoiceTranscriptActivitySchema = object({\n name: literal('media.end'),\n type: literal('event'),\n value: object({\n origin: picklist(['agent', 'user']),\n transcription: string()\n }),\n valueType: pipe(\n string(),\n check(value => value.includes('audio.transcript'))\n )\n});\n\nconst isVoiceTranscriptActivity = (\n activity: WebChatActivity\n): activity is WebChatActivity & InferOutput<typeof VoiceTranscriptActivitySchema> =>\n is(VoiceTranscriptActivitySchema, activity);\n\nexport default isVoiceTranscriptActivity;\n","import { all, call, cancelled, put, race, select, take, takeEvery } from 'redux-saga/effects';\n\nimport { INCOMING_ACTIVITY } from '../actions/incomingActivity';\nimport {\n POST_ACTIVITY,\n POST_ACTIVITY_FULFILLED,\n POST_ACTIVITY_IMPEDED,\n POST_ACTIVITY_PENDING,\n POST_ACTIVITY_REJECTED\n} from '../actions/postActivity';\nimport languageSelector from '../selectors/language';\nimport sendTimeoutSelector from '../selectors/sendTimeout';\nimport dateToLocaleISOString from '../utils/dateToLocaleISOString';\nimport deleteKey from '../utils/deleteKey';\nimport sleep from '../utils/sleep';\nimport uniqueID from '../utils/uniqueID';\nimport observeOnce from './effects/observeOnce';\nimport whileConnected from './effects/whileConnected';\n\nimport type { IncomingActivityAction } from '../actions/incomingActivity';\nimport type {\n PostActivityAction,\n PostActivityFulfilledAction,\n PostActivityImpededAction,\n PostActivityPendingAction,\n PostActivityRejectedAction\n} from '../actions/postActivity';\nimport { setSendStatusInOutgoingActivity } from '../reducers/activities/sort/property/SendStatus';\nimport type { DirectLineActivity } from '../types/external/DirectLineActivity';\nimport type { DirectLineJSBotConnection } from '../types/external/DirectLineJSBotConnection';\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\nimport type { WebChatOutgoingActivity } from '../types/internal/WebChatOutgoingActivity';\nimport type { WebChatActivity } from '../types/WebChatActivity';\n\n// After 5 minutes, the saga will stop from listening for echo backs and consider the outgoing message as permanently undeliverable.\n// This value must be equals to or larger than the user-defined `styleOptions.sendTimeout`.\nconst HARD_SEND_TIMEOUT = 300000;\n\nfunction* postActivity(\n directLine: DirectLineJSBotConnection,\n userID: string,\n username: string,\n numActivitiesPosted: number,\n { meta: { method }, payload: { activity } }: PostActivityAction,\n ponyfill: GlobalScopePonyfill\n) {\n const attachments = (activity.type === 'message' && activity.attachments) || [];\n const clientActivityID = uniqueID();\n const locale = yield select(languageSelector);\n const localTimeZone =\n typeof window.Intl === 'undefined' ? undefined : new Intl.DateTimeFormat().resolvedOptions().timeZone;\n const now = new ponyfill.Date();\n\n // Currently, we allow untyped outgoing activity as long as the chat adapter can deliver.\n // In the future, we should warn if the outgoing activity is not matching the type.\n let outgoingActivity: WebChatOutgoingActivity = {\n ...deleteKey(activity, 'id'),\n channelData: {\n // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`.\n // Please refer to #4362 for details. Remove on or after 2024-07-31.\n ...deleteKey(activity.channelData, 'state'),\n clientActivityID\n },\n channelId: 'webchat',\n from: {\n id: userID,\n name: username,\n role: 'user'\n },\n locale,\n localTimestamp: dateToLocaleISOString(now),\n localTimezone: localTimeZone,\n ...(activity.type === 'message'\n ? {\n attachments:\n attachments &&\n attachments.map(({ contentType, contentUrl, name, thumbnailUrl }) => ({\n contentType,\n contentUrl,\n name,\n thumbnailUrl\n })),\n text: activity.text\n }\n : activity.type === 'event'\n ? {\n name: activity.name,\n value: activity.value\n }\n : {})\n };\n\n // Remove local fields that should not be send to the service.\n outgoingActivity = setSendStatusInOutgoingActivity(\n // TODO: [P1] Need to rework WebChatActivity typing.\n outgoingActivity as WebChatActivity,\n undefined\n ) as WebChatOutgoingActivity;\n\n if (!numActivitiesPosted) {\n outgoingActivity.entities = [\n ...(outgoingActivity.entities || []),\n {\n // TODO: [P4] Currently in v3, we send the capabilities although the client might not actually have them\n // We need to understand why we need to send these, and only send capabilities the client have\n requiresBotState: true,\n supportsListening: true,\n supportsTts: true,\n type: 'ClientCapabilities'\n }\n ];\n }\n\n const meta: { clientActivityID: string; method: string } = { clientActivityID, method };\n\n yield put({\n type: POST_ACTIVITY_PENDING,\n meta,\n payload: { activity: outgoingActivity }\n } as PostActivityPendingAction);\n\n let echoed: boolean | undefined;\n\n try {\n // Quirks: We might receive INCOMING_ACTIVITY before the postActivity call completed\n // So, we setup expectation first, then postActivity afterward\n\n const echoBackCall = call(function* () {\n for (;;) {\n const {\n payload: { activity }\n }: IncomingActivityAction = yield take(INCOMING_ACTIVITY);\n if (activity.channelData?.clientActivityID === clientActivityID && activity.id) {\n echoed = true;\n\n return activity;\n }\n }\n });\n\n // Timeout could be due to either:\n // - Post activity call may take too long time to complete\n // - Direct Line service only respond on HTTP after bot respond to Direct Line\n // - Activity may take too long time to echo back\n\n const sendTimeout: number = yield select(sendTimeoutSelector);\n\n const {\n send: { echoBack }\n }: { send: { echoBack: WebChatActivity } } = yield race({\n send: all({\n echoBack: echoBackCall,\n postActivity: observeOnce(directLine.postActivity(outgoingActivity as DirectLineActivity))\n }),\n timeout: call(function* () {\n yield call(sleep, sendTimeout, ponyfill);\n\n // The IMPEDED action is for backward compatibility by changing `channelData.state` to \"send failed\".\n // `channelData.state` is being deprecated in favor of `channelData['webchat:send-status']`.\n // Please refer to #4362 for details. Remove on or after 2024-07-31.\n yield put({\n type: POST_ACTIVITY_IMPEDED,\n meta,\n payload: { activity: outgoingActivity }\n } as PostActivityImpededAction);\n\n yield call(sleep, HARD_SEND_TIMEOUT - sendTimeout, ponyfill);\n\n throw !echoed\n ? new Error('timed out while waiting for outgoing message to echo back')\n : new Error('timed out while waiting for postActivity to return any values');\n })\n });\n\n yield put({ type: POST_ACTIVITY_FULFILLED, meta, payload: { activity: echoBack } } as PostActivityFulfilledAction);\n } catch (err) {\n console.error('botframework-webchat: Failed to post activity to chat adapter.', err);\n\n yield put({\n type: POST_ACTIVITY_REJECTED,\n error: true,\n meta,\n payload: err\n } as PostActivityRejectedAction);\n } finally {\n if (yield cancelled()) {\n yield put({\n type: POST_ACTIVITY_REJECTED,\n error: true,\n meta,\n payload: new Error('cancelled')\n } as PostActivityRejectedAction);\n }\n }\n}\n\nexport default function* postActivitySaga(ponyfill: GlobalScopePonyfill) {\n yield whileConnected(function* postActivityWhileConnected({\n directLine,\n userID,\n username\n }: {\n directLine: DirectLineJSBotConnection;\n userID: string;\n username: string;\n }) {\n let numActivitiesPosted = 0;\n\n yield takeEvery(POST_ACTIVITY, function* postActivityWrapper(action: PostActivityAction) {\n yield* postActivity(directLine, userID, username, numActivitiesPosted++, action, ponyfill);\n });\n });\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ language }: ReduxState): string => language;\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ sendTimeout }: ReduxState): number => sendTimeout;\n","/* eslint no-magic-numbers: [\"off\", { \"ignore\": [1, 2, 3, 60] }] */\n\nfunction pad(value: number, count = 2): string {\n if (typeof value !== 'number') {\n throw new Error('First argument must be a number');\n }\n\n let stringValue = value + '';\n\n while (stringValue.length < count) {\n stringValue = '0' + stringValue;\n }\n\n return stringValue;\n}\n\n// Adopted from https://stackoverflow.com/questions/17415579/how-to-iso-8601-format-a-date-with-timezone-offset-in-javascript.\n// Use typing of `Date` from globalThis.\n// eslint-disable-next-line no-restricted-globals\nexport default function dateToLocaleISOString(date: Date): string {\n const isDateLike =\n // @ts-ignore TypeScript think this is always true.\n date.getTimezoneOffset &&\n // @ts-ignore TypeScript think this is always true.\n date.getFullYear &&\n // @ts-ignore TypeScript think this is always true.\n date.getMonth &&\n // @ts-ignore TypeScript think this is always true.\n date.getDate &&\n // @ts-ignore TypeScript think this is always true.\n date.getHours &&\n // @ts-ignore TypeScript think this is always true.\n date.getMinutes &&\n // @ts-ignore TypeScript think this is always true.\n date.getSeconds &&\n date.getMilliseconds;\n\n if (!isDateLike) {\n throw new Error('First argument must be a Date-like object.');\n }\n\n const timezoneOffset = -date.getTimezoneOffset();\n const timezoneSign = timezoneOffset < 0 ? '-' : '+';\n\n // \"yyyy-MM-DDTHH:mm:ss.fff+08:00\" for GMT+08\n // \"yyyy-MM-DDTHH:mm:ss.fffZ\" for UTC\n\n const absoluteTimezoneOffset = ~~Math.abs(timezoneOffset);\n\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}T${pad(date.getHours())}:${pad(\n date.getMinutes()\n )}:${pad(date.getSeconds())}.${pad(date.getMilliseconds(), 3)}${\n timezoneOffset ? `${timezoneSign}${pad(~~(absoluteTimezoneOffset / 60))}:${pad(absoluteTimezoneOffset % 60)}` : 'Z'\n }`;\n}\n","import { isForbiddenPropertyName } from '@msinternal/botframework-webchat-base/utils';\n\nexport default function deleteKey<TMap, TKey extends keyof TMap>(map: TMap, ...keys: TKey[]): Omit<TMap, TKey> {\n if (!map) {\n return map;\n }\n\n const nextMap = { ...map };\n\n for (const key of keys) {\n if (typeof key !== 'string' || !isForbiddenPropertyName(key)) {\n // Mitigation through denylisting.\n // eslint-disable-next-line security/detect-object-injection\n delete nextMap[key];\n }\n }\n\n return nextMap;\n}\n","import { call } from 'redux-saga/effects';\n\nimport { Observable, Observer, Subscription } from '../../types/external/Observable';\n\nexport default function observeOnceEffect<T>(observable: Observable<T>) {\n return call(function* observeOnce() {\n let subscription: Subscription;\n\n try {\n return yield call(\n () =>\n new Promise<T>((resolve, reject) => {\n subscription = observable.subscribe({\n complete: resolve,\n error: reject,\n next: resolve\n } as Observer<T>);\n })\n );\n } finally {\n subscription && subscription.unsubscribe();\n }\n });\n}\n","import { call, cancelled, fork, put, race, select, take } from 'redux-saga/effects';\n\nimport incomingActivity, { INCOMING_ACTIVITY } from '../actions/incomingActivity';\nimport { QUEUE_INCOMING_ACTIVITY } from '../actions/queueIncomingActivity';\nimport setSuggestedActions from '../actions/setSuggestedActions';\nimport activityFromBot from '../definitions/activityFromBot';\nimport activitiesSelector, { ofType as activitiesOfType } from '../selectors/activities';\nimport sleep from '../utils/sleep';\nimport whileConnected from './effects/whileConnected';\n\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\n\n// We will hold up the replying activity if the originating activity did not arrive, up to 5 seconds.\nconst REPLY_TIMEOUT = 5000;\n\nfunction* takeEveryAndSelect(actionType, selector, fn) {\n // select() will free up the code execution.\n // If we pair up with takeEvery(), it will allow actions to slip through.\n // Thus, we are writing one that don't use takeEvery().\n while (!(yield cancelled())) {\n const action = yield take(actionType);\n const state = yield select(selector);\n\n yield fork(fn, action, state);\n }\n}\n\n// Wait for specific activity to arrive in the transcript.\n// We will use the initial set of activities to close time gaps between select() and take().\n// If another activity with the same \"replyToId\" is already rendered (in the \"activities\" array),\n// we will skip the wait as we already waited long enough for the missing activity to show up.\nfunction* waitForActivityId(replyToId, initialActivities) {\n let activities = initialActivities;\n\n for (;;) {\n const replied = activities.find(activity => activity.id === replyToId || activity.replyToId === replyToId);\n\n if (replied) {\n break;\n }\n\n const {\n payload: { activity }\n } = yield take(INCOMING_ACTIVITY);\n\n if (activity.id === replyToId) {\n break;\n }\n\n activities = yield select(activitiesSelector);\n }\n}\n\nfunction* queueIncomingActivity({ userID }: { userID: string }, ponyfill: GlobalScopePonyfill) {\n yield takeEveryAndSelect(\n QUEUE_INCOMING_ACTIVITY,\n activitiesSelector,\n function* queueIncomingActivity({ payload: { activity } }, initialActivities) {\n // This is for resolving an accessibility issue.\n // If the incoming activity has \"replyToId\" field, hold on it until the activity replied to is in the transcript, then release this one.\n const { replyToId } = activity;\n const initialBotActivities = initialActivities.filter(({ from: { role } }) => role === 'bot');\n\n // To speed up the first activity render time, we do not delay the first activity from the bot.\n // Even if it is the first activity from the bot, the bot might be \"replying\" to the \"conversationUpdate\" event.\n // Thus, the \"replyToId\" will always be there even it is the first activity in the conversation.\n if (replyToId && initialBotActivities.length) {\n // Either the activity replied to is in the transcript or after timeout.\n const result = yield race({\n _: waitForActivityId(replyToId, initialActivities),\n timeout: call(sleep, REPLY_TIMEOUT, ponyfill)\n });\n\n if ('timeout' in result) {\n console.warn(\n `botframework-webchat: Timed out while waiting for activity \"${replyToId}\" which activity \"${activity.id}\" is replying to.`,\n {\n activity,\n replyToId\n }\n );\n }\n }\n\n yield put(incomingActivity(activity));\n\n // Update suggested actions\n // TODO: [P3] We could put this logic inside reducer to minimize number of actions dispatched.\n const messageActivities = yield select(activitiesOfType('message'));\n const lastMessageActivity = messageActivities[messageActivities.length - 1];\n\n if (activityFromBot(lastMessageActivity)) {\n const { suggestedActions: { actions, to } = { actions: undefined, to: undefined } } = lastMessageActivity;\n\n // If suggested actions is not destined to anyone, or is destined to the user, show it.\n // In other words, if suggested actions is destined to someone else, don't show it.\n const suggestedActions = to?.length && !to.includes(userID) ? null : actions;\n\n if (suggestedActions) {\n yield put(setSuggestedActions(suggestedActions, lastMessageActivity));\n } else {\n yield put(setSuggestedActions());\n }\n }\n }\n );\n}\n\nexport default function* queueIncomingActivitySaga(ponyfill: GlobalScopePonyfill) {\n yield whileConnected(queueIncomingActivity, ponyfill);\n}\n","export default activity => activity && activity.from.role === 'bot';\n","import { put, takeEvery } from 'redux-saga/effects';\n\nimport { SEND_EVENT } from '../actions/sendEvent';\nimport postActivity from '../actions/postActivity';\nimport whileConnected from './effects/whileConnected';\n\nfunction* postActivityWithEvent({ payload: { name, value } }) {\n yield put(\n postActivity({\n name,\n type: 'event',\n value\n })\n );\n}\n\nfunction* sendEventToPostActivity() {\n yield takeEvery(({ payload, type }) => type === SEND_EVENT && payload.name, postActivityWithEvent);\n}\n\nexport default function* sendEventToPostActivitySaga() {\n yield whileConnected(sendEventToPostActivity);\n}\n","import { put, takeEvery } from 'redux-saga/effects';\nimport mime from 'mime';\n\nimport { SEND_FILES } from '../actions/sendFiles';\nimport postActivity from '../actions/postActivity';\nimport whileConnected from './effects/whileConnected';\n\nconst getType = mime.getType.bind(mime);\n\nfunction* postActivityWithFiles({ payload: { files } }) {\n yield put(\n postActivity({\n attachments: [].map.call(files, ({ name, thumbnail, url }) => ({\n contentType: getType(name) || 'application/octet-stream',\n contentUrl: url,\n name,\n thumbnailUrl: thumbnail\n })),\n channelData: {\n attachmentSizes: [].map.call(files, ({ size }) => size)\n },\n type: 'message'\n })\n );\n}\n\nfunction* sendFilesToPostActivity() {\n yield takeEvery(({ payload, type }) => type === SEND_FILES && payload.files.length, postActivityWithFiles);\n}\n\nexport default function* sendFilesToPostActivitySaga() {\n yield whileConnected(sendFilesToPostActivity);\n}\n","import { put, takeEvery } from 'redux-saga/effects';\nimport postActivity from '../actions/postActivity';\nimport { SEND_MESSAGE_BACK } from '../actions/sendMessageBack';\nimport whileConnected from './effects/whileConnected';\n\n// https://github.com/microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#message-back\nfunction* postActivityWithMessageBack({ payload: { displayText, text, value } }) {\n yield put(\n postActivity({\n channelData: {\n messageBack: {\n displayText\n }\n },\n text,\n type: 'message',\n value\n })\n );\n}\n\nfunction* sendMessageBackToPostActivity() {\n yield takeEvery(SEND_MESSAGE_BACK, postActivityWithMessageBack);\n}\n\nexport default function* sendMessageBackToPostActivitySaga() {\n yield whileConnected(sendMessageBackToPostActivity);\n}\n","import { put, takeEvery } from 'redux-saga/effects';\n\nimport postActivity from '../actions/postActivity';\nimport sendMessage, { SEND_MESSAGE } from '../actions/sendMessage';\nimport whileConnected from './effects/whileConnected';\n\nfunction* postActivityWithMessage({\n payload: { attachments = [], channelData, method, text }\n}: ReturnType<typeof sendMessage>) {\n yield put(\n postActivity(\n {\n attachments: attachments.map(({ blob, thumbnailURL }) => ({\n contentType: (blob instanceof File && blob.type) || 'application/octet-stream',\n // Chat adapter should download the file as binary.\n // In case the chat adapter naively echo back the URL, it will be treated as binary.\n // eslint-disable-next-line no-restricted-properties\n contentUrl: URL.createObjectURL(new Blob([blob], { type: 'application/octet-stream' })),\n name: blob instanceof File ? blob.name : undefined,\n thumbnailUrl: thumbnailURL?.toString()\n })),\n channelData: {\n ...channelData,\n attachmentSizes: attachments.map(({ blob: { size } }) => size)\n },\n text: text || undefined,\n textFormat: 'plain',\n type: 'message'\n } as any, // TODO: Fix WebChatActivity. Currently, it only works with incoming activity, not outgoing.\n method\n )\n );\n}\n\nfunction* sendMessageToPostActivity() {\n yield takeEvery(\n ({ payload, type }) => type === SEND_MESSAGE && (payload.text || payload.attachments?.length),\n postActivityWithMessage\n );\n}\n\nexport default function* sendMessageToPostActivitySaga() {\n yield whileConnected(sendMessageToPostActivity);\n}\n","// This is for the ternary operator of text and value.\n/* eslint no-undefined: \"off\" */\n\nimport { put, takeEvery } from 'redux-saga/effects';\nimport postActivity from '../actions/postActivity';\nimport { SEND_POST_BACK } from '../actions/sendPostBack';\nimport whileConnected from './effects/whileConnected';\n\n// https://github.com/microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#post-back\nfunction* postActivityWithPostBack({ payload: { value } }) {\n yield put(\n postActivity({\n channelData: {\n postBack: true\n },\n text: typeof value === 'string' ? value : undefined,\n type: 'message',\n value: typeof value !== 'string' ? value : undefined\n })\n );\n}\n\nfunction* sendPostBackToPostActivity() {\n yield takeEvery(SEND_POST_BACK, postActivityWithPostBack);\n}\n\nexport default function* sendPostBackToPostActivitySaga() {\n yield whileConnected(sendPostBackToPostActivity);\n}\n","// We will revisit this logic in #2157 and should remove the following eslint ignore\n/* eslint require-atomic-updates: \"off\" */\n\nimport { call, cancel, put, select, take, takeLatest } from 'redux-saga/effects';\n\nimport { SET_SEND_BOX } from '../actions/setSendBox';\nimport { SET_SEND_TYPING_INDICATOR } from '../actions/setSendTypingIndicator';\nimport { POST_ACTIVITY } from '../actions/postActivity';\nimport emitTypingIndicator from '../actions/emitTypingIndicator';\nimport sendTypingIndicatorSelector from '../selectors/sendTypingIndicator';\nimport sleep from '../utils/sleep';\nimport whileConnected from './effects/whileConnected';\n\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\nimport type setSendTypingIndicator from '../actions/setSendTypingIndicator';\n\ntype SetSendTypingIndicatorAction = ReturnType<typeof setSendTypingIndicator>;\n\nconst SEND_INTERVAL = 3000;\n\nfunction takeSendTypingIndicator(value: boolean) {\n return take<SetSendTypingIndicatorAction>(\n // TODO: \"any\" should be replaced all known types in the system.\n ({ payload, type }: any) => type === SET_SEND_TYPING_INDICATOR && !payload.sendTypingIndicator === !value\n );\n}\n\nfunction* sendTypingIndicatorOnSetSendBox(_, ponyfill: GlobalScopePonyfill) {\n const { Date } = ponyfill;\n const sendTypingIndicator = yield select(sendTypingIndicatorSelector);\n\n if (!sendTypingIndicator) {\n yield takeSendTypingIndicator(true);\n }\n\n for (;;) {\n let lastSend = -Infinity;\n const task = yield takeLatest(\n ({ payload, type }) =>\n (type === SET_SEND_BOX && payload.text) ||\n // Stop sending pending typing indicator if the user has posted anything.\n // We send typing indicator in a debounce way (t = 0, t = 3000, t = 6000).\n // When the user type, and then post the activity at t = 1500, we still have a pending typing indicator at t = 3000.\n // This code is to cancel the typing indicator at t = 3000.\n (type === POST_ACTIVITY && payload.activity.type !== 'typing'),\n function* ({ payload, type }) {\n if (type === SET_SEND_BOX) {\n const interval = SEND_INTERVAL - Date.now() + lastSend;\n\n if (interval > 0) {\n yield call(sleep, interval, ponyfill);\n }\n\n yield put(emitTypingIndicator());\n\n lastSend = Date.now();\n } else if (payload.activity.type === 'message') {\n lastSend = -Infinity;\n }\n }\n );\n\n yield takeSendTypingIndicator(false);\n yield cancel(task);\n yield takeSendTypingIndicator(true);\n }\n}\n\nexport default function* sendTypingIndicatorOnSetSendBoxSaga(ponyfill: GlobalScopePonyfill) {\n yield whileConnected(sendTypingIndicatorOnSetSendBox, ponyfill);\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ sendTypingIndicator }: ReduxState): boolean => sendTypingIndicator;\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport { INCOMING_ACTIVITY } from '../actions/incomingActivity';\nimport markActivity from '../actions/markActivity';\nimport setDictateState from '../actions/setDictateState';\nimport stopDictate from '../actions/stopDictate';\nimport { IDLE, WILL_START } from '../constants/DictateState';\nimport speakableActivity from '../definitions/speakableActivity';\nimport dictateStateSelector from '../selectors/dictateState';\nimport shouldSpeakIncomingActivitySelector from '../selectors/shouldSpeakIncomingActivity';\nimport whileConnected from './effects/whileConnected';\n\nfunction* speakActivityAndStartDictateOnIncomingActivityFromOthers({ userID }) {\n yield takeEvery(\n ({ payload, type }) =>\n // In Direct Line, the \"role\" is not filled (yet), but we do know the user ID.\n // In Direct Line Speech, we do not know the user ID, but \"role\" is filled with \"bot\" or \"user\".\n // Here, we do two checks: the speakable activity must not have user ID, and must not have role === 'user'\n type === INCOMING_ACTIVITY && payload.activity.from.id !== userID && payload.activity.from.role !== 'user',\n function* ({ payload: { activity } }) {\n const shouldSpeakIncomingActivity = yield select(shouldSpeakIncomingActivitySelector);\n const dictateState = yield select(dictateStateSelector);\n const shouldSpeak = speakableActivity(activity) && shouldSpeakIncomingActivity;\n\n if (\n shouldSpeak &&\n (activity.speak ||\n activity.text ||\n ~(activity.attachments || []).findIndex(({ content: { speak } = {} }) => speak))\n ) {\n yield put(markActivity(activity, 'speak', true));\n }\n\n if (shouldSpeak && activity.inputHint === 'expectingInput') {\n // In continuous mode (dictateState === LISTENING), we shouldn't set it to WILL_START.\n // WILL_START means auto start after synthesis completed.\n if (dictateState === IDLE) {\n yield put(setDictateState(WILL_START));\n }\n } else if (activity.inputHint === 'ignoringInput') {\n yield put(stopDictate());\n }\n }\n );\n}\n\nexport default function* speakActivityAndStartDictateOnIncomingActivityFromOthersSaga() {\n yield whileConnected(speakActivityAndStartDictateOnIncomingActivityFromOthers);\n}\n","export default function speakableActivity(activity) {\n return activity && activity.from && activity.type === 'message';\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ dictateState }: ReduxState) => dictateState;\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ shouldSpeakIncomingActivity }: ReduxState): boolean => shouldSpeakIncomingActivity;\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport { MARK_ACTIVITY } from '../actions/markActivity';\nimport { SET_DICTATE_STATE } from '../actions/setDictateState';\nimport startDictate from '../actions/startDictate';\nimport { WILL_START } from '../constants/DictateState';\nimport speakingActivity from '../definitions/speakingActivity';\nimport { of as activitiesOf } from '../selectors/activities';\nimport dictateStateSelector from '../selectors/dictateState';\n\nfunction* startDictateOnSpeakComplete() {\n const speakingActivities = yield select(activitiesOf(speakingActivity));\n const dictateState = yield select(dictateStateSelector);\n\n if (dictateState === WILL_START && !speakingActivities.length) {\n yield put(startDictate());\n }\n}\n\n// TODO: [P4] We should turn this into a reducer instead\nexport default function* startDictateOnSpeakCompleteSaga() {\n yield takeEvery(({ type }) => type === MARK_ACTIVITY || type === SET_DICTATE_STATE, startDictateOnSpeakComplete);\n}\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport { POST_ACTIVITY_PENDING } from '../actions/postActivity';\nimport startSpeakingActivity from '../actions/startSpeakingActivity';\nimport { DICTATING } from '../constants/DictateState';\nimport dictateStateSelector from '../selectors/dictateState';\nimport whileConnected from './effects/whileConnected';\n\nfunction* startSpeakActivityOnPostActivity() {\n yield takeEvery(\n ({ type }) => type === POST_ACTIVITY_PENDING,\n function* ({ meta, payload }) {\n const dictateState = yield select(dictateStateSelector);\n\n if (\n // In continuous mode (speech recognition is active), we should speak everything.\n dictateState === DICTATING ||\n // Otherwise, in interactive mode, if last message was sent via speech, we should speak bot response.\n (meta.method === 'speech' && payload.activity.type === 'message')\n ) {\n yield put(startSpeakingActivity());\n }\n }\n );\n}\n\nexport default function* startSpeakActivityOnPostActivitySaga() {\n yield whileConnected(startSpeakActivityOnPostActivity);\n}\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport { POST_ACTIVITY_PENDING } from '../actions/postActivity';\nimport stopDictate from '../actions/stopDictate';\nimport { DICTATING } from '../constants/DictateState';\nimport dictateStateSelector from '../selectors/dictateState';\nimport whileConnected from './effects/whileConnected';\n\nfunction* stopDictateOnCardAction() {\n // TODO: [P2] We should stop speech input when the user click on anything on a card, including open URL which doesn't generate postActivity\n // This functionality was not implemented in v3\n yield takeEvery(\n // Currently, there are no actions that are related to card input\n // For now, we are using POST_ACTIVITY of a \"message\" activity\n // In the future, if we have an action for card input, we should use that instead\n ({ payload, type }) => type === POST_ACTIVITY_PENDING && payload.activity.type === 'message',\n function* putStopDictate() {\n const dictateState = yield select(dictateStateSelector);\n\n // When performing card action:\n // - In continuous mode (speech recognition is active), speech recognition should not be stopped\n // - Otherwise, in interactive mode, speech recognition should be stopped\n if (dictateState !== DICTATING) {\n yield put(stopDictate());\n }\n }\n );\n}\n\nexport default function* stopDictateOnCardActionSaga() {\n yield whileConnected(stopDictateOnCardAction);\n}\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport { POST_ACTIVITY_PENDING } from '../actions/postActivity';\nimport { SET_DICTATE_INTERIMS } from '../actions/setDictateInterims';\nimport { SET_SEND_BOX } from '../actions/setSendBox';\nimport stopSpeakingActivity from '../actions/stopSpeakingActivity';\nimport { DICTATING } from '../constants/DictateState';\nimport dictateStateSelector from '../selectors/dictateState';\nimport whileConnected from './effects/whileConnected';\n\nfunction* stopSpeakingActivityOnInput() {\n yield takeEvery(\n ({ payload, type }) =>\n (type === SET_SEND_BOX && payload.text) ||\n // We want to stop speaking activity when the user click on a card action\n // But currently there are no actions generated out of a card action\n // So, right now, we are using best-effort by listening to POST_ACTIVITY_PENDING with a \"message\" event\n // We filter out speech because we will call startSpeakingActivity() for POST_ACTIVITY_PENDING dispatched by speech\n type === POST_ACTIVITY_PENDING ||\n // We want to stop speaking activity on barge-in.\n type === SET_DICTATE_INTERIMS,\n function* ({ meta, payload, type }) {\n const dictateState = yield select(dictateStateSelector);\n\n // If input is post activity, do not stop speaking if either one of the followings:\n // - In continuous mode (speech recognition should active for as long as possible)\n // - Posting via speech (interactive mode, should speak bot response)\n // - Posting a non-message (interactive mode, not typing on keyboard, should be ignored)\n if (\n type === POST_ACTIVITY_PENDING &&\n (dictateState === DICTATING || meta.method === 'speech' || payload.activity.type !== 'message')\n ) {\n return;\n }\n\n yield put(stopSpeakingActivity());\n }\n );\n}\n\nexport default function* stopSpeakingActivityOnInputSaga() {\n yield whileConnected(stopSpeakingActivityOnInput);\n}\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport sendMessage from '../actions/sendMessage';\nimport setSendBox from '../actions/setSendBox';\nimport setSendBoxAttachments from '../actions/setSendBoxAttachments';\nimport { SUBMIT_SEND_BOX } from '../actions/submitSendBox';\nimport sendBoxAttachmentsSelector from '../selectors/sendBoxAttachments';\nimport sendBoxValueSelector from '../selectors/sendBoxValue';\nimport whileConnected from './effects/whileConnected';\n\nfunction* submitSendBox() {\n yield takeEvery(SUBMIT_SEND_BOX, function* ({ payload: { channelData, method } }) {\n const attachments = yield select(sendBoxAttachmentsSelector);\n const sendBoxValue = yield select(sendBoxValueSelector);\n\n // TODO: [P2] If the trimmed value is empty, we should not send.\n // TODO: [P2] We should expose this logic (\"cannot send empty message\") to other components such as UI.\n if (attachments.length || sendBoxValue) {\n yield put(sendMessage(sendBoxValue.trim(), method, { attachments, channelData }));\n\n yield put(setSendBox(''));\n yield put(setSendBoxAttachments(Object.freeze([])));\n }\n });\n}\n\nexport default function* submitSendBoxSaga() {\n // TODO: [P2] We should expose this logic (\"send only when connected\") to other components such as UI.\n yield whileConnected(submitSendBox);\n}\n","import type { SendBoxAttachment } from '../types/SendBoxAttachment';\nimport type { ReduxState } from '../types/internal/ReduxState';\n\nexport default function sendBoxAttachments({ sendBoxAttachments }: ReduxState): readonly SendBoxAttachment[] {\n return sendBoxAttachments;\n}\n","import type { ReduxState } from '../types/internal/ReduxState';\n\nexport default ({ sendBoxValue }: ReduxState): string => sendBoxValue;\n","import { select, takeEvery } from 'redux-saga/effects';\nimport { VOICE_POST_ACTIVITY } from '../actions/postVoiceActivity';\nimport languageSelector from '../selectors/language';\nimport dateToLocaleISOString from '../utils/dateToLocaleISOString';\nimport whileConnected from './effects/whileConnected';\nimport observeOnce from './effects/observeOnce';\n\nimport type { DirectLineJSBotConnection } from '../types/external/DirectLineJSBotConnection';\nimport type { DirectLineActivity } from '../types/external/DirectLineActivity';\nimport type { GlobalScopePonyfill } from '../types/GlobalScopePonyfill';\nimport type { VoicePostActivityAction } from '../actions/postVoiceActivity';\n\n/**\n * Saga for handling outgoing voice activities.\n *\n * Unlike regular postActivitySaga, this saga:\n * - Does NOT wait for echo back\n * - Does NOT store activity in Redux\n * - Does NOT dispatch PENDING/FULFILLED/REJECTED actions\n * - Fire and forget - just send to WebSocket\n *\n * This prevents memory leaks from storing thousands of voice chunks.\n */\nfunction* postVoiceActivity(\n directLine: DirectLineJSBotConnection,\n userID: string,\n username: string,\n { payload: { activity } }: VoicePostActivityAction,\n ponyfill: GlobalScopePonyfill\n) {\n const locale: string = yield select(languageSelector);\n const localTimeZone =\n typeof window.Intl === 'undefined' ? undefined : new Intl.DateTimeFormat().resolvedOptions().timeZone;\n const now = new ponyfill.Date();\n\n const outgoingActivity = {\n ...activity,\n channelId: 'webchat',\n from: {\n id: userID,\n name: username,\n role: 'user'\n },\n locale,\n localTimestamp: dateToLocaleISOString(now),\n localTimezone: localTimeZone,\n ...(activity.type === 'event'\n ? {\n name: activity.name,\n value: activity.value\n }\n : {})\n };\n\n try {\n yield observeOnce(directLine.postActivity(outgoingActivity as DirectLineActivity));\n } catch (error) {\n console.error('botframework-webchat: Failed to post voice activity to chat adapter.', error);\n }\n}\n\nexport default function* voiceActivitySaga(ponyfill: GlobalScopePonyfill) {\n yield whileConnected(function* voiceActivityWhileConnected({\n directLine,\n userID,\n username\n }: {\n directLine: DirectLineJSBotConnection;\n userID: string;\n username: string;\n }) {\n yield takeEvery(VOICE_POST_ACTIVITY, function* (action: VoicePostActivityAction) {\n yield* postVoiceActivity(directLine, userID, username, action, ponyfill);\n });\n });\n}\n","export default function onErrorResumeNext<T>(fn: () => T): T | undefined;\nexport default function onErrorResumeNext<T, U = T>(fn: () => T, defaultValue: U): T | U;\n\n/**\n * Calls the function and returns its return value.\n *\n * If the function failed, return default value if specified, otherwise, `undefined`.\n */\nexport default function onErrorResumeNext<T>(fn: () => T, defaultValue?: T): T | undefined {\n try {\n return fn();\n } catch {\n return defaultValue;\n }\n}\n","import { WebChatActivity } from '../../types/WebChatActivity';\nimport isVoiceTranscriptActivity from './isVoiceTranscriptActivity';\n\nconst getVoiceActivityRole = (activity: WebChatActivity): 'bot' | 'user' | undefined => {\n if (isVoiceTranscriptActivity(activity)) {\n if (activity.value.origin === 'agent') {\n return 'bot';\n } else if (activity.value.origin === 'user') {\n return 'user';\n }\n }\n\n return undefined;\n};\n\nexport default getVoiceActivityRole;\n","import { WebChatActivity } from '../../types/WebChatActivity';\nimport isVoiceTranscriptActivity from './isVoiceTranscriptActivity';\n\nconst getVoiceActivityText = (activity: WebChatActivity): string | undefined => {\n if (isVoiceTranscriptActivity(activity)) {\n return activity.value.transcription;\n }\n return undefined;\n};\n\nexport default getVoiceActivityText;\n","import { literal, object, pipe, readonly, type InferOutput } from 'valibot';\n\nconst CLEAR_SUGGESTED_ACTIONS = 'WEB_CHAT/CLEAR_SUGGESTED_ACTIONS' as const;\n\nconst clearSuggestedActionsActionSchema = pipe(\n object({\n type: literal(CLEAR_SUGGESTED_ACTIONS)\n }),\n readonly()\n);\n\ntype ClearSuggestedActionsAction = InferOutput<typeof clearSuggestedActionsActionSchema>;\n\nexport default function clearSuggestedActions(): ClearSuggestedActionsAction {\n return {\n type: CLEAR_SUGGESTED_ACTIONS\n };\n}\n\nexport { CLEAR_SUGGESTED_ACTIONS, clearSuggestedActionsActionSchema, type ClearSuggestedActionsAction };\n","import { createBuildInfo } from '@msinternal/botframework-webchat-base/utils';\n\nconst buildInfo = createBuildInfo('botframework-webchat:core');\n\nbuildInfo.set('buildTool', globalThis.WEB_CHAT_BUILD_INFO_BUILD_TOOL);\nbuildInfo.set('moduleFormat', globalThis.WEB_CHAT_BUILD_INFO_MODULE_FORMAT);\nbuildInfo.set('version', globalThis.WEB_CHAT_BUILD_INFO_VERSION);\n\nexport default buildInfo;\n","import connect from './actions/connect';\nimport disconnect from './actions/disconnect';\nimport dismissNotification from './actions/dismissNotification';\nimport emitTypingIndicator from './actions/emitTypingIndicator';\nimport markActivity from './actions/markActivity';\nimport muteVoiceRecording from './actions/muteVoiceRecording';\nimport postActivity from './actions/postActivity';\nimport postVoiceActivity from './actions/postVoiceActivity';\nimport type { VoiceHandler } from './actions/registerVoiceHandler';\nimport registerVoiceHandler from './actions/registerVoiceHandler';\nimport sendEvent from './actions/sendEvent';\nimport sendFiles from './actions/sendFiles';\nimport sendMessage from './actions/sendMessage';\nimport sendMessageBack from './actions/sendMessageBack';\nimport sendPostBack from './actions/sendPostBack';\nimport setDictateInterims from './actions/setDictateInterims';\nimport setDictateState from './actions/setDictateState';\nimport setLanguage from './actions/setLanguage';\nimport setNotification from './actions/setNotification';\nimport setSendBox from './actions/setSendBox';\nimport setSendBoxAttachments from './actions/setSendBoxAttachments';\nimport setSendTimeout from './actions/setSendTimeout';\nimport setSendTypingIndicator from './actions/setSendTypingIndicator';\nimport type { VoiceState } from './actions/setVoiceState';\nimport setVoiceState from './actions/setVoiceState';\nimport startDictate from './actions/startDictate';\nimport startSpeakingActivity from './actions/startSpeakingActivity';\nimport startVoiceRecording from './actions/startVoiceRecording';\nimport stopDictate from './actions/stopDictate';\nimport stopSpeakingActivity from './actions/stopSpeakingActivity';\nimport stopVoiceRecording from './actions/stopVoiceRecording';\nimport submitSendBox from './actions/submitSendBox';\nimport unmuteVoiceRecording from './actions/unmuteVoiceRecording';\nimport unregisterVoiceHandler from './actions/unregisterVoiceHandler';\nimport * as ActivityClientState from './constants/ActivityClientState';\nimport * as DictateState from './constants/DictateState';\nimport createStore, {\n withDevTools as createStoreWithDevTools,\n withOptions as createStoreWithOptions\n} from './createStore';\nimport getActivityLivestreamingMetadata from './utils/getActivityLivestreamingMetadata';\nimport getOrgSchemaMessage from './utils/getOrgSchemaMessage';\nimport onErrorResumeNext from './utils/onErrorResumeNext';\nimport getVoiceActivityRole from './utils/voiceActivity/getVoiceActivityRole';\nimport getVoiceActivityText from './utils/voiceActivity/getVoiceActivityText';\nimport isVoiceActivity from './utils/voiceActivity/isVoiceActivity';\nimport isVoiceTranscriptActivity from './utils/voiceActivity/isVoiceTranscriptActivity';\n\nexport {\n isForbiddenPropertyName,\n withResolvers,\n type PromiseWithResolvers\n} from '@msinternal/botframework-webchat-base/utils';\n\nexport {\n CLEAR_SUGGESTED_ACTIONS,\n default as clearSuggestedActions,\n clearSuggestedActionsActionSchema,\n type ClearSuggestedActionsAction\n} from './actions/clearSuggestedActions';\n\nexport {\n SET_SUGGESTED_ACTIONS,\n default as setSuggestedActions,\n setSuggestedActionsActionSchema,\n type SetSuggestedActionsAction\n} from './actions/setSuggestedActions';\n\nimport type { GlobalScopePonyfill } from './types/GlobalScopePonyfill';\nimport type { SendBoxAttachment } from './types/SendBoxAttachment';\nimport type { WebChatActivity } from './types/WebChatActivity';\nimport type { DirectLineActivity } from './types/external/DirectLineActivity';\nimport type { DirectLineAnimationCard } from './types/external/DirectLineAnimationCard';\nimport type { DirectLineAttachment } from './types/external/DirectLineAttachment';\nimport type { DirectLineAudioCard } from './types/external/DirectLineAudioCard';\nimport type { DirectLineCardAction } from './types/external/DirectLineCardAction';\nimport type { DirectLineHeroCard } from './types/external/DirectLineHeroCard';\nimport type { DirectLineJSBotConnection } from './types/external/DirectLineJSBotConnection';\nimport type { DirectLineOAuthCard } from './types/external/DirectLineOAuthCard';\nimport type { DirectLineReceiptCard } from './types/external/DirectLineReceiptCard';\nimport type { DirectLineSignInCard } from './types/external/DirectLineSignInCard';\nimport type { DirectLineSuggestedAction } from './types/external/DirectLineSuggestedAction';\nimport type { DirectLineThumbnailCard } from './types/external/DirectLineThumbnailCard';\nimport type { DirectLineVideoCard } from './types/external/DirectLineVideoCard';\nimport type { Observable } from './types/external/Observable';\n\n/** @deprecated */\nexport { singleToArray, type OneOrMany } from '@msinternal/botframework-webchat-base/utils';\n\nconst Constants = { ActivityClientState, DictateState };\n\nexport {\n connect,\n Constants,\n createStore,\n createStoreWithDevTools,\n createStoreWithOptions,\n disconnect,\n dismissNotification,\n emitTypingIndicator,\n getActivityLivestreamingMetadata,\n getOrgSchemaMessage,\n getVoiceActivityRole,\n getVoiceActivityText,\n isVoiceActivity,\n isVoiceTranscriptActivity,\n markActivity,\n muteVoiceRecording,\n onErrorResumeNext,\n postActivity,\n postVoiceActivity,\n registerVoiceHandler,\n sendEvent,\n sendFiles,\n sendMessage,\n sendMessageBack,\n sendPostBack,\n setDictateInterims,\n setDictateState,\n setLanguage,\n setNotification,\n setSendBox,\n setSendBoxAttachments,\n setSendTimeout,\n setSendTypingIndicator,\n setVoiceState,\n startDictate,\n startSpeakingActivity,\n startVoiceRecording,\n stopDictate,\n stopSpeakingActivity,\n stopVoiceRecording,\n submitSendBox,\n unmuteVoiceRecording,\n unregisterVoiceHandler\n};\n\nexport type {\n DirectLineActivity,\n DirectLineAnimationCard,\n DirectLineAttachment,\n DirectLineAudioCard,\n DirectLineCardAction,\n DirectLineHeroCard,\n DirectLineJSBotConnection,\n DirectLineOAuthCard,\n DirectLineReceiptCard,\n DirectLineSignInCard,\n DirectLineSuggestedAction,\n DirectLineThumbnailCard,\n DirectLineVideoCard,\n GlobalScopePonyfill,\n Observable,\n SendBoxAttachment,\n VoiceHandler,\n VoiceState,\n WebChatActivity\n};\n\n// #region Build info\nimport buildInfo from './buildInfo';\n\nconst { object: buildInfoObject, version } = buildInfo;\n\nexport { buildInfoObject as buildInfo, version };\n// #endregion\n"],"mappings":"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","names":["CONNECT","CONNECT_FULFILLED","CONNECT_FULFILLING","CONNECT_PENDING","CONNECT_REJECTED","CONNECT_STILL_PENDING","connect","directLine","userID","username","DISCONNECT","DISCONNECT_PENDING","DISCONNECT_REJECTED","DISCONNECT_FULFILLED","disconnect","DISMISS_NOTIFICATION","dismissNotification","id","dismissNotification_default","EMIT_TYPING_INDICATOR","emitTypingIndicator","MARK_ACTIVITY","markActivity","activityID","name","value","markActivity_default","VOICE_MUTE_RECORDING","muteVoiceRecording","muteVoiceRecording_default","POST_ACTIVITY","POST_ACTIVITY_FULFILLED","POST_ACTIVITY_IMPEDED","POST_ACTIVITY_PENDING","POST_ACTIVITY_REJECTED","postActivity","activity","method","postActivity_default","VOICE_POST_ACTIVITY","postVoiceActivity","activity","postVoiceActivity_default","VOICE_REGISTER_HANDLER","registerVoiceHandler","id","voiceHandler","registerVoiceHandler_default","SEND_EVENT","sendEvent","name","value","SEND_FILES","sendFiles","files","SEND_MESSAGE","sendMessage","text","method","attachments","channelData","SEND_MESSAGE_BACK","sendMessageback","value","text","displayText","SEND_POST_BACK","sendPostback","value","SET_DICTATE_INTERIMS","setDictateInterims","dictateInterims","SET_DICTATE_STATE","setDictateState","dictateState","SET_LANGUAGE","setLanguage","language","random","uniqueID","SET_NOTIFICATION","setNotification","alt","data","id","level","message","uniqueID","SET_SEND_BOX","setSendBox","text","SET_SEND_BOX_ATTACHMENTS","setSendBoxAttachments","attachments","SET_SEND_TIMEOUT","setSendTimeout","sendTimeout","SET_SEND_TYPING_INDICATOR","setSendTypingIndicator","value","VOICE_SET_STATE","setVoiceState","voiceState","setVoiceState_default","START_DICTATE","startDictate","START_SPEAKING_ACTIVITY","startSpeakingActivity","VOICE_START_RECORDING","startVoiceRecording","startVoiceRecording_default","STOP_DICTATE","stopDictate","STOP_SPEAKING_ACTIVITY","stopSpeakingActivity","VOICE_STOP_RECORDING","stopVoiceRecording","stopVoiceRecording_default","SUBMIT_SEND_BOX","submitSendBox","method","channelData","VOICE_UNMUTE_RECORDING","unmuteVoiceRecording","unmuteVoiceRecording_default","VOICE_UNREGISTER_HANDLER","unregisterVoiceHandler","id","unregisterVoiceHandler_default","ActivityClientState_exports","__export","SENDING","SEND_FAILED","SENT","DictateState_exports","__export","DICTATING","IDLE","STARTING","STOPPING","WILL_START","composeWithDevTools","applyMiddleware","createReduxStore","createSagaMiddleware","SAGA_ERROR","sagaError","combineReducers","g","f","h","i","j","k","m","b","a","l","c","e","d","n","require_global_this","__commonJSMin","exports","module","check","it","require_fails","exec","require_function_bind_native","fails","S","test","require_function_apply","NATIVE_BIND","er","FunctionPrototype","apply","call","require_function_uncurry_this","uncurryThisWithBind","fn","require_classof_raw","uncurryThis","b","toString","stringSlice","require_function_uncurry_this_clause","classofRaw","tr","require_is_callable","documentAll","argument","require_descriptors","require_function_call","require_object_property_is_enumerable","$propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","V","descriptor","require_create_property_descriptor","bitmap","value","require_indexed_object","classof","$Object","split","require_is_null_or_undefined","require_require_object_coercible","isNullOrUndefined","ir","$TypeError","require_to_indexed_object","IndexedObject","Vt","requireObjectCoercible","Sr","require_is_object","isCallable","q","require_path","require_get_built_in","path","nr","globalThis","d","aFunction","variable","namespace","method","require_object_is_prototype_of","require_environment_user_agent","navigator","userAgent","require_environment_v8_version","$","process","Deno","versions","v8","match","version","require_symbol_constructor_detection","V8_VERSION","oe","$String","symbol","require_use_symbol_as_uid","NATIVE_SYMBOL","ae","require_is_symbol","getBuiltIn","C","isPrototypeOf","Ir","USE_SYMBOL_AS_UID","ue","$Symbol","require_try_to_string","require_a_callable","tryToString","or","require_get_method","aCallable","x","P","func","require_ordinary_to_primitive","T","isObject","I","input","pref","val","require_is_pure","require_define_global_property","defineProperty","key","require_shared_store","IS_PURE","G","defineGlobalProperty","Ti","SHARED","store","require_shared","ar","require_to_object","require_has_own_property","toObject","Pi","hasOwnProperty","require_uid","id","postfix","require_well_known_symbol","shared","fe","hasOwn","A","uid","pe","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","name","require_to_primitive","isSymbol","se","getMethod","Pr","ordinaryToPrimitive","qi","wellKnownSymbol","g","TO_PRIMITIVE","exoticToPrim","result","require_to_property_key","toPrimitive","Di","require_document_create_element","document","EXISTS","require_ie8_dom_define","DESCRIPTORS","w","createElement","he","require_object_get_own_property_descriptor","propertyIsEnumerableModule","$t","createPropertyDescriptor","Er","toIndexedObject","ee","toPropertyKey","ye","IE8_DOM_DEFINE","me","$getOwnPropertyDescriptor","O","require_is_forced","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","require_function_bind_context","Qr","bind","that","require_v8_prototype_define_bug","require_an_object","require_object_define_property","V8_PROTOTYPE_DEFINE_BUG","Yi","anObject","D","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","Attributes","current","require_create_non_enumerable_property","definePropertyModule","cr","object","require_export","Hr","Gi","be","sr","createNonEnumerableProperty","vr","wrapConstructor","NativeConstructor","Wrapper","a","c","options","source","TARGET","GLOBAL","STATIC","PROTO","nativeSource","target","targetPrototype","FORCED","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","require_add_to_unscopables","require_does_not_exceed_safe_integer","MAX_SAFE_INTEGER","require_math_trunc","ceil","floor","n","require_to_integer_or_infinity","trunc","an","number","require_to_length","toIntegerOrInfinity","xr","min","len","require_length_of_array_like","toLength","cn","obj","require_to_absolute_index","max","index","length","integer","require_create_property","require_es_array_to_spliced","_","addToUnscopables","en","doesNotExceedSafeInteger","nn","lengthOfArrayLike","Se","toAbsoluteIndex","createProperty","dn","$Array","start","deleteCount","actualStart","argumentsLength","k","insertCount","actualDeleteCount","newLen","require_entry_unbind","require_to_spliced","Re","entryUnbind","qn","parent","mn","require_esnext_array_to_spliced","Tn","On","En","In","require_environment","userAgentStartsWith","require_environment_is_node","ENVIRONMENT","Pe","require_define_built_in","require_function_uncurry_this_accessor","require_is_possible_prototype","require_a_possible_prototype","isPossiblePrototype","Mn","require_object_set_prototype_of","uncurryThisAccessor","An","aPossiblePrototype","Un","CORRECT_SETTER","setter","proto","require_to_string_tag_support","TO_STRING_TAG","require_classof","TO_STRING_TAG_SUPPORT","Nr","CORRECT_ARGUMENTS","tryGet","tag","require_object_to_string","Ar","require_set_to_string_tag","Wn","TAG","SET_METHOD","require_define_built_in_accessor","require_set_species","defineBuiltInAccessor","Hn","SPECIES","CONSTRUCTOR_NAME","Constructor","require_an_instance","Prototype","require_inspect_source","functionToString","require_is_constructor","inspectSource","_e","noop","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","require_a_constructor","isConstructor","so","require_species_constructor","aConstructor","vo","defaultConstructor","require_html","require_array_slice","require_validate_arguments_length","passed","required","require_environment_is_ios","require_task","html","qo","arraySlice","mo","validateArgumentsLength","To","IS_IOS","Ne","IS_NODE","Cr","set","clear","Dispatch","Function","MessageChannel","String","counter","queue","ONREADYSTATECHANGE","$location","defer","channel","port","run","runner","eventListener","event","globalPostMessageDefer","handler","args","require_safe_get_built_in","require_queue","Queue","item","entry","tail","next","require_environment_is_ios_pebble","require_environment_is_webos_webkit","require_microtask","safeGetBuiltIn","Ao","macrotask","$e","Ge","IS_IOS_PEBBLE","Uo","IS_WEBOS_WEBKIT","Lo","MutationObserver","Promise","microtask","notify","toggle","node","promise","then","flush","error","require_host_report_errors","require_perform","require_weak_map_basic_detection","WeakMap","require_shared_key","keys","require_hidden_keys","require_internal_state","NATIVE_WEAK_MAP","Zo","sharedKey","ta","hiddenKeys","na","OBJECT_ALREADY_INITIALIZED","TypeError","get","has","enforce","getterFor","TYPE","state","metadata","STATE","require_promise_native_constructor","require_promise_constructor_detection","NativePromiseConstructor","z","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","resolve","FakePromise","constructor","require_new_promise_capability","PromiseCapability","reject","$$resolve","$$reject","require_es_promise_constructor","defineBuiltIn","we","setPrototypeOf","Ln","setToStringTag","zn","setSpecies","Zn","anInstance","eo","speciesConstructor","po","task","Yo","hostReportErrors","Jo","perform","Fr","InternalStateModule","sa","PromiseConstructorDetection","J","newPromiseCapabilityModule","U","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","isThenable","callReaction","reaction","ok","domain","exited","onHandleUnhandled","isReject","reactions","onUnhandled","dispatchEvent","reason","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","require_iterators","require_is_array_iterator_method","Iterators","ut","ITERATOR","ArrayPrototype","require_get_iterator_method","require_get_iterator","getIteratorMethod","st","usingIterator","iteratorMethod","require_iterator_close","iterator","kind","innerResult","innerError","require_iterate","isArrayIteratorMethod","Ua","getIterator","Ga","iteratorClose","Wa","Result","stopped","ResultPrototype","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","step","stop","condition","$iterator","callFn","require_check_correctness_of_iteration","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","require_promise_statics_incorrect_iteration","checkCorrectnessOfIteration","ru","require_es_promise_all","iterate","ct","PROMISE_STATICS_INCORRECT_ITERATION","lt","capability","$promiseResolve","values","remaining","alreadyCalled","require_es_promise_catch","require_es_promise_race","require_es_promise_reject","r","capabilityReject","require_promise_resolve","promiseCapability","require_es_promise_resolve","promiseResolve","su","PromiseConstructorWrapper","CHECK_WRAPPER","require_es_promise","Da","tu","nu","ou","au","lu","require_es_promise_with_resolvers","require_with_resolvers","fu","dt","promiseWithResolvers","yu","require_esnext_promise_with_resolvers","hu","mu","Tu","gu","kebabCase","ofs","setMetaTag","contentMap","meta","BuildInfo","#name","#map","#object","#commit","createBuildInfo","createBuildInfo_default","FORBIDDEN_PROPERTY_NAMES","isForbiddenPropertyName","propertyName","OBJECT_PROTOTYPE","EMPTY_ARRAY","singleToArray","singleOrArray","import_to_spliced","n","Pn","toSpliced","array","start","deleteCount","items","wn","coreJSToSpliced","import_with_resolvers","Su","withResolvers","Iu","coreJSWithResolvers","updateIn","v4","DELETE_ACTIVITY","INCOMING_ACTIVITY","incomingActivity","activity","incomingActivity_default","SENDING","SEND_FAILED","SENT","updateIn","DIRECT_LINE_PLACEHOLDER_URL","patchActivity","activity","Date","updateIn","contentUrl","channelData","setReceivedAtInActivity","computePartListTimestamp","partList","max","logicalTimestamp","yieldSessionActivities","session","activityMap","lastEntry","activityEntry","computeSortedActivities","temporalState","howToGroupingMap","livestreamSessionMap","sortedChatHistoryList","sortedEntry","howToGrouping","howToPartEntry","deleteActivityByLocalId","state","localId","nextActivityIdToLocalIdMap","nextActivityMap","nextClientActivityIdToLocalIdMap","nextHowToGroupingMap","nextLivestreamSessionMap","nextSortedChatHistoryList","entry","howToGroupingId","partIndex","part","nextPartList","nextHowToGroupingMapEntry","computePartListTimestamp","sortedChatHistoryListIndex","livestreamSessionId","livestreamSessionMapEntry","activityIndex","activity","nextActivities","lastActivity","finalActivity","logicalTimestamp","nextLivestreamSessionMapEntry","changed","nextSortedActivities","computeSortedActivities","queryLocalIdAByActivityId","state","activityId","queryLocalIdAByClientActivityId","state","clientActivityId","check","parse","pipe","string","channelDataNameSchema","pipe","string","check","value","updateActivityChannelDataInternalSkipNameCheck","state","activityLocalId","name","activityEntry","nextActivity","nextActivityMap","nextSortedActivities","existingActivityIndex","activity","getLocalIdFromActivity","updateActivityChannelData","parse","updateActivityChannelData_default","any","array","check","findItem","integer","is","literal","minValue","nonEmpty","number","object","optional","pipe","safeParse","string","transform","undefinedable","union","parse","getOrgSchemaMessage","graph","entity","parse","k","EMPTY_ARRAY","streamSequenceSchema","pipe","number","integer","minValue","eitherChannelDataOrEntities","activitySchema","metadataSchema","metadataInEntitiesSchema","object","literal","union","array","any","findItem","value","is","check","transform","entities","livestreamingActivitySchema","optional","string","undefinedable","nonEmpty","getActivityLivestreamingMetadata","activity","result","safeParse","output","livestreamMetadata","sessionId","getOrgSchemaMessage","getLogicalTimestamp","activity","ponyfill","sequenceId","timestamp","getPartGroupingMetadataMap","activity","metadataMap","message","getOrgSchemaMessage","item","firstPosition","type","getPartGroupingMetadataMap_default","insertSorted","sortedArray","item","compareFn","indexToInsert","i","xn","POSITION_INCREMENT","INITIAL_STATE","upsert","ponyfill","state","activity","activityLocalId","getLocalIdFromActivity","logicalTimestamp","getLogicalTimestamp","activityLivestreamingMetadata","getActivityLivestreamingMetadata","sessionId","existingSession","finalized","getPartGroupingMetadataMap_default","nextSessionEntry","insertSorted","x","y","newIndexInSession","entry","successorInSession","insertIndex","i","prevLastSessionActivity","prevPosition","queryPositionFromActivity","nextSiblingPosition","newPosition","positionedActivity","setPositionInActivity","nextActivityIdToLocalIdMap","nextActivityMap","clientActivityID","nextClientActivityIdToLocalIdMap","nextLivestreamSessionMap","xn","nextHowToGroupingMap","nextSortedChatHistoryList","sortedChatHistoryListEntry","livestreamSessionMapEntry","nextLivestreamSessionMapEntry","howToGrouping","howToGroupingId","howToGroupingPosition","partGroupingMapEntry","nextPartList","existingPartEntryIndex","nextPartEntry","nextPartGroupingEntry","computePartListTimestamp","existingSortedChatHistoryListEntryIndex","xLogicalTimestamp","yLogicalTimestamp","xActivity","yActivity","xLocalTimestamp","yLocalTimestamp","nextSortedActivities","computeSortedActivities","lastPosition","index","nextSortedActivitiesLength","currentActivity","currentActivityId","hasNextSibling","position","nextPosition","activityMapEntry","nextActivityEntry","upsert_default","DEFAULT_STATE","INITIAL_STATE","getClientActivityID","activity","createGroupedActivitiesReducer","ponyfill","restrictedStoreDebugAPI","state","action","DELETE_ACTIVITY","localId","queryLocalIdAByActivityId","deleteActivityByLocalId","MARK_ACTIVITY","updateActivityChannelData_default","POST_ACTIVITY_PENDING","patchActivity","setReceivedAtInActivity","generateLocalIdInActivity","updateIn","SENDING","setSendStatusInOutgoingActivity","upsert_default","POST_ACTIVITY_IMPEDED","queryLocalIdAByClientActivityId","updateActivityChannelDataInternalSkipNameCheck","SEND_FAILED","POST_ACTIVITY_REJECTED","POST_ACTIVITY_FULFILLED","existingActivity","SENT","setLocalIdInActivity","setPositionInActivity","getPositionFromActivity","INCOMING_ACTIVITY","id","clientActivityID","existingLocalId","getLocalIdFromActivity","existingSendStatus","querySendStatusFromOutgoingActivity","v4","createGroupedActivitiesReducer_default","combineActivitiesReducer","ponyfill","restrictedStoreDebugAPI","existingSlicedReducer","groupedActivitiesReducer","createGroupedActivitiesReducer_default","state","action","_activities","groupedActivities","existingState","nextState","nextGroupedActivities","existingStateEntries","nextStateEntries","key","value","mt","RECONNECT","RECONNECT_FULFILLED","RECONNECT_FULFILLING","RECONNECT_PENDING","RECONNECT_REJECTED","DEFAULT_STATE","connectivityStatus","state","type","meta","CONNECT_PENDING","RECONNECT_PENDING","CONNECT_FULFILLED","RECONNECT_FULFILLED","CONNECT_REJECTED","CONNECT_STILL_PENDING","DISCONNECT_FULFILLED","SAGA_ERROR","createInternalReducer","ponyfill","updateIn","DEFAULT_STATE","createNotificationsReducer","Date","state","action","type","now","DISMISS_NOTIFICATION","updateIn","SAGA_ERROR","SET_NOTIFICATION","alt","data","id","level","message","mt","notification","updateIn","DEFAULT_STATE","createLastTypingReducer","Date","state","payload","type","INCOMING_ACTIVITY","POST_ACTIVITY_PENDING","id","name","role","activityType","now","updateIn","at","DEFAULT_STATE","dictateInterims","state","payload","type","SET_DICTATE_INTERIMS","DEFAULT_STATE","dictateState","state","payload","type","SET_DICTATE_STATE","START_DICTATE","STOP_DICTATE","DEFAULT_STATE","language","state","payload","type","SET_LANGUAGE","CONNECTION_STATUS_UPDATE","connectionStatusUpdate","connectionStatus","DEFAULT_STATE","readyState","state","payload","type","CONNECTION_STATUS_UPDATE","SET_REFERENCE_GRAMMAR_ID","setReferenceGrammarID","referenceGrammarID","DEFAULT_STATE","referenceGrammarID","state","payload","type","SET_REFERENCE_GRAMMAR_ID","DEFAULT_STATE","sendBoxAttachments","state","payload","type","SET_SEND_BOX_ATTACHMENTS","DEFAULT_STATE","sendBoxValue","state","payload","type","SET_SEND_BOX","DEFAULT_STATE","sendTimeout","state","payload","type","SET_SEND_TIMEOUT","DEFAULT_STATE","sendTypingIndicator","state","payload","type","SET_SEND_TYPING_INDICATOR","shouldSpeakIncomingActivity","state","type","START_SPEAKING_ACTIVITY","STOP_SPEAKING_ACTIVITY","parse","DEFAULT_STATE","suggestedActions","state","action","SET_RAW_STATE","parsedAction","parse","setRawStateActionSchema","suggestedActions_default","parse","DEFAULT_STATE","suggestedActionsOriginActivity","state","action","SET_RAW_STATE","parsedAction","parse","setRawStateActionSchema","suggestedActionsOriginActivity_default","DEFAULT_STATE","voiceActivity","state","action","VOICE_MUTE_RECORDING","VOICE_REGISTER_HANDLER","newHandlers","VOICE_UNREGISTER_HANDLER","VOICE_SET_STATE","VOICE_START_RECORDING","VOICE_STOP_RECORDING","VOICE_UNMUTE_RECORDING","createReducer","ponyfill","restrictedStoreDebugAPI","combineActivitiesReducer","combineReducers","connectivityStatus","dictateInterims","dictateState","createInternalReducer","language","createNotificationsReducer","readyState","referenceGrammarID","sendBoxAttachments","sendBoxValue","sendTimeout","sendTypingIndicator","shouldSpeakIncomingActivity","suggestedActions_default","suggestedActionsOriginActivity_default","createLastTypingReducer","voiceActivity","fork","take","takeEvery","safeParse","custom","function_","is","literal","object","pipe","readonly","REGISTER_ACTION_SINK","registerActionSinkActionSchema","value","custom","function_","is","literal","object","pipe","readonly","UNREGISTER_ACTION_SINK","unregisterActionSinkActionSchema","value","actionSinkSaga","takeEvery","type","REGISTER_ACTION_SINK","action","result","safeParse","registerActionSinkActionSchema","sink","take","UNREGISTER_ACTION_SINK","unregisterActionSinkActionSchema","put","takeEvery","array","custom","is","literal","object","optional","pipe","readonly","EMPTY_ARRAY","SET_SUGGESTED_ACTIONS","setSuggestedActionsActionSchema","value","setSuggestedActions","suggestedActions","originActivity","call","cancel","fork","take","whileConnectedEffect","fn","args","call","userID","username","directLine","take","CONNECT_FULFILLING","RECONNECT_FULFILLING","task","fork","DISCONNECT_PENDING","RECONNECT_PENDING","cancel","clearSuggestedActions","put","setSuggestedActions","clearSuggestedActionsOnPostActivity","takeEvery","payload","type","POST_ACTIVITY_PENDING","clearSuggestedActionsOnPostActivitySaga","whileConnectedEffect","call","put","takeLatest","createPromiseQueue","promiseWithResolvers","queue","value","resolve","Ru","CONNECTIVITY_STATUS_NOTIFICATION_ID","subscribeToPromiseQueue","observable","push","shift","createPromiseQueue","subscription","connectionStatusToNotification","directLine","unsubscribe","reconnecting","call","put","setNotification","connectionStatusToNotificationSaga_default","takeLatest","CONNECT","put","call","observeEachEffect","observable","saga","call","queue","createPromiseQueue","subscription","result","observeConnectionStatus","directLine","observeEachEffect","connectionStatus","put","connectionStatusUpdate","setReferenceGrammarID","connectionStatusUpdateSaga","whileConnectedEffect","call","cancel","cancelled","fork","put","race","take","jwtDecode","fork","put","forkPutEffect","actions","action","UPDATE_CONNECTION_STATUS","updateConnectionStatus","connectionStatus","CONNECTING","ONLINE","UNINITIALIZED","randomUserID","uniqueID","observeAndPutConnectionStatusUpdate","directLine","connectionStatusQueue","createPromiseQueue","connectionStatusSubscription","connectionStatus","call","put","updateConnectionStatus","rectifyUserID","userIDFromAction","token","userIDFromToken","jwtDecode","result","connectSaga","activitySubscription","unsubscribeActivity","take","UPDATE_CONNECTION_STATUS","err","cancelled","reconnectSaga","runAsyncEffect","type","meta","payload","callEffectFactory","forkPutEffect","takeDisconnectAsError","DISCONNECT","runAsyncEffectUntilDisconnect","baseAction","race","connectSaga_default","username","CONNECT","updateConnectionStatusTask","fork","rectifiedUserID","disconnectMeta","endDirectLine","RECONNECT","error","cancel","DISCONNECT_PENDING","DISCONNECT_FULFILLED","call","put","race","take","sleep","interval","ponyfill","resolve","SLOW_CONNECTION_AFTER","detectSlowConnectionSaga","ponyfill","take","CONNECT_PENDING","RECONNECT_PENDING","race","CONNECT_FULFILLED","RECONNECT_FULFILLED","CONNECT_REJECTED","RECONNECT_REJECTED","call","sleep","put","CONNECT_STILL_PENDING","put","takeEvery","postTypingActivity","put","postActivity_default","emitTypingActivityToPostActivity","takeEvery","type","EMIT_TYPING_INDICATOR","emitTypingActivityToPostActivitySaga","whileConnectedEffect","put","select","takeEvery","activities","of","predicate","state","ofType","targetType","of","type","activities_default","activities","speakingActivity","activity","markAllAsSpoken","speakingActivities","select","of","speakingActivity","activity","put","markActivity_default","markAllAsSpokenOnStopSpeakActivitySaga","takeEvery","STOP_SPEAKING_ACTIVITY","put","select","updateIn","QUEUE_INCOMING_ACTIVITY","queueIncomingActivity","activity","check","is","literal","looseObject","object","pipe","string","VoiceActivitySchema","value","isVoiceActivity","activity","isVoiceActivity_default","check","is","literal","object","picklist","pipe","string","VoiceTranscriptActivitySchema","value","isVoiceTranscriptActivity","activity","isVoiceTranscriptActivity_default","PASSTHRU_FN","value","patchActivityWithFromRole","activity","userID","updateIn","patchNullAsUndefined","name","patchFromName","channelId","from","observeActivity","directLine","observeEachEffect","isVoiceActivity_default","isVoiceTranscriptActivity_default","recording","voiceHandlers","select","state","audioContent","handler","put","setVoiceState_default","queueIncomingActivity","observeActivitySaga","whileConnectedEffect","all","call","cancelled","put","race","select","take","takeEvery","language_default","language","sendTimeout_default","sendTimeout","pad","value","count","stringValue","dateToLocaleISOString","date","timezoneOffset","timezoneSign","absoluteTimezoneOffset","deleteKey","map","keys","nextMap","key","mt","call","observeOnceEffect","observable","subscription","resolve","reject","HARD_SEND_TIMEOUT","postActivity","directLine","userID","username","numActivitiesPosted","method","activity","ponyfill","attachments","clientActivityID","uniqueID","locale","select","language_default","localTimeZone","now","outgoingActivity","deleteKey","dateToLocaleISOString","contentType","contentUrl","name","thumbnailUrl","setSendStatusInOutgoingActivity","meta","put","POST_ACTIVITY_PENDING","echoed","echoBackCall","call","take","INCOMING_ACTIVITY","sendTimeout","sendTimeout_default","echoBack","race","all","observeOnceEffect","sleep","POST_ACTIVITY_IMPEDED","POST_ACTIVITY_FULFILLED","err","POST_ACTIVITY_REJECTED","cancelled","postActivitySaga","whileConnectedEffect","takeEvery","POST_ACTIVITY","action","call","cancelled","fork","put","race","select","take","activityFromBot_default","activity","REPLY_TIMEOUT","takeEveryAndSelect","actionType","selector","fn","cancelled","action","take","state","select","fork","waitForActivityId","replyToId","initialActivities","activities","activity","INCOMING_ACTIVITY","activities_default","queueIncomingActivity","userID","ponyfill","QUEUE_INCOMING_ACTIVITY","initialBotActivities","role","race","call","sleep","put","incomingActivity_default","messageActivities","ofType","lastMessageActivity","activityFromBot_default","actions","to","suggestedActions","setSuggestedActions","queueIncomingActivitySaga","whileConnectedEffect","put","takeEvery","postActivityWithEvent","name","value","put","postActivity_default","sendEventToPostActivity","takeEvery","payload","type","SEND_EVENT","sendEventToPostActivitySaga","whileConnectedEffect","put","takeEvery","mime","getType","mime","postActivityWithFiles","files","put","postActivity_default","name","thumbnail","url","size","sendFilesToPostActivity","takeEvery","payload","type","SEND_FILES","sendFilesToPostActivitySaga","whileConnectedEffect","put","takeEvery","postActivityWithMessageBack","displayText","text","value","put","postActivity_default","sendMessageBackToPostActivity","takeEvery","SEND_MESSAGE_BACK","sendMessageBackToPostActivitySaga","whileConnectedEffect","put","takeEvery","postActivityWithMessage","attachments","channelData","method","text","put","postActivity_default","blob","thumbnailURL","size","sendMessageToPostActivity","takeEvery","payload","type","SEND_MESSAGE","sendMessageToPostActivitySaga","whileConnectedEffect","put","takeEvery","postActivityWithPostBack","value","put","postActivity_default","sendPostBackToPostActivity","takeEvery","SEND_POST_BACK","sendPostBackToPostActivitySaga","whileConnectedEffect","call","cancel","put","select","take","takeLatest","sendTypingIndicator_default","sendTypingIndicator","SEND_INTERVAL","takeSendTypingIndicator","value","take","payload","type","SET_SEND_TYPING_INDICATOR","sendTypingIndicatorOnSetSendBox","_","ponyfill","Date","select","sendTypingIndicator_default","lastSend","task","takeLatest","SET_SEND_BOX","POST_ACTIVITY","interval","call","sleep","put","emitTypingIndicator","cancel","sendTypingIndicatorOnSetSendBoxSaga","whileConnectedEffect","put","select","takeEvery","speakableActivity","activity","dictateState_default","dictateState","shouldSpeakIncomingActivity_default","shouldSpeakIncomingActivity","speakActivityAndStartDictateOnIncomingActivityFromOthers","userID","takeEvery","payload","type","INCOMING_ACTIVITY","activity","shouldSpeakIncomingActivity","select","shouldSpeakIncomingActivity_default","dictateState","dictateState_default","shouldSpeak","speakableActivity","speak","put","markActivity_default","setDictateState","stopDictate","speakActivityAndStartDictateOnIncomingActivityFromOthersSaga","whileConnectedEffect","put","select","takeEvery","startDictateOnSpeakComplete","speakingActivities","select","of","speakingActivity","dictateState_default","put","startDictate","startDictateOnSpeakCompleteSaga","takeEvery","type","MARK_ACTIVITY","SET_DICTATE_STATE","put","select","takeEvery","startSpeakActivityOnPostActivity","takeEvery","type","POST_ACTIVITY_PENDING","meta","payload","select","dictateState_default","put","startSpeakingActivity","startSpeakActivityOnPostActivitySaga","whileConnectedEffect","put","select","takeEvery","stopDictateOnCardAction","takeEvery","payload","type","POST_ACTIVITY_PENDING","select","dictateState_default","put","stopDictate","stopDictateOnCardActionSaga","whileConnectedEffect","put","select","takeEvery","stopSpeakingActivityOnInput","takeEvery","payload","type","SET_SEND_BOX","POST_ACTIVITY_PENDING","SET_DICTATE_INTERIMS","meta","dictateState","select","dictateState_default","put","stopSpeakingActivity","stopSpeakingActivityOnInputSaga","whileConnectedEffect","put","select","takeEvery","sendBoxAttachments","sendBoxValue_default","sendBoxValue","submitSendBox","takeEvery","SUBMIT_SEND_BOX","channelData","method","attachments","select","sendBoxAttachments","sendBoxValue","sendBoxValue_default","put","sendMessage","setSendBox","setSendBoxAttachments","submitSendBoxSaga","whileConnectedEffect","select","takeEvery","postVoiceActivity","directLine","userID","username","activity","ponyfill","locale","select","language_default","localTimeZone","now","outgoingActivity","dateToLocaleISOString","observeOnceEffect","error","voiceActivitySaga","whileConnectedEffect","takeEvery","VOICE_POST_ACTIVITY","action","createSagas","ponyfill","fork","actionSinkSaga","clearSuggestedActionsOnPostActivitySaga","connectionStatusToNotificationSaga_default","connectionStatusUpdateSaga","connectSaga_default","detectSlowConnectionSaga","emitTypingActivityToPostActivitySaga","markAllAsSpokenOnStopSpeakActivitySaga","observeActivitySaga","postActivitySaga","voiceActivitySaga","queueIncomingActivitySaga","sendEventToPostActivitySaga","sendFilesToPostActivitySaga","sendMessageBackToPostActivitySaga","sendMessageToPostActivitySaga","sendPostBackToPostActivitySaga","sendTypingIndicatorOnSetSendBoxSaga","speakActivityAndStartDictateOnIncomingActivityFromOthersSaga","startDictateOnSpeakCompleteSaga","startSpeakActivityOnPostActivitySaga","stopDictateOnCardActionSaga","stopSpeakingActivityOnInputSaga","submitSendBoxSaga","createEnhancerAndSagaMiddleware","getStore","middlewares","sagaMiddleware","createSagaMiddleware","args","err","store","sagaError","applyMiddleware","withOptions","options","initialState","globalThisOrWindow","ponyfillFromOptions","ponyfill","restrictedStoreDebugAPI","RestrictedStoreDebugAPI","enhancer","createReduxStore","createReducer","composeWithDevTools","StoreDebugAPIRegistry_default","createSagas","createStore","withDevTools","onErrorResumeNext","fn","defaultValue","getVoiceActivityRole","activity","isVoiceTranscriptActivity_default","getVoiceActivityRole_default","getVoiceActivityText","activity","isVoiceTranscriptActivity_default","getVoiceActivityText_default","literal","object","pipe","readonly","CLEAR_SUGGESTED_ACTIONS","clearSuggestedActionsActionSchema","clearSuggestedActions","buildInfo","_u","buildInfo_default","Constants","ActivityClientState_exports","DictateState_exports","buildInfoObject","version","buildInfo_default"]}
|