@microsoft/teams.client 0.2.7

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 (454) hide show
  1. package/README.md +37 -0
  2. package/dist/app.d.mts +92 -0
  3. package/dist/app.d.ts +92 -0
  4. package/dist/app.js +122 -0
  5. package/dist/app.js.map +1 -0
  6. package/dist/app.mjs +98 -0
  7. package/dist/app.mjs.map +1 -0
  8. package/dist/context/app-host.d.mts +25 -0
  9. package/dist/context/app-host.d.ts +25 -0
  10. package/dist/context/app-host.js +4 -0
  11. package/dist/context/app-host.js.map +1 -0
  12. package/dist/context/app-host.mjs +3 -0
  13. package/dist/context/app-host.mjs.map +1 -0
  14. package/dist/context/app.d.mts +69 -0
  15. package/dist/context/app.d.ts +69 -0
  16. package/dist/context/app.js +4 -0
  17. package/dist/context/app.js.map +1 -0
  18. package/dist/context/app.mjs +3 -0
  19. package/dist/context/app.mjs.map +1 -0
  20. package/dist/context/channel.d.mts +37 -0
  21. package/dist/context/channel.d.ts +37 -0
  22. package/dist/context/channel.js +4 -0
  23. package/dist/context/channel.js.map +1 -0
  24. package/dist/context/channel.mjs +3 -0
  25. package/dist/context/channel.mjs.map +1 -0
  26. package/dist/context/chat.d.mts +11 -0
  27. package/dist/context/chat.d.ts +11 -0
  28. package/dist/context/chat.js +4 -0
  29. package/dist/context/chat.js.map +1 -0
  30. package/dist/context/chat.mjs +3 -0
  31. package/dist/context/chat.mjs.map +1 -0
  32. package/dist/context/index.d.mts +74 -0
  33. package/dist/context/index.d.ts +74 -0
  34. package/dist/context/index.js +108 -0
  35. package/dist/context/index.js.map +1 -0
  36. package/dist/context/index.mjs +86 -0
  37. package/dist/context/index.mjs.map +1 -0
  38. package/dist/context/meeting.d.mts +11 -0
  39. package/dist/context/meeting.d.ts +11 -0
  40. package/dist/context/meeting.js +4 -0
  41. package/dist/context/meeting.js.map +1 -0
  42. package/dist/context/meeting.mjs +3 -0
  43. package/dist/context/meeting.mjs.map +1 -0
  44. package/dist/context/page.d.mts +40 -0
  45. package/dist/context/page.d.ts +40 -0
  46. package/dist/context/page.js +4 -0
  47. package/dist/context/page.js.map +1 -0
  48. package/dist/context/page.mjs +3 -0
  49. package/dist/context/page.mjs.map +1 -0
  50. package/dist/context/share-point-site.d.mts +31 -0
  51. package/dist/context/share-point-site.d.ts +31 -0
  52. package/dist/context/share-point-site.js +4 -0
  53. package/dist/context/share-point-site.js.map +1 -0
  54. package/dist/context/share-point-site.mjs +3 -0
  55. package/dist/context/share-point-site.mjs.map +1 -0
  56. package/dist/context/team.d.mts +42 -0
  57. package/dist/context/team.d.ts +42 -0
  58. package/dist/context/team.js +4 -0
  59. package/dist/context/team.js.map +1 -0
  60. package/dist/context/team.mjs +3 -0
  61. package/dist/context/team.mjs.map +1 -0
  62. package/dist/context/tenant.d.mts +20 -0
  63. package/dist/context/tenant.d.ts +20 -0
  64. package/dist/context/tenant.js +4 -0
  65. package/dist/context/tenant.js.map +1 -0
  66. package/dist/context/tenant.mjs +3 -0
  67. package/dist/context/tenant.mjs.map +1 -0
  68. package/dist/context/user.d.mts +63 -0
  69. package/dist/context/user.d.ts +63 -0
  70. package/dist/context/user.js +4 -0
  71. package/dist/context/user.js.map +1 -0
  72. package/dist/context/user.mjs +3 -0
  73. package/dist/context/user.mjs.map +1 -0
  74. package/dist/index-5Ok-M8A0.d.ts +13 -0
  75. package/dist/index-7hUkxLxx.d.mts +17 -0
  76. package/dist/index-8IcDrPMv.d.ts +70 -0
  77. package/dist/index-D6kqtGPa.d.mts +13 -0
  78. package/dist/index-DJal_Cxb.d.mts +70 -0
  79. package/dist/index-DrTQ_GLN.d.mts +21 -0
  80. package/dist/index-DtE-Eb9L.d.ts +17 -0
  81. package/dist/index-_Hc8oq9_.d.ts +21 -0
  82. package/dist/index.d.mts +56 -0
  83. package/dist/index.d.ts +56 -0
  84. package/dist/index.js +43 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/index.mjs +6 -0
  87. package/dist/index.mjs.map +1 -0
  88. package/dist/msal-utils.d.mts +30 -0
  89. package/dist/msal-utils.d.ts +30 -0
  90. package/dist/msal-utils.js +86 -0
  91. package/dist/msal-utils.js.map +1 -0
  92. package/dist/msal-utils.mjs +62 -0
  93. package/dist/msal-utils.mjs.map +1 -0
  94. package/dist/window/client-error.d.mts +10 -0
  95. package/dist/window/client-error.d.ts +10 -0
  96. package/dist/window/client-error.js +4 -0
  97. package/dist/window/client-error.js.map +1 -0
  98. package/dist/window/client-error.mjs +3 -0
  99. package/dist/window/client-error.mjs.map +1 -0
  100. package/dist/window/clients/app-entity.d.mts +12 -0
  101. package/dist/window/clients/app-entity.d.ts +12 -0
  102. package/dist/window/clients/app-entity.js +15 -0
  103. package/dist/window/clients/app-entity.js.map +1 -0
  104. package/dist/window/clients/app-entity.mjs +13 -0
  105. package/dist/window/clients/app-entity.mjs.map +1 -0
  106. package/dist/window/clients/app-initialization.d.mts +50 -0
  107. package/dist/window/clients/app-initialization.d.ts +50 -0
  108. package/dist/window/clients/app-initialization.js +24 -0
  109. package/dist/window/clients/app-initialization.js.map +1 -0
  110. package/dist/window/clients/app-initialization.mjs +22 -0
  111. package/dist/window/clients/app-initialization.mjs.map +1 -0
  112. package/dist/window/clients/app-install-dialog.d.mts +21 -0
  113. package/dist/window/clients/app-install-dialog.d.ts +21 -0
  114. package/dist/window/clients/app-install-dialog.js +22 -0
  115. package/dist/window/clients/app-install-dialog.js.map +1 -0
  116. package/dist/window/clients/app-install-dialog.mjs +20 -0
  117. package/dist/window/clients/app-install-dialog.mjs.map +1 -0
  118. package/dist/window/clients/authentication.d.mts +66 -0
  119. package/dist/window/clients/authentication.d.ts +66 -0
  120. package/dist/window/clients/authentication.js +47 -0
  121. package/dist/window/clients/authentication.js.map +1 -0
  122. package/dist/window/clients/authentication.mjs +45 -0
  123. package/dist/window/clients/authentication.mjs.map +1 -0
  124. package/dist/window/clients/bar-code.d.mts +13 -0
  125. package/dist/window/clients/bar-code.d.ts +13 -0
  126. package/dist/window/clients/bar-code.js +20 -0
  127. package/dist/window/clients/bar-code.js.map +1 -0
  128. package/dist/window/clients/bar-code.mjs +18 -0
  129. package/dist/window/clients/bar-code.mjs.map +1 -0
  130. package/dist/window/clients/calendar.d.mts +47 -0
  131. package/dist/window/clients/calendar.d.ts +47 -0
  132. package/dist/window/clients/calendar.js +18 -0
  133. package/dist/window/clients/calendar.js.map +1 -0
  134. package/dist/window/clients/calendar.mjs +16 -0
  135. package/dist/window/clients/calendar.mjs.map +1 -0
  136. package/dist/window/clients/call.d.mts +32 -0
  137. package/dist/window/clients/call.d.ts +32 -0
  138. package/dist/window/clients/call.js +16 -0
  139. package/dist/window/clients/call.js.map +1 -0
  140. package/dist/window/clients/call.mjs +14 -0
  141. package/dist/window/clients/call.mjs.map +1 -0
  142. package/dist/window/clients/clipboard.d.mts +26 -0
  143. package/dist/window/clients/clipboard.d.ts +26 -0
  144. package/dist/window/clients/clipboard.js +19 -0
  145. package/dist/window/clients/clipboard.js.map +1 -0
  146. package/dist/window/clients/clipboard.mjs +17 -0
  147. package/dist/window/clients/clipboard.mjs.map +1 -0
  148. package/dist/window/clients/conversation.d.mts +53 -0
  149. package/dist/window/clients/conversation.d.ts +53 -0
  150. package/dist/window/clients/conversation.js +25 -0
  151. package/dist/window/clients/conversation.js.map +1 -0
  152. package/dist/window/clients/conversation.mjs +23 -0
  153. package/dist/window/clients/conversation.mjs.map +1 -0
  154. package/dist/window/clients/dialog.d.mts +81 -0
  155. package/dist/window/clients/dialog.d.ts +81 -0
  156. package/dist/window/clients/dialog.js +37 -0
  157. package/dist/window/clients/dialog.js.map +1 -0
  158. package/dist/window/clients/dialog.mjs +35 -0
  159. package/dist/window/clients/dialog.mjs.map +1 -0
  160. package/dist/window/clients/index.d.mts +84 -0
  161. package/dist/window/clients/index.d.ts +84 -0
  162. package/dist/window/clients/index.js +159 -0
  163. package/dist/window/clients/index.js.map +1 -0
  164. package/dist/window/clients/index.mjs +87 -0
  165. package/dist/window/clients/index.mjs.map +1 -0
  166. package/dist/window/clients/location.d.mts +14 -0
  167. package/dist/window/clients/location.d.ts +14 -0
  168. package/dist/window/clients/location.js +22 -0
  169. package/dist/window/clients/location.js.map +1 -0
  170. package/dist/window/clients/location.mjs +20 -0
  171. package/dist/window/clients/location.mjs.map +1 -0
  172. package/dist/window/clients/media.d.mts +190 -0
  173. package/dist/window/clients/media.d.ts +190 -0
  174. package/dist/window/clients/media.js +75 -0
  175. package/dist/window/clients/media.js.map +1 -0
  176. package/dist/window/clients/media.mjs +68 -0
  177. package/dist/window/clients/media.mjs.map +1 -0
  178. package/dist/window/clients/notification.d.mts +17 -0
  179. package/dist/window/clients/notification.d.ts +17 -0
  180. package/dist/window/clients/notification.js +15 -0
  181. package/dist/window/clients/notification.js.map +1 -0
  182. package/dist/window/clients/notification.mjs +13 -0
  183. package/dist/window/clients/notification.mjs.map +1 -0
  184. package/dist/window/clients/permission.d.mts +14 -0
  185. package/dist/window/clients/permission.d.ts +14 -0
  186. package/dist/window/clients/permission.js +20 -0
  187. package/dist/window/clients/permission.js.map +1 -0
  188. package/dist/window/clients/permission.mjs +18 -0
  189. package/dist/window/clients/permission.mjs.map +1 -0
  190. package/dist/window/index.d.mts +59 -0
  191. package/dist/window/index.d.ts +59 -0
  192. package/dist/window/index.js +35 -0
  193. package/dist/window/index.js.map +1 -0
  194. package/dist/window/index.mjs +6 -0
  195. package/dist/window/index.mjs.map +1 -0
  196. package/dist/window/message.d.mts +24 -0
  197. package/dist/window/message.d.ts +24 -0
  198. package/dist/window/message.js +4 -0
  199. package/dist/window/message.js.map +1 -0
  200. package/dist/window/message.mjs +3 -0
  201. package/dist/window/message.mjs.map +1 -0
  202. package/dist/window/runtime.d.mts +96 -0
  203. package/dist/window/runtime.d.ts +96 -0
  204. package/dist/window/runtime.js +4 -0
  205. package/dist/window/runtime.js.map +1 -0
  206. package/dist/window/runtime.mjs +3 -0
  207. package/dist/window/runtime.mjs.map +1 -0
  208. package/dist/window/types/action-open-url-type.d.mts +15 -0
  209. package/dist/window/types/action-open-url-type.d.ts +15 -0
  210. package/dist/window/types/action-open-url-type.js +13 -0
  211. package/dist/window/types/action-open-url-type.js.map +1 -0
  212. package/dist/window/types/action-open-url-type.mjs +11 -0
  213. package/dist/window/types/action-open-url-type.mjs.map +1 -0
  214. package/dist/window/types/app-eligibility-info.d.mts +48 -0
  215. package/dist/window/types/app-eligibility-info.d.ts +48 -0
  216. package/dist/window/types/app-eligibility-info.js +4 -0
  217. package/dist/window/types/app-eligibility-info.js.map +1 -0
  218. package/dist/window/types/app-eligibility-info.mjs +3 -0
  219. package/dist/window/types/app-eligibility-info.mjs.map +1 -0
  220. package/dist/window/types/bar-code-config.d.mts +13 -0
  221. package/dist/window/types/bar-code-config.d.ts +13 -0
  222. package/dist/window/types/bar-code-config.js +4 -0
  223. package/dist/window/types/bar-code-config.js.map +1 -0
  224. package/dist/window/types/bar-code-config.mjs +3 -0
  225. package/dist/window/types/bar-code-config.mjs.map +1 -0
  226. package/dist/window/types/call-modality.d.mts +21 -0
  227. package/dist/window/types/call-modality.d.ts +21 -0
  228. package/dist/window/types/call-modality.js +14 -0
  229. package/dist/window/types/call-modality.js.map +1 -0
  230. package/dist/window/types/call-modality.mjs +12 -0
  231. package/dist/window/types/call-modality.mjs.map +1 -0
  232. package/dist/window/types/channel-type.d.mts +17 -0
  233. package/dist/window/types/channel-type.d.ts +17 -0
  234. package/dist/window/types/channel-type.js +12 -0
  235. package/dist/window/types/channel-type.js.map +1 -0
  236. package/dist/window/types/channel-type.mjs +10 -0
  237. package/dist/window/types/channel-type.mjs.map +1 -0
  238. package/dist/window/types/context.d.mts +275 -0
  239. package/dist/window/types/context.d.ts +275 -0
  240. package/dist/window/types/context.js +4 -0
  241. package/dist/window/types/context.js.map +1 -0
  242. package/dist/window/types/context.mjs +3 -0
  243. package/dist/window/types/context.mjs.map +1 -0
  244. package/dist/window/types/data-residency.d.mts +6 -0
  245. package/dist/window/types/data-residency.d.ts +6 -0
  246. package/dist/window/types/data-residency.js +4 -0
  247. package/dist/window/types/data-residency.js.map +1 -0
  248. package/dist/window/types/data-residency.mjs +3 -0
  249. package/dist/window/types/data-residency.mjs.map +1 -0
  250. package/dist/window/types/dialog/dialog-dimension.d.mts +17 -0
  251. package/dist/window/types/dialog/dialog-dimension.d.ts +17 -0
  252. package/dist/window/types/dialog/dialog-dimension.js +12 -0
  253. package/dist/window/types/dialog/dialog-dimension.js.map +1 -0
  254. package/dist/window/types/dialog/dialog-dimension.mjs +10 -0
  255. package/dist/window/types/dialog/dialog-dimension.mjs.map +1 -0
  256. package/dist/window/types/dialog/dialog-info.d.mts +43 -0
  257. package/dist/window/types/dialog/dialog-info.d.ts +43 -0
  258. package/dist/window/types/dialog/dialog-info.js +4 -0
  259. package/dist/window/types/dialog/dialog-info.js.map +1 -0
  260. package/dist/window/types/dialog/dialog-info.mjs +3 -0
  261. package/dist/window/types/dialog/dialog-info.mjs.map +1 -0
  262. package/dist/window/types/dialog/dialog-size.d.mts +14 -0
  263. package/dist/window/types/dialog/dialog-size.d.ts +14 -0
  264. package/dist/window/types/dialog/dialog-size.js +4 -0
  265. package/dist/window/types/dialog/dialog-size.js.map +1 -0
  266. package/dist/window/types/dialog/dialog-size.mjs +3 -0
  267. package/dist/window/types/dialog/dialog-size.mjs.map +1 -0
  268. package/dist/window/types/dialog/index.d.mts +3 -0
  269. package/dist/window/types/dialog/index.d.ts +3 -0
  270. package/dist/window/types/dialog/index.js +28 -0
  271. package/dist/window/types/dialog/index.js.map +1 -0
  272. package/dist/window/types/dialog/index.mjs +5 -0
  273. package/dist/window/types/dialog/index.mjs.map +1 -0
  274. package/dist/window/types/file-open-preference.d.mts +17 -0
  275. package/dist/window/types/file-open-preference.d.ts +17 -0
  276. package/dist/window/types/file-open-preference.js +12 -0
  277. package/dist/window/types/file-open-preference.js.map +1 -0
  278. package/dist/window/types/file-open-preference.mjs +10 -0
  279. package/dist/window/types/file-open-preference.mjs.map +1 -0
  280. package/dist/window/types/file.d.mts +42 -0
  281. package/dist/window/types/file.d.ts +42 -0
  282. package/dist/window/types/file.js +11 -0
  283. package/dist/window/types/file.js.map +1 -0
  284. package/dist/window/types/file.mjs +9 -0
  285. package/dist/window/types/file.mjs.map +1 -0
  286. package/dist/window/types/frame-context.d.mts +44 -0
  287. package/dist/window/types/frame-context.d.ts +44 -0
  288. package/dist/window/types/frame-context.js +17 -0
  289. package/dist/window/types/frame-context.js.map +1 -0
  290. package/dist/window/types/frame-context.mjs +15 -0
  291. package/dist/window/types/frame-context.mjs.map +1 -0
  292. package/dist/window/types/host.d.mts +73 -0
  293. package/dist/window/types/host.d.ts +73 -0
  294. package/dist/window/types/host.js +32 -0
  295. package/dist/window/types/host.js.map +1 -0
  296. package/dist/window/types/host.mjs +29 -0
  297. package/dist/window/types/host.mjs.map +1 -0
  298. package/dist/window/types/index.d.mts +39 -0
  299. package/dist/window/types/index.d.ts +39 -0
  300. package/dist/window/types/index.js +189 -0
  301. package/dist/window/types/index.js.map +1 -0
  302. package/dist/window/types/index.mjs +30 -0
  303. package/dist/window/types/index.mjs.map +1 -0
  304. package/dist/window/types/legal-age-group-classification.d.mts +34 -0
  305. package/dist/window/types/legal-age-group-classification.d.ts +34 -0
  306. package/dist/window/types/legal-age-group-classification.js +14 -0
  307. package/dist/window/types/legal-age-group-classification.js.map +1 -0
  308. package/dist/window/types/legal-age-group-classification.mjs +12 -0
  309. package/dist/window/types/legal-age-group-classification.mjs.map +1 -0
  310. package/dist/window/types/liveshare/client.d.mts +23 -0
  311. package/dist/window/types/liveshare/client.d.ts +23 -0
  312. package/dist/window/types/liveshare/client.js +4 -0
  313. package/dist/window/types/liveshare/client.js.map +1 -0
  314. package/dist/window/types/liveshare/client.mjs +3 -0
  315. package/dist/window/types/liveshare/client.mjs.map +1 -0
  316. package/dist/window/types/liveshare/container-state.d.mts +33 -0
  317. package/dist/window/types/liveshare/container-state.d.ts +33 -0
  318. package/dist/window/types/liveshare/container-state.js +13 -0
  319. package/dist/window/types/liveshare/container-state.js.map +1 -0
  320. package/dist/window/types/liveshare/container-state.mjs +11 -0
  321. package/dist/window/types/liveshare/container-state.mjs.map +1 -0
  322. package/dist/window/types/liveshare/fluid-container.d.mts +28 -0
  323. package/dist/window/types/liveshare/fluid-container.d.ts +28 -0
  324. package/dist/window/types/liveshare/fluid-container.js +4 -0
  325. package/dist/window/types/liveshare/fluid-container.js.map +1 -0
  326. package/dist/window/types/liveshare/fluid-container.mjs +3 -0
  327. package/dist/window/types/liveshare/fluid-container.mjs.map +1 -0
  328. package/dist/window/types/liveshare/fluid-tenant.d.mts +16 -0
  329. package/dist/window/types/liveshare/fluid-tenant.d.ts +16 -0
  330. package/dist/window/types/liveshare/fluid-tenant.js +4 -0
  331. package/dist/window/types/liveshare/fluid-tenant.js.map +1 -0
  332. package/dist/window/types/liveshare/fluid-tenant.mjs +3 -0
  333. package/dist/window/types/liveshare/fluid-tenant.mjs.map +1 -0
  334. package/dist/window/types/liveshare/index.d.mts +6 -0
  335. package/dist/window/types/liveshare/index.d.ts +6 -0
  336. package/dist/window/types/liveshare/index.js +42 -0
  337. package/dist/window/types/liveshare/index.js.map +1 -0
  338. package/dist/window/types/liveshare/index.mjs +7 -0
  339. package/dist/window/types/liveshare/index.mjs.map +1 -0
  340. package/dist/window/types/liveshare/ntp-time.d.mts +16 -0
  341. package/dist/window/types/liveshare/ntp-time.d.ts +16 -0
  342. package/dist/window/types/liveshare/ntp-time.js +4 -0
  343. package/dist/window/types/liveshare/ntp-time.js.map +1 -0
  344. package/dist/window/types/liveshare/ntp-time.mjs +3 -0
  345. package/dist/window/types/liveshare/ntp-time.mjs.map +1 -0
  346. package/dist/window/types/locale.d.mts +38 -0
  347. package/dist/window/types/locale.d.ts +38 -0
  348. package/dist/window/types/locale.js +4 -0
  349. package/dist/window/types/locale.js.map +1 -0
  350. package/dist/window/types/locale.mjs +3 -0
  351. package/dist/window/types/locale.mjs.map +1 -0
  352. package/dist/window/types/location.d.mts +25 -0
  353. package/dist/window/types/location.d.ts +25 -0
  354. package/dist/window/types/location.js +4 -0
  355. package/dist/window/types/location.js.map +1 -0
  356. package/dist/window/types/location.mjs +3 -0
  357. package/dist/window/types/location.mjs.map +1 -0
  358. package/dist/window/types/marketplace/cart-info.d.mts +47 -0
  359. package/dist/window/types/marketplace/cart-info.d.ts +47 -0
  360. package/dist/window/types/marketplace/cart-info.js +4 -0
  361. package/dist/window/types/marketplace/cart-info.js.map +1 -0
  362. package/dist/window/types/marketplace/cart-info.mjs +3 -0
  363. package/dist/window/types/marketplace/cart-info.mjs.map +1 -0
  364. package/dist/window/types/marketplace/cart-item.d.mts +40 -0
  365. package/dist/window/types/marketplace/cart-item.d.ts +40 -0
  366. package/dist/window/types/marketplace/cart-item.js +4 -0
  367. package/dist/window/types/marketplace/cart-item.js.map +1 -0
  368. package/dist/window/types/marketplace/cart-item.mjs +3 -0
  369. package/dist/window/types/marketplace/cart-item.mjs.map +1 -0
  370. package/dist/window/types/marketplace/cart-status.d.mts +33 -0
  371. package/dist/window/types/marketplace/cart-status.d.ts +33 -0
  372. package/dist/window/types/marketplace/cart-status.js +14 -0
  373. package/dist/window/types/marketplace/cart-status.js.map +1 -0
  374. package/dist/window/types/marketplace/cart-status.mjs +12 -0
  375. package/dist/window/types/marketplace/cart-status.mjs.map +1 -0
  376. package/dist/window/types/marketplace/cart-version.d.mts +17 -0
  377. package/dist/window/types/marketplace/cart-version.d.ts +17 -0
  378. package/dist/window/types/marketplace/cart-version.js +4 -0
  379. package/dist/window/types/marketplace/cart-version.js.map +1 -0
  380. package/dist/window/types/marketplace/cart-version.mjs +3 -0
  381. package/dist/window/types/marketplace/cart-version.mjs.map +1 -0
  382. package/dist/window/types/marketplace/cart.d.mts +29 -0
  383. package/dist/window/types/marketplace/cart.d.ts +29 -0
  384. package/dist/window/types/marketplace/cart.js +4 -0
  385. package/dist/window/types/marketplace/cart.js.map +1 -0
  386. package/dist/window/types/marketplace/cart.mjs +3 -0
  387. package/dist/window/types/marketplace/cart.mjs.map +1 -0
  388. package/dist/window/types/marketplace/index.d.mts +6 -0
  389. package/dist/window/types/marketplace/index.d.ts +6 -0
  390. package/dist/window/types/marketplace/index.js +49 -0
  391. package/dist/window/types/marketplace/index.js.map +1 -0
  392. package/dist/window/types/marketplace/index.mjs +8 -0
  393. package/dist/window/types/marketplace/index.mjs.map +1 -0
  394. package/dist/window/types/marketplace/intent.d.mts +23 -0
  395. package/dist/window/types/marketplace/intent.d.ts +23 -0
  396. package/dist/window/types/marketplace/intent.js +12 -0
  397. package/dist/window/types/marketplace/intent.js.map +1 -0
  398. package/dist/window/types/marketplace/intent.mjs +10 -0
  399. package/dist/window/types/marketplace/intent.mjs.map +1 -0
  400. package/dist/window/types/notification-type.d.mts +3 -0
  401. package/dist/window/types/notification-type.d.ts +3 -0
  402. package/dist/window/types/notification-type.js +4 -0
  403. package/dist/window/types/notification-type.js.map +1 -0
  404. package/dist/window/types/notification-type.mjs +3 -0
  405. package/dist/window/types/notification-type.mjs.map +1 -0
  406. package/dist/window/types/permission.d.mts +3 -0
  407. package/dist/window/types/permission.d.ts +3 -0
  408. package/dist/window/types/permission.js +4 -0
  409. package/dist/window/types/permission.js.map +1 -0
  410. package/dist/window/types/permission.mjs +3 -0
  411. package/dist/window/types/permission.mjs.map +1 -0
  412. package/dist/window/types/team-type.d.mts +24 -0
  413. package/dist/window/types/team-type.d.ts +24 -0
  414. package/dist/window/types/team-type.js +18 -0
  415. package/dist/window/types/team-type.js.map +1 -0
  416. package/dist/window/types/team-type.mjs +15 -0
  417. package/dist/window/types/team-type.mjs.map +1 -0
  418. package/dist/window/types/theme.d.mts +6 -0
  419. package/dist/window/types/theme.d.ts +6 -0
  420. package/dist/window/types/theme.js +4 -0
  421. package/dist/window/types/theme.js.map +1 -0
  422. package/dist/window/types/theme.mjs +3 -0
  423. package/dist/window/types/theme.mjs.map +1 -0
  424. package/dist/window/types/thread-member.d.mts +11 -0
  425. package/dist/window/types/thread-member.d.ts +11 -0
  426. package/dist/window/types/thread-member.js +4 -0
  427. package/dist/window/types/thread-member.js.map +1 -0
  428. package/dist/window/types/thread-member.mjs +3 -0
  429. package/dist/window/types/thread-member.mjs.map +1 -0
  430. package/dist/window/types/user-meeting-role.d.mts +31 -0
  431. package/dist/window/types/user-meeting-role.d.ts +31 -0
  432. package/dist/window/types/user-meeting-role.js +13 -0
  433. package/dist/window/types/user-meeting-role.js.map +1 -0
  434. package/dist/window/types/user-meeting-role.mjs +11 -0
  435. package/dist/window/types/user-meeting-role.mjs.map +1 -0
  436. package/dist/window/types/user-profile.d.mts +82 -0
  437. package/dist/window/types/user-profile.d.ts +82 -0
  438. package/dist/window/types/user-profile.js +4 -0
  439. package/dist/window/types/user-profile.js.map +1 -0
  440. package/dist/window/types/user-profile.mjs +3 -0
  441. package/dist/window/types/user-profile.mjs.map +1 -0
  442. package/dist/window/types/user-team-role.d.mts +18 -0
  443. package/dist/window/types/user-team-role.d.ts +18 -0
  444. package/dist/window/types/user-team-role.js +16 -0
  445. package/dist/window/types/user-team-role.js.map +1 -0
  446. package/dist/window/types/user-team-role.mjs +13 -0
  447. package/dist/window/types/user-team-role.mjs.map +1 -0
  448. package/dist/window/window-client.d.mts +28 -0
  449. package/dist/window/window-client.d.ts +28 -0
  450. package/dist/window/window-client.js +92 -0
  451. package/dist/window/window-client.js.map +1 -0
  452. package/dist/window/window-client.mjs +70 -0
  453. package/dist/window/window-client.mjs.map +1 -0
  454. package/package.json +57 -0
