botframework-webchat-api 4.18.0 → 4.18.1-hotfix.20260127.b53acdf

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (773) hide show
  1. package/decorator.js +1 -1
  2. package/dist/botframework-webchat-api.d.mts +196 -48
  3. package/dist/botframework-webchat-api.d.ts +1612 -0
  4. package/dist/botframework-webchat-api.decorator.d.mts +24 -30
  5. package/dist/botframework-webchat-api.decorator.d.ts +30 -0
  6. package/dist/botframework-webchat-api.decorator.js +3 -0
  7. package/dist/botframework-webchat-api.decorator.js.map +1 -0
  8. package/dist/botframework-webchat-api.decorator.mjs +1 -1
  9. package/dist/botframework-webchat-api.decorator.mjs.map +1 -1
  10. package/dist/botframework-webchat-api.internal.d.mts +18 -1
  11. package/dist/botframework-webchat-api.internal.d.ts +20 -0
  12. package/dist/botframework-webchat-api.internal.js +3 -0
  13. package/dist/botframework-webchat-api.internal.js.map +1 -0
  14. package/dist/botframework-webchat-api.internal.mjs +1 -1
  15. package/dist/botframework-webchat-api.internal.mjs.map +1 -1
  16. package/dist/botframework-webchat-api.js +3 -0
  17. package/dist/botframework-webchat-api.js.map +1 -0
  18. package/dist/botframework-webchat-api.mjs +1 -139
  19. package/dist/botframework-webchat-api.mjs.map +1 -1
  20. package/dist/chunk-2HABAU7C.mjs +3 -0
  21. package/dist/chunk-2HABAU7C.mjs.LEGAL.txt +0 -0
  22. package/dist/chunk-2HABAU7C.mjs.map +1 -0
  23. package/dist/chunk-45Z2ZE4M.js +3 -0
  24. package/dist/chunk-45Z2ZE4M.js.LEGAL.txt +0 -0
  25. package/dist/chunk-45Z2ZE4M.js.map +1 -0
  26. package/dist/chunk-7K3OK5TS.mjs +3 -0
  27. package/dist/chunk-7K3OK5TS.mjs.LEGAL.txt +0 -0
  28. package/dist/chunk-7K3OK5TS.mjs.map +1 -0
  29. package/dist/chunk-LXPINC7N.js +3 -0
  30. package/dist/chunk-LXPINC7N.js.LEGAL.txt +0 -0
  31. package/dist/chunk-LXPINC7N.js.map +1 -0
  32. package/dist/chunk-PRWGXTDA.mjs +3 -0
  33. package/dist/chunk-PRWGXTDA.mjs.LEGAL.txt +0 -0
  34. package/dist/chunk-PRWGXTDA.mjs.map +1 -0
  35. package/dist/chunk-WH7VSYKK.js +3 -0
  36. package/dist/chunk-WH7VSYKK.js.LEGAL.txt +0 -0
  37. package/dist/chunk-WH7VSYKK.js.map +1 -0
  38. package/dist/metafile-cjs.json +1 -0
  39. package/dist/metafile-esm.json +1 -1
  40. package/dist/types-BXPldIKA.d.mts +86 -0
  41. package/dist/types-BXPldIKA.d.ts +86 -0
  42. package/internal.js +1 -1
  43. package/package.json +59 -71
  44. package/src/StyleOptions.ts +123 -4
  45. package/src/decorator/ActivityBorder/ActivityBorderDecorator.tsx +48 -0
  46. package/src/decorator/ActivityBorder/private/ActivityBorderDecoratorMiddleware.ts +51 -0
  47. package/src/decorator/ActivityBorder/types.ts +1 -0
  48. package/src/decorator/ActivityGrouping/ActivityGroupingDecorator.tsx +31 -0
  49. package/src/decorator/ActivityGrouping/private/ActivityGroupingDecoratorMiddleware.ts +38 -0
  50. package/src/decorator/ActivityGrouping/types.ts +1 -0
  51. package/src/decorator/DecoratorComposer.tsx +22 -0
  52. package/src/decorator/internal/InternalDecoratorComposer.tsx +61 -0
  53. package/src/decorator/internal/LowPriorityDecoratorComposer.tsx +19 -0
  54. package/src/decorator/private/DecoratorComposerContext.ts +16 -0
  55. package/src/decorator/private/PassthroughFallback.tsx +12 -0
  56. package/src/decorator/private/templateMiddleware.test.tsx +5 -1
  57. package/src/decorator/private/templateMiddleware.ts +11 -9
  58. package/src/decorator/types.ts +15 -0
  59. package/src/decorator.ts +16 -0
  60. package/src/defaultStyleOptions.ts +26 -5
  61. package/src/hooks/Composer.tsx +59 -45
  62. package/src/hooks/index.ts +5 -1
  63. package/src/hooks/internal/SendBoxMiddleware.ts +3 -1
  64. package/src/hooks/internal/SendBoxToolbarMiddleware.ts +3 -1
  65. package/src/hooks/internal/Tracker.ts +1 -1
  66. package/src/hooks/internal/WebChatAPIContext.ts +12 -5
  67. package/src/hooks/middleware/concatMiddleware.spec.js +20 -0
  68. package/src/hooks/middleware/concatMiddleware.ts +6 -5
  69. package/src/hooks/private/reduceIterable.spec.ts +0 -2
  70. package/src/hooks/useActiveTyping.ts +3 -2
  71. package/src/hooks/useDisabled.ts +8 -2
  72. package/src/hooks/useSuggestedActions.ts +17 -4
  73. package/src/hooks/useUIState.ts +18 -0
  74. package/src/hooks/validation/uiState.parseUIState.spec.ts +21 -0
  75. package/src/hooks/validation/uiState.ts +10 -0
  76. package/src/internal.ts +3 -1
  77. package/src/localization/ar-SA.json +20 -16
  78. package/src/localization/bg-BG.json +20 -16
  79. package/src/localization/ca-ES.json +20 -16
  80. package/src/localization/cs-CZ.json +20 -16
  81. package/src/localization/da-DK.json +20 -16
  82. package/src/localization/de-DE.json +20 -16
  83. package/src/localization/el-GR.json +20 -16
  84. package/src/localization/en-US.json +21 -19
  85. package/src/localization/es-ES.json +20 -16
  86. package/src/localization/et-EE.json +20 -16
  87. package/src/localization/eu-ES.json +20 -16
  88. package/src/localization/fi-FI.json +20 -16
  89. package/src/localization/fr-FR.json +20 -16
  90. package/src/localization/gl-ES.json +20 -16
  91. package/src/localization/he-IL.json +20 -16
  92. package/src/localization/hi-IN.json +20 -16
  93. package/src/localization/hr-HR.json +20 -16
  94. package/src/localization/hu-HU.json +20 -16
  95. package/src/localization/id-ID.json +20 -16
  96. package/src/localization/it-IT.json +20 -16
  97. package/src/localization/ja-JP.json +20 -16
  98. package/src/localization/kk-KZ.json +20 -16
  99. package/src/localization/ko-KR.json +20 -16
  100. package/src/localization/lt-LT.json +20 -16
  101. package/src/localization/lv-LV.json +20 -16
  102. package/src/localization/ms-MY.json +20 -16
  103. package/src/localization/nb-NO.json +20 -16
  104. package/src/localization/nl-NL.json +20 -16
  105. package/src/localization/pl-PL.json +20 -16
  106. package/src/localization/pt-BR.json +20 -16
  107. package/src/localization/pt-PT.json +20 -16
  108. package/src/localization/ro-RO.json +20 -16
  109. package/src/localization/ru-RU.json +20 -16
  110. package/src/localization/sk-SK.json +20 -16
  111. package/src/localization/sl-SI.json +20 -16
  112. package/src/localization/sr-Cyrl-CS.json +20 -16
  113. package/src/localization/sr-Latn-CS.json +20 -16
  114. package/src/localization/sv-SE.json +20 -16
  115. package/src/localization/th-TH.json +20 -16
  116. package/src/localization/tr-TR.json +20 -16
  117. package/src/localization/uk-UA.json +20 -16
  118. package/src/localization/vi-VN.json +20 -16
  119. package/src/localization/yue.json +1 -16
  120. package/src/localization/zh-CN.json +22 -18
  121. package/src/localization/zh-HK.json +20 -16
  122. package/src/localization/zh-TW.json +20 -16
  123. package/src/normalizeStyleOptions.ts +45 -0
  124. package/src/providers/ActivityKeyer/ActivityKeyerComposer.tsx +9 -26
  125. package/src/providers/ActivityKeyer/private/someIterable.spec.ts +0 -2
  126. package/src/providers/ActivitySendStatus/ActivitySendStatusComposer.tsx +2 -2
  127. package/src/providers/ActivityTyping/ActivityTypingComposer.tsx +144 -59
  128. package/src/providers/ActivityTyping/private/useReduceActivities.spec.tsx +231 -0
  129. package/src/providers/ActivityTyping/private/useReduceActivities.ts +48 -0
  130. package/src/providers/GroupActivities/GroupActivitiesComposer.tsx +115 -0
  131. package/src/providers/GroupActivities/private/GroupActivitiesContext.ts +23 -0
  132. package/src/providers/GroupActivities/private/createDefaultGroupActivitiesMiddleware.ts +93 -0
  133. package/src/providers/GroupActivities/private/isGroupingValid.ts +41 -0
  134. package/src/providers/GroupActivities/private/useGroupActivitiesContext.ts +6 -0
  135. package/src/providers/GroupActivities/useGroupActivities.ts +20 -0
  136. package/src/providers/GroupActivities/useGroupActivitiesByName.ts +17 -0
  137. package/src/tsconfig.json +1 -5
  138. package/src/types/AttachmentForScreenReaderMiddleware.ts +9 -2
  139. package/src/types/AvatarMiddleware.ts +5 -1
  140. package/src/types/CardActionMiddleware.ts +2 -0
  141. package/src/types/ComponentMiddleware.ts +1 -1
  142. package/src/types/GroupActivitiesMiddleware.ts +7 -11
  143. package/src/utils/validateProps.spec.ts +74 -0
  144. package/src/utils/validateProps.ts +56 -0
  145. package/dist/chunk-2S76JUVM.mjs +0 -3
  146. package/dist/chunk-2S76JUVM.mjs.map +0 -1
  147. package/dist/chunk-J6D5YEY6.mjs +0 -3
  148. package/dist/chunk-J6D5YEY6.mjs.map +0 -1
  149. package/dist/chunk-ZAMHKQQC.mjs +0 -3
  150. package/dist/chunk-ZAMHKQQC.mjs.map +0 -1
  151. package/lib/StyleOptions.d.ts +0 -697
  152. package/lib/StyleOptions.d.ts.map +0 -1
  153. package/lib/StyleOptions.js +0 -2
  154. package/lib/decorator/index.d.ts +0 -5
  155. package/lib/decorator/index.d.ts.map +0 -1
  156. package/lib/decorator/index.js +0 -28
  157. package/lib/decorator/private/ActivityBorderDecoratorMiddleware.d.ts +0 -27
  158. package/lib/decorator/private/ActivityBorderDecoratorMiddleware.d.ts.map +0 -1
  159. package/lib/decorator/private/ActivityBorderDecoratorMiddleware.js +0 -19
  160. package/lib/decorator/private/ActivityDecorator.d.ts +0 -9
  161. package/lib/decorator/private/ActivityDecorator.d.ts.map +0 -1
  162. package/lib/decorator/private/ActivityDecorator.js +0 -36
  163. package/lib/decorator/private/DecoratorComposer.d.ts +0 -3
  164. package/lib/decorator/private/DecoratorComposer.d.ts.map +0 -1
  165. package/lib/decorator/private/DecoratorComposer.js +0 -13
  166. package/lib/decorator/private/activityDecoratorRequest.d.ts +0 -6
  167. package/lib/decorator/private/activityDecoratorRequest.d.ts.map +0 -1
  168. package/lib/decorator/private/activityDecoratorRequest.js +0 -2
  169. package/lib/decorator/private/createDecoratorComposer.d.ts +0 -11
  170. package/lib/decorator/private/createDecoratorComposer.d.ts.map +0 -1
  171. package/lib/decorator/private/createDecoratorComposer.js +0 -27
  172. package/lib/decorator/private/templateMiddleware.d.ts +0 -30
  173. package/lib/decorator/private/templateMiddleware.d.ts.map +0 -1
  174. package/lib/decorator/private/templateMiddleware.js +0 -53
  175. package/lib/decorator/private/templateMiddleware.test.d.ts +0 -3
  176. package/lib/decorator/private/templateMiddleware.test.d.ts.map +0 -1
  177. package/lib/defaultStyleOptions.d.ts +0 -4
  178. package/lib/defaultStyleOptions.d.ts.map +0 -1
  179. package/lib/defaultStyleOptions.js +0 -277
  180. package/lib/external/PrecompiledGlobalize.js +0 -6361
  181. package/lib/hooks/Composer.d.ts +0 -88
  182. package/lib/hooks/Composer.d.ts.map +0 -1
  183. package/lib/hooks/Composer.js +0 -605
  184. package/lib/hooks/index.d.ts +0 -73
  185. package/lib/hooks/index.d.ts.map +0 -1
  186. package/lib/hooks/index.js +0 -504
  187. package/lib/hooks/internal/ErrorBox.js +0 -47
  188. package/lib/hooks/internal/SendBoxMiddleware.d.ts +0 -37
  189. package/lib/hooks/internal/SendBoxMiddleware.d.ts.map +0 -1
  190. package/lib/hooks/internal/SendBoxMiddleware.js +0 -17
  191. package/lib/hooks/internal/SendBoxToolbarMiddleware.d.ts +0 -37
  192. package/lib/hooks/internal/SendBoxToolbarMiddleware.d.ts.map +0 -1
  193. package/lib/hooks/internal/SendBoxToolbarMiddleware.js +0 -17
  194. package/lib/hooks/internal/Tracker.d.ts +0 -4
  195. package/lib/hooks/internal/Tracker.d.ts.map +0 -1
  196. package/lib/hooks/internal/Tracker.js +0 -15
  197. package/lib/hooks/internal/WebChatAPIContext.d.ts +0 -80
  198. package/lib/hooks/internal/WebChatAPIContext.d.ts.map +0 -1
  199. package/lib/hooks/internal/WebChatAPIContext.js +0 -12
  200. package/lib/hooks/internal/WebChatReduxContext.js +0 -17
  201. package/lib/hooks/internal/defaultSelectVoice.js +0 -28
  202. package/lib/hooks/internal/private/templateMiddleware.d.ts +0 -3
  203. package/lib/hooks/internal/private/templateMiddleware.d.ts.map +0 -1
  204. package/lib/hooks/internal/private/templateMiddleware.js +0 -12
  205. package/lib/hooks/internal/useCreateActivityRendererInternal.d.ts +0 -4
  206. package/lib/hooks/internal/useCreateActivityRendererInternal.d.ts.map +0 -1
  207. package/lib/hooks/internal/useCreateActivityRendererInternal.js +0 -37
  208. package/lib/hooks/internal/useDebugDeps.js +0 -39
  209. package/lib/hooks/internal/useDirFromProps.js +0 -12
  210. package/lib/hooks/internal/useErrorBoxClass.js +0 -14
  211. package/lib/hooks/internal/useForceRender.js +0 -24
  212. package/lib/hooks/internal/useLocalizedGlobalize.js +0 -12
  213. package/lib/hooks/internal/useLocalizedStrings.js +0 -14
  214. package/lib/hooks/internal/useMarkActivity.js +0 -12
  215. package/lib/hooks/internal/usePrevious.d.ts +0 -3
  216. package/lib/hooks/internal/usePrevious.d.ts.map +0 -1
  217. package/lib/hooks/internal/usePrevious.js +0 -15
  218. package/lib/hooks/internal/useReadTelemetryDimensions.js +0 -20
  219. package/lib/hooks/internal/useSetDictateState.d.ts +0 -2
  220. package/lib/hooks/internal/useSetDictateState.d.ts.map +0 -1
  221. package/lib/hooks/internal/useSetDictateState.js +0 -12
  222. package/lib/hooks/internal/useTimer.d.ts +0 -5
  223. package/lib/hooks/internal/useTimer.d.ts.map +0 -1
  224. package/lib/hooks/internal/useTimer.js +0 -43
  225. package/lib/hooks/internal/useTracker.js +0 -42
  226. package/lib/hooks/internal/useValueRef.d.ts +0 -3
  227. package/lib/hooks/internal/useValueRef.d.ts.map +0 -1
  228. package/lib/hooks/internal/useValueRef.js +0 -22
  229. package/lib/hooks/internal/useWebChatAPIContext.d.ts +0 -83
  230. package/lib/hooks/internal/useWebChatAPIContext.d.ts.map +0 -1
  231. package/lib/hooks/internal/useWebChatAPIContext.js +0 -17
  232. package/lib/hooks/middleware/UserlandBoundary.js +0 -48
  233. package/lib/hooks/middleware/applyMiddleware.js +0 -122
  234. package/lib/hooks/middleware/concatMiddleware.d.ts +0 -6
  235. package/lib/hooks/middleware/concatMiddleware.d.ts.map +0 -1
  236. package/lib/hooks/middleware/concatMiddleware.js +0 -33
  237. package/lib/hooks/middleware/createDefaultCardActionMiddleware.d.ts +0 -3
  238. package/lib/hooks/middleware/createDefaultCardActionMiddleware.d.ts.map +0 -1
  239. package/lib/hooks/middleware/createDefaultCardActionMiddleware.js +0 -43
  240. package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.d.ts +0 -7
  241. package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.d.ts.map +0 -1
  242. package/lib/hooks/middleware/createDefaultGroupActivitiesMiddleware.js +0 -68
  243. package/lib/hooks/private/numberWithInfinity.d.ts +0 -3
  244. package/lib/hooks/private/numberWithInfinity.d.ts.map +0 -1
  245. package/lib/hooks/private/numberWithInfinity.js +0 -17
  246. package/lib/hooks/private/numberWithInfinity.spec.d.ts +0 -2
  247. package/lib/hooks/private/numberWithInfinity.spec.d.ts.map +0 -1
  248. package/lib/hooks/private/reduceIterable.d.ts +0 -2
  249. package/lib/hooks/private/reduceIterable.d.ts.map +0 -1
  250. package/lib/hooks/private/reduceIterable.js +0 -26
  251. package/lib/hooks/private/reduceIterable.spec.d.ts +0 -2
  252. package/lib/hooks/private/reduceIterable.spec.d.ts.map +0 -1
  253. package/lib/hooks/useActiveTyping.d.ts +0 -4
  254. package/lib/hooks/useActiveTyping.d.ts.map +0 -1
  255. package/lib/hooks/useActiveTyping.js +0 -81
  256. package/lib/hooks/useActivities.d.ts +0 -3
  257. package/lib/hooks/useActivities.d.ts.map +0 -1
  258. package/lib/hooks/useActivities.js +0 -14
  259. package/lib/hooks/useActivityKeys.d.ts +0 -3
  260. package/lib/hooks/useActivityKeys.d.ts.map +0 -1
  261. package/lib/hooks/useActivityKeys.js +0 -11
  262. package/lib/hooks/useActivityKeysByRead.d.ts +0 -3
  263. package/lib/hooks/useActivityKeysByRead.d.ts.map +0 -1
  264. package/lib/hooks/useActivityKeysByRead.js +0 -11
  265. package/lib/hooks/useAvatarForBot.d.ts +0 -5
  266. package/lib/hooks/useAvatarForBot.d.ts.map +0 -1
  267. package/lib/hooks/useAvatarForBot.js +0 -26
  268. package/lib/hooks/useAvatarForUser.d.ts +0 -5
  269. package/lib/hooks/useAvatarForUser.d.ts.map +0 -1
  270. package/lib/hooks/useAvatarForUser.js +0 -26
  271. package/lib/hooks/useByteFormatter.d.ts +0 -2
  272. package/lib/hooks/useByteFormatter.d.ts.map +0 -1
  273. package/lib/hooks/useByteFormatter.js +0 -43
  274. package/lib/hooks/useConnectivityStatus.d.ts +0 -2
  275. package/lib/hooks/useConnectivityStatus.d.ts.map +0 -1
  276. package/lib/hooks/useConnectivityStatus.js +0 -14
  277. package/lib/hooks/useCreateActivityRenderer.d.ts +0 -3
  278. package/lib/hooks/useCreateActivityRenderer.d.ts.map +0 -1
  279. package/lib/hooks/useCreateActivityRenderer.js +0 -14
  280. package/lib/hooks/useCreateActivityStatusRenderer.d.ts +0 -10
  281. package/lib/hooks/useCreateActivityStatusRenderer.d.ts.map +0 -1
  282. package/lib/hooks/useCreateActivityStatusRenderer.js +0 -72
  283. package/lib/hooks/useCreateAttachmentForScreenReaderRenderer.d.ts +0 -3
  284. package/lib/hooks/useCreateAttachmentForScreenReaderRenderer.d.ts.map +0 -1
  285. package/lib/hooks/useCreateAttachmentForScreenReaderRenderer.js +0 -12
  286. package/lib/hooks/useCreateAvatarRenderer.d.ts +0 -6
  287. package/lib/hooks/useCreateAvatarRenderer.d.ts.map +0 -1
  288. package/lib/hooks/useCreateAvatarRenderer.js +0 -44
  289. package/lib/hooks/useCreateScrollToEndButtonRenderer.d.ts +0 -3
  290. package/lib/hooks/useCreateScrollToEndButtonRenderer.d.ts.map +0 -1
  291. package/lib/hooks/useCreateScrollToEndButtonRenderer.js +0 -12
  292. package/lib/hooks/useDateFormatter.d.ts +0 -2
  293. package/lib/hooks/useDateFormatter.d.ts.map +0 -1
  294. package/lib/hooks/useDateFormatter.js +0 -35
  295. package/lib/hooks/useDebouncedNotifications.d.ts +0 -13
  296. package/lib/hooks/useDebouncedNotifications.d.ts.map +0 -1
  297. package/lib/hooks/useDebouncedNotifications.js +0 -118
  298. package/lib/hooks/useDictateInterims.d.ts +0 -2
  299. package/lib/hooks/useDictateInterims.d.ts.map +0 -1
  300. package/lib/hooks/useDictateInterims.js +0 -16
  301. package/lib/hooks/useDictateState.d.ts +0 -2
  302. package/lib/hooks/useDictateState.d.ts.map +0 -1
  303. package/lib/hooks/useDictateState.js +0 -15
  304. package/lib/hooks/useDirection.d.ts +0 -2
  305. package/lib/hooks/useDirection.d.ts.map +0 -1
  306. package/lib/hooks/useDirection.js +0 -38
  307. package/lib/hooks/useDisabled.d.ts +0 -2
  308. package/lib/hooks/useDisabled.d.ts.map +0 -1
  309. package/lib/hooks/useDisabled.js +0 -12
  310. package/lib/hooks/useDismissNotification.d.ts +0 -2
  311. package/lib/hooks/useDismissNotification.d.ts.map +0 -1
  312. package/lib/hooks/useDismissNotification.js +0 -12
  313. package/lib/hooks/useEmitTypingIndicator.d.ts +0 -2
  314. package/lib/hooks/useEmitTypingIndicator.d.ts.map +0 -1
  315. package/lib/hooks/useEmitTypingIndicator.js +0 -12
  316. package/lib/hooks/useGetActivitiesByKey.d.ts +0 -3
  317. package/lib/hooks/useGetActivitiesByKey.d.ts.map +0 -1
  318. package/lib/hooks/useGetActivitiesByKey.js +0 -11
  319. package/lib/hooks/useGetActivityByKey.d.ts +0 -3
  320. package/lib/hooks/useGetActivityByKey.d.ts.map +0 -1
  321. package/lib/hooks/useGetActivityByKey.js +0 -11
  322. package/lib/hooks/useGetHasAcknowledgedByActivityKey.d.ts +0 -3
  323. package/lib/hooks/useGetHasAcknowledgedByActivityKey.d.ts.map +0 -1
  324. package/lib/hooks/useGetHasAcknowledgedByActivityKey.js +0 -11
  325. package/lib/hooks/useGetKeyByActivity.d.ts +0 -3
  326. package/lib/hooks/useGetKeyByActivity.d.ts.map +0 -1
  327. package/lib/hooks/useGetKeyByActivity.js +0 -11
  328. package/lib/hooks/useGetKeyByActivityId.d.ts +0 -3
  329. package/lib/hooks/useGetKeyByActivityId.d.ts.map +0 -1
  330. package/lib/hooks/useGetKeyByActivityId.js +0 -11
  331. package/lib/hooks/useGetSendTimeoutForActivity.d.ts +0 -5
  332. package/lib/hooks/useGetSendTimeoutForActivity.d.ts.map +0 -1
  333. package/lib/hooks/useGetSendTimeoutForActivity.js +0 -33
  334. package/lib/hooks/useGrammars.d.ts +0 -2
  335. package/lib/hooks/useGrammars.d.ts.map +0 -1
  336. package/lib/hooks/useGrammars.js +0 -12
  337. package/lib/hooks/useGroupActivities.d.ts +0 -8
  338. package/lib/hooks/useGroupActivities.d.ts.map +0 -1
  339. package/lib/hooks/useGroupActivities.js +0 -12
  340. package/lib/hooks/useGroupTimestamp.d.ts +0 -2
  341. package/lib/hooks/useGroupTimestamp.d.ts.map +0 -1
  342. package/lib/hooks/useGroupTimestamp.js +0 -21
  343. package/lib/hooks/useLanguage.d.ts +0 -2
  344. package/lib/hooks/useLanguage.d.ts.map +0 -1
  345. package/lib/hooks/useLanguage.js +0 -19
  346. package/lib/hooks/useLastAcknowledgedActivityKey.d.ts +0 -3
  347. package/lib/hooks/useLastAcknowledgedActivityKey.d.ts.map +0 -1
  348. package/lib/hooks/useLastAcknowledgedActivityKey.js +0 -11
  349. package/lib/hooks/useLastReadActivityKey.d.ts +0 -3
  350. package/lib/hooks/useLastReadActivityKey.d.ts.map +0 -1
  351. package/lib/hooks/useLastReadActivityKey.js +0 -11
  352. package/lib/hooks/useLocalizer.d.ts +0 -13
  353. package/lib/hooks/useLocalizer.d.ts.map +0 -1
  354. package/lib/hooks/useLocalizer.js +0 -75
  355. package/lib/hooks/useMarkActivityAsSpoken.d.ts +0 -3
  356. package/lib/hooks/useMarkActivityAsSpoken.d.ts.map +0 -1
  357. package/lib/hooks/useMarkActivityAsSpoken.js +0 -16
  358. package/lib/hooks/useMarkActivityKeyAsRead.d.ts +0 -3
  359. package/lib/hooks/useMarkActivityKeyAsRead.d.ts.map +0 -1
  360. package/lib/hooks/useMarkActivityKeyAsRead.js +0 -11
  361. package/lib/hooks/useMarkAllAsAcknowledged.d.ts +0 -3
  362. package/lib/hooks/useMarkAllAsAcknowledged.d.ts.map +0 -1
  363. package/lib/hooks/useMarkAllAsAcknowledged.js +0 -11
  364. package/lib/hooks/useNotifications.d.ts +0 -3
  365. package/lib/hooks/useNotifications.d.ts.map +0 -1
  366. package/lib/hooks/useNotifications.js +0 -14
  367. package/lib/hooks/usePerformCardAction.d.ts +0 -3
  368. package/lib/hooks/usePerformCardAction.d.ts.map +0 -1
  369. package/lib/hooks/usePerformCardAction.js +0 -12
  370. package/lib/hooks/usePonyfill.d.ts +0 -3
  371. package/lib/hooks/usePonyfill.d.ts.map +0 -1
  372. package/lib/hooks/usePonyfill.js +0 -11
  373. package/lib/hooks/usePostActivity.d.ts +0 -3
  374. package/lib/hooks/usePostActivity.d.ts.map +0 -1
  375. package/lib/hooks/usePostActivity.js +0 -12
  376. package/lib/hooks/useReferenceGrammarID.d.ts +0 -2
  377. package/lib/hooks/useReferenceGrammarID.d.ts.map +0 -1
  378. package/lib/hooks/useReferenceGrammarID.js +0 -14
  379. package/lib/hooks/useRelativeTimeFormatter.d.ts +0 -2
  380. package/lib/hooks/useRelativeTimeFormatter.d.ts.map +0 -1
  381. package/lib/hooks/useRelativeTimeFormatter.js +0 -61
  382. package/lib/hooks/useRenderAttachment.d.ts +0 -3
  383. package/lib/hooks/useRenderAttachment.d.ts.map +0 -1
  384. package/lib/hooks/useRenderAttachment.js +0 -14
  385. package/lib/hooks/useRenderToast.d.ts +0 -3
  386. package/lib/hooks/useRenderToast.d.ts.map +0 -1
  387. package/lib/hooks/useRenderToast.js +0 -12
  388. package/lib/hooks/useRenderTypingIndicator.d.ts +0 -3
  389. package/lib/hooks/useRenderTypingIndicator.d.ts.map +0 -1
  390. package/lib/hooks/useRenderTypingIndicator.js +0 -12
  391. package/lib/hooks/useSendBoxAttachments.d.ts +0 -6
  392. package/lib/hooks/useSendBoxAttachments.d.ts.map +0 -1
  393. package/lib/hooks/useSendBoxAttachments.js +0 -23
  394. package/lib/hooks/useSendBoxValue.d.ts +0 -2
  395. package/lib/hooks/useSendBoxValue.d.ts.map +0 -1
  396. package/lib/hooks/useSendBoxValue.js +0 -16
  397. package/lib/hooks/useSendEvent.d.ts +0 -2
  398. package/lib/hooks/useSendEvent.d.ts.map +0 -1
  399. package/lib/hooks/useSendEvent.js +0 -12
  400. package/lib/hooks/useSendFiles.d.ts +0 -10
  401. package/lib/hooks/useSendFiles.d.ts.map +0 -1
  402. package/lib/hooks/useSendFiles.js +0 -35
  403. package/lib/hooks/useSendMessage.d.ts +0 -6
  404. package/lib/hooks/useSendMessage.d.ts.map +0 -1
  405. package/lib/hooks/useSendMessage.js +0 -33
  406. package/lib/hooks/useSendMessageBack.d.ts +0 -2
  407. package/lib/hooks/useSendMessageBack.d.ts.map +0 -1
  408. package/lib/hooks/useSendMessageBack.js +0 -12
  409. package/lib/hooks/useSendPostBack.d.ts +0 -2
  410. package/lib/hooks/useSendPostBack.d.ts.map +0 -1
  411. package/lib/hooks/useSendPostBack.js +0 -12
  412. package/lib/hooks/useSendStatusByActivityKey.d.ts +0 -22
  413. package/lib/hooks/useSendStatusByActivityKey.d.ts.map +0 -1
  414. package/lib/hooks/useSendStatusByActivityKey.js +0 -31
  415. package/lib/hooks/useSendTimeoutForActivity.d.ts +0 -4
  416. package/lib/hooks/useSendTimeoutForActivity.d.ts.map +0 -1
  417. package/lib/hooks/useSendTimeoutForActivity.js +0 -22
  418. package/lib/hooks/useSendTypingIndicator.d.ts +0 -2
  419. package/lib/hooks/useSendTypingIndicator.d.ts.map +0 -1
  420. package/lib/hooks/useSendTypingIndicator.js +0 -14
  421. package/lib/hooks/useSetNotification.d.ts +0 -3
  422. package/lib/hooks/useSetNotification.d.ts.map +0 -1
  423. package/lib/hooks/useSetNotification.js +0 -12
  424. package/lib/hooks/useShouldSpeakIncomingActivity.d.ts +0 -2
  425. package/lib/hooks/useShouldSpeakIncomingActivity.d.ts.map +0 -1
  426. package/lib/hooks/useShouldSpeakIncomingActivity.js +0 -22
  427. package/lib/hooks/useStartDictate.d.ts +0 -2
  428. package/lib/hooks/useStartDictate.d.ts.map +0 -1
  429. package/lib/hooks/useStartDictate.js +0 -12
  430. package/lib/hooks/useStopDictate.d.ts +0 -2
  431. package/lib/hooks/useStopDictate.d.ts.map +0 -1
  432. package/lib/hooks/useStopDictate.js +0 -12
  433. package/lib/hooks/useStyleOptions.d.ts +0 -3
  434. package/lib/hooks/useStyleOptions.d.ts.map +0 -1
  435. package/lib/hooks/useStyleOptions.js +0 -12
  436. package/lib/hooks/useSubmitSendBox.d.ts +0 -4
  437. package/lib/hooks/useSubmitSendBox.d.ts.map +0 -1
  438. package/lib/hooks/useSubmitSendBox.js +0 -49
  439. package/lib/hooks/useSuggestedActions.d.ts +0 -3
  440. package/lib/hooks/useSuggestedActions.d.ts.map +0 -1
  441. package/lib/hooks/useSuggestedActions.js +0 -25
  442. package/lib/hooks/useTimeoutForSend.d.ts +0 -3
  443. package/lib/hooks/useTimeoutForSend.d.ts.map +0 -1
  444. package/lib/hooks/useTimeoutForSend.js +0 -21
  445. package/lib/hooks/useTrackDimension.d.ts +0 -2
  446. package/lib/hooks/useTrackDimension.d.ts.map +0 -1
  447. package/lib/hooks/useTrackDimension.js +0 -14
  448. package/lib/hooks/useTrackEvent.d.ts +0 -10
  449. package/lib/hooks/useTrackEvent.d.ts.map +0 -1
  450. package/lib/hooks/useTrackEvent.js +0 -51
  451. package/lib/hooks/useTrackException.d.ts +0 -2
  452. package/lib/hooks/useTrackException.d.ts.map +0 -1
  453. package/lib/hooks/useTrackException.js +0 -31
  454. package/lib/hooks/useTrackTiming.d.ts +0 -2
  455. package/lib/hooks/useTrackTiming.d.ts.map +0 -1
  456. package/lib/hooks/useTrackTiming.js +0 -93
  457. package/lib/hooks/useUserID.d.ts +0 -2
  458. package/lib/hooks/useUserID.d.ts.map +0 -1
  459. package/lib/hooks/useUserID.js +0 -12
  460. package/lib/hooks/useUsername.d.ts +0 -2
  461. package/lib/hooks/useUsername.d.ts.map +0 -1
  462. package/lib/hooks/useUsername.js +0 -12
  463. package/lib/hooks/useVoiceSelector.d.ts +0 -2
  464. package/lib/hooks/useVoiceSelector.d.ts.map +0 -1
  465. package/lib/hooks/useVoiceSelector.js +0 -16
  466. package/lib/hooks/utils/ErrorBoundary.js +0 -68
  467. package/lib/hooks/utils/observableToPromise.d.ts +0 -3
  468. package/lib/hooks/utils/observableToPromise.d.ts.map +0 -1
  469. package/lib/hooks/utils/observableToPromise.js +0 -28
  470. package/lib/index.d.ts +0 -37
  471. package/lib/index.d.ts.map +0 -1
  472. package/lib/index.js +0 -88
  473. package/lib/internal.d.ts +0 -3
  474. package/lib/internal.d.ts.map +0 -1
  475. package/lib/internal.js +0 -14
  476. package/lib/localization/Localize.d.ts +0 -4
  477. package/lib/localization/Localize.d.ts.map +0 -1
  478. package/lib/localization/Localize.js +0 -50
  479. package/lib/localization/ar-EG.json +0 -42
  480. package/lib/localization/ar-JO.json +0 -45
  481. package/lib/localization/ar-SA.json +0 -112
  482. package/lib/localization/bg-BG.json +0 -112
  483. package/lib/localization/ca-ES.json +0 -112
  484. package/lib/localization/cs-CZ.json +0 -112
  485. package/lib/localization/da-DK.json +0 -112
  486. package/lib/localization/de-DE.json +0 -112
  487. package/lib/localization/el-GR.json +0 -112
  488. package/lib/localization/en-US.json +0 -183
  489. package/lib/localization/es-ES.json +0 -112
  490. package/lib/localization/et-EE.json +0 -112
  491. package/lib/localization/eu-ES.json +0 -112
  492. package/lib/localization/fi-FI.json +0 -112
  493. package/lib/localization/fr-FR.json +0 -112
  494. package/lib/localization/getAllLocalizedStrings.d.ts +0 -6
  495. package/lib/localization/getAllLocalizedStrings.d.ts.map +0 -1
  496. package/lib/localization/getAllLocalizedStrings.js +0 -117
  497. package/lib/localization/getRTLList.d.ts +0 -2
  498. package/lib/localization/getRTLList.d.ts.map +0 -1
  499. package/lib/localization/getRTLList.js +0 -46
  500. package/lib/localization/gl-ES.json +0 -112
  501. package/lib/localization/he-IL.json +0 -112
  502. package/lib/localization/hi-IN.json +0 -112
  503. package/lib/localization/hr-HR.json +0 -112
  504. package/lib/localization/hu-HU.json +0 -112
  505. package/lib/localization/id-ID.json +0 -112
  506. package/lib/localization/it-IT.json +0 -112
  507. package/lib/localization/ja-JP.json +0 -112
  508. package/lib/localization/kk-KZ.json +0 -112
  509. package/lib/localization/ko-KR.json +0 -112
  510. package/lib/localization/lt-LT.json +0 -112
  511. package/lib/localization/lv-LV.json +0 -112
  512. package/lib/localization/mergeLocalizedStrings.d.ts +0 -7
  513. package/lib/localization/mergeLocalizedStrings.d.ts.map +0 -1
  514. package/lib/localization/mergeLocalizedStrings.js +0 -49
  515. package/lib/localization/ms-MY.json +0 -112
  516. package/lib/localization/nb-NO.json +0 -112
  517. package/lib/localization/nl-NL.json +0 -112
  518. package/lib/localization/overrides.json +0 -257
  519. package/lib/localization/pl-PL.json +0 -112
  520. package/lib/localization/pt-BR.json +0 -112
  521. package/lib/localization/pt-PT.json +0 -112
  522. package/lib/localization/ro-RO.json +0 -112
  523. package/lib/localization/ru-RU.json +0 -112
  524. package/lib/localization/sk-SK.json +0 -112
  525. package/lib/localization/sl-SI.json +0 -112
  526. package/lib/localization/sl-SL.json +0 -3
  527. package/lib/localization/sr-Cyrl-CS.json +0 -112
  528. package/lib/localization/sr-Cyrl.json +0 -3
  529. package/lib/localization/sr-Latn-CS.json +0 -112
  530. package/lib/localization/sr-Latn.json +0 -3
  531. package/lib/localization/sv-SE.json +0 -112
  532. package/lib/localization/th-TH.json +0 -112
  533. package/lib/localization/tr-TR.json +0 -112
  534. package/lib/localization/uk-UA.json +0 -112
  535. package/lib/localization/vi-VN.json +0 -112
  536. package/lib/localization/yue.json +0 -115
  537. package/lib/localization/zh-CN.json +0 -112
  538. package/lib/localization/zh-HK.json +0 -112
  539. package/lib/localization/zh-TW.json +0 -112
  540. package/lib/normalizeStyleOptions.d.ts +0 -3
  541. package/lib/normalizeStyleOptions.d.ts.map +0 -1
  542. package/lib/normalizeStyleOptions.js +0 -147
  543. package/lib/patchStyleOptionsFromDeprecatedProps.js +0 -21
  544. package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.d.ts +0 -6
  545. package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.d.ts.map +0 -1
  546. package/lib/providers/ActivityAcknowledgement/ActivityAcknowledgementComposer.js +0 -153
  547. package/lib/providers/ActivityAcknowledgement/private/Context.d.ts +0 -13
  548. package/lib/providers/ActivityAcknowledgement/private/Context.d.ts.map +0 -1
  549. package/lib/providers/ActivityAcknowledgement/private/Context.js +0 -14
  550. package/lib/providers/ActivityAcknowledgement/private/useContext.d.ts +0 -3
  551. package/lib/providers/ActivityAcknowledgement/private/useContext.d.ts.map +0 -1
  552. package/lib/providers/ActivityAcknowledgement/private/useContext.js +0 -18
  553. package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.d.ts +0 -5
  554. package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.d.ts.map +0 -1
  555. package/lib/providers/ActivityAcknowledgement/useActivityKeysByRead.js +0 -15
  556. package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.d.ts +0 -2
  557. package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.d.ts.map +0 -1
  558. package/lib/providers/ActivityAcknowledgement/useGetHasAcknowledgedByActivityKey.js +0 -12
  559. package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.d.ts +0 -2
  560. package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.d.ts.map +0 -1
  561. package/lib/providers/ActivityAcknowledgement/useLastAcknowledgedActivityKey.js +0 -12
  562. package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.d.ts +0 -2
  563. package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.d.ts.map +0 -1
  564. package/lib/providers/ActivityAcknowledgement/useLastReadActivityKey.js +0 -12
  565. package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.d.ts +0 -2
  566. package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.d.ts.map +0 -1
  567. package/lib/providers/ActivityAcknowledgement/useMarkActivityKeyAsRead.js +0 -12
  568. package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.d.ts +0 -2
  569. package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.d.ts.map +0 -1
  570. package/lib/providers/ActivityAcknowledgement/useMarkAllAsAcknowledged.js +0 -12
  571. package/lib/providers/ActivityKeyer/ActivityKeyerComposer.d.ts +0 -20
  572. package/lib/providers/ActivityKeyer/ActivityKeyerComposer.d.ts.map +0 -1
  573. package/lib/providers/ActivityKeyer/ActivityKeyerComposer.js +0 -149
  574. package/lib/providers/ActivityKeyer/private/Context.d.ts +0 -13
  575. package/lib/providers/ActivityKeyer/private/Context.d.ts.map +0 -1
  576. package/lib/providers/ActivityKeyer/private/Context.js +0 -10
  577. package/lib/providers/ActivityKeyer/private/getActivityId.d.ts +0 -3
  578. package/lib/providers/ActivityKeyer/private/getActivityId.d.ts.map +0 -1
  579. package/lib/providers/ActivityKeyer/private/getActivityId.js +0 -10
  580. package/lib/providers/ActivityKeyer/private/getClientActivityId.d.ts +0 -3
  581. package/lib/providers/ActivityKeyer/private/getClientActivityId.d.ts.map +0 -1
  582. package/lib/providers/ActivityKeyer/private/getClientActivityId.js +0 -11
  583. package/lib/providers/ActivityKeyer/private/lastOf.d.ts +0 -2
  584. package/lib/providers/ActivityKeyer/private/lastOf.d.ts.map +0 -1
  585. package/lib/providers/ActivityKeyer/private/lastOf.js +0 -10
  586. package/lib/providers/ActivityKeyer/private/lastOf.spec.d.ts +0 -2
  587. package/lib/providers/ActivityKeyer/private/lastOf.spec.d.ts.map +0 -1
  588. package/lib/providers/ActivityKeyer/private/someIterable.d.ts +0 -2
  589. package/lib/providers/ActivityKeyer/private/someIterable.d.ts.map +0 -1
  590. package/lib/providers/ActivityKeyer/private/someIterable.js +0 -27
  591. package/lib/providers/ActivityKeyer/private/someIterable.spec.d.ts +0 -2
  592. package/lib/providers/ActivityKeyer/private/someIterable.spec.d.ts.map +0 -1
  593. package/lib/providers/ActivityKeyer/private/uniqueId.d.ts +0 -2
  594. package/lib/providers/ActivityKeyer/private/uniqueId.d.ts.map +0 -1
  595. package/lib/providers/ActivityKeyer/private/uniqueId.js +0 -15
  596. package/lib/providers/ActivityKeyer/private/useContext.d.ts +0 -3
  597. package/lib/providers/ActivityKeyer/private/useContext.d.ts.map +0 -1
  598. package/lib/providers/ActivityKeyer/private/useContext.js +0 -18
  599. package/lib/providers/ActivityKeyer/useActivityKeys.d.ts +0 -2
  600. package/lib/providers/ActivityKeyer/useActivityKeys.d.ts.map +0 -1
  601. package/lib/providers/ActivityKeyer/useActivityKeys.js +0 -12
  602. package/lib/providers/ActivityKeyer/useGetActivitiesByKey.d.ts +0 -3
  603. package/lib/providers/ActivityKeyer/useGetActivitiesByKey.d.ts.map +0 -1
  604. package/lib/providers/ActivityKeyer/useGetActivitiesByKey.js +0 -12
  605. package/lib/providers/ActivityKeyer/useGetActivityByKey.d.ts +0 -3
  606. package/lib/providers/ActivityKeyer/useGetActivityByKey.d.ts.map +0 -1
  607. package/lib/providers/ActivityKeyer/useGetActivityByKey.js +0 -12
  608. package/lib/providers/ActivityKeyer/useGetKeyByActivity.d.ts +0 -3
  609. package/lib/providers/ActivityKeyer/useGetKeyByActivity.d.ts.map +0 -1
  610. package/lib/providers/ActivityKeyer/useGetKeyByActivity.js +0 -12
  611. package/lib/providers/ActivityKeyer/useGetKeyByActivityId.d.ts +0 -2
  612. package/lib/providers/ActivityKeyer/useGetKeyByActivityId.d.ts.map +0 -1
  613. package/lib/providers/ActivityKeyer/useGetKeyByActivityId.js +0 -12
  614. package/lib/providers/ActivityListener/ActivityListenerComposer.d.ts +0 -7
  615. package/lib/providers/ActivityListener/ActivityListenerComposer.d.ts.map +0 -1
  616. package/lib/providers/ActivityListener/ActivityListenerComposer.js +0 -55
  617. package/lib/providers/ActivityListener/private/Context.d.ts +0 -8
  618. package/lib/providers/ActivityListener/private/Context.d.ts.map +0 -1
  619. package/lib/providers/ActivityListener/private/Context.js +0 -15
  620. package/lib/providers/ActivityListener/private/useContext.d.ts +0 -2
  621. package/lib/providers/ActivityListener/private/useContext.d.ts.map +0 -1
  622. package/lib/providers/ActivityListener/private/useContext.js +0 -13
  623. package/lib/providers/ActivityListener/useUpsertedActivities.d.ts +0 -3
  624. package/lib/providers/ActivityListener/useUpsertedActivities.d.ts.map +0 -1
  625. package/lib/providers/ActivityListener/useUpsertedActivities.js +0 -12
  626. package/lib/providers/ActivitySendStatus/ActivitySendStatusComposer.d.ts +0 -4
  627. package/lib/providers/ActivitySendStatus/ActivitySendStatusComposer.d.ts.map +0 -1
  628. package/lib/providers/ActivitySendStatus/ActivitySendStatusComposer.js +0 -149
  629. package/lib/providers/ActivitySendStatus/private/Context.d.ts +0 -9
  630. package/lib/providers/ActivitySendStatus/private/Context.d.ts.map +0 -1
  631. package/lib/providers/ActivitySendStatus/private/Context.js +0 -13
  632. package/lib/providers/ActivitySendStatus/private/isMapEqual.d.ts +0 -7
  633. package/lib/providers/ActivitySendStatus/private/isMapEqual.d.ts.map +0 -1
  634. package/lib/providers/ActivitySendStatus/private/isMapEqual.js +0 -55
  635. package/lib/providers/ActivitySendStatus/private/useContext.d.ts +0 -3
  636. package/lib/providers/ActivitySendStatus/private/useContext.d.ts.map +0 -1
  637. package/lib/providers/ActivitySendStatus/private/useContext.js +0 -18
  638. package/lib/providers/ActivitySendStatus/useSendStatusByActivityKey.d.ts +0 -22
  639. package/lib/providers/ActivitySendStatus/useSendStatusByActivityKey.d.ts.map +0 -1
  640. package/lib/providers/ActivitySendStatus/useSendStatusByActivityKey.js +0 -31
  641. package/lib/providers/ActivitySendStatusTelemetry/ActivitySendStatusTelemetryComposer.d.ts +0 -3
  642. package/lib/providers/ActivitySendStatusTelemetry/ActivitySendStatusTelemetryComposer.d.ts.map +0 -1
  643. package/lib/providers/ActivitySendStatusTelemetry/ActivitySendStatusTelemetryComposer.js +0 -71
  644. package/lib/providers/ActivityTyping/ActivityTypingComposer.d.ts +0 -9
  645. package/lib/providers/ActivityTyping/ActivityTypingComposer.d.ts.map +0 -1
  646. package/lib/providers/ActivityTyping/ActivityTypingComposer.js +0 -98
  647. package/lib/providers/ActivityTyping/private/Context.d.ts +0 -8
  648. package/lib/providers/ActivityTyping/private/Context.d.ts.map +0 -1
  649. package/lib/providers/ActivityTyping/private/Context.js +0 -15
  650. package/lib/providers/ActivityTyping/private/useContext.d.ts +0 -3
  651. package/lib/providers/ActivityTyping/private/useContext.d.ts.map +0 -1
  652. package/lib/providers/ActivityTyping/private/useContext.js +0 -13
  653. package/lib/providers/ActivityTyping/private/useMemoWithPrevious.d.ts +0 -3
  654. package/lib/providers/ActivityTyping/private/useMemoWithPrevious.d.ts.map +0 -1
  655. package/lib/providers/ActivityTyping/private/useMemoWithPrevious.js +0 -22
  656. package/lib/providers/ActivityTyping/types/AllTyping.d.ts +0 -9
  657. package/lib/providers/ActivityTyping/types/AllTyping.d.ts.map +0 -1
  658. package/lib/providers/ActivityTyping/types/AllTyping.js +0 -2
  659. package/lib/providers/ActivityTyping/useAllTyping.d.ts +0 -3
  660. package/lib/providers/ActivityTyping/useAllTyping.d.ts.map +0 -1
  661. package/lib/providers/ActivityTyping/useAllTyping.js +0 -12
  662. package/lib/providers/Ponyfill/PonyfillComposer.d.ts +0 -17
  663. package/lib/providers/Ponyfill/PonyfillComposer.d.ts.map +0 -1
  664. package/lib/providers/Ponyfill/PonyfillComposer.js +0 -87
  665. package/lib/providers/Ponyfill/private/PonyfillContext.d.ts +0 -8
  666. package/lib/providers/Ponyfill/private/PonyfillContext.d.ts.map +0 -1
  667. package/lib/providers/Ponyfill/private/PonyfillContext.js +0 -10
  668. package/lib/providers/Ponyfill/private/useContext.d.ts +0 -6
  669. package/lib/providers/Ponyfill/private/useContext.d.ts.map +0 -1
  670. package/lib/providers/Ponyfill/private/useContext.js +0 -17
  671. package/lib/providers/Ponyfill/usePonyfill.d.ts +0 -3
  672. package/lib/providers/Ponyfill/usePonyfill.d.ts.map +0 -1
  673. package/lib/providers/Ponyfill/usePonyfill.js +0 -12
  674. package/lib/tsconfig.json +0 -18
  675. package/lib/types/ActivityMiddleware.d.ts +0 -24
  676. package/lib/types/ActivityMiddleware.d.ts.map +0 -1
  677. package/lib/types/ActivityMiddleware.js +0 -2
  678. package/lib/types/ActivityStatusMiddleware.d.ts +0 -17
  679. package/lib/types/ActivityStatusMiddleware.d.ts.map +0 -1
  680. package/lib/types/ActivityStatusMiddleware.js +0 -2
  681. package/lib/types/AttachmentForScreenReaderMiddleware.d.ts +0 -14
  682. package/lib/types/AttachmentForScreenReaderMiddleware.d.ts.map +0 -1
  683. package/lib/types/AttachmentForScreenReaderMiddleware.js +0 -2
  684. package/lib/types/AttachmentMiddleware.d.ts +0 -12
  685. package/lib/types/AttachmentMiddleware.d.ts.map +0 -1
  686. package/lib/types/AttachmentMiddleware.js +0 -2
  687. package/lib/types/AvatarMiddleware.d.ts +0 -15
  688. package/lib/types/AvatarMiddleware.d.ts.map +0 -1
  689. package/lib/types/AvatarMiddleware.js +0 -2
  690. package/lib/types/CardActionMiddleware.d.ts +0 -19
  691. package/lib/types/CardActionMiddleware.d.ts.map +0 -1
  692. package/lib/types/CardActionMiddleware.js +0 -2
  693. package/lib/types/ComponentMiddleware.d.ts +0 -31
  694. package/lib/types/ComponentMiddleware.d.ts.map +0 -1
  695. package/lib/types/ComponentMiddleware.js +0 -2
  696. package/lib/types/ContextOf.d.ts +0 -4
  697. package/lib/types/ContextOf.d.ts.map +0 -1
  698. package/lib/types/ContextOf.js +0 -2
  699. package/lib/types/FunctionMiddleware.d.ts +0 -6
  700. package/lib/types/FunctionMiddleware.d.ts.map +0 -1
  701. package/lib/types/FunctionMiddleware.js +0 -2
  702. package/lib/types/GroupActivitiesMiddleware.d.ts +0 -22
  703. package/lib/types/GroupActivitiesMiddleware.d.ts.map +0 -1
  704. package/lib/types/GroupActivitiesMiddleware.js +0 -2
  705. package/lib/types/LocalizedStrings.d.ts +0 -5
  706. package/lib/types/LocalizedStrings.d.ts.map +0 -1
  707. package/lib/types/LocalizedStrings.js +0 -2
  708. package/lib/types/Notification.d.ts +0 -10
  709. package/lib/types/Notification.d.ts.map +0 -1
  710. package/lib/types/Notification.js +0 -2
  711. package/lib/types/PrecompiledGlobalize.d.ts +0 -13
  712. package/lib/types/PrecompiledGlobalize.d.ts.map +0 -1
  713. package/lib/types/PrecompiledGlobalize.js +0 -2
  714. package/lib/types/ScrollToEndButtonMiddleware.d.ts +0 -30
  715. package/lib/types/ScrollToEndButtonMiddleware.d.ts.map +0 -1
  716. package/lib/types/ScrollToEndButtonMiddleware.js +0 -2
  717. package/lib/types/SendStatus.d.ts +0 -3
  718. package/lib/types/SendStatus.d.ts.map +0 -1
  719. package/lib/types/SendStatus.js +0 -2
  720. package/lib/types/TelemetryMeasurementEvent.d.ts +0 -31
  721. package/lib/types/TelemetryMeasurementEvent.d.ts.map +0 -1
  722. package/lib/types/TelemetryMeasurementEvent.js +0 -2
  723. package/lib/types/ToastMiddleware.d.ts +0 -11
  724. package/lib/types/ToastMiddleware.d.ts.map +0 -1
  725. package/lib/types/ToastMiddleware.js +0 -2
  726. package/lib/types/Typing.d.ts +0 -8
  727. package/lib/types/Typing.d.ts.map +0 -1
  728. package/lib/types/Typing.js +0 -2
  729. package/lib/types/TypingIndicatorMiddleware.d.ts +0 -17
  730. package/lib/types/TypingIndicatorMiddleware.d.ts.map +0 -1
  731. package/lib/types/TypingIndicatorMiddleware.js +0 -2
  732. package/lib/types/WebSpeechPonyfill.d.ts +0 -19
  733. package/lib/types/WebSpeechPonyfill.d.ts.map +0 -1
  734. package/lib/types/WebSpeechPonyfill.js +0 -2
  735. package/lib/types/WebSpeechPonyfillFactory.d.ts +0 -6
  736. package/lib/types/WebSpeechPonyfillFactory.d.ts.map +0 -1
  737. package/lib/types/WebSpeechPonyfillFactory.js +0 -2
  738. package/lib/utils/createCustomEvent.d.ts +0 -4
  739. package/lib/utils/createCustomEvent.d.ts.map +0 -1
  740. package/lib/utils/createCustomEvent.js +0 -34
  741. package/lib/utils/findLastIndex.d.ts +0 -2
  742. package/lib/utils/findLastIndex.d.ts.map +0 -1
  743. package/lib/utils/findLastIndex.js +0 -22
  744. package/lib/utils/findMin.d.ts +0 -7
  745. package/lib/utils/findMin.d.ts.map +0 -1
  746. package/lib/utils/findMin.js +0 -46
  747. package/lib/utils/freezeArray.d.ts +0 -8
  748. package/lib/utils/freezeArray.d.ts.map +0 -1
  749. package/lib/utils/freezeArray.js +0 -19
  750. package/lib/utils/isObject.js +0 -12
  751. package/lib/utils/mapMap.d.ts +0 -6
  752. package/lib/utils/mapMap.d.ts.map +0 -1
  753. package/lib/utils/mapMap.js +0 -27
  754. package/lib/utils/normalizeLanguage.d.ts +0 -2
  755. package/lib/utils/normalizeLanguage.d.ts.map +0 -1
  756. package/lib/utils/normalizeLanguage.js +0 -115
  757. package/lib/utils/randomId.d.ts +0 -2
  758. package/lib/utils/randomId.d.ts.map +0 -1
  759. package/lib/utils/randomId.js +0 -15
  760. package/lib/utils/warnOnce.d.ts +0 -2
  761. package/lib/utils/warnOnce.d.ts.map +0 -1
  762. package/lib/utils/warnOnce.js +0 -16
  763. package/src/decorator/index.ts +0 -4
  764. package/src/decorator/private/ActivityBorderDecoratorMiddleware.ts +0 -31
  765. package/src/decorator/private/ActivityDecorator.tsx +0 -31
  766. package/src/decorator/private/DecoratorComposer.tsx +0 -6
  767. package/src/decorator/private/activityDecoratorRequest.ts +0 -6
  768. package/src/decorator/private/createDecoratorComposer.tsx +0 -36
  769. package/src/hooks/middleware/createDefaultGroupActivitiesMiddleware.ts +0 -75
  770. package/src/hooks/useGroupActivities.ts +0 -10
  771. /package/dist/{chunk-2S76JUVM.mjs.LEGAL.txt → botframework-webchat-api.decorator.js.LEGAL.txt} +0 -0
  772. /package/dist/{chunk-J6D5YEY6.mjs.LEGAL.txt → botframework-webchat-api.internal.js.LEGAL.txt} +0 -0
  773. /package/dist/{chunk-ZAMHKQQC.mjs.LEGAL.txt → botframework-webchat-api.js.LEGAL.txt} +0 -0
