@microsoft/teams-js 2.0.0-beta.5-dev.8 → 2.0.0-beta.5

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 latest [2.0 preview version](https://docs.microsoft.com/en-us/jav
24
24
 
25
25
  ### Production
26
26
 
27
- You can access [these files on unpkg](https://res.cdn.office.net/teams-js/2.0.0-beta.4/js/MicrosoftTeams.min.js), download them, or point your package manager to them.
27
+ You can access [these files on unpkg](https://res.cdn.office.net/teams-js/2.0.0-beta.5/js/MicrosoftTeams.min.js), download them, or point your package manager to them.
28
28
 
29
29
  ## Usage
30
30
 
@@ -45,13 +45,13 @@ Reference the SDK 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.0.0-beta.4/js/MicrosoftTeams.min.js"
49
- integrity="sha384-DtrvdVpUyDGMxEcLc32coG50KsItL9B3cKzaBxDzH4EQyzXX9DlhZmn0dF8UQwvw"
48
+ src="https://res.cdn.office.net/teams-js/2.0.0-beta.5/js/MicrosoftTeams.min.js"
49
+ integrity="sha384-vZRWEk6i8zcVUxh4lQUp+rKbFHv1Thlixb5Z3DAanwntS8owtI9t2K9BmCU0WBxL"
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.0.0-beta.4/dist/MicrosoftTeams.min.js"></script>
54
+ <script src="node_modules/@microsoft/teams-js@2.0.0-beta.5/dist/MicrosoftTeams.min.js"></script>
55
55
 
56
56
  <!-- Microsoft Teams JavaScript API (via local) -->
57
57
  <script src="MicrosoftTeams.min.js"></script>
@@ -1653,7 +1653,7 @@ export enum ChannelType {
1653
1653
  Private = "Private",
1654
1654
  Shared = "Shared"
1655
1655
  }
1656
- export const errorNotSupportedOnPlatform: string;
1656
+ export const errorNotSupportedOnPlatform: SdkError;
1657
1657
 
1658
1658
  /**
1659
1659
  * Represents information about tabs for an app
@@ -1121,7 +1121,7 @@ __webpack_require__.d(__webpack_exports__, {
1121
1121
  });
1122
1122
 
1123
1123
  ;// CONCATENATED MODULE: ./src/internal/constants.ts
1124
- var version = "2.0.0-beta.5-dev.8";
1124
+ var version = "2.0.0-beta.5";
1125
1125
  /**
1126
1126
  * @hidden
1127
1127
  * The client version when all SDK APIs started to check platform compatibility for the APIs was 1.6.0.
@@ -1423,7 +1423,7 @@ var ChannelType;
1423
1423
  ChannelType["Private"] = "Private";
1424
1424
  ChannelType["Shared"] = "Shared";
1425
1425
  })(ChannelType || (ChannelType = {}));
1426
- var errorNotSupportedOnPlatform = JSON.stringify({ errorCode: ErrorCode.NOT_SUPPORTED_ON_PLATFORM });
1426
+ var errorNotSupportedOnPlatform = { errorCode: ErrorCode.NOT_SUPPORTED_ON_PLATFORM };
1427
1427
 
1428
1428
  // EXTERNAL MODULE: ../../node_modules/uuid/index.js
1429
1429
  var uuid = __webpack_require__(22);
@@ -4167,7 +4167,7 @@ var conversations;
4167
4167
  return new Promise(function (resolve) {
4168
4168
  ensureInitialized(FrameContexts.content);
4169
4169
  if (!isSupported()) {
4170
- throw new Error(errorNotSupportedOnPlatform);
4170
+ throw errorNotSupportedOnPlatform;
4171
4171
  }
4172
4172
  var sendPromise = sendAndHandleStatusAndReason('conversations.openConversation', {
4173
4173
  title: openConversationRequest.title,
@@ -4209,7 +4209,7 @@ var conversations;
4209
4209
  function closeConversation() {
4210
4210
  ensureInitialized(FrameContexts.content);
4211
4211
  if (!isSupported()) {
4212
- throw new Error(errorNotSupportedOnPlatform);
4212
+ throw errorNotSupportedOnPlatform;
4213
4213
  }
4214
4214
  sendMessageToParent('conversations.closeConversation');
4215
4215
  removeHandler('startConversation');
@@ -4232,7 +4232,7 @@ var conversations;
4232
4232
  return new Promise(function (resolve) {
4233
4233
  ensureInitialized();
4234
4234
  if (!isSupported()) {
4235
- throw new Error(errorNotSupportedOnPlatform);
4235
+ throw errorNotSupportedOnPlatform;
4236
4236
  }
4237
4237
  resolve(sendAndUnwrap('getChatMembers'));
4238
4238
  });
@@ -4244,11 +4244,80 @@ var conversations;
4244
4244
  conversations.isSupported = isSupported;
4245
4245
  })(conversations || (conversations = {}));
4246
4246
 
4247
+ ;// CONCATENATED MODULE: ./src/internal/deepLinkConstants.ts
4248
+ /**
4249
+ * App install dialog constants
4250
+ */
4251
+ var teamsDeepLinkUrlPathForAppInstall = '/l/app/';
4252
+ /**
4253
+ * Calendar constants
4254
+ */
4255
+ var teamsDeepLinkUrlPathForCalendar = '/l/meeting/new';
4256
+ var teamsDeepLinkAttendeesUrlParameterName = 'attendees';
4257
+ var teamsDeepLinkStartTimeUrlParameterName = 'startTime';
4258
+ var teamsDeepLinkEndTimeUrlParameterName = 'endTime';
4259
+ var teamsDeepLinkSubjectUrlParameterName = 'subject';
4260
+ var teamsDeepLinkContentUrlParameterName = 'content';
4261
+ /**
4262
+ * Call constants
4263
+ */
4264
+ var teamsDeepLinkUrlPathForCall = '/l/call/0/0';
4265
+ var teamsDeepLinkSourceUrlParameterName = 'source';
4266
+ var teamsDeepLinkWithVideoUrlParameterName = 'withVideo';
4267
+ /**
4268
+ * Chat constants
4269
+ */
4270
+ var teamsDeepLinkUrlPathForChat = '/l/chat/0/0';
4271
+ var teamsDeepLinkUsersUrlParameterName = 'users';
4272
+ var teamsDeepLinkTopicUrlParameterName = 'topicName';
4273
+ var teamsDeepLinkMessageUrlParameterName = 'message';
4274
+
4275
+ ;// CONCATENATED MODULE: ./src/internal/deepLinkUtilities.ts
4276
+
4277
+
4278
+ function createTeamsDeepLinkForChat(users, topic, message) {
4279
+ if (users.length === 0) {
4280
+ throw new Error('Must have at least one user when creating a chat deep link');
4281
+ }
4282
+ var usersSearchParameter = teamsDeepLinkUsersUrlParameterName + "=" + users.map(function (user) { return encodeURIComponent(user); }).join(',');
4283
+ var topicSearchParameter = topic === undefined ? '' : "&" + teamsDeepLinkTopicUrlParameterName + "=" + encodeURIComponent(topic);
4284
+ var messageSearchParameter = message === undefined ? '' : "&" + teamsDeepLinkMessageUrlParameterName + "=" + encodeURIComponent(message);
4285
+ return teamsDeepLinkProtocol + "://" + teamsDeepLinkHost + teamsDeepLinkUrlPathForChat + "?" + usersSearchParameter + topicSearchParameter + messageSearchParameter;
4286
+ }
4287
+ function createTeamsDeepLinkForCall(targets, withVideo, source) {
4288
+ if (targets.length === 0) {
4289
+ throw new Error('Must have at least one target when creating a call deep link');
4290
+ }
4291
+ var usersSearchParameter = teamsDeepLinkUsersUrlParameterName + "=" + targets.map(function (user) { return encodeURIComponent(user); }).join(',');
4292
+ var withVideoSearchParameter = withVideo === undefined ? '' : "&" + teamsDeepLinkWithVideoUrlParameterName + "=" + encodeURIComponent(withVideo);
4293
+ var sourceSearchParameter = source === undefined ? '' : "&" + teamsDeepLinkSourceUrlParameterName + "=" + encodeURIComponent(source);
4294
+ return teamsDeepLinkProtocol + "://" + teamsDeepLinkHost + teamsDeepLinkUrlPathForCall + "?" + usersSearchParameter + withVideoSearchParameter + sourceSearchParameter;
4295
+ }
4296
+ function createTeamsDeepLinkForCalendar(attendees, startTime, endTime, subject, content) {
4297
+ var attendeeSearchParameter = attendees === undefined
4298
+ ? ''
4299
+ : teamsDeepLinkAttendeesUrlParameterName + "=" +
4300
+ attendees.map(function (attendee) { return encodeURIComponent(attendee); }).join(',');
4301
+ var startTimeSearchParameter = startTime === undefined ? '' : "&" + teamsDeepLinkStartTimeUrlParameterName + "=" + encodeURIComponent(startTime);
4302
+ var endTimeSearchParameter = endTime === undefined ? '' : "&" + teamsDeepLinkEndTimeUrlParameterName + "=" + encodeURIComponent(endTime);
4303
+ var subjectSearchParameter = subject === undefined ? '' : "&" + teamsDeepLinkSubjectUrlParameterName + "=" + encodeURIComponent(subject);
4304
+ var contentSearchParameter = content === undefined ? '' : "&" + teamsDeepLinkContentUrlParameterName + "=" + encodeURIComponent(content);
4305
+ return teamsDeepLinkProtocol + "://" + teamsDeepLinkHost + teamsDeepLinkUrlPathForCalendar + "?" + attendeeSearchParameter + startTimeSearchParameter + endTimeSearchParameter + subjectSearchParameter + contentSearchParameter;
4306
+ }
4307
+ function createTeamsDeepLinkForAppInstallDialog(appId) {
4308
+ if (!appId) {
4309
+ throw new Error('App ID must be set when creating an app install dialog deep link');
4310
+ }
4311
+ return teamsDeepLinkProtocol + "://" + teamsDeepLinkHost + teamsDeepLinkUrlPathForAppInstall + encodeURIComponent(appId) + "/";
4312
+ }
4313
+
4247
4314
  ;// CONCATENATED MODULE: ./src/public/appInstallDialog.ts
4248
4315
 
4249
4316
 
4250
4317
 
4251
4318
 
4319
+
4320
+
4252
4321
  /**
4253
4322
  * @alpha
4254
4323
  */
@@ -4260,8 +4329,13 @@ var appInstallDialog;
4260
4329
  if (!isSupported()) {
4261
4330
  throw new Error('Not supported');
4262
4331
  }
4263
- sendMessageToParent('appInstallDialog.openAppInstallDialog', [openAPPInstallDialogParams]);
4264
- resolve();
4332
+ if (runtime.isLegacyTeams) {
4333
+ resolve(sendAndHandleStatusAndReason('executeDeepLink', createTeamsDeepLinkForAppInstallDialog(openAPPInstallDialogParams.appId)));
4334
+ }
4335
+ else {
4336
+ sendMessageToParent('appInstallDialog.openAppInstallDialog', [openAPPInstallDialogParams]);
4337
+ resolve();
4338
+ }
4265
4339
  });
4266
4340
  }
