@atlaskit/editor-synced-block-provider 3.5.4 → 3.5.5

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 CHANGED
@@ -1,5 +1,12 @@
1
1
  # @atlaskit/editor-synced-block-provider
2
2
 
3
+ ## 3.5.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [`a36447029e3c3`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/a36447029e3c3) -
8
+ Add fetchMediaToken helper function to synced block provider confluence client.
9
+
3
10
  ## 3.5.4
4
11
 
5
12
  ### Patch Changes
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.fetchMediaToken = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _monitoring = require("@atlaskit/editor-common/monitoring");
12
+ var _retry = require("../../utils/retry");
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ var COMMON_HEADERS = {
16
+ 'Content-Type': 'application/json',
17
+ Accept: 'application/json'
18
+ };
19
+ var AGG_HEADERS = {
20
+ 'X-ExperimentalApi': 'confluence-agg-beta'
21
+ };
22
+ var GRAPHQL_ENDPOINT = '/gateway/api/graphql';
23
+ var GET_CONTENT_MEDIA_SESSION_OPERATION_NAME = 'MediaUploadTokenQuery';
24
+ var GET_CONTENT_MEDIA_SESSION_QUERY = "query ".concat(GET_CONTENT_MEDIA_SESSION_OPERATION_NAME, "($contentId: ID!) {\n\tcontentMediaSession(contentId: $contentId) {\n\t\ttoken {\n\t\t\tvalue\n\t\t}\n\t\tconfiguration {\n\t\t\tclientId\n\t\t\tfileStoreUrl\n\t\t}\n\t\tcollection\n\t}\n}");
25
+ var getContentMediaSession = /*#__PURE__*/function () {
26
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(contentId) {
27
+ var bodyData, response, result;
28
+ return _regenerator.default.wrap(function _callee$(_context) {
29
+ while (1) switch (_context.prev = _context.next) {
30
+ case 0:
31
+ bodyData = {
32
+ query: GET_CONTENT_MEDIA_SESSION_QUERY,
33
+ operationName: GET_CONTENT_MEDIA_SESSION_OPERATION_NAME,
34
+ variables: {
35
+ contentId: contentId
36
+ }
37
+ };
38
+ _context.next = 3;
39
+ return (0, _retry.fetchWithRetry)(GRAPHQL_ENDPOINT, {
40
+ method: 'POST',
41
+ headers: _objectSpread(_objectSpread({}, COMMON_HEADERS), AGG_HEADERS),
42
+ body: JSON.stringify(bodyData)
43
+ });
44
+ case 3:
45
+ response = _context.sent;
46
+ if (response.ok) {
47
+ _context.next = 6;
48
+ break;
49
+ }
50
+ throw new Error("Failed to get content media session: ".concat(response.statusText));
51
+ case 6:
52
+ _context.next = 8;
53
+ return response.json();
54
+ case 8:
55
+ result = _context.sent;
56
+ return _context.abrupt("return", result);
57
+ case 10:
58
+ case "end":
59
+ return _context.stop();
60
+ }
61
+ }, _callee);
62
+ }));
63
+ return function getContentMediaSession(_x) {
64
+ return _ref.apply(this, arguments);
65
+ };
66
+ }();
67
+ var fetchMediaToken = exports.fetchMediaToken = /*#__PURE__*/function () {
68
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(contentId) {
69
+ var _response$data, _contentData$token, response, contentData, token, configuration, collection;
70
+ return _regenerator.default.wrap(function _callee2$(_context2) {
71
+ while (1) switch (_context2.prev = _context2.next) {
72
+ case 0:
73
+ _context2.prev = 0;
74
+ _context2.next = 3;
75
+ return getContentMediaSession(contentId);
76
+ case 3:
77
+ response = _context2.sent;
78
+ contentData = (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.contentMediaSession;
79
+ token = contentData === null || contentData === void 0 || (_contentData$token = contentData.token) === null || _contentData$token === void 0 ? void 0 : _contentData$token.value;
80
+ configuration = contentData === null || contentData === void 0 ? void 0 : contentData.configuration;
81
+ collection = contentData === null || contentData === void 0 ? void 0 : contentData.collection;
82
+ if (!(!token || !configuration || !collection)) {
83
+ _context2.next = 10;
84
+ break;
85
+ }
86
+ throw new Error('Failed to get content media session data');
87
+ case 10:
88
+ return _context2.abrupt("return", Promise.resolve({
89
+ config: configuration,
90
+ token: token,
91
+ collectionId: collection
92
+ }));
93
+ case 13:
94
+ _context2.prev = 13;
95
+ _context2.t0 = _context2["catch"](0);
96
+ (0, _monitoring.logException)(_context2.t0, {
97
+ location: 'editor-synced-block-provider/fetchMediaToken'
98
+ });
99
+ throw new Error("Failed to get content media session: ".concat(_context2.t0));
100
+ case 17:
101
+ case "end":
102
+ return _context2.stop();
103
+ }
104
+ }, _callee2, null, [[0, 13]]);
105
+ }));
106
+ return function fetchMediaToken(_x2) {
107
+ return _ref2.apply(this, arguments);
108
+ };
109
+ }();
package/dist/cjs/index.js CHANGED
@@ -57,6 +57,12 @@ Object.defineProperty(exports, "fetchErrorPayload", {
57
57
  return _errorHandling.fetchErrorPayload;
58
58
  }
59
59
  });
