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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. package/dist/esm/_virtual/__polyfill-node.os.js +1 -0
  2. package/dist/esm/_virtual/_polyfill-node.os.js +1 -0
  3. package/dist/esm/node_modules/.pnpm/debug@4.3.5/node_modules/debug/src/node.js +1 -1
  4. package/dist/esm/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js +1 -0
  5. package/dist/esm/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js +1 -0
  6. package/dist/esm/packages/teams-js/dts/index.d.ts +2 -0
  7. package/dist/esm/packages/teams-js/dts/internal/VideoFrameTypes.d.ts +78 -0
  8. package/dist/esm/packages/teams-js/dts/internal/appHelpers.d.ts +8 -0
  9. package/dist/esm/packages/teams-js/dts/internal/appIdValidation.d.ts +16 -0
  10. package/dist/esm/packages/teams-js/dts/internal/communication.d.ts +162 -0
  11. package/dist/esm/packages/teams-js/dts/internal/constants.d.ts +146 -0
  12. package/dist/esm/packages/teams-js/dts/internal/deepLinkConstants.d.ts +26 -0
  13. package/dist/esm/packages/teams-js/dts/internal/deepLinkUtilities.d.ts +4 -0
  14. package/dist/esm/packages/teams-js/dts/internal/emailAddressValidation.d.ts +1 -0
  15. package/dist/esm/packages/teams-js/dts/internal/globalVars.d.ts +12 -0
  16. package/dist/esm/packages/teams-js/dts/internal/handlers.d.ts +80 -0
  17. package/dist/esm/packages/teams-js/dts/internal/interfaces.d.ts +47 -0
  18. package/dist/esm/packages/teams-js/dts/internal/internalAPIs.d.ts +61 -0
  19. package/dist/esm/packages/teams-js/dts/internal/marketplaceUtils.d.ts +94 -0
  20. package/dist/esm/packages/teams-js/dts/internal/mediaUtil.d.ts +95 -0
  21. package/dist/esm/packages/teams-js/dts/internal/messageObjects.d.ts +73 -0
  22. package/dist/esm/packages/teams-js/dts/internal/nestedAppAuthUtils.d.ts +105 -0
  23. package/dist/esm/packages/teams-js/dts/internal/profileUtil.d.ts +11 -0
  24. package/dist/esm/packages/teams-js/dts/internal/responseHandler.d.ts +30 -0
  25. package/dist/esm/packages/teams-js/dts/internal/telemetry.d.ts +344 -0
  26. package/dist/esm/packages/teams-js/dts/internal/typeCheckUtilities.d.ts +1 -0
  27. package/dist/esm/packages/teams-js/dts/internal/utils.d.ts +200 -0
  28. package/dist/esm/packages/teams-js/dts/internal/uuidObject.d.ts +11 -0
  29. package/dist/esm/packages/teams-js/dts/internal/validOrigins.d.ts +6 -0
  30. package/dist/esm/packages/teams-js/dts/internal/videoEffectsUtils.d.ts +31 -0
  31. package/dist/esm/packages/teams-js/dts/internal/videoFrameTick.d.ts +10 -0
  32. package/dist/esm/packages/teams-js/dts/internal/videoPerformanceMonitor.d.ts +54 -0
  33. package/dist/esm/packages/teams-js/dts/internal/videoPerformanceStatistics.d.ts +49 -0
  34. package/dist/esm/packages/teams-js/dts/private/appEntity.d.ts +89 -0
  35. package/dist/esm/packages/teams-js/dts/private/constants.d.ts +9 -0
  36. package/dist/esm/packages/teams-js/dts/private/conversations.d.ts +152 -0
  37. package/dist/esm/packages/teams-js/dts/private/copilot.d.ts +39 -0
  38. package/dist/esm/packages/teams-js/dts/private/externalAppAuthentication.d.ts +378 -0
  39. package/dist/esm/packages/teams-js/dts/private/externalAppAuthenticationForCEA.d.ts +75 -0
  40. package/dist/esm/packages/teams-js/dts/private/externalAppCardActions.d.ts +112 -0
  41. package/dist/esm/packages/teams-js/dts/private/externalAppCardActionsForCEA.d.ts +49 -0
  42. package/dist/esm/packages/teams-js/dts/private/externalAppCommands.d.ts +123 -0
  43. package/dist/esm/packages/teams-js/dts/private/files.d.ts +758 -0
  44. package/dist/esm/packages/teams-js/dts/private/hostEntity.d.ts +176 -0
  45. package/dist/esm/packages/teams-js/dts/private/index.d.ts +20 -0
  46. package/dist/esm/packages/teams-js/dts/private/interfaces.d.ts +250 -0
  47. package/dist/esm/packages/teams-js/dts/private/logs.d.ts +25 -0
  48. package/dist/esm/packages/teams-js/dts/private/meetingRoom.d.ts +203 -0
  49. package/dist/esm/packages/teams-js/dts/private/messageChannels.d.ts +107 -0
  50. package/dist/esm/packages/teams-js/dts/private/notifications.d.ts +26 -0
  51. package/dist/esm/packages/teams-js/dts/private/otherAppStateChange.d.ts +81 -0
  52. package/dist/esm/packages/teams-js/dts/private/privateAPIs.d.ts +60 -0
  53. package/dist/esm/packages/teams-js/dts/private/remoteCamera.d.ts +298 -0
  54. package/dist/esm/packages/teams-js/dts/private/teams.d.ts +116 -0
  55. package/dist/esm/packages/teams-js/dts/private/videoEffectsEx.d.ts +244 -0
  56. package/dist/esm/packages/teams-js/dts/public/adaptiveCards.d.ts +6 -0
  57. package/dist/esm/packages/teams-js/dts/public/app.d.ts +592 -0
  58. package/dist/esm/packages/teams-js/dts/public/appId.d.ts +33 -0
  59. package/dist/esm/packages/teams-js/dts/public/appInitialization.d.ts +57 -0
  60. package/dist/esm/packages/teams-js/dts/public/appInstallDialog.d.ts +18 -0
  61. package/dist/esm/packages/teams-js/dts/public/appWindow.d.ts +66 -0
  62. package/dist/esm/packages/teams-js/dts/public/authentication.d.ts +409 -0
  63. package/dist/esm/packages/teams-js/dts/public/barCode.d.ts +53 -0
  64. package/dist/esm/packages/teams-js/dts/public/calendar.d.ts +40 -0
  65. package/dist/esm/packages/teams-js/dts/public/call.d.ts +53 -0
  66. package/dist/esm/packages/teams-js/dts/public/chat.d.ts +66 -0
  67. package/dist/esm/packages/teams-js/dts/public/clipboard.d.ts +34 -0
  68. package/dist/esm/packages/teams-js/dts/public/constants.d.ts +179 -0
  69. package/dist/esm/packages/teams-js/dts/public/dialog.d.ts +286 -0
  70. package/dist/esm/packages/teams-js/dts/public/emailAddress.d.ts +12 -0
  71. package/dist/esm/packages/teams-js/dts/public/geoLocation.d.ts +100 -0
  72. package/dist/esm/packages/teams-js/dts/public/index.d.ts +44 -0
  73. package/dist/esm/packages/teams-js/dts/public/interfaces.d.ts +1133 -0
  74. package/dist/esm/packages/teams-js/dts/public/liveShareHost.d.ts +221 -0
  75. package/dist/esm/packages/teams-js/dts/public/location.d.ts +86 -0
  76. package/dist/esm/packages/teams-js/dts/public/mail.d.ts +95 -0
  77. package/dist/esm/packages/teams-js/dts/public/marketplace.d.ts +321 -0
  78. package/dist/esm/packages/teams-js/dts/public/media.d.ts +440 -0
  79. package/dist/esm/packages/teams-js/dts/public/meeting.d.ts +906 -0
  80. package/dist/esm/packages/teams-js/dts/public/menus.d.ts +188 -0
  81. package/dist/esm/packages/teams-js/dts/public/monetization.d.ts +58 -0
  82. package/dist/esm/packages/teams-js/dts/public/navigation.d.ts +45 -0
  83. package/dist/esm/packages/teams-js/dts/public/nestedAppAuth.d.ts +15 -0
  84. package/dist/esm/packages/teams-js/dts/public/pages.d.ts +574 -0
  85. package/dist/esm/packages/teams-js/dts/public/people.d.ts +75 -0
  86. package/dist/esm/packages/teams-js/dts/public/profile.d.ts +127 -0
  87. package/dist/esm/packages/teams-js/dts/public/publicAPIs.d.ts +218 -0
  88. package/dist/esm/packages/teams-js/dts/public/runtime.d.ts +207 -0
  89. package/dist/esm/packages/teams-js/dts/public/search.d.ts +91 -0
  90. package/dist/esm/packages/teams-js/dts/public/secondaryBrowser.d.ts +32 -0
  91. package/dist/esm/packages/teams-js/dts/public/serializable.interface.d.ts +17 -0
  92. package/dist/esm/packages/teams-js/dts/public/settings.d.ts +101 -0
  93. package/dist/esm/packages/teams-js/dts/public/sharing.d.ts +124 -0
  94. package/dist/esm/packages/teams-js/dts/public/stageView.d.ts +104 -0
  95. package/dist/esm/packages/teams-js/dts/public/tasks.d.ts +62 -0
  96. package/dist/esm/packages/teams-js/dts/public/teamsAPIs.d.ts +77 -0
  97. package/dist/esm/packages/teams-js/dts/public/thirdPartyCloudStorage.d.ts +119 -0
  98. package/dist/esm/packages/teams-js/dts/public/version.d.ts +5 -0
  99. package/dist/esm/packages/teams-js/dts/public/videoEffects.d.ts +213 -0
  100. package/dist/esm/packages/teams-js/dts/public/visualMedia.d.ts +192 -0
  101. package/dist/esm/packages/teams-js/dts/public/webStorage.d.ts +27 -0
  102. package/dist/esm/packages/teams-js/src/index.js +1 -1
  103. package/dist/esm/packages/teams-js/src/internal/appHelpers.js +1 -0
  104. package/dist/esm/packages/teams-js/src/internal/communication.js +1 -1
  105. package/dist/esm/packages/teams-js/src/internal/deepLinkUtilities.js +1 -1
  106. package/dist/esm/packages/teams-js/src/internal/responseHandler.js +1 -0
  107. package/dist/esm/packages/teams-js/src/private/externalAppAuthentication.js +1 -1
  108. package/dist/esm/packages/teams-js/src/private/externalAppAuthenticationForCEA.js +1 -1
  109. package/dist/esm/packages/teams-js/src/private/hostEntity.js +1 -1
  110. package/dist/esm/packages/teams-js/src/private/videoEffectsEx.js +1 -1
  111. package/dist/esm/packages/teams-js/src/public/app.js +1 -1
  112. package/dist/esm/packages/teams-js/src/public/appId.js +1 -1
  113. package/dist/esm/packages/teams-js/src/public/appInitialization.js +1 -1
  114. package/dist/esm/packages/teams-js/src/public/appInstallDialog.js +1 -1
  115. package/dist/esm/packages/teams-js/src/public/authentication.js +1 -1
  116. package/dist/esm/packages/teams-js/src/public/barCode.js +1 -1
  117. package/dist/esm/packages/teams-js/src/public/calendar.js +1 -1
  118. package/dist/esm/packages/teams-js/src/public/call.js +1 -1
  119. package/dist/esm/packages/teams-js/src/public/clipboard.js +1 -1
  120. package/dist/esm/packages/teams-js/src/public/constants.js +1 -1
  121. package/dist/esm/packages/teams-js/src/public/pages.js +1 -1
  122. package/dist/esm/packages/teams-js/src/public/publicAPIs.js +1 -1
  123. package/dist/esm/packages/teams-js/src/public/serializable.interface.js +1 -0
  124. package/dist/esm/packages/teams-js/src/public/settings.js +1 -1
  125. package/dist/esm/packages/teams-js/src/public/tasks.js +1 -1
  126. package/dist/esm/packages/teams-js/src/public/version.js +1 -1
  127. package/dist/esm/packages/teams-js/src/public/webStorage.js +1 -1
  128. package/dist/umd/MicrosoftTeams.d.ts +10740 -10768
  129. package/dist/umd/MicrosoftTeams.js +1571 -1359
  130. package/dist/umd/MicrosoftTeams.js.map +1 -1
  131. package/dist/umd/MicrosoftTeams.min.js +1 -1
  132. package/dist/umd/MicrosoftTeams.min.js.map +1 -1
  133. package/package.json +1 -51
  134. 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
+ }