@atlaskit/smart-card 15.5.0 → 16.2.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 +78 -0
- package/dist/cjs/client/index.js +30 -30
- package/dist/cjs/client/utils/environments.js +1 -1
- package/dist/cjs/extractors/block/index.js +4 -4
- package/dist/cjs/extractors/common/actions/extractPreviewAction.js +4 -3
- package/dist/cjs/in-product.js +43 -0
- package/dist/cjs/index.js +66 -4
- package/dist/cjs/providers/editor/index.js +113 -78
- package/dist/cjs/providers/editor/transformer.js +1 -1
- package/dist/cjs/state/actions/constants.js +1 -5
- package/dist/cjs/state/actions/helpers.js +1 -3
- package/dist/cjs/state/actions/index.js +16 -13
- package/dist/cjs/state/analytics/index.js +32 -84
- package/dist/cjs/state/analytics/ufoExperiences.js +60 -0
- package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +106 -0
- package/dist/cjs/state/context/provider.js +3 -16
- package/dist/cjs/state/helpers.js +1 -2
- package/dist/cjs/state/hooks/useSmartLink.js +6 -6
- package/dist/cjs/state/reducers/index.js +3 -8
- package/dist/cjs/utils/analytics/analytics.js +31 -1
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/BlockCard/index.js +3 -2
- package/dist/cjs/view/CardWithUrl/component-lazy/LazyFallback.js +6 -2
- package/dist/cjs/view/CardWithUrl/component-lazy/index.js +1 -1
- package/dist/cjs/view/CardWithUrl/component.js +10 -4
- package/dist/cjs/view/CardWithUrl/loader.js +110 -133
- package/dist/cjs/view/EmbedCard/{IframelyResizeMessageListener.js → EmbedResizeMessageListener.js} +11 -19
- package/dist/cjs/view/SmartLinkEvents/useSmartLinkEvents.js +21 -0
- package/dist/es2019/client/index.js +47 -43
- package/dist/es2019/client/utils/environments.js +1 -1
- package/dist/es2019/extractors/block/index.js +4 -4
- package/dist/es2019/extractors/common/actions/extractPreviewAction.js +4 -4
- package/dist/es2019/in-product.js +1 -0
- package/dist/es2019/index.js +7 -2
- package/dist/es2019/providers/editor/index.js +18 -6
- package/dist/es2019/providers/editor/transformer.js +1 -1
- package/dist/es2019/state/actions/constants.js +0 -2
- package/dist/es2019/state/actions/helpers.js +1 -3
- package/dist/es2019/state/actions/index.js +12 -11
- package/dist/es2019/state/analytics/index.js +2 -40
- package/dist/es2019/state/analytics/ufoExperiences.js +40 -0
- package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +62 -0
- package/dist/es2019/state/context/provider.js +2 -8
- package/dist/es2019/state/helpers.js +1 -2
- package/dist/es2019/state/hooks/useSmartLink.js +4 -5
- package/dist/es2019/state/reducers/index.js +3 -8
- package/dist/es2019/utils/analytics/analytics.js +16 -0
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/BlockCard/index.js +3 -2
- package/dist/es2019/view/CardWithUrl/component-lazy/LazyFallback.js +3 -1
- package/dist/es2019/view/CardWithUrl/component-lazy/index.js +1 -1
- package/dist/es2019/view/CardWithUrl/component.js +10 -4
- package/dist/es2019/view/CardWithUrl/loader.js +87 -89
- package/dist/es2019/view/EmbedCard/{IframelyResizeMessageListener.js → EmbedResizeMessageListener.js} +3 -10
- package/dist/es2019/view/SmartLinkEvents/useSmartLinkEvents.js +10 -0
- package/dist/esm/client/index.js +30 -31
- package/dist/esm/client/utils/environments.js +1 -1
- package/dist/esm/extractors/block/index.js +4 -4
- package/dist/esm/extractors/common/actions/extractPreviewAction.js +4 -3
- package/dist/esm/in-product.js +1 -0
- package/dist/esm/index.js +7 -2
- package/dist/esm/providers/editor/index.js +110 -78
- package/dist/esm/providers/editor/transformer.js +1 -1
- package/dist/esm/state/actions/constants.js +0 -2
- package/dist/esm/state/actions/helpers.js +1 -3
- package/dist/esm/state/actions/index.js +15 -13
- package/dist/esm/state/analytics/index.js +2 -80
- package/dist/esm/state/analytics/ufoExperiences.js +40 -0
- package/dist/esm/state/analytics/useSmartLinkAnalytics.js +94 -0
- package/dist/esm/state/context/provider.js +3 -15
- package/dist/esm/state/helpers.js +1 -2
- package/dist/esm/state/hooks/useSmartLink.js +6 -6
- package/dist/esm/state/reducers/index.js +3 -8
- package/dist/esm/utils/analytics/analytics.js +26 -0
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/BlockCard/index.js +3 -2
- package/dist/esm/view/CardWithUrl/component-lazy/LazyFallback.js +3 -1
- package/dist/esm/view/CardWithUrl/component-lazy/index.js +1 -1
- package/dist/esm/view/CardWithUrl/component.js +10 -4
- package/dist/esm/view/CardWithUrl/loader.js +103 -127
- package/dist/esm/view/EmbedCard/{IframelyResizeMessageListener.js → EmbedResizeMessageListener.js} +9 -16
- package/dist/esm/view/SmartLinkEvents/useSmartLinkEvents.js +12 -0
- package/dist/types/__tests_external__/index.d.ts +6 -0
- package/dist/types/__tests_external__/page-objects/BaseCard.d.ts +18 -0
- package/dist/types/__tests_external__/page-objects/BlockCard.d.ts +6 -0
- package/dist/types/__tests_external__/page-objects/EmbedCard.d.ts +6 -0
- package/dist/types/__tests_external__/page-objects/InlineCard.d.ts +6 -0
- package/dist/types/__tests_external__/test-cases/card.d.ts +3 -0
- package/dist/types/__tests_external__/test-cases/embed.d.ts +3 -0
- package/dist/types/__tests_external__/test-cases/inline.d.ts +3 -0
- package/dist/types/__tests_external__/test-cases/types.d.ts +5 -0
- package/dist/types/client/index.d.ts +1 -0
- package/dist/types/extractors/block/index.d.ts +2 -2
- package/dist/types/extractors/common/__mocks__/jsonld.d.ts +61 -0
- package/dist/types/extractors/common/actions/extractPreviewAction.d.ts +1 -1
- package/dist/types/in-product.d.ts +1 -0
- package/dist/types/index.d.ts +5 -1
- package/dist/types/providers/editor/index.d.ts +3 -0
- package/dist/types/state/actions/constants.d.ts +0 -2
- package/dist/types/state/actions/types.d.ts +0 -2
- package/dist/types/state/analytics/index.d.ts +3 -32
- package/dist/types/state/analytics/ufoExperiences.d.ts +7 -0
- package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +30 -0
- package/dist/types/state/context/provider.d.ts +1 -1
- package/dist/types/state/context/types.d.ts +4 -2
- package/dist/types/state/hooks/useSmartLink.d.ts +4 -5
- package/dist/types/state/store/types.d.ts +2 -1
- package/dist/types/utils/analytics/analytics.d.ts +3 -0
- package/dist/types/utils/types.d.ts +1 -1
- package/dist/types/view/BlockCard/types.d.ts +2 -1
- package/dist/types/view/CardWithUrl/component-lazy/LazyFallback.d.ts +1 -0
- package/dist/types/view/CardWithUrl/component-lazy/index.d.ts +1 -1
- package/dist/types/view/CardWithUrl/loader.d.ts +1 -15
- package/dist/types/view/EmbedCard/{IframelyResizeMessageListener.d.ts → EmbedResizeMessageListener.d.ts} +1 -1
- package/dist/types/view/SmartLinkEvents/useSmartLinkEvents.d.ts +2 -0
- package/in-product/package.json +7 -0
- package/package.json +25 -20
|
@@ -17,6 +17,10 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
17
17
|
|
|
18
18
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
19
|
|
|
20
|
+
require("setimmediate");
|
|
21
|
+
|
|
22
|
+
var _dataloader = _interopRequireDefault(require("dataloader"));
|
|
23
|
+
|
|
20
24
|
var _transformer = require("./transformer");
|
|
21
25
|
|
|
22
26
|
var _environments = require("../../client/utils/environments");
|
|
@@ -27,8 +31,14 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
27
31
|
|
|
28
32
|
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; }
|
|
29
33
|
|
|
34
|
+
// import setimmediate to temporary fix dataloader 2.0.0 bug
|
|
35
|
+
// @see https://github.com/graphql/dataloader/issues/249
|
|
36
|
+
var BATCH_WAIT_TIME = 50;
|
|
37
|
+
|
|
30
38
|
var EditorCardProvider = /*#__PURE__*/function () {
|
|
31
39
|
function EditorCardProvider(envKey) {
|
|
40
|
+
var _this = this;
|
|
41
|
+
|
|
32
42
|
(0, _classCallCheck2.default)(this, EditorCardProvider);
|
|
33
43
|
this.baseUrl = (0, _environments.getBaseUrl)(envKey);
|
|
34
44
|
this.resolverUrl = (0, _environments.getResolverUrl)(envKey);
|
|
@@ -36,44 +46,83 @@ var EditorCardProvider = /*#__PURE__*/function () {
|
|
|
36
46
|
this.requestHeaders = {
|
|
37
47
|
Origin: this.baseUrl
|
|
38
48
|
};
|
|
49
|
+
this.patternLoader = new _dataloader.default(function (keys) {
|
|
50
|
+
return _this.batchPatterns(keys);
|
|
51
|
+
}, {
|
|
52
|
+
batchScheduleFn: function batchScheduleFn(callback) {
|
|
53
|
+
return setTimeout(callback, BATCH_WAIT_TIME);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
39
56
|
}
|
|
40
57
|
|
|
41
58
|
(0, _createClass2.default)(EditorCardProvider, [{
|
|
42
|
-
key: "
|
|
59
|
+
key: "batchPatterns",
|
|
43
60
|
value: function () {
|
|
44
|
-
var
|
|
45
|
-
var
|
|
61
|
+
var _batchPatterns = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(keys) {
|
|
62
|
+
var patterns;
|
|
46
63
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
47
64
|
while (1) {
|
|
48
65
|
switch (_context.prev = _context.next) {
|
|
49
66
|
case 0:
|
|
50
|
-
_context.
|
|
67
|
+
_context.next = 2;
|
|
68
|
+
return this.fetchPatterns();
|
|
69
|
+
|
|
70
|
+
case 2:
|
|
71
|
+
patterns = _context.sent;
|
|
72
|
+
return _context.abrupt("return", keys.map(function () {
|
|
73
|
+
return patterns;
|
|
74
|
+
}));
|
|
75
|
+
|
|
76
|
+
case 4:
|
|
77
|
+
case "end":
|
|
78
|
+
return _context.stop();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}, _callee, this);
|
|
82
|
+
}));
|
|
83
|
+
|
|
84
|
+
function batchPatterns(_x) {
|
|
85
|
+
return _batchPatterns.apply(this, arguments);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return batchPatterns;
|
|
89
|
+
}()
|
|
90
|
+
}, {
|
|
91
|
+
key: "check",
|
|
92
|
+
value: function () {
|
|
93
|
+
var _check = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(resourceUrl) {
|
|
94
|
+
var endpoint, response;
|
|
95
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
96
|
+
while (1) {
|
|
97
|
+
switch (_context2.prev = _context2.next) {
|
|
98
|
+
case 0:
|
|
99
|
+
_context2.prev = 0;
|
|
51
100
|
endpoint = "".concat(this.resolverUrl, "/check");
|
|
52
|
-
|
|
101
|
+
_context2.next = 4;
|
|
53
102
|
return api.request('post', endpoint, {
|
|
54
103
|
resourceUrl: resourceUrl
|
|
55
104
|
}, this.requestHeaders);
|
|
56
105
|
|
|
57
106
|
case 4:
|
|
58
|
-
response =
|
|
59
|
-
return
|
|
107
|
+
response = _context2.sent;
|
|
108
|
+
return _context2.abrupt("return", response.isSupported);
|
|
60
109
|
|
|
61
110
|
case 8:
|
|
62
|
-
|
|
63
|
-
|
|
111
|
+
_context2.prev = 8;
|
|
112
|
+
_context2.t0 = _context2["catch"](0);
|
|
64
113
|
// eslint-disable-next-line
|
|
65
|
-
console.error('failed to fetch /check',
|
|
66
|
-
return
|
|
114
|
+
console.error('failed to fetch /check', _context2.t0);
|
|
115
|
+
return _context2.abrupt("return", undefined);
|
|
67
116
|
|
|
68
117
|
case 12:
|
|
69
118
|
case "end":
|
|
70
|
-
return
|
|
119
|
+
return _context2.stop();
|
|
71
120
|
}
|
|
72
121
|
}
|
|
73
|
-
},
|
|
122
|
+
}, _callee2, this, [[0, 8]]);
|
|
74
123
|
}));
|
|
75
124
|
|
|
76
|
-
function check(
|
|
125
|
+
function check(_x2) {
|
|
77
126
|
return _check.apply(this, arguments);
|
|
78
127
|
}
|
|
79
128
|
|
|
@@ -82,20 +131,20 @@ var EditorCardProvider = /*#__PURE__*/function () {
|
|
|
82
131
|
}, {
|
|
83
132
|
key: "fetchPatterns",
|
|
84
133
|
value: function () {
|
|
85
|
-
var _fetchPatterns = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
134
|
+
var _fetchPatterns = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
86
135
|
var endpoint, response;
|
|
87
|
-
return _regenerator.default.wrap(function
|
|
136
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
88
137
|
while (1) {
|
|
89
|
-
switch (
|
|
138
|
+
switch (_context3.prev = _context3.next) {
|
|
90
139
|
case 0:
|
|
91
|
-
|
|
140
|
+
_context3.prev = 0;
|
|
92
141
|
endpoint = "".concat(this.resolverUrl, "/providers");
|
|
93
|
-
|
|
142
|
+
_context3.next = 4;
|
|
94
143
|
return api.request('post', endpoint, undefined, this.requestHeaders);
|
|
95
144
|
|
|
96
145
|
case 4:
|
|
97
|
-
response =
|
|
98
|
-
return
|
|
146
|
+
response = _context3.sent;
|
|
147
|
+
return _context3.abrupt("return", response.providers.reduce(function (allSources, provider) {
|
|
99
148
|
var providerSources = provider.patterns.map(function (pattern) {
|
|
100
149
|
return pattern.source;
|
|
101
150
|
});
|
|
@@ -103,18 +152,18 @@ var EditorCardProvider = /*#__PURE__*/function () {
|
|
|
103
152
|
}, []));
|
|
104
153
|
|
|
105
154
|
case 8:
|
|
106
|
-
|
|
107
|
-
|
|
155
|
+
_context3.prev = 8;
|
|
156
|
+
_context3.t0 = _context3["catch"](0);
|
|
108
157
|
// eslint-disable-next-line
|
|
109
|
-
console.error('failed to fetch /providers',
|
|
110
|
-
return
|
|
158
|
+
console.error('failed to fetch /providers', _context3.t0);
|
|
159
|
+
return _context3.abrupt("return", undefined);
|
|
111
160
|
|
|
112
161
|
case 12:
|
|
113
162
|
case "end":
|
|
114
|
-
return
|
|
163
|
+
return _context3.stop();
|
|
115
164
|
}
|
|
116
165
|
}
|
|
117
|
-
},
|
|
166
|
+
}, _callee3, this, [[0, 8]]);
|
|
118
167
|
}));
|
|
119
168
|
|
|
120
169
|
function fetchPatterns() {
|
|
@@ -126,50 +175,36 @@ var EditorCardProvider = /*#__PURE__*/function () {
|
|
|
126
175
|
}, {
|
|
127
176
|
key: "findPattern",
|
|
128
177
|
value: function () {
|
|
129
|
-
var _findPattern = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
130
|
-
|
|
131
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
178
|
+
var _findPattern = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(url) {
|
|
179
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
132
180
|
while (1) {
|
|
133
|
-
switch (
|
|
181
|
+
switch (_context4.prev = _context4.next) {
|
|
134
182
|
case 0:
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
if (_context3.t0) {
|
|
138
|
-
_context3.next = 5;
|
|
183
|
+
if (this.patterns) {
|
|
184
|
+
_context4.next = 4;
|
|
139
185
|
break;
|
|
140
186
|
}
|
|
141
187
|
|
|
142
|
-
|
|
143
|
-
return this.
|
|
144
|
-
|
|
145
|
-
case 4:
|
|
146
|
-
_context3.t0 = _context3.sent;
|
|
147
|
-
|
|
148
|
-
case 5:
|
|
149
|
-
patterns = _context3.t0;
|
|
188
|
+
_context4.next = 3;
|
|
189
|
+
return this.patternLoader.load('providers');
|
|
150
190
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
191
|
+
case 3:
|
|
192
|
+
this.patterns = _context4.sent;
|
|
155
193
|
|
|
156
|
-
|
|
157
|
-
return
|
|
194
|
+
case 4:
|
|
195
|
+
return _context4.abrupt("return", this.patterns ? this.patterns.some(function (pattern) {
|
|
158
196
|
return url.match(pattern);
|
|
159
|
-
}));
|
|
160
|
-
|
|
161
|
-
case 9:
|
|
162
|
-
return _context3.abrupt("return", false);
|
|
197
|
+
}) : false);
|
|
163
198
|
|
|
164
|
-
case
|
|
199
|
+
case 5:
|
|
165
200
|
case "end":
|
|
166
|
-
return
|
|
201
|
+
return _context4.stop();
|
|
167
202
|
}
|
|
168
203
|
}
|
|
169
|
-
},
|
|
204
|
+
}, _callee4, this);
|
|
170
205
|
}));
|
|
171
206
|
|
|
172
|
-
function findPattern(
|
|
207
|
+
function findPattern(_x3) {
|
|
173
208
|
return _findPattern.apply(this, arguments);
|
|
174
209
|
}
|
|
175
210
|
|
|
@@ -178,62 +213,62 @@ var EditorCardProvider = /*#__PURE__*/function () {
|
|
|
178
213
|
}, {
|
|
179
214
|
key: "resolve",
|
|
180
215
|
value: function () {
|
|
181
|
-
var _resolve = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
216
|
+
var _resolve = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(url, appearance) {
|
|
182
217
|
var isSupported;
|
|
183
|
-
return _regenerator.default.wrap(function
|
|
218
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
184
219
|
while (1) {
|
|
185
|
-
switch (
|
|
220
|
+
switch (_context5.prev = _context5.next) {
|
|
186
221
|
case 0:
|
|
187
|
-
|
|
188
|
-
|
|
222
|
+
_context5.prev = 0;
|
|
223
|
+
_context5.next = 3;
|
|
189
224
|
return this.findPattern(url);
|
|
190
225
|
|
|
191
226
|
case 3:
|
|
192
|
-
|
|
227
|
+
_context5.t0 = _context5.sent;
|
|
193
228
|
|
|
194
|
-
if (
|
|
195
|
-
|
|
229
|
+
if (_context5.t0) {
|
|
230
|
+
_context5.next = 8;
|
|
196
231
|
break;
|
|
197
232
|
}
|
|
198
233
|
|
|
199
|
-
|
|
234
|
+
_context5.next = 7;
|
|
200
235
|
return this.check(url);
|
|
201
236
|
|
|
202
237
|
case 7:
|
|
203
|
-
|
|
238
|
+
_context5.t0 = _context5.sent;
|
|
204
239
|
|
|
205
240
|
case 8:
|
|
206
|
-
isSupported =
|
|
241
|
+
isSupported = _context5.t0;
|
|
207
242
|
|
|
208
243
|
if (!isSupported) {
|
|
209
|
-
|
|
244
|
+
_context5.next = 11;
|
|
210
245
|
break;
|
|
211
246
|
}
|
|
212
247
|
|
|
213
|
-
return
|
|
248
|
+
return _context5.abrupt("return", this.transformer.toAdf(url, appearance));
|
|
214
249
|
|
|
215
250
|
case 11:
|
|
216
|
-
|
|
251
|
+
_context5.next = 16;
|
|
217
252
|
break;
|
|
218
253
|
|
|
219
254
|
case 13:
|
|
220
|
-
|
|
221
|
-
|
|
255
|
+
_context5.prev = 13;
|
|
256
|
+
_context5.t1 = _context5["catch"](0);
|
|
222
257
|
// eslint-disable-next-line
|
|
223
|
-
console.warn("Error when trying to check Smart Card url \"".concat(url, " - ").concat(
|
|
258
|
+
console.warn("Error when trying to check Smart Card url \"".concat(url, " - ").concat(_context5.t1.prototype.name, " ").concat(_context5.t1.message), _context5.t1);
|
|
224
259
|
|
|
225
260
|
case 16:
|
|
226
|
-
return
|
|
261
|
+
return _context5.abrupt("return", Promise.reject(undefined));
|
|
227
262
|
|
|
228
263
|
case 17:
|
|
229
264
|
case "end":
|
|
230
|
-
return
|
|
265
|
+
return _context5.stop();
|
|
231
266
|
}
|
|
232
267
|
}
|
|
233
|
-
},
|
|
268
|
+
}, _callee5, this, [[0, 13]]);
|
|
234
269
|
}));
|
|
235
270
|
|
|
236
|
-
function resolve(
|
|
271
|
+
function resolve(_x4, _x5) {
|
|
237
272
|
return _resolve.apply(this, arguments);
|
|
238
273
|
}
|
|
239
274
|
|
|
@@ -16,7 +16,7 @@ var isJiraRoadMap = function isJiraRoadMap(url) {
|
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
var isPolarisView = function isPolarisView(url) {
|
|
19
|
-
return url.match(/^https:\/\/.*?\/jira\/polaris\/projects\/[^\/]+?\/ideas\/view\/\d+/);
|
|
19
|
+
return url.match(/^https:\/\/.*?\/jira\/polaris\/projects\/[^\/]+?\/ideas\/view\/\d+$|^https:\/\/.*?\/secure\/JiraProductDiscoveryAnonymous\.jspa\?hash=\w+|^https:\/\/.*?\/jira\/polaris\/share\/\w+/);
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
var isSlackMessage = function isSlackMessage(url) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ERROR_MESSAGE_FATAL = exports.ERROR_MESSAGE_OAUTH = exports.
|
|
6
|
+
exports.ERROR_MESSAGE_FATAL = exports.ERROR_MESSAGE_OAUTH = exports.ANALYTICS_FALLBACK = exports.ANALYTICS_ERROR = exports.ANALYTICS_RESOLVING = exports.ACTION_PRELOAD = exports.ACTION_ERROR_FALLBACK = exports.ACTION_ERROR = exports.ACTION_RESOLVED = exports.ACTION_RESOLVING = exports.ACTION_PENDING = void 0;
|
|
7
7
|
var ACTION_PENDING = 'pending';
|
|
8
8
|
exports.ACTION_PENDING = ACTION_PENDING;
|
|
9
9
|
var ACTION_RESOLVING = 'resolving';
|
|
@@ -22,10 +22,6 @@ var ANALYTICS_ERROR = 'errored';
|
|
|
22
22
|
exports.ANALYTICS_ERROR = ANALYTICS_ERROR;
|
|
23
23
|
var ANALYTICS_FALLBACK = 'fallback';
|
|
24
24
|
exports.ANALYTICS_FALLBACK = ANALYTICS_FALLBACK;
|
|
25
|
-
var MAX_LOADING_DELAY = 1200;
|
|
26
|
-
exports.MAX_LOADING_DELAY = MAX_LOADING_DELAY;
|
|
27
|
-
var MAX_RELOAD_DELAY = 60 * 1000;
|
|
28
|
-
exports.MAX_RELOAD_DELAY = MAX_RELOAD_DELAY;
|
|
29
25
|
var ERROR_MESSAGE_OAUTH = 'Provider.authFlow is not set to OAuth2.';
|
|
30
26
|
exports.ERROR_MESSAGE_OAUTH = ERROR_MESSAGE_OAUTH;
|
|
31
27
|
var ERROR_MESSAGE_FATAL = 'Fatal error resolving URL';
|
|
@@ -6,12 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.cardAction = void 0;
|
|
7
7
|
|
|
8
8
|
var cardAction = function cardAction(type, _ref, payload, error) {
|
|
9
|
-
var url = _ref.url
|
|
10
|
-
hasExpired = _ref.hasExpired;
|
|
9
|
+
var url = _ref.url;
|
|
11
10
|
return {
|
|
12
11
|
type: type,
|
|
13
12
|
url: url,
|
|
14
|
-
hasExpired: hasExpired,
|
|
15
13
|
payload: payload,
|
|
16
14
|
error: error
|
|
17
15
|
};
|
|
@@ -31,6 +31,8 @@ var _errors = require("../../client/errors");
|
|
|
31
31
|
|
|
32
32
|
var _jsonld = require("../../utils/jsonld");
|
|
33
33
|
|
|
34
|
+
var _analytics = require("../analytics");
|
|
35
|
+
|
|
34
36
|
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); }
|
|
35
37
|
|
|
36
38
|
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; }
|
|
@@ -46,16 +48,13 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
|
|
|
46
48
|
|
|
47
49
|
var _ref = getState()[url] || {
|
|
48
50
|
status: 'pending',
|
|
49
|
-
lastUpdatedAt: Date.now(),
|
|
50
51
|
details: undefined
|
|
51
52
|
},
|
|
52
53
|
details = _ref.details,
|
|
53
|
-
lastUpdatedAt = _ref.lastUpdatedAt,
|
|
54
54
|
status = _ref.status;
|
|
55
55
|
|
|
56
56
|
var hasAuthFlowSupported = config.authFlow !== 'disabled';
|
|
57
57
|
var hasData = !!(details && details.data);
|
|
58
|
-
var hasExpired = Date.now() - lastUpdatedAt >= config.maxAge;
|
|
59
58
|
var handleResolvedLinkError = (0, _react.useCallback)(function (url, error) {
|
|
60
59
|
if (error.kind === 'fatal') {
|
|
61
60
|
// If there's no previous data in the store for this URL, then bail
|
|
@@ -112,10 +111,9 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
|
|
|
112
111
|
|
|
113
112
|
|
|
114
113
|
dispatch((0, _helpers.cardAction)(_constants.ACTION_RESOLVED, {
|
|
115
|
-
url: resourceUrl
|
|
116
|
-
hasExpired: hasExpired && !hasData
|
|
114
|
+
url: resourceUrl
|
|
117
115
|
}, response));
|
|
118
|
-
}, [dispatch, handleResolvedLinkError,
|
|
116
|
+
}, [dispatch, handleResolvedLinkError, hasAuthFlowSupported]);
|
|
119
117
|
var resolve = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
120
118
|
var resourceUrl,
|
|
121
119
|
isReloading,
|
|
@@ -127,8 +125,8 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
|
|
|
127
125
|
resourceUrl = _args.length > 0 && _args[0] !== undefined ? _args[0] : url;
|
|
128
126
|
isReloading = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;
|
|
129
127
|
|
|
130
|
-
if (!(isReloading ||
|
|
131
|
-
_context.next =
|
|
128
|
+
if (!(isReloading || !hasData)) {
|
|
129
|
+
_context.next = 6;
|
|
132
130
|
break;
|
|
133
131
|
}
|
|
134
132
|
|
|
@@ -138,13 +136,18 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
|
|
|
138
136
|
return handleResolvedLinkError(resourceUrl, error);
|
|
139
137
|
}));
|
|
140
138
|
|
|
141
|
-
case
|
|
139
|
+
case 6:
|
|
140
|
+
(0, _analytics.addMetadataToExperience)('smart-link-rendered', id, {
|
|
141
|
+
cached: true
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
case 7:
|
|
142
145
|
case "end":
|
|
143
146
|
return _context.stop();
|
|
144
147
|
}
|
|
145
148
|
}
|
|
146
149
|
}, _callee);
|
|
147
|
-
})), [url, hasData,
|
|
150
|
+
})), [url, hasData, connections.client, handleResolvedLinkResponse, handleResolvedLinkError, id]);
|
|
148
151
|
var register = (0, _react.useCallback)(function () {
|
|
149
152
|
if (!details) {
|
|
150
153
|
dispatch((0, _helpers.cardAction)(_constants.ACTION_PENDING, {
|
|
@@ -182,10 +185,10 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
|
|
|
182
185
|
analytics.screen.authPopupEvent(definitionId, extensionKey);
|
|
183
186
|
(0, _outboundAuthFlowClient.auth)(services[0].url).then(function () {
|
|
184
187
|
analytics.track.appAccountConnected(definitionId, extensionKey);
|
|
185
|
-
analytics.operational.connectSucceededEvent(definitionId, extensionKey);
|
|
188
|
+
analytics.operational.connectSucceededEvent(id, definitionId, extensionKey);
|
|
186
189
|
reload();
|
|
187
190
|
}, function (err) {
|
|
188
|
-
analytics.operational.connectFailedEvent(definitionId, extensionKey, err.type);
|
|
191
|
+
analytics.operational.connectFailedEvent(id, definitionId, extensionKey, err.type);
|
|
189
192
|
|
|
190
193
|
if (err.type === 'auth_window_closed') {
|
|
191
194
|
analytics.ui.closedAuthEvent(appearance, definitionId, extensionKey);
|
|
@@ -194,7 +197,7 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
|
|
|
194
197
|
reload();
|
|
195
198
|
});
|
|
196
199
|
}
|
|
197
|
-
}, [analytics.ui, analytics.screen, analytics.track, analytics.operational, reload, details, status]);
|
|
200
|
+
}, [analytics.ui, analytics.screen, analytics.track, analytics.operational, id, reload, details, status]);
|
|
198
201
|
var invoke = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
199
202
|
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(opts, appearance) {
|
|
200
203
|
var key, action, source, markName, response;
|
|
@@ -3,89 +3,37 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
};
|
|
37
|
-
}, [dispatchAnalytics]);
|
|
38
|
-
var operational = (0, _react.useMemo)(function () {
|
|
39
|
-
return {
|
|
40
|
-
resolvedEvent: function resolvedEvent(id, definitionId, extensionKey, resourceType) {
|
|
41
|
-
return dispatchAnalytics((0, _analytics.resolvedEvent)(id, definitionId, extensionKey, resourceType));
|
|
42
|
-
},
|
|
43
|
-
unresolvedEvent: function unresolvedEvent(id, status, definitionId, extensionKey, resourceType) {
|
|
44
|
-
return dispatchAnalytics((0, _analytics.unresolvedEvent)(id, status, definitionId, extensionKey, resourceType));
|
|
45
|
-
},
|
|
46
|
-
invokeSucceededEvent: function invokeSucceededEvent(id, providerKey, actionType, display) {
|
|
47
|
-
return dispatchAnalytics((0, _analytics.invokeSucceededEvent)(id, providerKey, actionType, display));
|
|
48
|
-
},
|
|
49
|
-
invokeFailedEvent: function invokeFailedEvent(id, providerKey, actionType, display, reason) {
|
|
50
|
-
return dispatchAnalytics((0, _analytics.invokeFailedEvent)(id, providerKey, actionType, display, reason));
|
|
51
|
-
},
|
|
52
|
-
connectSucceededEvent: function connectSucceededEvent(definitionId, extensionKey) {
|
|
53
|
-
return dispatchAnalytics((0, _analytics.connectSucceededEvent)(definitionId, extensionKey));
|
|
54
|
-
},
|
|
55
|
-
connectFailedEvent: function connectFailedEvent(definitionId, extensionKey, reason) {
|
|
56
|
-
return dispatchAnalytics((0, _analytics.connectFailedEvent)(definitionId, extensionKey, reason));
|
|
57
|
-
},
|
|
58
|
-
instrument: function instrument(id, status, definitionId, extensionKey, resourceType, error) {
|
|
59
|
-
var event = (0, _analytics.instrumentEvent)(id, status, definitionId, extensionKey, resourceType, error);
|
|
6
|
+
Object.defineProperty(exports, "startUfoExperience", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _ufoExperiences.startUfoExperience;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "succeedUfoExperience", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _ufoExperiences.succeedUfoExperience;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "failUfoExperience", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _ufoExperiences.failUfoExperience;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "addMetadataToExperience", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _ufoExperiences.addMetadataToExperience;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "useSmartLinkAnalytics", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _useSmartLinkAnalytics.useSmartLinkAnalytics;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
60
36
|
|
|
61
|
-
|
|
62
|
-
dispatchAnalytics(event);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
}, [dispatchAnalytics]);
|
|
67
|
-
var track = (0, _react.useMemo)(function () {
|
|
68
|
-
return {
|
|
69
|
-
appAccountConnected: function appAccountConnected(definitionId, extensionKey) {
|
|
70
|
-
return dispatchAnalytics((0, _analytics.trackAppAccountConnected)(definitionId, extensionKey));
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
}, [dispatchAnalytics]);
|
|
74
|
-
var screen = (0, _react.useMemo)(function () {
|
|
75
|
-
return {
|
|
76
|
-
authPopupEvent: function authPopupEvent(definitionId, extensionKey) {
|
|
77
|
-
return dispatchAnalytics((0, _analytics.screenAuthPopupEvent)(definitionId, extensionKey));
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
}, [dispatchAnalytics]);
|
|
81
|
-
return (0, _react.useMemo)(function () {
|
|
82
|
-
return {
|
|
83
|
-
ui: ui,
|
|
84
|
-
operational: operational,
|
|
85
|
-
track: track,
|
|
86
|
-
screen: screen
|
|
87
|
-
};
|
|
88
|
-
}, [ui, operational, track, screen]);
|
|
89
|
-
};
|
|
37
|
+
var _ufoExperiences = require("./ufoExperiences");
|
|
90
38
|
|
|
91
|
-
|
|
39
|
+
var _useSmartLinkAnalytics = require("./useSmartLinkAnalytics");
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addMetadataToExperience = exports.failUfoExperience = exports.succeedUfoExperience = exports.startUfoExperience = void 0;
|
|
7
|
+
|
|
8
|
+
var _ufo = require("@atlaskit/ufo");
|
|
9
|
+
|
|
10
|
+
var ufoExperiences = {
|
|
11
|
+
'smart-link-rendered': new _ufo.ConcurrentExperience('smart-link-rendered', {
|
|
12
|
+
type: _ufo.ExperienceTypes.Load,
|
|
13
|
+
performanceType: _ufo.ExperiencePerformanceTypes.PageSegmentLoad,
|
|
14
|
+
platform: {
|
|
15
|
+
component: 'smart-links'
|
|
16
|
+
}
|
|
17
|
+
}),
|
|
18
|
+
'smart-link-authenticated': new _ufo.ConcurrentExperience('smart-link-authenticated', {
|
|
19
|
+
type: _ufo.ExperienceTypes.Load,
|
|
20
|
+
performanceType: _ufo.ExperiencePerformanceTypes.PageSegmentLoad,
|
|
21
|
+
platform: {
|
|
22
|
+
component: 'smart-links'
|
|
23
|
+
}
|
|
24
|
+
})
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
var startUfoExperience = function startUfoExperience(experienceName, id, properties) {
|
|
28
|
+
var experience = ufoExperiences[experienceName].getInstance(id);
|
|
29
|
+
experience.start();
|
|
30
|
+
|
|
31
|
+
if (properties) {
|
|
32
|
+
experience.addMetadata(properties);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.startUfoExperience = startUfoExperience;
|
|
37
|
+
|
|
38
|
+
var succeedUfoExperience = function succeedUfoExperience(experienceName, id, properties) {
|
|
39
|
+
var experience = ufoExperiences[experienceName].getInstance(id);
|
|
40
|
+
experience.success({
|
|
41
|
+
metadata: properties
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
exports.succeedUfoExperience = succeedUfoExperience;
|
|
46
|
+
|
|
47
|
+
var failUfoExperience = function failUfoExperience(experienceName, id, properties) {
|
|
48
|
+
var experience = ufoExperiences[experienceName].getInstance(id);
|
|
49
|
+
experience.failure({
|
|
50
|
+
metadata: properties
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
exports.failUfoExperience = failUfoExperience;
|
|
55
|
+
|
|
56
|
+
var addMetadataToExperience = function addMetadataToExperience(experienceName, id, properties) {
|
|
57
|
+
ufoExperiences[experienceName].getInstance(id).addMetadata(properties);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
exports.addMetadataToExperience = addMetadataToExperience;
|