60
+ Object.defineProperty(exports, "fetchMediaToken", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _fetchMediaToken.fetchMediaToken;
64
+ }
65
+ });
60
66
  Object.defineProperty(exports, "fetchReferences", {
61
67
  enumerable: true,
62
68
  get: function get() {
@@ -172,6 +178,7 @@ var _useFetchSyncBlockTitle = require("./hooks/useFetchSyncBlockTitle");
172
178
  var _useHandleContentChanges = require("./hooks/useHandleContentChanges");
173
179
  var _ari = require("./clients/block-service/ari");
174
180
  var _ari2 = require("./clients/confluence/ari");
181
+ var _fetchMediaToken = require("./clients/confluence/fetchMediaToken");
175
182
  var _ari3 = require("./clients/jira/ari");
176
183
  var _blockServiceAPI = require("./providers/block-service/blockServiceAPI");
177
184
  var _sourceInfo = require("./clients/confluence/sourceInfo");
@@ -0,0 +1,68 @@
1
+ import { logException } from '@atlaskit/editor-common/monitoring';
2
+ import { fetchWithRetry } from '../../utils/retry';
3
+ const COMMON_HEADERS = {
4
+ 'Content-Type': 'application/json',
5
+ Accept: 'application/json'
6
+ };
7
+ const AGG_HEADERS = {
8
+ 'X-ExperimentalApi': 'confluence-agg-beta'
9
+ };
10
+ const GRAPHQL_ENDPOINT = '/gateway/api/graphql';
11
+ const GET_CONTENT_MEDIA_SESSION_OPERATION_NAME = 'MediaUploadTokenQuery';
12
+ const GET_CONTENT_MEDIA_SESSION_QUERY = `query ${GET_CONTENT_MEDIA_SESSION_OPERATION_NAME}($contentId: ID!) {
13
+ contentMediaSession(contentId: $contentId) {
14
+ token {
15
+ value
16
+ }
17
+ configuration {
18
+ clientId
19
+ fileStoreUrl
20
+ }
21
+ collection
22
+ }
23
+ }`;
24
+ const getContentMediaSession = async contentId => {
25
+ const bodyData = {
26
+ query: GET_CONTENT_MEDIA_SESSION_QUERY,
27
+ operationName: GET_CONTENT_MEDIA_SESSION_OPERATION_NAME,
28
+ variables: {
29
+ contentId: contentId
30
+ }
31
+ };
32
+ const response = await fetchWithRetry(GRAPHQL_ENDPOINT, {
33
+ method: 'POST',
34
+ headers: {
35
+ ...COMMON_HEADERS,
36
+ ...AGG_HEADERS
37
+ },
38
+ body: JSON.stringify(bodyData)
39
+ });
40
+ if (!response.ok) {
41
+ throw new Error(`Failed to get content media session: ${response.statusText}`);
42
+ }
43
+ const result = await response.json();
44
+ return result;
45
+ };
46
+ export const fetchMediaToken = async contentId => {
47
+ try {
48
+ var _response$data, _contentData$token;
49
+ const response = await getContentMediaSession(contentId);
50
+ const contentData = (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.contentMediaSession;
51
+ const token = contentData === null || contentData === void 0 ? void 0 : (_contentData$token = contentData.token) === null || _contentData$token === void 0 ? void 0 : _contentData$token.value;
52
+ const configuration = contentData === null || contentData === void 0 ? void 0 : contentData.configuration;
53
+ const collection = contentData === null || contentData === void 0 ? void 0 : contentData.collection;
54
+ if (!token || !configuration || !collection) {
55
+ throw new Error('Failed to get content media session data');
56
+ }
57
+ return Promise.resolve({
58
+ config: configuration,
59
+ token,
60
+ collectionId: collection
61
+ });
62
+ } catch (error) {
63
+ logException(error, {
64
+ location: 'editor-synced-block-provider/fetchMediaToken'
65
+ });
66
+ throw new Error(`Failed to get content media session: ${error}`);
67
+ }
68
+ };
@@ -11,6 +11,7 @@ export { useHandleContentChanges } from './hooks/useHandleContentChanges';
11
11
  // clients
12
12
  export { generateBlockAri, generateBlockAriFromReference, getLocalIdFromBlockResourceId } from './clients/block-service/ari';
13
13
  export { getConfluencePageAri, getPageIdAndTypeFromConfluencePageAri } from './clients/confluence/ari';
14
+ export { fetchMediaToken } from './clients/confluence/fetchMediaToken';
14
15
  export { getJiraWorkItemAri, getJiraWorkItemIdFromAri } from './clients/jira/ari';
15
16
 
16
17
  // providers
@@ -0,0 +1,102 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ import { logException } from '@atlaskit/editor-common/monitoring';
7
+ import { fetchWithRetry } from '../../utils/retry';
8
+ var COMMON_HEADERS = {
9
+ 'Content-Type': 'application/json',
10
+ Accept: 'application/json'
11
+ };
12
+ var AGG_HEADERS = {
13
+ 'X-ExperimentalApi': 'confluence-agg-beta'
14
+ };
15
+ var GRAPHQL_ENDPOINT = '/gateway/api/graphql';
16
+ var GET_CONTENT_MEDIA_SESSION_OPERATION_NAME = 'MediaUploadTokenQuery';
17
+ var GET_CONTENT_MEDIA_SESSION_QUERY = "query ".concat(GET_CONTENT_MEDIA_SESSION_OPERATION_NAME, "($contentId: ID!) {\n\tcontentMediaSession(contentId: $contentId) {\n\t\ttoken {\n\t\t\tvalue\n\t\t}\n\t\tconfiguration {\n\t\t\tclientId\n\t\t\tfileStoreUrl\n\t\t}\n\t\tcollection\n\t}\n}");
18
+ var getContentMediaSession = /*#__PURE__*/function () {
19
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(contentId) {
20
+ var bodyData, response, result;
21
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
22
+ while (1) switch (_context.prev = _context.next) {
23
+ case 0:
24
+ bodyData = {
25
+ query: GET_CONTENT_MEDIA_SESSION_QUERY,
26
+ operationName: GET_CONTENT_MEDIA_SESSION_OPERATION_NAME,
27
+ variables: {
28
+ contentId: contentId
29
+ }
30
+ };
31
+ _context.next = 3;
32
+ return fetchWithRetry(GRAPHQL_ENDPOINT, {
33
+ method: 'POST',
34
+ headers: _objectSpread(_objectSpread({}, COMMON_HEADERS), AGG_HEADERS),
35
+ body: JSON.stringify(bodyData)
36
+ });
37
+ case 3:
38
+ response = _context.sent;
39
+ if (response.ok) {
40
+ _context.next = 6;
41
+ break;
42
+ }
43
+ throw new Error("Failed to get content media session: ".concat(response.statusText));
44
+ case 6:
45
+ _context.next = 8;
46
+ return response.json();
47
+ case 8:
48
+ result = _context.sent;
49
+ return _context.abrupt("return", result);
50
+ case 10:
51
+ case "end":
52
+ return _context.stop();
53
+ }
54
+ }, _callee);
55
+ }));
56
+ return function getContentMediaSession(_x) {
57
+ return _ref.apply(this, arguments);
58
+ };
59
+ }();
60
+ export var fetchMediaToken = /*#__PURE__*/function () {
61
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(contentId) {
62
+ var _response$data, _contentData$token, response, contentData, token, configuration, collection;
63
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
64
+ while (1) switch (_context2.prev = _context2.next) {
65
+ case 0:
66
+ _context2.prev = 0;
67
+ _context2.next = 3;
68
+ return getContentMediaSession(contentId);
69
+ case 3:
70
+ response = _context2.sent;
71
+ contentData = (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.contentMediaSession;
72
+ token = contentData === null || contentData === void 0 || (_contentData$token = contentData.token) === null || _contentData$token === void 0 ? void 0 : _contentData$token.value;
73
+ configuration = contentData === null || contentData === void 0 ? void 0 : contentData.configuration;
74
+ collection = contentData === null || contentData === void 0 ? void 0 : contentData.collection;
75
+ if (!(!token || !configuration || !collection)) {
76
+ _context2.next = 10;
77
+ break;
78
+ }
79
+ throw new Error('Failed to get content media session data');
80
+ case 10:
81
+ return _context2.abrupt("return", Promise.resolve({
82
+ config: configuration,
83
+ token: token,
84
+ collectionId: collection
85
+ }));
86
+ case 13:
87
+ _context2.prev = 13;
88
+ _context2.t0 = _context2["catch"](0);
89
+ logException(_context2.t0, {
90
+ location: 'editor-synced-block-provider/fetchMediaToken'
91
+ });
92
+ throw new Error("Failed to get content media session: ".concat(_context2.t0));
93
+ case 17:
94
+ case "end":
95
+ return _context2.stop();
96
+ }
97
+ }, _callee2, null, [[0, 13]]);
98
+ }));
99
+ return function fetchMediaToken(_x2) {
100
+ return _ref2.apply(this, arguments);
101
+ };
102
+ }();
package/dist/esm/index.js CHANGED
@@ -11,6 +11,7 @@ export { useHandleContentChanges } from './hooks/useHandleContentChanges';
11
11
  // clients