4267
4341
  appInstallDialog.openAppInstallDialog = openAppInstallDialog;
@@ -4271,25 +4345,6 @@ var appInstallDialog;
4271
4345
  appInstallDialog.isSupported = isSupported;
4272
4346
  })(appInstallDialog || (appInstallDialog = {}));
4273
4347
 
4274
- ;// CONCATENATED MODULE: ./src/internal/chatConstants.ts
4275
- var teamsDeepLinkUrlPathForChat = '/l/chat/0/0';
4276
- var teamsDeepLinkUsersUrlParameterName = 'users';
4277
- var teamsDeepLinkTopicUrlParameterName = 'topic';
4278
- var teamsDeepLinkMessageUrlParameterName = 'message';
4279
-
4280
- ;// CONCATENATED MODULE: ./src/internal/chatUtilities.ts
4281
-
4282
-
4283
- function createTeamsDeepLinkForChat(users, topic, message) {
4284
- if (users.length === 0) {
4285
- throw new Error('Must have at least one user when creating a chat deep link');
4286
- }
4287
- var usersSearchParameter = teamsDeepLinkUsersUrlParameterName + "=" + users.map(function (user) { return encodeURIComponent(user); }).join(',');
4288
- var topicSearchParameter = topic === undefined ? '' : "&" + teamsDeepLinkTopicUrlParameterName + "=" + encodeURIComponent(topic);
4289
- var messageSearchParameter = message === undefined ? '' : "&" + teamsDeepLinkMessageUrlParameterName + "=" + encodeURIComponent(message);
4290
- return teamsDeepLinkProtocol + "://" + teamsDeepLinkHost + teamsDeepLinkUrlPathForChat + "?" + usersSearchParameter + topicSearchParameter + messageSearchParameter;
4291
- }
4292
-
4293
4348
  ;// CONCATENATED MODULE: ./src/public/chat.ts
