@atlaskit/smart-card 18.0.20 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/dist/cjs/client/index.js +6 -379
- package/dist/cjs/extractors/embed/index.js +2 -2
- package/dist/cjs/extractors/hover/extractMetadata.js +31 -0
- package/dist/cjs/index.js +7 -13
- package/dist/cjs/state/actions/constants.js +1 -13
- package/dist/cjs/state/actions/index.js +20 -22
- package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +2 -2
- package/dist/cjs/state/config/index.js +2 -2
- package/dist/cjs/state/helpers.js +1 -9
- package/dist/cjs/state/hooks/usePrefetch.js +2 -2
- package/dist/cjs/state/index.js +4 -4
- package/dist/cjs/state/renderers/index.js +2 -2
- package/dist/cjs/state/store/index.js +5 -5
- package/dist/cjs/utils/flexible.js +1 -1
- package/dist/cjs/utils/mocks.js +2 -2
- package/dist/cjs/utils/test-utils.js +2 -2
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/HoverCard/index.js +11 -2
- package/dist/cjs/view/HoverCard/utils.js +36 -0
- package/dist/es2019/client/index.js +1 -214
- package/dist/es2019/extractors/embed/index.js +1 -1
- package/dist/es2019/extractors/hover/extractMetadata.js +18 -0
- package/dist/es2019/index.js +4 -4
- package/dist/es2019/state/actions/constants.js +0 -6
- package/dist/es2019/state/actions/index.js +4 -4
- package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +1 -1
- package/dist/es2019/state/config/index.js +1 -1
- package/dist/es2019/state/helpers.js +0 -5
- package/dist/es2019/state/hooks/usePrefetch.js +1 -1
- package/dist/es2019/state/index.js +1 -1
- package/dist/es2019/state/renderers/index.js +1 -1
- package/dist/es2019/state/store/index.js +2 -2
- package/dist/es2019/utils/flexible.js +1 -1
- package/dist/es2019/utils/mocks.js +1 -1
- package/dist/es2019/utils/test-utils.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/HoverCard/index.js +27 -18
- package/dist/es2019/view/HoverCard/utils.js +27 -0
- package/dist/esm/client/index.js +1 -360
- package/dist/esm/extractors/embed/index.js +1 -1
- package/dist/esm/extractors/hover/extractMetadata.js +22 -0
- package/dist/esm/index.js +4 -4
- package/dist/esm/state/actions/constants.js +0 -6
- package/dist/esm/state/actions/index.js +4 -4
- package/dist/esm/state/analytics/useSmartLinkAnalytics.js +1 -1
- package/dist/esm/state/config/index.js +1 -1
- package/dist/esm/state/helpers.js +0 -5
- package/dist/esm/state/hooks/usePrefetch.js +1 -1
- package/dist/esm/state/index.js +1 -1
- package/dist/esm/state/renderers/index.js +1 -1
- package/dist/esm/state/store/index.js +2 -2
- package/dist/esm/utils/flexible.js +1 -1
- package/dist/esm/utils/mocks.js +1 -1
- package/dist/esm/utils/test-utils.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/HoverCard/index.js +10 -3
- package/dist/esm/view/HoverCard/utils.js +27 -0
- package/dist/types/__tests_external__/page-objects/BaseCard.d.ts +1 -2
- package/dist/types/client/index.d.ts +1 -18
- package/dist/types/extractors/block/index.d.ts +1 -1
- package/dist/types/extractors/common/title-prefix/extractTitlePrefix.d.ts +1 -1
- package/dist/types/extractors/flexible/icon/extract-icon-renderer.d.ts +1 -1
- package/dist/types/extractors/flexible/icon/index.d.ts +1 -1
- package/dist/types/extractors/flexible/index.d.ts +1 -1
- package/dist/types/extractors/hover/extractMetadata.d.ts +3 -0
- package/dist/types/extractors/inline/index.d.ts +1 -1
- package/dist/types/index.d.ts +6 -6
- package/dist/types/model/invoke-opts.d.ts +1 -14
- package/dist/types/state/actions/constants.d.ts +0 -6
- package/dist/types/state/actions/types.d.ts +2 -13
- package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +1 -2
- package/dist/types/state/config/index.d.ts +1 -1
- package/dist/types/state/helpers.d.ts +1 -3
- package/dist/types/state/hooks/useSmartLink.d.ts +6 -6
- package/dist/types/state/index.d.ts +3 -3
- package/dist/types/state/reducers/types.d.ts +1 -1
- package/dist/types/state/renderers/index.d.ts +1 -1
- package/dist/types/state/store/index.d.ts +2 -2
- package/dist/types/state/types.d.ts +1 -1
- package/dist/types/types.d.ts +2 -2
- package/dist/types/utils/analytics/analytics.d.ts +1 -1
- package/dist/types/utils/analytics/index.d.ts +1 -2
- package/dist/types/utils/performance.d.ts +1 -1
- package/dist/types/view/BlockCard/types.d.ts +1 -1
- package/dist/types/view/Card/types.d.ts +2 -3
- package/dist/types/view/FlexibleCard/types.d.ts +2 -2
- package/dist/types/view/FlexibleCard/utils.d.ts +1 -1
- package/dist/types/view/HoverCard/types.d.ts +5 -0
- package/dist/types/view/HoverCard/utils.d.ts +2 -0
- package/dist/types/view/InlineCard/types.d.ts +1 -1
- package/package.json +3 -9
- package/dist/cjs/client/api.js +0 -119
- package/dist/cjs/client/errors.js +0 -55
- package/dist/cjs/client/types/index.js +0 -5
- package/dist/cjs/client/types/requests.js +0 -5
- package/dist/cjs/client/types/responses.js +0 -31
- package/dist/cjs/client/utils/environments.js +0 -47
- package/dist/cjs/providers/editor/index.js +0 -283
- package/dist/cjs/providers/editor/transformer.js +0 -90
- package/dist/cjs/providers/editor/types.js +0 -5
- package/dist/cjs/state/actions/helpers.js +0 -18
- package/dist/cjs/state/context/index.js +0 -34
- package/dist/cjs/state/context/provider.js +0 -74
- package/dist/cjs/state/context/types.js +0 -5
- package/dist/cjs/state/reducers/index.js +0 -89
- package/dist/cjs/state/store/types.js +0 -5
- package/dist/es2019/client/api.js +0 -38
- package/dist/es2019/client/errors.js +0 -19
- package/dist/es2019/client/types/index.js +0 -1
- package/dist/es2019/client/types/requests.js +0 -1
- package/dist/es2019/client/types/responses.js +0 -19
- package/dist/es2019/client/utils/environments.js +0 -33
- package/dist/es2019/providers/editor/index.js +0 -82
- package/dist/es2019/providers/editor/transformer.js +0 -57
- package/dist/es2019/providers/editor/types.js +0 -1
- package/dist/es2019/state/actions/helpers.js +0 -8
- package/dist/es2019/state/context/index.js +0 -14
- package/dist/es2019/state/context/provider.js +0 -51
- package/dist/es2019/state/context/types.js +0 -1
- package/dist/es2019/state/reducers/index.js +0 -74
- package/dist/es2019/state/store/types.js +0 -1
- package/dist/esm/client/api.js +0 -98
- package/dist/esm/client/errors.js +0 -40
- package/dist/esm/client/types/index.js +0 -1
- package/dist/esm/client/types/requests.js +0 -1
- package/dist/esm/client/types/responses.js +0 -19
- package/dist/esm/client/utils/environments.js +0 -33
- package/dist/esm/providers/editor/index.js +0 -257
- package/dist/esm/providers/editor/transformer.js +0 -79
- package/dist/esm/providers/editor/types.js +0 -1
- package/dist/esm/state/actions/helpers.js +0 -9
- package/dist/esm/state/context/index.js +0 -14
- package/dist/esm/state/context/provider.js +0 -50
- package/dist/esm/state/context/types.js +0 -1
- package/dist/esm/state/reducers/index.js +0 -69
- package/dist/esm/state/store/types.js +0 -1
- package/dist/types/client/api.d.ts +0 -5
- package/dist/types/client/errors.d.ts +0 -9
- package/dist/types/client/types/index.d.ts +0 -13
- package/dist/types/client/types/requests.d.ts +0 -9
- package/dist/types/client/types/responses.d.ts +0 -19
- package/dist/types/client/utils/environments.d.ts +0 -12
- package/dist/types/providers/editor/index.d.ts +0 -22
- package/dist/types/providers/editor/transformer.d.ts +0 -8
- package/dist/types/providers/editor/types.d.ts +0 -19
- package/dist/types/state/actions/helpers.d.ts +0 -2
- package/dist/types/state/context/index.d.ts +0 -8
- package/dist/types/state/context/provider.d.ts +0 -5
- package/dist/types/state/context/types.d.ts +0 -39
- package/dist/types/state/reducers/index.d.ts +0 -4
- package/dist/types/state/store/types.d.ts +0 -18
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 19.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [`6ee499cbb73`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6ee499cbb73) - - Add @atlaskit/link-provider as peerDependency.
|
|
8
|
+
|
|
9
|
+
- Use Provider/Client from @atlaskit/link-provider and remove local version.
|
|
10
|
+
- Re export moved things from @atlaskit/link-provider to make adoption easier
|
|
11
|
+
|
|
12
|
+
These changes are needed in order to make future adoption of smart-card easier from consumers and to mitigate breaking changes.
|
|
13
|
+
|
|
14
|
+
### Before
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
import { Provider, Client, Card } from '@atlastkit/smart-card'
|
|
18
|
+
|
|
19
|
+
<Provider client={new Client()}>
|
|
20
|
+
<Card />
|
|
21
|
+
</Provider>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Before
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
import { Provider, Client } from '@atlastkit/link-provider'
|
|
28
|
+
import { Card } from '@atlastkit/smart-card'
|
|
29
|
+
|
|
30
|
+
<Provider client={new Client()}>
|
|
31
|
+
<Card />
|
|
32
|
+
</Provider>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- Updated dependencies
|
|
38
|
+
|
|
39
|
+
## 18.0.22
|
|
40
|
+
|
|
41
|
+
### Patch Changes
|
|
42
|
+
|
|
43
|
+
- [`8b9f08cbc1c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8b9f08cbc1c) - [ux] Default representation for Slack links was changed from 'block' to 'inline'
|
|
44
|
+
- [`f4811ca8c6a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f4811ca8c6a) - add provider based metadata to hover previews
|
|
45
|
+
|
|
46
|
+
## 18.0.21
|
|
47
|
+
|
|
48
|
+
### Patch Changes
|
|
49
|
+
|
|
50
|
+
- [`ffaf122189e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ffaf122189e) - Flexible UI: TitleBlock is now composory to display Flexible UI on Smart Links
|
|
51
|
+
|
|
3
52
|
## 18.0.20
|
|
4
53
|
|
|
5
54
|
### Patch Changes
|
package/dist/cjs/client/index.js
CHANGED
|
@@ -1,386 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
3
|
Object.defineProperty(exports, "__esModule", {
|
|
8
4
|
value: true
|
|
9
5
|
});
|
|
10
|
-
exports
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
|
-
|
|
16
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
|
-
|
|
18
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
19
|
-
|
|
20
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
21
|
-
|
|
22
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
|
-
require("setimmediate");
|
|
25
|
-
|
|
26
|
-
var _dataloader = _interopRequireDefault(require("dataloader"));
|
|
27
|
-
|
|
28
|
-
var _asyncRetry = _interopRequireDefault(require("async-retry"));
|
|
29
|
-
|
|
30
|
-
var api = _interopRequireWildcard(require("./api"));
|
|
31
|
-
|
|
32
|
-
var _errors = require("./errors");
|
|
33
|
-
|
|
34
|
-
var _environments = require("./utils/environments");
|
|
35
|
-
|
|
36
|
-
var _pThrottle = _interopRequireDefault(require("p-throttle"));
|
|
37
|
-
|
|
38
|
-
var _responses = require("./types/responses");
|
|
39
|
-
|
|
40
|
-
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); }
|
|
41
|
-
|
|
42
|
-
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; }
|
|
43
|
-
|
|
44
|
-
// import setimmediate to temporary fix dataloader 2.0.0 bug
|
|
45
|
-
// @see https://github.com/graphql/dataloader/issues/249
|
|
46
|
-
var MAX_BATCH_SIZE = 50;
|
|
47
|
-
var MIN_TIME_BETWEEN_BATCHES = 250;
|
|
48
|
-
|
|
49
|
-
var CardClient = /*#__PURE__*/function () {
|
|
50
|
-
function CardClient(envKey) {
|
|
51
|
-
var _this = this;
|
|
52
|
-
|
|
53
|
-
(0, _classCallCheck2.default)(this, CardClient);
|
|
54
|
-
(0, _defineProperty2.default)(this, "batchResolve", /*#__PURE__*/function () {
|
|
55
|
-
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(urls) {
|
|
56
|
-
var deDuplicatedUrls, resolvedUrls, map, i, url, data;
|
|
57
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
58
|
-
while (1) {
|
|
59
|
-
switch (_context.prev = _context.next) {
|
|
60
|
-
case 0:
|
|
61
|
-
// De-duplicate requested URLs (see `this.createLoader` for more detail).
|
|
62
|
-
deDuplicatedUrls = (0, _toConsumableArray2.default)(new Set(urls));
|
|
63
|
-
resolvedUrls = [];
|
|
64
|
-
_context.prev = 2;
|
|
65
|
-
_context.next = 5;
|
|
66
|
-
return api.request('post', "".concat(_this.resolverUrl, "/resolve/batch"), deDuplicatedUrls.map(function (resourceUrl) {
|
|
67
|
-
return {
|
|
68
|
-
resourceUrl: resourceUrl
|
|
69
|
-
};
|
|
70
|
-
}));
|
|
71
|
-
|
|
72
|
-
case 5:
|
|
73
|
-
resolvedUrls = _context.sent;
|
|
74
|
-
_context.next = 11;
|
|
75
|
-
break;
|
|
76
|
-
|
|
77
|
-
case 8:
|
|
78
|
-
_context.prev = 8;
|
|
79
|
-
_context.t0 = _context["catch"](2);
|
|
80
|
-
// we make sure we return a valid dataloader response by creating an error
|
|
81
|
-
// response for each url
|
|
82
|
-
resolvedUrls = urls.map(function () {
|
|
83
|
-
var status = (0, _responses.isErrorResponse)(_context.t0) ? _context.t0.status : 500;
|
|
84
|
-
var errorResponse = {
|
|
85
|
-
status: status,
|
|
86
|
-
error: _context.t0
|
|
87
|
-
};
|
|
88
|
-
return errorResponse;
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
case 11:
|
|
92
|
-
// Reduce into a map to make accessing faster and easier.
|
|
93
|
-
map = {}; // NOTE: the batch endpoint returns the URLs in the same order they were given.
|
|
94
|
-
|
|
95
|
-
for (i = 0; i < deDuplicatedUrls.length; ++i) {
|
|
96
|
-
url = deDuplicatedUrls[i];
|
|
97
|
-
data = resolvedUrls[i];
|
|
98
|
-
map[url] = data;
|
|
99
|
-
} // Reconvert list back into the original order in which it was given to us.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
return _context.abrupt("return", urls.map(function (originalUrl) {
|
|
103
|
-
return map[originalUrl];
|
|
104
|
-
}));
|
|
105
|
-
|
|
106
|
-
case 14:
|
|
107
|
-
case "end":
|
|
108
|
-
return _context.stop();
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}, _callee, null, [[2, 8]]);
|
|
112
|
-
}));
|
|
113
|
-
|
|
114
|
-
return function (_x) {
|
|
115
|
-
return _ref.apply(this, arguments);
|
|
116
|
-
};
|
|
117
|
-
}());
|
|
118
|
-
this.resolverUrl = (0, _environments.getResolverUrl)(envKey);
|
|
119
|
-
this.loadersByDomain = {};
|
|
120
|
-
this.retryConfig = {
|
|
121
|
-
retries: 2
|
|
122
|
-
};
|
|
123
|
-
this.resolvedCache = {};
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _linkProvider.CardClient;
|
|
124
10
|
}
|
|
11
|
+
});
|
|
125
12
|
|
|
126
|
-
|
|
127
|
-
key: "createLoader",
|
|
128
|
-
value: function createLoader() {
|
|
129
|
-
var batchResolveThrottler = (0, _pThrottle.default)({
|
|
130
|
-
limit: 1,
|
|
131
|
-
interval: MIN_TIME_BETWEEN_BATCHES
|
|
132
|
-
});
|
|
133
|
-
var throttledBatchResolve = batchResolveThrottler(this.batchResolve);
|
|
134
|
-
return new _dataloader.default( // We place all calls to `batchResolve` in a limiter so we don't send off several simultaneous batch requests.
|
|
135
|
-
// This is for two reasons:
|
|
136
|
-
// 1: we want to avoid getting rate limited upstream (eg: forge and other APIs)
|
|
137
|
-
// 2: we want to avoid sending out heaps of requests from the client at once
|
|
138
|
-
function (urls) {
|
|
139
|
-
return throttledBatchResolve(urls);
|
|
140
|
-
}, {
|
|
141
|
-
maxBatchSize: MAX_BATCH_SIZE,
|
|
142
|
-
// NOTE: we turn off DataLoader's cache because it doesn't work for our use-case. Consider the following:
|
|
143
|
-
// - a smartlink to a restricted item is resolved to "forbidden" with a "request access button"
|
|
144
|
-
// - the user clicks "request access", and then following the auth prompts and gets access
|
|
145
|
-
// - the frontend now re-renders the smartlink, but due to DataLoader's caching, the previous "forbidden" state is
|
|
146
|
-
// because the smartlink's URL (which is the cache key) is exactly the same
|
|
147
|
-
//
|
|
148
|
-
// For this reason, we disable DataLoader's cache.
|
|
149
|
-
// This means that URLs will not be de-duplicated by DataLoader, so we perform the de-duplication logic
|
|
150
|
-
// ourselves in `this.batchResolve`.
|
|
151
|
-
cache: false
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
}, {
|
|
155
|
-
key: "getLoader",
|
|
156
|
-
value: function getLoader(hostname) {
|
|
157
|
-
if (!this.loadersByDomain[hostname]) {
|
|
158
|
-
this.loadersByDomain[hostname] = this.createLoader();
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
return this.loadersByDomain[hostname];
|
|
162
|
-
}
|
|
163
|
-
}, {
|
|
164
|
-
key: "prefetchData",
|
|
165
|
-
value: function () {
|
|
166
|
-
var _prefetchData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(url) {
|
|
167
|
-
var _this2 = this;
|
|
168
|
-
|
|
169
|
-
var hostname, loader, response, retriedResponse;
|
|
170
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
171
|
-
while (1) {
|
|
172
|
-
switch (_context3.prev = _context3.next) {
|
|
173
|
-
case 0:
|
|
174
|
-
// 1. Queue the URL as part of a dataloader batch.
|
|
175
|
-
hostname = new URL(url).hostname;
|
|
176
|
-
loader = this.getLoader(hostname);
|
|
177
|
-
_context3.next = 4;
|
|
178
|
-
return loader.load(url);
|
|
179
|
-
|
|
180
|
-
case 4:
|
|
181
|
-
response = _context3.sent;
|
|
182
|
-
|
|
183
|
-
if (!(0, _responses.isSuccessfulResponse)(response)) {
|
|
184
|
-
_context3.next = 9;
|
|
185
|
-
break;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
return _context3.abrupt("return", response.body);
|
|
189
|
-
|
|
190
|
-
case 9:
|
|
191
|
-
_context3.prev = 9;
|
|
192
|
-
_context3.next = 12;
|
|
193
|
-
return (0, _asyncRetry.default)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
194
|
-
var _response;
|
|
195
|
-
|
|
196
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
197
|
-
while (1) {
|
|
198
|
-
switch (_context2.prev = _context2.next) {
|
|
199
|
-
case 0:
|
|
200
|
-
if (_this2.resolvedCache[url]) {
|
|
201
|
-
_context2.next = 11;
|
|
202
|
-
break;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
_context2.next = 3;
|
|
206
|
-
return loader.load(url);
|
|
207
|
-
|
|
208
|
-
case 3:
|
|
209
|
-
_response = _context2.sent;
|
|
210
|
-
|
|
211
|
-
if (!(0, _responses.isSuccessfulResponse)(_response)) {
|
|
212
|
-
_context2.next = 8;
|
|
213
|
-
break;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
return _context2.abrupt("return", _response);
|
|
217
|
-
|
|
218
|
-
case 8:
|
|
219
|
-
throw new Error('Retry for URL failed');
|
|
220
|
-
|
|
221
|
-
case 9:
|
|
222
|
-
_context2.next = 12;
|
|
223
|
-
break;
|
|
224
|
-
|
|
225
|
-
case 11:
|
|
226
|
-
throw new Error('Retry unneeded - link has been resolved.');
|
|
227
|
-
|
|
228
|
-
case 12:
|
|
229
|
-
case "end":
|
|
230
|
-
return _context2.stop();
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}, _callee2);
|
|
234
|
-
})), this.retryConfig);
|
|
235
|
-
|
|
236
|
-
case 12:
|
|
237
|
-
retriedResponse = _context3.sent;
|
|
238
|
-
return _context3.abrupt("return", retriedResponse.body);
|
|
239
|
-
|
|
240
|
-
case 16:
|
|
241
|
-
_context3.prev = 16;
|
|
242
|
-
_context3.t0 = _context3["catch"](9);
|
|
243
|
-
return _context3.abrupt("return", undefined);
|
|
244
|
-
|
|
245
|
-
case 19:
|
|
246
|
-
case "end":
|
|
247
|
-
return _context3.stop();
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}, _callee3, this, [[9, 16]]);
|
|
251
|
-
}));
|
|
252
|
-
|
|
253
|
-
function prefetchData(_x2) {
|
|
254
|
-
return _prefetchData.apply(this, arguments);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
return prefetchData;
|
|
258
|
-
}()
|
|
259
|
-
}, {
|
|
260
|
-
key: "fetchData",
|
|
261
|
-
value: function () {
|
|
262
|
-
var _fetchData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(url) {
|
|
263
|
-
var hostname, loader, response, errorType, errorMessage;
|
|
264
|
-
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
265
|
-
while (1) {
|
|
266
|
-
switch (_context4.prev = _context4.next) {
|
|
267
|
-
case 0:
|
|
268
|
-
hostname = new URL(url).hostname;
|
|
269
|
-
loader = this.getLoader(hostname);
|
|
270
|
-
_context4.next = 4;
|
|
271
|
-
return loader.load(url);
|
|
272
|
-
|
|
273
|
-
case 4:
|
|
274
|
-
response = _context4.sent;
|
|
275
|
-
|
|
276
|
-
if ((0, _responses.isSuccessfulResponse)(response)) {
|
|
277
|
-
_context4.next = 23;
|
|
278
|
-
break;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
if (!response.error) {
|
|
282
|
-
_context4.next = 20;
|
|
283
|
-
break;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
errorType = response.error.type;
|
|
287
|
-
errorMessage = response.error.message; // this means there was a network error and we fallback to blue link
|
|
288
|
-
// without impacting SLO's
|
|
289
|
-
|
|
290
|
-
if (!(response.error instanceof api.NetworkError)) {
|
|
291
|
-
_context4.next = 11;
|
|
292
|
-
break;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
throw new _errors.APIError('fallback', hostname, errorMessage, errorType);
|
|
296
|
-
|
|
297
|
-
case 11:
|
|
298
|
-
_context4.t0 = errorType;
|
|
299
|
-
_context4.next = _context4.t0 === 'ResolveBadRequestError' ? 14 : _context4.t0 === 'ResolveAuthError' ? 15 : _context4.t0 === 'ResolveUnsupportedError' ? 16 : _context4.t0 === 'ResolveFailedError' ? 17 : _context4.t0 === 'ResolveTimeoutError' ? 18 : _context4.t0 === 'InternalServerError' ? 19 : 20;
|
|
300
|
-
break;
|
|
301
|
-
|
|
302
|
-
case 14:
|
|
303
|
-
throw new _errors.APIError('fallback', hostname, errorMessage, errorType);
|
|
304
|
-
|
|
305
|
-
case 15:
|
|
306
|
-
throw new _errors.APIError('auth', hostname, errorMessage, errorType);
|
|
307
|
-
|
|
308
|
-
case 16:
|
|
309
|
-
throw new _errors.APIError('fatal', hostname, errorMessage, errorType);
|
|
310
|
-
|
|
311
|
-
case 17:
|
|
312
|
-
throw new _errors.APIError('error', hostname, errorMessage, errorType);
|
|
313
|
-
|
|
314
|
-
case 18:
|
|
315
|
-
throw new _errors.APIError('error', hostname, errorMessage, errorType);
|
|
316
|
-
|
|
317
|
-
case 19:
|
|
318
|
-
throw new _errors.APIError('error', hostname, errorMessage, errorType);
|
|
319
|
-
|
|
320
|
-
case 20:
|
|
321
|
-
throw new _errors.APIError('fatal', hostname, response.toString(), 'UnexpectedError');
|
|
322
|
-
|
|
323
|
-
case 23:
|
|
324
|
-
// Set a flag in the `resolvedCache` for this URL. The intent of this is
|
|
325
|
-
// to ensure that the exponential backoff method in `prefetchData` does
|
|
326
|
-
// not continue to retry fetching for this URL, especially if it was previously
|
|
327
|
-
// in a failed state. Note: this scenario only occurs on initial page load, if the
|
|
328
|
-
// user scrolls through the page very fast. Once the URL is visible, prefetching
|
|
329
|
-
// no longer takes place.
|
|
330
|
-
this.resolvedCache[url] = true; // Return the JSON-LD response back up!
|
|
331
|
-
|
|
332
|
-
return _context4.abrupt("return", response.body);
|
|
333
|
-
|
|
334
|
-
case 25:
|
|
335
|
-
case "end":
|
|
336
|
-
return _context4.stop();
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
}, _callee4, this);
|
|
340
|
-
}));
|
|
341
|
-
|
|
342
|
-
function fetchData(_x3) {
|
|
343
|
-
return _fetchData.apply(this, arguments);
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
return fetchData;
|
|
347
|
-
}()
|
|
348
|
-
}, {
|
|
349
|
-
key: "postData",
|
|
350
|
-
value: function () {
|
|
351
|
-
var _postData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(data) {
|
|
352
|
-
var request;
|
|
353
|
-
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
354
|
-
while (1) {
|
|
355
|
-
switch (_context5.prev = _context5.next) {
|
|
356
|
-
case 0:
|
|
357
|
-
request = {
|
|
358
|
-
key: data.key,
|
|
359
|
-
action: data.action,
|
|
360
|
-
context: data.context
|
|
361
|
-
};
|
|
362
|
-
_context5.next = 3;
|
|
363
|
-
return api.request('post', "".concat(this.resolverUrl, "/invoke"), request);
|
|
364
|
-
|
|
365
|
-
case 3:
|
|
366
|
-
return _context5.abrupt("return", _context5.sent);
|
|
367
|
-
|
|
368
|
-
case 4:
|
|
369
|
-
case "end":
|
|
370
|
-
return _context5.stop();
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
}, _callee5, this);
|
|
374
|
-
}));
|
|
375
|
-
|
|
376
|
-
function postData(_x4) {
|
|
377
|
-
return _postData.apply(this, arguments);
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
return postData;
|
|
381
|
-
}()
|
|
382
|
-
}]);
|
|
383
|
-
return CardClient;
|
|
384
|
-
}();
|
|
385
|
-
|
|
386
|
-
exports.default = CardClient;
|
|
13
|
+
var _linkProvider = require("@atlaskit/link-provider");
|
|
@@ -9,12 +9,12 @@ exports.extractEmbedProps = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
12
|
-
var _linkingCommon = require("@atlaskit/linking-common");
|
|
13
|
-
|
|
14
12
|
var _primitives = require("../common/primitives");
|
|
15
13
|
|
|
16
14
|
var _context = require("../common/context");
|
|
17
15
|
|
|
16
|
+
var _linkingCommon = require("@atlaskit/linking-common");
|
|
17
|
+
|
|
18
18
|
var _extractIsTrusted = require("../common/meta/extractIsTrusted");
|
|
19
19
|
|
|
20
20
|
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; }
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.extractMetadata = void 0;
|
|
7
|
+
|
|
8
|
+
var _constants = require("../../constants");
|
|
9
|
+
|
|
10
|
+
var elementNamesToItems = function elementNamesToItems(elementNames) {
|
|
11
|
+
return elementNames.filter(function (element) {
|
|
12
|
+
return element in _constants.ElementName;
|
|
13
|
+
}).map(function (elementName) {
|
|
14
|
+
return {
|
|
15
|
+
name: elementName,
|
|
16
|
+
testId: "".concat(elementName.toLowerCase(), "-metadata-element")
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
var extractMetadata = function extractMetadata(jsonLd) {
|
|
22
|
+
var _jsonLd$metadata, _metadata$primary, _metadata$secondary;
|
|
23
|
+
|
|
24
|
+
var metadata = (_jsonLd$metadata = jsonLd.metadata) !== null && _jsonLd$metadata !== void 0 ? _jsonLd$metadata : [];
|
|
25
|
+
return {
|
|
26
|
+
primary: elementNamesToItems((_metadata$primary = metadata.primary) !== null && _metadata$primary !== void 0 ? _metadata$primary : []),
|
|
27
|
+
secondary: elementNamesToItems((_metadata$secondary = metadata.secondary) !== null && _metadata$secondary !== void 0 ? _metadata$secondary : [])
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
exports.extractMetadata = extractMetadata;
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
Object.defineProperty(exports, "APIError", {
|
|
9
7
|
enumerable: true,
|
|
10
8
|
get: function get() {
|
|
11
|
-
return
|
|
9
|
+
return _linkingCommon.APIError;
|
|
12
10
|
}
|
|
13
11
|
});
|
|
14
12
|
Object.defineProperty(exports, "ActionName", {
|
|
@@ -26,19 +24,19 @@ Object.defineProperty(exports, "Card", {
|
|
|
26
24
|
Object.defineProperty(exports, "Client", {
|
|
27
25
|
enumerable: true,
|
|
28
26
|
get: function get() {
|
|
29
|
-
return
|
|
27
|
+
return _linkProvider.CardClient;
|
|
30
28
|
}
|
|
31
29
|
});
|
|
32
30
|
Object.defineProperty(exports, "Context", {
|
|
33
31
|
enumerable: true,
|
|
34
32
|
get: function get() {
|
|
35
|
-
return
|
|
33
|
+
return _linkProvider.SmartCardContext;
|
|
36
34
|
}
|
|
37
35
|
});
|
|
38
36
|
Object.defineProperty(exports, "EditorCardProvider", {
|
|
39
37
|
enumerable: true,
|
|
40
38
|
get: function get() {
|
|
41
|
-
return
|
|
39
|
+
return _linkProvider.EditorCardProvider;
|
|
42
40
|
}
|
|
43
41
|
});
|
|
44
42
|
Object.defineProperty(exports, "ElementName", {
|
|
@@ -200,7 +198,7 @@ Object.defineProperty(exports, "contentFooterClassName", {
|
|
|
200
198
|
Object.defineProperty(exports, "editorCardProvider", {
|
|
201
199
|
enumerable: true,
|
|
202
200
|
get: function get() {
|
|
203
|
-
return
|
|
201
|
+
return _linkProvider.editorCardProvider;
|
|
204
202
|
}
|
|
205
203
|
});
|
|
206
204
|
Object.defineProperty(exports, "embedHeaderHeight", {
|
|
@@ -230,16 +228,12 @@ Object.defineProperty(exports, "useSmartLinkEvents", {
|
|
|
230
228
|
|
|
231
229
|
var _state = require("./state");
|
|
232
230
|
|
|
233
|
-
var
|
|
234
|
-
|
|
235
|
-
var _client = _interopRequireDefault(require("./client"));
|
|
231
|
+
var _linkProvider = require("@atlaskit/link-provider");
|
|
236
232
|
|
|
237
|
-
var
|
|
233
|
+
var _linkingCommon = require("@atlaskit/linking-common");
|
|
238
234
|
|
|
239
235
|
var _Card = require("./view/Card");
|
|
240
236
|
|
|
241
|
-
var _context = _interopRequireDefault(require("./state/context"));
|
|
242
|
-
|
|
243
237
|
var _EmbedResizeMessageListener = require("./view/EmbedCard/EmbedResizeMessageListener");
|
|
244
238
|
|
|
245
239
|
var _styled = require("./view/EmbedCard/components/styled");
|
|
@@ -3,19 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ERROR_MESSAGE_OAUTH = exports.ERROR_MESSAGE_FATAL = exports.ANALYTICS_RESOLVING = exports.ANALYTICS_FALLBACK = exports.ANALYTICS_ERROR =
|
|
7
|
-
var ACTION_PENDING = 'pending';
|
|
8
|
-
exports.ACTION_PENDING = ACTION_PENDING;
|
|
9
|
-
var ACTION_RESOLVING = 'resolving';
|
|
10
|
-
exports.ACTION_RESOLVING = ACTION_RESOLVING;
|
|
11
|
-
var ACTION_RESOLVED = 'resolved';
|
|
12
|
-
exports.ACTION_RESOLVED = ACTION_RESOLVED;
|
|
13
|
-
var ACTION_ERROR = 'errored';
|
|
14
|
-
exports.ACTION_ERROR = ACTION_ERROR;
|
|
15
|
-
var ACTION_ERROR_FALLBACK = 'fallback';
|
|
16
|
-
exports.ACTION_ERROR_FALLBACK = ACTION_ERROR_FALLBACK;
|
|
17
|
-
var ACTION_PRELOAD = 'preload';
|
|
18
|
-
exports.ACTION_PRELOAD = ACTION_PRELOAD;
|
|
6
|
+
exports.ERROR_MESSAGE_OAUTH = exports.ERROR_MESSAGE_FATAL = exports.ANALYTICS_RESOLVING = exports.ANALYTICS_FALLBACK = exports.ANALYTICS_ERROR = void 0;
|
|
19
7
|
var ANALYTICS_RESOLVING = 'resolving';
|
|
20
8
|
exports.ANALYTICS_RESOLVING = ANALYTICS_RESOLVING;
|
|
21
9
|
var ANALYTICS_ERROR = 'errored';
|