@@ -0,0 +1,115 @@
1
+ import { type WebChatActivity } from 'botframework-webchat-core';
2
+ import React, { memo, useCallback, useMemo, type ReactNode } from 'react';
3
+ import { useRefFrom } from 'use-ref-from';
4
+
5
+ import applyMiddleware from '../../hooks/middleware/applyMiddleware';
6
+ import useStyleOptions from '../../hooks/useStyleOptions';
7
+ import type GroupActivitiesMiddleware from '../../types/GroupActivitiesMiddleware';
8
+ import { type GroupActivities } from '../../types/GroupActivitiesMiddleware';
9
+ import usePonyfill from '../Ponyfill/usePonyfill';
10
+ import createDefaultGroupActivitiesMiddleware from './private/createDefaultGroupActivitiesMiddleware';
11
+ import GroupActivitiesContext, { type GroupActivitiesContextType } from './private/GroupActivitiesContext';
12
+ import isGroupingValid from './private/isGroupingValid';
13
+
14
+ type GroupActivitiesComposerProps = Readonly<{
15
+ children?: ReactNode | undefined;
16
+ groupActivitiesMiddleware: readonly GroupActivitiesMiddleware[];
17
+ }>;
18
+
19
+ function GroupActivitiesComposer({ children, groupActivitiesMiddleware }: GroupActivitiesComposerProps) {
20
+ const [ponyfill] = usePonyfill();
21
+ const [{ groupActivitiesBy, groupTimestamp }] = useStyleOptions();
22
+
23
+ const runMiddleware = useMemo<(type?: string | undefined) => GroupActivities>(
24
+ () =>
25
+ applyMiddleware(
26
+ 'group activities',
27
+ ...groupActivitiesMiddleware,
28
+ ...createDefaultGroupActivitiesMiddleware({ groupTimestamp, ponyfill }),
29
+ () => () => () => ({})
30
+ ),
31
+ [groupActivitiesMiddleware, groupTimestamp, ponyfill]
32
+ );
33
+
34
+ const runAllMiddleware = useMemo(() => runMiddleware(), [runMiddleware]);
35
+
36
+ const groupActivities: GroupActivities = useCallback(
37
+ ({ activities }: { activities: readonly WebChatActivity[] }) => {
38
+ const results: Readonly<{
39
+ [key: string]: readonly (readonly WebChatActivity[])[];
40
+ }> = runAllMiddleware({ activities }) || Object.freeze({});
41
+ const validatedResults = new Map<string, readonly (readonly WebChatActivity[])[]>();
42
+
43
+ for (const [name, result] of Object.entries(results)) {
44
+ if (isGroupingValid(activities, result)) {
45
+ validatedResults.set(name, result);
46
+ } else {
47
+ validatedResults.set(
48
+ name,
49
+ activities.map(activity => Object.freeze([activity]))
50
+ );
51
+ }
52
+ }
53
+
54
+ return Object.fromEntries(validatedResults);
55
+ },
56
+ [runAllMiddleware]
57
+ );
58
+
59
+ const groupActivitiesByGroup: Map<string, GroupActivities> = useMemo(
60
+ () =>
61
+ new Map<string, GroupActivities>(
62
+ groupActivitiesBy.map(groupingName => [groupingName, runMiddleware(groupingName)])
63
+ ),
64
+ [groupActivitiesBy, runMiddleware]
65
+ );
66
+
67
+ const groupActivitiesByGroupRef = useRefFrom(groupActivitiesByGroup);
68
+ const groupActivitiesByRef = useRefFrom(groupActivitiesBy);
69
+
70
+ const groupActivitiesByName = useCallback<
71
+ (activities: readonly WebChatActivity[], groupingName: string) => readonly (readonly WebChatActivity[])[]
72
+ >(
73
+ (activities, groupingName) => {
74
+ const group = groupActivitiesByGroupRef.current.get(groupingName);
75
+
76
+ if (group) {
77
+ const result: ReadonlyMap<string, readonly (readonly WebChatActivity[])[]> = new Map(
78
+ Object.entries(group({ activities }) || {})
79
+ );
80
+
81
+ if (result.has(groupingName)) {
82
+ const groupingResult = result.get(groupingName);
83
+
84
+ if (isGroupingValid(activities, groupingResult)) {
85
+ return groupingResult;
86
+ }
87
+ } else {
88
+ console.warn(
89
+ `botframework-webchat: groupActivitiesMiddleware('${groupingName}') does not return any results`
90
+ );
91
+ }
92
+ } else {
93
+ console.warn(
94
+ `botframework-webchat: useGroupActivitiesBy can only be called with one of ${groupActivitiesByRef.current}, however "${groupingName}" was passed instead`
95
+ );
96
+ }
97
+
98
+ return Object.freeze(activities.map(activity => Object.freeze([activity])));
99
+ },
100
+ [groupActivitiesByGroupRef, groupActivitiesByRef]
101
+ );
102
+
103
+ const context = useMemo<GroupActivitiesContextType>(
104
+ () => ({
105
+ groupActivities,
106
+ groupActivitiesByName
107
+ }),
108
+ [groupActivities, groupActivitiesByName]
109
+ );
110
+
111
+ return <GroupActivitiesContext.Provider value={context}>{children}</GroupActivitiesContext.Provider>;
112
+ }
113
+
114
+ export default memo(GroupActivitiesComposer);
115
+ export { type GroupActivitiesComposerProps };
@@ -0,0 +1,23 @@
1
+ import { type WebChatActivity } from 'botframework-webchat-core';
2
+ import { createContext } from 'react';
3
+
4
+ type GroupActivitiesContextType = {
5
+ groupActivities: (options: { activities: readonly WebChatActivity[] }) => Readonly<{
6
+ [key: string]: readonly (readonly WebChatActivity[])[];
7
+ }>;
8
+ groupActivitiesByName: (
9
+ activities: readonly WebChatActivity[],
10
+ groupingName: string
11
+ ) => readonly (readonly WebChatActivity[])[];
12
+ };
13
+
14
+ const GroupActivitiesContext = createContext<GroupActivitiesContextType>(
15
+ new Proxy({} as GroupActivitiesContextType, {
16
+ get() {
17
+ throw new Error('botframework-webchat: This hook can only be used under <GroupActivitiesContext>');
18
+ }
19
+ })
20
+ );
21
+
22
+ export default GroupActivitiesContext;
23
+ export { type GroupActivitiesContextType };
@@ -0,0 +1,93 @@
1
+ import { type GlobalScopePonyfill, type WebChatActivity } from 'botframework-webchat-core';
2
+
3
+ import type GroupActivitiesMiddleware from '../../../types/GroupActivitiesMiddleware';
4
+ import { type SendStatus } from '../../../types/SendStatus';
5
+
6
+ function bin<T>(items: readonly T[], grouping: (last: T, current: T) => boolean): readonly (readonly T[])[] {
7
+ let lastBin: T[];
8
+ const bins: T[][] = [];
9
+ let lastItem: T;
10
+
11
+ for (const item of items) {
12
+ if (lastItem && grouping(lastItem, item)) {
13
+ lastBin.push(item);
14
+ } else {
15
+ lastBin = [item];
16
+ bins.push(lastBin);
17
+ }
18
+
19
+ lastItem = item;
20
+ }
21
+
22
+ for (const bin in bins) {
23
+ Object.freeze(bin);
24
+ }
25
+
26
+ return Object.freeze(bins);
27
+ }
28
+
29
+ function sending(activity: WebChatActivity): SendStatus | undefined {
30
+ if (activity.from.role === 'user') {
31
+ const {
32
+ channelData: { 'webchat:send-status': sendStatus }
33
+ } = activity;
34
+
35
+ return sendStatus;
36
+ }
37
+ }
38
+
39
+ function createShouldGroupTimestamp(groupTimestamp: boolean | number, { Date }: GlobalScopePonyfill) {
40
+ return (activityX: WebChatActivity, activityY: WebChatActivity): boolean => {
41
+ if (groupTimestamp === false) {
42
+ // Hide timestamp for all activities.
43
+ return true;
44
+ } else if (activityX && activityY) {
45
+ if (sending(activityX) !== sending(activityY)) {
46
+ return false;
47
+ }
48
+
49
+ groupTimestamp = typeof groupTimestamp === 'number' ? groupTimestamp : Infinity;
50
+
51
+ const timeX = new Date(activityX.timestamp).getTime();
52
+ const timeY = new Date(activityY.timestamp).getTime();
53
+
54
+ return Math.abs(timeX - timeY) <= groupTimestamp;
55
+ }
56
+
57
+ return false;
58
+ };
59
+ }
60
+
61
+ function shouldGroupSender(x: WebChatActivity, y: WebChatActivity): boolean {
62
+ const {
63
+ from: { role: roleX, id: idX }
64
+ } = x;
65
+ const {
66
+ from: { role: roleY, id: idY }
67
+ } = y;
68
+ return roleX === roleY && idX === idY;
69
+ }
70
+
71
+ export default function createDefaultGroupActivitiesMiddleware({
72
+ groupTimestamp,
73
+ ponyfill
74
+ }: Readonly<{
75
+ groupTimestamp: boolean | number;
76
+ ponyfill: GlobalScopePonyfill;
77
+ }>): readonly GroupActivitiesMiddleware[] {
78
+ return Object.freeze([
79
+ type =>
80
+ type === 'sender' || typeof type === 'undefined'
81
+ ? next =>
82
+ ({ activities }) => ({ ...next({ activities }), sender: bin(activities, shouldGroupSender) })
83
+ : undefined,
84
+ type =>
85
+ type === 'status' || typeof type === 'undefined'
86
+ ? next =>
87
+ ({ activities }) => ({
88
+ ...next({ activities }),
89
+ status: bin(activities, createShouldGroupTimestamp(groupTimestamp, ponyfill))
90
+ })
91
+ : undefined
92
+ ]);
93
+ }
@@ -0,0 +1,41 @@
1
+ import { type WebChatActivity } from 'botframework-webchat-core';
2
+
3
+ export default function isGroupingValid(
4
+ source: readonly WebChatActivity[],
5
+ bins: readonly (readonly WebChatActivity[])[]
6
+ ): boolean {
7
+ const set = new Set(source);
8
+
9
+ if (source.length !== set.size) {
10
+ console.warn('botframework-webchat: Cannot validate activity grouping because some activities are duplicated');
11
+
12
+ return false;
13
+ }
14
+
15
+ for (const bin of bins) {
16
+ for (const activityInBin of bin) {
17
+ if (!set.has(activityInBin)) {
18
+ console.warn(
19
+ 'botframework-webchat: All binned items must be originate from the source list, check groupingActivityMiddleware to make sure it bin from the source list',
20
+ {
21
+ activityInBin
22
+ }
23
+ );
24
+
25
+ return false;
26
+ }
27
+
28
+ set.delete(activityInBin);
29
+ }
30
+ }
31
+
32
+ if (set.size) {
33
+ console.warn(
34
+ 'botframework-webchat: Not every activity is binned, check groupingActivityMiddleware to make sure it is binning every activity passed'
35
+ );
36
+
37
+ return false;
38
+ }
39
+
40
+ return true;
41
+ }
@@ -0,0 +1,6 @@
1
+ import { useContext } from 'react';
2
+ import GroupActivitiesContext, { type GroupActivitiesContextType } from './GroupActivitiesContext';
3
+
4
+ export default function useGroupActivitiesContext(): GroupActivitiesContextType {
5
+ return useContext(GroupActivitiesContext);
6
+ }
@@ -0,0 +1,20 @@
1
+ import { type WebChatActivity } from 'botframework-webchat-core';
2
+
3
+ import useGroupActivitiesContext from './private/useGroupActivitiesContext';
4
+
5
+ type GroupedActivities = readonly (readonly WebChatActivity[])[];
6
+
7
+ /**
8
+ * This hook will return a callback function. When called with `activities`, the callback function will run the `groupActivitiesMiddleware` and will return all groupings.
9
+ *
10
+ * @deprecated This function is deprecated and will be removed on or after 2027-05-04. Developers should migrate to [`useGroupActivitiesByName`](#usegroupactivitiesbyname) for performance reason.
11
+ */
12
+ export default function useGroupActivities(): ({
13
+ activities
14
+ }: Readonly<{
15
+ activities: readonly WebChatActivity[];
16
+ }>) => Readonly<{
17
+ [key: string]: GroupedActivities;
18
+ }> {
19
+ return useGroupActivitiesContext().groupActivities;
20
+ }
@@ -0,0 +1,17 @@
1
+ import { type WebChatActivity } from 'botframework-webchat-core';
2
+
3
+ import useGroupActivitiesContext from './private/useGroupActivitiesContext';
4
+
5
+ /**
6
+ * This hook will return a callback function. When called with `activities`, the callback function will run the `groupActivitiesMiddleware` for the specified grouping name.
7
+ *
8
+ * Unlike the [`useGroupActivities`](#usegroupactivities) hook which provide result for all groupings, this hook only provide result for the specified grouping name and the grouping name must be one of the name specified in `styleOptions.groupActivitiesBy`.
9
+ *
10
+ * @returns Result of `groupActivitiesMiddleware` for the specified grouping name
11
+ */
12
+ export default function useGroupActivitiesBy(): (
13
+ activities: readonly WebChatActivity[],
14
+ name: string
15
+ ) => readonly (readonly WebChatActivity[])[] {
16
+ return useGroupActivitiesContext().groupActivitiesByName;
17
+ }
package/src/tsconfig.json CHANGED
@@ -1,15 +1,11 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "allowSyntheticDefaultImports": true,
4
- "declaration": true,
5
- "declarationDir": "../lib",
6
- "declarationMap": true,
7
4
  "downlevelIteration": true,
