@atlaskit/teams-client 5.4.0 → 5.6.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.
Files changed (82) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/cjs/common/utils/error/isAuthError.js +1 -1
  3. package/dist/cjs/common/utils/ufo/index.js +2 -2
  4. package/dist/cjs/index.js +19 -12
  5. package/dist/cjs/services/base-client/index.js +2 -2
  6. package/dist/cjs/services/constants.js +2 -1
  7. package/dist/cjs/services/invitations-client/InvitationsClient.js +1 -1
  8. package/dist/cjs/services/sentry/utils/get-sentry-config.js +1 -1
  9. package/dist/cjs/services/teams-in-slack-client/TeamsInSlackClient.js +110 -22
  10. package/dist/cjs/services/use-query-light/useQueryLight.js +3 -3
  11. package/dist/es2019/common/utils/ari.js +1 -0
  12. package/dist/es2019/common/utils/error/index.js +1 -0
  13. package/dist/es2019/common/utils/error/isAuthError.js +1 -1
  14. package/dist/es2019/common/utils/index.js +1 -0
  15. package/dist/es2019/common/utils/permissions/index.js +1 -0
  16. package/dist/es2019/common/utils/team.js +1 -0
  17. package/dist/es2019/common/utils/ufo/index.js +2 -2
  18. package/dist/es2019/index.js +10 -3
  19. package/dist/es2019/mocks/endpoints.js +1 -0
  20. package/dist/es2019/mocks/generate-data.js +1 -0
  21. package/dist/es2019/mocks/index.js +1 -0
  22. package/dist/es2019/services/agg-client/index.js +1 -0
  23. package/dist/es2019/services/base-client/index.js +1 -1
  24. package/dist/es2019/services/constants.js +2 -1
  25. package/dist/es2019/services/hooks/use-teams-client-setup.js +1 -0
  26. package/dist/es2019/services/invitations-client/InvitationsClient.js +1 -1
  27. package/dist/es2019/services/public-api-client/index.js +1 -0
  28. package/dist/es2019/services/sentry/index.js +1 -0
  29. package/dist/es2019/services/sentry/main.js +1 -0
  30. package/dist/es2019/services/sentry/utils/get-sentry-config.js +1 -1
  31. package/dist/es2019/services/teams-in-slack-client/TeamsInSlackClient.js +51 -1
  32. package/dist/es2019/services/use-query-light/index.js +1 -0
  33. package/dist/es2019/services/use-query-light/main.js +1 -0
  34. package/dist/es2019/services/use-query-light/useQueryLight.js +1 -1
  35. package/dist/esm/common/utils/ari.js +1 -0
  36. package/dist/esm/common/utils/error/index.js +1 -0
  37. package/dist/esm/common/utils/error/isAuthError.js +1 -1
  38. package/dist/esm/common/utils/index.js +1 -0
  39. package/dist/esm/common/utils/permissions/index.js +1 -0
  40. package/dist/esm/common/utils/team.js +1 -0
  41. package/dist/esm/common/utils/ufo/index.js +2 -2
  42. package/dist/esm/index.js +10 -3
  43. package/dist/esm/mocks/endpoints.js +1 -0
  44. package/dist/esm/mocks/generate-data.js +1 -0
  45. package/dist/esm/mocks/index.js +1 -0
  46. package/dist/esm/services/agg-client/index.js +1 -0
  47. package/dist/esm/services/base-client/index.js +1 -1
  48. package/dist/esm/services/constants.js +2 -1
  49. package/dist/esm/services/hooks/use-teams-client-setup.js +1 -0
  50. package/dist/esm/services/invitations-client/InvitationsClient.js +1 -1
  51. package/dist/esm/services/public-api-client/index.js +1 -0
  52. package/dist/esm/services/sentry/index.js +1 -0
  53. package/dist/esm/services/sentry/main.js +1 -0
  54. package/dist/esm/services/sentry/utils/get-sentry-config.js +1 -1
  55. package/dist/esm/services/teams-in-slack-client/TeamsInSlackClient.js +110 -22
  56. package/dist/esm/services/use-query-light/index.js +1 -0
  57. package/dist/esm/services/use-query-light/main.js +1 -0
  58. package/dist/esm/services/use-query-light/useQueryLight.js +1 -1
  59. package/dist/types/common/utils/is-invited.d.ts +1 -1
  60. package/dist/types/common/utils/is-member.d.ts +1 -1
  61. package/dist/types/common/utils/is-non-member.d.ts +1 -1
  62. package/dist/types/common/utils/is-requesting-join.d.ts +1 -1
  63. package/dist/types/common/utils/sort-teams.d.ts +1 -1
  64. package/dist/types/index.d.ts +13 -5
  65. package/dist/types/mocks/fixed-team-memberships.d.ts +1 -1
  66. package/dist/types/mocks/random-returned-new-team-data.d.ts +1 -1
  67. package/dist/types/mocks/random-team-membership.d.ts +1 -1
  68. package/dist/types/mocks/random-team-memberships.d.ts +1 -1
  69. package/dist/types/mocks/responses.d.ts +1 -1
  70. package/dist/types/mocks/team-link.d.ts +1 -1
  71. package/dist/types/mocks/with-faker.d.ts +3 -1
  72. package/dist/types/services/agg-client/index.d.ts +3 -2
  73. package/dist/types/services/agg-client/utils/queries/team-membership-query.d.ts +1 -1
  74. package/dist/types/services/constants.d.ts +1 -1
  75. package/dist/types/services/directory-client/index.d.ts +1 -1
  76. package/dist/types/services/identity-client/IdentityClient.d.ts +1 -1
  77. package/dist/types/services/legion-client/index.d.ts +4 -2
  78. package/dist/types/services/main.d.ts +4 -2
  79. package/dist/types/services/public-api-client/PublicApiClient.d.ts +1 -1
  80. package/dist/types/services/teams-in-slack-client/TeamsInSlackClient.d.ts +20 -21
  81. package/dist/types/types/config.d.ts +1 -0
  82. package/package.json +6 -36
