@microsoft/teams-js 2.30.0-beta.0 → 2.31.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +4 -4
  2. package/dist/esm/_virtual/__polyfill-node.os.js +1 -0
  3. package/dist/esm/_virtual/_polyfill-node.os.js +1 -0
  4. package/dist/esm/node_modules/.pnpm/debug@4.3.5/node_modules/debug/src/node.js +1 -1
  5. package/dist/esm/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js +1 -0
  6. package/dist/esm/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js +1 -0
  7. package/dist/esm/packages/teams-js/dts/index.d.ts +2 -0
  8. package/dist/esm/packages/teams-js/dts/internal/VideoFrameTypes.d.ts +78 -0
  9. package/dist/esm/packages/teams-js/dts/internal/appHelpers.d.ts +8 -0
  10. package/dist/esm/packages/teams-js/dts/internal/appIdValidation.d.ts +16 -0
  11. package/dist/esm/packages/teams-js/dts/internal/communication.d.ts +162 -0
  12. package/dist/esm/packages/teams-js/dts/internal/constants.d.ts +146 -0
  13. package/dist/esm/packages/teams-js/dts/internal/deepLinkConstants.d.ts +26 -0
  14. package/dist/esm/packages/teams-js/dts/internal/deepLinkUtilities.d.ts +4 -0
  15. package/dist/esm/packages/teams-js/dts/internal/emailAddressValidation.d.ts +1 -0
  16. package/dist/esm/packages/teams-js/dts/internal/globalVars.d.ts +12 -0
  17. package/dist/esm/packages/teams-js/dts/internal/handlers.d.ts +80 -0
  18. package/dist/esm/packages/teams-js/dts/internal/interfaces.d.ts +47 -0
  19. package/dist/esm/packages/teams-js/dts/internal/internalAPIs.d.ts +61 -0
  20. package/dist/esm/packages/teams-js/dts/internal/marketplaceUtils.d.ts +94 -0
  21. package/dist/esm/packages/teams-js/dts/internal/mediaUtil.d.ts +95 -0
  22. package/dist/esm/packages/teams-js/dts/internal/messageObjects.d.ts +73 -0
  23. package/dist/esm/packages/teams-js/dts/internal/nestedAppAuthUtils.d.ts +105 -0
  24. package/dist/esm/packages/teams-js/dts/internal/profileUtil.d.ts +11 -0
  25. package/dist/esm/packages/teams-js/dts/internal/responseHandler.d.ts +30 -0
  26. package/dist/esm/packages/teams-js/dts/internal/telemetry.d.ts +344 -0
  27. package/dist/esm/packages/teams-js/dts/internal/typeCheckUtilities.d.ts +1 -0
  28. package/dist/esm/packages/teams-js/dts/internal/utils.d.ts +200 -0
  29. package/dist/esm/packages/teams-js/dts/internal/uuidObject.d.ts +11 -0
  30. package/dist/esm/packages/teams-js/dts/internal/validOrigins.d.ts +6 -0
  31. package/dist/esm/packages/teams-js/dts/internal/videoEffectsUtils.d.ts +31 -0
  32. package/dist/esm/packages/teams-js/dts/internal/videoFrameTick.d.ts +10 -0
  33. package/dist/esm/packages/teams-js/dts/internal/videoPerformanceMonitor.d.ts +54 -0
  34. package/dist/esm/packages/teams-js/dts/internal/videoPerformanceStatistics.d.ts +49 -0
  35. package/dist/esm/packages/teams-js/dts/private/appEntity.d.ts +89 -0
  36. package/dist/esm/packages/teams-js/dts/private/constants.d.ts +9 -0
  37. package/dist/esm/packages/teams-js/dts/private/conversations.d.ts +152 -0
  38. package/dist/esm/packages/teams-js/dts/private/copilot.d.ts +39 -0
  39. package/dist/esm/packages/teams-js/dts/private/externalAppAuthentication.d.ts +378 -0
  40. package/dist/esm/packages/teams-js/dts/private/externalAppAuthenticationForCEA.d.ts +75 -0
  41. package/dist/esm/packages/teams-js/dts/private/externalAppCardActions.d.ts +112 -0
  42. package/dist/esm/packages/teams-js/dts/private/externalAppCardActionsForCEA.d.ts +49 -0
  43. package/dist/esm/packages/teams-js/dts/private/externalAppCommands.d.ts +123 -0
  44. package/dist/esm/packages/teams-js/dts/private/files.d.ts +758 -0
  45. package/dist/esm/packages/teams-js/dts/private/hostEntity.d.ts +176 -0
  46. package/dist/esm/packages/teams-js/dts/private/index.d.ts +20 -0
  47. package/dist/esm/packages/teams-js/dts/private/interfaces.d.ts +250 -0
  48. package/dist/esm/packages/teams-js/dts/private/logs.d.ts +25 -0
  49. package/dist/esm/packages/teams-js/dts/private/meetingRoom.d.ts +203 -0
  50. package/dist/esm/packages/teams-js/dts/private/messageChannels.d.ts +107 -0
  51. package/dist/esm/packages/teams-js/dts/private/notifications.d.ts +26 -0
  52. package/dist/esm/packages/teams-js/dts/private/otherAppStateChange.d.ts +81 -0
  53. package/dist/esm/packages/teams-js/dts/private/privateAPIs.d.ts +60 -0
  54. package/dist/esm/packages/teams-js/dts/private/remoteCamera.d.ts +298 -0
  55. package/dist/esm/packages/teams-js/dts/private/teams.d.ts +116 -0
  56. package/dist/esm/packages/teams-js/dts/private/videoEffectsEx.d.ts +244 -0
  57. package/dist/esm/packages/teams-js/dts/public/adaptiveCards.d.ts +6 -0
  58. package/dist/esm/packages/teams-js/dts/public/app.d.ts +592 -0
  59. package/dist/esm/packages/teams-js/dts/public/appId.d.ts +33 -0
  60. package/dist/esm/packages/teams-js/dts/public/appInitialization.d.ts +57 -0
  61. package/dist/esm/packages/teams-js/dts/public/appInstallDialog.d.ts +18 -0
  62. package/dist/esm/packages/teams-js/dts/public/appWindow.d.ts +66 -0
  63. package/dist/esm/packages/teams-js/dts/public/authentication.d.ts +409 -0
  64. package/dist/esm/packages/teams-js/dts/public/barCode.d.ts +53 -0
  65. package/dist/esm/packages/teams-js/dts/public/calendar.d.ts +40 -0
  66. package/dist/esm/packages/teams-js/dts/public/call.d.ts +53 -0
  67. package/dist/esm/packages/teams-js/dts/public/chat.d.ts +66 -0
  68. package/dist/esm/packages/teams-js/dts/public/clipboard.d.ts +34 -0
  69. package/dist/esm/packages/teams-js/dts/public/constants.d.ts +179 -0
  70. package/dist/esm/packages/teams-js/dts/public/dialog.d.ts +286 -0
  71. package/dist/esm/packages/teams-js/dts/public/emailAddress.d.ts +12 -0
  72. package/dist/esm/packages/teams-js/dts/public/geoLocation.d.ts +100 -0
  73. package/dist/esm/packages/teams-js/dts/public/index.d.ts +44 -0
  74. package/dist/esm/packages/teams-js/dts/public/interfaces.d.ts +1133 -0
  75. package/dist/esm/packages/teams-js/dts/public/liveShareHost.d.ts +221 -0
  76. package/dist/esm/packages/teams-js/dts/public/location.d.ts +86 -0
  77. package/dist/esm/packages/teams-js/dts/public/mail.d.ts +95 -0
  78. package/dist/esm/packages/teams-js/dts/public/marketplace.d.ts +321 -0
  79. package/dist/esm/packages/teams-js/dts/public/media.d.ts +440 -0
  80. package/dist/esm/packages/teams-js/dts/public/meeting.d.ts +906 -0
  81. package/dist/esm/packages/teams-js/dts/public/menus.d.ts +188 -0
  82. package/dist/esm/packages/teams-js/dts/public/monetization.d.ts +58 -0
  83. package/dist/esm/packages/teams-js/dts/public/navigation.d.ts +45 -0
  84. package/dist/esm/packages/teams-js/dts/public/nestedAppAuth.d.ts +15 -0
  85. package/dist/esm/packages/teams-js/dts/public/pages.d.ts +574 -0
  86. package/dist/esm/packages/teams-js/dts/public/people.d.ts +75 -0
  87. package/dist/esm/packages/teams-js/dts/public/profile.d.ts +127 -0
  88. package/dist/esm/packages/teams-js/dts/public/publicAPIs.d.ts +218 -0
  89. package/dist/esm/packages/teams-js/dts/public/runtime.d.ts +207 -0
  90. package/dist/esm/packages/teams-js/dts/public/search.d.ts +91 -0
  91. package/dist/esm/packages/teams-js/dts/public/secondaryBrowser.d.ts +32 -0
  92. package/dist/esm/packages/teams-js/dts/public/serializable.interface.d.ts +17 -0
  93. package/dist/esm/packages/teams-js/dts/public/settings.d.ts +101 -0
  94. package/dist/esm/packages/teams-js/dts/public/sharing.d.ts +124 -0
  95. package/dist/esm/packages/teams-js/dts/public/stageView.d.ts +104 -0
  96. package/dist/esm/packages/teams-js/dts/public/tasks.d.ts +62 -0
  97. package/dist/esm/packages/teams-js/dts/public/teamsAPIs.d.ts +77 -0
  98. package/dist/esm/packages/teams-js/dts/public/thirdPartyCloudStorage.d.ts +119 -0
  99. package/dist/esm/packages/teams-js/dts/public/version.d.ts +5 -0
  100. package/dist/esm/packages/teams-js/dts/public/videoEffects.d.ts +213 -0
  101. package/dist/esm/packages/teams-js/dts/public/visualMedia.d.ts +192 -0
  102. package/dist/esm/packages/teams-js/dts/public/webStorage.d.ts +27 -0
  103. package/dist/esm/packages/teams-js/src/artifactsForCDN/validDomains.json.js +1 -1
  104. package/dist/esm/packages/teams-js/src/index.js +1 -1
  105. package/dist/esm/packages/teams-js/src/internal/appHelpers.js +1 -0
  106. package/dist/esm/packages/teams-js/src/internal/communication.js +1 -1
  107. package/dist/esm/packages/teams-js/src/internal/deepLinkUtilities.js +1 -1
  108. package/dist/esm/packages/teams-js/src/internal/responseHandler.js +1 -0
  109. package/dist/esm/packages/teams-js/src/private/externalAppAuthentication.js +1 -1
  110. package/dist/esm/packages/teams-js/src/private/externalAppAuthenticationForCEA.js +1 -1
  111. package/dist/esm/packages/teams-js/src/private/hostEntity.js +1 -1
  112. package/dist/esm/packages/teams-js/src/private/videoEffectsEx.js +1 -1
  113. package/dist/esm/packages/teams-js/src/public/app.js +1 -1
  114. package/dist/esm/packages/teams-js/src/public/appId.js +1 -1
  115. package/dist/esm/packages/teams-js/src/public/appInitialization.js +1 -1
  116. package/dist/esm/packages/teams-js/src/public/appInstallDialog.js +1 -1
  117. package/dist/esm/packages/teams-js/src/public/authentication.js +1 -1
  118. package/dist/esm/packages/teams-js/src/public/barCode.js +1 -1
  119. package/dist/esm/packages/teams-js/src/public/calendar.js +1 -1
  120. package/dist/esm/packages/teams-js/src/public/call.js +1 -1
  121. package/dist/esm/packages/teams-js/src/public/clipboard.js +1 -1
  122. package/dist/esm/packages/teams-js/src/public/constants.js +1 -1
  123. package/dist/esm/packages/teams-js/src/public/pages.js +1 -1
  124. package/dist/esm/packages/teams-js/src/public/publicAPIs.js +1 -1
  125. package/dist/esm/packages/teams-js/src/public/serializable.interface.js +1 -0
  126. package/dist/esm/packages/teams-js/src/public/settings.js +1 -1
  127. package/dist/esm/packages/teams-js/src/public/tasks.js +1 -1
  128. package/dist/esm/packages/teams-js/src/public/version.js +1 -1
  129. package/dist/esm/packages/teams-js/src/public/webStorage.js +1 -1
  130. package/dist/umd/MicrosoftTeams.d.ts +10740 -10768
  131. package/dist/umd/MicrosoftTeams.js +1572 -1360
  132. package/dist/umd/MicrosoftTeams.js.map +1 -1
  133. package/dist/umd/MicrosoftTeams.min.js +1 -1
  134. package/dist/umd/MicrosoftTeams.min.js.map +1 -1
  135. package/package.json +1 -1
  136. package/dist/esm/node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/browser.js +0 -1
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Namespace for profile related APIs.
3
+ *
4
+ * @beta
5
+ */
6
+ export declare namespace profile {
7
+ /**
8
+ * Opens a profile card at a specified position to show profile information about a persona.
9
+ * @param showProfileRequest The parameters to position the card and identify the target user.
10
+ * @returns Promise that will be fulfilled when the operation has completed
11
+ *
12
+ * @beta
13
+ */
14
+ function showProfile(showProfileRequest: ShowProfileRequest): Promise<void>;
15
+ /**
16
+ * The type of modalities that are supported when showing a profile.
17
+ * Can be provided as an optional hint with the request and will be
18
+ * respected if the hosting M365 application supports it.
19
+ *
20
+ * @beta
21
+ */
22
+ type Modality = 'Card' | 'Expanded';
23
+ /**
24
+ * The type of the profile trigger.
25
+ * - MouseHover: The user hovered a target.
26
+ * - Press: The target was pressed with either a mouse click or keyboard key press.
27
+ * - AppRequest: The show profile request is happening programmatically, without direct user interaction.
28
+ *
29
+ * @beta
30
+ */
31
+ type TriggerType = 'MouseHover' | 'Press' | 'AppRequest';
32
+ /**
33
+ * The set of identifiers that are supported for resolving the persona.
34
+ *
35
+ * At least one is required, and if multiple are provided then only the highest
36
+ * priority one will be used (AadObjectId > Upn > Smtp). AAD is now known as "Microsoft Entra ID"
37
+ *
38
+ * @beta
39
+ */
40
+ type PersonaIdentifiers = {
41
+ /**
42
+ * The object id in Microsoft Entra.
43
+ *
44
+ * This id is guaranteed to be unique for an object within a tenant,
45
+ * and so if provided will lead to a more performant lookup. It can
46
+ * be resolved via MS Graph (see https://learn.microsoft.com/graph/api/resources/users
47
+ * for examples).
48
+ */
49
+ readonly AadObjectId?: string;
50
+ /**
51
+ * The primary SMTP address.
52
+ */
53
+ readonly Smtp?: string;
54
+ /**
55
+ * The user principle name.
56
+ */
57
+ readonly Upn?: string;
58
+ };
59
+ /**
60
+ * The persona to show the profile for.
61
+ *
62
+ * @beta
63
+ */
64
+ interface Persona {
65
+ /**
66
+ * The set of identifiers that are supported for resolving the persona.
67
+ */
68
+ identifiers: PersonaIdentifiers;
69
+ /**
70
+ * Optional display name override. If not specified the user's display name will be resolved normally.
71
+ */
72
+ displayName?: string;
73
+ }
74
+ /**
75
+ * Input parameters provided to the showProfile API.
76
+ *
77
+ * @beta
78
+ */
79
+ interface ShowProfileRequest {
80
+ /**
81
+ * An optional hint to the hosting M365 application about which modality of the profile you want to show.
82
+ */
83
+ modality?: Modality;
84
+ /**
85
+ * The information about the persona to show the profile for.
86
+ */
87
+ persona: Persona;
88
+ /**
89
+ * The bounding rectangle of the target.
90
+ */
91
+ targetElementBoundingRect: DOMRect;
92
+ /**
93
+ * Specifies which user interaction was used to trigger the API call.
94
+ */
95
+ triggerType: TriggerType;
96
+ }
97
+ /**
98
+ * Checks if the profile capability is supported by the host
99
+ * @returns boolean to represent whether the profile capability is supported
100
+ *
101
+ * @throws Error if {@linkcode app.initialize} has not successfully completed
102
+ *
103
+ * @beta
104
+ */
105
+ function isSupported(): boolean;
106
+ }
107
+ /**
108
+ * Internal representation of a DOMRect suitable for sending via postMessage.
109
+ */
110
+ export type Rectangle = {
111
+ x: number;
112
+ y: number;
113
+ width: number;
114
+ height: number;
115
+ };
116
+ /**
117
+ * @beta
118
+ * @hidden
119
+ * An internal representation of the showProfile parameters suitable for sending via postMessage.
120
+ * The hub expects to receive an object of this type.
121
+ */
122
+ export interface ShowProfileRequestInternal {
123
+ modality?: profile.Modality;
124
+ persona: profile.Persona;
125
+ targetRectangle: Rectangle;
126
+ triggerType: profile.TriggerType;
127
+ }
@@ -0,0 +1,218 @@
1
+ import { Context, DeepLinkParameters, FrameContext, LoadContext, TabInformation, TabInstanceParameters } from './interfaces';
2
+ /** Type of callback used to indicate when {@link executeDeepLink} completes */
3
+ export type executeDeepLinkOnCompleteFunctionType = (status: boolean, reason?: string) => void;
4
+ /** Callback function type */
5
+ export type callbackFunctionType = () => void;
6
+ /** Get context callback function type */
7
+ export type getContextCallbackFunctionType = (context: Context) => void;
8
+ /** Get tab instances callback function type */
9
+ export type getTabInstancesCallbackFunctionType = (tabInfo: TabInformation) => void;
10
+ /** Register back button handler function type */
11
+ export type registerBackButtonHandlerFunctionType = () => boolean;
12
+ /** Register full screen handler function type */
13
+ export type registerFullScreenHandlerFunctionType = (isFullScreen: boolean) => void;
14
+ /** Register on theme change handler function type */
15
+ export type registerOnThemeChangeHandlerFunctionType = (theme: string) => void;
16
+ /**
17
+ * @deprecated
18
+ * As of TeamsJS v2.0.0, please use {@link app.initialize app.initialize(validMessageOrigins?: string[]): Promise\<void\>} instead.
19
+ *
20
+ * Initializes the library. This must be called before any other SDK calls
21
+ * but after the frame is loaded successfully.
22
+ * @param callback - Optionally specify a callback to invoke when Teams SDK has successfully initialized
23
+ * @param validMessageOrigins - Optionally specify a list of cross-frame message origins. This parameter is used if you know that your app
24
+ * will be hosted on a custom domain (i.e., not a standard Microsoft 365 host like Teams, Outlook, etc.) Most apps will never need
25
+ * to pass a value for this parameter.
26
+ * Any domains passed in the array must have the https: protocol on the string otherwise they will be ignored. Example: https://www.example.com
27
+ */
28
+ export declare function initialize(callback?: callbackFunctionType, validMessageOrigins?: string[]): void;
29
+ /**
30
+ * @deprecated
31
+ * As of TeamsJS v2.0.0, please use {@link teamsCore.enablePrintCapability teamsCore.enablePrintCapability(): void} instead.
32
+ *
33
+ * Enable print capability to support printing page using Ctrl+P and cmd+P
34
+ */
35
+ export declare function enablePrintCapability(): void;
36
+ /**
37
+ * @deprecated
38
+ * As of TeamsJS v2.0.0, please use {@link teamsCore.print teamsCore.print(): void} instead.
39
+ *
40
+ * Default print handler
41
+ */
42
+ export declare function print(): void;
43
+ /**
44
+ * @deprecated
45
+ * As of TeamsJS v2.0.0, please use {@link app.getContext app.getContext(): Promise\<app.Context\>} instead.
46
+ *
47
+ * Retrieves the current context the frame is running in.
48
+ *
49
+ * @param callback - The callback to invoke when the {@link Context} object is retrieved.
50
+ */
51
+ export declare function getContext(callback: getContextCallbackFunctionType): void;
52
+ /**
53
+ * @deprecated
54
+ * As of TeamsJS v2.0.0, please use {@link app.registerOnThemeChangeHandler app.registerOnThemeChangeHandler(handler: registerOnThemeChangeHandlerFunctionType): void} instead.
55
+ *
56
+ * Registers a handler for theme changes.
57
+ * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.
58
+ *
59
+ * @param handler - The handler to invoke when the user changes their theme.
60
+ */
61
+ export declare function registerOnThemeChangeHandler(handler: registerOnThemeChangeHandlerFunctionType): void;
62
+ /**
63
+ * @deprecated
64
+ * As of TeamsJS v2.0.0, please use {@link pages.registerFullScreenHandler pages.registerFullScreenHandler(handler: registerFullScreenHandlerFunctionType): void} instead.
65
+ *
66
+ * Registers a handler for changes from or to full-screen view for a tab.
67
+ * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.
68
+ *
69
+ * @param handler - The handler to invoke when the user toggles full-screen view for a tab.
70
+ */
71
+ export declare function registerFullScreenHandler(handler: registerFullScreenHandlerFunctionType): void;
72
+ /**
73
+ * @deprecated
74
+ * As of TeamsJS v2.0.0, please use {@link pages.appButton.onClick pages.appButton.onClick(handler: callbackFunctionType): void} instead.
75
+ *
76
+ * Registers a handler for clicking the app button.
77
+ * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.
78
+ *
79
+ * @param handler - The handler to invoke when the personal app button is clicked in the app bar.
80
+ */
81
+ export declare function registerAppButtonClickHandler(handler: callbackFunctionType): void;
82
+ /**
83
+ * @deprecated
84
+ * As of TeamsJS v2.0.0, please use {@link pages.appButton.onHoverEnter pages.appButton.onHoverEnter(handler: callbackFunctionType): void} instead.
85
+ *
86
+ * Registers a handler for entering hover of the app button.
87
+ * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.
88
+ *
89
+ * @param handler - The handler to invoke when entering hover of the personal app button in the app bar.
90
+ */
91
+ export declare function registerAppButtonHoverEnterHandler(handler: callbackFunctionType): void;
92
+ /**
93
+ * @deprecated
94
+ * As of TeamsJS v2.0.0, please use {@link pages.appButton.onHoverLeave pages.appButton.onHoverLeave(handler: callbackFunctionType): void} instead.
95
+ *
96
+ * Registers a handler for exiting hover of the app button.
97
+ * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.
98
+ * @param handler - The handler to invoke when exiting hover of the personal app button in the app bar.
99
+ *
100
+ */
101
+ export declare function registerAppButtonHoverLeaveHandler(handler: callbackFunctionType): void;
102
+ /**
103
+ * @deprecated
104
+ * As of TeamsJS v2.0.0, please use {@link pages.backStack.registerBackButtonHandler pages.backStack.registerBackButtonHandler(handler: registerBackButtonHandlerFunctionType): void} instead.
105
+ *
106
+ * Registers a handler for user presses of the Team client's back button. Experiences that maintain an internal
107
+ * navigation stack should use this handler to navigate the user back within their frame. If an app finds
108
+ * that after running its back button handler it cannot handle the event it should call the navigateBack
109
+ * method to ask the Teams client to handle it instead.
110
+ *
111
+ * @param handler - The handler to invoke when the user presses their Team client's back button.
112
+ */
113
+ export declare function registerBackButtonHandler(handler: registerBackButtonHandlerFunctionType): void;
114
+ /**
115
+ * @deprecated
116
+ * As of TeamsJS v2.0.0, please use {@link teamsCore.registerOnLoadHandler teamsCore.registerOnLoadHandler(handler: (context: LoadContext) => void): void} instead.
117
+ *
118
+ * @hidden
119
+ * Registers a handler to be called when the page has been requested to load.
120
+ *
121
+ * @param handler - The handler to invoke when the page is loaded.
122
+ */
123
+ export declare function registerOnLoadHandler(handler: (context: LoadContext) => void): void;
124
+ /**
125
+ * @deprecated
126
+ * As of TeamsJS v2.0.0, please use {@link teamsCore.registerBeforeUnloadHandler teamsCore.registerBeforeUnloadHandler(handler: (readyToUnload: callbackFunctionType) => boolean): void} instead.
127
+ *
128
+ * @hidden
129
+ * Registers a handler to be called before the page is unloaded.
130
+ *
131
+ * @param handler - The handler to invoke before the page is unloaded. If this handler returns true the page should
132
+ * invoke the readyToUnload function provided to it once it's ready to be unloaded.
133
+ */
134
+ export declare function registerBeforeUnloadHandler(handler: (readyToUnload: callbackFunctionType) => boolean): void;
135
+ /**
136
+ * @deprecated
137
+ * As of TeamsJS v2.0.0, please use {@link pages.registerFocusEnterHandler pages.registerFocusEnterHandler(handler: (navigateForward: boolean) => void): void} instead.
138
+ *
139
+ * @hidden
140
+ * Registers a handler when focus needs to be passed from teams to the place of choice on app.
141
+ *
142
+ * @param handler - The handler to invoked by the app when they want the focus to be in the place of their choice.
143
+ */
144
+ export declare function registerFocusEnterHandler(handler: (navigateForward: boolean) => boolean): void;
145
+ /**
146
+ * @deprecated
147
+ * As of TeamsJS v2.0.0, please use {@link pages.config.registerChangeConfigHandler pages.config.registerChangeConfigHandler(handler: callbackFunctionType): void} instead.
148
+ *
149
+ * Registers a handler for when the user reconfigurated tab.
150
+ *
151
+ * @param handler - The handler to invoke when the user click on Settings.
152
+ */
153
+ export declare function registerChangeSettingsHandler(handler: callbackFunctionType): void;
154
+ /**
155
+ * @deprecated
156
+ * As of TeamsJS v2.0.0, please use {@link pages.tabs.getTabInstances pages.tabs.getTabInstances(tabInstanceParameters?: TabInstanceParameters): Promise\<TabInformation\>} instead.
157
+ *
158
+ * Allows an app to retrieve for this user tabs that are owned by this app.
159
+ * If no TabInstanceParameters are passed, the app defaults to favorite teams and favorite channels.
160
+ *
161
+ * @param callback - The callback to invoke when the {@link TabInstanceParameters} object is retrieved.
162
+ * @param tabInstanceParameters - OPTIONAL Flags that specify whether to scope call to favorite teams or channels.
163
+ */
164
+ export declare function getTabInstances(callback: getTabInstancesCallbackFunctionType, tabInstanceParameters?: TabInstanceParameters): void;
165
+ /**
166
+ * @deprecated
167
+ * As of TeamsJS v2.0.0, please use {@link pages.tabs.getMruTabInstances pages.tabs.getMruTabInstances(tabInstanceParameters?: TabInstanceParameters): Promise\<TabInformation\>} instead.
168
+ *
169
+ * Allows an app to retrieve the most recently used tabs for this user.
170
+ *
171
+ * @param callback - The callback to invoke when the {@link TabInformation} object is retrieved.
172
+ * @param tabInstanceParameters - OPTIONAL Ignored, kept for future use
173
+ */
174
+ export declare function getMruTabInstances(callback: getTabInstancesCallbackFunctionType, tabInstanceParameters?: TabInstanceParameters): void;
175
+ /**
176
+ * @deprecated
177
+ * As of TeamsJS v2.0.0, please use {@link pages.shareDeepLink pages.shareDeepLink(deepLinkParameters: DeepLinkParameters): void} instead.
178
+ *
179
+ * Shares a deep link that a user can use to navigate back to a specific state in this page.
180
+ *
181
+ * @param deepLinkParameters - ID and label for the link and fallback URL.
182
+ */
183
+ export declare function shareDeepLink(deepLinkParameters: DeepLinkParameters): void;
184
+ /**
185
+ * @deprecated
186
+ * This function was previously used for opening various types of links. As of TeamsJS v2.0.0, it has been replaced with multiple different
187
+ * functions depending on the type of link:
188
+ *
189
+ * - Use {@link pages.currentApp.navigateToDefaultPage} to navigate to the default page of your own app
190
+ * - Use {@link pages.currentApp.navigateTo} to navigate to a section of your own app
191
+ * - Use {@link pages.navigateToApp} to navigate to other apps besides your own
192
+ * - Use {@link app.openLink} for opening deep links to other parts of the host (e.g., to chats or channels) or
193
+ * general-purpose links (e.g., to external websites).
194
+ *
195
+ * @param deepLink deep link.
196
+ */
197
+ export declare function executeDeepLink(deepLink: string, onComplete?: executeDeepLinkOnCompleteFunctionType): void;
198
+ /**
199
+ * @deprecated
200
+ * As of TeamsJS v2.0.0, please use {@link pages.setCurrentFrame pages.setCurrentFrame(frameInfo: FrameInfo): void} instead.
201
+ *
202
+ * Set the current Frame Context
203
+ *
204
+ * @param frameContext - FrameContext information to be set
205
+ */
206
+ export declare function setFrameContext(frameContext: FrameContext): void;
207
+ /**
208
+ * @deprecated
209
+ * As of TeamsJS v2.0.0, please use {@link pages.initializeWithFrameContext pages.initializeWithFrameContext(frameInfo: FrameInfo, callback?: callbackFunctionType, validMessageOrigins?: string[],): void} instead.
210
+ *
211
+ * Initialize with FrameContext
212
+ *
213
+ * @param frameContext - FrameContext information to be set
214
+ * @param callback - The optional callback to be invoked be invoked after initilizing the frame context
215
+ * @param validMessageOrigins - Optionally specify a list of cross frame message origins.
216
+ * They must have https: protocol otherwise they will be ignored. Example: https:www.example.com
217
+ */
218
+ export declare function initializeWithFrameContext(frameContext: FrameContext, callback?: callbackFunctionType, validMessageOrigins?: string[]): void;
@@ -0,0 +1,207 @@
1
+ import { HostClientType } from './constants';
2
+ import { HostVersionsInfo } from './interfaces';
3
+ export interface IBaseRuntime {
4
+ readonly apiVersion: number;
5
+ readonly hostVersionsInfo?: HostVersionsInfo;
6
+ readonly isLegacyTeams?: boolean;
7
+ readonly supports?: {};
8
+ }
9
+ /**
10
+ * Latest runtime interface version
11
+ */
12
+ export type Runtime = IRuntimeV4;
13
+ export declare const latestRuntimeApiVersion = 4;
14
+ interface IRuntimeV4 extends IBaseRuntime {
15
+ readonly apiVersion: 4;
16
+ readonly hostVersionsInfo?: HostVersionsInfo;
17
+ readonly isNAAChannelRecommended?: boolean;
18
+ readonly isLegacyTeams?: boolean;
19
+ readonly supports: {
20
+ readonly appEntity?: {};
21
+ readonly appInstallDialog?: {};
22
+ readonly barCode?: {};
23
+ readonly calendar?: {};
24
+ readonly call?: {};
25
+ readonly chat?: {};
26
+ readonly clipboard?: {};
27
+ readonly conversations?: {};
28
+ readonly copilot?: {
29
+ readonly eligibility?: {};
30
+ };
31
+ readonly dialog?: {
32
+ readonly card?: {
33
+ readonly bot?: {};
34
+ };
35
+ readonly url?: {
36
+ readonly bot?: {};
37
+ readonly parentCommunication?: {};
38
+ };
39
+ readonly update?: {};
40
+ };
41
+ readonly externalAppAuthentication?: {};
42
+ readonly externalAppAuthenticationForCEA?: {};
43
+ readonly externalAppCardActions?: {};
44
+ readonly externalAppCardActionsForCEA?: {};
45
+ readonly externalAppCommands?: {};
46
+ readonly geoLocation?: {
47
+ readonly map?: {};
48
+ };
49
+ readonly hostEntity?: {
50
+ readonly tab?: {};
51
+ };
52
+ readonly interactive?: {};
53
+ readonly secondaryBrowser?: {};
54
+ readonly location?: {};
55
+ readonly logs?: {};
56
+ readonly mail?: {};
57
+ readonly marketplace?: {};
58
+ readonly meetingRoom?: {};
59
+ readonly menus?: {};
60
+ readonly messageChannels?: {
61
+ readonly telemetry?: {};
62
+ readonly dataLayer?: {};
63
+ };
64
+ readonly monetization?: {};
65
+ readonly nestedAppAuth?: {};
66
+ readonly notifications?: {};
67
+ readonly otherAppStateChange?: {};
68
+ readonly pages?: {
69
+ readonly appButton?: {};
70
+ readonly backStack?: {};
71
+ readonly config?: {};
72
+ readonly currentApp?: {};
73
+ readonly fullTrust?: {};
74
+ readonly tabs?: {};
75
+ };
76
+ readonly people?: {};
77
+ readonly permissions?: {};
78
+ readonly profile?: {};
79
+ readonly remoteCamera?: {};
80
+ readonly search?: {};
81
+ readonly sharing?: {
82
+ readonly history?: {};
83
+ };
84
+ readonly stageView?: {
85
+ readonly self?: {};
86
+ };
87
+ readonly teams?: {
88
+ readonly fullTrust?: {
89
+ readonly joinedTeams?: {};
90
+ };
91
+ };
92
+ readonly thirdPartyCloudStorage?: {};
93
+ readonly teamsCore?: {};
94
+ readonly video?: {
95
+ readonly mediaStream?: {};
96
+ readonly sharedFrame?: {};
97
+ };
98
+ readonly visualMedia?: {
99
+ readonly image?: {};
100
+ };
101
+ readonly webStorage?: {};
102
+ };
103
+ }
104
+ interface UninitializedRuntime extends IBaseRuntime {
105
+ readonly apiVersion: -1;
106
+ readonly supports: {};
107
+ }
108
+ /**
109
+ * @hidden
110
+ * Ensures that the runtime has been initialized
111
+
112
+ * @returns True if the runtime has been initialized
113
+ * @throws Error if the runtime has not been initialized
114
+ *
115
+ * @internal
116
+ * Limited to Microsoft-internal use
117
+ */
118
+ export declare function isRuntimeInitialized(runtime: IBaseRuntime): runtime is Runtime;
119
+ export declare let runtime: Runtime | UninitializedRuntime;
120
+ /**
121
+ * This object is used as the default runtime for versions of Teams which don't pass a runtime object during
122
+ * initialization. If the host DOES pass a runtime object during init, then this object is not used.
123
+ *
124
+ * In practice, this is used in Teams V1 and ALL versions of Teams mobile since they are the only hosts
125
+ * that don't pass a runtime object during initialization (since they don't use the host SDK).
126
+ *
127
+ * If there are certain versions of Teams V1 or Teams mobile which support a capability but not ALL
128
+ * versions, then you should modify the mapTeamsVersionToSupportedCapabilities structure for that purpose. That
129
+ * structure allows you to specify particular versions on particular platforms that support certain capabilities.
130
+ * This structure is version agnostic.
131
+ *
132
+ * In practice, if you are adding a new capability, you are likely only to need to update mapTeamsVersionToSupportedCapabilities
133
+ * and NOT this structure, as this structure is effectively only used for capabilities that have existed "forever."
134
+ *
135
+ * Remember that everything here all still ONLY applies to versions of Teams that don't pass a runtime object during
136
+ * initialization -- if they do, then neither this object nor the mapTeamsVersionToSupportedCapabilities structure is
137
+ * used -- all runtime capabilities are dynamically discovered at runtime in the case where the runtime object is passed
138
+ * during initialization.
139
+ */
140
+ export declare const versionAndPlatformAgnosticTeamsRuntimeConfig: Runtime;
141
+ export interface ICapabilityReqs {
142
+ readonly capability: object;
143
+ readonly hostClientTypes: Array<string>;
144
+ }
145
+ export declare const v1MobileHostClientTypes: HostClientType[];
146
+ export declare const v1HostClientTypes: HostClientType[];
147
+ /**
148
+ * @hidden
149
+ * `upgradeToNextVersion` transforms runtime of version `versionToUpgradeFrom` to the next higher version
150
+ *
151
+ * @internal
152
+ * Limited to Microsoft-internal use
153
+ */
154
+ interface IRuntimeUpgrade {
155
+ versionToUpgradeFrom: number;
156
+ upgradeToNextVersion: (previousVersionRuntime: IBaseRuntime) => IBaseRuntime;
157
+ }
158
+ /**
159
+ * @hidden
160
+ * Uses upgradeChain to transform an outdated runtime object to the latest format.
161
+ * @param outdatedRuntime - The runtime object to be upgraded
162
+ * @returns The upgraded runtime object
163
+ * @throws Error if the runtime object could not be upgraded to the latest version
164
+ *
165
+ * @internal
166
+ * Limited to Microsoft-internal use
167
+ */
168
+ export declare function fastForwardRuntime(outdatedRuntime: IBaseRuntime): Runtime;
169
+ /**
170
+ * @hidden
171
+ * List of transformations required to upgrade a runtime object from a previous version to the next higher version.
172
+ * This list must be ordered from lowest version to highest version
173
+ *
174
+ * @internal
175
+ * Limited to Microsoft-internal use
176
+ */
177
+ export declare const upgradeChain: IRuntimeUpgrade[];
178
+ /**
179
+ * This structure is used for versions of Teams that don't pass a runtime object during initialization.
180
+ * Please see the extensive comments in versionAndPlatformAgnosticTeamsRuntimeConfig for more information
181
+ * on when and how to use this structure.
182
+ */
183
+ export declare const mapTeamsVersionToSupportedCapabilities: Record<string, Array<ICapabilityReqs>>;
184
+ /**
185
+ * @internal
186
+ * Limited to Microsoft-internal use
187
+ *
188
+ * Generates and returns a runtime configuration for host clients which are not on the latest host SDK version
189
+ * and do not provide their own runtime config (this is just older versions of Teams on some platforms).
190
+ * Their supported capabilities are based on the highest client SDK version that they can support.
191
+ *
192
+ * @param highestSupportedVersion - The highest client SDK version that the host client can support.
193
+ * @returns runtime which describes the APIs supported by the legacy host client.
194
+ */
195
+ export declare function generateVersionBasedTeamsRuntimeConfig(highestSupportedVersion: string, versionAgnosticRuntimeConfig: Runtime, mapVersionToSupportedCapabilities: Record<string, Array<ICapabilityReqs>>): Runtime;
196
+ export declare function applyRuntimeConfig(runtimeConfig: IBaseRuntime): void;
197
+ export declare function setUnitializedRuntime(): void;
198
+ /**
199
+ * @hidden
200
+ * Constant used to set minimum runtime configuration
201
+ * while un-initializing an app in unit test case.
202
+ *
203
+ * @internal
204
+ * Limited to Microsoft-internal use
205
+ */
206
+ export declare const _minRuntimeConfigToUninitialize: Runtime;
207
+ export {};
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Allows your application to interact with the host M365 application's search box.
3
+ * By integrating your application with the host's search box, users can search
4
+ * your app using the same search box they use elsewhere in Teams, Outlook, or Office.
5
+ *
6
+ * This functionality is in Beta.
7
+ * @beta
8
+ */
9
+ export declare namespace search {
10
+ /**
11
+ * This interface contains information pertaining to the contents of the host M365 application's search box
12
+ *
13
+ * @beta
14
+ */
15
+ interface SearchQuery {
16
+ /** The current search term in the host search experience */
17
+ searchTerm: string;
18
+ /** Timestamp sequence value to ensure messages are processed in correct order / combine them. */
19
+ timestamp: number;
20
+ }
21
+ /**
22
+ * This type will store the SearchQuery and allow other logic to be made inside the handler.
23
+ *
24
+ * @beta
25
+ */
26
+ type SearchQueryHandler = (query: SearchQuery) => void;
27
+ /**
28
+ * Allows the caller to register for various events fired by the host search experience.
29
+ * Calling this function indicates that your application intends to plug into the host's search box and handle search events,
30
+ * when the user is actively using your page/tab.
31
+ *
32
+ * The host may visually update its search box, e.g. with the name or icon of your application.
33
+ *
34
+ * Your application should *not* re-render inside of these callbacks, there may be a large number
35
+ * of onChangeHandler calls if the user is typing rapidly in the search box.
36
+ *
37
+ * @param onClosedHandler - This handler will be called when the user exits or cancels their search.
38
+ * Should be used to return your application to its most recent, non-search state. The value of {@link SearchQuery.searchTerm}
39
+ * will be whatever the last query was before ending search.
40
+ *
41
+ * @param onExecuteHandler - The handler will be called when the user executes their
42
+ * search (by pressing Enter for example). Should be used to display the full list of search results.
43
+ * The value of {@link SearchQuery.searchTerm} is the complete query the user entered in the search box.
44
+ *
45
+ * @param onChangeHandler - This optional handler will be called when the user first starts using the
46
+ * host's search box and as the user types their query. Can be used to put your application into a
47
+ * word-wheeling state or to display suggestions as the user is typing.
48
+ *
49
+ * This handler will be called with an empty {@link SearchQuery.searchTerm} when search is beginning, and subsequently,
50
+ * with the current contents of the search box.
51
+ * @example
52
+ * ``` ts
53
+ * search.registerHandlers(
54
+ query => {
55
+ console.log('Update your application to handle the search experience being closed. Last query: ${query.searchTerm}');
56
+ },
57
+ query => {
58
+ console.log(`Update your application to handle an executed search result: ${query.searchTerm}`);
59
+ },
60
+ query => {
61
+ console.log(`Update your application with the changed search query: ${query.searchTerm}`);
62
+ },
63
+ );
64
+ * ```
65
+ *
66
+ * @beta
67
+ */
68
+ function registerHandlers(onClosedHandler: SearchQueryHandler, onExecuteHandler: SearchQueryHandler, onChangeHandler?: SearchQueryHandler): void;
69
+ /**
70
+ * Allows the caller to unregister for all events fired by the host search experience. Calling
71
+ * this function will cause your app to stop appearing in the set of search scopes in the hosts
72
+ *
73
+ * @beta
74
+ */
75
+ function unregisterHandlers(): void;
76
+ /**
77
+ * Checks if search capability is supported by the host
78
+ * @returns boolean to represent whether the search capability is supported
79
+ *
80
+ * @throws Error if {@link app.initialize} has not successfully completed
81
+ *
82
+ * @beta
83
+ */
84
+ function isSupported(): boolean;
85
+ /**
86
+ * Clear the host M365 application's search box
87
+ *
88
+ * @beta
89
+ */
90
+ function closeSearch(): Promise<void>;
91
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Namespace to power up the in-app browser experiences in the host app.
3
+ * For e.g., opening a URL in the host app inside a browser
4
+ *
5
+ * @beta
6
+ */
7
+ export declare namespace secondaryBrowser {
8
+ /**
9
+ * Open a URL in the secondary browser.
10
+ *
11
+ * On mobile, this is the in-app browser.
12
+ *
13
+ * On web and desktop, please use the `window.open()` method or other native external browser methods.
14
+ *
15
+ * @param url Url to open in the browser
16
+ * @returns Promise that successfully resolves if the URL opens in the secondaryBrowser
17
+ * or throws an error {@link SdkError} incase of failure before starting navigation
18
+ *
19
+ * @remarks Any error that happens after navigation begins is handled by the platform browser component and not returned from this function.
20
+ * @beta
21
+ */
22
+ function open(url: URL): Promise<void>;
23
+ /**
24
+ * Checks if secondaryBrowser capability is supported by the host
25
+ * @returns boolean to represent whether secondaryBrowser is supported
26
+ *
27
+ * @throws Error if {@linkcode app.initialize} has not successfully completed
28
+ *
29
+ * @beta
30
+ */
31
+ function isSupported(): boolean;
32
+ }