@atlaskit/teams-client 4.5.2 → 4.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/common/utils/permissions/constants.js +4 -4
  3. package/dist/cjs/common/utils/permissions/has-permission.js +4 -3
  4. package/dist/cjs/common/utils/ufo/constants.js +1 -1
  5. package/dist/cjs/common/utils/ufo/index.js +2 -2
  6. package/dist/cjs/services/main.js +144 -110
  7. package/dist/cjs/services/object-resolver-client/index.js +52 -0
  8. package/dist/cjs/services/object-resolver-client/types.js +4 -1
  9. package/dist/cjs/services/sentry/utils/get-sentry-config.js +1 -1
  10. package/dist/es2019/common/utils/permissions/constants.js +4 -4
  11. package/dist/es2019/common/utils/permissions/has-permission.js +4 -3
  12. package/dist/es2019/common/utils/ufo/constants.js +1 -1
  13. package/dist/es2019/common/utils/ufo/index.js +2 -2
  14. package/dist/es2019/services/main.js +7 -0
  15. package/dist/es2019/services/object-resolver-client/index.js +24 -0
  16. package/dist/es2019/services/object-resolver-client/types.js +5 -1
  17. package/dist/es2019/services/sentry/utils/get-sentry-config.js +1 -1
  18. package/dist/esm/common/utils/permissions/constants.js +4 -4
  19. package/dist/esm/common/utils/permissions/has-permission.js +4 -3
  20. package/dist/esm/common/utils/ufo/constants.js +1 -1
  21. package/dist/esm/common/utils/ufo/index.js +2 -2
  22. package/dist/esm/services/main.js +144 -110
  23. package/dist/esm/services/object-resolver-client/index.js +52 -0
  24. package/dist/esm/services/object-resolver-client/types.js +5 -1
  25. package/dist/esm/services/sentry/utils/get-sentry-config.js +1 -1
  26. package/dist/types/common/utils/permissions/constants.d.ts +3 -3
  27. package/dist/types/common/utils/permissions/has-permission.d.ts +6 -2
  28. package/dist/types/common/utils/ufo/constants.d.ts +2 -2
  29. package/dist/types/services/main.d.ts +4 -0
  30. package/dist/types/services/object-resolver-client/index.d.ts +1 -0
  31. package/dist/types/services/object-resolver-client/types.d.ts +16 -0
  32. package/dist/types-ts4.5/common/utils/permissions/constants.d.ts +3 -3
  33. package/dist/types-ts4.5/common/utils/permissions/has-permission.d.ts +6 -2
  34. package/dist/types-ts4.5/common/utils/ufo/constants.d.ts +3 -2
  35. package/dist/types-ts4.5/services/main.d.ts +4 -0
  36. package/dist/types-ts4.5/services/object-resolver-client/index.d.ts +1 -0
  37. package/dist/types-ts4.5/services/object-resolver-client/types.d.ts +16 -0
  38. package/package.json +1 -1
