@atlaskit/teams-public 0.2.0 → 0.3.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 (141) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/common/utils/error/index.js +120 -0
  3. package/dist/cjs/common/utils/get-container-properties.js +2 -12
  4. package/dist/cjs/common/utils/http.js +119 -0
  5. package/dist/cjs/common/utils/status-code-handlers-provider.js +30 -0
  6. package/dist/cjs/common/utils/team-id-to-ari.js +10 -0
  7. package/dist/cjs/controllers/hooks/use-team-containers/index.js +79 -0
  8. package/dist/cjs/controllers/index.js +12 -0
  9. package/dist/cjs/services/agg-client/index.js +79 -0
  10. package/dist/cjs/services/agg-client/mocks/index.js +52 -0
  11. package/dist/cjs/services/agg-client/utils/queries/team-containers-query.js +12 -0
  12. package/dist/cjs/services/base-client/index.js +92 -0
  13. package/dist/cjs/services/constants.js +9 -0
  14. package/dist/cjs/services/graphql-client/index.js +12 -0
  15. package/dist/cjs/services/graphql-client/main.js +69 -0
  16. package/dist/cjs/services/graphql-client/types.js +5 -0
  17. package/dist/cjs/services/graphql-client/utils/index.js +157 -0
  18. package/dist/cjs/services/index.js +18 -0
  19. package/dist/cjs/services/main.js +72 -0
  20. package/dist/cjs/services/types.js +5 -0
  21. package/dist/cjs/ui/team-containers/add-container-card/index.compiled.css +0 -2
  22. package/dist/cjs/ui/team-containers/add-container-card/index.js +30 -12
  23. package/dist/cjs/ui/team-containers/linked-container-card/index.compiled.css +1 -2
  24. package/dist/cjs/ui/team-containers/linked-container-card/index.js +45 -15
  25. package/dist/cjs/ui/team-containers/main.js +94 -16
  26. package/dist/cjs/ui/team-containers/team-containers-skeleton/index.compiled.css +4 -0
  27. package/dist/cjs/ui/team-containers/team-containers-skeleton/index.js +36 -0
  28. package/dist/cjs/ui/team-containers/team-containers-skeleton/linked-container-card-skeleton/index.compiled.css +14 -0
  29. package/dist/cjs/ui/team-containers/team-containers-skeleton/linked-container-card-skeleton/index.js +38 -0
  30. package/dist/es2019/common/utils/error/index.js +87 -0
  31. package/dist/es2019/common/utils/get-container-properties.js +3 -13
  32. package/dist/es2019/common/utils/http.js +82 -0
  33. package/dist/es2019/common/utils/status-code-handlers-provider.js +25 -0
  34. package/dist/es2019/common/utils/team-id-to-ari.js +2 -0
  35. package/dist/es2019/controllers/hooks/use-team-containers/index.js +45 -0
  36. package/dist/es2019/controllers/index.js +1 -0
  37. package/dist/es2019/services/agg-client/index.js +36 -0
  38. package/dist/es2019/services/agg-client/mocks/index.js +46 -0
  39. package/dist/es2019/services/agg-client/utils/queries/team-containers-query.js +46 -0
  40. package/dist/es2019/services/base-client/index.js +64 -0
  41. package/dist/es2019/services/constants.js +3 -0
  42. package/dist/es2019/services/graphql-client/index.js +1 -0
  43. package/dist/es2019/services/graphql-client/main.js +23 -0
  44. package/dist/es2019/services/graphql-client/types.js +1 -0
  45. package/dist/es2019/services/graphql-client/utils/index.js +76 -0
  46. package/dist/es2019/services/index.js +1 -0
  47. package/dist/es2019/services/main.js +39 -0
  48. package/dist/es2019/services/types.js +1 -0
  49. package/dist/es2019/ui/team-containers/add-container-card/index.compiled.css +0 -2
  50. package/dist/es2019/ui/team-containers/add-container-card/index.js +15 -7
  51. package/dist/es2019/ui/team-containers/linked-container-card/index.compiled.css +1 -2
  52. package/dist/es2019/ui/team-containers/linked-container-card/index.js +28 -9
  53. package/dist/es2019/ui/team-containers/main.js +79 -16
  54. package/dist/es2019/ui/team-containers/team-containers-skeleton/index.compiled.css +4 -0
  55. package/dist/es2019/ui/team-containers/team-containers-skeleton/index.js +27 -0
  56. package/dist/es2019/ui/team-containers/team-containers-skeleton/linked-container-card-skeleton/index.compiled.css +14 -0
  57. package/dist/es2019/ui/team-containers/team-containers-skeleton/linked-container-card-skeleton/index.js +31 -0
  58. package/dist/esm/common/utils/error/index.js +117 -0
  59. package/dist/esm/common/utils/get-container-properties.js +3 -13
  60. package/dist/esm/common/utils/http.js +109 -0
  61. package/dist/esm/common/utils/status-code-handlers-provider.js +23 -0
  62. package/dist/esm/common/utils/team-id-to-ari.js +4 -0
  63. package/dist/esm/controllers/hooks/use-team-containers/index.js +72 -0
  64. package/dist/esm/controllers/index.js +1 -0
  65. package/dist/esm/services/agg-client/index.js +72 -0
  66. package/dist/esm/services/agg-client/mocks/index.js +46 -0
  67. package/dist/esm/services/agg-client/utils/queries/team-containers-query.js +5 -0
  68. package/dist/esm/services/base-client/index.js +85 -0
  69. package/dist/esm/services/constants.js +3 -0
  70. package/dist/esm/services/graphql-client/index.js +1 -0
  71. package/dist/esm/services/graphql-client/main.js +62 -0
  72. package/dist/esm/services/graphql-client/types.js +1 -0
  73. package/dist/esm/services/graphql-client/utils/index.js +149 -0
  74. package/dist/esm/services/index.js +1 -0
  75. package/dist/esm/services/main.js +65 -0
  76. package/dist/esm/services/types.js +1 -0
  77. package/dist/esm/ui/team-containers/add-container-card/index.compiled.css +0 -2
  78. package/dist/esm/ui/team-containers/add-container-card/index.js +25 -7
  79. package/dist/esm/ui/team-containers/linked-container-card/index.compiled.css +1 -2
  80. package/dist/esm/ui/team-containers/linked-container-card/index.js +39 -9
  81. package/dist/esm/ui/team-containers/main.js +91 -16
  82. package/dist/esm/ui/team-containers/team-containers-skeleton/index.compiled.css +4 -0
  83. package/dist/esm/ui/team-containers/team-containers-skeleton/index.js +29 -0
  84. package/dist/esm/ui/team-containers/team-containers-skeleton/linked-container-card-skeleton/index.compiled.css +14 -0
  85. package/dist/esm/ui/team-containers/team-containers-skeleton/linked-container-card-skeleton/index.js +31 -0
  86. package/dist/types/common/types.d.ts +1 -1
  87. package/dist/types/common/utils/error/index.d.ts +59 -0
  88. package/dist/types/common/utils/http.d.ts +31 -0
  89. package/dist/types/common/utils/status-code-handlers-provider.d.ts +17 -0
  90. package/dist/types/common/utils/team-id-to-ari.d.ts +2 -0
  91. package/dist/types/controllers/hooks/use-team-containers/index.d.ts +12 -0
  92. package/dist/types/controllers/index.d.ts +1 -0
  93. package/dist/types/services/agg-client/index.d.ts +15 -0
  94. package/dist/types/services/agg-client/mocks/index.d.ts +55 -0
  95. package/dist/types/services/agg-client/utils/queries/team-containers-query.d.ts +44 -0
  96. package/dist/types/services/base-client/index.d.ts +37 -0
  97. package/dist/types/services/constants.d.ts +4 -0
  98. package/dist/types/services/graphql-client/index.d.ts +1 -0
  99. package/dist/types/services/graphql-client/main.d.ts +8 -0
  100. package/dist/types/services/graphql-client/types.d.ts +19 -0
  101. package/dist/types/services/graphql-client/utils/index.d.ts +3 -0
  102. package/dist/types/services/index.d.ts +1 -0
  103. package/dist/types/services/main.d.ts +25 -0
  104. package/dist/types/services/types.d.ts +19 -0
  105. package/dist/types/ui/team-containers/add-container-card/index.d.ts +3 -2
  106. package/dist/types/ui/team-containers/linked-container-card/index.d.ts +3 -6
  107. package/dist/types/ui/team-containers/main.d.ts +3 -1
  108. package/dist/types/ui/team-containers/team-containers-skeleton/index.d.ts +6 -0
  109. package/dist/types/ui/team-containers/team-containers-skeleton/linked-container-card-skeleton/index.d.ts +2 -0
  110. package/dist/types/ui/team-containers/types.d.ts +5 -0
  111. package/dist/types-ts4.5/common/types.d.ts +1 -1
  112. package/dist/types-ts4.5/common/utils/error/index.d.ts +59 -0
  113. package/dist/types-ts4.5/common/utils/http.d.ts +31 -0
  114. package/dist/types-ts4.5/common/utils/status-code-handlers-provider.d.ts +17 -0
  115. package/dist/types-ts4.5/common/utils/team-id-to-ari.d.ts +2 -0
  116. package/dist/types-ts4.5/controllers/hooks/use-team-containers/index.d.ts +12 -0
  117. package/dist/types-ts4.5/controllers/index.d.ts +1 -0
  118. package/dist/types-ts4.5/services/agg-client/index.d.ts +15 -0
  119. package/dist/types-ts4.5/services/agg-client/mocks/index.d.ts +55 -0
  120. package/dist/types-ts4.5/services/agg-client/utils/queries/team-containers-query.d.ts +44 -0
  121. package/dist/types-ts4.5/services/base-client/index.d.ts +37 -0
  122. package/dist/types-ts4.5/services/constants.d.ts +4 -0
  123. package/dist/types-ts4.5/services/graphql-client/index.d.ts +1 -0
  124. package/dist/types-ts4.5/services/graphql-client/main.d.ts +8 -0
  125. package/dist/types-ts4.5/services/graphql-client/types.d.ts +19 -0
  126. package/dist/types-ts4.5/services/graphql-client/utils/index.d.ts +3 -0
  127. package/dist/types-ts4.5/services/index.d.ts +1 -0
  128. package/dist/types-ts4.5/services/main.d.ts +25 -0
  129. package/dist/types-ts4.5/services/types.d.ts +19 -0
  130. package/dist/types-ts4.5/ui/team-containers/add-container-card/index.d.ts +3 -2
  131. package/dist/types-ts4.5/ui/team-containers/linked-container-card/index.d.ts +3 -6
  132. package/dist/types-ts4.5/ui/team-containers/main.d.ts +3 -1
  133. package/dist/types-ts4.5/ui/team-containers/team-containers-skeleton/index.d.ts +6 -0
  134. package/dist/types-ts4.5/ui/team-containers/team-containers-skeleton/linked-container-card-skeleton/index.d.ts +2 -0
  135. package/dist/types-ts4.5/ui/team-containers/types.d.ts +5 -0
  136. package/package.json +9 -5
  137. package/dist/cjs/ui/team-containers/constants.js +0 -7
  138. package/dist/es2019/ui/team-containers/constants.js +0 -1
  139. package/dist/esm/ui/team-containers/constants.js +0 -1
  140. package/dist/types/ui/team-containers/constants.d.ts +0 -1
  141. package/dist/types-ts4.5/ui/team-containers/constants.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/teams-public
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#112883](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/112883)
8
+ [`82c3046253a5b`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/82c3046253a5b) -
9
+ [ux] Added team containers query and updated the team containers section to show containers
10
+
11
+ ## 0.2.1
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies
16
+
3
17
  ## 0.2.0
