@atlaskit/teams-client 5.5.0 → 6.0.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 (95) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/cjs/common/utils/error/index.js +2 -94
  3. package/dist/cjs/common/utils/error/isAuthError.js +1 -1
  4. package/dist/cjs/common/utils/permissions/has-permission.js +2 -23
  5. package/dist/cjs/common/utils/ufo/index.js +2 -2
  6. package/dist/cjs/services/agg-client/index.js +2 -6
  7. package/dist/cjs/services/hooks/use-teams-client-setup.js +2 -12
  8. package/dist/cjs/services/invitations-client/InvitationsClient.js +1 -1
  9. package/dist/cjs/services/public-api-client/index.js +1 -12
  10. package/dist/cjs/services/sentry/utils/get-sentry-config.js +1 -1
  11. package/dist/cjs/services/teams-in-slack-client/TeamsInSlackClient.js +106 -21
  12. package/dist/cjs/services/use-query-light/types.js +1 -22
  13. package/dist/es2019/common/utils/error/index.js +1 -38
  14. package/dist/es2019/common/utils/error/isAuthError.js +1 -1
  15. package/dist/es2019/common/utils/permissions/has-permission.js +2 -11
  16. package/dist/es2019/common/utils/permissions/index.js +1 -0
  17. package/dist/es2019/common/utils/ufo/index.js +2 -2
  18. package/dist/es2019/services/agg-client/index.js +1 -6
  19. package/dist/es2019/services/hooks/use-teams-client-setup.js +3 -7
  20. package/dist/es2019/services/invitations-client/InvitationsClient.js +1 -1
  21. package/dist/es2019/services/public-api-client/index.js +1 -7
  22. package/dist/es2019/services/sentry/index.js +1 -0
  23. package/dist/es2019/services/sentry/utils/get-sentry-config.js +1 -1
  24. package/dist/es2019/services/teams-in-slack-client/TeamsInSlackClient.js +47 -0
  25. package/dist/es2019/services/use-query-light/types.js +1 -11
  26. package/dist/esm/common/utils/error/index.js +1 -38
  27. package/dist/esm/common/utils/error/isAuthError.js +1 -1
  28. package/dist/esm/common/utils/permissions/has-permission.js +2 -11
  29. package/dist/esm/common/utils/permissions/index.js +1 -0
  30. package/dist/esm/common/utils/ufo/index.js +2 -2
  31. package/dist/esm/services/agg-client/index.js +1 -6
  32. package/dist/esm/services/hooks/use-teams-client-setup.js +3 -7
  33. package/dist/esm/services/invitations-client/InvitationsClient.js +1 -1
  34. package/dist/esm/services/public-api-client/index.js +1 -7
  35. package/dist/esm/services/sentry/index.js +1 -0
  36. package/dist/esm/services/sentry/utils/get-sentry-config.js +1 -1
  37. package/dist/esm/services/teams-in-slack-client/TeamsInSlackClient.js +106 -21
  38. package/dist/esm/services/use-query-light/types.js +1 -11
  39. package/dist/types/common/utils/error/index.d.ts +1 -36
  40. package/dist/types/common/utils/permissions/has-permission.d.ts +0 -8
  41. package/dist/types/mocks/with-faker.d.ts +2 -2
  42. package/dist/types/services/agg-client/index.d.ts +2 -6
  43. package/dist/types/services/hooks/use-teams-client-setup.d.ts +0 -4
  44. package/dist/types/services/legion-client/index.d.ts +1 -1
  45. package/dist/types/services/public-api-client/PublicApiClient.d.ts +1 -1
  46. package/dist/types/services/public-api-client/index.d.ts +0 -4
  47. package/dist/types/services/teams-in-slack-client/TeamsInSlackClient.d.ts +20 -21
  48. package/dist/types/services/use-query-light/types.d.ts +0 -8
  49. package/package.json +4 -4
  50. package/scripts/generate-docs.ts +1 -1
  51. package/ari/package.json +0 -8
  52. package/dist/cjs/common/utils/ari.js +0 -47
  53. package/dist/cjs/common/utils/index.js +0 -40
  54. package/dist/cjs/common/utils/team.js +0 -33
  55. package/dist/cjs/mocks/endpoints.js +0 -40
  56. package/dist/cjs/mocks/generate-data.js +0 -40
  57. package/dist/cjs/mocks/index.js +0 -68
  58. package/dist/cjs/services/sentry/main.js +0 -68
  59. package/dist/cjs/services/use-query-light/index.js +0 -26
  60. package/dist/cjs/services/use-query-light/main.js +0 -19
  61. package/dist/es2019/common/utils/ari.js +0 -25
  62. package/dist/es2019/common/utils/index.js +0 -21
  63. package/dist/es2019/common/utils/team.js +0 -17
  64. package/dist/es2019/mocks/endpoints.js +0 -22
  65. package/dist/es2019/mocks/generate-data.js +0 -22
  66. package/dist/es2019/mocks/index.js +0 -38
  67. package/dist/es2019/services/sentry/main.js +0 -39
  68. package/dist/es2019/services/use-query-light/index.js +0 -21
  69. package/dist/es2019/services/use-query-light/main.js +0 -10
  70. package/dist/esm/common/utils/ari.js +0 -25
  71. package/dist/esm/common/utils/index.js +0 -21
  72. package/dist/esm/common/utils/team.js +0 -17
  73. package/dist/esm/mocks/endpoints.js +0 -22
  74. package/dist/esm/mocks/generate-data.js +0 -22
  75. package/dist/esm/mocks/index.js +0 -38
  76. package/dist/esm/services/sentry/main.js +0 -39
  77. package/dist/esm/services/use-query-light/index.js +0 -21
  78. package/dist/esm/services/use-query-light/main.js +0 -10
  79. package/dist/types/common/utils/ari.d.ts +0 -24
  80. package/dist/types/common/utils/index.d.ts +0 -20
  81. package/dist/types/common/utils/team.d.ts +0 -16
  82. package/dist/types/mocks/endpoints.d.ts +0 -20
  83. package/dist/types/mocks/generate-data.d.ts +0 -20
  84. package/dist/types/mocks/index.d.ts +0 -36
  85. package/dist/types/services/sentry/main.d.ts +0 -36
  86. package/dist/types/services/use-query-light/index.d.ts +0 -20
  87. package/dist/types/services/use-query-light/main.d.ts +0 -8
  88. package/endpoints/package.json +0 -8
  89. package/generate-data/package.json +0 -8
  90. package/mocks/package.json +0 -8
  91. package/sentry/main/package.json +0 -8
  92. package/team/package.json +0 -8
  93. package/use-query-light/main/package.json +0 -8
  94. package/use-query-light/package.json +0 -8
  95. package/utils/package.json +0 -8
