@microsoft/teams-js 2.15.0-beta.3 → 2.15.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.
- package/README.md +4 -4
- package/dist/MicrosoftTeams.d.ts +2 -2
- package/dist/MicrosoftTeams.js +101 -59
- package/dist/MicrosoftTeams.js.map +1 -1
- package/dist/MicrosoftTeams.min.js +1 -1
- package/dist/MicrosoftTeams.min.js.map +1 -1
- package/package.json +34 -1
package/README.md
CHANGED
@@ -24,7 +24,7 @@ To install the stable [version](https://learn.microsoft.com/javascript/api/overv
|
|
24
24
|
|
25
25
|
### Production
|
26
26
|
|
27
|
-
You can reference these files directly [from here](https://res.cdn.office.net/teams-js/2.
|
27
|
+
You can reference these files directly [from here](https://res.cdn.office.net/teams-js/2.15.0/js/MicrosoftTeams.min.js) or point your package manager at them.
|
28
28
|
|
29
29
|
## Usage
|
30
30
|
|
@@ -45,13 +45,13 @@ Reference the library inside of your `.html` page using:
|
|
45
45
|
```html
|
46
46
|
<!-- Microsoft Teams JavaScript API (via CDN) -->
|
47
47
|
<script
|
48
|
-
src="https://res.cdn.office.net/teams-js/2.
|
49
|
-
integrity="sha384
|
48
|
+
src="https://res.cdn.office.net/teams-js/2.15.0/js/MicrosoftTeams.min.js"
|
49
|
+
integrity="sha384-fTDbgjG+RKtC2IyKV3r1o0xdxY4oV1v53uPHwPJTmTddvDm2ats9JWRAbtouZx4C"
|
50
50
|
crossorigin="anonymous"
|
51
51
|
></script>
|
52
52
|
|
53
53
|
<!-- Microsoft Teams JavaScript API (via npm) -->
|
54
|
-
<script src="node_modules/@microsoft/teams-js@2.
|
54
|
+
<script src="node_modules/@microsoft/teams-js@2.15.0/dist/MicrosoftTeams.min.js"></script>
|
55
55
|
|
56
56
|
<!-- Microsoft Teams JavaScript API (via local) -->
|
57
57
|
<script src="MicrosoftTeams.min.js"></script>
|
package/dist/MicrosoftTeams.d.ts
CHANGED
@@ -8678,7 +8678,7 @@ export namespace marketplace {
|
|
8678
8678
|
* @hidden
|
8679
8679
|
* Create a MediaStreamTrack from the media stream with the given streamId and processed by videoFrameHandler.
|
8680
8680
|
*/
|
8681
|
-
export function processMediaStream(streamId: string, videoFrameHandler: video.VideoFrameHandler, notifyError: (string: any) => void, videoPerformanceMonitor?: VideoPerformanceMonitor): Promise<
|
8681
|
+
export function processMediaStream(streamId: string, videoFrameHandler: video.VideoFrameHandler, notifyError: (string: any) => void, videoPerformanceMonitor?: VideoPerformanceMonitor): Promise<void>;
|
8682
8682
|
/**
|
8683
8683
|
* @hidden
|
8684
8684
|
* Create a MediaStreamTrack from the media stream with the given streamId and processed by videoFrameHandler.
|
@@ -8687,7 +8687,7 @@ export function processMediaStream(streamId: string, videoFrameHandler: video.Vi
|
|
8687
8687
|
* @internal
|
8688
8688
|
* Limited to Microsoft-internal use
|
8689
8689
|
*/
|
8690
|
-
export function processMediaStreamWithMetadata(streamId: string, videoFrameHandler: videoEx.VideoFrameHandler, notifyError: (string: any) => void, videoPerformanceMonitor?: VideoPerformanceMonitor): Promise<
|
8690
|
+
export function processMediaStreamWithMetadata(streamId: string, videoFrameHandler: videoEx.VideoFrameHandler, notifyError: (string: any) => void, videoPerformanceMonitor?: VideoPerformanceMonitor): Promise<void>;
|
8691
8691
|
/**
|
8692
8692
|
* @hidden
|
8693
8693
|
* Video effect change call back function definition
|
package/dist/MicrosoftTeams.js
CHANGED
@@ -1884,6 +1884,27 @@ function getBase64StringFromBlob(blob) {
|
|
1884
1884
|
reader.readAsDataURL(blob);
|
1885
1885
|
});
|
1886
1886
|
}
|
1887
|
+
/**
|
1888
|
+
* Returns an SSR safe reference to the window object
|
1889
|
+
* @returns Window object reference
|
1890
|
+
*/
|
1891
|
+
function ssrSafeWindow() {
|
1892
|
+
if (!inServerSideRenderingEnvironment()) {
|
1893
|
+
return window;
|
1894
|
+
}
|
1895
|
+
else {
|
1896
|
+
// This should NEVER actually be written.
|
1897
|
+
// If you EVER see this error in ANY log file, something has gone horribly wrong and a bug needs to be filed.
|
1898
|
+
throw new Error('window object undefined at SSR check');
|
1899
|
+
}
|
1900
|
+
}
|
1901
|
+
/**
|
1902
|
+
* Checks if running in a Server Side Environment
|
1903
|
+
* @returns True if running in a Server Side Environment
|
1904
|
+
*/
|
1905
|
+
function inServerSideRenderingEnvironment() {
|
1906
|
+
return typeof window === 'undefined';
|
1907
|
+
}
|
1887
1908
|
|
1888
1909
|
;// CONCATENATED MODULE: ./src/public/runtime.ts
|
1889
1910
|
/* eslint-disable @typescript-eslint/ban-types */
|
@@ -2182,7 +2203,7 @@ var _minRuntimeConfigToUninitialize = {
|
|
2182
2203
|
* @hidden
|
2183
2204
|
* Package version.
|
2184
2205
|
*/
|
2185
|
-
var version = "2.15.0
|
2206
|
+
var version = "2.15.0";
|
2186
2207
|
|
2187
2208
|
;// CONCATENATED MODULE: ./src/internal/internalAPIs.ts
|
2188
2209
|
|
@@ -2319,11 +2340,6 @@ function processAdditionalValidOrigins(validMessageOrigins) {
|
|
2319
2340
|
GlobalVars.additionalValidOrigins = combinedOriginUrls;
|
2320
2341
|
}
|
2321
2342
|
|
2322
|
-
;// CONCATENATED MODULE: ./src/private/inServerSideRenderingEnvironment.ts
|
2323
|
-
function inServerSideRenderingEnvironment() {
|
2324
|
-
return typeof window === 'undefined';
|
2325
|
-
}
|
2326
|
-
|
2327
2343
|
;// CONCATENATED MODULE: ./src/public/authentication.ts
|
2328
2344
|
|
2329
2345
|
|
@@ -2331,6 +2347,7 @@ function inServerSideRenderingEnvironment() {
|
|
2331
2347
|
|
2332
2348
|
|
2333
2349
|
|
2350
|
+
|
2334
2351
|
/**
|
2335
2352
|
* Namespace to interact with the authentication-specific part of the SDK.
|
2336
2353
|
*
|
@@ -2687,7 +2704,7 @@ var authentication;
|
|
2687
2704
|
var link = document.createElement('a');
|
2688
2705
|
link.href = decodeURIComponent(callbackUrl);
|
2689
2706
|
if (link.host &&
|
2690
|
-
link.host !==
|
2707
|
+
link.host !== ssrSafeWindow().location.host &&
|
2691
2708
|
link.host === 'outlook.office.com' &&
|
2692
2709
|
link.search.indexOf('client_type=Win32_Outlook') > -1) {
|
2693
2710
|
if (key && key === 'result') {
|
@@ -3343,6 +3360,7 @@ var menus;
|
|
3343
3360
|
|
3344
3361
|
|
3345
3362
|
|
3363
|
+
|
3346
3364
|
/**
|
3347
3365
|
* Namespace containing the set of APIs that support Teams-specific functionalities.
|
3348
3366
|
*/
|
@@ -3374,14 +3392,7 @@ var teamsCore;
|
|
3374
3392
|
* default print handler
|
3375
3393
|
*/
|
3376
3394
|
function print() {
|
3377
|
-
|
3378
|
-
window.print();
|
3379
|
-
}
|
3380
|
-
else {
|
3381
|
-
// This codepath only exists to enable compilation in a server-side redered environment. In standard usage, the window object should never be undefined so this code path should never run.
|
3382
|
-
// If this error has actually been thrown, something has gone very wrong and it is a bug
|
3383
|
-
throw new Error('window object undefined at print call');
|
3384
|
-
}
|
3395
|
+
ssrSafeWindow().print();
|
3385
3396
|
}
|
3386
3397
|
teamsCore.print = print;
|
3387
3398
|
/**
|
@@ -3494,7 +3505,6 @@ var teamsCore;
|
|
3494
3505
|
|
3495
3506
|
|
3496
3507
|
|
3497
|
-
|
3498
3508
|
/**
|
3499
3509
|
* Namespace to interact with app initialization and lifecycle.
|
3500
3510
|
*/
|
@@ -4873,7 +4883,7 @@ function initializeCommunication(validMessageOrigins) {
|
|
4873
4883
|
CommunicationPrivate.messageListener = function (evt) { return processMessage(evt); };
|
4874
4884
|
// If we are in an iframe, our parent window is the one hosting us (i.e., window.parent); otherwise,
|
4875
4885
|
// it's the window that opened us (i.e., window.opener)
|
4876
|
-
Communication.currentWindow = Communication.currentWindow ||
|
4886
|
+
Communication.currentWindow = Communication.currentWindow || ssrSafeWindow();
|
4877
4887
|
Communication.parentWindow =
|
4878
4888
|
Communication.currentWindow.parent !== Communication.currentWindow.self
|
4879
4889
|
? Communication.currentWindow.parent
|
@@ -8442,14 +8452,20 @@ var videoUtils_generator = (undefined && undefined.__generator) || function (thi
|
|
8442
8452
|
* Create a MediaStreamTrack from the media stream with the given streamId and processed by videoFrameHandler.
|
8443
8453
|
*/
|
8444
8454
|
function processMediaStream(streamId, videoFrameHandler, notifyError, videoPerformanceMonitor) {
|
8455
|
+
var _a, _b;
|
8445
8456
|
return videoUtils_awaiter(this, void 0, void 0, function () {
|
8446
|
-
var
|
8447
|
-
return videoUtils_generator(this, function (
|
8448
|
-
switch (
|
8457
|
+
var generator, _c;
|
8458
|
+
return videoUtils_generator(this, function (_d) {
|
8459
|
+
switch (_d.label) {
|
8449
8460
|
case 0:
|
8450
|
-
|
8461
|
+
generator = createProcessedStreamGeneratorWithoutSource();
|
8462
|
+
!inServerSideRenderingEnvironment() && ((_b = (_a = window['chrome']) === null || _a === void 0 ? void 0 : _a.webview) === null || _b === void 0 ? void 0 : _b.registerTextureStream(streamId, generator));
|
8463
|
+
_c = pipeVideoSourceToGenerator;
|
8451
8464
|
return [4 /*yield*/, getInputVideoTrack(streamId, notifyError, videoPerformanceMonitor)];
|
8452
|
-
case 1:
|
8465
|
+
case 1:
|
8466
|
+
_c.apply(void 0, [_d.sent(), new DefaultTransformer(notifyError, videoFrameHandler),
|
8467
|
+
generator.writable]);
|
8468
|
+
return [2 /*return*/];
|
8453
8469
|
}
|
8454
8470
|
});
|
8455
8471
|
});
|
@@ -8463,14 +8479,20 @@ function processMediaStream(streamId, videoFrameHandler, notifyError, videoPerfo
|
|
8463
8479
|
* Limited to Microsoft-internal use
|
8464
8480
|
*/
|
8465
8481
|
function processMediaStreamWithMetadata(streamId, videoFrameHandler, notifyError, videoPerformanceMonitor) {
|
8482
|
+
var _a, _b;
|
8466
8483
|
return videoUtils_awaiter(this, void 0, void 0, function () {
|
8467
|
-
var
|
8468
|
-
return videoUtils_generator(this, function (
|
8469
|
-
switch (
|
8484
|
+
var generator, _c;
|
8485
|
+
return videoUtils_generator(this, function (_d) {
|
8486
|
+
switch (_d.label) {
|
8470
8487
|
case 0:
|
8471
|
-
|
8488
|
+
generator = createProcessedStreamGeneratorWithoutSource();
|
8489
|
+
!inServerSideRenderingEnvironment() && ((_b = (_a = window['chrome']) === null || _a === void 0 ? void 0 : _a.webview) === null || _b === void 0 ? void 0 : _b.registerTextureStream(streamId, generator));
|
8490
|
+
_c = pipeVideoSourceToGenerator;
|
8472
8491
|
return [4 /*yield*/, getInputVideoTrack(streamId, notifyError, videoPerformanceMonitor)];
|
8473
|
-
case 1:
|
8492
|
+
case 1:
|
8493
|
+
_c.apply(void 0, [_d.sent(), new TransformerWithMetadata(notifyError, videoFrameHandler),
|
8494
|
+
generator.writable]);
|
8495
|
+
return [2 /*return*/];
|
8474
8496
|
}
|
8475
8497
|
});
|
8476
8498
|
});
|
@@ -8487,7 +8509,7 @@ function getInputVideoTrack(streamId, notifyError, videoPerformanceMonitor) {
|
|
8487
8509
|
if (inServerSideRenderingEnvironment()) {
|
8488
8510
|
throw errorNotSupportedOnPlatform;
|
8489
8511
|
}
|
8490
|
-
chrome =
|
8512
|
+
chrome = ssrSafeWindow()['chrome'];
|
8491
8513
|
_a.label = 1;
|
8492
8514
|
case 1:
|
8493
8515
|
_a.trys.push([1, 3, , 4]);
|
@@ -8512,23 +8534,30 @@ function getInputVideoTrack(streamId, notifyError, videoPerformanceMonitor) {
|
|
8512
8534
|
});
|
8513
8535
|
}
|
8514
8536
|
/**
|
8515
|
-
* The function to create a
|
8516
|
-
*
|
8517
|
-
* The processed frames are then enqueued to the generator.
|
8537
|
+
* The function to create a MediaStreamTrack generator.
|
8538
|
+
* The generator can then get the processed frames as media stream source.
|
8518
8539
|
* The generator can be registered back to the media stream so that the host can get the processed frames.
|
8519
8540
|
*/
|
8520
|
-
function
|
8541
|
+
function createProcessedStreamGeneratorWithoutSource() {
|
8521
8542
|
if (inServerSideRenderingEnvironment()) {
|
8522
8543
|
throw errorNotSupportedOnPlatform;
|
8523
8544
|
}
|
8524
|
-
var
|
8545
|
+
var MediaStreamTrackGenerator = window['MediaStreamTrackGenerator'];
|
8546
|
+
if (!MediaStreamTrackGenerator) {
|
8547
|
+
throw errorNotSupportedOnPlatform;
|
8548
|
+
}
|
8549
|
+
return new MediaStreamTrackGenerator({ kind: 'video' });
|
8550
|
+
}
|
8551
|
+
/**
|
8552
|
+
* The function to create a processed video track from the original video track.
|
8553
|
+
* It reads frames from the video track and pipes them to the video frame callback to process the frames.
|
8554
|
+
* The processed frames are then enqueued to the generator.
|
8555
|
+
*/
|
8556
|
+
function pipeVideoSourceToGenerator(videoTrack, transformer, sink) {
|
8557
|
+
var MediaStreamTrackProcessor = ssrSafeWindow()['MediaStreamTrackProcessor'];
|
8525
8558
|
var processor = new MediaStreamTrackProcessor({ track: videoTrack });
|
8526
8559
|
var source = processor.readable;
|
8527
|
-
var MediaStreamTrackGenerator = window['MediaStreamTrackGenerator'];
|
8528
|
-
var generator = new MediaStreamTrackGenerator({ kind: 'video' });
|
8529
|
-
var sink = generator.writable;
|
8530
8560
|
source.pipeThrough(new TransformStream(transformer)).pipeTo(sink);
|
8531
|
-
return generator;
|
8532
8561
|
}
|
8533
8562
|
/**
|
8534
8563
|
* @hidden
|
@@ -9085,18 +9114,15 @@ var video;
|
|
9085
9114
|
throw errorNotSupportedOnPlatform;
|
9086
9115
|
}
|
9087
9116
|
registerHandler('video.startVideoExtensibilityVideoStream', function (mediaStreamInfo) { return video_awaiter(_this, void 0, void 0, function () {
|
9088
|
-
var streamId, monitoredVideoFrameHandler
|
9089
|
-
|
9090
|
-
|
9091
|
-
switch (_c.label) {
|
9117
|
+
var streamId, monitoredVideoFrameHandler;
|
9118
|
+
return video_generator(this, function (_a) {
|
9119
|
+
switch (_a.label) {
|
9092
9120
|
case 0:
|
9093
9121
|
streamId = mediaStreamInfo.streamId;
|
9094
9122
|
monitoredVideoFrameHandler = createMonitoredVideoFrameHandler(videoFrameHandler, videoPerformanceMonitor);
|
9095
9123
|
return [4 /*yield*/, processMediaStream(streamId, monitoredVideoFrameHandler, notifyError, videoPerformanceMonitor)];
|
9096
9124
|
case 1:
|
9097
|
-
|
9098
|
-
// register the video track with processed frames back to the stream:
|
9099
|
-
!inServerSideRenderingEnvironment() && ((_b = (_a = window['chrome']) === null || _a === void 0 ? void 0 : _a.webview) === null || _b === void 0 ? void 0 : _b.registerTextureStream(streamId, generator));
|
9125
|
+
_a.sent();
|
9100
9126
|
return [2 /*return*/];
|
9101
9127
|
}
|
9102
9128
|
});
|
@@ -9158,8 +9184,7 @@ var video;
|
|
9158
9184
|
}
|
9159
9185
|
function isTextureStreamAvailable() {
|
9160
9186
|
var _a, _b, _c, _d;
|
9161
|
-
return (
|
9162
|
-
!!(((_b = (_a = window['chrome']) === null || _a === void 0 ? void 0 : _a.webview) === null || _b === void 0 ? void 0 : _b.getTextureStream) && ((_d = (_c = window['chrome']) === null || _c === void 0 ? void 0 : _c.webview) === null || _d === void 0 ? void 0 : _d.registerTextureStream)));
|
9187
|
+
return !!(((_b = (_a = ssrSafeWindow()['chrome']) === null || _a === void 0 ? void 0 : _a.webview) === null || _b === void 0 ? void 0 : _b.getTextureStream) && ((_d = (_c = ssrSafeWindow()['chrome']) === null || _c === void 0 ? void 0 : _c.webview) === null || _d === void 0 ? void 0 : _d.registerTextureStream));
|
9163
9188
|
}
|
9164
9189
|
function doesSupportSharedFrame() {
|
9165
9190
|
var _a;
|
@@ -12215,26 +12240,25 @@ var videoEx;
|
|
12215
12240
|
registerHandler('video.setFrameProcessTimeLimit', function (timeLimit) { return videoPerformanceMonitor === null || videoPerformanceMonitor === void 0 ? void 0 : videoPerformanceMonitor.setFrameProcessTimeLimit(timeLimit); }, false);
|
12216
12241
|
if ((_a = runtime.supports.video) === null || _a === void 0 ? void 0 : _a.mediaStream) {
|
12217
12242
|
registerHandler('video.startVideoExtensibilityVideoStream', function (mediaStreamInfo) { return videoEx_awaiter(_this, void 0, void 0, function () {
|
12218
|
-
var streamId, metadataInTexture,
|
12219
|
-
|
12220
|
-
|
12221
|
-
switch (_d.label) {
|
12243
|
+
var streamId, metadataInTexture, handler, _a;
|
12244
|
+
return videoEx_generator(this, function (_b) {
|
12245
|
+
switch (_b.label) {
|
12222
12246
|
case 0:
|
12223
12247
|
streamId = mediaStreamInfo.streamId, metadataInTexture = mediaStreamInfo.metadataInTexture;
|
12248
|
+
handler = videoPerformanceMonitor
|
12249
|
+
? createMonitoredVideoFrameHandler(parameters.videoFrameHandler, videoPerformanceMonitor)
|
12250
|
+
: parameters.videoFrameHandler;
|
12224
12251
|
if (!metadataInTexture) return [3 /*break*/, 2];
|
12225
|
-
return [4 /*yield*/, processMediaStreamWithMetadata(streamId,
|
12252
|
+
return [4 /*yield*/, processMediaStreamWithMetadata(streamId, handler, notifyError, videoPerformanceMonitor)];
|
12226
12253
|
case 1:
|
12227
|
-
_a =
|
12254
|
+
_a = _b.sent();
|
12228
12255
|
return [3 /*break*/, 4];
|
12229
|
-
case 2: return [4 /*yield*/, processMediaStream(streamId,
|
12256
|
+
case 2: return [4 /*yield*/, processMediaStream(streamId, handler, notifyError, videoPerformanceMonitor)];
|
12230
12257
|
case 3:
|
12231
|
-
_a =
|
12232
|
-
|
12258
|
+
_a = _b.sent();
|
12259
|
+
_b.label = 4;
|
12233
12260
|
case 4:
|
12234
|
-
|
12235
|
-
// register the video track with processed frames back to the stream
|
12236
|
-
!inServerSideRenderingEnvironment() &&
|
12237
|
-
((_c = (_b = window['chrome']) === null || _b === void 0 ? void 0 : _b.webview) === null || _c === void 0 ? void 0 : _c.registerTextureStream(streamId, generator));
|
12261
|
+
_a;
|
12238
12262
|
return [2 /*return*/];
|
12239
12263
|
}
|
12240
12264
|
});
|
@@ -12262,6 +12286,24 @@ var videoEx;
|
|
12262
12286
|
}
|
12263
12287
|
}
|
12264
12288
|
videoEx.registerForVideoFrame = registerForVideoFrame;
|
12289
|
+
function createMonitoredVideoFrameHandler(videoFrameHandler, videoPerformanceMonitor) {
|
12290
|
+
var _this = this;
|
12291
|
+
return function (receivedVideoFrame) { return videoEx_awaiter(_this, void 0, void 0, function () {
|
12292
|
+
var originalFrame, processedFrame;
|
12293
|
+
return videoEx_generator(this, function (_a) {
|
12294
|
+
switch (_a.label) {
|
12295
|
+
case 0:
|
12296
|
+
originalFrame = receivedVideoFrame.videoFrame;
|
12297
|
+
videoPerformanceMonitor.reportStartFrameProcessing(originalFrame.codedWidth, originalFrame.codedHeight);
|
12298
|
+
return [4 /*yield*/, videoFrameHandler(receivedVideoFrame)];
|
12299
|
+
case 1:
|
12300
|
+
processedFrame = _a.sent();
|
12301
|
+
videoPerformanceMonitor.reportFrameProcessed();
|
12302
|
+
return [2 /*return*/, processedFrame];
|
12303
|
+
}
|
12304
|
+
});
|
12305
|
+
}); };
|
12306
|
+
}
|
12265
12307
|
function normalizedVideoBufferData(videoBufferData) {
|
12266
12308
|
videoBufferData['videoFrameBuffer'] = videoBufferData['videoFrameBuffer'] || videoBufferData['data'];
|
12267
12309
|
delete videoBufferData['data'];
|