@@ -36,7 +36,7 @@ function getSentryConfig(options) {
36
36
  return _objectSpread(_objectSpread(_objectSpread({}, otherOptions), DEFAULT_SENTRY_CONFIG), {}, {
37
37
  // Standalone __VERSION__ is set from `bin/set-release-version.sh`
38
38
  // when building to deploy to production
39
- release: "".concat("@atlaskit/teams-client", "@").concat("4.5.1") ||
39
+ release: "".concat("@atlaskit/teams-client", "@").concat("4.6.0") ||
40
40
  // @ts-ignore Jira - window.BUILD_KEY
41
41
  window.BUILD_KEY || ( // @ts-ignore Confluence - window.__buildInfo
42
42
  (_window$__buildInfo = window.__buildInfo) === null || _window$__buildInfo === void 0 ? void 0 : _window$__buildInfo.FRONTEND_VERSION) || '---',
@@ -31,13 +31,13 @@ export const inviteOnlyPermissions = permission => ({
31
31
  REQUEST_TO_JOIN: permission === 'FULL_READ',
32
32
  CANCEL_JOIN_REQUEST: permission === 'FULL_READ'
33
33
  });
34
- export const SCIMSyncTeamPermissions = (isMember, isOrgAdmin) => ({
34
+ export const SCIMSyncTeamPermissions = (isMember, isOrgAdmin, source) => ({
35
35
  EDIT_DESCRIPTION: isMember || isOrgAdmin,
36
36
  EDIT_TEAM_SETTINGS: isMember || isOrgAdmin,
37
37
  EDIT_TEAM_LINK: isMember || isOrgAdmin,
38
- EDIT_TEAM_NAME: isOrgAdmin && fg('enable_edit_team_name_external_type_teams')
38
+ EDIT_TEAM_NAME: isOrgAdmin && source === 'ATLASSIAN_GROUP' && fg('enable_edit_team_name_external_type_teams')
39
39
  });
40
- export const getPermissionMap = (settings, permission, isMember, isOrgAdmin) => {
40
+ export const getPermissionMap = (settings, permission, isMember, isOrgAdmin, source) => {
41
41
  if (settings === 'OPEN') {
42
42
  return {
43
43
  ...allPermissions(permission === 'FULL_WRITE', isMember),
@@ -52,7 +52,7 @@ export const getPermissionMap = (settings, permission, isMember, isOrgAdmin) =>
52
52
  } else if (settings === 'EXTERNAL') {
53
53
  return {
54
54
  ...allPermissions(false, isMember),
55
- ...SCIMSyncTeamPermissions(isMember, isOrgAdmin)
55
+ ...SCIMSyncTeamPermissions(isMember, isOrgAdmin, source)
56
56
  };
57
57
  }
58
58
  return allPermissions(false, false);
@@ -1,6 +1,6 @@
1
1
  import { isMember } from '../team';
2
2
  import { getPermissionMap, vanityActions } from './constants';
3
- export function hasPermission(action, settings, permission, isPeopleBrowseEnabled, currentUserMembership, teamVisibilityPermissions) {
3
+ export function hasPermission(action, settings, permission, isPeopleBrowseEnabled, currentUserMembership, teamVisibilityPermissions, source) {
4
4
  if (!isPeopleBrowseEnabled && !vanityActions.includes(action)) {
5
5
  return false;
6
6
  }
@@ -10,14 +10,15 @@ export function hasPermission(action, settings, permission, isPeopleBrowseEnable
10
10
  membershipSettings: settings,
11
11
  teamPermission: permission,
12
12
  isMemberOfTeam,
13
- isOrgAdmin
13
+ isOrgAdmin,
14
+ source
14
15
  });
15
16
  }
16
17
  /**
17
18
  * Determines if a user has permission perform a given action on a team
18
19
  */
19
20
  export function userCan(action, options) {
20
- return getPermissionMap(options.membershipSettings, options.teamPermission, options.isMemberOfTeam, options.isOrgAdmin)[action];
21
+ return getPermissionMap(options.membershipSettings, options.teamPermission, options.isMemberOfTeam, options.isOrgAdmin, options.source)[action];
21
22
  }
22
23
 
23
24
  /**
@@ -1,6 +1,6 @@
1
1
  import { ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
2
2
  import { TeamsUFOExperience } from './index';
3
- const TeamsClientExperienceKeyList = ['getAllTeams', 'getTeamById', 'updateTeamById', 'querySettings', 'queryFeatureFlags', 'queryTeamMemberships', 'queryUser', 'inviteUsersToTeam', 'getMyTeamMembership', 'getTeamLinksByTeamId', 'createTeamLink', 'updateTeamLink', 'deleteTeamLink', 'reorderTeamLink', 'acceptTeamInvitation', 'declineTeamInvitation', 'selfJoinTeam', 'cancelJoinRequest', 'acceptJoinRequest', 'declineJoinRequest', 'deleteTeamMembership', 'revokeTeamInvite', 'deleteTeam', 'isSingleFullMemberTeam', 'createTeam', 'createTeamContainers', 'createExternalTeam', 'getProfileWithMutability', 'getIsSiteAdmin', 'addUsersToTeam', 'removeTeamMemberships', 'getRecommendedProducts', 'joinOrRequestDefaultAccessToProductsBulk', 'getReadMediaToken', 'getWriteUserMediaToken', 'updateUserHeaderImage', 'getWriteTeamMediaToken', 'getSoftDeletedTeamById', 'restoreTeam', 'getUserInSiteUserBase', 'getLinkedTeamsBulk', 'getTeamProfileDetails', 'getUserContainers', 'getPermissions', 'getUserManageConfig', 'getMyAvatarUploadedStatus', 'deleteUserAvatar', 'getTeamLinkIcons', 'getTeamInSlack', 'getOrgScope', 'restoreTeamToSyncedGroup', 'getTeamAndGroupDiff', 'linkExistingTeamToGroup', 'fetchUserAvatarInfo', 'getOrgEligibilityForManagedTeams', 'updateUser', 'updateUserAvatar', 'disconnectTeamInSlack', 'updateTeamInSlack', 'getUserTenure', 'getAriFromUrl'];
3
+ const TeamsClientExperienceKeyList = ['getAllTeams', 'getTeamById', 'updateTeamById', 'querySettings', 'queryFeatureFlags', 'queryTeamMemberships', 'queryUser', 'inviteUsersToTeam', 'getMyTeamMembership', 'getTeamLinksByTeamId', 'createTeamLink', 'updateTeamLink', 'deleteTeamLink', 'reorderTeamLink', 'acceptTeamInvitation', 'declineTeamInvitation', 'selfJoinTeam', 'cancelJoinRequest', 'acceptJoinRequest', 'declineJoinRequest', 'deleteTeamMembership', 'revokeTeamInvite', 'deleteTeam', 'isSingleFullMemberTeam', 'createTeam', 'createTeamContainers', 'createExternalTeam', 'getProfileWithMutability', 'getIsSiteAdmin', 'addUsersToTeam', 'removeTeamMemberships', 'getRecommendedProducts', 'joinOrRequestDefaultAccessToProductsBulk', 'getReadMediaToken', 'getWriteUserMediaToken', 'updateUserHeaderImage', 'getWriteTeamMediaToken', 'getSoftDeletedTeamById', 'restoreTeam', 'getUserInSiteUserBase', 'getLinkedTeamsBulk', 'getTeamProfileDetails', 'getUserContainers', 'getPermissions', 'getUserManageConfig', 'getMyAvatarUploadedStatus', 'deleteUserAvatar', 'getTeamLinkIcons', 'getTeamInSlack', 'getOrgScope', 'restoreTeamToSyncedGroup', 'getTeamAndGroupDiff', 'linkExistingTeamToGroup', 'fetchUserAvatarInfo', 'getOrgEligibilityForManagedTeams', 'updateUser', 'updateUserAvatar', 'disconnectTeamInSlack', 'updateTeamInSlack', 'getUserTenure', 'getAriFromUrl', 'getWebLinkTitle'];
4
4
  export const TEAMS_CLIENT_EXPERIENCES = new Map([...TeamsClientExperienceKeyList.map(key => [key,
5
5
  // camelCase to kebab-case
6
6
  new TeamsUFOExperience(`teams-client-${key.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()}`, {
@@ -27,7 +27,7 @@ export class TeamsUFOExperience extends UFOExperience {
27
27
  return super.failure({
28
28
  metadata: {
29
29
  error: createErrorMetadata(error),
30
- packageVersion: "4.5.1",
30
+ packageVersion: "4.6.0",
31
31
  packageName: "@atlaskit/teams-client"
32
32
  }
33
33
  });
@@ -35,7 +35,7 @@ export class TeamsUFOExperience extends UFOExperience {
35
35
  return super.failure({
36
36
  metadata: {
37
37
  error: 'unknown error',
38
- packageVersion: "4.5.1",
38
+ packageVersion: "4.6.0",
39
39
  packageName: "@atlaskit/teams-client"
40
40
  }
41
41
  });
@@ -530,6 +530,13 @@ export class TeamsClient {
530
530
  return this.measurePerformance('getAriFromUrl', () => this._objectResolverClient.getAriFromUrl(...args));
531
531
  }
532
532
 
533
+ /**
534
+ * Fetch web link title
535
+ */
536
+ async getWebLinkTitle(...args) {
537
+ return this.measurePerformance('getWebLinkTitle', () => this._objectResolverClient.getWebLinkTitle(...args));
538
+ }
539
+
533
540
  /**
534
541
  * Fetch team in slack details
535
542
  */
@@ -25,5 +25,29 @@ export class ObjectResolverClient extends RestClient {
25
25
  return response === null || response === void 0 ? void 0 : (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.ari;
26
26
  });
27
27
  }
28
+ async getWebLinkTitle(webLinkUrl) {
29
+ try {
30
+ var _response$meta, _response$meta2;
31
+ const response = await this.postResourceRaw('/object-resolver/resolve', JSON.stringify({
32
+ resourceUrl: webLinkUrl
33
+ }));
34
+ if (response && 'data' in response) {
35
+ var _response$data2;
36
+ if ((_response$data2 = response.data) !== null && _response$data2 !== void 0 && _response$data2.name) {
37
+ return response.data.name;
38
+ }
39
+ }
40
+ if (response && 'meta' in response && (((_response$meta = response.meta) === null || _response$meta === void 0 ? void 0 : _response$meta.visibility) === 'restricted' || ((_response$meta2 = response.meta) === null || _response$meta2 === void 0 ? void 0 : _response$meta2.visibility) === 'unauthorized')) {
41
+ var _response$meta$auth;
42
+ const auth = (_response$meta$auth = response.meta.auth) === null || _response$meta$auth === void 0 ? void 0 : _response$meta$auth[0];
43
+ if (auth !== null && auth !== void 0 && auth.displayName) {
44
+ return auth.displayName;
45
+ }
46
+ }
47
+ return;
48
+ } catch (error) {
49
+ return;
50
+ }
51
+ }
28
52
  }
29
53
  export default new ObjectResolverClient();
@@ -9,4 +9,8 @@ export let ProviderNames = /*#__PURE__*/function (ProviderNames) {
9
9
  ProviderNames["CONFLUENCE"] = "Confluence";
10
10
  ProviderNames["JIRA"] = "Jira";
11
11
  return ProviderNames;
12
- }({});
12
+ }({});
13
+
14
+ /**
15
+ * Types for web link title resolution via object-resolver service
16
+ */
@@ -28,7 +28,7 @@ export function getSentryConfig(options) {
28
28
  ...DEFAULT_SENTRY_CONFIG,
29
29
  // Standalone __VERSION__ is set from `bin/set-release-version.sh`
30
30
  // when building to deploy to production
31
- release: `${"@atlaskit/teams-client"}@${"4.5.1"}` ||
31
+ release: `${"@atlaskit/teams-client"}@${"4.6.0"}` ||
32
32
  // @ts-ignore Jira - window.BUILD_KEY
33
33
  window.BUILD_KEY || ( // @ts-ignore Confluence - window.__buildInfo
34
34
  (_window$__buildInfo = window.__buildInfo) === null || _window$__buildInfo === void 0 ? void 0 : _window$__buildInfo.FRONTEND_VERSION) || '---',
@@ -40,22 +40,22 @@ export var inviteOnlyPermissions = function inviteOnlyPermissions(permission) {
40
40
  CANCEL_JOIN_REQUEST: permission === 'FULL_READ'
41
41
  };
42
42
  };
43
- export var SCIMSyncTeamPermissions = function SCIMSyncTeamPermissions(isMember, isOrgAdmin) {
43
+ export var SCIMSyncTeamPermissions = function SCIMSyncTeamPermissions(isMember, isOrgAdmin, source) {
44
44
  return {
45
45
  EDIT_DESCRIPTION: isMember || isOrgAdmin,
46
46
  EDIT_TEAM_SETTINGS: isMember || isOrgAdmin,
47
47
  EDIT_TEAM_LINK: isMember || isOrgAdmin,
48
- EDIT_TEAM_NAME: isOrgAdmin && fg('enable_edit_team_name_external_type_teams')
48
+ EDIT_TEAM_NAME: isOrgAdmin && source === 'ATLASSIAN_GROUP' && fg('enable_edit_team_name_external_type_teams')
49
49
  };
50
50
  };
51
- export var getPermissionMap = function getPermissionMap(settings, permission, isMember, isOrgAdmin) {
51
+ export var getPermissionMap = function getPermissionMap(settings, permission, isMember, isOrgAdmin, source) {
52
52
  if (settings === 'OPEN') {
53
53
  return _objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), openPermissions(permission));
54
54
  }
55
55
  if (settings === 'MEMBER_INVITE') {
56
56
  return _objectSpread(_objectSpread({}, allPermissions(permission === 'FULL_WRITE', isMember)), inviteOnlyPermissions(permission));
57
57
  } else if (settings === 'EXTERNAL') {
58
- return _objectSpread(_objectSpread({}, allPermissions(false, isMember)), SCIMSyncTeamPermissions(isMember, isOrgAdmin));
58
+ return _objectSpread(_objectSpread({}, allPermissions(false, isMember)), SCIMSyncTeamPermissions(isMember, isOrgAdmin, source));
59
59
  }
60
60
  return allPermissions(false, false);
61
61
  };
@@ -1,6 +1,6 @@
1
1
  import { isMember } from '../team';
2
2
  import { getPermissionMap, vanityActions } from './constants';
3
- export function hasPermission(action, settings, permission, isPeopleBrowseEnabled, currentUserMembership, teamVisibilityPermissions) {
3
+ export function hasPermission(action, settings, permission, isPeopleBrowseEnabled, currentUserMembership, teamVisibilityPermissions, source) {
4
4
  if (!isPeopleBrowseEnabled && !vanityActions.includes(action)) {
5
5
  return false;
6
6
  }
@@ -10,14 +10,15 @@ export function hasPermission(action, settings, permission, isPeopleBrowseEnable
10
10
  membershipSettings: settings,
11
11
  teamPermission: permission,
12
12
  isMemberOfTeam: isMemberOfTeam,
13
- isOrgAdmin: isOrgAdmin
13
+ isOrgAdmin: isOrgAdmin,
14
+ source: source
14
15
  });
15
16
  }
16
17
  /**
17
18
  * Determines if a user has permission perform a given action on a team
18
19
  */
19
20
  export function userCan(action, options) {
20
- return getPermissionMap(options.membershipSettings, options.teamPermission, options.isMemberOfTeam, options.isOrgAdmin)[action];
21
+ return getPermissionMap(options.membershipSettings, options.teamPermission, options.isMemberOfTeam, options.isOrgAdmin, options.source)[action];
21
22
  }
22
23
 
23
24
  /**
@@ -1,7 +1,7 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import { ExperiencePerformanceTypes, ExperienceTypes } from '@atlaskit/ufo';
3
3
  import { TeamsUFOExperience } from './index';
4
- var TeamsClientExperienceKeyList = ['getAllTeams', 'getTeamById', 'updateTeamById', 'querySettings', 'queryFeatureFlags', 'queryTeamMemberships', 'queryUser', 'inviteUsersToTeam', 'getMyTeamMembership', 'getTeamLinksByTeamId', 'createTeamLink', 'updateTeamLink', 'deleteTeamLink', 'reorderTeamLink', 'acceptTeamInvitation', 'declineTeamInvitation', 'selfJoinTeam', 'cancelJoinRequest', 'acceptJoinRequest', 'declineJoinRequest', 'deleteTeamMembership', 'revokeTeamInvite', 'deleteTeam', 'isSingleFullMemberTeam', 'createTeam', 'createTeamContainers', 'createExternalTeam', 'getProfileWithMutability', 'getIsSiteAdmin', 'addUsersToTeam', 'removeTeamMemberships', 'getRecommendedProducts', 'joinOrRequestDefaultAccessToProductsBulk', 'getReadMediaToken', 'getWriteUserMediaToken', 'updateUserHeaderImage', 'getWriteTeamMediaToken', 'getSoftDeletedTeamById', 'restoreTeam', 'getUserInSiteUserBase', 'getLinkedTeamsBulk', 'getTeamProfileDetails', 'getUserContainers', 'getPermissions', 'getUserManageConfig', 'getMyAvatarUploadedStatus', 'deleteUserAvatar', 'getTeamLinkIcons', 'getTeamInSlack', 'getOrgScope', 'restoreTeamToSyncedGroup', 'getTeamAndGroupDiff', 'linkExistingTeamToGroup', 'fetchUserAvatarInfo', 'getOrgEligibilityForManagedTeams', 'updateUser', 'updateUserAvatar', 'disconnectTeamInSlack', 'updateTeamInSlack', 'getUserTenure', 'getAriFromUrl'];
4
+ var TeamsClientExperienceKeyList = ['getAllTeams', 'getTeamById', 'updateTeamById', 'querySettings', 'queryFeatureFlags', 'queryTeamMemberships', 'queryUser', 'inviteUsersToTeam', 'getMyTeamMembership', 'getTeamLinksByTeamId', 'createTeamLink', 'updateTeamLink', 'deleteTeamLink', 'reorderTeamLink', 'acceptTeamInvitation', 'declineTeamInvitation', 'selfJoinTeam', 'cancelJoinRequest', 'acceptJoinRequest', 'declineJoinRequest', 'deleteTeamMembership', 'revokeTeamInvite', 'deleteTeam', 'isSingleFullMemberTeam', 'createTeam', 'createTeamContainers', 'createExternalTeam', 'getProfileWithMutability', 'getIsSiteAdmin', 'addUsersToTeam', 'removeTeamMemberships', 'getRecommendedProducts', 'joinOrRequestDefaultAccessToProductsBulk', 'getReadMediaToken', 'getWriteUserMediaToken', 'updateUserHeaderImage', 'getWriteTeamMediaToken', 'getSoftDeletedTeamById', 'restoreTeam', 'getUserInSiteUserBase', 'getLinkedTeamsBulk', 'getTeamProfileDetails', 'getUserContainers', 'getPermissions', 'getUserManageConfig', 'getMyAvatarUploadedStatus', 'deleteUserAvatar', 'getTeamLinkIcons', 'getTeamInSlack', 'getOrgScope', 'restoreTeamToSyncedGroup', 'getTeamAndGroupDiff', 'linkExistingTeamToGroup', 'fetchUserAvatarInfo', 'getOrgEligibilityForManagedTeams', 'updateUser', 'updateUserAvatar', 'disconnectTeamInSlack', 'updateTeamInSlack', 'getUserTenure', 'getAriFromUrl', 'getWebLinkTitle'];
5
5
  export var TEAMS_CLIENT_EXPERIENCES = new Map(_toConsumableArray(TeamsClientExperienceKeyList.map(function (key) {
6
6
  return [key,
7
7
  // camelCase to kebab-case
@@ -45,7 +45,7 @@ export var TeamsUFOExperience = /*#__PURE__*/function (_UFOExperience) {
45
45
  return _superPropGet(TeamsUFOExperience, "failure", this, 3)([{
46
46
  metadata: {
47
47
  error: createErrorMetadata(error),
48
- packageVersion: "4.5.1",
48
+ packageVersion: "4.6.0",
49
49
  packageName: "@atlaskit/teams-client"
50
50
  }
51
51
  }]);
@@ -53,7 +53,7 @@ export var TeamsUFOExperience = /*#__PURE__*/function (_UFOExperience) {
53
53
  return _superPropGet(TeamsUFOExperience, "failure", this, 3)([{
54
54
  metadata: {
55
55
  error: 'unknown error',
56
- packageVersion: "4.5.1",
56
+ packageVersion: "4.6.0",
57
57
  packageName: "@atlaskit/teams-client"
58
58
  }
59
59
  }]);