12
12
  export { generateBlockAri, generateBlockAriFromReference, getLocalIdFromBlockResourceId } from './clients/block-service/ari';
13
13
  export { getConfluencePageAri, getPageIdAndTypeFromConfluencePageAri } from './clients/confluence/ari';
14
+ export { fetchMediaToken } from './clients/confluence/fetchMediaToken';
14
15
  export { getJiraWorkItemAri, getJiraWorkItemIdFromAri } from './clients/jira/ari';
15
16
 
16
17
  // providers
@@ -0,0 +1,11 @@
1
+ type ConfigData = {
2
+ readonly clientId: string;
3
+ readonly fileStoreUrl: string;
4
+ };
5
+ type TokenData = {
6
+ collectionId?: string;
7
+ config: ConfigData;
8
+ token: string;
9
+ };
10
+ export declare const fetchMediaToken: (contentId: string) => Promise<TokenData>;
11
+ export {};
@@ -6,6 +6,7 @@ export { useFetchSyncBlockTitle } from './hooks/useFetchSyncBlockTitle';
6
6
  export { useHandleContentChanges } from './hooks/useHandleContentChanges';
7
7
  export { generateBlockAri, generateBlockAriFromReference, getLocalIdFromBlockResourceId, } from './clients/block-service/ari';