@@ -1,4 +1,5 @@
1
- /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
1
+ /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of this deprecated API. */
2
+
2
3
  import { useTeamsClientSetupNext } from './use-teams-client-setup-next';
3
4
 
4
5
  /**
@@ -11,9 +12,4 @@ export const useTeamsClientSetup = (stargateRoot, cloudId, orgId, principalUserI
11
12
  orgId,
12
13
  principalUserId
13
14
  });
14
- };
15
-
16
- /**
17
- * @deprecated Use `import { useTeamsClientSetupNext } from '@atlaskit/teams-client/use-teams-client-setup-next'` instead.
18
- */
19
- export { useTeamsClientSetupNext } from './use-teams-client-setup-next';
15
+ };
@@ -1,6 +1,6 @@
1
1
  import { RestClient } from '../rest-client';
2
- import { removeDuplicateRecommendations } from './utils';
3
2
  import { PRODUCT_JOIN_OR_REQUEST_BULK, PRODUCT_RECCOMENDATIONS } from './index';
3
+ import { removeDuplicateRecommendations } from './utils';
4
4
  const ALL_SUPPORTED_PRODUCTS = ['confluence', 'jira', 'jira-core', 'jira-servicedesk', 'jira-software', 'jira-incident-manager', 'jira-product-discovery', 'opsgenie', 'statuspage', 'avocado', 'townsquare', 'compass', 'avp', 'beacon', 'mercury'];