8
- "emitDeclarationOnly": true,
9
5
  "jsx": "react",
10
6
  "module": "ESNext",
11
7
  "moduleResolution": "Bundler",
12
- "preserveWatchOutput": true,
8
+ "noEmit": true,
13
9
  "pretty": true,
14
10
  "resolveJsonModule": true, // Required for localization files
15
11
  "skipLibCheck": true,
@@ -1,4 +1,4 @@
1
- import type { DirectLineAttachment, WebChatActivity } from 'botframework-webchat-core';
1
+ import { type DirectLineAttachment, type WebChatActivity } from 'botframework-webchat-core';
2
2
 
3
3
  // TODO: We should consider using a prop for "attachmentMiddleware" to render for screen reader, instead of having another middleware.
4
4
 
@@ -11,11 +11,18 @@ type AttachmentForScreenReaderComponentFactoryOptions = [
11
11
  }
12
12
  ];
13
13
 
14
- type AttachmentForScreenReaderComponentFactory = ComponentFactory<AttachmentForScreenReaderComponentFactoryOptions, {}>;
14
+ type AttachmentForScreenReaderComponentFactory = ComponentFactory<
15
+ AttachmentForScreenReaderComponentFactoryOptions,
16
+ // Following @types/react to use {} for props.
17
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
18
+ {}
19
+ >;
15
20
 