@@ -1,3 +1,3 @@
1
- import { type TeamMembership } from '../types';
1
+ import { type TeamMembership } from '../types/membership';
2
2
  import type { MockConfig } from './mock-config';
3
3
  export declare const randomTeamMemberships: (config: MockConfig, n?: number, customProps?: {}) => TeamMembership[];
@@ -1,7 +1,7 @@
1
1
  import { type TeamMembershipQueryResponse } from '../services/agg-client/utils/queries/team-membership-query';
2
2
  import { type RecommendationsResponse } from '../services/invitations-client/types';
3
3
  import { type LegionTeamGetResponseV4 } from '../services/legion-client/types';
4
- import { type TeamMembership } from '../types';
4
+ import { type TeamMembership } from '../types/membership';
5
5
  export declare const MOCK_ME_RESPONSE: {
6
6
  email: string;
7
7
  nickname: string;
@@ -1,5 +1,5 @@
1
1
  import type FakerType from 'faker';
2
- import { type TeamLink } from '../types';
2
+ import { type TeamLink } from '../types/links';
3
3
  type MockConfig = {
4
4
  faker: typeof FakerType;
5
5
  };
@@ -1,5 +1,7 @@
1
1
  import type FakerType from 'faker';
2
- import type { Team, TeamWithImageUrls, TeamWithMemberships, TeamLink } from '../types';
2
+ import type { TeamLink } from '../types/links';
3
+ import type { TeamWithMemberships } from '../types/membership';
4
+ import type { Team, TeamWithImageUrls } from '../types/team';
3
5
  type MockConfig = {
4
6
  faker: typeof FakerType;
5
7
  };
@@ -1,10 +1,11 @@
1
- import { type MembershipState, type TeamAgentAssociation, type TeamMembership, type TeamWithMemberships } from '../../types';
1
+ import { type TeamAgentAssociation } from '../../types/association';
2
+ import { type MembershipState, type TeamMembership, type TeamWithMemberships } from '../../types/membership';
2
3
  import { type ClientConfig } from '../base-client';
3
4
  import { BaseGraphQlClient } from '../graphql-client/main';
5
+ import { type TeamContainers } from './TeamContainers';
4
6
  import { type AGGPageInfoVariables, type ResultWithPageInfo } from './types';
5
7
  import { type UnlinkContainerMutationResponse } from './utils/mutations/unlink-container-mutation';
6
8
  import { type TeamsUserQueryResponse } from './utils/queries/user-query';
7
- import { type TeamContainers } from './TeamContainers';
8
9
  export declare class AGGClient extends BaseGraphQlClient {
9
10
  constructor(baseUrl: string, config: ClientConfig);
10
11
  setBaseUrl(baseUrl: string): void;
@@ -1,5 +1,5 @@
1
1
  import { type UserARI } from '../../../../common/types';
2
- import { type MembershipRole, type MembershipState } from '../../../../types';
2
+ import { type MembershipRole, type MembershipState } from '../../../../types/membership';
3
3
  import { type AGGPageInfo } from '../../types';
4
4
  declare const TeamMembershipQuery = "query app_user_characteristics($teamId: ID!, $siteId: String!, $membershipState: [TeamMembershipState!]!, $first: Int!, $after: String) {\n team {\n teamV2(\n id: $teamId\n siteId: $siteId\n ) @optIn(to: \"Team-v2\") {\n members(state: $membershipState, first: $first, after: $after) {\n edges {\n node {\n member {\n id\n name\n picture\n accountStatus\n ... on AtlassianAccountUser {\n extendedProfile {\n jobTitle\n }\n }\n ... on AppUser {\n appType\n }\n }\n role\n state\n }\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n }\n }";
5
5
  export default TeamMembershipQuery;
@@ -1,2 +1,2 @@
1
- import { type TeamsClientConfig } from '../types';
1
+ import { type TeamsClientConfig } from '../types/config';
2
2
  export declare const DEFAULT_CONFIG: TeamsClientConfig;
@@ -1,4 +1,4 @@
1
- import { type TeamMembership } from '../../types';
1
+ import { type TeamMembership } from '../../types/membership';
2
2
  import { type ClientConfig } from '../base-client';
3
3
  import { BaseGraphQlClient } from '../graphql-client/main';
4
4
  export declare const BROWSE_USER_SETTINGS_KEY = "internal.browse-users-allowed";
@@ -1,4 +1,4 @@
1
- import { type EditableUserFields } from '../../types';
1
+ import { type EditableUserFields } from '../../types/user';
2
2
  import { RestClient } from '../rest-client';
3
3
  import { type FieldType } from './utils';
4
4
  export declare class IdentityClient extends RestClient {
@@ -1,5 +1,7 @@
1
- import { type InvitedUser, type LinkOrder, type NewTeamLink, type ReadMediaTokenResponse, type Team, type TeamLink, type TeamMembership, type TeamMembershipSettings, type TeamWithImageUrls, type TeamWithMemberships } from '../../types';
2
- import { type AlignmentPermission, type AssignedTeamsResponse, type AssignTeamsToSitesResponse, type ExternalReference, type LinkedTeamsBulkResponse, type LinkedTeamsProfileDetails, type OrgScope, type SoftDeletedTeam, type TeamEnabledSitesResponse, type TeamSiteAssignmentOrgDetailsResponse, type TeamsPermissionFromApi, type TeamsToBeClonedToJsmSitesResponse, type UnassignedTeamsResponse } from '../../types/team';
1
+ import { type LinkOrder, type NewTeamLink, type TeamLink } from '../../types/links';
2
+ import { type ReadMediaTokenResponse } from '../../types/media';
3
+ import { type InvitedUser, type TeamMembership, type TeamWithMemberships } from '../../types/membership';
4
+ import type { AlignmentPermission, AssignedTeamsResponse, AssignTeamsToSitesResponse, ExternalReference, LinkedTeamsBulkResponse, LinkedTeamsProfileDetails, OrgScope, SoftDeletedTeam, TeamEnabledSitesResponse, TeamSiteAssignmentOrgDetailsResponse, TeamsPermissionFromApi, TeamsToBeClonedToJsmSitesResponse, UnassignedTeamsResponse, Team, TeamMembershipSettings, TeamWithImageUrls } from '../../types/team';
3
5
  import { type ApiTeamContainerCreationPayload, type ApiTeamContainerResponse } from '../../types/team-container';
4
6
  import { type UserInSiteUserbase } from '../../types/user';
5
7
  import { RestClient } from '../rest-client';
@@ -1,5 +1,7 @@
1
- import { type MembershipState, type TeamMembership, type TeamWithImageUrls, type TeamWithMemberships } from '../types';
2
- import { aggClient, type TeamContainers } from './agg-client';
1
+ import { type MembershipState, type TeamMembership, type TeamWithMemberships } from '../types/membership';
2
+ import { type TeamWithImageUrls } from '../types/team';
3
+ import { aggClient } from './agg-client';
4
+ import { type TeamContainers } from './agg-client/TeamContainers';
3
5
  import { type AGGPageInfoVariables, type ResultWithPageInfo } from './agg-client/types';
4
6
  import collaborationGraphClient from './collaborationgraph-client';
5
7
  import { directoryClient } from './directory-client';
@@ -1,8 +1,8 @@
1
1
  import { RestClient } from '../rest-client';
2
2
  import type { AddMembershipReponse } from './AddMembershipReponse';
3
+ import { type PublicApiTeamResponse, type PublicApiTeamResponseWithMembers } from './generated/data-contracts';
3
4
  import type { Member } from './Member';
4
5
  import type { RemoveMembershipReponse } from './RemoveMembershipReponse';
5
- import { type PublicApiTeamResponse, type PublicApiTeamResponseWithMembers } from './generated/data-contracts';
6
6
  export declare class PublicApiClient extends RestClient {
7
7
  constructor(serviceUrlRoot: string);
8
8
  addUsersToTeam(teamId: string, members: Member[]): Promise<AddMembershipReponse>;
@@ -1,25 +1,24 @@
1
1
  import { RestClient } from '../rest-client';
2
+ interface TeamInSlackResponse {
3
+ connected: boolean;
4
+ slackChannelId: string;
5
+ slackChannelName: string;
6
+ usergroupHandle: string;
7
+ }
8
+ type TeamInSlackResult = TeamInSlackResponse & {
9
+ id: string;
10
+ };
2
11
  export declare class TeamsInSlackClient extends RestClient {
3
12
  constructor(config?: {});
4
- getTeamInSlack(teamId: string, teamName: string): Promise<{
5
- connected: boolean;
6
- slackChannelId: string;
7
- slackChannelName: string;
8
- usergroupHandle: string;
9
- id: string;
10
- }>;
11
- disconnectTeamInSlack(teamId: string): Promise<{
12
- connected: boolean;
13
- slackChannelId: string;
14
- slackChannelName: string;
15
- usergroupHandle: string;
16
- id: string;
17
- }>;
18
- updateTeamInSlack(teamId: string, channelId: string, usergroupHandle: string): Promise<{
19
- connected: boolean;
20
- slackChannelId: string;
21
- slackChannelName: string;
22
- usergroupHandle: string;
23
- id: string;
24
- }>;
13
+ /**
14
+ * Pre-flight auth probe for Staffy Global Edge calls (COMMIT-27483).
15
+ * Fetches /api/authping with credentials:'include'. On failure (302→Okta),
16
+ * navigates to /staffy/login?return_to=<current URL> for top-level Okta SSO.
17
+ * No-op when the gate is OFF (Stargate path).
18
+ */
19
+ private ensureStaffyAuth;
20
+ getTeamInSlack(teamId: string, teamName: string): Promise<TeamInSlackResult>;
21
+ disconnectTeamInSlack(teamId: string): Promise<TeamInSlackResult>;
22
+ updateTeamInSlack(teamId: string, channelId: string, usergroupHandle: string): Promise<TeamInSlackResult>;
25
23
  }
24
+ export {};
@@ -4,4 +4,5 @@ export interface TeamsClientConfig {
4
4
  publicApiRoot: string;
5
5
  invitationsServiceUrl: string;
6
6
  collaborationGraphUrl: string;
7
+ teamsInSlackServiceUrl: string;
7
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/teams-client",
3
- "version": "5.4.0",
3
+ "version": "5.6.0",
4
4
  "description": "A client to retrieve team related data",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -30,10 +30,10 @@
30
30
  "test:coverage": "(cd ../../.. && yarn test 'packages/people-and-teams/teams-client/src' --coverage --coverageProvider=v8 --collectCoverageFrom='[\"packages/people-and-teams/teams-client/src/**\", \"!packages/people-and-teams/teams-client/src/**/**/types.ts\", \"!packages/people-and-teams/teams-client/src/ui/**/styled.tsx\"]')"
31
31
  },
32
32
  "dependencies": {
33
- "@atlaskit/atlassian-context": "^1.1.0",
33
+ "@atlaskit/atlassian-context": "^1.2.0",
34
34
  "@atlaskit/platform-feature-flags": "^2.2.0",
35
35
  "@atlaskit/react-compiler-gating": "^0.2.0",
36
- "@atlaskit/ufo": "^1.1.0",
36
+ "@atlaskit/ufo": "^1.2.0",
37
37
  "@babel/runtime": "^7.0.0",
38
38
  "@sentry/browser": "^6.18.2",
39
39
  "date-fns-tz": "^2.0.0",
@@ -58,45 +58,15 @@
58
58
  "ts-node": "^10.9.1",
59
59
  "wait-for-expect": "^1.2.0"
60
60
  },
61
- "techstack": {
62
- "@atlassian/frontend": {
63
- "import-structure": [
64
- "atlassian-conventions"
65
- ],
66
- "circular-dependencies": [
67
- "file-and-folder-level"
68
- ]
69
- },
70
- "@repo/internal": {
71
- "dom-events": "use-bind-event-listener",
72
- "analytics": [
73
- "analytics-next"
74
- ],
75
- "design-tokens": [
76
- "color",
77
- "spacing"
78
- ],
79
- "theming": [
80
- "react-context"
81
- ],
82
- "ui-components": [
83
- "lite-mode"
84
- ],
85
- "deprecation": [
86
- "no-deprecated-imports"
87
- ],
88
- "styling": [
89
- "static",
90
- "emotion"
91
- ]
92
- }
93
- },
94
61
  "platform-feature-flags": {
95
62
  "enable_edit_team_name_external_type_teams": {
96
63
  "type": "boolean"
97
64
  },
98
65
  "ptc-enable-team-type-permission-enabled": {
99
66
  "type": "boolean"
67
+ },
68
+ "ptc-onboard-teams-slack-app-to-global-edge-url": {
69
+ "type": "boolean"
100
70
  }
101
71
  }
102
72
  }