8
8
  export { getConfluencePageAri, getPageIdAndTypeFromConfluencePageAri, } from './clients/confluence/ari';
9
+ export { fetchMediaToken } from './clients/confluence/fetchMediaToken';
9
10
  export { getJiraWorkItemAri, getJiraWorkItemIdFromAri } from './clients/jira/ari';
10
11
  export { useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider, } from './providers/block-service/blockServiceAPI';
11
12
  export { fetchConfluencePageInfo } from './clients/confluence/sourceInfo';
@@ -71,8 +71,8 @@ export type SyncedBlockRendererDataProviders = {
71
71
  taskDecisionProvider?: Promise<TaskDecisionProvider>;
72
72
  };
73
73
  export type SyncBlockRendererProviderCreator = {
74
- createEmojiProvider: ((options: MediaEmojiProviderOptions) => Promise<EmojiProvider>) | undefined;
75
- createMediaProvider: ((options: MediaEmojiProviderOptions) => Promise<MediaProvider>) | undefined;
74
+ createEmojiProvider: ((options: MediaEmojiProviderOptions) => Promise<EmojiProvider> | undefined) | undefined;
75
+ createMediaProvider: ((options: MediaEmojiProviderOptions) => Promise<MediaProvider> | undefined) | undefined;
76
76
  };
