Releases: OfficeDev/microsoft-teams-library-js
v2.6.0
Wed, 07 Dec 2022 16:39:58 GMT
Minor changes
- Added
notifyFatalError
function in videoEx to enable video apps to notify the host of fatal errors. - Added support for showing and hiding the app share button to the
meeting
capability - Fixed bug where some capabilities were being incorrectly marked as supported
Patches
- Deleted unnecessary support for
meetingRoom
andsidePanel
frame contexts indialog.submit
API. - Fix incorrect profile.IsSupported check
v2.5.0
Thu, 03 Nov 2022 17:03:30 GMT
Minor changes
- Updated most APIs to require initialization to be fully finished before they are allowed to be called.
Patches
- Added Outlook's consumer domain to domains' allowlist
- Updated documentation for
app.IFailedRequest.message
property to clarify that it is unused - Set
PACKAGE_VERSION
to an error value indicating it will be replaced by webpack at build time - Fixed
profile.isSupported
and showProfileTriggerType
- Added 'www.microsoft365.com' and '*.www.microsoft365.com' to the
validOrigins
list. - Switched from dynamic import of
LiveShareClient
to using a global window variable. Fixes an issue where dynamic imports stop working for multiple layers of webpack.
v2.4.2
2.4.2
Patches
- Fixed integrity hash in README
v2.4.1
Mon, 10 Oct 2022 19:09:20 GMT
Minor changes
- Added (moved)
version
as a public constant containing the library version - Added new sub capability
pages.currentApp.navigateTo
that enables navigation within an application without specifying application ID.pages.currentApp.navigateToDefaultPage
that navigates to first static page defined in app manifest - Added
OutlookWin32
toHostName
enum
Patches
- Added one common
registerHandlerHelper
function to replace several helpers. - Clarified possible values for
theme
property onAppInfo
object in docs - Updated documentation for
app.initialize
to clarify that it must have completed before calling other library methods. - On the
File
interface changed the type oflastModified
field fromDate
tonumber
- Fixed
search
API in test file - Enabled proxying of window events to child frames if they are unhandled by current frame
- Added logging to
runtime
andapp
to make it easier to investigate issues surrounding app initialization. - Fixed some locations where
undefined
was properly handled but not explicitly in the type declaration - Reverted
liveShare
capability - Clarified documentation for
sharepoint
property onContext
object - Enabled
strictNullChecks
as lint rule - Updated the URLs for docs links.
- Enabled save and remove events in the
pages.config
capability to be proxied to child windows - Fixed more violations of strictNullChecks warning
v2.3.0
Thu, 08 Sep 2022 17:11:49 GMT
Minor changes
- Added support for audio-driven avatars to the
video
API, and the ability to upload personalized video effects to the private folder - Added
Search
capability to use global search box in the current app in Outlook - Added
timestamp
toVideoFrame
, sent thetimestamp
back to Teams client after the video frame has been processed.
Patches
- Fixed an issue with the v1 versions of
register*Handler
functions. Previously if the v2 version of the API's capability was not supported, attempts to call the v1 version would throw an exception, breaking backwards compatibility. - Updated documentation for many properties on
Context
interface. - Updated comments on items marked with the
@internal
tag to make it clear they are intended for Microsoft use only and removed some@internal
items from dev documentation. RemovedinitializePrivateApis
from the privateAPIs file, an unexported and hidden no-op function. - Added missing
HostClientType
values so correctRuntime
is generated forteams.fullTrust.joinedTeams
andwebStorage
capabilities. - Renamed
filePath
field towebkitRelativePath
. Removed two validation checks fordestinationFolder
fields. Added an optional fieldprovider
in callback ofaddCloudStorageProvider
API.
v2.2.0
Wed, 03 Aug 2022 19:21:51 GMT
Minor changes
- Added an optional error object to
ISpeakingState
interface to alignregisterSpeakingStateChangeHandler
API with other API error handling. - Added
ActionInfo
object to theContext
interface. This is used to pass information about an action that was taken on content from the host to the application. - Split single
CloudStorageProviderFile
action API into 3 action APIs
Patches
- Added clarifying comment to
dialog.submit
to indicate the dialog is closed whensubmit
is called. - Updated reference documentation links for deprecated global
Context
interface to work with typedoc system. - Added
FrameContexts.task
toopenChat
andopenGroupChat
in chat.ts - Added
@beta
tags to new content action-related interfaces. - Exported publicly documented global interfaces to enable use outside the SDK.
v2.1.0
Fri, 22 Jul 2022 16:36:44 GMT
Minor changes
- Added
webStorage
capability with APIs to allows apps to discover if web storage is supported by the host client - Added 3P cloud storage provider API support to files.ts
- Added
isSupported
tostageView
- Added
profile.showProfile
API and unit tests - Added
meeting.registerMeetingReactionReceivedHandler
- Added
scanBarCode
to barCode.ts from media.ts along with permission APIshasPermission
andrequestPermission
- Added a new capability
geoLocation
that split the location capability into new set of functions and subcapabilities. Added permission-related APIshasPermission
andrequestPermission
.
Patches
- Fixed broken SDK reference documentation links and added SDK reference documentation validation to build step.
- Ensured
submitHandler
exists before calling it indialog.open
,dialog.bot.open
andtasks.startTask
APIs. - Added frameless unit tests for
authentication.notifySuccess
andauthentication.notifyFailure
- Added beta tag to
barCode
capability to accurately reflect level of support offered - Added
meeting.registerRaiseHandStateChangedHandler
- Updated reference documentation for global deprecated
Context
interface. Each deprecatedContext
property now links to respective mapped property inapp.Context
interface. - Enabled
FrameContexts.task
forstartCall
API in call.ts - Fixed formatting of reference documentation for
call.StartCallParams
interface. - Removing unnecessary
/
inappInstallDialog.openAppInstallDialog()
- Renamed
IRaiseHandStateChangedEvent
interface toIRaiseHandStateChangedEventData
and changed the error so it can be assigned undefined rather than null
v2.0.0
Fri, 13 May 2022 22:32:13 GMT
The change log comments for v2.0.0 are a consolidated summary of the comments for each beta release to describe the changes made since v1. Detailed change log comments for each beta release follow after 2.0.0.
Major changes
-
Promote 2.0.0 beta changes to stable. TeamsJS can be used to write applications with support in multiple Microsoft 365 hosts, including Teams, Outlook, and Office.
-
The Teams JavaScript client SDK repo has been converted to a monorepo
- Utilized Yarn Workspaces to turn our repo into a monorepo.
- The files specific to the Teams client SDK have been moved to an inner directory with the name
teams-js
- A new TeamsJS Test App for validating the Teams client SDK has been added in the /apps/teams-test-app location.
-
Reverted
registerEnterSettingsHandler
back to its original nameregisterChangeSettingsHandler
-
Removed deprecated
stageView.open
function that took a callback as a parameter -
Modified
enablePrintCapability
to correctly require the library be initialized before using it -
Removed
bot
namespace and APIs -
Added
hostName
property toContext
interface which contains the name of the host in which the app is running. -
The
Context
interface has been updated to group similar properties for better scalability in a multi-host environment. -
The
FrameContext
interface has been renamedFrameInfo
. -
Capabilities organization introduced
-
Each capability has an
isSupported
function that is used to determine if a capability is supported in the host in which the application is running. All APIs call this function and will throw anSdkError
withErrorCode.NOT_SUPPORTED_ON_PLATFORM
if it returns false. -
Added App capability
- The following APIs have been moved from
publicAPIs
to newapp
namespace:initialize
getContext
registerOnThemeChangeHandler
executeDeepLink
has been renamedopenLink
- The following APIs have been moved from
appInitialization
toapp
namespace:notifyAppLoaded
notifySuccess
notifyFailure
notifyExpectedFailure
- The following APIs have been added to
app
namespace:isInitialized
getFrameContext
- The following APIs have been moved from
-
Added a Pages capability and reorganized several APIs under it:
- The following APIs have been moved to the new
pages
namespace:registerFullScreenHandler
moved frompublicAPIs
initializeWithFrameContext
moved frompublicAPIs
navigateCrossDomain
moved fromnavigation
namespacereturnFocus
moved fromnavigation
namespaceregisterFocusEnterHandler
moved frompublicAPIs
shareDeepLink
moved frompublicAPIs
DeepLinkParameters
has been renamed toShareDeepLinkParameters
setFrameContext
has been moved frompublicAPIs
and renamedpages.setCurrentFrame
settings.getSettings
has been renamedpages.getConfig
- Added
pages.navigateToApp
that navigates to the given application ID and page ID, with optional parameters for a WebURL (if the application cannot be navigated to, such as if it is not installed), Channel ID (for applications installed as a channel tab), and sub-page ID (for navigating to specific content within the page). - The following APIs have been been renamed and moved from
publicAPIs
to a new Pages.AppButton sub-capability in the newpages.appButton
namespace:registerAppButtonClickHandler
has renamed and moved topages.appButton.onClick
registerAppButtonHoverEnterHandler
has renamed and moved topages.appButton.onHoverEnter
regsiterAppButtonHoverLeaveHandler
has renamed and moved topages.appButton.onHoverLeave
- The following APIs have been moved to a new Pages.BackStack sub-capability in the new
pages.backStack
namespace:registerBackButtonHandler
moved frompublicAPIs
navigateBack
moved fromnavigation
namespace
- The following APIs have been renamed and moved into the Pages.Config sub-capability in the
pages.config
namespace (formerly thesettings
namespace):registerEnterSettingsHandler
has renamed and moved topages.config.registerChangeConfigHandler
registerOnSaveHandler
registerOnRemoveHandler
setSettings
has been renamedpages.config.setConfig
setValidityState
- The following APIs have been been moved from
privateAPIs
to a new Pages.FullTrust sub-capability in the newpages.fullTrust
namespace:enterFullscreen
exitFullscreen
- The following APIs have been been moved to a new Pages.Tabs sub-capability in the new
pages.tabs
namespace:getTabInstances
moved frompublicAPIs
getMruTabInstances
moved frompublicAPIs
navigateToTab
moved fromnavigation
namespace
- The following APIs have been moved to the new
-
Tasks APIs renamed and reorganized under new Dialog capability:
- Added
dialog
capability, which has support for HTML-based dialogs, and adialog.bot
sub-capability has been added for bot-based dialogs. At this time,dialog
does not support adaptive card-based dialogs.- The following APIs have been renamed:
startTask
has been renameddialog.open
. It takes- a
UrlDialogInfo
parameter instead ofDialogInfo
to enforce only HTML based dialogs, - an optional
DialogSubmitHandler
callback that takes a single object parameter containing both error and result, - an optional
PostMessageChannel
parameter which is triggered if dialog sends a message to the app
- a
dialog.bot.open
has the same function signature except it takesBotUrlDialogInfo
instead ofUrlDialogInfo
submitTasks
has been renameddialog.submit
TaskInfo
interface has been renamedDialogInfo
TaskModuleDimension
enum has been renamedDialogDimension
- Added
sendMessageToDialog
function which can be used to send messages to the dialog.
- The following APIs have been renamed:
- Added
dialog.update
sub-capability and renamedupdateTask
todialog.update.resize
, which now takes aDialogSize
parameter.
- Added
-
Added TeamsCore capability
- The following APIs have been moved from
publicAPIs
to newteamsCore
namespace:enablePrintCapability
print
registerOnLoadHandler
registerBeforeUnloadHandler
- The following APIs have been moved from
-
Added AppInstallDialog capability
openAppInstallDialog
is added to newappInstallDialog
namespace
-
Added Calendar capability
- The following APIs have been added to new
calendar
namespace:openCalendarItem
is addedcomposeMeeting
is added
- The following APIs have been added to new
-
Added Call capability
startCall
is added to newcall
namespace
-
Added Mail capability
- The following APIs have been added to the new
mail
namespace:openMailItem
is addedcomposeMail
is added
- The following APIs have been added to the new
-
Added Chat capability to new
chat
namespace to represent public chat functionality- Added
openChat
andopenGroupChat
to open Teams chats with one or more users
- Added
-
Converted existing
conversations
namespace into the Conversations capability to represent private chat functionalitygetChatMembers
has been moved fromprivateAPIs
toconversations
namespace
-
Added
fullTrust
andfullTrust.joinedTeams
sub-capabilities to existingteams
namespace- The following API has been moved from
privateAPIs
to a newteams.fullTrust
namespace:getConfigSetting
- The following API has been moved from
privateAPIs
to a newteams.fullTrust.joinedTeams
namespace:getUserJoinedTeams
- The following API has been moved from
-
Added Notifications capability
showNotification
has moved fromprivateAPIs
tonotifications
namespace
-
Converted existing namespaces into the following new capabilites
- Location
- Menus
- Monetization
- People
- Sharing
- Video
- Logs
- MeetingRoom
- RemoteCamera
- Teams
-
Added Runtime capability
- Added
applyRuntimeConfig
- Added
-
-
Promises introduced
- The following APIs that took in a callback function as a parameter now instead return a
Promise
.- app APIs:
app.initialize
app.getContext
- authentication APIs:
authentication.authenticate
authentication.getAuthToken
authentication.getUser
- conversations APIs:
conversations.getChatMembers
conversations.openConversation
- location APIs:
location.getLocation
location.showLocation
- meetingRoom APIs:
meetingRoom.getPairedMeetingRoomInfo
meetingRoom.sendCommandToPairedMeetingRoom
- pages APIs:
pages.navigateCrossDomain
pages.tabs.navigateToTab
pages.tabs.getTabInstances
pages.tabs.getMruTabInstances
pages.getConfig
pages.config.setConfig
pages.backStack.navigateBack
- people APIs:
people.selectPeople
- teams APIs:
teams.fulltrust.getConfigSetting
teams.fulltrust.getUserJoinedTeams
- others:
ChildAppWindow.postMessage
ParentAppWindow.postMessage
appInstallDialog.openAppInstallDialog
- app APIs:
- The following APIs that took in a callback function as a parameter now instead return a
-
Changed TypeScript to output ES6 modules instead of CommonJS
Minor changes
- Updated
app.initialize
to automatically listen for messages that an application is sending to a dialog. ModifiedregisterOnMessageFromParent
in DialogAPI.tsx for the Teams Test App to account for this new functionality. - Copied
ParentAppWindow
functionality intodialog
capability. Indialog
,ParentAppWindow.postMessage
was renamed todialog.sendMessageToParent(message: any): void
.ParentAppWindow.addEventListener
was renamed todialog.registerOnMessageFromParent
. - Added
runtime.isLegacy
handler for the following deep link capabilities:- `appI...
v2.0.0-beta.7
Thu, 12 May 2022 21:34:49 GMT
Major changes
- Moved sub-capabilities and APIs within
legacy
namespace toteams
namespace - Reverted
registerEnterSettingsHandler
back to its original nameregisterChangeSettingsHandler
- Removed deprecated
stageView.open
function that took a callback as a parameter
Patches
- Added missing reference documentation comments to the
pages
capability - Added a link to information about the updated
Context
in the reference documentation comments - Updated all
@deprecated
tags to reference version 2.0.0 - Added missing reference documentation comments to interfaces, functions, and enums in app.ts and appInitialization.ts
- Added directory field to repository info in package.json
- Added missing reference documentation comments to the
authentication
capability - Updated reference documentation comments to rationalize 'Teams' vs 'host' occurrences and other minor edits
v2.0.0-beta.6
Thu, 28 Apr 2022 18:25:41 GMT
Major changes
- Updated
media
namespace to work as it did in v1 along with necessary changes to unit tests and teams-test-app - Adding isSupported check to people capability
- Updated
meeting
namespace to work as it did in v1 along with necessary changes to unit tests and teams-test-app - Updated
files
namespace to work as it did in v1 along with necessary changes to unit tests and teams-test-app - Git magic week of 4/18/2022
- IMeetingDetails has been renamed to IMeetingDetailsResponse and IDetails has been replaced with IMeetingOrCallDetailsBase. As such, meeting.getMeetingDetails() now takes in a callback which takes in IMeetingDetailsResponse rather than IMeetingDetails.
- pages.returnFocus() now works in any FrameContext rather than just with content.
- We have added the HostClientType
ipados
.
- Adding isSupported checks to all functions in the following capabilities:
- appEntity
- dialog
- meetingRoom
- monetization
- teams
- sharing (along with additional unit test case)
- notifications (along with additional unit test cases)
- video
- remoteCamera
- pages
- menus
- logs
- legacy
- teamsCore
Minor changes
- Added
dialog.initialize
function.dialog.initialize
is called during app intialization.- Modified
registerOnMessageFromParent
inDialogAPI.tsx
for the Teams Test App to account for this new functionality.
Patches
- Updated
dialog.open
anddialog.bot.open
to sendDialogInfo
type over to the host instead ofUrlDialogInfo
orBotUrlDialogInfo
type - Adding minRuntimeConfig to uninitialize for various capabilities
- Updated README.md to reflect branch rename
- In adaptive card based task modules, if the height is not provided in
taskInfo
, it wil not be set to a default small size. Instead the card content will be fit on a Task Module. - Removed
@deprecated
tags from meeting.ts and media.ts - Removed
@alpha
tags as they are not supported in the SDK reference doc generation system