@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.
- package/README.md +37 -0
- package/dist/app.d.mts +92 -0
- package/dist/app.d.ts +92 -0
- package/dist/app.js +122 -0
- package/dist/app.js.map +1 -0
- package/dist/app.mjs +98 -0
- package/dist/app.mjs.map +1 -0
- package/dist/context/app-host.d.mts +25 -0
- package/dist/context/app-host.d.ts +25 -0
- package/dist/context/app-host.js +4 -0
- package/dist/context/app-host.js.map +1 -0
- package/dist/context/app-host.mjs +3 -0
- package/dist/context/app-host.mjs.map +1 -0
- package/dist/context/app.d.mts +69 -0
- package/dist/context/app.d.ts +69 -0
- package/dist/context/app.js +4 -0
- package/dist/context/app.js.map +1 -0
- package/dist/context/app.mjs +3 -0
- package/dist/context/app.mjs.map +1 -0
- package/dist/context/channel.d.mts +37 -0
- package/dist/context/channel.d.ts +37 -0
- package/dist/context/channel.js +4 -0
- package/dist/context/channel.js.map +1 -0
- package/dist/context/channel.mjs +3 -0
- package/dist/context/channel.mjs.map +1 -0
- package/dist/context/chat.d.mts +11 -0
- package/dist/context/chat.d.ts +11 -0
- package/dist/context/chat.js +4 -0
- package/dist/context/chat.js.map +1 -0
- package/dist/context/chat.mjs +3 -0
- package/dist/context/chat.mjs.map +1 -0
- package/dist/context/index.d.mts +74 -0
- package/dist/context/index.d.ts +74 -0
- package/dist/context/index.js +108 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/index.mjs +86 -0
- package/dist/context/index.mjs.map +1 -0
- package/dist/context/meeting.d.mts +11 -0
- package/dist/context/meeting.d.ts +11 -0
- package/dist/context/meeting.js +4 -0
- package/dist/context/meeting.js.map +1 -0
- package/dist/context/meeting.mjs +3 -0
- package/dist/context/meeting.mjs.map +1 -0
- package/dist/context/page.d.mts +40 -0
- package/dist/context/page.d.ts +40 -0
- package/dist/context/page.js +4 -0
- package/dist/context/page.js.map +1 -0
- package/dist/context/page.mjs +3 -0
- package/dist/context/page.mjs.map +1 -0
- package/dist/context/share-point-site.d.mts +31 -0
- package/dist/context/share-point-site.d.ts +31 -0
- package/dist/context/share-point-site.js +4 -0
- package/dist/context/share-point-site.js.map +1 -0
- package/dist/context/share-point-site.mjs +3 -0
- package/dist/context/share-point-site.mjs.map +1 -0
- package/dist/context/team.d.mts +42 -0
- package/dist/context/team.d.ts +42 -0
- package/dist/context/team.js +4 -0
- package/dist/context/team.js.map +1 -0
- package/dist/context/team.mjs +3 -0
- package/dist/context/team.mjs.map +1 -0
- package/dist/context/tenant.d.mts +20 -0
- package/dist/context/tenant.d.ts +20 -0
- package/dist/context/tenant.js +4 -0
- package/dist/context/tenant.js.map +1 -0
- package/dist/context/tenant.mjs +3 -0
- package/dist/context/tenant.mjs.map +1 -0
- package/dist/context/user.d.mts +63 -0
- package/dist/context/user.d.ts +63 -0
- package/dist/context/user.js +4 -0
- package/dist/context/user.js.map +1 -0
- package/dist/context/user.mjs +3 -0
- package/dist/context/user.mjs.map +1 -0
- package/dist/index-5Ok-M8A0.d.ts +13 -0
- package/dist/index-7hUkxLxx.d.mts +17 -0
- package/dist/index-8IcDrPMv.d.ts +70 -0
- package/dist/index-D6kqtGPa.d.mts +13 -0
- package/dist/index-DJal_Cxb.d.mts +70 -0
- package/dist/index-DrTQ_GLN.d.mts +21 -0
- package/dist/index-DtE-Eb9L.d.ts +17 -0
- package/dist/index-_Hc8oq9_.d.ts +21 -0
- package/dist/index.d.mts +56 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +6 -0
- package/dist/index.mjs.map +1 -0
- package/dist/msal-utils.d.mts +30 -0
- package/dist/msal-utils.d.ts +30 -0
- package/dist/msal-utils.js +86 -0
- package/dist/msal-utils.js.map +1 -0
- package/dist/msal-utils.mjs +62 -0
- package/dist/msal-utils.mjs.map +1 -0
- package/dist/window/client-error.d.mts +10 -0
- package/dist/window/client-error.d.ts +10 -0
- package/dist/window/client-error.js +4 -0
- package/dist/window/client-error.js.map +1 -0
- package/dist/window/client-error.mjs +3 -0
- package/dist/window/client-error.mjs.map +1 -0
- package/dist/window/clients/app-entity.d.mts +12 -0
- package/dist/window/clients/app-entity.d.ts +12 -0
- package/dist/window/clients/app-entity.js +15 -0
- package/dist/window/clients/app-entity.js.map +1 -0
- package/dist/window/clients/app-entity.mjs +13 -0
- package/dist/window/clients/app-entity.mjs.map +1 -0
- package/dist/window/clients/app-initialization.d.mts +50 -0
- package/dist/window/clients/app-initialization.d.ts +50 -0
- package/dist/window/clients/app-initialization.js +24 -0
- package/dist/window/clients/app-initialization.js.map +1 -0
- package/dist/window/clients/app-initialization.mjs +22 -0
- package/dist/window/clients/app-initialization.mjs.map +1 -0
- package/dist/window/clients/app-install-dialog.d.mts +21 -0
- package/dist/window/clients/app-install-dialog.d.ts +21 -0
- package/dist/window/clients/app-install-dialog.js +22 -0
- package/dist/window/clients/app-install-dialog.js.map +1 -0
- package/dist/window/clients/app-install-dialog.mjs +20 -0
- package/dist/window/clients/app-install-dialog.mjs.map +1 -0
- package/dist/window/clients/authentication.d.mts +66 -0
- package/dist/window/clients/authentication.d.ts +66 -0
- package/dist/window/clients/authentication.js +47 -0
- package/dist/window/clients/authentication.js.map +1 -0
- package/dist/window/clients/authentication.mjs +45 -0
- package/dist/window/clients/authentication.mjs.map +1 -0
- package/dist/window/clients/bar-code.d.mts +13 -0
- package/dist/window/clients/bar-code.d.ts +13 -0
- package/dist/window/clients/bar-code.js +20 -0
- package/dist/window/clients/bar-code.js.map +1 -0
- package/dist/window/clients/bar-code.mjs +18 -0
- package/dist/window/clients/bar-code.mjs.map +1 -0
- package/dist/window/clients/calendar.d.mts +47 -0
- package/dist/window/clients/calendar.d.ts +47 -0
- package/dist/window/clients/calendar.js +18 -0
- package/dist/window/clients/calendar.js.map +1 -0
- package/dist/window/clients/calendar.mjs +16 -0
- package/dist/window/clients/calendar.mjs.map +1 -0
- package/dist/window/clients/call.d.mts +32 -0
- package/dist/window/clients/call.d.ts +32 -0
- package/dist/window/clients/call.js +16 -0
- package/dist/window/clients/call.js.map +1 -0
- package/dist/window/clients/call.mjs +14 -0
- package/dist/window/clients/call.mjs.map +1 -0
- package/dist/window/clients/clipboard.d.mts +26 -0
- package/dist/window/clients/clipboard.d.ts +26 -0
- package/dist/window/clients/clipboard.js +19 -0
- package/dist/window/clients/clipboard.js.map +1 -0
- package/dist/window/clients/clipboard.mjs +17 -0
- package/dist/window/clients/clipboard.mjs.map +1 -0
- package/dist/window/clients/conversation.d.mts +53 -0
- package/dist/window/clients/conversation.d.ts +53 -0
- package/dist/window/clients/conversation.js +25 -0
- package/dist/window/clients/conversation.js.map +1 -0
- package/dist/window/clients/conversation.mjs +23 -0
- package/dist/window/clients/conversation.mjs.map +1 -0
- package/dist/window/clients/dialog.d.mts +81 -0
- package/dist/window/clients/dialog.d.ts +81 -0
- package/dist/window/clients/dialog.js +37 -0
- package/dist/window/clients/dialog.js.map +1 -0
- package/dist/window/clients/dialog.mjs +35 -0
- package/dist/window/clients/dialog.mjs.map +1 -0
- package/dist/window/clients/index.d.mts +84 -0
- package/dist/window/clients/index.d.ts +84 -0
- package/dist/window/clients/index.js +159 -0
- package/dist/window/clients/index.js.map +1 -0
- package/dist/window/clients/index.mjs +87 -0
- package/dist/window/clients/index.mjs.map +1 -0
- package/dist/window/clients/location.d.mts +14 -0
- package/dist/window/clients/location.d.ts +14 -0
- package/dist/window/clients/location.js +22 -0
- package/dist/window/clients/location.js.map +1 -0
- package/dist/window/clients/location.mjs +20 -0
- package/dist/window/clients/location.mjs.map +1 -0
- package/dist/window/clients/media.d.mts +190 -0
- package/dist/window/clients/media.d.ts +190 -0
- package/dist/window/clients/media.js +75 -0
- package/dist/window/clients/media.js.map +1 -0
- package/dist/window/clients/media.mjs +68 -0
- package/dist/window/clients/media.mjs.map +1 -0
- package/dist/window/clients/notification.d.mts +17 -0
- package/dist/window/clients/notification.d.ts +17 -0
- package/dist/window/clients/notification.js +15 -0
- package/dist/window/clients/notification.js.map +1 -0
- package/dist/window/clients/notification.mjs +13 -0
- package/dist/window/clients/notification.mjs.map +1 -0
- package/dist/window/clients/permission.d.mts +14 -0
- package/dist/window/clients/permission.d.ts +14 -0
- package/dist/window/clients/permission.js +20 -0
- package/dist/window/clients/permission.js.map +1 -0
- package/dist/window/clients/permission.mjs +18 -0
- package/dist/window/clients/permission.mjs.map +1 -0
- package/dist/window/index.d.mts +59 -0
- package/dist/window/index.d.ts +59 -0
- package/dist/window/index.js +35 -0
- package/dist/window/index.js.map +1 -0
- package/dist/window/index.mjs +6 -0
- package/dist/window/index.mjs.map +1 -0
- package/dist/window/message.d.mts +24 -0
- package/dist/window/message.d.ts +24 -0
- package/dist/window/message.js +4 -0
- package/dist/window/message.js.map +1 -0
- package/dist/window/message.mjs +3 -0
- package/dist/window/message.mjs.map +1 -0
- package/dist/window/runtime.d.mts +96 -0
- package/dist/window/runtime.d.ts +96 -0
- package/dist/window/runtime.js +4 -0
- package/dist/window/runtime.js.map +1 -0
- package/dist/window/runtime.mjs +3 -0
- package/dist/window/runtime.mjs.map +1 -0
- package/dist/window/types/action-open-url-type.d.mts +15 -0
- package/dist/window/types/action-open-url-type.d.ts +15 -0
- package/dist/window/types/action-open-url-type.js +13 -0
- package/dist/window/types/action-open-url-type.js.map +1 -0
- package/dist/window/types/action-open-url-type.mjs +11 -0
- package/dist/window/types/action-open-url-type.mjs.map +1 -0
- package/dist/window/types/app-eligibility-info.d.mts +48 -0
- package/dist/window/types/app-eligibility-info.d.ts +48 -0
- package/dist/window/types/app-eligibility-info.js +4 -0
- package/dist/window/types/app-eligibility-info.js.map +1 -0
- package/dist/window/types/app-eligibility-info.mjs +3 -0
- package/dist/window/types/app-eligibility-info.mjs.map +1 -0
- package/dist/window/types/bar-code-config.d.mts +13 -0
- package/dist/window/types/bar-code-config.d.ts +13 -0
- package/dist/window/types/bar-code-config.js +4 -0
- package/dist/window/types/bar-code-config.js.map +1 -0
- package/dist/window/types/bar-code-config.mjs +3 -0
- package/dist/window/types/bar-code-config.mjs.map +1 -0
- package/dist/window/types/call-modality.d.mts +21 -0
- package/dist/window/types/call-modality.d.ts +21 -0
- package/dist/window/types/call-modality.js +14 -0
- package/dist/window/types/call-modality.js.map +1 -0
- package/dist/window/types/call-modality.mjs +12 -0
- package/dist/window/types/call-modality.mjs.map +1 -0
- package/dist/window/types/channel-type.d.mts +17 -0
- package/dist/window/types/channel-type.d.ts +17 -0
- package/dist/window/types/channel-type.js +12 -0
- package/dist/window/types/channel-type.js.map +1 -0
- package/dist/window/types/channel-type.mjs +10 -0
- package/dist/window/types/channel-type.mjs.map +1 -0
- package/dist/window/types/context.d.mts +275 -0
- package/dist/window/types/context.d.ts +275 -0
- package/dist/window/types/context.js +4 -0
- package/dist/window/types/context.js.map +1 -0
- package/dist/window/types/context.mjs +3 -0
- package/dist/window/types/context.mjs.map +1 -0
- package/dist/window/types/data-residency.d.mts +6 -0
- package/dist/window/types/data-residency.d.ts +6 -0
- package/dist/window/types/data-residency.js +4 -0
- package/dist/window/types/data-residency.js.map +1 -0
- package/dist/window/types/data-residency.mjs +3 -0
- package/dist/window/types/data-residency.mjs.map +1 -0
- package/dist/window/types/dialog/dialog-dimension.d.mts +17 -0
- package/dist/window/types/dialog/dialog-dimension.d.ts +17 -0
- package/dist/window/types/dialog/dialog-dimension.js +12 -0
- package/dist/window/types/dialog/dialog-dimension.js.map +1 -0
- package/dist/window/types/dialog/dialog-dimension.mjs +10 -0
- package/dist/window/types/dialog/dialog-dimension.mjs.map +1 -0
- package/dist/window/types/dialog/dialog-info.d.mts +43 -0
- package/dist/window/types/dialog/dialog-info.d.ts +43 -0
- package/dist/window/types/dialog/dialog-info.js +4 -0
- package/dist/window/types/dialog/dialog-info.js.map +1 -0
- package/dist/window/types/dialog/dialog-info.mjs +3 -0
- package/dist/window/types/dialog/dialog-info.mjs.map +1 -0
- package/dist/window/types/dialog/dialog-size.d.mts +14 -0
- package/dist/window/types/dialog/dialog-size.d.ts +14 -0
- package/dist/window/types/dialog/dialog-size.js +4 -0
- package/dist/window/types/dialog/dialog-size.js.map +1 -0
- package/dist/window/types/dialog/dialog-size.mjs +3 -0
- package/dist/window/types/dialog/dialog-size.mjs.map +1 -0
- package/dist/window/types/dialog/index.d.mts +3 -0
- package/dist/window/types/dialog/index.d.ts +3 -0
- package/dist/window/types/dialog/index.js +28 -0
- package/dist/window/types/dialog/index.js.map +1 -0
- package/dist/window/types/dialog/index.mjs +5 -0
- package/dist/window/types/dialog/index.mjs.map +1 -0
- package/dist/window/types/file-open-preference.d.mts +17 -0
- package/dist/window/types/file-open-preference.d.ts +17 -0
- package/dist/window/types/file-open-preference.js +12 -0
- package/dist/window/types/file-open-preference.js.map +1 -0
- package/dist/window/types/file-open-preference.mjs +10 -0
- package/dist/window/types/file-open-preference.mjs.map +1 -0
- package/dist/window/types/file.d.mts +42 -0
- package/dist/window/types/file.d.ts +42 -0
- package/dist/window/types/file.js +11 -0
- package/dist/window/types/file.js.map +1 -0
- package/dist/window/types/file.mjs +9 -0
- package/dist/window/types/file.mjs.map +1 -0
- package/dist/window/types/frame-context.d.mts +44 -0
- package/dist/window/types/frame-context.d.ts +44 -0
- package/dist/window/types/frame-context.js +17 -0
- package/dist/window/types/frame-context.js.map +1 -0
- package/dist/window/types/frame-context.mjs +15 -0
- package/dist/window/types/frame-context.mjs.map +1 -0
- package/dist/window/types/host.d.mts +73 -0
- package/dist/window/types/host.d.ts +73 -0
- package/dist/window/types/host.js +32 -0
- package/dist/window/types/host.js.map +1 -0
- package/dist/window/types/host.mjs +29 -0
- package/dist/window/types/host.mjs.map +1 -0
- package/dist/window/types/index.d.mts +39 -0
- package/dist/window/types/index.d.ts +39 -0
- package/dist/window/types/index.js +189 -0
- package/dist/window/types/index.js.map +1 -0
- package/dist/window/types/index.mjs +30 -0
- package/dist/window/types/index.mjs.map +1 -0
- package/dist/window/types/legal-age-group-classification.d.mts +34 -0
- package/dist/window/types/legal-age-group-classification.d.ts +34 -0
- package/dist/window/types/legal-age-group-classification.js +14 -0
- package/dist/window/types/legal-age-group-classification.js.map +1 -0
- package/dist/window/types/legal-age-group-classification.mjs +12 -0
- package/dist/window/types/legal-age-group-classification.mjs.map +1 -0
- package/dist/window/types/liveshare/client.d.mts +23 -0
- package/dist/window/types/liveshare/client.d.ts +23 -0
- package/dist/window/types/liveshare/client.js +4 -0
- package/dist/window/types/liveshare/client.js.map +1 -0
- package/dist/window/types/liveshare/client.mjs +3 -0
- package/dist/window/types/liveshare/client.mjs.map +1 -0
- package/dist/window/types/liveshare/container-state.d.mts +33 -0
- package/dist/window/types/liveshare/container-state.d.ts +33 -0
- package/dist/window/types/liveshare/container-state.js +13 -0
- package/dist/window/types/liveshare/container-state.js.map +1 -0
- package/dist/window/types/liveshare/container-state.mjs +11 -0
- package/dist/window/types/liveshare/container-state.mjs.map +1 -0
- package/dist/window/types/liveshare/fluid-container.d.mts +28 -0
- package/dist/window/types/liveshare/fluid-container.d.ts +28 -0
- package/dist/window/types/liveshare/fluid-container.js +4 -0
- package/dist/window/types/liveshare/fluid-container.js.map +1 -0
- package/dist/window/types/liveshare/fluid-container.mjs +3 -0
- package/dist/window/types/liveshare/fluid-container.mjs.map +1 -0
- package/dist/window/types/liveshare/fluid-tenant.d.mts +16 -0
- package/dist/window/types/liveshare/fluid-tenant.d.ts +16 -0
- package/dist/window/types/liveshare/fluid-tenant.js +4 -0
- package/dist/window/types/liveshare/fluid-tenant.js.map +1 -0
- package/dist/window/types/liveshare/fluid-tenant.mjs +3 -0
- package/dist/window/types/liveshare/fluid-tenant.mjs.map +1 -0
- package/dist/window/types/liveshare/index.d.mts +6 -0
- package/dist/window/types/liveshare/index.d.ts +6 -0
- package/dist/window/types/liveshare/index.js +42 -0
- package/dist/window/types/liveshare/index.js.map +1 -0
- package/dist/window/types/liveshare/index.mjs +7 -0
- package/dist/window/types/liveshare/index.mjs.map +1 -0
- package/dist/window/types/liveshare/ntp-time.d.mts +16 -0
- package/dist/window/types/liveshare/ntp-time.d.ts +16 -0
- package/dist/window/types/liveshare/ntp-time.js +4 -0
- package/dist/window/types/liveshare/ntp-time.js.map +1 -0
- package/dist/window/types/liveshare/ntp-time.mjs +3 -0
- package/dist/window/types/liveshare/ntp-time.mjs.map +1 -0
- package/dist/window/types/locale.d.mts +38 -0
- package/dist/window/types/locale.d.ts +38 -0
- package/dist/window/types/locale.js +4 -0
- package/dist/window/types/locale.js.map +1 -0
- package/dist/window/types/locale.mjs +3 -0
- package/dist/window/types/locale.mjs.map +1 -0
- package/dist/window/types/location.d.mts +25 -0
- package/dist/window/types/location.d.ts +25 -0
- package/dist/window/types/location.js +4 -0
- package/dist/window/types/location.js.map +1 -0
- package/dist/window/types/location.mjs +3 -0
- package/dist/window/types/location.mjs.map +1 -0
- package/dist/window/types/marketplace/cart-info.d.mts +47 -0
- package/dist/window/types/marketplace/cart-info.d.ts +47 -0
- package/dist/window/types/marketplace/cart-info.js +4 -0
- package/dist/window/types/marketplace/cart-info.js.map +1 -0
- package/dist/window/types/marketplace/cart-info.mjs +3 -0
- package/dist/window/types/marketplace/cart-info.mjs.map +1 -0
- package/dist/window/types/marketplace/cart-item.d.mts +40 -0
- package/dist/window/types/marketplace/cart-item.d.ts +40 -0
- package/dist/window/types/marketplace/cart-item.js +4 -0
- package/dist/window/types/marketplace/cart-item.js.map +1 -0
- package/dist/window/types/marketplace/cart-item.mjs +3 -0
- package/dist/window/types/marketplace/cart-item.mjs.map +1 -0
- package/dist/window/types/marketplace/cart-status.d.mts +33 -0
- package/dist/window/types/marketplace/cart-status.d.ts +33 -0
- package/dist/window/types/marketplace/cart-status.js +14 -0
- package/dist/window/types/marketplace/cart-status.js.map +1 -0
- package/dist/window/types/marketplace/cart-status.mjs +12 -0
- package/dist/window/types/marketplace/cart-status.mjs.map +1 -0
- package/dist/window/types/marketplace/cart-version.d.mts +17 -0
- package/dist/window/types/marketplace/cart-version.d.ts +17 -0
- package/dist/window/types/marketplace/cart-version.js +4 -0
- package/dist/window/types/marketplace/cart-version.js.map +1 -0
- package/dist/window/types/marketplace/cart-version.mjs +3 -0
- package/dist/window/types/marketplace/cart-version.mjs.map +1 -0
- package/dist/window/types/marketplace/cart.d.mts +29 -0
- package/dist/window/types/marketplace/cart.d.ts +29 -0
- package/dist/window/types/marketplace/cart.js +4 -0
- package/dist/window/types/marketplace/cart.js.map +1 -0
- package/dist/window/types/marketplace/cart.mjs +3 -0
- package/dist/window/types/marketplace/cart.mjs.map +1 -0
- package/dist/window/types/marketplace/index.d.mts +6 -0
- package/dist/window/types/marketplace/index.d.ts +6 -0
- package/dist/window/types/marketplace/index.js +49 -0
- package/dist/window/types/marketplace/index.js.map +1 -0
- package/dist/window/types/marketplace/index.mjs +8 -0
- package/dist/window/types/marketplace/index.mjs.map +1 -0
- package/dist/window/types/marketplace/intent.d.mts +23 -0
- package/dist/window/types/marketplace/intent.d.ts +23 -0
- package/dist/window/types/marketplace/intent.js +12 -0
- package/dist/window/types/marketplace/intent.js.map +1 -0
- package/dist/window/types/marketplace/intent.mjs +10 -0
- package/dist/window/types/marketplace/intent.mjs.map +1 -0
- package/dist/window/types/notification-type.d.mts +3 -0
- package/dist/window/types/notification-type.d.ts +3 -0
- package/dist/window/types/notification-type.js +4 -0
- package/dist/window/types/notification-type.js.map +1 -0
- package/dist/window/types/notification-type.mjs +3 -0
- package/dist/window/types/notification-type.mjs.map +1 -0
- package/dist/window/types/permission.d.mts +3 -0
- package/dist/window/types/permission.d.ts +3 -0
- package/dist/window/types/permission.js +4 -0
- package/dist/window/types/permission.js.map +1 -0
- package/dist/window/types/permission.mjs +3 -0
- package/dist/window/types/permission.mjs.map +1 -0
- package/dist/window/types/team-type.d.mts +24 -0
- package/dist/window/types/team-type.d.ts +24 -0
- package/dist/window/types/team-type.js +18 -0
- package/dist/window/types/team-type.js.map +1 -0
- package/dist/window/types/team-type.mjs +15 -0
- package/dist/window/types/team-type.mjs.map +1 -0
- package/dist/window/types/theme.d.mts +6 -0
- package/dist/window/types/theme.d.ts +6 -0
- package/dist/window/types/theme.js +4 -0
- package/dist/window/types/theme.js.map +1 -0
- package/dist/window/types/theme.mjs +3 -0
- package/dist/window/types/theme.mjs.map +1 -0
- package/dist/window/types/thread-member.d.mts +11 -0
- package/dist/window/types/thread-member.d.ts +11 -0
- package/dist/window/types/thread-member.js +4 -0
- package/dist/window/types/thread-member.js.map +1 -0
- package/dist/window/types/thread-member.mjs +3 -0
- package/dist/window/types/thread-member.mjs.map +1 -0
- package/dist/window/types/user-meeting-role.d.mts +31 -0
- package/dist/window/types/user-meeting-role.d.ts +31 -0
- package/dist/window/types/user-meeting-role.js +13 -0
- package/dist/window/types/user-meeting-role.js.map +1 -0
- package/dist/window/types/user-meeting-role.mjs +11 -0
- package/dist/window/types/user-meeting-role.mjs.map +1 -0
- package/dist/window/types/user-profile.d.mts +82 -0
- package/dist/window/types/user-profile.d.ts +82 -0
- package/dist/window/types/user-profile.js +4 -0
- package/dist/window/types/user-profile.js.map +1 -0
- package/dist/window/types/user-profile.mjs +3 -0
- package/dist/window/types/user-profile.mjs.map +1 -0
- package/dist/window/types/user-team-role.d.mts +18 -0
- package/dist/window/types/user-team-role.d.ts +18 -0
- package/dist/window/types/user-team-role.js +16 -0
- package/dist/window/types/user-team-role.js.map +1 -0
- package/dist/window/types/user-team-role.mjs +13 -0
- package/dist/window/types/user-team-role.mjs.map +1 -0
- package/dist/window/window-client.d.mts +28 -0
- package/dist/window/window-client.d.ts +28 -0
- package/dist/window/window-client.js +92 -0
- package/dist/window/window-client.js.map +1 -0
- package/dist/window/window-client.mjs +70 -0
- package/dist/window/window-client.mjs.map +1 -0
- 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
|
package/dist/app.js.map
ADDED
|
@@ -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
|
package/dist/app.mjs.map
ADDED
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"app-host.js"}
|
|
@@ -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 };
|