4
18
 
5
19
  ### Minor Changes
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.StatusCode = exports.SLOIgnoreError = exports.HttpError = exports.GraphQLError = exports.DefaultError = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
15
+ var _GraphQLError;
16
+ 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)); }
17
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
18
+ var StatusCode = exports.StatusCode = /*#__PURE__*/function (StatusCode) {
19
+ StatusCode[StatusCode["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
20
+ StatusCode[StatusCode["FORBIDDEN"] = 403] = "FORBIDDEN";
21
+ StatusCode[StatusCode["TIMEOUT"] = 408] = "TIMEOUT";
22
+ StatusCode[StatusCode["GONE"] = 410] = "GONE";
23
+ StatusCode[StatusCode["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
24
+ return StatusCode;
25
+ }({});
26
+ var CommonError = /*#__PURE__*/function (_Error) {
27
+ function CommonError(message) {
28
+ var _this;
29
+ (0, _classCallCheck2.default)(this, CommonError);
30
+ _this = _callSuper(this, CommonError, [message]);
31
+ _this.name = _this.constructor.name;
32
+ _this.message = message || 'UnknownError';
33
+ _this.stack = new Error(message).stack || '';
34
+ return _this;
35
+ }
36
+ (0, _inherits2.default)(CommonError, _Error);
37
+ return (0, _createClass2.default)(CommonError);
38
+ }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
39
+ var DefaultError = exports.DefaultError = /*#__PURE__*/function (_CommonError) {
40
+ function DefaultError(_ref) {
41
+ var _this2;
42
+ var message = _ref.message;
43
+ (0, _classCallCheck2.default)(this, DefaultError);
44
+ _this2 = _callSuper(this, DefaultError, [message || 'UnknownError']);
45
+ Object.setPrototypeOf(_this2, DefaultError.prototype);
46
+ return _this2;
47
+ }
48
+ (0, _inherits2.default)(DefaultError, _CommonError);
49
+ return (0, _createClass2.default)(DefaultError);
50
+ }(CommonError);
51
+ /**
52
+ * These errors will not fail UFO experiences
53
+ */
54
+ var SLOIgnoreError = exports.SLOIgnoreError = /*#__PURE__*/function (_CommonError2) {
55
+ function SLOIgnoreError(_ref2) {
56
+ var _this3;
57
+ var message = _ref2.message;
58
+ (0, _classCallCheck2.default)(this, SLOIgnoreError);
59
+ _this3 = _callSuper(this, SLOIgnoreError, ["SentryIgnore: ".concat(message || 'UnknownError')]);
60
+ Object.setPrototypeOf(_this3, SLOIgnoreError.prototype);
61
+ return _this3;
62
+ }
63
+ (0, _inherits2.default)(SLOIgnoreError, _CommonError2);
64
+ return (0, _createClass2.default)(SLOIgnoreError);
65
+ }(CommonError);
66
+ // Http Errors
67
+ var HttpError = exports.HttpError = /*#__PURE__*/function (_CommonError3) {
68
+ function HttpError(_ref3) {
69
+ var _this4;
70
+ var message = _ref3.message,
71
+ status = _ref3.status,
72
+ traceId = _ref3.traceId,
73
+ path = _ref3.path;
74
+ (0, _classCallCheck2.default)(this, HttpError);
75
+ _this4 = _callSuper(this, HttpError, [message]);
76
+ Object.setPrototypeOf(_this4, HttpError.prototype);
77
+ _this4.status = status;
78
+ _this4.traceId = traceId;
79
+ _this4.path = path;
80
+ return _this4;
81
+ }
82
+ (0, _inherits2.default)(HttpError, _CommonError3);
83
+ return (0, _createClass2.default)(HttpError);
84
+ }(CommonError); // Graphql Errors
85
+ var GraphQLError = exports.GraphQLError = /*#__PURE__*/function (_CommonError4) {
86
+ // tslint:disable-line no-any
87
+
88
+ function GraphQLError(_ref4) {
89
+ var _this5;
90
+ var message = _ref4.message,
91
+ _ref4$category = _ref4.category,
92
+ category = _ref4$category === void 0 ? 'default' : _ref4$category,
93
+ fields = _ref4.fields;
94
+ (0, _classCallCheck2.default)(this, GraphQLError);
95
+ _this5 = _callSuper(this, GraphQLError, [message]);
96
+ Object.setPrototypeOf(_this5, GraphQLError.prototype);
97
+ _this5.category = category;
98
+ if (fields) {
99
+ _this5.fields = fields;
100
+ }
101
+ return _this5;
102
+ }
103
+ (0, _inherits2.default)(GraphQLError, _CommonError4);
104
+ return (0, _createClass2.default)(GraphQLError);
105
+ }(CommonError);
106
+ _GraphQLError = GraphQLError;
107
+ (0, _defineProperty2.default)(GraphQLError, "from", function (rawErrors) {
108
+ var firstError = rawErrors[0];
109
+ var errorData = {
110
+ category: firstError.category,
111
+ message: firstError.message
112
+ };
113
+ if (firstError.fields) {
114
+ errorData.fields = firstError.fields.reduce(function (obj, item) {
115
+ obj[item.field] = item.message;
116
+ return obj;
117
+ }, {});
118
+ }
119
+ return new _GraphQLError(errorData);
120
+ });
@@ -42,7 +42,7 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
42
42
  });
43
43
  var getContainerProperties = exports.getContainerProperties = function getContainerProperties(containerType) {
44
44
  switch (containerType) {
45
- case 'confluence':
45
+ case 'ConfluenceSpace':
46
46
  return {
47
47
  description: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.confluenceContainerDescription),
48
48
  icon: /*#__PURE__*/_react.default.createElement(_logo.ConfluenceIcon, {
@@ -52,7 +52,7 @@ var getContainerProperties = exports.getContainerProperties = function getContai
52
52
  }),
53
53
  title: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.addConfluenceContainerTitle)
54
54
  };
55
- case 'jira':
55
+ case 'JiraProject':
56
56
  return {
57
57
  description: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.jiraProjectDescription),
58
58
  icon: /*#__PURE__*/_react.default.createElement(_logo.JiraIcon, {
@@ -62,16 +62,6 @@ var getContainerProperties = exports.getContainerProperties = function getContai
62
62
  }),
63
63
  title: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.addJiraProjectTitle)
64
64
  };