5
5
  export class InvitationsClient extends RestClient {
6
6
  constructor(serviceUrl, config) {
@@ -1,12 +1,6 @@
1
- /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
2
1
  import { DEFAULT_CONFIG } from '../constants';
3
2
  import { PublicApiClient } from './PublicApiClient';
4
3
 
5
4
  // eslint-disable-next-line import/no-anonymous-default-export
6
5
  const _default_1 = new PublicApiClient(DEFAULT_CONFIG.publicApiRoot);
7
- export default _default_1;
8
-
9
- /**
10
- * @deprecated Use `import { PublicApiClient } from '@atlaskit/teams-client/public-api-client'` instead.
11
- */
12
- export { PublicApiClient } from './PublicApiClient';
6
+ export default _default_1;
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Use `import { addBreadcrumb } from '@atlaskit/teams-client/add-breadcrumb'` instead.
4
4
  */
5
+
5
6
  export { addBreadcrumb } from './addBreadcrumb';
6
7
  /**
7
8
  * @deprecated Use `import { createErrorHandler } from '@atlaskit/teams-client/create-error-handler'` instead.
@@ -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"}@${"5.4.0"}` ||
31
+ release: `${"@atlaskit/teams-client"}@${"5.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) || '---',
@@ -1,11 +1,22 @@
1
1
  import { fg } from '@atlaskit/platform-feature-flags/fg';
2
+ import { SLOIgnoreError } from '../../common/utils/error/SLOIgnoreError';
2
3
  import { DEFAULT_CONFIG } from '../constants';
3
4
  import { RestClient } from '../rest-client';
5
+ import { redirectCount } from '../rest-client/utils/redirect-count';
6
+ const GLOBAL_EDGE_ORIGIN = new URL(DEFAULT_CONFIG.teamsInSlackServiceUrl).origin;
4
7
  const defaultConfig = {
5
8
  get serviceUrl() {
6
9
  return fg('ptc-onboard-teams-slack-app-to-global-edge-url') ? DEFAULT_CONFIG.teamsInSlackServiceUrl : `${DEFAULT_CONFIG.stargateRoot}/teamsslack/api/team`;
7
10
  }
8
11
  };
12
+
13
+ // Shared in-flight probe: concurrent callers coalesce onto one fetch rather
14
+ // than each firing their own and racing on the flag.
15
+ let staffyAuthProbe = null;
16
+
17
+ // Prevents an infinite redirect loop if Okta completes but auth still fails.
18
+ // Resets on full page reload — correct, since a reload after login should retry.
19
+ let staffyAuthAttempted = false;
9
20
  export class TeamsInSlackClient extends RestClient {
10
21
  constructor(config = {}) {
11
22
  super({
@@ -13,19 +24,55 @@ export class TeamsInSlackClient extends RestClient {
13
24
  ...config
14
25
  });
15
26
  }
27
+
28
+ /**
29
+ * Pre-flight auth probe for Staffy Global Edge calls (COMMIT-27483).
30
+ * Fetches /api/authping with credentials:'include'. On failure (302→Okta),
31
+ * navigates to /staffy/login?return_to=<current URL> for top-level Okta SSO.
32
+ * No-op when the gate is OFF (Stargate path).
33
+ */
34
+ async ensureStaffyAuth() {
35
+ if (!fg('ptc-onboard-teams-slack-app-to-global-edge-url')) {
36
+ return;
37
+ }
38
+ staffyAuthProbe ??= fetch(`${GLOBAL_EDGE_ORIGIN}/api/authping`, {
39
+ credentials: 'include'
40
+ }).then(r => r.ok).catch(() => false).finally(() => {
41
+ staffyAuthProbe = null;
42
+ });
43
+ const authenticated = await staffyAuthProbe;
44
+ if (authenticated) {
45
+ staffyAuthAttempted = false;
46
+ return;
47
+ }
48
+ if (staffyAuthAttempted) {
49
+ // Already redirected once — let the call proceed and surface the error.
50
+ return;
51
+ }
52
+ staffyAuthAttempted = true;
53
+ redirectCount.increment();
54
+ const returnTo = encodeURIComponent(window.location.href);
55
+ window.location.assign(`${GLOBAL_EDGE_ORIGIN}/staffy/login?return_to=${returnTo}`);
56
+ throw new SLOIgnoreError({
57
+ message: 'Redirecting to Staffy login'
58
+ });
59
+ }
16
60
  async getTeamInSlack(teamId, teamName) {
61
+ await this.ensureStaffyAuth();
17
62
  return this.getResource(`/${teamId}?teamName=${encodeURIComponent(teamName)}`).then(response => ({
18
63
  id: teamId,
19
64
  ...response
20
65
  }));
21
66
  }
22
67
  async disconnectTeamInSlack(teamId) {
68
+ await this.ensureStaffyAuth();
23
69
  return this.deleteResource(`/${teamId}`).then(response => ({
24
70
  id: teamId,
25
71
  ...response
26
72
  }));
27
73
  }
28
74
  async updateTeamInSlack(teamId, channelId, usergroupHandle) {
75
+ await this.ensureStaffyAuth();
29
76
  return this.postResource(`/${teamId}?channel=${channelId}&groupName=${usergroupHandle}`).then(response => ({
30
77
  id: teamId,
31
78
  ...response
@@ -1,17 +1,7 @@
1
- /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
2
-
3
1
  export let ErrorCategory = /*#__PURE__*/function (ErrorCategory) {
4
2
  ErrorCategory["NotFound"] = "NotFound";
5
3
  ErrorCategory["NotPermitted"] = "NotPermitted";
6
4
  ErrorCategory["MalformedInput"] = "MalformedInput";
7
5
  ErrorCategory["Internal"] = "Internal";
8
6
  return ErrorCategory;
9
- }({});
10
- /**
11
- * @deprecated Use `import { ActualGraphQLError } from '@atlaskit/teams-client/actual-graph-ql-error'` instead.
12
- */
13
- export { ActualGraphQLError } from './ActualGraphQLError';
14
- /**
15
- * @deprecated Use `import { UseQueryLightError } from '@atlaskit/teams-client/use-query-light-error'` instead.
16
- */
17
- export { UseQueryLightError } from './UseQueryLightError';
7
+ }({});
@@ -1,4 +1,3 @@
1
- /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
2
1
  export var ErrorCategory = /*#__PURE__*/function (ErrorCategory) {
3
2
  ErrorCategory["NotFound"] = "NotFound";
4
3
  ErrorCategory["NotPermitted"] = "NotPermitted";
@@ -17,40 +16,4 @@ export var StatusCode = /*#__PURE__*/function (StatusCode) {
17
16
  export var TeamErrorType = /*#__PURE__*/function (TeamErrorType) {
18
17
  TeamErrorType["TEAM_NOT_ACTIVE"] = "Team must be active";
19
18
  return TeamErrorType;
20
- }({});
21
- /**
22
- * @deprecated Use `import { isAuthError } from '@atlaskit/teams-client/is-auth-error'` instead.
23
- */
24
- export { isAuthError } from './isAuthError';
25
- /**
26
- * @deprecated Use `import { isErrorStatusCode } from '@atlaskit/teams-client/is-error-status-code'` instead.
27
- */
28
- export { isErrorStatusCode } from './isErrorStatusCode';
29
- /**
30
- * @deprecated Use `import { doesErrorContainStatus } from '@atlaskit/teams-client/does-error-contain-status'` instead.
31
- */
32
- export { doesErrorContainStatus } from './doesErrorContainStatus';
33
- /**
34
- * @deprecated Use `import { DefaultError } from '@atlaskit/teams-client/default-error'` instead.
35
- */
36
- export { DefaultError } from './DefaultError';
37
- /**
38
- * @deprecated Use `import { SLOIgnoreError } from '@atlaskit/teams-client/slo-ignore-error'` instead.
39
- */
40
- export { SLOIgnoreError } from './SLOIgnoreError';
41
- /**
42
- * @deprecated Use `import { HttpError } from '@atlaskit/teams-client/http-error'` instead.
43
- */
44
- export { HttpError } from './HttpError';
45
- /**
46
- * @deprecated Use `import { SLOIgnoreHttpError } from '@atlaskit/teams-client/slo-ignore-http-error'` instead.
47
- */
48
- export { SLOIgnoreHttpError } from './SLOIgnoreHttpError';
49
- /**
50
- * @deprecated Use `import { GraphQLError } from '@atlaskit/teams-client/graph-ql-error'` instead.
51
- */
52
- export { GraphQLError } from './GraphQLError';
53
- /**
54
- * @deprecated Use `import { isNetworkError } from '@atlaskit/teams-client/is-network-error'` instead.
55
- */
56
- export { isNetworkError } from './isNetworkError';
19
+ }({});
@@ -1,5 +1,5 @@
1
- import { isErrorStatusCode } from './isErrorStatusCode';
2
1
  import { StatusCode } from './index';
2
+ import { isErrorStatusCode } from './isErrorStatusCode';
3
3
  export function isAuthError(error) {
4
4
  return isErrorStatusCode(StatusCode.UNAUTHORIZED, error) || isErrorStatusCode(StatusCode.FORBIDDEN, error);
5
5
  }
@@ -1,4 +1,4 @@
1
- /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
1
+ /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of this deprecated API. */
2
2
 
3
3
  import { isMember } from '../is-member';
4
4
  import { vanityActions } from './constants';
@@ -21,13 +21,4 @@ export function hasPermission(action, settings, permission, isPeopleBrowseEnable
21
21
  source: source,
22
22
  state: state
23
23
  });
24
- }
25
-
26
- /**
27
- * @deprecated Use `import { hasPermissionForAction } from '@atlaskit/teams-client/has-permission-for-action'` instead.
28
- */
29
- export { hasPermissionForAction } from './has-permission-for-action';
30
- /**
31
- * @deprecated Use `import { userCan } from '@atlaskit/teams-client/user-can'` instead.
32
- */
33
- export { userCan } from './user-can';
24
+ }
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Use `import { hasPermissionForAction } from '@atlaskit/teams-client/has-permission-for-action'` instead.
4
4
  */
5
+
5
6
  export { hasPermissionForAction } from './has-permission-for-action';
6
7
  /**
7
8
  * @deprecated Use `import { hasPermission } from '@atlaskit/teams-client/has-permission'` instead.
@@ -49,7 +49,7 @@ export var TeamsUFOExperience = /*#__PURE__*/function (_UFOExperience) {
49
49
  return _superPropGet(TeamsUFOExperience, "failure", this, 3)([{
50
50
  metadata: {
51
51
  error: createErrorMetadata(error),
52
- packageVersion: "5.4.0",
52
+ packageVersion: "5.6.0",
53
53
  packageName: "@atlaskit/teams-client"
54
54
  }
55
55
  }]);
@@ -57,7 +57,7 @@ export var TeamsUFOExperience = /*#__PURE__*/function (_UFOExperience) {
57
57
  return _superPropGet(TeamsUFOExperience, "failure", this, 3)([{
58
58
  metadata: {
59
59
  error: 'unknown error',
60
- packageVersion: "5.4.0",
60
+ packageVersion: "5.6.0",
61
61
  packageName: "@atlaskit/teams-client"
62
62
  }
63
63
  }]);
@@ -10,7 +10,6 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
10
10
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
11
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
12
12
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
13
- /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
14
13
  import { toTeamARI } from '../../common/utils/to-team-ari';
15
14
  import { toUserId } from '../../common/utils/to-user-id';
16
15
  import { DEFAULT_CONFIG } from '../constants';
@@ -398,8 +397,4 @@ export var AGGClient = /*#__PURE__*/function (_BaseGraphQlClient) {
398
397
  }(BaseGraphQlClient);
399
398
  export var aggClient = new AGGClient(DEFAULT_CONFIG.stargateRoot, {
400
399
  logException: logException
401
- });
402
-
403
- /**
404
- * @deprecated Use `import type { TeamContainers } from '@atlaskit/teams-client/team-containers'` instead.
405
- */
400
+ });
@@ -1,4 +1,5 @@
1
- /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
1
+ /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of this deprecated API. */
2
+
2
3
  import { useTeamsClientSetupNext } from './use-teams-client-setup-next';
3
4
 
4
5
  /**
@@ -11,9 +12,4 @@ export var useTeamsClientSetup = function useTeamsClientSetup(stargateRoot, clou
11
12
  orgId: orgId,
12
13
  principalUserId: principalUserId
13
14
  });
14
- };
15
-
16
- /**
17
- * @deprecated Use `import { useTeamsClientSetupNext } from '@atlaskit/teams-client/use-teams-client-setup-next'` instead.
18
- */
19
- export { useTeamsClientSetupNext } from './use-teams-client-setup-next';
15
+ };
@@ -8,8 +8,8 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
8
8
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
9
9
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
10
10
  import { RestClient } from '../rest-client';
11
- import { removeDuplicateRecommendations } from './utils';
12
11
  import { PRODUCT_JOIN_OR_REQUEST_BULK, PRODUCT_RECCOMENDATIONS } from './index';
12
+ import { removeDuplicateRecommendations } from './utils';
13
13
  var ALL_SUPPORTED_PRODUCTS = ['confluence', 'jira', 'jira-core', 'jira-servicedesk', 'jira-software', 'jira-incident-manager', 'jira-product-discovery', 'opsgenie', 'statuspage', 'avocado', 'townsquare', 'compass', 'avp', 'beacon', 'mercury'];
14
14
  export var InvitationsClient = /*#__PURE__*/function (_RestClient) {
15
15
  function InvitationsClient(serviceUrl, config) {
@@ -1,12 +1,6 @@
1
- /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
2
1
  import { DEFAULT_CONFIG } from '../constants';
3
2
  import { PublicApiClient } from './PublicApiClient';
4
3
 
5
4
  // eslint-disable-next-line import/no-anonymous-default-export
6
5
  var _default_1 = new PublicApiClient(DEFAULT_CONFIG.publicApiRoot);
7
- export default _default_1;
8
-
9
- /**
10
- * @deprecated Use `import { PublicApiClient } from '@atlaskit/teams-client/public-api-client'` instead.
11
- */
12
- export { PublicApiClient } from './PublicApiClient';
6
+ export default _default_1;
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * @deprecated Use `import { addBreadcrumb } from '@atlaskit/teams-client/add-breadcrumb'` instead.
4
4
  */
5
+
5
6
  export { addBreadcrumb } from './addBreadcrumb';
6
7
  /**
7
8
  * @deprecated Use `import { createErrorHandler } from '@atlaskit/teams-client/create-error-handler'` instead.
@@ -29,7 +29,7 @@ export function getSentryConfig(options) {
29
29
  return _objectSpread(_objectSpread(_objectSpread({}, otherOptions), DEFAULT_SENTRY_CONFIG), {}, {
30
30
  // Standalone __VERSION__ is set from `bin/set-release-version.sh`
31
31
  // when building to deploy to production
32
- release: "".concat("@atlaskit/teams-client", "@").concat("5.4.0") ||
32
+ release: "".concat("@atlaskit/teams-client", "@").concat("5.6.0") ||
33
33
  // @ts-ignore Jira - window.BUILD_KEY
34
34
  window.BUILD_KEY || ( // @ts-ignore Confluence - window.__buildInfo
35
35
  (_window$__buildInfo = window.__buildInfo) === null || _window$__buildInfo === void 0 ? void 0 : _window$__buildInfo.FRONTEND_VERSION) || '---',
@@ -11,37 +11,116 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
11
11
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
12
12
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
13
13
  import { fg } from '@atlaskit/platform-feature-flags/fg';
14
+ import { SLOIgnoreError } from '../../common/utils/error/SLOIgnoreError';
14
15
  import { DEFAULT_CONFIG } from '../constants';
15
16
  import { RestClient } from '../rest-client';
17
+ import { redirectCount } from '../rest-client/utils/redirect-count';
18
+ var GLOBAL_EDGE_ORIGIN = new URL(DEFAULT_CONFIG.teamsInSlackServiceUrl).origin;
16
19
  var defaultConfig = {
17
20
  get serviceUrl() {
18
21
  return fg('ptc-onboard-teams-slack-app-to-global-edge-url') ? DEFAULT_CONFIG.teamsInSlackServiceUrl : "".concat(DEFAULT_CONFIG.stargateRoot, "/teamsslack/api/team");
19
22
  }
20
23
  };
24
+
25
+ // Shared in-flight probe: concurrent callers coalesce onto one fetch rather
26
+ // than each firing their own and racing on the flag.
27
+ var staffyAuthProbe = null;
28
+
29
+ // Prevents an infinite redirect loop if Okta completes but auth still fails.
30
+ // Resets on full page reload — correct, since a reload after login should retry.
31
+ var staffyAuthAttempted = false;
21
32
  export var TeamsInSlackClient = /*#__PURE__*/function (_RestClient) {
22
33
  function TeamsInSlackClient() {
23
34
  var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
24
35
  _classCallCheck(this, TeamsInSlackClient);
25
36
  return _callSuper(this, TeamsInSlackClient, [_objectSpread(_objectSpread({}, defaultConfig), config)]);
26
37
  }
38
+
39
+ /**
40
+ * Pre-flight auth probe for Staffy Global Edge calls (COMMIT-27483).
41
+ * Fetches /api/authping with credentials:'include'. On failure (302→Okta),
42
+ * navigates to /staffy/login?return_to=<current URL> for top-level Okta SSO.
43
+ * No-op when the gate is OFF (Stargate path).
44
+ */
27
45
  _inherits(TeamsInSlackClient, _RestClient);
28
46
  return _createClass(TeamsInSlackClient, [{
29
- key: "getTeamInSlack",
30
- value: function () {
31
- var _getTeamInSlack = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(teamId, teamName) {
47
+ key: "ensureStaffyAuth",
48
+ value: (function () {
49
+ var _ensureStaffyAuth = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
50
+ var authenticated, returnTo;
32
51
  return _regeneratorRuntime.wrap(function (_context) {
33
52
  while (1) switch (_context.prev = _context.next) {
34
53
  case 0:
35
- return _context.abrupt("return", this.getResource("/".concat(teamId, "?teamName=").concat(encodeURIComponent(teamName))).then(function (response) {
54
+ if (fg('ptc-onboard-teams-slack-app-to-global-edge-url')) {
55
+ _context.next = 1;
56
+ break;
57
+ }
58
+ return _context.abrupt("return");
59
+ case 1:
60
+ staffyAuthProbe !== null && staffyAuthProbe !== void 0 ? staffyAuthProbe : staffyAuthProbe = fetch("".concat(GLOBAL_EDGE_ORIGIN, "/api/authping"), {
61
+ credentials: 'include'
62
+ }).then(function (r) {
63
+ return r.ok;
64
+ }).catch(function () {
65
+ return false;
66
+ }).finally(function () {
67
+ staffyAuthProbe = null;
68
+ });
69
+ _context.next = 2;
70
+ return staffyAuthProbe;
71
+ case 2:
72
+ authenticated = _context.sent;
73
+ if (!authenticated) {
74
+ _context.next = 3;
75
+ break;
76
+ }
77
+ staffyAuthAttempted = false;
78
+ return _context.abrupt("return");
79
+ case 3:
80
+ if (!staffyAuthAttempted) {
81
+ _context.next = 4;
82
+ break;
83
+ }
84
+ return _context.abrupt("return");
85
+ case 4:
86
+ staffyAuthAttempted = true;
87
+ redirectCount.increment();
88
+ returnTo = encodeURIComponent(window.location.href);
89
+ window.location.assign("".concat(GLOBAL_EDGE_ORIGIN, "/staffy/login?return_to=").concat(returnTo));
90
+ throw new SLOIgnoreError({
91
+ message: 'Redirecting to Staffy login'
92
+ });
93
+ case 5:
94
+ case "end":
95
+ return _context.stop();
96
+ }
97
+ }, _callee);
98
+ }));
99
+ function ensureStaffyAuth() {
100
+ return _ensureStaffyAuth.apply(this, arguments);
101
+ }
102
+ return ensureStaffyAuth;
103
+ }())
104
+ }, {
105
+ key: "getTeamInSlack",
106
+ value: function () {
107
+ var _getTeamInSlack = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(teamId, teamName) {
108
+ return _regeneratorRuntime.wrap(function (_context2) {
109
+ while (1) switch (_context2.prev = _context2.next) {
110
+ case 0:
111
+ _context2.next = 1;
112
+ return this.ensureStaffyAuth();
113
+ case 1:
114
+ return _context2.abrupt("return", this.getResource("/".concat(teamId, "?teamName=").concat(encodeURIComponent(teamName))).then(function (response) {
36
115
  return _objectSpread({
37
116
  id: teamId
38
117
  }, response);
39
118
  }));
40
- case 1:
119
+ case 2:
41
120
  case "end":
42
- return _context.stop();
121
+ return _context2.stop();
43
122
  }
44
- }, _callee, this);
123
+ }, _callee2, this);
45
124
  }));
46
125
  function getTeamInSlack(_x, _x2) {
47
126
  return _getTeamInSlack.apply(this, arguments);
@@ -51,20 +130,23 @@ export var TeamsInSlackClient = /*#__PURE__*/function (_RestClient) {
51
130
  }, {
52
131
  key: "disconnectTeamInSlack",
53
132
  value: function () {
54
- var _disconnectTeamInSlack = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(teamId) {
55
- return _regeneratorRuntime.wrap(function (_context2) {
56
- while (1) switch (_context2.prev = _context2.next) {
133
+ var _disconnectTeamInSlack = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(teamId) {
134
+ return _regeneratorRuntime.wrap(function (_context3) {
135
+ while (1) switch (_context3.prev = _context3.next) {
57
136
  case 0:
58
- return _context2.abrupt("return", this.deleteResource("/".concat(teamId)).then(function (response) {
137
+ _context3.next = 1;
138
+ return this.ensureStaffyAuth();
139
+ case 1:
140
+ return _context3.abrupt("return", this.deleteResource("/".concat(teamId)).then(function (response) {
59
141
  return _objectSpread({
60
142
  id: teamId
61
143
  }, response);
62
144
  }));
63
- case 1:
145
+ case 2:
64
146
  case "end":
65
- return _context2.stop();
147
+ return _context3.stop();
66
148
  }
67
- }, _callee2, this);
149
+ }, _callee3, this);
68
150
  }));
69
151
  function disconnectTeamInSlack(_x3) {
70
152
  return _disconnectTeamInSlack.apply(this, arguments);
@@ -74,20 +156,23 @@ export var TeamsInSlackClient = /*#__PURE__*/function (_RestClient) {
74
156
  }, {
75
157
  key: "updateTeamInSlack",
76
158
  value: function () {
77
- var _updateTeamInSlack = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(teamId, channelId, usergroupHandle) {
78
- return _regeneratorRuntime.wrap(function (_context3) {
79
- while (1) switch (_context3.prev = _context3.next) {
159
+ var _updateTeamInSlack = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(teamId, channelId, usergroupHandle) {
160
+ return _regeneratorRuntime.wrap(function (_context4) {
161
+ while (1) switch (_context4.prev = _context4.next) {
80
162
  case 0:
81
- return _context3.abrupt("return", this.postResource("/".concat(teamId, "?channel=").concat(channelId, "&groupName=").concat(usergroupHandle)).then(function (response) {
163
+ _context4.next = 1;
164
+ return this.ensureStaffyAuth();
165
+ case 1:
166
+ return _context4.abrupt("return", this.postResource("/".concat(teamId, "?channel=").concat(channelId, "&groupName=").concat(usergroupHandle)).then(function (response) {
82
167
  return _objectSpread({
83
168
  id: teamId
84
169
  }, response);
85
170
  }));
86
- case 1:
171
+ case 2:
87
172
  case "end":
88
- return _context3.stop();
173
+ return _context4.stop();
89
174
  }
90
- }, _callee3, this);
175
+ }, _callee4, this);
91
176
  }));
92
177
  function updateTeamInSlack(_x4, _x5, _x6) {
93
178
  return _updateTeamInSlack.apply(this, arguments);
@@ -1,17 +1,7 @@
1
- /* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
2
-
3
1
  export var ErrorCategory = /*#__PURE__*/function (ErrorCategory) {
4
2
  ErrorCategory["NotFound"] = "NotFound";
5
3
  ErrorCategory["NotPermitted"] = "NotPermitted";
6
4
  ErrorCategory["MalformedInput"] = "MalformedInput";
7
5
  ErrorCategory["Internal"] = "Internal";
8
6
  return ErrorCategory;
9
- }({});
10
- /**
11
- * @deprecated Use `import { ActualGraphQLError } from '@atlaskit/teams-client/actual-graph-ql-error'` instead.
12
- */
13
- export { ActualGraphQLError } from './ActualGraphQLError';
14
- /**
15
- * @deprecated Use `import { UseQueryLightError } from '@atlaskit/teams-client/use-query-light-error'` instead.
16
- */
17
- export { UseQueryLightError } from './UseQueryLightError';
7
+ }({});
@@ -36,39 +36,4 @@ export interface ErrorData {
36
36
  message: string;
37
37
  fields?: FieldError[];
38
38
  }
39
- /**
40
- * @deprecated Use `import { isAuthError } from '@atlaskit/teams-client/is-auth-error'` instead.
41
- */
42
- export { isAuthError } from './isAuthError';
43
- /**
44
- * @deprecated Use `import { isErrorStatusCode } from '@atlaskit/teams-client/is-error-status-code'` instead.
45
- */
46
- export { isErrorStatusCode } from './isErrorStatusCode';
47
- /**
48
- * @deprecated Use `import { doesErrorContainStatus } from '@atlaskit/teams-client/does-error-contain-status'` instead.
49
- */
50
- export { doesErrorContainStatus } from './doesErrorContainStatus';
51
- /**
52
- * @deprecated Use `import { DefaultError } from '@atlaskit/teams-client/default-error'` instead.
53
- */
54
- export { DefaultError } from './DefaultError';
55
- /**
56
- * @deprecated Use `import { SLOIgnoreError } from '@atlaskit/teams-client/slo-ignore-error'` instead.
57
- */
58
- export { SLOIgnoreError } from './SLOIgnoreError';
59
- /**
60
- * @deprecated Use `import { HttpError } from '@atlaskit/teams-client/http-error'` instead.
61
- */
62
- export { HttpError } from './HttpError';
63
- /**
64
- * @deprecated Use `import { SLOIgnoreHttpError } from '@atlaskit/teams-client/slo-ignore-http-error'` instead.
65
- */
66
- export { SLOIgnoreHttpError } from './SLOIgnoreHttpError';
67
- /**
68
- * @deprecated Use `import { GraphQLError } from '@atlaskit/teams-client/graph-ql-error'` instead.
69
- */
70
- export { GraphQLError } from './GraphQLError';
71
- /**
72
- * @deprecated Use `import { isNetworkError } from '@atlaskit/teams-client/is-network-error'` instead.
73
- */
74
- export { isNetworkError } from './isNetworkError';
39
+ export {};
@@ -5,11 +5,3 @@ import { type TeamAction, type TeamPermissions } from './types';
5
5
  * @deprecated use import { userCan } from '@atlassian/teams-app-internal-user-permissions';
6
6
  */
7
7
  export declare function hasPermission(action: TeamAction, settings: TeamMembershipSettings, permission: TeamPermission | undefined, isPeopleBrowseEnabled: boolean, currentUserMembership: TeamMembership | undefined, teamVisibilityPermissions?: TeamPermissions, source?: ExternalReferenceSource, state?: TeamState): boolean;
8
- /**
9
- * @deprecated Use `import { hasPermissionForAction } from '@atlaskit/teams-client/has-permission-for-action'` instead.
10
- */
11
- export { hasPermissionForAction } from './has-permission-for-action';
12
- /**
13
- * @deprecated Use `import { userCan } from '@atlaskit/teams-client/user-can'` instead.
14
- */
15
- export { userCan } from './user-can';
@@ -1,7 +1,7 @@
1
1
  import type FakerType from 'faker';
2
- import type { Team, TeamWithImageUrls } from '../types/team';
3
- import type { TeamWithMemberships } from '../types/membership';
4
2
  import type { TeamLink } from '../types/links';
3
+ import type { TeamWithMemberships } from '../types/membership';
4
+ import type { Team, TeamWithImageUrls } from '../types/team';
5
5
  type MockConfig = {
6
6
  faker: typeof FakerType;
7
7
  };
@@ -1,11 +1,11 @@
1
- import { type MembershipState, type TeamMembership, type TeamWithMemberships } from '../../types/membership';
2
1
  import { type TeamAgentAssociation } from '../../types/association';
2
+ import { type MembershipState, type TeamMembership, type TeamWithMemberships } from '../../types/membership';
3
3
  import { type ClientConfig } from '../base-client';
4
4
  import { BaseGraphQlClient } from '../graphql-client/main';
5
+ import { type TeamContainers } from './TeamContainers';
5
6
  import { type AGGPageInfoVariables, type ResultWithPageInfo } from './types';
6
7
  import { type UnlinkContainerMutationResponse } from './utils/mutations/unlink-container-mutation';
7
8
  import { type TeamsUserQueryResponse } from './utils/queries/user-query';
8
- import { type TeamContainers } from './TeamContainers';
9
9
  export declare class AGGClient extends BaseGraphQlClient {
10
10
  constructor(baseUrl: string, config: ClientConfig);
11
11
  setBaseUrl(baseUrl: string): void;
@@ -20,7 +20,3 @@ export declare class AGGClient extends BaseGraphQlClient {
20
20
  queryTeamsConnectedToContainer(containerId: string): Promise<TeamWithMemberships[]>;
21
21
  }
22
22
  export declare const aggClient: AGGClient;
23
- /**
24
- * @deprecated Use `import type { TeamContainers } from '@atlaskit/teams-client/team-containers'` instead.
25
- */
26
- export type { TeamContainers } from './TeamContainers';