16
21
  type AttachmentForScreenReaderMiddleware = ComponentMiddleware<
17
22
  [],
18
23
  AttachmentForScreenReaderComponentFactoryOptions,
24
+ // Following @types/react to use {} for props.
25
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
19
26
  {}
20
27
  >;
21
28
 
@@ -1,4 +1,4 @@
1
- import type { WebChatActivity } from 'botframework-webchat-core';
1
+ import { type WebChatActivity } from 'botframework-webchat-core';
2
2
 
3
3
  import { StrictStyleOptions } from '../StyleOptions';
4
4
  import ComponentMiddleware, { ComponentFactory } from './ComponentMiddleware';
@@ -11,8 +11,12 @@ type AvatarComponentFactoryArguments = [
11
11
  }
12
12
  ];
13
13
 
14
+ // Following @types/react to use {} for props.
15
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
14
16
  type AvatarComponentFactory = ComponentFactory<AvatarComponentFactoryArguments, {}>;
15
17
 
18
+ // Following @types/react to use {} for props.
19
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
16
20
  type AvatarMiddleware = ComponentMiddleware<[], AvatarComponentFactoryArguments, {}>;
17
21
 
18
22
  export default AvatarMiddleware;
@@ -13,6 +13,8 @@ type CardActionMiddleware = FunctionMiddleware<
13
13
  target: any;