77
77
  export type SyncedBlockRendererProviderOptions = {
78
78
  parentDataProviders?: SyncedBlockRendererDataProviders;
@@ -0,0 +1,11 @@
1
+ type ConfigData = {
2
+ readonly clientId: string;
3
+ readonly fileStoreUrl: string;
4
+ };
5
+ type TokenData = {
6
+ collectionId?: string;
7
+ config: ConfigData;
8
+ token: string;
9
+ };
10
+ export declare const fetchMediaToken: (contentId: string) => Promise<TokenData>;
11
+ export {};
@@ -6,6 +6,7 @@ export { useFetchSyncBlockTitle } from './hooks/useFetchSyncBlockTitle';
6
6
  export { useHandleContentChanges } from './hooks/useHandleContentChanges';
7
7
  export { generateBlockAri, generateBlockAriFromReference, getLocalIdFromBlockResourceId, } from './clients/block-service/ari';
8
8
  export { getConfluencePageAri, getPageIdAndTypeFromConfluencePageAri, } from './clients/confluence/ari';
9
+ export { fetchMediaToken } from './clients/confluence/fetchMediaToken';
9
10
  export { getJiraWorkItemAri, getJiraWorkItemIdFromAri } from './clients/jira/ari';
10
11
  export { useMemoizedBlockServiceAPIProviders, useMemoizedBlockServiceFetchOnlyAPIProvider, } from './providers/block-service/blockServiceAPI';
11
12
  export { fetchConfluencePageInfo } from './clients/confluence/sourceInfo';
@@ -71,8 +71,8 @@ export type SyncedBlockRendererDataProviders = {
71
71
  taskDecisionProvider?: Promise<TaskDecisionProvider>;
72
72
  };
73
73
  export type SyncBlockRendererProviderCreator = {
74
- createEmojiProvider: ((options: MediaEmojiProviderOptions) => Promise<EmojiProvider>) | undefined;
75
- createMediaProvider: ((options: MediaEmojiProviderOptions) => Promise<MediaProvider>) | undefined;
74
+ createEmojiProvider: ((options: MediaEmojiProviderOptions) => Promise<EmojiProvider> | undefined) | undefined;
75
+ createMediaProvider: ((options: MediaEmojiProviderOptions) => Promise<MediaProvider> | undefined) | undefined;
76
76
  };
77
77
  export type SyncedBlockRendererProviderOptions = {
78
78
  parentDataProviders?: SyncedBlockRendererDataProviders;
package/package.json CHANGED
@@ -77,7 +77,7 @@
77
77
  }
78
78
  },
79
79
  "name": "@atlaskit/editor-synced-block-provider",
80
- "version": "3.5.4",
80
+ "version": "3.5.5",
81
81
  "description": "Synced Block Provider for @atlaskit/editor-plugin-synced-block",
82
82
  "author": "Atlassian Pty Ltd",
83
83
  "license": "Apache-2.0",