@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.
- package/CHANGELOG.md +36 -0
- package/dist/cjs/common/utils/error/isAuthError.js +1 -1
- package/dist/cjs/common/utils/ufo/index.js +2 -2
- package/dist/cjs/index.js +19 -12
- package/dist/cjs/services/base-client/index.js +2 -2
- package/dist/cjs/services/constants.js +2 -1
- package/dist/cjs/services/invitations-client/InvitationsClient.js +1 -1
- package/dist/cjs/services/sentry/utils/get-sentry-config.js +1 -1
- package/dist/cjs/services/teams-in-slack-client/TeamsInSlackClient.js +110 -22
- package/dist/cjs/services/use-query-light/useQueryLight.js +3 -3
- package/dist/es2019/common/utils/ari.js +1 -0
- package/dist/es2019/common/utils/error/index.js +1 -0
- package/dist/es2019/common/utils/error/isAuthError.js +1 -1
- package/dist/es2019/common/utils/index.js +1 -0
- package/dist/es2019/common/utils/permissions/index.js +1 -0
- package/dist/es2019/common/utils/team.js +1 -0
- package/dist/es2019/common/utils/ufo/index.js +2 -2
- package/dist/es2019/index.js +10 -3
- package/dist/es2019/mocks/endpoints.js +1 -0
- package/dist/es2019/mocks/generate-data.js +1 -0
- package/dist/es2019/mocks/index.js +1 -0
- package/dist/es2019/services/agg-client/index.js +1 -0
- package/dist/es2019/services/base-client/index.js +1 -1
- package/dist/es2019/services/constants.js +2 -1
- package/dist/es2019/services/hooks/use-teams-client-setup.js +1 -0
- package/dist/es2019/services/invitations-client/InvitationsClient.js +1 -1
- package/dist/es2019/services/public-api-client/index.js +1 -0
- package/dist/es2019/services/sentry/index.js +1 -0
- package/dist/es2019/services/sentry/main.js +1 -0
- package/dist/es2019/services/sentry/utils/get-sentry-config.js +1 -1
- package/dist/es2019/services/teams-in-slack-client/TeamsInSlackClient.js +51 -1
- package/dist/es2019/services/use-query-light/index.js +1 -0
- package/dist/es2019/services/use-query-light/main.js +1 -0
- package/dist/es2019/services/use-query-light/useQueryLight.js +1 -1
- package/dist/esm/common/utils/ari.js +1 -0
- package/dist/esm/common/utils/error/index.js +1 -0
- package/dist/esm/common/utils/error/isAuthError.js +1 -1
- package/dist/esm/common/utils/index.js +1 -0
- package/dist/esm/common/utils/permissions/index.js +1 -0
- package/dist/esm/common/utils/team.js +1 -0
- package/dist/esm/common/utils/ufo/index.js +2 -2
- package/dist/esm/index.js +10 -3
- package/dist/esm/mocks/endpoints.js +1 -0
- package/dist/esm/mocks/generate-data.js +1 -0
- package/dist/esm/mocks/index.js +1 -0
- package/dist/esm/services/agg-client/index.js +1 -0
- package/dist/esm/services/base-client/index.js +1 -1
- package/dist/esm/services/constants.js +2 -1
- package/dist/esm/services/hooks/use-teams-client-setup.js +1 -0
- package/dist/esm/services/invitations-client/InvitationsClient.js +1 -1
- package/dist/esm/services/public-api-client/index.js +1 -0
- package/dist/esm/services/sentry/index.js +1 -0
- package/dist/esm/services/sentry/main.js +1 -0
- package/dist/esm/services/sentry/utils/get-sentry-config.js +1 -1
- package/dist/esm/services/teams-in-slack-client/TeamsInSlackClient.js +110 -22
- package/dist/esm/services/use-query-light/index.js +1 -0
- package/dist/esm/services/use-query-light/main.js +1 -0
- package/dist/esm/services/use-query-light/useQueryLight.js +1 -1
- package/dist/types/common/utils/is-invited.d.ts +1 -1
- package/dist/types/common/utils/is-member.d.ts +1 -1
- package/dist/types/common/utils/is-non-member.d.ts +1 -1
- package/dist/types/common/utils/is-requesting-join.d.ts +1 -1
- package/dist/types/common/utils/sort-teams.d.ts +1 -1
- package/dist/types/index.d.ts +13 -5
- package/dist/types/mocks/fixed-team-memberships.d.ts +1 -1
- package/dist/types/mocks/random-returned-new-team-data.d.ts +1 -1
- package/dist/types/mocks/random-team-membership.d.ts +1 -1
- package/dist/types/mocks/random-team-memberships.d.ts +1 -1
- package/dist/types/mocks/responses.d.ts +1 -1
- package/dist/types/mocks/team-link.d.ts +1 -1
- package/dist/types/mocks/with-faker.d.ts +3 -1
- package/dist/types/services/agg-client/index.d.ts +3 -2
- package/dist/types/services/agg-client/utils/queries/team-membership-query.d.ts +1 -1
- package/dist/types/services/constants.d.ts +1 -1
- package/dist/types/services/directory-client/index.d.ts +1 -1
- package/dist/types/services/identity-client/IdentityClient.d.ts +1 -1
- package/dist/types/services/legion-client/index.d.ts +4 -2
- package/dist/types/services/main.d.ts +4 -2
- package/dist/types/services/public-api-client/PublicApiClient.d.ts +1 -1
- package/dist/types/services/teams-in-slack-client/TeamsInSlackClient.d.ts +20 -21
- package/dist/types/types/config.d.ts +1 -0
- package/package.json +6 -36
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# @atlaskit/teams-client
|
|
2
2
|
|
|
3
|
+
## 5.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`5b39d8c208f0f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/5b39d8c208f0f) -
|
|
8
|
+
Migrate `TeamsInSlackClient` to Staffy Global Edge URL with staff auth handling.
|
|
9
|
+
|
|
10
|
+
When `ptc-onboard-teams-slack-app-to-global-edge-url` is ON, all `/api/team/{teamId}` calls (GET,
|
|
11
|
+
POST, DELETE) are routed to `https://teams-slack-app.services.atlassian.com` instead of the
|
|
12
|
+
Stargate path `/gateway/api/teamsslack/api/team`.
|
|
13
|
+
|
|
14
|
+
To handle the case where the user has no Staffy SST cookie (which would cause a silent fetch
|
|
15
|
+
failure due to a `302 → Okta` redirect being followed inside `fetch()`), a pre-flight
|
|
16
|
+
`GET /api/authping` probe is made before each call. If the probe fails, the client performs a
|
|
17
|
+
top-level `window.location.assign()` to `/staffy/login?return_to=<current URL>` so the browser
|
|
18
|
+
completes the Okta SSO flow and sets the SST cookie before retrying. An in-memory flag prevents
|
|
19
|
+
infinite redirect loops.
|
|
20
|
+
|
|
21
|
+
Falls back to Stargate when the gate is OFF. No changes to `RestClient` or any other client.
|
|
22
|
+
|
|
23
|
+
Also adds `teamsInSlackServiceUrl` to `TeamsClientConfig` to allow per-environment URL overrides.
|
|
24
|
+
|
|
25
|
+
## 5.5.0
|
|
26
|
+
|
|
27
|
+
### Minor Changes
|
|
28
|
+
|
|
29
|
+
- [`04c2bee47b7d0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/04c2bee47b7d0) -
|
|
30
|
+
Migrate `TeamsInSlackClient` to use the Staffy Global Edge URL behind the feature gate
|
|
31
|
+
`ptc-onboard-teams-slack-app-to-global-edge-url`.
|
|
32
|
+
|
|
33
|
+
When the gate is enabled, all `/api/team/{teamId}` calls (GET, POST, DELETE) are routed to
|
|
34
|
+
`https://teams-slack-app.services.atlassian.com` instead of the Stargate path
|
|
35
|
+
`/gateway/api/teamsslack/api/team`. Falls back to Stargate when the gate is off.
|
|
36
|
+
|
|
37
|
+
Also adds `teamsInSlackServiceUrl` to `TeamsClientConfig` to allow per-environment URL overrides.
|
|
38
|
+
|
|
3
39
|
## 5.4.0
|
|
4
40
|
|
|
5
41
|
### Minor Changes
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.isAuthError = isAuthError;
|
|
7
|
-
var _isErrorStatusCode = require("./isErrorStatusCode");
|
|
8
7
|
var _index = require("./index");
|
|
8
|
+
var _isErrorStatusCode = require("./isErrorStatusCode");
|
|
9
9
|
function isAuthError(error) {
|
|
10
10
|
return (0, _isErrorStatusCode.isErrorStatusCode)(_index.StatusCode.UNAUTHORIZED, error) || (0, _isErrorStatusCode.isErrorStatusCode)(_index.StatusCode.FORBIDDEN, error);
|
|
11
11
|
}
|
|
@@ -56,7 +56,7 @@ var TeamsUFOExperience = exports.TeamsUFOExperience = /*#__PURE__*/function (_UF
|
|
|
56
56
|
return _superPropGet(TeamsUFOExperience, "failure", this, 3)([{
|
|
57
57
|
metadata: {
|
|
58
58
|
error: (0, _createErrorMetadata.createErrorMetadata)(error),
|
|
59
|
-
packageVersion: "5.
|
|
59
|
+
packageVersion: "5.5.0",
|
|
60
60
|
packageName: "@atlaskit/teams-client"
|
|
61
61
|
}
|
|
62
62
|
}]);
|
|
@@ -64,7 +64,7 @@ var TeamsUFOExperience = exports.TeamsUFOExperience = /*#__PURE__*/function (_UF
|
|
|
64
64
|
return _superPropGet(TeamsUFOExperience, "failure", this, 3)([{
|
|
65
65
|
metadata: {
|
|
66
66
|
error: 'unknown error',
|
|
67
|
-
packageVersion: "5.
|
|
67
|
+
packageVersion: "5.5.0",
|
|
68
68
|
packageName: "@atlaskit/teams-client"
|
|
69
69
|
}
|
|
70
70
|
}]);
|
package/dist/cjs/index.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
Object.defineProperty(exports, "AllTeamActions", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function get() {
|
|
9
|
-
return
|
|
9
|
+
return _types.AllTeamActions;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "HttpError", {
|
|
@@ -24,7 +24,7 @@ Object.defineProperty(exports, "TeamsClient", {
|
|
|
24
24
|
Object.defineProperty(exports, "UseQueryLightError", {
|
|
25
25
|
enumerable: true,
|
|
26
26
|
get: function get() {
|
|
27
|
-
return
|
|
27
|
+
return _UseQueryLightError.UseQueryLightError;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
30
|
Object.defineProperty(exports, "UserInfoProvider", {
|
|
@@ -36,7 +36,7 @@ Object.defineProperty(exports, "UserInfoProvider", {
|
|
|
36
36
|
Object.defineProperty(exports, "hasPermission", {
|
|
37
37
|
enumerable: true,
|
|
38
38
|
get: function get() {
|
|
39
|
-
return
|
|
39
|
+
return _hasPermission.hasPermission;
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
42
|
Object.defineProperty(exports, "initialiseSentry", {
|
|
@@ -48,25 +48,25 @@ Object.defineProperty(exports, "initialiseSentry", {
|
|
|
48
48
|
Object.defineProperty(exports, "isInvited", {
|
|
49
49
|
enumerable: true,
|
|
50
50
|
get: function get() {
|
|
51
|
-
return
|
|
51
|
+
return _isInvited.isInvited;
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
54
|
Object.defineProperty(exports, "isMember", {
|
|
55
55
|
enumerable: true,
|
|
56
56
|
get: function get() {
|
|
57
|
-
return
|
|
57
|
+
return _isMember.isMember;
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
60
|
Object.defineProperty(exports, "isNonMember", {
|
|
61
61
|
enumerable: true,
|
|
62
62
|
get: function get() {
|
|
63
|
-
return
|
|
63
|
+
return _isNonMember.isNonMember;
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
66
|
Object.defineProperty(exports, "isRequestingJoin", {
|
|
67
67
|
enumerable: true,
|
|
68
68
|
get: function get() {
|
|
69
|
-
return
|
|
69
|
+
return _isRequestingJoin.isRequestingJoin;
|
|
70
70
|
}
|
|
71
71
|
});
|
|
72
72
|
Object.defineProperty(exports, "isTeamMembershipWithUser", {
|
|
@@ -90,7 +90,7 @@ Object.defineProperty(exports, "logInfoMessage", {
|
|
|
90
90
|
Object.defineProperty(exports, "sortMembersByType", {
|
|
91
91
|
enumerable: true,
|
|
92
92
|
get: function get() {
|
|
93
|
-
return
|
|
93
|
+
return _sortTeams.sortMembersByType;
|
|
94
94
|
}
|
|
95
95
|
});
|
|
96
96
|
Object.defineProperty(exports, "teamsClient", {
|
|
@@ -126,7 +126,7 @@ Object.defineProperty(exports, "toUserId", {
|
|
|
126
126
|
Object.defineProperty(exports, "useLazyQueryLight", {
|
|
127
127
|
enumerable: true,
|
|
128
128
|
get: function get() {
|
|
129
|
-
return
|
|
129
|
+
return _useLazyQueryLight.useLazyQueryLight;
|
|
130
130
|
}
|
|
131
131
|
});
|
|
132
132
|
Object.defineProperty(exports, "useQueryLight", {
|
|
@@ -158,14 +158,21 @@ var _membership = require("./types/membership");
|
|
|
158
158
|
var _main = require("./services/main");
|
|
159
159
|
var _useTeamsClientSetupNext = require("./services/hooks/use-teams-client-setup-next");
|
|
160
160
|
var _useTeamsClientSetup = require("./services/hooks/use-teams-client-setup");
|
|
161
|
-
var
|
|
161
|
+
var _types = require("./common/utils/permissions/types");
|
|
162
|
+
var _hasPermission = require("./common/utils/permissions/has-permission");
|
|
162
163
|
var _initialiseSentry = require("./services/sentry/utils/initialise-sentry");
|
|
163
164
|
var _logException = require("./services/sentry/logException");
|
|
164
165
|
var _logInfoMessage = require("./services/sentry/logInfoMessage");
|
|
165
166
|
var _main2 = require("./services/user-info-provider/main");
|
|
166
|
-
var
|
|
167
|
+
var _sortTeams = require("./common/utils/sort-teams");
|
|
168
|
+
var _isInvited = require("./common/utils/is-invited");
|
|
169
|
+
var _isMember = require("./common/utils/is-member");
|
|
170
|
+
var _isNonMember = require("./common/utils/is-non-member");
|
|
171
|
+
var _isRequestingJoin = require("./common/utils/is-requesting-join");
|
|
167
172
|
var _toTeamAri = require("./common/utils/to-team-ari");
|
|
168
173
|
var _toTeamId = require("./common/utils/to-team-id");
|
|
169
174
|
var _toUserAri = require("./common/utils/to-user-ari");
|
|
170
175
|
var _toUserId = require("./common/utils/to-user-id");
|
|
171
|
-
var
|
|
176
|
+
var _useLazyQueryLight = require("./services/use-query-light/useLazyQueryLight");
|
|
177
|
+
var _useQueryLight = require("./services/use-query-light/useQueryLight");
|
|
178
|
+
var _UseQueryLightError = require("./services/use-query-light/UseQueryLightError");
|
|
@@ -8,7 +8,7 @@ exports.BaseClient = void 0;
|
|
|
8
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
var
|
|
11
|
+
var _logException = require("../sentry/logException");
|
|
12
12
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
13
|
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) { (0, _defineProperty2.default)(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; }
|
|
14
14
|
var BaseClient = exports.BaseClient = /*#__PURE__*/function () {
|
|
@@ -17,7 +17,7 @@ var BaseClient = exports.BaseClient = /*#__PURE__*/function () {
|
|
|
17
17
|
(0, _classCallCheck2.default)(this, BaseClient);
|
|
18
18
|
(0, _defineProperty2.default)(this, "cache", {});
|
|
19
19
|
(0, _defineProperty2.default)(this, "logException", function (ex, name, context) {
|
|
20
|
-
(0,
|
|
20
|
+
(0, _logException.logException)(ex, name, context);
|
|
21
21
|
_this.config.logException(ex, name, context);
|
|
22
22
|
});
|
|
23
23
|
this.config = config;
|
|
@@ -9,5 +9,6 @@ var DEFAULT_CONFIG = exports.DEFAULT_CONFIG = {
|
|
|
9
9
|
permsServiceUrl: '/gateway/api/permissions',
|
|
10
10
|
publicApiRoot: '/gateway/api/public',
|
|
11
11
|
invitationsServiceUrl: '/gateway/api/invitations',
|
|
12
|
-
collaborationGraphUrl: '/gateway/api/collaboration'
|
|
12
|
+
collaborationGraphUrl: '/gateway/api/collaboration',
|
|
13
|
+
teamsInSlackServiceUrl: 'https://teams-slack-app.services.atlassian.com/api/team'
|
|
13
14
|
};
|
|
@@ -13,8 +13,8 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
13
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
15
|
var _restClient = require("../rest-client");
|
|
16
|
-
var _utils = require("./utils");
|
|
17
16
|
var _index = require("./index");
|
|
17
|
+
var _utils = require("./utils");
|
|
18
18
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
19
19
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
20
20
|
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'];
|
|
@@ -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("5.
|
|
39
|
+
release: "".concat("@atlaskit/teams-client", "@").concat("5.5.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) || '---',
|
|
@@ -13,39 +13,121 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
13
13
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
14
14
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
15
15
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
16
|
+
var _fg = require("@atlaskit/platform-feature-flags/fg");
|
|
17
|
+
var _SLOIgnoreError = require("../../common/utils/error/SLOIgnoreError");
|
|
16
18
|
var _constants = require("../constants");
|
|
17
19
|
var _restClient = require("../rest-client");
|
|
20
|
+
var _redirectCount = require("../rest-client/utils/redirect-count");
|
|
18
21
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
19
22
|
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) { (0, _defineProperty2.default)(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; }
|
|
20
23
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
21
24
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
25
|
+
var GLOBAL_EDGE_ORIGIN = new URL(_constants.DEFAULT_CONFIG.teamsInSlackServiceUrl).origin;
|
|
22
26
|
var defaultConfig = {
|
|
23
|
-
serviceUrl
|
|
27
|
+
get serviceUrl() {
|
|
28
|
+
return (0, _fg.fg)('ptc-onboard-teams-slack-app-to-global-edge-url') ? _constants.DEFAULT_CONFIG.teamsInSlackServiceUrl : "".concat(_constants.DEFAULT_CONFIG.stargateRoot, "/teamsslack/api/team");
|
|
29
|
+
}
|
|
24
30
|
};
|
|
31
|
+
|
|
32
|
+
// Shared in-flight probe: concurrent callers coalesce onto one fetch rather
|
|
33
|
+
// than each firing their own and racing on the flag.
|
|
34
|
+
var staffyAuthProbe = null;
|
|
35
|
+
|
|
36
|
+
// Prevents an infinite redirect loop if Okta completes but auth still fails.
|
|
37
|
+
// Resets on full page reload — correct, since a reload after login should retry.
|
|
38
|
+
var staffyAuthAttempted = false;
|
|
25
39
|
var TeamsInSlackClient = exports.TeamsInSlackClient = /*#__PURE__*/function (_RestClient) {
|
|
26
40
|
function TeamsInSlackClient() {
|
|
27
41
|
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
28
42
|
(0, _classCallCheck2.default)(this, TeamsInSlackClient);
|
|
29
43
|
return _callSuper(this, TeamsInSlackClient, [_objectSpread(_objectSpread({}, defaultConfig), config)]);
|
|
30
44
|
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Pre-flight auth probe for Staffy Global Edge calls (COMMIT-27483).
|
|
48
|
+
* Fetches /api/authping with credentials:'include'. On failure (302→Okta),
|
|
49
|
+
* navigates to /staffy/login?return_to=<current URL> for top-level Okta SSO.
|
|
50
|
+
* No-op when the gate is OFF (Stargate path).
|
|
51
|
+
*/
|
|
31
52
|
(0, _inherits2.default)(TeamsInSlackClient, _RestClient);
|
|
32
53
|
return (0, _createClass2.default)(TeamsInSlackClient, [{
|
|
33
|
-
key: "
|
|
34
|
-
value: function () {
|
|
35
|
-
var
|
|
54
|
+
key: "ensureStaffyAuth",
|
|
55
|
+
value: (function () {
|
|
56
|
+
var _ensureStaffyAuth = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
57
|
+
var authenticated, returnTo;
|
|
36
58
|
return _regenerator.default.wrap(function (_context) {
|
|
37
59
|
while (1) switch (_context.prev = _context.next) {
|
|
38
60
|
case 0:
|
|
39
|
-
|
|
61
|
+
if ((0, _fg.fg)('ptc-onboard-teams-slack-app-to-global-edge-url')) {
|
|
62
|
+
_context.next = 1;
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
return _context.abrupt("return");
|
|
66
|
+
case 1:
|
|
67
|
+
staffyAuthProbe !== null && staffyAuthProbe !== void 0 ? staffyAuthProbe : staffyAuthProbe = fetch("".concat(GLOBAL_EDGE_ORIGIN, "/api/authping"), {
|
|
68
|
+
credentials: 'include'
|
|
69
|
+
}).then(function (r) {
|
|
70
|
+
return r.ok;
|
|
71
|
+
}).catch(function () {
|
|
72
|
+
return false;
|
|
73
|
+
}).finally(function () {
|
|
74
|
+
staffyAuthProbe = null;
|
|
75
|
+
});
|
|
76
|
+
_context.next = 2;
|
|
77
|
+
return staffyAuthProbe;
|
|
78
|
+
case 2:
|
|
79
|
+
authenticated = _context.sent;
|
|
80
|
+
if (!authenticated) {
|
|
81
|
+
_context.next = 3;
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
staffyAuthAttempted = false;
|
|
85
|
+
return _context.abrupt("return");
|
|
86
|
+
case 3:
|
|
87
|
+
if (!staffyAuthAttempted) {
|
|
88
|
+
_context.next = 4;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
return _context.abrupt("return");
|
|
92
|
+
case 4:
|
|
93
|
+
staffyAuthAttempted = true;
|
|
94
|
+
_redirectCount.redirectCount.increment();
|
|
95
|
+
returnTo = encodeURIComponent(window.location.href);
|
|
96
|
+
window.location.assign("".concat(GLOBAL_EDGE_ORIGIN, "/staffy/login?return_to=").concat(returnTo));
|
|
97
|
+
throw new _SLOIgnoreError.SLOIgnoreError({
|
|
98
|
+
message: 'Redirecting to Staffy login'
|
|
99
|
+
});
|
|
100
|
+
case 5:
|
|
101
|
+
case "end":
|
|
102
|
+
return _context.stop();
|
|
103
|
+
}
|
|
104
|
+
}, _callee);
|
|
105
|
+
}));
|
|
106
|
+
function ensureStaffyAuth() {
|
|
107
|
+
return _ensureStaffyAuth.apply(this, arguments);
|
|
108
|
+
}
|
|
109
|
+
return ensureStaffyAuth;
|
|
110
|
+
}())
|
|
111
|
+
}, {
|
|
112
|
+
key: "getTeamInSlack",
|
|
113
|
+
value: function () {
|
|
114
|
+
var _getTeamInSlack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(teamId, teamName) {
|
|
115
|
+
return _regenerator.default.wrap(function (_context2) {
|
|
116
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
117
|
+
case 0:
|
|
118
|
+
_context2.next = 1;
|
|
119
|
+
return this.ensureStaffyAuth();
|
|
120
|
+
case 1:
|
|
121
|
+
return _context2.abrupt("return", this.getResource("/".concat(teamId, "?teamName=").concat(encodeURIComponent(teamName))).then(function (response) {
|
|
40
122
|
return _objectSpread({
|
|
41
123
|
id: teamId
|
|
42
124
|
}, response);
|
|
43
125
|
}));
|
|
44
|
-
case
|
|
126
|
+
case 2:
|
|
45
127
|
case "end":
|
|
46
|
-
return
|
|
128
|
+
return _context2.stop();
|
|
47
129
|
}
|
|
48
|
-
},
|
|
130
|
+
}, _callee2, this);
|
|
49
131
|
}));
|
|
50
132
|
function getTeamInSlack(_x, _x2) {
|
|
51
133
|
return _getTeamInSlack.apply(this, arguments);
|
|
@@ -55,20 +137,23 @@ var TeamsInSlackClient = exports.TeamsInSlackClient = /*#__PURE__*/function (_Re
|
|
|
55
137
|
}, {
|
|
56
138
|
key: "disconnectTeamInSlack",
|
|
57
139
|
value: function () {
|
|
58
|
-
var _disconnectTeamInSlack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
59
|
-
return _regenerator.default.wrap(function (
|
|
60
|
-
while (1) switch (
|
|
140
|
+
var _disconnectTeamInSlack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(teamId) {
|
|
141
|
+
return _regenerator.default.wrap(function (_context3) {
|
|
142
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
61
143
|
case 0:
|
|
62
|
-
|
|
144
|
+
_context3.next = 1;
|
|
145
|
+
return this.ensureStaffyAuth();
|
|
146
|
+
case 1:
|
|
147
|
+
return _context3.abrupt("return", this.deleteResource("/".concat(teamId)).then(function (response) {
|
|
63
148
|
return _objectSpread({
|
|
64
149
|
id: teamId
|
|
65
150
|
}, response);
|
|
66
151
|
}));
|
|
67
|
-
case
|
|
152
|
+
case 2:
|
|
68
153
|
case "end":
|
|
69
|
-
return
|
|
154
|
+
return _context3.stop();
|
|
70
155
|
}
|
|
71
|
-
},
|
|
156
|
+
}, _callee3, this);
|
|
72
157
|
}));
|
|
73
158
|
function disconnectTeamInSlack(_x3) {
|
|
74
159
|
return _disconnectTeamInSlack.apply(this, arguments);
|
|
@@ -78,20 +163,23 @@ var TeamsInSlackClient = exports.TeamsInSlackClient = /*#__PURE__*/function (_Re
|
|
|
78
163
|
}, {
|
|
79
164
|
key: "updateTeamInSlack",
|
|
80
165
|
value: function () {
|
|
81
|
-
var _updateTeamInSlack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
82
|
-
return _regenerator.default.wrap(function (
|
|
83
|
-
while (1) switch (
|
|
166
|
+
var _updateTeamInSlack = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(teamId, channelId, usergroupHandle) {
|
|
167
|
+
return _regenerator.default.wrap(function (_context4) {
|
|
168
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
84
169
|
case 0:
|
|
85
|
-
|
|
170
|
+
_context4.next = 1;
|
|
171
|
+
return this.ensureStaffyAuth();
|
|
172
|
+
case 1:
|
|
173
|
+
return _context4.abrupt("return", this.postResource("/".concat(teamId, "?channel=").concat(channelId, "&groupName=").concat(usergroupHandle)).then(function (response) {
|
|
86
174
|
return _objectSpread({
|
|
87
175
|
id: teamId
|
|
88
176
|
}, response);
|
|
89
177
|
}));
|
|
90
|
-
case
|
|
178
|
+
case 2:
|
|
91
179
|
case "end":
|
|
92
|
-
return
|
|
180
|
+
return _context4.stop();
|
|
93
181
|
}
|
|
94
|
-
},
|
|
182
|
+
}, _callee4, this);
|
|
95
183
|
}));
|
|
96
184
|
function updateTeamInSlack(_x4, _x5, _x6) {
|
|
97
185
|
return _updateTeamInSlack.apply(this, arguments);
|
|
@@ -13,7 +13,7 @@ var _react = require("react");
|
|
|
13
13
|
var _graphql = require("graphql");
|
|
14
14
|
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
15
15
|
var _http = require("../../common/utils/http");
|
|
16
|
-
var
|
|
16
|
+
var _logException = require("../sentry/logException");
|
|
17
17
|
var _UseQueryLightError = require("./UseQueryLightError");
|
|
18
18
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
19
19
|
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) { (0, _defineProperty2.default)(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; }
|
|
@@ -108,7 +108,7 @@ var useQueryLight = exports.useQueryLight = function useQueryLight(query, option
|
|
|
108
108
|
setError(transformError({
|
|
109
109
|
error: new Error('Unknown error')
|
|
110
110
|
}));
|
|
111
|
-
(0,
|
|
111
|
+
(0, _logException.logException)(_t, "useQueryLight - ".concat(options.operationName));
|
|
112
112
|
}
|
|
113
113
|
setData(undefined);
|
|
114
114
|
setLoading(false);
|
|
@@ -178,7 +178,7 @@ var useQueryLight = exports.useQueryLight = function useQueryLight(query, option
|
|
|
178
178
|
setError(transformError({
|
|
179
179
|
error: new Error('Unknown error')
|
|
180
180
|
}));
|
|
181
|
-
(0,
|
|
181
|
+
(0, _logException.logException)(_t2, "useQueryLight fetchMore - ".concat(options.operationName));
|
|
182
182
|
}
|
|
183
183
|
case 7:
|
|
184
184
|
case "end":
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
|
|
2
|
+
|
|
2
3
|
export let ErrorCategory = /*#__PURE__*/function (ErrorCategory) {
|
|
3
4
|
ErrorCategory["NotFound"] = "NotFound";
|
|
4
5
|
ErrorCategory["NotPermitted"] = "NotPermitted";
|
|
@@ -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
|
}
|
|
@@ -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.
|
|
@@ -31,7 +31,7 @@ export class TeamsUFOExperience extends UFOExperience {
|
|
|
31
31
|
return super.failure({
|
|
32
32
|
metadata: {
|
|
33
33
|
error: createErrorMetadata(error),
|
|
34
|
-
packageVersion: "5.
|
|
34
|
+
packageVersion: "5.5.0",
|
|
35
35
|
packageName: "@atlaskit/teams-client"
|
|
36
36
|
}
|
|
37
37
|
});
|
|
@@ -39,7 +39,7 @@ export class TeamsUFOExperience extends UFOExperience {
|
|
|
39
39
|
return super.failure({
|
|
40
40
|
metadata: {
|
|
41
41
|
error: 'unknown error',
|
|
42
|
-
packageVersion: "5.
|
|
42
|
+
packageVersion: "5.5.0",
|
|
43
43
|
packageName: "@atlaskit/teams-client"
|
|
44
44
|
}
|
|
45
45
|
});
|
package/dist/es2019/index.js
CHANGED
|
@@ -7,7 +7,8 @@ export { useTeamsClientSetupNext } from './services/hooks/use-teams-client-setup
|
|
|
7
7
|
export { useTeamsClientSetup } from './services/hooks/use-teams-client-setup';
|
|
8
8
|
|
|
9
9
|
// /permissions
|
|
10
|
-
export { AllTeamActions
|
|
10
|
+
export { AllTeamActions } from './common/utils/permissions/types';
|
|
11
|
+
export { hasPermission } from './common/utils/permissions/has-permission';
|
|
11
12
|
// /sentry
|
|
12
13
|
export { initialiseSentry } from './services/sentry/utils/initialise-sentry';
|
|
13
14
|
export { logException } from './services/sentry/logException';
|
|
@@ -16,9 +17,15 @@ export { logInfoMessage } from './services/sentry/logInfoMessage';
|
|
|
16
17
|
export { userInfoProvider, UserInfoProvider } from './services/user-info-provider/main';
|
|
17
18
|
|
|
18
19
|
// /utils
|
|
19
|
-
export { sortMembersByType
|
|
20
|
+
export { sortMembersByType } from './common/utils/sort-teams';
|
|
21
|
+
export { isInvited } from './common/utils/is-invited';
|
|
22
|
+
export { isMember } from './common/utils/is-member';
|
|
23
|
+
export { isNonMember } from './common/utils/is-non-member';
|
|
24
|
+
export { isRequestingJoin } from './common/utils/is-requesting-join';
|
|
20
25
|
export { toTeamARI } from './common/utils/to-team-ari';
|
|
21
26
|
export { toTeamId } from './common/utils/to-team-id';
|
|
22
27
|
export { toUserARI } from './common/utils/to-user-ari';
|
|
23
28
|
export { toUserId } from './common/utils/to-user-id';
|
|
24
|
-
export { useLazyQueryLight
|
|
29
|
+
export { useLazyQueryLight } from './services/use-query-light/useLazyQueryLight';
|
|
30
|
+
export { useQueryLight } from './services/use-query-light/useQueryLight';
|
|
31
|
+
export { UseQueryLightError } from './services/use-query-light/UseQueryLightError';
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* @deprecated Use `import { mockTeamsClientEndpoints } from '@atlaskit/teams-client/mock-teams-client-endpoints'` instead.
|
|
5
5
|
*/
|
|
6
|
+
|
|
6
7
|
export { mockTeamsClientEndpoints } from './mock-teams-client-endpoints';
|
|
7
8
|
/**
|
|
8
9
|
* @deprecated Use `import { mockTeamsClientRequestingToJoinEndpoints } from '@atlaskit/teams-client/mock-teams-client-requesting-to-join-endpoints'` instead.
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* @deprecated Use `import { randomTeamMembership } from '@atlaskit/teams-client/random-team-membership'` instead.
|
|
5
5
|
*/
|
|
6
|
+
|
|
6
7
|
export { randomTeamMembership } from './random-team-membership';
|
|
7
8
|
/**
|
|
8
9
|
* @deprecated Use `import { randomTeamMemberships } from '@atlaskit/teams-client/random-team-memberships'` instead.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* @deprecated Use `import { mockTeamsClientAdminEndpoints } from '@atlaskit/teams-client/mock-teams-client-admin-endpoints'` instead.
|
|
4
4
|
*/
|
|
5
|
+
|
|
5
6
|
export { mockTeamsClientAdminEndpoints } from './mock-teams-client-admin-endpoints';
|
|
6
7
|
/**
|
|
7
8
|
* @deprecated Use `import { mockTeamsClientEndpoints } from '@atlaskit/teams-client/mock-teams-client-endpoints'` instead.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
|
|
2
|
+
|
|
2
3
|
import { toTeamARI } from '../../common/utils/to-team-ari';
|
|
3
4
|
import { toUserId } from '../../common/utils/to-user-id';
|
|
4
5
|
import { DEFAULT_CONFIG } from '../constants';
|
|
@@ -3,5 +3,6 @@ export const DEFAULT_CONFIG = {
|
|
|
3
3
|
permsServiceUrl: '/gateway/api/permissions',
|
|
4
4
|
publicApiRoot: '/gateway/api/public',
|
|
5
5
|
invitationsServiceUrl: '/gateway/api/invitations',
|
|
6
|
-
collaborationGraphUrl: '/gateway/api/collaboration'
|
|
6
|
+
collaborationGraphUrl: '/gateway/api/collaboration',
|
|
7
|
+
teamsInSlackServiceUrl: 'https://teams-slack-app.services.atlassian.com/api/team'
|
|
7
8
|
};
|
|
@@ -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) {
|
|
@@ -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.
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
/**
|
|
5
5
|
* @deprecated Use `import { logException } from '@atlaskit/teams-client/log-exception'` instead.
|
|
6
6
|
*/
|
|
7
|
+
|
|
7
8
|
export { logException } from './logException';
|
|
8
9
|
/**
|
|
9
10
|
* @deprecated Use `import { logErrorMessage } from '@atlaskit/teams-client/log-error-message'` instead.
|