14
14
  }
15
15
  ],
16
+ // Following @types/react to use {} for props.
17
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
16
18
  {}
17
19
  >;
18
20
 
@@ -30,7 +30,7 @@ type ComponentEnhancer<TComponentFactoryArguments extends any[], TProps> = (
30
30
  * The signature of the middleware is:
31
31
  *
32
32
  * ```
33
- * (...args: SetupArguments) => (next: Enhancer) => (...args: ComponentFactoryArguments) => false | React.FC<Props>
33
+ * (...args: SetupArguments) => (next: Enhancer) => (...args: ComponentFactoryArguments) => false | React.ComponentType<Props>
34
34
  * ```
35
35
  */
36
36
  type ComponentMiddleware<TSetupArguments extends any[], TComponentFactoryArguments extends any[], TProps> = (
@@ -2,21 +2,17 @@ import type { WebChatActivity } from 'botframework-webchat-core';
2
2
 
3
3
  import FunctionMiddleware, { CallFunction } from './FunctionMiddleware';
4
4
 
5
+ type GroupedActivities = readonly (readonly WebChatActivity[])[];
6
+
5
7
  type GroupActivities = CallFunction<
6
- [{ activities: WebChatActivity[] }],
7
- {
8
- sender: WebChatActivity[][];
9
- status: WebChatActivity[][];
10
- }
8
+ [Readonly<{ activities: readonly WebChatActivity[] }>],
9
+ { [key: string]: GroupedActivities }
11
10
  >;
12
11
 
13
12
  type GroupActivitiesMiddleware = FunctionMiddleware<
14
- [],
15
- [{ activities: WebChatActivity[] }],
16
- {
17
- sender: WebChatActivity[][];
18
- status: WebChatActivity[][];
19
- }
13
+ [string],
14
+ [Readonly<{ activities: readonly WebChatActivity[] }>],
15
+ { [key: string]: GroupedActivities }
20
16
  >;
21
17
 
22
18
  export default GroupActivitiesMiddleware;
@@ -0,0 +1,74 @@
1
+ import { number, object } from 'valibot';
2
+ import validateProps from './validateProps';
3
+
4
+ beforeEach(() =>
5
+ jest.spyOn(console, 'error').mockImplementation(() => {
6
+ // Intentionally left blank.
7
+ })
8
+ );
9
+
10
+ afterEach(() => jest.restoreAllMocks());
11
+
12
+ test('when isolation is not specified then success should return as-is', () => {
13
+ const props = { one: 1, two: 2 };
14
+ const result = validateProps(object({ one: number() }), props);
15
+
16
+ expect(result).toBe(props);
17
+ });
18
+
19
+ test('when no isolation then success should return as-is', () => {
20
+ const props = { one: 1, two: 2 };
21
+ const result = validateProps(object({ one: number() }), props, 'no isolation');
22
+
23
+ expect(result).toBe(props);
24
+ });
25
+
26
+ test('when in strict isolation then success should return isolated result', () => {
27
+ const props = { one: 1, two: 2 };
28
+ const result = validateProps(object({ one: number() }), props, 'strict');
29
+
30
+ expect(result).not.toBe(props);
31
+ expect(result).toEqual({ one: 1 });
32
+ });
33
+
34
+ test('when isolation is not specified then failure should throw', () => {
35
+ const props = { two: 2 };
36
+
37
+ expect(() => validateProps(object({ one: number() }), props)).toThrow();
38
+ });
39
+
40
+ test('when no isolation then failure should throw', () => {
41
+ const props = { two: 2 };
42
+
43
+ expect(() => validateProps(object({ one: number() }), props, 'no isolation')).toThrow();
44
+ });
45
+
46
+ test('when in strict isolation then failure should throw', () => {
47
+ const props = { two: 2 };
48
+
49
+ expect(() => validateProps(object({ one: number() }), props, 'strict')).toThrow();
50
+ });
51
+
52
+ test('when under production mode and isolation is not specified then failure should warn', () => {
53
+ process.env.NODE_ENV = 'production';
54
+
55
+ const props = { two: 2 };
56
+
57
+ expect(validateProps(object({ one: number() }), props, 'strict')).toBe(props);
58
+ });
59
+
60
+ test('when under production mode and no isolation then failure should warn', () => {
61
+ process.env.NODE_ENV = 'production';
62
+
63
+ const props = { two: 2 };
64
+
65
+ expect(validateProps(object({ one: number() }), props, 'strict')).toBe(props);
66
+ });
67
+
68
+ test('when under production mode and in strict isolation then failure should warn', () => {
69
+ process.env.NODE_ENV = 'production';
70
+
71
+ const props = { two: 2 };
72
+
73
+ expect(validateProps(object({ one: number() }), props, 'strict')).toBe(props);
74
+ });
@@ -0,0 +1,56 @@
1
+ import { parse, safeParse, type BaseIssue, type BaseSchema, type InferInput, type InferOutput } from 'valibot';
2
+
3
+ /**
4
+ * Specifies the props isolation mode.
5
+ *
6
+ * - `"no isolation"` will return the props as-is without cloning or modifications
7
+ * - `"strict"` will isolate the props using `valibot.parse()`
8
+ * - Depends on schema design, it could clone object instances, remove extraneous properties from objects, or fill in optional fields
9
+ */
10
+ type IsolationMode = 'no isolation' | 'strict';
11
+
12
+ export default function validateProps<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(
13
+ propsSchema: TSchema,
14
+ props: unknown,
15
+ isolationMode?: 'no isolation' | undefined
16
+ ): InferInput<TSchema>;
17
+
18
+ export default function validateProps<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(
19
+ propsSchema: TSchema,
20
+ props: unknown,
21
+ isolationMode?: 'strict'
22
+ ): InferOutput<TSchema>;
23
+
24
+ /**
25
+ * Validates props against the specified valibot schema when running under development mode.
26
+ *
27
+ * This function will not perform any validations when running under production mode.
28
+ *
29
+ * @param propsSchema validation schema
30
+ * @param props props to validate
31
+ * @param mode specifies the isolation mode, default to `"no isolation"`
32
+ * @returns
33
+ */
34
+ export default function validateProps<const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(
35
+ propsSchema: TSchema,
36
+ props: InferInput<TSchema>,
37
+ isolationMode?: IsolationMode | undefined
38
+ ): InferInput<TSchema> | InferOutput<TSchema> {
39
+ if (process.env.NODE_ENV === 'production') {
40
+ return props as unknown as InferInput<TSchema>;
41
+ }
42
+
43
+ if (isolationMode !== 'strict' && safeParse(propsSchema, props).success) {
44
+ return props as unknown as InferInput<TSchema>;
45
+ }
46
+
47
+ // Code path hit here when under strict isolation, or no isolation and failed earlier.
48
+
49
+ try {
50
+ return parse(propsSchema, props);
51
+ } catch (error) {
52
+ console.error('botframework-webchat: Validation error while parsing props.', error.issues);
53
+
54
+ throw error;
55
+ }
56
+ }
@@ -1,3 +0,0 @@
1
- import{warnOnce as l}from"botframework-webchat-core";import{createChainOfResponsibility as u}from"react-chain-of-responsibility";import{any as y,array as f,custom as m,safeParse as c}from"valibot";var w=Object.freeze([]);function M(i){let d=f(y([m(e=>typeof e=="function","Middleware must be a function.")])),a=e=>c(d,e).success,o=l(`"${i}" prop is invalid`),s=(e,p)=>{if(e){if(a(e))return Object.freeze(e?.map(t=>t(p)).filter(t=>!!t).map(t=>()=>t));o()}return w},{Provider:r,Proxy:n}=u();return r.displayName=`${i}Provider`,n.displayName=`${i}Proxy`,{initMiddleware:s,Provider:r,Proxy:n,types:{init:void 0,middleware:void 0,props:void 0,request:void 0}}}export{M as a};
2
- /*! For license information please see chunk-2S76JUVM.mjs.LEGAL.txt */
3
- //# sourceMappingURL=chunk-2S76JUVM.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/decorator/private/templateMiddleware.ts"],"sourcesContent":["import { warnOnce } from 'botframework-webchat-core';\nimport { createChainOfResponsibility, type ComponentMiddleware } from 'react-chain-of-responsibility';\nimport { type EmptyObject } from 'type-fest';\nimport { any, array, custom, safeParse, type Output } from 'valibot';\n\nexport type MiddlewareWithInit<M extends ComponentMiddleware<any, any, any>, I> = (init: I) => ReturnType<M> | false;\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\nexport default function templateMiddleware<Init, Request = any, Props extends {} = EmptyObject>(name: string) {\n type Middleware = ComponentMiddleware<Request, Props>;\n\n const middlewareSchema = array(\n any([custom<Middleware>(input => typeof input === 'function', 'Middleware must be a function.')])\n );\n\n const isMiddleware = (middleware: unknown): middleware is Output<typeof middlewareSchema> =>\n safeParse(middlewareSchema, middleware).success;\n\n const warnInvalid = warnOnce(`\"${name}\" prop is invalid`);\n\n const initMiddleware = (\n middleware: readonly MiddlewareWithInit<Middleware, Init>[],\n init?: Init\n ): readonly Middleware[] => {\n if (middleware) {\n if (isMiddleware(middleware)) {\n return Object.freeze(\n middleware\n ?.map(middleware => middleware(init))\n .filter((enhancer): enhancer is ReturnType<Middleware> => !!enhancer)\n .map(enhancer => () => enhancer)\n );\n }\n\n warnInvalid();\n }\n\n return EMPTY_ARRAY;\n };\n\n const { Provider, Proxy } = createChainOfResponsibility<Request, Props>();\n\n Provider.displayName = `${name}Provider`;\n Proxy.displayName = `${name}Proxy`;\n\n return {\n initMiddleware,\n Provider,\n Proxy,\n types: {\n init: undefined as Init,\n middleware: undefined as Middleware,\n props: undefined as Props,\n request: undefined as Request\n }\n };\n}\n"],"mappings":"AAAA,OAAS,YAAAA,MAAgB,4BACzB,OAAS,+BAAAC,MAA6D,gCAEtE,OAAS,OAAAC,EAAK,SAAAC,EAAO,UAAAC,EAAQ,aAAAC,MAA8B,UAI3D,IAAMC,EAAc,OAAO,OAAO,CAAC,CAAC,EAErB,SAARC,EAAyFC,EAAc,CAG5G,IAAMC,EAAmBN,EACvBD,EAAI,CAACE,EAAmBM,GAAS,OAAOA,GAAU,WAAY,gCAAgC,CAAC,CAAC,CAClG,EAEMC,EAAgBC,GACpBP,EAAUI,EAAkBG,CAAU,EAAE,QAEpCC,EAAcb,EAAS,IAAIQ,CAAI,mBAAmB,EAElDM,EAAiB,CACrBF,EACAG,IAC0B,CAC1B,GAAIH,EAAY,CACd,GAAID,EAAaC,CAAU,EACzB,OAAO,OAAO,OACZA,GACI,IAAIA,GAAcA,EAAWG,CAAI,CAAC,EACnC,OAAQC,GAAiD,CAAC,CAACA,CAAQ,EACnE,IAAIA,GAAY,IAAMA,CAAQ,CACnC,EAGFH,EAAY,CACd,CAEA,OAAOP,CACT,EAEM,CAAE,SAAAW,EAAU,MAAAC,CAAM,EAAIjB,EAA4C,EAExE,OAAAgB,EAAS,YAAc,GAAGT,CAAI,WAC9BU,EAAM,YAAc,GAAGV,CAAI,QAEpB,CACL,eAAAM,EACA,SAAAG,EACA,MAAAC,EACA,MAAO,CACL,KAAM,OACN,WAAY,OACZ,MAAO,OACP,QAAS,MACX,CACF,CACF","names":["warnOnce","createChainOfResponsibility","any","array","custom","safeParse","EMPTY_ARRAY","templateMiddleware","name","middlewareSchema","input","isMiddleware","middleware","warnInvalid","initMiddleware","init","enhancer","Provider","Proxy"]}
@@ -1,3 +0,0 @@
1
- var g=Object.create;var e=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),n=(b,a)=>{for(var c in a)e(b,c,{get:a[c],enumerable:!0})},l=(b,a,c,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of i(a))!k.call(b,d)&&d!==c&&e(b,d,{get:()=>a[d],enumerable:!(f=h(a,d))||f.enumerable});return b};var o=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?e(c,"default",{value:b,enumerable:!0}):c,b));export{m as a,n as b,o as c};
2
- /*! For license information please see chunk-J6D5YEY6.mjs.LEGAL.txt */
3
- //# sourceMappingURL=chunk-J6D5YEY6.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,3 +0,0 @@
1
- import{createContext as o}from"react";var e=o(void 0);e.displayName="WebChatAPIContext";var i=e;import{useContext as n}from"react";function r(){let t=n(i);if(!t)throw new Error("This hook can only be used on a component that is a descendant of <Composer>");return t}export{i as a,r as b};
2
- /*! For license information please see chunk-ZAMHKQQC.mjs.LEGAL.txt */
3
- //# sourceMappingURL=chunk-ZAMHKQQC.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/hooks/internal/WebChatAPIContext.ts","../src/hooks/internal/useWebChatAPIContext.ts"],"sourcesContent":["import {\n type DirectLineJSBotConnection,\n type Observable,\n type WebChatActivity,\n type sendFiles,\n type sendMessage,\n type setSendBoxAttachments\n} from 'botframework-webchat-core';\nimport { createContext } from 'react';\n\nimport { StrictStyleOptions } from '../../StyleOptions';\nimport { LegacyActivityRenderer } from '../../types/ActivityMiddleware';\nimport { RenderActivityStatus } from '../../types/ActivityStatusMiddleware';\nimport { AttachmentForScreenReaderComponentFactory } from '../../types/AttachmentForScreenReaderMiddleware';\nimport { RenderAttachment } from '../../types/AttachmentMiddleware';\nimport { AvatarComponentFactory } from '../../types/AvatarMiddleware';\nimport { PerformCardAction } from '../../types/CardActionMiddleware';\nimport { GroupActivities } from '../../types/GroupActivitiesMiddleware';\nimport LocalizedStrings from '../../types/LocalizedStrings';\nimport { type Notification } from '../../types/Notification';\nimport PrecompiledGlobalize from '../../types/PrecompiledGlobalize';\nimport { ScrollToEndButtonComponentFactory } from '../../types/ScrollToEndButtonMiddleware';\nimport TelemetryMeasurementEvent from '../../types/TelemetryMeasurementEvent';\nimport { RenderToast } from '../../types/ToastMiddleware';\n\ntype WebChatAPIContext = {\n activityRenderer?: LegacyActivityRenderer;\n activityStatusRenderer: RenderActivityStatus;\n attachmentForScreenReaderRenderer?: AttachmentForScreenReaderComponentFactory;\n attachmentRenderer?: RenderAttachment;\n avatarRenderer: AvatarComponentFactory;\n clearSuggestedActions?: () => void;\n dir?: string;\n directLine?: DirectLineJSBotConnection;\n disabled?: boolean;\n dismissNotification?: (id: string) => void;\n downscaleImageToDataURL?: (\n blob: Blob,\n maxWidth: number,\n maxHeight: number,\n type: string,\n quality: number\n ) => Promise<URL>;\n emitTypingIndicator?: () => void;\n grammars?: any;\n groupActivities?: GroupActivities;\n internalErrorBoxClass?: React.Component | Function;\n language?: string;\n localizedGlobalizeState?: PrecompiledGlobalize[];\n localizedStrings?: { [language: string]: LocalizedStrings };\n markActivity?: (activity: { id: string }, name: string, value?: any) => void;\n onCardAction?: PerformCardAction;\n onTelemetry?: (event: TelemetryMeasurementEvent) => void;\n postActivity?: (activity: WebChatActivity) => Observable<string>;\n renderMarkdown?: (\n markdown: string,\n newLineOptions: { markdownRespectCRLF: boolean },\n linkOptions: { externalLinkAlt: string }\n ) => string;\n scrollToEndButtonRenderer?: ScrollToEndButtonComponentFactory;\n selectVoice?: (\n voices: (typeof window.SpeechSynthesisVoice)[],\n activity: WebChatActivity\n ) => typeof window.SpeechSynthesisVoice;\n sendEvent?: (name: string, value: any) => void;\n sendFiles?: (...args: Parameters<typeof sendFiles>) => void;\n sendMessage?: (...args: Parameters<typeof sendMessage>) => void;\n sendMessageBack?: (value: any, text?: string, displayText?: string) => void;\n sendPostBack?: (value?: any) => void;\n sendTypingIndicator?: boolean;\n setDictateInterims?: (interims: string[]) => void;\n setDictateState?: (dictateState: number) => void;\n setNotification?: (notification: Notification) => void;\n setSendBox?: (value: string) => void;\n setSendBoxAttachments?: (...args: Parameters<typeof setSendBoxAttachments>) => void;\n setSendTimeout?: (timeout: number) => void;\n startDictate?: () => void;\n startSpeakingActivity?: () => void;\n stopDictate?: () => void;\n stopSpeakingActivity?: () => void;\n styleOptions?: StrictStyleOptions;\n submitSendBox?: (method?: string, { channelData }?: { channelData: any }) => void;\n telemetryDimensionsRef?: React.Ref<any>;\n toastRenderer?: RenderToast;\n trackDimension?: (name: string, data: any) => void;\n typingIndicatorRenderer?: any; // TODO\n userID?: string;\n username?: string;\n};\n\nconst context = createContext<WebChatAPIContext>(undefined);\n\ncontext.displayName = 'WebChatAPIContext';\n\nexport default context;\n","import { useContext } from 'react';\n\nimport WebChatAPIContext from './WebChatAPIContext';\n\nexport default function useWebChatAPIContext() {\n const context = useContext(WebChatAPIContext);\n\n if (!context) {\n throw new Error('This hook can only be used on a component that is a descendant of <Composer>');\n }\n\n return context;\n}\n"],"mappings":"AAQA,OAAS,iBAAAA,MAAqB,QAkF9B,IAAMC,EAAUD,EAAiC,MAAS,EAE1DC,EAAQ,YAAc,oBAEtB,IAAOC,EAAQD,EC9Ff,OAAS,cAAAE,MAAkB,QAIZ,SAARC,GAAwC,CAC7C,IAAMC,EAAUC,EAAWC,CAAiB,EAE5C,GAAI,CAACF,EACH,MAAM,IAAI,MAAM,8EAA8E,EAGhG,OAAOA,CACT","names":["createContext","context","WebChatAPIContext_default","useContext","useWebChatAPIContext","context","useContext","WebChatAPIContext_default"]}