@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 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.14.0/js/MicrosoftTeams.min.js) or point your package manager at them.
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.14.0/js/MicrosoftTeams.min.js"
49
- integrity="sha384-+DItxkmrHBjTqyGZe60m2HxjR/eDhdYpaTux8gT9/YqHSMxASoTe+Y66GvNEMT8k"
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.14.0/dist/MicrosoftTeams.min.js"></script>
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>
@@ -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<MediaStreamTrack>;
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<MediaStreamTrack>;
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
@@ -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-beta.3";
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 !== window.location.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
- if (typeof window !== 'undefined') {
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 || window;
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 _a;
8447
- return videoUtils_generator(this, function (_b) {
8448
- switch (_b.label) {
8457
+ var generator, _c;
8458
+ return videoUtils_generator(this, function (_d) {
8459
+ switch (_d.label) {
8449
8460
  case 0:
8450
- _a = createProcessedStreamGenerator;
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: return [2 /*return*/, _a.apply(void 0, [_b.sent(), new DefaultTransformer(notifyError, videoFrameHandler)])];
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 _a;
8468
- return videoUtils_generator(this, function (_b) {
8469
- switch (_b.label) {
8484
+ var generator, _c;
8485
+ return videoUtils_generator(this, function (_d) {
8486
+ switch (_d.label) {
8470
8487
  case 0:
8471
- _a = createProcessedStreamGenerator;
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: return [2 /*return*/, _a.apply(void 0, [_b.sent(), new TransformerWithMetadata(notifyError, videoFrameHandler)])];
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 = window['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 processed video track from the original video track.
8516
- * It reads frames from the video track and pipes them to the video frame callback to process the frames.
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 createProcessedStreamGenerator(videoTrack, transformer) {
8541
+ function createProcessedStreamGeneratorWithoutSource() {
8521
8542
  if (inServerSideRenderingEnvironment()) {
8522
8543
  throw errorNotSupportedOnPlatform;
8523
8544
  }
8524
- var MediaStreamTrackProcessor = window['MediaStreamTrackProcessor'];
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, generator;
9089
- var _a, _b;
9090
- return video_generator(this, function (_c) {
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
- generator = _c.sent();
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 (!inServerSideRenderingEnvironment() &&
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, generator, _a;
12219
- var _b, _c;
12220
- return videoEx_generator(this, function (_d) {
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, parameters.videoFrameHandler, notifyError, videoPerformanceMonitor)];
12252
+ return [4 /*yield*/, processMediaStreamWithMetadata(streamId, handler, notifyError, videoPerformanceMonitor)];
12226
12253
  case 1:
12227
- _a = _d.sent();
12254
+ _a = _b.sent();
12228
12255
  return [3 /*break*/, 4];
12229
- case 2: return [4 /*yield*/, processMediaStream(streamId, parameters.videoFrameHandler, notifyError, videoPerformanceMonitor)];
12256
+ case 2: return [4 /*yield*/, processMediaStream(streamId, handler, notifyError, videoPerformanceMonitor)];
12230
12257
  case 3:
12231
- _a = _d.sent();
12232
- _d.label = 4;
12258
+ _a = _b.sent();
12259
+ _b.label = 4;
12233
12260
  case 4:
12234
- generator = _a;
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'];