@atlaskit/smart-card 18.0.21 → 19.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/cjs/client/index.js +6 -379
  3. package/dist/cjs/constants.js +4 -4
  4. package/dist/cjs/extractors/embed/index.js +2 -2
  5. package/dist/cjs/extractors/hover/extractMetadata.js +31 -0
  6. package/dist/cjs/index.js +7 -13
  7. package/dist/cjs/state/actions/constants.js +1 -13
  8. package/dist/cjs/state/actions/index.js +20 -22
  9. package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +2 -2
  10. package/dist/cjs/state/config/index.js +2 -2
  11. package/dist/cjs/state/helpers.js +1 -9
  12. package/dist/cjs/state/hooks/usePrefetch.js +2 -2
  13. package/dist/cjs/state/index.js +4 -4
  14. package/dist/cjs/state/renderers/index.js +2 -2
  15. package/dist/cjs/state/store/index.js +5 -5
  16. package/dist/cjs/utils/mocks.js +2 -2
  17. package/dist/cjs/utils/test-utils.js +2 -2
  18. package/dist/cjs/version.json +1 -1
  19. package/dist/cjs/view/FlexibleCard/components/actions/action/index.js +2 -2
  20. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +1 -0
  21. package/dist/cjs/view/FlexibleCard/components/blocks/block/index.js +3 -2
  22. package/dist/cjs/view/FlexibleCard/components/blocks/element-group/index.js +1 -0
  23. package/dist/cjs/view/FlexibleCard/components/blocks/footer-block/index.js +1 -0
  24. package/dist/cjs/view/FlexibleCard/components/blocks/metadata-block/index.js +1 -0
  25. package/dist/cjs/view/FlexibleCard/components/blocks/preview-block/index.js +1 -0
  26. package/dist/cjs/view/FlexibleCard/components/blocks/snippet-block/index.js +1 -0
  27. package/dist/cjs/view/FlexibleCard/components/blocks/title-block/index.js +2 -1
  28. package/dist/cjs/view/FlexibleCard/components/container/index.js +19 -6
  29. package/dist/cjs/view/FlexibleCard/components/container/layered-link/index.js +5 -0
  30. package/dist/cjs/view/FlexibleCard/components/elements/avatar-group/index.js +2 -2
  31. package/dist/cjs/view/FlexibleCard/components/elements/badge/index.js +2 -2
  32. package/dist/cjs/view/FlexibleCard/components/elements/date-time/index.js +2 -2
  33. package/dist/cjs/view/FlexibleCard/components/elements/icon/index.js +2 -2
  34. package/dist/cjs/view/FlexibleCard/components/elements/index.js +2 -2
  35. package/dist/cjs/view/FlexibleCard/components/elements/link/index.js +3 -3
  36. package/dist/cjs/view/FlexibleCard/components/elements/lozenge/index.js +2 -2
  37. package/dist/cjs/view/FlexibleCard/components/elements/media/index.js +2 -2
  38. package/dist/cjs/view/FlexibleCard/components/elements/text/index.js +2 -2
  39. package/dist/cjs/view/HoverCard/index.js +11 -2
  40. package/dist/cjs/view/HoverCard/utils.js +36 -0
  41. package/dist/es2019/client/index.js +1 -214
  42. package/dist/es2019/constants.js +4 -4
  43. package/dist/es2019/extractors/embed/index.js +1 -1
  44. package/dist/es2019/extractors/hover/extractMetadata.js +18 -0
  45. package/dist/es2019/index.js +4 -4
  46. package/dist/es2019/state/actions/constants.js +0 -6
  47. package/dist/es2019/state/actions/index.js +4 -4
  48. package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +1 -1
  49. package/dist/es2019/state/config/index.js +1 -1
  50. package/dist/es2019/state/helpers.js +0 -5
  51. package/dist/es2019/state/hooks/usePrefetch.js +1 -1
  52. package/dist/es2019/state/index.js +1 -1
  53. package/dist/es2019/state/renderers/index.js +1 -1
  54. package/dist/es2019/state/store/index.js +2 -2
  55. package/dist/es2019/utils/mocks.js +1 -1
  56. package/dist/es2019/utils/test-utils.js +1 -1
  57. package/dist/es2019/version.json +1 -1
  58. package/dist/es2019/view/FlexibleCard/components/actions/action/index.js +2 -2
  59. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +1 -0
  60. package/dist/es2019/view/FlexibleCard/components/blocks/block/index.js +3 -2
  61. package/dist/es2019/view/FlexibleCard/components/blocks/element-group/index.js +1 -0
  62. package/dist/es2019/view/FlexibleCard/components/blocks/footer-block/index.js +1 -0
  63. package/dist/es2019/view/FlexibleCard/components/blocks/metadata-block/index.js +1 -0
  64. package/dist/es2019/view/FlexibleCard/components/blocks/preview-block/index.js +1 -0
  65. package/dist/es2019/view/FlexibleCard/components/blocks/snippet-block/index.js +1 -0
  66. package/dist/es2019/view/FlexibleCard/components/blocks/title-block/index.js +2 -1
  67. package/dist/es2019/view/FlexibleCard/components/container/index.js +19 -6
  68. package/dist/es2019/view/FlexibleCard/components/container/layered-link/index.js +5 -0
  69. package/dist/es2019/view/FlexibleCard/components/elements/avatar-group/index.js +2 -2
  70. package/dist/es2019/view/FlexibleCard/components/elements/badge/index.js +2 -2
  71. package/dist/es2019/view/FlexibleCard/components/elements/date-time/index.js +2 -2
  72. package/dist/es2019/view/FlexibleCard/components/elements/icon/index.js +2 -2
  73. package/dist/es2019/view/FlexibleCard/components/elements/index.js +2 -2
  74. package/dist/es2019/view/FlexibleCard/components/elements/link/index.js +3 -3
  75. package/dist/es2019/view/FlexibleCard/components/elements/lozenge/index.js +2 -2
  76. package/dist/es2019/view/FlexibleCard/components/elements/media/index.js +2 -2
  77. package/dist/es2019/view/FlexibleCard/components/elements/text/index.js +2 -2
  78. package/dist/es2019/view/HoverCard/index.js +27 -18
  79. package/dist/es2019/view/HoverCard/utils.js +27 -0
  80. package/dist/esm/client/index.js +1 -360
  81. package/dist/esm/constants.js +4 -4
  82. package/dist/esm/extractors/embed/index.js +1 -1
  83. package/dist/esm/extractors/hover/extractMetadata.js +22 -0
  84. package/dist/esm/index.js +4 -4
  85. package/dist/esm/state/actions/constants.js +0 -6
  86. package/dist/esm/state/actions/index.js +4 -4
  87. package/dist/esm/state/analytics/useSmartLinkAnalytics.js +1 -1
  88. package/dist/esm/state/config/index.js +1 -1
  89. package/dist/esm/state/helpers.js +0 -5
  90. package/dist/esm/state/hooks/usePrefetch.js +1 -1
  91. package/dist/esm/state/index.js +1 -1
  92. package/dist/esm/state/renderers/index.js +1 -1
  93. package/dist/esm/state/store/index.js +2 -2
  94. package/dist/esm/utils/mocks.js +1 -1
  95. package/dist/esm/utils/test-utils.js +1 -1
  96. package/dist/esm/version.json +1 -1
  97. package/dist/esm/view/FlexibleCard/components/actions/action/index.js +2 -2
  98. package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +1 -0
  99. package/dist/esm/view/FlexibleCard/components/blocks/block/index.js +3 -2
  100. package/dist/esm/view/FlexibleCard/components/blocks/element-group/index.js +1 -0
  101. package/dist/esm/view/FlexibleCard/components/blocks/footer-block/index.js +1 -0
  102. package/dist/esm/view/FlexibleCard/components/blocks/metadata-block/index.js +1 -0
  103. package/dist/esm/view/FlexibleCard/components/blocks/preview-block/index.js +1 -0
  104. package/dist/esm/view/FlexibleCard/components/blocks/snippet-block/index.js +1 -0
  105. package/dist/esm/view/FlexibleCard/components/blocks/title-block/index.js +2 -1
  106. package/dist/esm/view/FlexibleCard/components/container/index.js +19 -6
  107. package/dist/esm/view/FlexibleCard/components/container/layered-link/index.js +5 -0
  108. package/dist/esm/view/FlexibleCard/components/elements/avatar-group/index.js +2 -2
  109. package/dist/esm/view/FlexibleCard/components/elements/badge/index.js +2 -2
  110. package/dist/esm/view/FlexibleCard/components/elements/date-time/index.js +2 -2
  111. package/dist/esm/view/FlexibleCard/components/elements/icon/index.js +2 -2
  112. package/dist/esm/view/FlexibleCard/components/elements/index.js +2 -2
  113. package/dist/esm/view/FlexibleCard/components/elements/link/index.js +3 -3
  114. package/dist/esm/view/FlexibleCard/components/elements/lozenge/index.js +2 -2
  115. package/dist/esm/view/FlexibleCard/components/elements/media/index.js +2 -2
  116. package/dist/esm/view/FlexibleCard/components/elements/text/index.js +2 -2
  117. package/dist/esm/view/HoverCard/index.js +10 -3
  118. package/dist/esm/view/HoverCard/utils.js +27 -0
  119. package/dist/types/__tests_external__/page-objects/BaseCard.d.ts +1 -2
  120. package/dist/types/client/index.d.ts +1 -18
  121. package/dist/types/constants.d.ts +4 -4
  122. package/dist/types/extractors/block/index.d.ts +1 -1
  123. package/dist/types/extractors/common/title-prefix/extractTitlePrefix.d.ts +1 -1
  124. package/dist/types/extractors/flexible/icon/extract-icon-renderer.d.ts +1 -1
  125. package/dist/types/extractors/flexible/icon/index.d.ts +1 -1
  126. package/dist/types/extractors/flexible/index.d.ts +1 -1
  127. package/dist/types/extractors/hover/extractMetadata.d.ts +3 -0
  128. package/dist/types/extractors/inline/index.d.ts +1 -1
  129. package/dist/types/index.d.ts +6 -6
  130. package/dist/types/model/invoke-opts.d.ts +1 -14
  131. package/dist/types/state/actions/constants.d.ts +0 -6
  132. package/dist/types/state/actions/types.d.ts +2 -13
  133. package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +1 -2
  134. package/dist/types/state/config/index.d.ts +1 -1
  135. package/dist/types/state/helpers.d.ts +1 -3
  136. package/dist/types/state/hooks/useSmartLink.d.ts +6 -6
  137. package/dist/types/state/index.d.ts +3 -3
  138. package/dist/types/state/reducers/types.d.ts +1 -1
  139. package/dist/types/state/renderers/index.d.ts +1 -1
  140. package/dist/types/state/store/index.d.ts +2 -2
  141. package/dist/types/state/types.d.ts +1 -1
  142. package/dist/types/types.d.ts +2 -2
  143. package/dist/types/utils/analytics/analytics.d.ts +1 -1
  144. package/dist/types/utils/analytics/index.d.ts +1 -2
  145. package/dist/types/utils/performance.d.ts +1 -1
  146. package/dist/types/view/BlockCard/types.d.ts +1 -1
  147. package/dist/types/view/Card/types.d.ts +2 -3
  148. package/dist/types/view/FlexibleCard/components/actions/action/index.d.ts +2 -2
  149. package/dist/types/view/FlexibleCard/components/actions/action/types.d.ts +43 -0
  150. package/dist/types/view/FlexibleCard/components/blocks/action-group/index.d.ts +1 -0
  151. package/dist/types/view/FlexibleCard/components/blocks/action-group/types.d.ts +25 -0
  152. package/dist/types/view/FlexibleCard/components/blocks/block/index.d.ts +3 -2
  153. package/dist/types/view/FlexibleCard/components/blocks/element-group/index.d.ts +1 -0
  154. package/dist/types/view/FlexibleCard/components/blocks/footer-block/index.d.ts +1 -0
  155. package/dist/types/view/FlexibleCard/components/blocks/footer-block/types.d.ts +8 -2
  156. package/dist/types/view/FlexibleCard/components/blocks/metadata-block/index.d.ts +1 -0
  157. package/dist/types/view/FlexibleCard/components/blocks/metadata-block/types.d.ts +22 -2
  158. package/dist/types/view/FlexibleCard/components/blocks/preview-block/index.d.ts +1 -0
  159. package/dist/types/view/FlexibleCard/components/blocks/snippet-block/index.d.ts +1 -0
  160. package/dist/types/view/FlexibleCard/components/blocks/snippet-block/types.d.ts +6 -2
  161. package/dist/types/view/FlexibleCard/components/blocks/title-block/index.d.ts +2 -1
  162. package/dist/types/view/FlexibleCard/components/blocks/title-block/types.d.ts +63 -13
  163. package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +68 -2
  164. package/dist/types/view/FlexibleCard/components/common/loading-skeleton/types.d.ts +5 -0
  165. package/dist/types/view/FlexibleCard/components/container/index.d.ts +5 -1
  166. package/dist/types/view/FlexibleCard/components/container/layered-link/index.d.ts +5 -0
  167. package/dist/types/view/FlexibleCard/components/container/types.d.ts +20 -10
  168. package/dist/types/view/FlexibleCard/components/elements/avatar-group/index.d.ts +2 -2
  169. package/dist/types/view/FlexibleCard/components/elements/avatar-group/types.d.ts +12 -0
  170. package/dist/types/view/FlexibleCard/components/elements/badge/index.d.ts +2 -2
  171. package/dist/types/view/FlexibleCard/components/elements/badge/types.d.ts +10 -0
  172. package/dist/types/view/FlexibleCard/components/elements/date-time/index.d.ts +2 -2
  173. package/dist/types/view/FlexibleCard/components/elements/date-time/types.d.ts +6 -0
  174. package/dist/types/view/FlexibleCard/components/elements/icon/index.d.ts +2 -2
  175. package/dist/types/view/FlexibleCard/components/elements/icon/types.d.ts +16 -3
  176. package/dist/types/view/FlexibleCard/components/elements/index.d.ts +2 -2
  177. package/dist/types/view/FlexibleCard/components/elements/link/index.d.ts +3 -3
  178. package/dist/types/view/FlexibleCard/components/elements/link/types.d.ts +21 -1
  179. package/dist/types/view/FlexibleCard/components/elements/lozenge/index.d.ts +2 -2
  180. package/dist/types/view/FlexibleCard/components/elements/lozenge/types.d.ts +6 -0
  181. package/dist/types/view/FlexibleCard/components/elements/media/index.d.ts +2 -2
  182. package/dist/types/view/FlexibleCard/components/elements/media/types.d.ts +6 -0
  183. package/dist/types/view/FlexibleCard/components/elements/text/index.d.ts +2 -2
  184. package/dist/types/view/FlexibleCard/components/elements/text/types.d.ts +10 -0
  185. package/dist/types/view/FlexibleCard/components/elements/types.d.ts +11 -0
  186. package/dist/types/view/FlexibleCard/components/types.d.ts +1 -0
  187. package/dist/types/view/FlexibleCard/types.d.ts +73 -3
  188. package/dist/types/view/FlexibleCard/utils.d.ts +1 -1
  189. package/dist/types/view/HoverCard/types.d.ts +5 -0
  190. package/dist/types/view/HoverCard/utils.d.ts +2 -0
  191. package/dist/types/view/InlineCard/types.d.ts +1 -1
  192. package/docs-helpers/flexible-ui-action-item.tsx +6 -0
  193. package/docs-helpers/flexible-ui-actions-prop.tsx +6 -0
  194. package/docs-helpers/flexible-ui-element-item.tsx +6 -0
  195. package/docs-helpers/flexible-ui-prop.tsx +6 -0
  196. package/docs-helpers/flexible-ui.tsx +28 -0
  197. package/package.json +3 -9
  198. package/dist/cjs/client/api.js +0 -119
  199. package/dist/cjs/client/errors.js +0 -55
  200. package/dist/cjs/client/types/index.js +0 -5
  201. package/dist/cjs/client/types/requests.js +0 -5
  202. package/dist/cjs/client/types/responses.js +0 -31
  203. package/dist/cjs/client/utils/environments.js +0 -47
  204. package/dist/cjs/providers/editor/index.js +0 -283
  205. package/dist/cjs/providers/editor/transformer.js +0 -90
  206. package/dist/cjs/providers/editor/types.js +0 -5
  207. package/dist/cjs/state/actions/helpers.js +0 -18
  208. package/dist/cjs/state/context/index.js +0 -34
  209. package/dist/cjs/state/context/provider.js +0 -74
  210. package/dist/cjs/state/context/types.js +0 -5
  211. package/dist/cjs/state/reducers/index.js +0 -89
  212. package/dist/cjs/state/store/types.js +0 -5
  213. package/dist/es2019/client/api.js +0 -38
  214. package/dist/es2019/client/errors.js +0 -19
  215. package/dist/es2019/client/types/index.js +0 -1
  216. package/dist/es2019/client/types/requests.js +0 -1
  217. package/dist/es2019/client/types/responses.js +0 -19
  218. package/dist/es2019/client/utils/environments.js +0 -33
  219. package/dist/es2019/providers/editor/index.js +0 -82
  220. package/dist/es2019/providers/editor/transformer.js +0 -57
  221. package/dist/es2019/providers/editor/types.js +0 -1
  222. package/dist/es2019/state/actions/helpers.js +0 -8
  223. package/dist/es2019/state/context/index.js +0 -14
  224. package/dist/es2019/state/context/provider.js +0 -51
  225. package/dist/es2019/state/context/types.js +0 -1
  226. package/dist/es2019/state/reducers/index.js +0 -74
  227. package/dist/es2019/state/store/types.js +0 -1
  228. package/dist/esm/client/api.js +0 -98
  229. package/dist/esm/client/errors.js +0 -40
  230. package/dist/esm/client/types/index.js +0 -1
  231. package/dist/esm/client/types/requests.js +0 -1
  232. package/dist/esm/client/types/responses.js +0 -19
  233. package/dist/esm/client/utils/environments.js +0 -33
  234. package/dist/esm/providers/editor/index.js +0 -257
  235. package/dist/esm/providers/editor/transformer.js +0 -79
  236. package/dist/esm/providers/editor/types.js +0 -1
  237. package/dist/esm/state/actions/helpers.js +0 -9
  238. package/dist/esm/state/context/index.js +0 -14
  239. package/dist/esm/state/context/provider.js +0 -50
  240. package/dist/esm/state/context/types.js +0 -1
  241. package/dist/esm/state/reducers/index.js +0 -69
  242. package/dist/esm/state/store/types.js +0 -1
  243. package/dist/types/client/api.d.ts +0 -5
  244. package/dist/types/client/errors.d.ts +0 -9
  245. package/dist/types/client/types/index.d.ts +0 -13
  246. package/dist/types/client/types/requests.d.ts +0 -9
  247. package/dist/types/client/types/responses.d.ts +0 -19
  248. package/dist/types/client/utils/environments.d.ts +0 -12
  249. package/dist/types/providers/editor/index.d.ts +0 -22
  250. package/dist/types/providers/editor/transformer.d.ts +0 -8
  251. package/dist/types/providers/editor/types.d.ts +0 -19
  252. package/dist/types/state/actions/helpers.d.ts +0 -2
  253. package/dist/types/state/context/index.d.ts +0 -8
  254. package/dist/types/state/context/provider.d.ts +0 -5
  255. package/dist/types/state/context/types.d.ts +0 -39
  256. package/dist/types/state/reducers/index.d.ts +0 -4
  257. package/dist/types/state/store/types.d.ts +0 -18
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SmartCardContext = void 0;
7
- Object.defineProperty(exports, "SmartCardProvider", {
8
- enumerable: true,
9
- get: function get() {
10
- return _provider.SmartCardProvider;
11
- }
12
- });
13
- exports.default = void 0;
14
- exports.useSmartLinkContext = useSmartLinkContext;
15
-
16
- var _react = require("react");
17
-
18
- var _provider = require("./provider");
19
-
20
- var SmartCardContext = /*#__PURE__*/(0, _react.createContext)(undefined);
21
- exports.SmartCardContext = SmartCardContext;
22
-
23
- function useSmartLinkContext() {
24
- var context = (0, _react.useContext)(SmartCardContext);
25
-
26
- if (!context) {
27
- throw Error('useSmartCard() must be wrapped in <SmartCardProvider>');
28
- }
29
-
30
- return context;
31
- }
32
-
33
- var _default = SmartCardContext;
34
- exports.default = _default;
@@ -1,74 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.SmartCardProvider = SmartCardProvider;
11
- exports.default = void 0;
12
-
13
- var _react = _interopRequireWildcard(require("react"));
14
-
15
- var _redux = require("redux");
16
-
17
- var _reducers = require("../reducers");
18
-
19
- var _ = require(".");
20
-
21
- var _client = _interopRequireDefault(require("../../client"));
22
-
23
- var _preview = require("../../extractors/common/preview");
24
-
25
- var _helpers = require("../helpers");
26
-
27
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
-
29
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
30
-
31
- function SmartCardProvider(_ref) {
32
- var storeOptions = _ref.storeOptions,
33
- customClient = _ref.client,
34
- customAuthFlow = _ref.authFlow,
35
- children = _ref.children,
36
- renderers = _ref.renderers;
37
- var parentContext = (0, _react.useContext)(_.SmartCardContext);
38
- var providerValue = (0, _react.useMemo)(function () {
39
- var _ref2 = storeOptions || {
40
- initialState: {}
41
- },
42
- initialState = _ref2.initialState;
43
-
44
- var client = customClient || new _client.default();
45
- var store = (0, _redux.createStore)(_reducers.cardReducer, initialState);
46
- var authFlow = customAuthFlow || 'oauth2';
47
-
48
- var getPreview = function getPreview(url, platform) {
49
- var cardState = (0, _helpers.getUrl)(store, url);
50
- return cardState.details ? (0, _preview.extractPreview)(cardState.details.data, platform) : undefined;
51
- };
52
-
53
- return {
54
- renderers: renderers,
55
- store: store,
56
- prefetchStore: {},
57
- connections: {
58
- client: client
59
- },
60
- config: {
61
- authFlow: authFlow
62
- },
63
- extractors: {
64
- getPreview: getPreview
65
- }
66
- };
67
- }, [customClient, customAuthFlow, storeOptions, renderers]);
68
- return /*#__PURE__*/_react.default.createElement(_.SmartCardContext.Provider, {
69
- value: parentContext || providerValue
70
- }, children);
71
- }
72
-
73
- var _default = SmartCardProvider;
74
- exports.default = _default;
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,89 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.cardReducer = void 0;
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var actions = _interopRequireWildcard(require("../actions/constants"));
15
-
16
- var _helpers = require("../helpers");
17
-
18
- var _cardReducerMap;
19
-
20
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
-
22
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
-
24
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
-
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
-
28
- var cardReducerMap = (_cardReducerMap = {}, (0, _defineProperty2.default)(_cardReducerMap, actions.ACTION_PENDING, function (_state, _ref) {
29
- var type = _ref.type;
30
- return {
31
- status: type
32
- };
33
- }), (0, _defineProperty2.default)(_cardReducerMap, actions.ACTION_RESOLVING, function (state, _ref2) {
34
- var type = _ref2.type;
35
- return _objectSpread(_objectSpread({}, state), {}, {
36
- status: type
37
- });
38
- }), (0, _defineProperty2.default)(_cardReducerMap, actions.ACTION_RESOLVED, function (state, _ref3) {
39
- var type = _ref3.type,
40
- payload = _ref3.payload;
41
- var nextDetails = payload;
42
-
43
- var nextState = _objectSpread({}, state);
44
-
45
- if (nextDetails) {
46
- nextState.status = (0, _helpers.getStatus)(nextDetails);
47
- nextState.details = nextDetails;
48
- } else {
49
- // Keep the pre-existing data in the store. If there
50
- // is no data, the UI should handle this gracefully.
51
- nextState.status = type;
52
- }
53
-
54
- return nextState;
55
- }), (0, _defineProperty2.default)(_cardReducerMap, actions.ACTION_ERROR, function (state, _ref4) {
56
- var type = _ref4.type,
57
- error = _ref4.error;
58
- return _objectSpread(_objectSpread({}, state), {}, {
59
- status: type,
60
- error: error
61
- });
62
- }), (0, _defineProperty2.default)(_cardReducerMap, actions.ACTION_ERROR_FALLBACK, function (state, _ref5) {
63
- var type = _ref5.type,
64
- error = _ref5.error;
65
- return _objectSpread(_objectSpread({}, state), {}, {
66
- status: type,
67
- error: error
68
- });
69
- }), _cardReducerMap);
70
-
71
- var cardReducer = function cardReducer(state, action) {
72
- if (cardReducerMap[action.type]) {
73
- var cardState = state[action.url]; // Card may have reached the same state on account of multiple of the same
74
- // URL being present in an editor session. E.g. page with N links to one resource.
75
-
76
- var hasSameStatus = cardState && cardState.status === action.type;
77
-
78
- if (hasSameStatus) {
79
- return state;
80
- } else {
81
- var nextState = cardReducerMap[action.type](cardState, action);
82
- return _objectSpread(_objectSpread({}, state), {}, (0, _defineProperty2.default)({}, action.url, nextState));
83
- }
84
- }
85
-
86
- return state;
87
- };
88
-
89
- exports.cardReducer = cardReducer;
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,38 +0,0 @@
1
- const ALLOWED_RESPONSE_STATUS_CODES = [200, 401, 404];
2
- export class NetworkError extends Error {
3
- constructor(error) {
4
- super(error);
5
- }
6
-
7
- }
8
- export async function request(method, url, data, headers) {
9
- const requestConfig = {
10
- method,
11
- credentials: 'include',
12
- headers: {
13
- Accept: 'application/json',
14
- 'Cache-Control': 'no-cache',
15
- 'Content-Type': 'application/json',
16
- ...headers
17
- },
18
- ...(data ? {
19
- body: JSON.stringify(data)
20
- } : {})
21
- };
22
-
23
- try {
24
- const response = await fetch(url, requestConfig);
25
-
26
- if (response.ok || ALLOWED_RESPONSE_STATUS_CODES.includes(response.status)) {
27
- return await response.json();
28
- }
29
-
30
- throw response;
31
- } catch (error) {
32
- if (typeof error === 'string' || error instanceof TypeError) {
33
- throw new NetworkError(error);
34
- }
35
-
36
- throw error;
37
- }
38
- }
@@ -1,19 +0,0 @@
1
- export class APIError extends Error {
2
- constructor(kind, hostname, message, type) {
3
- super(`${kind}: ${message}`);
4
- this.kind = kind;
5
- this.hostname = hostname;
6
- this.message = message;
7
- this.type = type;
8
- this.name = 'APIError'; // The error type received from the server.
9
-
10
- this.type = type; // The kind mapped to on the client.
11
-
12
- this.kind = kind; // The message received from the server.
13
-
14
- this.message = message; // The hostname of the URL which failed - do NOT log this (contains PII/UGC).
15
-
16
- this.hostname = hostname;
17
- }
18
-
19
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,19 +0,0 @@
1
- // Used to catch any other errors - not server-side.
2
- export const isSuccessfulResponse = response => {
3
- if (!response) {
4
- return false;
5
- }
6
-
7
- const hasSuccessfulStatus = response.status === 200;
8
- const hasSuccessBody = ('body' in response);
9
- return hasSuccessfulStatus && hasSuccessBody;
10
- };
11
- export const isErrorResponse = response => {
12
- if (!response) {
13
- return false;
14
- }
15
-
16
- const hasStatus = response.status >= 200;
17
- const hasErrorBody = ('error' in response);
18
- return hasStatus && hasErrorBody;
19
- };
@@ -1,33 +0,0 @@
1
- const devBaseUrl = 'https://api-private.dev.atlassian.com';
2
- const stgBaseUrl = 'https://commerce-components-preview.dev.atlassian.com/gateway/api';
3
- const prodBaseUrl = 'https://api-private.atlassian.com';
4
- export const BaseUrls = {
5
- dev: devBaseUrl,
6
- development: devBaseUrl,
7
- stg: stgBaseUrl,
8
- staging: stgBaseUrl,
9
- prd: prodBaseUrl,
10
- prod: prodBaseUrl,
11
- production: prodBaseUrl
12
- };
13
- export const getBaseUrl = envKey => {
14
- // If an environment is provided, then use Stargate.
15
- if (envKey) {
16
- return envKey in BaseUrls ? BaseUrls[envKey] : prodBaseUrl;
17
- } // Otherwise, use the current origin of the page.
18
-
19
-
20
- return window.location.origin;
21
- };
22
- export const getResolverUrl = envKey => {
23
- // If an environment is provided, then use Stargate directly for requests.
24
- if (envKey) {
25
- const baseUrl = getBaseUrl(envKey);
26
- return `${baseUrl}/object-resolver`;
27
- } else {
28
- // Otherwise, we fallback to using the Edge Proxy to access Stargate,
29
- // which fixes some cookie issues with strict Browser policies.
30
- return '/gateway/api/object-resolver';
31
- }
32
- };
33
- export default BaseUrls;
@@ -1,82 +0,0 @@
1
- // import setimmediate to temporary fix dataloader 2.0.0 bug
2
- // @see https://github.com/graphql/dataloader/issues/249
3
- import 'setimmediate';
4
- import DataLoader from 'dataloader';
5
- import { Transformer } from './transformer';
6
- import { getResolverUrl, getBaseUrl } from '../../client/utils/environments';
7
- import * as api from '../../client/api';
8
- const BATCH_WAIT_TIME = 50;
9
- export class EditorCardProvider {
10
- constructor(envKey) {
11
- this.baseUrl = getBaseUrl(envKey);
12
- this.resolverUrl = getResolverUrl(envKey);
13
- this.transformer = new Transformer();
14
- this.requestHeaders = {
15
- Origin: this.baseUrl
16
- };
17
- this.patternLoader = new DataLoader(keys => this.batchPatterns(keys), {
18
- batchScheduleFn: callback => setTimeout(callback, BATCH_WAIT_TIME)
19
- });
20
- }
21
-
22
- async batchPatterns(keys) {
23
- // EDM-2205: Batch requests in the case that user paste multiple links at
24
- // once. This is so that only one /providers is being called.
25
- const patterns = await this.fetchPatterns();
26
- return keys.map(() => patterns);
27
- }
28
-
29
- async check(resourceUrl) {
30
- try {
31
- const endpoint = `${this.resolverUrl}/check`;
32
- const response = await api.request('post', endpoint, {
33
- resourceUrl
34
- }, this.requestHeaders);
35
- return response.isSupported;
36
- } catch (err) {
37
- // eslint-disable-next-line
38
- console.error('failed to fetch /check', err);
39
- return undefined;
40
- }
41
- }
42
-
43
- async fetchPatterns() {
44
- try {
45
- const endpoint = `${this.resolverUrl}/providers`;
46
- const response = await api.request('post', endpoint, undefined, this.requestHeaders);
47
- return response.providers.reduce((allSources, provider) => {
48
- const providerSources = provider.patterns.map(pattern => pattern.source);
49
- return allSources.concat(providerSources);
50
- }, []);
51
- } catch (err) {
52
- // eslint-disable-next-line
53
- console.error('failed to fetch /providers', err);
54
- return undefined;
55
- }
56
- }
57
-
58
- async findPattern(url) {
59
- if (!this.patterns) {
60
- this.patterns = await this.patternLoader.load('providers');
61
- }
62
-
63
- return this.patterns ? this.patterns.some(pattern => url.match(pattern)) : false;
64
- }
65
-
66
- async resolve(url, appearance) {
67
- try {
68
- let isSupported = (await this.findPattern(url)) || (await this.check(url));
69
-
70
- if (isSupported) {
71
- return this.transformer.toAdf(url, appearance);
72
- }
73
- } catch (e) {
74
- // eslint-disable-next-line
75
- console.warn(`Error when trying to check Smart Card url "${url} - ${e.prototype.name} ${e.message}`, e);
76
- }
77
-
78
- return Promise.reject(undefined);
79
- }
80
-
81
- }
82
- export const editorCardProvider = new EditorCardProvider();
@@ -1,57 +0,0 @@
1
- const isJiraRoadMap = url => url.match(/^https:\/\/.*?\/jira\/software\/(c\/)?projects\/[^\/]+?\/boards\/.*?\/roadmap\/?/);
2
-
3
- const isPolarisView = url => url.match(/^https:\/\/.*?\/jira\/polaris\/projects\/[^\/]+?\/ideas\/view\/\d+$|^https:\/\/.*?\/secure\/JiraProductDiscoveryAnonymous\.jspa\?hash=\w+|^https:\/\/.*?\/jira\/polaris\/share\/\w+/);
4
-
5
- const isJwmView = url => url.match(/^https:\/\/.*?\/jira\/core\/projects\/[^\/]+?\/(timeline|calendar|list|board)\/?/);
6
-
7
- const isSlackMessage = url => url.match(/^https:\/\/.+?\.slack\.com\/archives\/[CG][A-Z0-9]+\/p[0-9]+(\?.*)?$/);
8
-
9
- export class Transformer {
10
- buildInlineAdf(url) {
11
- return {
12
- type: 'inlineCard',
13
- attrs: {
14
- url
15
- }
16
- };
17
- }
18
-
19
- buildBlockAdf(url) {
20
- return {
21
- type: 'blockCard',
22
- attrs: {
23
- url
24
- }
25
- };
26
- }
27
-
28
- buildEmbedAdf(url) {
29
- return {
30
- type: 'embedCard',
31
- attrs: {
32
- url,
33
- layout: 'wide'
34
- }
35
- };
36
- }
37
-
38
- toAdf(url, appearance) {
39
- if (isJiraRoadMap(url) || isPolarisView(url) || isJwmView(url)) {
40
- return this.buildEmbedAdf(url);
41
- } else if (isSlackMessage(url)) {
42
- return this.buildBlockAdf(url);
43
- } else {
44
- switch (appearance) {
45
- case 'inline':
46
- return this.buildInlineAdf(url);
47
-
48
- case 'block':
49
- return this.buildBlockAdf(url);
50
-
51
- case 'embed':
52
- return this.buildEmbedAdf(url);
53
- }
54
- }
55
- }
56
-
57
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,8 +0,0 @@
1
- export const cardAction = (type, {
2
- url
3
- }, payload, error) => ({
4
- type,
5
- url,
6
- payload,
7
- error
8
- });
@@ -1,14 +0,0 @@
1
- import { useContext, createContext } from 'react';
2
- import { SmartCardProvider } from './provider';
3
- export const SmartCardContext = /*#__PURE__*/createContext(undefined);
4
- export function useSmartLinkContext() {
5
- const context = useContext(SmartCardContext);
6
-
7
- if (!context) {
8
- throw Error('useSmartCard() must be wrapped in <SmartCardProvider>');
9
- }
10
-
11
- return context;
12
- }
13
- export { SmartCardProvider };
14
- export default SmartCardContext;
@@ -1,51 +0,0 @@
1
- import React from 'react';
2
- import { useContext, useMemo } from 'react';
3
- import { createStore } from 'redux';
4
- import { cardReducer } from '../reducers';
5
- import { SmartCardContext } from '.';
6
- import CardClient from '../../client';
7
- import { extractPreview } from '../../extractors/common/preview';
8
- import { getUrl } from '../helpers';
9
- export function SmartCardProvider({
10
- storeOptions,
11
- client: customClient,
12
- authFlow: customAuthFlow,
13
- children,
14
- renderers
15
- }) {
16
- const parentContext = useContext(SmartCardContext);
17
- const providerValue = useMemo(() => {
18
- const {
19
- initialState
20
- } = storeOptions || {
21
- initialState: {}
22
- };
23
- const client = customClient || new CardClient();
24
- const store = createStore(cardReducer, initialState);
25
- const authFlow = customAuthFlow || 'oauth2';
26
-
27
- const getPreview = (url, platform) => {
28
- const cardState = getUrl(store, url);
29
- return cardState.details ? extractPreview(cardState.details.data, platform) : undefined;
30
- };
31
-
32
- return {
33
- renderers,
34
- store,
35
- prefetchStore: {},
36
- connections: {
37
- client
38
- },
39
- config: {
40
- authFlow
41
- },
42
- extractors: {
43
- getPreview
44
- }
45
- };
46
- }, [customClient, customAuthFlow, storeOptions, renderers]);
47
- return /*#__PURE__*/React.createElement(SmartCardContext.Provider, {
48
- value: parentContext || providerValue
49
- }, children);
50
- }
51
- export default SmartCardProvider;
@@ -1 +0,0 @@
1
- export {};
@@ -1,74 +0,0 @@
1
- import * as actions from '../actions/constants';
2
- import { getStatus } from '../helpers';
3
- const cardReducerMap = {
4
- [actions.ACTION_PENDING]: (_state, {
5
- type
6
- }) => {
7
- return {
8
- status: type
9
- };
10
- },
11
- [actions.ACTION_RESOLVING]: (state, {
12
- type
13
- }) => {
14
- return { ...state,
15
- status: type
16
- };
17
- },
18
- [actions.ACTION_RESOLVED]: (state, {
19
- type,
20
- payload
21
- }) => {
22
- const nextDetails = payload;
23
- const nextState = { ...state
24
- };
25
-
26
- if (nextDetails) {
27
- nextState.status = getStatus(nextDetails);
28
- nextState.details = nextDetails;
29
- } else {
30
- // Keep the pre-existing data in the store. If there
31
- // is no data, the UI should handle this gracefully.
32
- nextState.status = type;
33
- }
34
-
35
- return nextState;
36
- },
37
- [actions.ACTION_ERROR]: (state, {
38
- type,
39
- error
40
- }) => {
41
- return { ...state,
42
- status: type,
43
- error
44
- };
45
- },
46
- [actions.ACTION_ERROR_FALLBACK]: (state, {
47
- type,
48
- error
49
- }) => {
50
- return { ...state,
51
- status: type,
52
- error
53
- };
54
- }
55
- };
56
- export const cardReducer = (state, action) => {
57
- if (cardReducerMap[action.type]) {
58
- const cardState = state[action.url]; // Card may have reached the same state on account of multiple of the same
59
- // URL being present in an editor session. E.g. page with N links to one resource.
60
-
61
- const hasSameStatus = cardState && cardState.status === action.type;
62
-
63
- if (hasSameStatus) {
64
- return state;
65
- } else {
66
- const nextState = cardReducerMap[action.type](cardState, action);
67
- return { ...state,
68
- [action.url]: nextState
69
- };
70
- }
71
- }
72
-
73
- return state;
74
- };
@@ -1 +0,0 @@
1
- export {};