65
- case 'loom':
66
- return {
67
- description: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.loomSpaceDescription),
68
- icon: /*#__PURE__*/_react.default.createElement(_logo.LoomIcon, {
69
- appearance: "brand",
70
- label: "",
71
- size: "xsmall"
72
- }),
73
- title: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.addLoomSpaceTitle)
74
- };
75
65
  default:
76
66
  return {
77
67
  description: null,
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.fetchWithExponentialBackoff = exports.EXPONENTIAL_BACKOFF_RETRY_POLICY = void 0;
8
+ exports.is5xx = is5xx;
9
+ exports.isFetchResponse = isFetchResponse;
10
+ exports.withExponentialBackoff = withExponentialBackoff;
11
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+ var EXPONENTIAL_BACKOFF_RETRY_POLICY = exports.EXPONENTIAL_BACKOFF_RETRY_POLICY = {
14
+ INITIAL_DELAY: 200,
15
+ MAX_RETRIES: 5,
16
+ JITTER: true
17
+ };
18
+
19
+ /**
20
+ * Checks whether a status code is a 5xx HTTP code.
21
+ * @param {number} status HTTP status code
22
+ */
23
+ function is5xx(status) {
24
+ return 500 <= status && status <= 599;
25
+ }
26
+ function isFetchResponse(data) {
27
+ if (!data || !data.hasOwnProperty('response')) {
28
+ return false;
29
+ }
30
+ return data.response instanceof Response;
31
+ }
32
+
33
+ // tslint:disable-next-line no-any
34
+
35
+ // tslint:disable-next-line no-any
36
+ var defaultRetryIfCallback = function defaultRetryIfCallback(a) {
37
+ return !a;
38
+ };
39
+ var defaultOptions = {
40
+ initial: 200,
41
+ jitter: false,
42
+ max: 5,
43
+ retryIf: defaultRetryIfCallback
44
+ };
45
+ /**
46
+ * Transparently wrap a function so that it is retried until it succeeds or reaches a max retry limit.
47
+ * The returned function has the same signature as the wrapped function.
48
+ *
49
+ * Modified from https://jsfiddle.net/pajtai/pLka0ow9/
50
+ */
51
+ function withExponentialBackoff(toTry) {
52
+ var hofOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;
53
+ var initial = hofOptions.initial,
54
+ jitter = hofOptions.jitter,
55
+ max = hofOptions.max,
56
+ retryIf = hofOptions.retryIf;
57
+
58
+ // Initialize max retry decrementing counter (range of max...0)
59
+ var attemptsRemaining = max;
60
+
61
+ // Initialize delay. This will exponentially increase each retry (delay = intial * 2^n)
62
+ var delay = initial;
63
+
64
+ /**
65
+ * This function calls itself recursively until `retryIf` evaluates false or the retry limit is reached.
66
+ * The functioned-to-be-retried is called on each recursion.
67
+ */
68
+ return /*#__PURE__*/function () {
69
+ var _tryWithExponentialBackoff = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
70
+ var result,
71
+ _args = arguments;
72
+ return _regenerator.default.wrap(function _callee$(_context) {
73
+ while (1) switch (_context.prev = _context.next) {
74
+ case 0:
75
+ _context.next = 2;
76
+ return toTry.apply(void 0, _args);
77
+ case 2:
78
+ result = _context.sent;
79
+ --attemptsRemaining;
80
+
81
+ // If tried function was unsuccessful and there are still retries remaining, retry!
82
+ if (!(retryIf && retryIf(result) && attemptsRemaining > 0)) {
83
+ _context.next = 9;
84
+ break;
85
+ }
86
+ _context.next = 7;
87
+ return new Promise(function (resolve) {
88
+ return setTimeout(resolve, jitter ? Math.random() * delay : delay);
89
+ });
90
+ case 7:
91
+ // Exponentially increase delay
92
+ delay *= 2;
93
+
94
+ // Initiate retry
95
+ return _context.abrupt("return", tryWithExponentialBackoff.apply(void 0, _args));
96
+ case 9:
97
+ return _context.abrupt("return", result);
98
+ case 10:
99
+ case "end":
100
+ return _context.stop();
101
+ }
102
+ }, _callee);
103
+ }));
104
+ function tryWithExponentialBackoff() {
105
+ return _tryWithExponentialBackoff.apply(this, arguments);
106
+ }
107
+ return tryWithExponentialBackoff;
108
+ }();
109
+ }
110
+ var fetchWithExponentialBackoff = exports.fetchWithExponentialBackoff = withExponentialBackoff(function (url, init) {
111
+ return fetch(url, init);
112
+ }, {
113
+ initial: EXPONENTIAL_BACKOFF_RETRY_POLICY.INITIAL_DELAY,
114
+ jitter: EXPONENTIAL_BACKOFF_RETRY_POLICY.JITTER,
115
+ max: EXPONENTIAL_BACKOFF_RETRY_POLICY.MAX_RETRIES,
116
+ retryIf: function retryIf(response) {
117
+ return is5xx(response.status);
118
+ }
119
+ });
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handleResponse = handleResponse;
7
+ exports.statusCodeHandlersProvider = void 0;
8
+ /**
9
+ * Our REST clients are initialised when their module loads which makes it tricky for them to consume the `statusCodeHandlers` prop passed to App from the host application.
10
+ * This is a temporary measure to enable the clients to consume `statusCodeHandlers`.
11
+ * The long term solution is to replace our REST clients with Apollo client custom resolvers
12
+ * This will unify all remote data handling under the apollo-client module which is able to easily receive `statusCodeHandlers` as it is initialised within the React portion of our app.
13
+ */
14
+
15
+ var statusCodeHandlersProvider = exports.statusCodeHandlersProvider = {
16
+ handlers: {},
17
+ get: function get() {
18
+ return statusCodeHandlersProvider.handlers;
19
+ },
20
+ setHandlers: function setHandlers(handlers) {
21
+ statusCodeHandlersProvider.handlers = handlers;
22
+ }
23
+ };
24
+ function handleResponse(response) {
25
+ var status = response.status;
26
+ var handler = statusCodeHandlersProvider.get()[status];
27
+ if (typeof handler === 'function') {
28
+ handler(response);
29
+ }
30
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.teamIdToAri = exports.ARI_PREFIX = void 0;
7
+ var ARI_PREFIX = exports.ARI_PREFIX = 'ari:cloud:identity::team/';
8
+ var teamIdToAri = exports.teamIdToAri = function teamIdToAri(teamIdOrTeamAri) {
9
+ return teamIdOrTeamAri.startsWith(ARI_PREFIX) ? teamIdOrTeamAri : "".concat(ARI_PREFIX).concat(teamIdOrTeamAri);
10
+ };
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useTeamContainersHook = exports.useTeamContainers = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _react = require("react");
12
+ var _reactSweetState = require("react-sweet-state");
13
+ var _services = require("../../../services");
14
+ var initialState = {
15
+ teamContainers: [],
16
+ loading: true,
17
+ error: null
18
+ };
19
+ var actions = {
20
+ fetchTeamContainers: function fetchTeamContainers(teamId) {
21
+ return /*#__PURE__*/function () {
22
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {
23
+ var setState, containers;
24
+ return _regenerator.default.wrap(function _callee$(_context) {
25
+ while (1) switch (_context.prev = _context.next) {
26
+ case 0:
27
+ setState = _ref.setState;
28
+ setState({
29
+ loading: true,
30
+ error: null
31
+ });
32
+ _context.prev = 2;
33
+ _context.next = 5;
34
+ return _services.teamsClient.getTeamContainers(teamId);
35
+ case 5:
36
+ containers = _context.sent;
37
+ setState({
38
+ teamContainers: containers,
39
+ loading: false,
40
+ error: null
41
+ });
42
+ _context.next = 12;
43
+ break;
44
+ case 9:
45
+ _context.prev = 9;
46
+ _context.t0 = _context["catch"](2);
47
+ setState({
48
+ teamContainers: [],
49
+ error: _context.t0,
50
+ loading: false
51
+ });
52
+ case 12:
53
+ case "end":
54
+ return _context.stop();
55
+ }
56
+ }, _callee, null, [[2, 9]]);
57
+ }));
58
+ return function (_x) {
59
+ return _ref2.apply(this, arguments);
60
+ };
61
+ }();
62
+ }
63
+ };
64
+ var Store = (0, _reactSweetState.createStore)({
65
+ initialState: initialState,
66
+ actions: actions,
67
+ name: 'teamContainersStore'
68
+ });
69
+ var useTeamContainersHook = exports.useTeamContainersHook = (0, _reactSweetState.createHook)(Store);
70
+ var useTeamContainers = exports.useTeamContainers = function useTeamContainers(teamId) {
71
+ var _useTeamContainersHoo = useTeamContainersHook(),
72
+ _useTeamContainersHoo2 = (0, _slicedToArray2.default)(_useTeamContainersHoo, 2),
73
+ state = _useTeamContainersHoo2[0],
74
+ actions = _useTeamContainersHoo2[1];
75
+ (0, _react.useEffect)(function () {
76
+ actions.fetchTeamContainers(teamId);
77
+ }, [teamId, actions]);
78
+ return state;
79
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useTeamContainers", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _useTeamContainers.useTeamContainers;
10
+ }
11
+ });
12
+ var _useTeamContainers = require("./hooks/use-team-containers");
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.aggClient = exports.AGGClient = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _teamIdToAri = require("../../common/utils/team-id-to-ari");
16
+ var _constants = require("../constants");
17
+ var _graphqlClient = require("../graphql-client");
18
+ var _teamContainersQuery = require("./utils/queries/team-containers-query");
19
+ 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)); }
20
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
21
+ var AGGClient = exports.AGGClient = /*#__PURE__*/function (_BaseGraphQlClient) {
22
+ function AGGClient(baseUrl, config) {
23
+ (0, _classCallCheck2.default)(this, AGGClient);
24
+ return _callSuper(this, AGGClient, ["".concat(baseUrl, "/graphql"), config]);
25
+ }
26
+ (0, _inherits2.default)(AGGClient, _BaseGraphQlClient);
27
+ return (0, _createClass2.default)(AGGClient, [{
28
+ key: "setBaseUrl",
29
+ value: function setBaseUrl(baseUrl) {
30
+ this.setServiceUrl("".concat(baseUrl, "/graphql"));
31
+ }
32
+ }, {
33
+ key: "getTeamContainers",
34
+ value: function () {
35
+ var _getTeamContainers = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(teamId) {
36
+ var teamAri, cypherQuery, response, containersResult;
37
+ return _regenerator.default.wrap(function _callee$(_context) {
38
+ while (1) switch (_context.prev = _context.next) {
39
+ case 0:
40
+ teamAri = (0, _teamIdToAri.teamIdToAri)(teamId);
41
+ cypherQuery = "MATCH (team:IdentityTeam {id: '".concat(teamAri, "'})-[:team_connected_to_container]->(container) RETURN container");
42
+ _context.next = 4;
43
+ return this.makeGraphQLRequest({
44
+ query: _teamContainersQuery.TeamContainersQuery,
45
+ variables: {
46
+ cypherQuery: cypherQuery
47
+ }
48
+ }, {
49
+ operationName: 'TeamContainersQuery'
50
+ });
51
+ case 4:
52
+ response = _context.sent;
53
+ containersResult = response.graphStore.cypherQuery.edges.map(function (edge) {
54
+ return {
55
+ id: edge.node.to.id,
56
+ type: edge.node.to.data.__typename,
57
+ name: edge.node.to.data.__typename === 'ConfluenceSpace' ? edge.node.to.data.confluenceSpaceName || '' : edge.node.to.data.jiraProjectName,
58
+ icon: edge.node.to.data.__typename === 'ConfluenceSpace' ? "".concat(edge.node.to.data.links.base).concat(edge.node.to.data.icon.path) : edge.node.to.data.avatar.medium,
59
+ createdDate: edge.node.to.data.__typename === 'ConfluenceSpace' ? new Date(edge.node.to.data.createdDate) : new Date(edge.node.to.data.created),
60
+ link: edge.node.to.data.__typename === 'ConfluenceSpace' ? "".concat(edge.node.to.data.links.base).concat(edge.node.to.data.links.webUi) : edge.node.to.data.webUrl
61
+ };
62
+ });
63
+ return _context.abrupt("return", containersResult);
64
+ case 7:
65
+ case "end":
66
+ return _context.stop();
67
+ }
68
+ }, _callee, this);
69
+ }));
70
+ function getTeamContainers(_x) {
71
+ return _getTeamContainers.apply(this, arguments);
72
+ }
73
+ return getTeamContainers;
74
+ }()
75
+ }]);
76
+ }(_graphqlClient.BaseGraphQlClient);
77
+ var aggClient = exports.aggClient = new AGGClient(_constants.DEFAULT_CONFIG.stargateRoot, {
78
+ logException: function logException() {}
79
+ });
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MOCK_TEAM_CONTAINERS = void 0;
7
+ var MOCK_TEAM_CONTAINERS = exports.MOCK_TEAM_CONTAINERS = {
8
+ graphStore: {
9
+ cypherQuery: {
10
+ edges: [{
11
+ node: {
12
+ from: {
13
+ id: '1'
14
+ },
15
+ to: {
16
+ id: '2',
17
+ data: {
18
+ __typename: 'ConfluenceSpace',
19
+ confluenceSpaceName: 'Confluence Space',
20
+ type: 'confluence',
21
+ createdDate: '2021-01-01',
22
+ links: {
23
+ webUi: 'web-link'
24
+ },
25
+ icon: {
26
+ path: 'https://avatar-management--avatars.us-west-2.staging.public.atl-paas.net/712020:2981defd-17f1-440e-a377-8c7657b72a6f/4b5b0d55-614b-4e75-858f-9da3d0c7e3f8/128'
27
+ }
28
+ }
29
+ }
30
+ }
31
+ }, {
32
+ node: {
33
+ from: {
34
+ id: '1'
35
+ },
36
+ to: {
37
+ id: '3',
38
+ data: {
39
+ __typename: 'JiraProject',
40
+ jiraProjectName: 'Jira Project',
41
+ webUrl: 'web-link',
42
+ created: '2021-01-01',
43
+ avatar: {
44
+ medium: 'https://avatar-management--avatars.us-west-2.staging.public.atl-paas.net/712020:2981defd-17f1-440e-a377-8c7657b72a6f/4b5b0d55-614b-4e75-858f-9da3d0c7e3f8/128'
45
+ }
46
+ }
47
+ }
48
+ }
49
+ }]
50
+ }
51
+ }
52
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.TeamContainersQuery = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _graphql = require("graphql");
10
+ var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
11
+ var _templateObject;
12
+ var TeamContainersQuery = exports.TeamContainersQuery = (0, _graphql.print)((0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\tquery TeamContainersQuery($cypherQuery: String!) {\n\t\tgraphStore @optIn(to: [\"GraphStore\"]) {\n\t\t\tcypherQuery(query: $cypherQuery) @optIn(to: [\"GraphStoreCypherQuery\"]) {\n\t\t\t\tedges {\n\t\t\t\t\t__typename\n\t\t\t\t\tnode {\n\t\t\t\t\t\tfrom {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t}\n\t\t\t\t\t\tto {\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\tdata {\n\t\t\t\t\t\t\t\t__typename\n\t\t\t\t\t\t\t\t... on ConfluenceSpace {\n\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\tconfluenceSpaceName: name\n\t\t\t\t\t\t\t\t\ttype\n\t\t\t\t\t\t\t\t\tcreatedDate\n\t\t\t\t\t\t\t\t\tlinks {\n\t\t\t\t\t\t\t\t\t\tbase\n\t\t\t\t\t\t\t\t\t\twebUi\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ticon {\n\t\t\t\t\t\t\t\t\t\tpath\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t... on JiraProject {\n\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\tjiraProjectName: name\n\t\t\t\t\t\t\t\t\twebUrl\n\t\t\t\t\t\t\t\t\tcreated\n\t\t\t\t\t\t\t\t\tavatar {\n\t\t\t\t\t\t\t\t\t\tmedium\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n"]))));
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.BaseClient = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ 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; }
12
+ 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; }
13
+ var BaseClient = exports.BaseClient = /*#__PURE__*/function () {
14
+ function BaseClient(config) {
15
+ var _this = this;
16
+ (0, _classCallCheck2.default)(this, BaseClient);
17
+ (0, _defineProperty2.default)(this, "cache", {});
18
+ (0, _defineProperty2.default)(this, "logException", function (ex, name, context) {
19
+ _this.config.logException(ex, name, context);
20
+ });
21
+ this.config = config;
22
+ this.context = {
23
+ cloudId: null
24
+ };
25
+ }
26
+ return (0, _createClass2.default)(BaseClient, [{
27
+ key: "setContext",
28
+ value: function setContext(context) {
29
+ this.context = _objectSpread(_objectSpread({}, context), {}, {
30
+ cloudId: context.cloudId || null
31
+ });
32
+ }
33
+ }, {
34
+ key: "getContext",
35
+ value: function getContext() {
36
+ return this.context;
37
+ }
38
+
39
+ /**
40
+ *
41
+ * @param localValue is used for backwards compatibility
42
+ * @returns
43
+ */
44
+ }, {
45
+ key: "getOrgId",
46
+ value: function getOrgId(localValue) {
47
+ var orgId = localValue || this.getContext().orgId;
48
+ if (!orgId) {
49
+ var err = new Error('No orgId set');
50
+ this.logException(err, 'No orgId set');
51
+ throw err;
52
+ }
53
+ return orgId;
54
+ }
55
+ /**
56
+ *
57
+ * @param localValue is used for backwards compatibility
58
+ * @returns
59
+ */
60
+ }, {
61
+ key: "getCloudId",
62
+ value: function getCloudId(localValue) {
63
+ return localValue || this.getContext().cloudId;
64
+ }
65
+ }, {
66
+ key: "keyWithContext",
67
+ value: function keyWithContext(key) {
68
+ var _this$getContext$orgI, _this$getContext$user;
69
+ return "".concat(this.getContext().cloudId, "-").concat((_this$getContext$orgI = this.getContext().orgId) !== null && _this$getContext$orgI !== void 0 ? _this$getContext$orgI : 'no-org-id', "-").concat((_this$getContext$user = this.getContext().userId) !== null && _this$getContext$user !== void 0 ? _this$getContext$user : 'no-user-id', "-").concat(key);
70
+ }
71
+
72
+ // Default expiration is 5 minutes
73
+ }, {
74
+ key: "cacheValue",
75
+ value: function cacheValue(key, value) {
76
+ var expiryMs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000 * 60 * 5;
77
+ this.cache[this.keyWithContext(key)] = {
78
+ data: value,
79
+ expiration: Date.now() + expiryMs
80
+ };
81
+ }
82
+ }, {
83
+ key: "getCachedValue",
84
+ value: function getCachedValue(key) {
85
+ var record = this.cache[this.keyWithContext(key)];
86
+ if (record && record.expiration > Date.now()) {
87
+ return record.data;
88
+ }
89
+ return undefined;
90
+ }
91
+ }]);
92
+ }();