package/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # Teams: Client
2
+
3
+ <p>
4
+ <a href="https://www.npmjs.com/package/@microsoft/teams.client" target="_blank">
5
+ <img src="https://img.shields.io/npm/v/@microsoft/teams.client" />
6
+ </a>
7
+ <a href="https://www.npmjs.com/package/@microsoft/teams.client?activeTab=code" target="_blank">
8
+ <img src="https://img.shields.io/bundlephobia/min/@microsoft/teams.client" />
9
+ </a>
10
+ <a href="https://www.npmjs.com/package/@microsoft/teams.client?activeTab=dependencies" target="_blank">
11
+ <img src="https://img.shields.io/librariesio/release/npm/@microsoft/teams.client" />
12
+ </a>
13
+ <a href="https://www.npmjs.com/package/@microsoft/teams.client" target="_blank">
14
+ <img src="https://img.shields.io/npm/dw/@microsoft/teams.client" />
15
+ </a>
16
+ <a href="https://microsoft.github.io/teams.js" target="_blank">
17
+ <img src="https://img.shields.io/badge/📖 docs-open-blue" />
18
+ </a>
19
+ </p>
20
+
21
+ A client used to create app/bot surfaces such as tabs.
22
+
23
+ <a href="https://microsoft.github.io/teams.js/2.getting-started/1.create-application.html" target="_blank">
24
+ <img src="https://img.shields.io/badge/📖 Getting Started-blue?style=for-the-badge" />
25
+ </a>
26
+
27
+ ## Install
28
+
29
+ ```bash
30
+ $: npm install @microsoft/teams.client
31
+ ```
32
+
33
+ ## Dependencies
34
+
35
+ ## Links
36
+
37
+ - https://learn.microsoft.com/en-us/microsoftteams/platform/tabs/what-are-tabs?tabs=personal
package/dist/app.d.mts ADDED
@@ -0,0 +1,92 @@
1
+ import * as msal from '@azure/msal-browser';
2
+ import * as http from '@microsoft/teams.common/http';
3
+ import { ILogger } from '@microsoft/teams.common/logging';
4
+ import * as teamsJs from '@microsoft/teams-js';
5
+
6
+ type MsalOptions = {
7
+ /**
8
+ * Optional MSAL configuration. This parameter is used to construct an MSAL instance in order
9
+ * to make authenticated function calls. If omitted, a default configuration is created.
10
+ */
11
+ readonly configuration?: msal.Configuration;
12
+ /**
13
+ * Default token request options used when acquiring a token.
14
+ */
15
+ readonly defaultSilentRequest?: msal.SilentRequest;
16
+ };
17
+ type AppOptions = {
18
+ /**
19
+ * The app base url.
20
+ */
21
+ readonly baseUrl?: string;
22
+ /** App tenant ID */
23
+ readonly tenantId?: string;
24
+ /**
25
+ * Logger instance to use.
26
+ */
27
+ readonly logger?: ILogger;
28
+ /**
29
+ * Options to control how MSAL is initialized and used.
30
+ */
31
+ readonly msalOptions?: MsalOptions;
32
+ };
33
+ type AppState = {
34
+ phase: 'stopped' | 'starting';
35
+ startedAt?: never;
36
+ msalInstance?: never;
37
+ context?: never;
38
+ } | {
39
+ phase: 'started';
40
+ startedAt: Date;
41
+ msalInstance: msal.IPublicClientApplication;
42
+ context: teamsJs.app.Context;
43
+ };
44
+ type ExecOptions = ({
45
+ msalTokenRequest: msal.SilentRequest;
46
+ permission?: never;
47
+ } | {
48
+ msalTokenRequest?: never;
49
+ permission: string;
50
+ } | {
51
+ msalTokenRequest?: never;
52
+ permission?: never;
53
+ }) & {
54
+ requestHeaders?: Record<string, string>;
55
+ };
56
+ declare class App {
57
+ readonly options: AppOptions;
58
+ readonly http: http.Client;
59
+ readonly clientId: string;
60
+ protected _state: AppState;
61
+ /**
62
+ * the apps logger
63
+ */
64
+ get log(): ILogger;
65
+ protected _log: ILogger;
66
+ /**
67
+ * the date/time when the app was successfully started.
68
+ */
69
+ get startedAt(): Date | undefined;
70
+ /** the msal instance used in this app. undefined until the app is started. */
71
+ get msalInstance(): msal.IPublicClientApplication | undefined;
72
+ constructor(clientId: string, options?: AppOptions);
73
+ /**
74
+ * Starts the library and initializes the dependent teams-js and MSAL libraries.
75
+ * @returns A promise that will be fulfilled when the app has started, or
76
+ * rejected if the initialization fails or times out.
77
+ */
78
+ start(): Promise<void>;
79
+ /**
80
+ * Execute a server-side function
81
+ * @param name The unique function name
82
+ * @param data The data to send
83
+ * @param options Options
84
+ * @param options.msalTokenRequest Optional MSAL token request.
85
+ * If omitted, a default token request is used.
86
+ * @param options.requestHeaders Optional additional request headers.
87
+ * @returns The function response
88
+ */
89
+ exec<T = unknown>(name: string, data?: unknown, options?: ExecOptions): Promise<T>;
90
+ }
91
+
92
+ export { App, type AppOptions, type MsalOptions };
package/dist/app.d.ts ADDED
@@ -0,0 +1,92 @@
1
+ import * as msal from '@azure/msal-browser';
2
+ import * as http from '@microsoft/teams.common/http';
3
+ import { ILogger } from '@microsoft/teams.common/logging';
4
+ import * as teamsJs from '@microsoft/teams-js';
5
+
6
+ type MsalOptions = {
7
+ /**
8
+ * Optional MSAL configuration. This parameter is used to construct an MSAL instance in order
9
+ * to make authenticated function calls. If omitted, a default configuration is created.
10
+ */
11
+ readonly configuration?: msal.Configuration;
12
+ /**
13
+ * Default token request options used when acquiring a token.
14
+ */
15
+ readonly defaultSilentRequest?: msal.SilentRequest;
16
+ };
17
+ type AppOptions = {
18
+ /**
19
+ * The app base url.
20
+ */
21
+ readonly baseUrl?: string;
22
+ /** App tenant ID */
23
+ readonly tenantId?: string;
24
+ /**
25
+ * Logger instance to use.
26
+ */
27
+ readonly logger?: ILogger;
28
+ /**
29
+ * Options to control how MSAL is initialized and used.
30
+ */
31
+ readonly msalOptions?: MsalOptions;
32
+ };
33
+ type AppState = {
34
+ phase: 'stopped' | 'starting';
35
+ startedAt?: never;
36
+ msalInstance?: never;
37
+ context?: never;
38
+ } | {
39
+ phase: 'started';
40
+ startedAt: Date;
41
+ msalInstance: msal.IPublicClientApplication;
42
+ context: teamsJs.app.Context;
43
+ };
44
+ type ExecOptions = ({
45
+ msalTokenRequest: msal.SilentRequest;
46
+ permission?: never;
47
+ } | {
48
+ msalTokenRequest?: never;
49
+ permission: string;
50
+ } | {
51
+ msalTokenRequest?: never;
52
+ permission?: never;
53
+ }) & {
54
+ requestHeaders?: Record<string, string>;
55
+ };
56
+ declare class App {
57
+ readonly options: AppOptions;
58
+ readonly http: http.Client;
59
+ readonly clientId: string;
60
+ protected _state: AppState;
61
+ /**
62
+ * the apps logger
63
+ */
64
+ get log(): ILogger;
65
+ protected _log: ILogger;
66
+ /**
67
+ * the date/time when the app was successfully started.
68
+ */
69
+ get startedAt(): Date | undefined;
70
+ /** the msal instance used in this app. undefined until the app is started. */
71
+ get msalInstance(): msal.IPublicClientApplication | undefined;
72
+ constructor(clientId: string, options?: AppOptions);
73
+ /**
74
+ * Starts the library and initializes the dependent teams-js and MSAL libraries.
75
+ * @returns A promise that will be fulfilled when the app has started, or
76
+ * rejected if the initialization fails or times out.
77
+ */
78
+ start(): Promise<void>;
79
+ /**
80
+ * Execute a server-side function
81
+ * @param name The unique function name
82
+ * @param data The data to send
83
+ * @param options Options
84
+ * @param options.msalTokenRequest Optional MSAL token request.
85
+ * If omitted, a default token request is used.
86
+ * @param options.requestHeaders Optional additional request headers.
87
+ * @returns The function response
88
+ */
89
+ exec<T = unknown>(name: string, data?: unknown, options?: ExecOptions): Promise<T>;
90
+ }
91
+
92
+ export { App, type AppOptions, type MsalOptions };
package/dist/app.js ADDED
@@ -0,0 +1,122 @@
1
+ 'use strict';
2
+
3
+ var msal = require('@azure/msal-browser');
4
+ var http = require('@microsoft/teams.common/http');
5
+ var logging = require('@microsoft/teams.common/logging');
6
+ var teamsJs = require('@microsoft/teams-js');
7
+ var msalUtils = require('./msal-utils');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var msal__namespace = /*#__PURE__*/_interopNamespace(msal);
28
+ var http__namespace = /*#__PURE__*/_interopNamespace(http);
29
+ var teamsJs__namespace = /*#__PURE__*/_interopNamespace(teamsJs);
30
+
31
+ class App {
32
+ options;
33
+ http;
34
+ clientId;
35
+ _state = { phase: "stopped" };
36
+ /**
37
+ * the apps logger
38
+ */
39
+ get log() {
40
+ return this._log;
41
+ }
42
+ _log;
43
+ /**
44
+ * the date/time when the app was successfully started.
45
+ */
46
+ get startedAt() {
47
+ return this._state?.startedAt;
48
+ }
49
+ /** the msal instance used in this app. undefined until the app is started. */
50
+ get msalInstance() {
51
+ return this._state.msalInstance;
52
+ }
53
+ constructor(clientId, options = {}) {
54
+ if (!clientId) {
55
+ throw new Error("Invalid client ID.");
56
+ }
57
+ this.clientId = clientId;
58
+ this.options = options;
59
+ this._log = options?.logger || new logging.ConsoleLogger("@teams/client");
60
+ this.http = new http__namespace.Client({ baseUrl: options?.baseUrl });
61
+ }
62
+ /**
63
+ * Starts the library and initializes the dependent teams-js and MSAL libraries.
64
+ * @returns A promise that will be fulfilled when the app has started, or
65
+ * rejected if the initialization fails or times out.
66
+ */
67
+ async start() {
68
+ if (this._state.phase !== "stopped") {
69
+ this._log.debug(`app already ${this._state.phase}`);
70
+ return;
71
+ }
72
+ this._log.debug("app starting");
73
+ this._state = { phase: "starting" };
74
+ await teamsJs__namespace.app.initialize();
75
+ const context = await teamsJs__namespace.app.getContext();
76
+ const msalConfig = this.options.msalOptions?.configuration ?? msalUtils.buildMsalConfig(this.clientId, this._log);
77
+ const msalInstance = await msal__namespace.createNestablePublicClientApplication(msalConfig);
78
+ await msalInstance.initialize();
79
+ this._state = { phase: "started", msalInstance, context, startedAt: /* @__PURE__ */ new Date() };
80
+ this._log.debug("app started");
81
+ }
82
+ /**
83
+ * Execute a server-side function
84
+ * @param name The unique function name
85
+ * @param data The data to send
86
+ * @param options Options
87
+ * @param options.msalTokenRequest Optional MSAL token request.
88
+ * If omitted, a default token request is used.
89
+ * @param options.requestHeaders Optional additional request headers.
90
+ * @returns The function response
91
+ */
92
+ async exec(name, data, options) {
93
+ if (this._state.phase !== "started") {
94
+ throw new Error("App not started");
95
+ }
96
+ const { context } = this._state;
97
+ const accessToken = await msalUtils.acquireMsalAccessToken(
98
+ this._state.msalInstance,
99
+ options?.msalTokenRequest ?? msalUtils.getStandardExecSilentRequest(this.clientId, options?.permission),
100
+ this._log
101
+ );
102
+ const res = await this.http.post(`/api/functions/${name}`, data, {
103
+ headers: {
104
+ authorization: `Bearer ${accessToken}`,
105
+ "x-teams-app-session-id": context.app.sessionId,
106
+ "x-teams-channel-id": context.channel?.id,
107
+ "x-teams-chat-id": context.chat?.id,
108
+ "x-teams-meeting-id": context.meeting?.id,
109
+ "x-teams-message-id": context.app.parentMessageId,
110
+ "x-teams-page-id": context.page.id,
111
+ "x-teams-sub-page-id": context.page.subPageId,
112
+ "x-teams-team-id": context.team?.internalId,
113
+ ...options?.requestHeaders ?? {}
114
+ }
115
+ });
116
+ return res.data;
117
+ }
118
+ }
119
+
120
+ exports.App = App;
121
+ //# sourceMappingURL=app.js.map
122
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/app.ts"],"names":["ConsoleLogger","http","teamsJs","buildMsalConfig","msal","acquireMsalAccessToken","getStandardExecSilentRequest"],"mappings":"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","file":"app.js","sourcesContent":["import * as msal from '@azure/msal-browser';\nimport * as http from '@microsoft/teams.common/http';\nimport { ILogger, ConsoleLogger } from '@microsoft/teams.common/logging';\nimport * as teamsJs from '@microsoft/teams-js';\n\nimport {\n acquireMsalAccessToken,\n buildMsalConfig,\n getStandardExecSilentRequest,\n} from './msal-utils';\n\nexport type MsalOptions = {\n /**\n * Optional MSAL configuration. This parameter is used to construct an MSAL instance in order\n * to make authenticated function calls. If omitted, a default configuration is created.\n */\n readonly configuration?: msal.Configuration;\n /**\n * Default token request options used when acquiring a token.\n */\n readonly defaultSilentRequest?: msal.SilentRequest;\n};\n\nexport type AppOptions = {\n /**\n * The app base url.\n */\n readonly baseUrl?: string;\n\n /** App tenant ID */\n readonly tenantId?: string;\n\n /**\n * Logger instance to use.\n */\n readonly logger?: ILogger;\n\n /**\n * Options to control how MSAL is initialized and used.\n */\n readonly msalOptions?: MsalOptions;\n};\n\ntype AppState =\n | {\n phase: 'stopped' | 'starting';\n startedAt?: never;\n msalInstance?: never;\n context?: never;\n }\n | {\n phase: 'started';\n startedAt: Date;\n msalInstance: msal.IPublicClientApplication;\n context: teamsJs.app.Context;\n };\n\ntype ExecOptions = (\n | { msalTokenRequest: msal.SilentRequest; permission?: never }\n | { msalTokenRequest?: never; permission: string }\n | { msalTokenRequest?: never; permission?: never }\n) & {\n requestHeaders?: Record<string, string>;\n};\n\nexport class App {\n readonly options: AppOptions;\n readonly http: http.Client;\n readonly clientId: string;\n protected _state: AppState = { phase: 'stopped' };\n\n /**\n * the apps logger\n */\n get log() {\n return this._log;\n }\n protected _log: ILogger;\n\n /**\n * the date/time when the app was successfully started.\n */\n get startedAt() {\n return this._state?.startedAt;\n }\n\n /** the msal instance used in this app. undefined until the app is started. */\n get msalInstance() {\n return this._state.msalInstance;\n }\n\n constructor(clientId: string, options: AppOptions = {}) {\n if (!clientId) {\n throw new Error('Invalid client ID.');\n }\n\n this.clientId = clientId;\n this.options = options;\n this._log = options?.logger || new ConsoleLogger('@teams/client');\n this.http = new http.Client({ baseUrl: options?.baseUrl });\n }\n\n /**\n * Starts the library and initializes the dependent teams-js and MSAL libraries.\n * @returns A promise that will be fulfilled when the app has started, or\n * rejected if the initialization fails or times out.\n */\n async start(): Promise<void> {\n if (this._state.phase !== 'stopped') {\n this._log.debug(`app already ${this._state.phase}`);\n return;\n }\n\n this._log.debug('app starting');\n this._state = { phase: 'starting' };\n\n await teamsJs.app.initialize();\n const context = await teamsJs.app.getContext();\n\n const msalConfig =\n this.options.msalOptions?.configuration ?? buildMsalConfig(this.clientId, this._log);\n const msalInstance = await msal.createNestablePublicClientApplication(msalConfig);\n await msalInstance.initialize();\n\n this._state = { phase: 'started', msalInstance, context, startedAt: new Date() };\n this._log.debug('app started');\n }\n\n /**\n * Execute a server-side function\n * @param name The unique function name\n * @param data The data to send\n * @param options Options\n * @param options.msalTokenRequest Optional MSAL token request.\n * If omitted, a default token request is used.\n * @param options.requestHeaders Optional additional request headers.\n * @returns The function response\n */\n async exec<T = unknown>(name: string, data?: unknown, options?: ExecOptions): Promise<T> {\n if (this._state.phase !== 'started') {\n throw new Error('App not started');\n }\n\n const { context } = this._state;\n const accessToken = await acquireMsalAccessToken(\n this._state.msalInstance,\n options?.msalTokenRequest ?? getStandardExecSilentRequest(this.clientId, options?.permission),\n this._log\n );\n\n const res = await this.http.post<T>(`/api/functions/${name}`, data, {\n headers: {\n authorization: `Bearer ${accessToken}`,\n 'x-teams-app-session-id': context.app.sessionId,\n 'x-teams-channel-id': context.channel?.id,\n 'x-teams-chat-id': context.chat?.id,\n 'x-teams-meeting-id': context.meeting?.id,\n 'x-teams-message-id': context.app.parentMessageId,\n 'x-teams-page-id': context.page.id,\n 'x-teams-sub-page-id': context.page.subPageId,\n 'x-teams-team-id': context.team?.internalId,\n ...(options?.requestHeaders ?? {}),\n },\n });\n\n return res.data;\n }\n}\n"]}
package/dist/app.mjs ADDED
@@ -0,0 +1,98 @@
1
+ import * as msal from '@azure/msal-browser';
2
+ import * as http from '@microsoft/teams.common/http';
3
+ import { ConsoleLogger } from '@microsoft/teams.common/logging';
4
+ import * as teamsJs from '@microsoft/teams-js';
5
+ import { buildMsalConfig, acquireMsalAccessToken, getStandardExecSilentRequest } from './msal-utils';
6
+
7
+ class App {
8
+ options;
9
+ http;
10
+ clientId;
11
+ _state = { phase: "stopped" };
12
+ /**
13
+ * the apps logger
14
+ */
15
+ get log() {
16
+ return this._log;
17
+ }
18
+ _log;
19
+ /**
20
+ * the date/time when the app was successfully started.
21
+ */
22
+ get startedAt() {
23
+ return this._state?.startedAt;
24
+ }
25
+ /** the msal instance used in this app. undefined until the app is started. */
26
+ get msalInstance() {
27
+ return this._state.msalInstance;
28
+ }
29
+ constructor(clientId, options = {}) {
30
+ if (!clientId) {
31
+ throw new Error("Invalid client ID.");
32
+ }
33
+ this.clientId = clientId;
34
+ this.options = options;
35
+ this._log = options?.logger || new ConsoleLogger("@teams/client");
36
+ this.http = new http.Client({ baseUrl: options?.baseUrl });
37
+ }
38
+ /**
39
+ * Starts the library and initializes the dependent teams-js and MSAL libraries.
40
+ * @returns A promise that will be fulfilled when the app has started, or
41
+ * rejected if the initialization fails or times out.
42
+ */
43
+ async start() {
44
+ if (this._state.phase !== "stopped") {
45
+ this._log.debug(`app already ${this._state.phase}`);
46
+ return;
47
+ }
48
+ this._log.debug("app starting");
49
+ this._state = { phase: "starting" };
50
+ await teamsJs.app.initialize();
51
+ const context = await teamsJs.app.getContext();
52
+ const msalConfig = this.options.msalOptions?.configuration ?? buildMsalConfig(this.clientId, this._log);
53
+ const msalInstance = await msal.createNestablePublicClientApplication(msalConfig);
54
+ await msalInstance.initialize();
55
+ this._state = { phase: "started", msalInstance, context, startedAt: /* @__PURE__ */ new Date() };
56
+ this._log.debug("app started");
57
+ }
58
+ /**
59
+ * Execute a server-side function
60
+ * @param name The unique function name
61
+ * @param data The data to send
62
+ * @param options Options
63
+ * @param options.msalTokenRequest Optional MSAL token request.
64
+ * If omitted, a default token request is used.
65
+ * @param options.requestHeaders Optional additional request headers.
66
+ * @returns The function response
67
+ */
68
+ async exec(name, data, options) {
69
+ if (this._state.phase !== "started") {
70
+ throw new Error("App not started");
71
+ }
72
+ const { context } = this._state;
73
+ const accessToken = await acquireMsalAccessToken(
74
+ this._state.msalInstance,
75
+ options?.msalTokenRequest ?? getStandardExecSilentRequest(this.clientId, options?.permission),
76
+ this._log
77
+ );
78
+ const res = await this.http.post(`/api/functions/${name}`, data, {
79
+ headers: {
80
+ authorization: `Bearer ${accessToken}`,
81
+ "x-teams-app-session-id": context.app.sessionId,
82
+ "x-teams-channel-id": context.channel?.id,
83
+ "x-teams-chat-id": context.chat?.id,
84
+ "x-teams-meeting-id": context.meeting?.id,
85
+ "x-teams-message-id": context.app.parentMessageId,
86
+ "x-teams-page-id": context.page.id,
87
+ "x-teams-sub-page-id": context.page.subPageId,
88
+ "x-teams-team-id": context.team?.internalId,
89
+ ...options?.requestHeaders ?? {}
90
+ }
91
+ });
92
+ return res.data;
93
+ }
94
+ }
95
+
96
+ export { App };
97
+ //# sourceMappingURL=app.mjs.map
98
+ //# sourceMappingURL=app.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/app.ts"],"names":[],"mappings":"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","file":"app.mjs","sourcesContent":["import * as msal from '@azure/msal-browser';\nimport * as http from '@microsoft/teams.common/http';\nimport { ILogger, ConsoleLogger } from '@microsoft/teams.common/logging';\nimport * as teamsJs from '@microsoft/teams-js';\n\nimport {\n acquireMsalAccessToken,\n buildMsalConfig,\n getStandardExecSilentRequest,\n} from './msal-utils';\n\nexport type MsalOptions = {\n /**\n * Optional MSAL configuration. This parameter is used to construct an MSAL instance in order\n * to make authenticated function calls. If omitted, a default configuration is created.\n */\n readonly configuration?: msal.Configuration;\n /**\n * Default token request options used when acquiring a token.\n */\n readonly defaultSilentRequest?: msal.SilentRequest;\n};\n\nexport type AppOptions = {\n /**\n * The app base url.\n */\n readonly baseUrl?: string;\n\n /** App tenant ID */\n readonly tenantId?: string;\n\n /**\n * Logger instance to use.\n */\n readonly logger?: ILogger;\n\n /**\n * Options to control how MSAL is initialized and used.\n */\n readonly msalOptions?: MsalOptions;\n};\n\ntype AppState =\n | {\n phase: 'stopped' | 'starting';\n startedAt?: never;\n msalInstance?: never;\n context?: never;\n }\n | {\n phase: 'started';\n startedAt: Date;\n msalInstance: msal.IPublicClientApplication;\n context: teamsJs.app.Context;\n };\n\ntype ExecOptions = (\n | { msalTokenRequest: msal.SilentRequest; permission?: never }\n | { msalTokenRequest?: never; permission: string }\n | { msalTokenRequest?: never; permission?: never }\n) & {\n requestHeaders?: Record<string, string>;\n};\n\nexport class App {\n readonly options: AppOptions;\n readonly http: http.Client;\n readonly clientId: string;\n protected _state: AppState = { phase: 'stopped' };\n\n /**\n * the apps logger\n */\n get log() {\n return this._log;\n }\n protected _log: ILogger;\n\n /**\n * the date/time when the app was successfully started.\n */\n get startedAt() {\n return this._state?.startedAt;\n }\n\n /** the msal instance used in this app. undefined until the app is started. */\n get msalInstance() {\n return this._state.msalInstance;\n }\n\n constructor(clientId: string, options: AppOptions = {}) {\n if (!clientId) {\n throw new Error('Invalid client ID.');\n }\n\n this.clientId = clientId;\n this.options = options;\n this._log = options?.logger || new ConsoleLogger('@teams/client');\n this.http = new http.Client({ baseUrl: options?.baseUrl });\n }\n\n /**\n * Starts the library and initializes the dependent teams-js and MSAL libraries.\n * @returns A promise that will be fulfilled when the app has started, or\n * rejected if the initialization fails or times out.\n */\n async start(): Promise<void> {\n if (this._state.phase !== 'stopped') {\n this._log.debug(`app already ${this._state.phase}`);\n return;\n }\n\n this._log.debug('app starting');\n this._state = { phase: 'starting' };\n\n await teamsJs.app.initialize();\n const context = await teamsJs.app.getContext();\n\n const msalConfig =\n this.options.msalOptions?.configuration ?? buildMsalConfig(this.clientId, this._log);\n const msalInstance = await msal.createNestablePublicClientApplication(msalConfig);\n await msalInstance.initialize();\n\n this._state = { phase: 'started', msalInstance, context, startedAt: new Date() };\n this._log.debug('app started');\n }\n\n /**\n * Execute a server-side function\n * @param name The unique function name\n * @param data The data to send\n * @param options Options\n * @param options.msalTokenRequest Optional MSAL token request.\n * If omitted, a default token request is used.\n * @param options.requestHeaders Optional additional request headers.\n * @returns The function response\n */\n async exec<T = unknown>(name: string, data?: unknown, options?: ExecOptions): Promise<T> {\n if (this._state.phase !== 'started') {\n throw new Error('App not started');\n }\n\n const { context } = this._state;\n const accessToken = await acquireMsalAccessToken(\n this._state.msalInstance,\n options?.msalTokenRequest ?? getStandardExecSilentRequest(this.clientId, options?.permission),\n this._log\n );\n\n const res = await this.http.post<T>(`/api/functions/${name}`, data, {\n headers: {\n authorization: `Bearer ${accessToken}`,\n 'x-teams-app-session-id': context.app.sessionId,\n 'x-teams-channel-id': context.channel?.id,\n 'x-teams-chat-id': context.chat?.id,\n 'x-teams-meeting-id': context.meeting?.id,\n 'x-teams-message-id': context.app.parentMessageId,\n 'x-teams-page-id': context.page.id,\n 'x-teams-sub-page-id': context.page.subPageId,\n 'x-teams-team-id': context.team?.internalId,\n ...(options?.requestHeaders ?? {}),\n },\n });\n\n return res.data;\n }\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { HostName, HostClientType } from '../window/types/host.mjs';
2
+
3
+ /**
4
+ * Represents information about the application's host.
5
+ */
6
+ type AppHostContext = {
7
+ /**
8
+ * Identifies which host is running your app
9
+ */
10
+ name: HostName;
11
+ /**
12
+ * The client type on which the host is running
13
+ */
14
+ clientType: HostClientType;
15
+ /**
16
+ * Unique ID for the current Host session for use in correlating telemetry data.
17
+ */
18
+ sessionId: string;
19
+ /**
20
+ * Current ring ID
21
+ */
22
+ ringId?: string;
23
+ };
24
+
25
+ export type { AppHostContext };
@@ -0,0 +1,25 @@
1
+ import { HostName, HostClientType } from '../window/types/host.js';
2
+
3
+ /**
4
+ * Represents information about the application's host.
5
+ */
6
+ type AppHostContext = {
7
+ /**
8
+ * Identifies which host is running your app
9
+ */
10
+ name: HostName;
11
+ /**
12
+ * The client type on which the host is running
13
+ */
14
+ clientType: HostClientType;
15
+ /**
16
+ * Unique ID for the current Host session for use in correlating telemetry data.
17
+ */
18
+ sessionId: string;
19
+ /**
20
+ * Current ring ID
21
+ */
22
+ ringId?: string;
23
+ };
24
+
25
+ export type { AppHostContext };
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=app-host.js.map
4
+ //# sourceMappingURL=app-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"app-host.js"}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=app-host.mjs.map
3
+ //# sourceMappingURL=app-host.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"app-host.mjs"}
@@ -0,0 +1,69 @@
1
+ import { FileOpenPreference } from '../window/types/file-open-preference.mjs';
2
+ import { Locale } from '../window/types/locale.mjs';
3
+ import { Theme } from '../window/types/theme.mjs';
4
+ import { AppHostContext } from './app-host.mjs';
5
+ import '../window/types/host.mjs';
6
+
7
+ /**
8
+ * Represents application information.
9
+ */
10
+ type AppContext = {
11
+ /**
12
+ * This ID is the unique identifier assigned to the app after deployment and is critical for ensuring the correct app instance is recognized across hosts.
13
+ */
14
+ id?: string;
15
+ /**
16
+ * ID for the current visible app which is different for across cached sessions. Used for correlating telemetry data.
17
+ */
18
+ launchId?: string;
19
+ /**
20
+ * Unique ID for the current session for use in correlating telemetry data. A session corresponds to the lifecycle of an app. A new session begins upon the creation of a webview (on Teams mobile) or iframe (in Teams desktop) hosting the app, and ends when it is destroyed.
21
+ */
22
+ sessionId: string;
23
+ /**
24
+ * The current locale that the user has configured for the app formatted as
25
+ * languageId-countryId (for example, en-us).
26
+ */
27
+ locale: string;
28
+ /**
29
+ * The current UI theme of the host. Possible values: "default", "dark", "contrast" or "glass".
30
+ */
31
+ theme: Theme;
32
+ /**
33
+ * Info of the host
34
+ */
35
+ host: AppHostContext;
36
+ /**
37
+ * More detailed locale info from the user's OS if available. Can be used together with
38
+ * the @microsoft/globe NPM package to ensure your app respects the user's OS date and
39
+ * time format configuration
40
+ */
41
+ osLocaleInfo?: Locale;
42
+ /**
43
+ * Personal app icon y coordinate position
44
+ */
45
+ iconPositionVertical?: number;
46
+ /**
47
+ * Time when the user clicked on the tab using the date.
48
+ */
49
+ userClickTime?: number;
50
+ /**
51
+ * Time when the user click on the app by using the performance timer API. Useful for measuring elapsed time accurately.
52
+ */
53
+ userClickTimeV2?: number;
54
+ /**
55
+ * The ID of the parent message from which this task module was launched.
56
+ * This is only available in task modules launched from bot cards.
57
+ */
58
+ parentMessageId?: string;
59
+ /**
60
+ * Where the user prefers the file to be opened from by default during file open
61
+ */
62
+ userFileOpenPreference?: FileOpenPreference;
63
+ /**
64
+ * The version of the manifest that the app is running.
65
+ */
66
+ manifestVersion?: string;
67
+ };
68
+
69
+ export type { AppContext };