4294
4349
 
4295
4350
 
@@ -4315,7 +4370,7 @@ var chat;
4315
4370
  return new Promise(function (resolve) {
4316
4371
  ensureInitialized(FrameContexts.content);
4317
4372
  if (!isSupported()) {
4318
- throw new Error(errorNotSupportedOnPlatform);
4373
+ throw errorNotSupportedOnPlatform;
4319
4374
  }
4320
4375
  if (runtime.isLegacyTeams) {
4321
4376
  resolve(sendAndHandleStatusAndReason('executeDeepLink', createTeamsDeepLinkForChat([openChatRequest.user], undefined /*topic*/, openChatRequest.message)));
@@ -4354,7 +4409,7 @@ var chat;
4354
4409
  else {
4355
4410
  ensureInitialized(FrameContexts.content);
4356
4411
  if (!isSupported()) {
4357
- throw new Error(errorNotSupportedOnPlatform);
4412
+ throw errorNotSupportedOnPlatform;
4358
4413
  }
4359
4414
  if (runtime.isLegacyTeams) {
4360
4415
  resolve(sendAndHandleStatusAndReason('executeDeepLink', createTeamsDeepLinkForChat(openChatRequest.users, openChatRequest.topic, openChatRequest.message)));
@@ -4425,7 +4480,7 @@ var dialog;
4425
4480
  function submit(result, appIds) {
4426
4481
  ensureInitialized(FrameContexts.content, FrameContexts.sidePanel, FrameContexts.task, FrameContexts.meetingStage);
4427
4482
  // Send tasks.completeTask instead of tasks.submitTask message for backward compatibility with Mobile clients
4428
- sendMessageToParent('tasks.completeTask', [result, Array.isArray(appIds) ? appIds : [appIds]]);
4483
+ sendMessageToParent('tasks.completeTask', [result, appIds ? (Array.isArray(appIds) ? appIds : [appIds]) : []]);
4429
4484
  }
4430
4485
  dialog.submit = submit;
4431
4486
  /**
@@ -5239,6 +5294,9 @@ var location_location;
5239
5294
  if (!props) {
5240
5295
  throw { errorCode: ErrorCode.INVALID_ARGUMENTS };
5241
5296
  }
5297
+ if (!isSupported()) {
5298
+ throw errorNotSupportedOnPlatform;
5299
+ }
5242
5300
  resolve(sendAndHandleSdkError('location.getLocation', props));
5243
5301
  });
5244
5302
  }
@@ -5255,6 +5313,9 @@ var location_location;
5255
5313
  if (!location) {
5256
5314
  throw { errorCode: ErrorCode.INVALID_ARGUMENTS };
5257
5315
  }
5316
+ if (!isSupported()) {
5317
+ throw errorNotSupportedOnPlatform;
5318
+ }
5258
5319
  resolve(sendAndHandleSdkError('location.showLocation', location));
5259
5320
  });
5260
5321
  }
@@ -5535,6 +5596,7 @@ var monetization;
5535
5596
 
5536
5597
 
5537
5598
 
5599
+
5538
5600
  /**
5539
5601
  * @alpha
5540
5602
  */
@@ -5559,7 +5621,12 @@ var calendar;
5559
5621
  if (!isSupported()) {
5560
5622
  throw new Error('Not supported');
5561
5623
  }
5562
- resolve(sendAndHandleStatusAndReason('calendar.composeMeeting', composeMeetingParams));
5624
+ if (runtime.isLegacyTeams) {
5625
+ resolve(sendAndHandleStatusAndReason('executeDeepLink', createTeamsDeepLinkForCalendar(composeMeetingParams.attendees, composeMeetingParams.startTime, composeMeetingParams.endTime, composeMeetingParams.subject, composeMeetingParams.content)));
5626
+ }
5627
+ else {
5628
+ resolve(sendAndHandleStatusAndReason('calendar.composeMeeting', composeMeetingParams));
5629
+ }
5563
5630
  });
5564
5631
  }
5565
5632
  calendar.composeMeeting = composeMeeting;
@@ -5875,6 +5942,8 @@ var stageView;
5875
5942
 
5876
5943
 
5877
5944
 
5945
+
5946
+
5878
5947
  /**
5879
5948
  * @alpha
5880
5949
  */
@@ -5896,11 +5965,17 @@ var call;
5896
5965
  */
5897
5966
  function startCall(startCallParams) {
5898
5967
  return new Promise(function (resolve) {
5968
+ var _a;
5899
5969
  ensureInitialized(FrameContexts.content);
5900
5970
  if (!isSupported()) {
5901
5971
  throw new Error('Not supported');
5902
5972
  }
5903
- return sendMessageToParent('call.startCall', [startCallParams], resolve);
5973
+ if (runtime.isLegacyTeams) {
5974
+ resolve(sendAndHandleSdkError('executeDeepLink', createTeamsDeepLinkForCall(startCallParams.targets, (_a = startCallParams.requestedModalities) === null || _a === void 0 ? void 0 : _a.includes(CallModalities.Video), startCallParams.source)));
5975
+ }
5976
+ else {
5977
+ return sendMessageToParent('call.startCall', [startCallParams], resolve);
5978
+ }
5904
5979
  });
5905
5980
  }
5906
5981
  call.startCall = startCall;
@@ -6776,7 +6851,7 @@ var files;
6776
6851
  return new Promise(function (resolve) {
6777
6852
  ensureInitialized(FrameContexts.content);
6778
6853
  if (!isSupported()) {
6779
- throw new Error(errorNotSupportedOnPlatform);
6854
+ throw errorNotSupportedOnPlatform;
6780
6855
  }
6781
6856
  if (!channelId || channelId.length === 0) {
6782
6857
  throw new Error('[files.getCloudStorageFolders] channelId name cannot be null or empty');
@@ -6796,7 +6871,7 @@ var files;
6796
6871
  return new Promise(function (resolve) {
6797
6872
  ensureInitialized(FrameContexts.content);
6798
6873
  if (!isSupported()) {
6799
- throw new Error(errorNotSupportedOnPlatform);
6874
+ throw errorNotSupportedOnPlatform;
6800
6875
  }
6801
6876
  if (!channelId || channelId.length === 0) {
6802
6877
  throw new Error('[files.addCloudStorageFolder] channelId name cannot be null or empty');
@@ -6825,7 +6900,7 @@ var files;
6825
6900
  return new Promise(function (resolve) {
6826
6901
  ensureInitialized(FrameContexts.content);
6827
6902
  if (!isSupported()) {
6828
- throw new Error(errorNotSupportedOnPlatform);
6903
+ throw errorNotSupportedOnPlatform;
6829
6904
  }
6830
6905
  if (!channelId) {
6831
6906
  throw new Error('[files.deleteCloudStorageFolder] channelId name cannot be null or empty');
@@ -6850,7 +6925,7 @@ var files;
6850
6925
  return new Promise(function (resolve) {
6851
6926
  ensureInitialized(FrameContexts.content);
6852
6927
  if (!isSupported()) {
6853
- throw new Error(errorNotSupportedOnPlatform);
6928
+ throw errorNotSupportedOnPlatform;
6854
6929
  }
6855
6930
  if (!folder || !providerCode) {
6856
6931
  throw new Error('[files.getCloudStorageFolderContents] folder/providerCode name cannot be null or empty');
@@ -6875,7 +6950,7 @@ var files;
6875
6950
  function openCloudStorageFile(file, providerCode, fileOpenPreference) {
6876
6951
  ensureInitialized(FrameContexts.content);
6877
6952
  if (!isSupported()) {
6878
- throw new Error(errorNotSupportedOnPlatform);
6953
+ throw errorNotSupportedOnPlatform;
6879
6954
  }
6880
6955
  if (!file || !providerCode) {
6881
6956
  throw new Error('[files.openCloudStorageFile] file/providerCode cannot be null or empty');
@@ -6897,7 +6972,7 @@ var files;
6897
6972
  function openFilePreview(filePreviewParameters) {
6898
6973
  ensureInitialized(FrameContexts.content);
6899
6974
  if (!isSupported()) {
6900
- throw new Error(errorNotSupportedOnPlatform);
6975
+ throw errorNotSupportedOnPlatform;
6901
6976
  }
6902
6977
  var params = [
6903
6978
  filePreviewParameters.entityId,
@@ -6930,7 +7005,7 @@ var files;
6930
7005
  return new Promise(function (resolve) {
6931
7006
  ensureInitialized(FrameContexts.content);
6932
7007
  if (!isSupported()) {
6933
- throw new Error(errorNotSupportedOnPlatform);
7008
+ throw errorNotSupportedOnPlatform;
6934
7009
  }
6935
7010
  resolve(sendAndHandleSdkError('files.getExternalProviders', excludeAddedProviders));
6936
7011
  });
@@ -6946,7 +7021,7 @@ var files;
6946
7021
  return new Promise(function (resolve) {
6947
7022
  ensureInitialized(FrameContexts.content);
6948
7023
  if (!isSupported()) {
6949
- throw new Error(errorNotSupportedOnPlatform);
7024
+ throw errorNotSupportedOnPlatform;
6950
7025
  }
6951
7026
  if (!selectedFiles || selectedFiles.length === 0) {
6952
7027
  throw new Error('[files.copyMoveFiles] selectedFiles cannot be null or empty');
@@ -6971,7 +7046,7 @@ var files;
6971
7046
  function getFileDownloads(callback) {
6972
7047
  ensureInitialized(FrameContexts.content);
6973
7048
  if (!isSupported()) {
6974
- throw new Error(errorNotSupportedOnPlatform);
7049
+ throw errorNotSupportedOnPlatform;
6975
7050
  }
6976
7051
  var wrappedFunction = function () {
6977
7052
  return new Promise(function (resolve) { return resolve(sendAndHandleSdkError('files.getFileDownloads', [])); });
@@ -6991,7 +7066,7 @@ var files;
6991
7066
  if (fileObjectId === void 0) { fileObjectId = undefined; }
6992
7067
  ensureInitialized(FrameContexts.content);
6993
7068
  if (!isSupported()) {
6994
- throw new Error(errorNotSupportedOnPlatform);
7069
+ throw errorNotSupportedOnPlatform;
6995
7070
  }
6996
7071
  if (!callback) {
6997
7072
  throw new Error('[files.openDownloadFolder] Callback cannot be null');