@atlaskit/editor-slack-transformer 3.1.5 → 3.1.7
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 +12 -0
- package/dist/cjs/index.js +0 -8
- package/dist/cjs/serializer.js +5 -48
- package/dist/cjs/util.js +0 -5
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/index.js +0 -3
- package/dist/es2019/serializer.js +6 -61
- package/dist/es2019/util.js +0 -3
- package/dist/es2019/version.json +1 -1
- package/dist/esm/index.js +0 -3
- package/dist/esm/serializer.js +6 -36
- package/dist/esm/util.js +0 -3
- package/dist/esm/version.json +1 -1
- package/example-helpers/ToolsDrawer.tsx +1 -2
- package/package.json +9 -16
- package/report.api.md +25 -5
- package/tmp/api-report-tmp.d.ts +27 -0
- package/dist/types-ts4.0/index.d.ts +0 -11
- package/dist/types-ts4.0/serializer.d.ts +0 -117
- package/dist/types-ts4.0/util.d.ts +0 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlaskit/editor-slack-transformer
|
|
2
2
|
|
|
3
|
+
## 3.1.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`0ffb55018c9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0ffb55018c9) - Revert "[ED-17172] Bumped prosemirror-view from 1.23.2 to 1.23.7 and removed work-around for fixed issues"
|
|
8
|
+
|
|
9
|
+
## 3.1.6
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`2e01c9c74b5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2e01c9c74b5) - DUMMY remove before merging to master; dupe adf-schema via adf-utils
|
|
14
|
+
|
|
3
15
|
## 3.1.5
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,26 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.SlackTransformer = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
11
|
var _serializer = require("./serializer");
|
|
17
|
-
|
|
18
12
|
var SlackTransformer = /*#__PURE__*/function () {
|
|
19
13
|
function SlackTransformer() {
|
|
20
14
|
(0, _classCallCheck2.default)(this, SlackTransformer);
|
|
21
15
|
(0, _defineProperty2.default)(this, "serializer", new _serializer.MarkdownSerializer(_serializer.nodes, _serializer.marks));
|
|
22
16
|
}
|
|
23
|
-
|
|
24
17
|
(0, _createClass2.default)(SlackTransformer, [{
|
|
25
18
|
key: "encode",
|
|
26
19
|
value: function encode(node) {
|
|
@@ -34,5 +27,4 @@ var SlackTransformer = /*#__PURE__*/function () {
|
|
|
34
27
|
}]);
|
|
35
28
|
return SlackTransformer;
|
|
36
29
|
}();
|
|
37
|
-
|
|
38
30
|
exports.SlackTransformer = SlackTransformer;
|
package/dist/cjs/serializer.js
CHANGED
|
@@ -1,77 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.nodes = exports.marks = exports.MarkdownSerializerState = exports.MarkdownSerializer = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
14
|
var _prosemirrorMarkdown = require("prosemirror-markdown");
|
|
23
|
-
|
|
24
15
|
var _util = require("./util");
|
|
25
|
-
|
|
26
16
|
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; }
|
|
27
|
-
|
|
28
17
|
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; }
|
|
29
|
-
|
|
30
18
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
31
|
-
|
|
32
19
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
33
|
-
|
|
34
20
|
var MarkdownSerializerState = /*#__PURE__*/function (_PMMarkdownSerializer) {
|
|
35
21
|
(0, _inherits2.default)(MarkdownSerializerState, _PMMarkdownSerializer);
|
|
36
|
-
|
|
37
22
|
var _super = _createSuper(MarkdownSerializerState);
|
|
38
|
-
|
|
39
23
|
function MarkdownSerializerState() {
|
|
40
24
|
(0, _classCallCheck2.default)(this, MarkdownSerializerState);
|
|
41
25
|
return _super.apply(this, arguments);
|
|
42
26
|
}
|
|
43
|
-
|
|
44
27
|
(0, _createClass2.default)(MarkdownSerializerState, [{
|
|
45
28
|
key: "renderContent",
|
|
46
29
|
value: function renderContent(parent) {
|
|
47
30
|
var _this = this;
|
|
48
|
-
|
|
49
31
|
parent.forEach(function (child, _offset, index) {
|
|
50
|
-
if (
|
|
51
|
-
|
|
32
|
+
if (
|
|
33
|
+
// If child is an empty Textblock we need to insert a zwnj-character in order to preserve that line in markdown
|
|
34
|
+
child.isTextblock && !child.textContent &&
|
|
35
|
+
// If child is a Codeblock we need to handle this separately as we want to preserve empty code blocks
|
|
52
36
|
!(child.type.name === 'codeBlock') && !(child.content && child.content.size > 0)) {
|
|
53
37
|
return nodes.empty_line(_this, child);
|
|
54
38
|
}
|
|
55
|
-
|
|
56
39
|
return _this.render(child, parent, index);
|
|
57
40
|
});
|
|
58
41
|
}
|
|
59
42
|
}]);
|
|
60
43
|
return MarkdownSerializerState;
|
|
61
44
|
}(_prosemirrorMarkdown.MarkdownSerializerState);
|
|
62
|
-
|
|
63
45
|
exports.MarkdownSerializerState = MarkdownSerializerState;
|
|
64
|
-
|
|
65
46
|
var MarkdownSerializer = /*#__PURE__*/function (_PMMarkdownSerializer2) {
|
|
66
47
|
(0, _inherits2.default)(MarkdownSerializer, _PMMarkdownSerializer2);
|
|
67
|
-
|
|
68
48
|
var _super2 = _createSuper(MarkdownSerializer);
|
|
69
|
-
|
|
70
49
|
function MarkdownSerializer() {
|
|
71
50
|
(0, _classCallCheck2.default)(this, MarkdownSerializer);
|
|
72
51
|
return _super2.apply(this, arguments);
|
|
73
52
|
}
|
|
74
|
-
|
|
75
53
|
(0, _createClass2.default)(MarkdownSerializer, [{
|
|
76
54
|
key: "serialize",
|
|
77
55
|
value: function serialize(content, options) {
|
|
@@ -85,8 +63,6 @@ var MarkdownSerializer = /*#__PURE__*/function (_PMMarkdownSerializer2) {
|
|
|
85
63
|
/**
|
|
86
64
|
* Stubs for unsupported nodes
|
|
87
65
|
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
66
|
exports.MarkdownSerializer = MarkdownSerializer;
|
|
91
67
|
var unsupportedNodes = {
|
|
92
68
|
table: function table(state, node) {
|
|
@@ -101,7 +77,6 @@ var unsupportedNodes = {
|
|
|
101
77
|
state.write('[embedded card]');
|
|
102
78
|
state.closeBlock(node);
|
|
103
79
|
},
|
|
104
|
-
|
|
105
80
|
/**
|
|
106
81
|
* Inline cards with url type attributes will be sent as a link
|
|
107
82
|
*/
|
|
@@ -143,7 +118,6 @@ var unsupportedNodes = {
|
|
|
143
118
|
state.write('');
|
|
144
119
|
}
|
|
145
120
|
};
|
|
146
|
-
|
|
147
121
|
var nodes = _objectSpread({
|
|
148
122
|
blockquote: function blockquote(state, node) {
|
|
149
123
|
state.wrapBlock('> ', undefined, node, function () {
|
|
@@ -179,14 +153,11 @@ var nodes = _objectSpread({
|
|
|
179
153
|
},
|
|
180
154
|
listItem: function listItem(state, node, parent, index) {
|
|
181
155
|
var delimiter = parent.type.name === 'bulletList' ? '• ' : "".concat(index + 1, ". ");
|
|
182
|
-
|
|
183
156
|
var _loop = function _loop(i) {
|
|
184
157
|
var child = node.child(i);
|
|
185
|
-
|
|
186
158
|
if (i > 0) {
|
|
187
159
|
state.write('\n');
|
|
188
160
|
}
|
|
189
|
-
|
|
190
161
|
if (i === 0) {
|
|
191
162
|
state.wrapBlock(' ', delimiter, node, function () {
|
|
192
163
|
return state.render(child, parent, i);
|
|
@@ -196,18 +167,14 @@ var nodes = _objectSpread({
|
|
|
196
167
|
return state.render(child, parent, i);
|
|
197
168
|
});
|
|
198
169
|
}
|
|
199
|
-
|
|
200
170
|
if (child.type.name === 'paragraph' && i > 0) {
|
|
201
171
|
state.write('\n');
|
|
202
172
|
}
|
|
203
|
-
|
|
204
173
|
state.flushClose(1);
|
|
205
174
|
};
|
|
206
|
-
|
|
207
175
|
for (var i = 0; i < node.childCount; i++) {
|
|
208
176
|
_loop(i);
|
|
209
177
|
}
|
|
210
|
-
|
|
211
178
|
if (index === parent.childCount - 1) {
|
|
212
179
|
state.write('\n');
|
|
213
180
|
}
|
|
@@ -225,11 +192,9 @@ var nodes = _objectSpread({
|
|
|
225
192
|
},
|
|
226
193
|
text: function text(state, node) {
|
|
227
194
|
var lines = node.textContent.split('\n');
|
|
228
|
-
|
|
229
195
|
for (var i = 0; i < lines.length; i++) {
|
|
230
196
|
state.write();
|
|
231
197
|
state.out += (0, _util.escapeMarkdown)(lines[i]);
|
|
232
|
-
|
|
233
198
|
if (i !== lines.length - 1) {
|
|
234
199
|
state.out += '\n';
|
|
235
200
|
}
|
|
@@ -237,19 +202,16 @@ var nodes = _objectSpread({
|
|
|
237
202
|
},
|
|
238
203
|
empty_line: function empty_line(state, node) {
|
|
239
204
|
state.write("\u200C"); // zero-width-non-joiner
|
|
240
|
-
|
|
241
205
|
state.closeBlock(node);
|
|
242
206
|
},
|
|
243
207
|
mention: function mention(state, node, parent, index) {
|
|
244
208
|
var isLastNode = parent.childCount === index + 1;
|
|
245
209
|
var delimiter = '';
|
|
246
|
-
|
|
247
210
|
if (!isLastNode) {
|
|
248
211
|
var nextNode = parent.child(index + 1);
|
|
249
212
|
var nextNodeHasLeadingSpace = nextNode.textContent.indexOf(' ') === 0;
|
|
250
213
|
delimiter = nextNodeHasLeadingSpace ? '' : ' ';
|
|
251
214
|
}
|
|
252
|
-
|
|
253
215
|
state.write("@".concat(node.attrs.id).concat(delimiter));
|
|
254
216
|
},
|
|
255
217
|
emoji: function emoji(state, node) {
|
|
@@ -268,7 +230,6 @@ var nodes = _objectSpread({
|
|
|
268
230
|
state.write('\n');
|
|
269
231
|
}
|
|
270
232
|
},
|
|
271
|
-
|
|
272
233
|
/**
|
|
273
234
|
* Slack markdown does not have specific syntax for images/files.
|
|
274
235
|
* We just show that there's an image attached as a link and a media just as a text.
|
|
@@ -298,7 +259,6 @@ var nodes = _objectSpread({
|
|
|
298
259
|
state.write('<> ');
|
|
299
260
|
state.renderInline(node);
|
|
300
261
|
state.write('\n');
|
|
301
|
-
|
|
302
262
|
if (index === parent.childCount - 1) {
|
|
303
263
|
state.write('\n');
|
|
304
264
|
}
|
|
@@ -325,11 +285,10 @@ var nodes = _objectSpread({
|
|
|
325
285
|
state.write(" JIRA | ".concat(node.attrs.issueKey, " "));
|
|
326
286
|
}
|
|
327
287
|
}, unsupportedNodes);
|
|
288
|
+
|
|
328
289
|
/**
|
|
329
290
|
* Slack markdown does not have specific syntax for (sub|super)script, underline, text color.
|
|
330
291
|
*/
|
|
331
|
-
|
|
332
|
-
|
|
333
292
|
exports.nodes = nodes;
|
|
334
293
|
var unsupportedMarks = {
|
|
335
294
|
subsup: {
|
|
@@ -361,7 +320,6 @@ var unsupportedMarks = {
|
|
|
361
320
|
close: ''
|
|
362
321
|
}
|
|
363
322
|
};
|
|
364
|
-
|
|
365
323
|
var marks = _objectSpread({
|
|
366
324
|
em: {
|
|
367
325
|
open: '_',
|
|
@@ -393,5 +351,4 @@ var marks = _objectSpread({
|
|
|
393
351
|
escape: false
|
|
394
352
|
}
|
|
395
353
|
}, unsupportedMarks);
|
|
396
|
-
|
|
397
354
|
exports.marks = marks;
|
package/dist/cjs/util.js
CHANGED
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.escapeMarkdown = void 0;
|
|
7
|
-
|
|
8
7
|
/**
|
|
9
8
|
* Slack uses &, <, and > as control characters for special parsing in text objects,
|
|
10
9
|
* so they must be converted to HTML entities.
|
|
@@ -15,17 +14,13 @@ var escapeMarkdown = function escapeMarkdown(str) {
|
|
|
15
14
|
switch (matched) {
|
|
16
15
|
case '&':
|
|
17
16
|
return '&';
|
|
18
|
-
|
|
19
17
|
case '<':
|
|
20
18
|
return '<';
|
|
21
|
-
|
|
22
19
|
case '>':
|
|
23
20
|
return '>';
|
|
24
|
-
|
|
25
21
|
default:
|
|
26
22
|
return "\\".concat(matched);
|
|
27
23
|
}
|
|
28
24
|
});
|
|
29
25
|
};
|
|
30
|
-
|
|
31
26
|
exports.escapeMarkdown = escapeMarkdown;
|
package/dist/cjs/version.json
CHANGED
package/dist/es2019/index.js
CHANGED
|
@@ -4,13 +4,10 @@ export class SlackTransformer {
|
|
|
4
4
|
constructor() {
|
|
5
5
|
_defineProperty(this, "serializer", new MarkdownSerializer(nodes, marks));
|
|
6
6
|
}
|
|
7
|
-
|
|
8
7
|
encode(node) {
|
|
9
8
|
return this.serializer.serialize(node);
|
|
10
9
|
}
|
|
11
|
-
|
|
12
10
|
parse(_slackMarkdown) {
|
|
13
11
|
throw new Error('This is not implemented yet');
|
|
14
12
|
}
|
|
15
|
-
|
|
16
13
|
}
|
|
@@ -3,16 +3,16 @@ import { escapeMarkdown } from './util';
|
|
|
3
3
|
export class MarkdownSerializerState extends PMMarkdownSerializerState {
|
|
4
4
|
renderContent(parent) {
|
|
5
5
|
parent.forEach((child, _offset, index) => {
|
|
6
|
-
if (
|
|
7
|
-
|
|
6
|
+
if (
|
|
7
|
+
// If child is an empty Textblock we need to insert a zwnj-character in order to preserve that line in markdown
|
|
8
|
+
child.isTextblock && !child.textContent &&
|
|
9
|
+
// If child is a Codeblock we need to handle this separately as we want to preserve empty code blocks
|
|
8
10
|
!(child.type.name === 'codeBlock') && !(child.content && child.content.size > 0)) {
|
|
9
11
|
return nodes.empty_line(this, child);
|
|
10
12
|
}
|
|
11
|
-
|
|
12
13
|
return this.render(child, parent, index);
|
|
13
14
|
});
|
|
14
15
|
}
|
|
15
|
-
|
|
16
16
|
}
|
|
17
17
|
export class MarkdownSerializer extends PMMarkdownSerializer {
|
|
18
18
|
serialize(content, options) {
|
|
@@ -20,28 +20,24 @@ export class MarkdownSerializer extends PMMarkdownSerializer {
|
|
|
20
20
|
state.renderContent(content);
|
|
21
21
|
return state.out === '\u200c' ? '' : state.out; // Return empty string if editor only contains a zero-non-width character
|
|
22
22
|
}
|
|
23
|
-
|
|
24
23
|
}
|
|
24
|
+
|
|
25
25
|
/**
|
|
26
26
|
* Stubs for unsupported nodes
|
|
27
27
|
*/
|
|
28
|
-
|
|
29
28
|
const unsupportedNodes = {
|
|
30
29
|
table(state, node) {
|
|
31
30
|
state.write('[table]');
|
|
32
31
|
state.closeBlock(node);
|
|
33
32
|
},
|
|
34
|
-
|
|
35
33
|
blockCard(state, node) {
|
|
36
34
|
state.write('[block card]');
|
|
37
35
|
state.closeBlock(node);
|
|
38
36
|
},
|
|
39
|
-
|
|
40
37
|
embedCard(state, node) {
|
|
41
38
|
state.write('[embedded card]');
|
|
42
39
|
state.closeBlock(node);
|
|
43
40
|
},
|
|
44
|
-
|
|
45
41
|
/**
|
|
46
42
|
* Inline cards with url type attributes will be sent as a link
|
|
47
43
|
*/
|
|
@@ -49,56 +45,44 @@ const unsupportedNodes = {
|
|
|
49
45
|
const content = node.attrs.url ? `[<${node.attrs.url}|inline card>]` : '[inline card]';
|
|
50
46
|
state.write(content);
|
|
51
47
|
},
|
|
52
|
-
|
|
53
48
|
inlineExtension(state) {
|
|
54
49
|
state.write('[inline extension]');
|
|
55
50
|
},
|
|
56
|
-
|
|
57
51
|
mediaInline(state) {
|
|
58
52
|
state.write('[inline file attached]');
|
|
59
53
|
},
|
|
60
|
-
|
|
61
54
|
extension(state, node) {
|
|
62
55
|
state.write('[extension]');
|
|
63
56
|
state.closeBlock(node);
|
|
64
57
|
},
|
|
65
|
-
|
|
66
58
|
bodiedExtension(state, node) {
|
|
67
59
|
state.write('[bodied extension]');
|
|
68
60
|
state.closeBlock(node);
|
|
69
61
|
},
|
|
70
|
-
|
|
71
62
|
taskList(state, node) {
|
|
72
63
|
state.write('[task list]');
|
|
73
64
|
state.closeBlock(node);
|
|
74
65
|
},
|
|
75
|
-
|
|
76
66
|
nestedExpand(state) {
|
|
77
67
|
state.write('[nested expand]');
|
|
78
68
|
},
|
|
79
|
-
|
|
80
69
|
confluenceUnsupportedBlock(state) {
|
|
81
70
|
state.write('');
|
|
82
71
|
},
|
|
83
|
-
|
|
84
72
|
confluenceUnsupportedInline(state) {
|
|
85
73
|
state.write('');
|
|
86
74
|
},
|
|
87
|
-
|
|
88
75
|
unsupportedInline(state) {
|
|
89
76
|
state.write('');
|
|
90
77
|
},
|
|
91
|
-
|
|
92
78
|
unsupportedBlock(state) {
|
|
93
79
|
state.write('');
|
|
94
80
|
}
|
|
95
|
-
|
|
96
81
|
};
|
|
97
82
|
export const nodes = {
|
|
98
83
|
blockquote(state, node) {
|
|
99
84
|
state.wrapBlock('> ', undefined, node, () => state.renderContent(node));
|
|
100
85
|
},
|
|
101
|
-
|
|
102
86
|
codeBlock(state, node) {
|
|
103
87
|
state.write('```');
|
|
104
88
|
state.ensureNewLine();
|
|
@@ -107,115 +91,90 @@ export const nodes = {
|
|
|
107
91
|
state.write('```');
|
|
108
92
|
state.closeBlock(node);
|
|
109
93
|
},
|
|
110
|
-
|
|
111
94
|
heading(state, node) {
|
|
112
95
|
state.renderInline(node);
|
|
113
96
|
state.closeBlock(node);
|
|
114
97
|
},
|
|
115
|
-
|
|
116
98
|
rule(state, node) {
|
|
117
99
|
state.closeBlock(node);
|
|
118
100
|
},
|
|
119
|
-
|
|
120
101
|
bulletList(state, node) {
|
|
121
102
|
for (let i = 0; i < node.childCount; i++) {
|
|
122
103
|
const child = node.child(i);
|
|
123
104
|
state.render(child, node, i);
|
|
124
105
|
}
|
|
125
106
|
},
|
|
126
|
-
|
|
127
107
|
orderedList(state, node) {
|
|
128
108
|
for (let i = 0; i < node.childCount; i++) {
|
|
129
109
|
const child = node.child(i);
|
|
130
110
|
state.render(child, node, i);
|
|
131
111
|
}
|
|
132
112
|
},
|
|
133
|
-
|
|
134
113
|
listItem(state, node, parent, index) {
|
|
135
114
|
const delimiter = parent.type.name === 'bulletList' ? '• ' : `${index + 1}. `;
|
|
136
|
-
|
|
137
115
|
for (let i = 0; i < node.childCount; i++) {
|
|
138
116
|
const child = node.child(i);
|
|
139
|
-
|
|
140
117
|
if (i > 0) {
|
|
141
118
|
state.write('\n');
|
|
142
119
|
}
|
|
143
|
-
|
|
144
120
|
if (i === 0) {
|
|
145
121
|
state.wrapBlock(' ', delimiter, node, () => state.render(child, parent, i));
|
|
146
122
|
} else {
|
|
147
123
|
state.wrapBlock(' ', undefined, node, () => state.render(child, parent, i));
|
|
148
124
|
}
|
|
149
|
-
|
|
150
125
|
if (child.type.name === 'paragraph' && i > 0) {
|
|
151
126
|
state.write('\n');
|
|
152
127
|
}
|
|
153
|
-
|
|
154
128
|
state.flushClose(1);
|
|
155
129
|
}
|
|
156
|
-
|
|
157
130
|
if (index === parent.childCount - 1) {
|
|
158
131
|
state.write('\n');
|
|
159
132
|
}
|
|
160
133
|
},
|
|
161
|
-
|
|
162
134
|
caption(state, node) {
|
|
163
135
|
state.renderInline(node);
|
|
164
136
|
state.closeBlock(node);
|
|
165
137
|
},
|
|
166
|
-
|
|
167
138
|
paragraph(state, node) {
|
|
168
139
|
state.renderInline(node);
|
|
169
140
|
state.closeBlock(node);
|
|
170
141
|
},
|
|
171
|
-
|
|
172
142
|
hardBreak(state) {
|
|
173
143
|
state.write(' \n');
|
|
174
144
|
},
|
|
175
|
-
|
|
176
145
|
text(state, node) {
|
|
177
146
|
const lines = node.textContent.split('\n');
|
|
178
|
-
|
|
179
147
|
for (let i = 0; i < lines.length; i++) {
|
|
180
148
|
state.write();
|
|
181
149
|
state.out += escapeMarkdown(lines[i]);
|
|
182
|
-
|
|
183
150
|
if (i !== lines.length - 1) {
|
|
184
151
|
state.out += '\n';
|
|
185
152
|
}
|
|
186
153
|
}
|
|
187
154
|
},
|
|
188
|
-
|
|
189
155
|
empty_line(state, node) {
|
|
190
156
|
state.write('\u200c'); // zero-width-non-joiner
|
|
191
|
-
|
|
192
157
|
state.closeBlock(node);
|
|
193
158
|
},
|
|
194
|
-
|
|
195
159
|
mention(state, node, parent, index) {
|
|
196
160
|
const isLastNode = parent.childCount === index + 1;
|
|
197
161
|
let delimiter = '';
|
|
198
|
-
|
|
199
162
|
if (!isLastNode) {
|
|
200
163
|
const nextNode = parent.child(index + 1);
|
|
201
164
|
const nextNodeHasLeadingSpace = nextNode.textContent.indexOf(' ') === 0;
|
|
202
165
|
delimiter = nextNodeHasLeadingSpace ? '' : ' ';
|
|
203
166
|
}
|
|
204
|
-
|
|
205
167
|
state.write(`@${node.attrs.id}${delimiter}`);
|
|
206
168
|
},
|
|
207
|
-
|
|
208
169
|
emoji(state, node) {
|
|
209
170
|
state.write(node.attrs.text || node.attrs.shortName);
|
|
210
171
|
},
|
|
211
|
-
|
|
212
172
|
mediaGroup(state, node) {
|
|
213
173
|
for (let i = 0; i < node.childCount; i++) {
|
|
214
174
|
const child = node.child(i);
|
|
215
175
|
state.render(child, node, i);
|
|
216
176
|
}
|
|
217
177
|
},
|
|
218
|
-
|
|
219
178
|
mediaSingle(state, node) {
|
|
220
179
|
for (let i = 0; i < node.childCount; i++) {
|
|
221
180
|
const child = node.child(i);
|
|
@@ -223,7 +182,6 @@ export const nodes = {
|
|
|
223
182
|
state.write('\n');
|
|
224
183
|
}
|
|
225
184
|
},
|
|
226
|
-
|
|
227
185
|
/**
|
|
228
186
|
* Slack markdown does not have specific syntax for images/files.
|
|
229
187
|
* We just show that there's an image attached as a link and a media just as a text.
|
|
@@ -232,11 +190,9 @@ export const nodes = {
|
|
|
232
190
|
state.write('[media attached]');
|
|
233
191
|
state.write('\n');
|
|
234
192
|
},
|
|
235
|
-
|
|
236
193
|
image(state, node) {
|
|
237
194
|
state.write(`[<${node.attrs.src}|image attached>]`);
|
|
238
195
|
},
|
|
239
|
-
|
|
240
196
|
date(state, node) {
|
|
241
197
|
/**
|
|
242
198
|
* The year will be omitted if the date refers to the current year.
|
|
@@ -245,57 +201,47 @@ export const nodes = {
|
|
|
245
201
|
const unixTime = +node.attrs.timestamp / 1000 | 0;
|
|
246
202
|
state.write(`<!date^${unixTime}^{date_short}|${new Date(+node.attrs.timestamp).toDateString()}>`);
|
|
247
203
|
},
|
|
248
|
-
|
|
249
204
|
decisionList(state, node) {
|
|
250
205
|
for (let i = 0; i < node.childCount; i++) {
|
|
251
206
|
const child = node.child(i);
|
|
252
207
|
state.render(child, node, i);
|
|
253
208
|
}
|
|
254
209
|
},
|
|
255
|
-
|
|
256
210
|
decisionItem(state, node, parent, index) {
|
|
257
211
|
state.write('<> ');
|
|
258
212
|
state.renderInline(node);
|
|
259
213
|
state.write('\n');
|
|
260
|
-
|
|
261
214
|
if (index === parent.childCount - 1) {
|
|
262
215
|
state.write('\n');
|
|
263
216
|
}
|
|
264
217
|
},
|
|
265
|
-
|
|
266
218
|
layoutSection(state, node) {
|
|
267
219
|
for (let i = 0; i < node.childCount; i++) {
|
|
268
220
|
const child = node.child(i);
|
|
269
221
|
state.render(child, node, i);
|
|
270
222
|
}
|
|
271
223
|
},
|
|
272
|
-
|
|
273
224
|
layoutColumn(state, node) {
|
|
274
225
|
state.renderInline(node);
|
|
275
226
|
},
|
|
276
|
-
|
|
277
227
|
status(state, node) {
|
|
278
228
|
state.write(`*${node.attrs.text}*`);
|
|
279
229
|
},
|
|
280
|
-
|
|
281
230
|
panel(state, node) {
|
|
282
231
|
state.renderInline(node);
|
|
283
232
|
},
|
|
284
|
-
|
|
285
233
|
placeholder(state, node) {
|
|
286
234
|
state.write(node.attrs.text);
|
|
287
235
|
},
|
|
288
|
-
|
|
289
236
|
confluenceJiraIssue(state, node) {
|
|
290
237
|
state.write(` JIRA | ${node.attrs.issueKey} `);
|
|
291
238
|
},
|
|
292
|
-
|
|
293
239
|
...unsupportedNodes
|
|
294
240
|
};
|
|
241
|
+
|
|
295
242
|
/**
|
|
296
243
|
* Slack markdown does not have specific syntax for (sub|super)script, underline, text color.
|
|
297
244
|
*/
|
|
298
|
-
|
|
299
245
|
const unsupportedMarks = {
|
|
300
246
|
subsup: {
|
|
301
247
|
open: '',
|
|
@@ -349,7 +295,6 @@ export const marks = {
|
|
|
349
295
|
open(_state, mark) {
|
|
350
296
|
return '<' + mark.attrs.href + '|';
|
|
351
297
|
},
|
|
352
|
-
|
|
353
298
|
close: '>'
|
|
354
299
|
},
|
|
355
300
|
code: {
|
package/dist/es2019/util.js
CHANGED
package/dist/es2019/version.json
CHANGED
package/dist/esm/index.js
CHANGED
|
@@ -5,10 +5,8 @@ import { MarkdownSerializer, marks, nodes } from './serializer';
|
|
|
5
5
|
export var SlackTransformer = /*#__PURE__*/function () {
|
|
6
6
|
function SlackTransformer() {
|
|
7
7
|
_classCallCheck(this, SlackTransformer);
|
|
8
|
-
|
|
9
8
|
_defineProperty(this, "serializer", new MarkdownSerializer(nodes, marks));
|
|
10
9
|
}
|
|
11
|
-
|
|
12
10
|
_createClass(SlackTransformer, [{
|
|
13
11
|
key: "encode",
|
|
14
12
|
value: function encode(node) {
|
|
@@ -20,6 +18,5 @@ export var SlackTransformer = /*#__PURE__*/function () {
|
|
|
20
18
|
throw new Error('This is not implemented yet');
|
|
21
19
|
}
|
|
22
20
|
}]);
|
|
23
|
-
|
|
24
21
|
return SlackTransformer;
|
|
25
22
|
}();
|
package/dist/esm/serializer.js
CHANGED
|
@@ -4,58 +4,44 @@ import _createClass from "@babel/runtime/helpers/createClass";
|
|
|
4
4
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
5
5
|
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
6
6
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
|
-
|
|
8
7
|
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; }
|
|
9
|
-
|
|
10
8
|
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) { _defineProperty(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; }
|
|
11
|
-
|
|
12
9
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
13
|
-
|
|
14
10
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
15
|
-
|
|
16
11
|
import { MarkdownSerializer as PMMarkdownSerializer, MarkdownSerializerState as PMMarkdownSerializerState } from 'prosemirror-markdown';
|
|
17
12
|
import { escapeMarkdown } from './util';
|
|
18
13
|
export var MarkdownSerializerState = /*#__PURE__*/function (_PMMarkdownSerializer) {
|
|
19
14
|
_inherits(MarkdownSerializerState, _PMMarkdownSerializer);
|
|
20
|
-
|
|
21
15
|
var _super = _createSuper(MarkdownSerializerState);
|
|
22
|
-
|
|
23
16
|
function MarkdownSerializerState() {
|
|
24
17
|
_classCallCheck(this, MarkdownSerializerState);
|
|
25
|
-
|
|
26
18
|
return _super.apply(this, arguments);
|
|
27
19
|
}
|
|
28
|
-
|
|
29
20
|
_createClass(MarkdownSerializerState, [{
|
|
30
21
|
key: "renderContent",
|
|
31
22
|
value: function renderContent(parent) {
|
|
32
23
|
var _this = this;
|
|
33
|
-
|
|
34
24
|
parent.forEach(function (child, _offset, index) {
|
|
35
|
-
if (
|
|
36
|
-
|
|
25
|
+
if (
|
|
26
|
+
// If child is an empty Textblock we need to insert a zwnj-character in order to preserve that line in markdown
|
|
27
|
+
child.isTextblock && !child.textContent &&
|
|
28
|
+
// If child is a Codeblock we need to handle this separately as we want to preserve empty code blocks
|
|
37
29
|
!(child.type.name === 'codeBlock') && !(child.content && child.content.size > 0)) {
|
|
38
30
|
return nodes.empty_line(_this, child);
|
|
39
31
|
}
|
|
40
|
-
|
|
41
32
|
return _this.render(child, parent, index);
|
|
42
33
|
});
|
|
43
34
|
}
|
|
44
35
|
}]);
|
|
45
|
-
|
|
46
36
|
return MarkdownSerializerState;
|
|
47
37
|
}(PMMarkdownSerializerState);
|
|
48
38
|
export var MarkdownSerializer = /*#__PURE__*/function (_PMMarkdownSerializer2) {
|
|
49
39
|
_inherits(MarkdownSerializer, _PMMarkdownSerializer2);
|
|
50
|
-
|
|
51
40
|
var _super2 = _createSuper(MarkdownSerializer);
|
|
52
|
-
|
|
53
41
|
function MarkdownSerializer() {
|
|
54
42
|
_classCallCheck(this, MarkdownSerializer);
|
|
55
|
-
|
|
56
43
|
return _super2.apply(this, arguments);
|
|
57
44
|
}
|
|
58
|
-
|
|
59
45
|
_createClass(MarkdownSerializer, [{
|
|
60
46
|
key: "serialize",
|
|
61
47
|
value: function serialize(content, options) {
|
|
@@ -64,13 +50,12 @@ export var MarkdownSerializer = /*#__PURE__*/function (_PMMarkdownSerializer2) {
|
|
|
64
50
|
return state.out === "\u200C" ? '' : state.out; // Return empty string if editor only contains a zero-non-width character
|
|
65
51
|
}
|
|
66
52
|
}]);
|
|
67
|
-
|
|
68
53
|
return MarkdownSerializer;
|
|
69
54
|
}(PMMarkdownSerializer);
|
|
55
|
+
|
|
70
56
|
/**
|
|
71
57
|
* Stubs for unsupported nodes
|
|
72
58
|
*/
|
|
73
|
-
|
|
74
59
|
var unsupportedNodes = {
|
|
75
60
|
table: function table(state, node) {
|
|
76
61
|
state.write('[table]');
|
|
@@ -84,7 +69,6 @@ var unsupportedNodes = {
|
|
|
84
69
|
state.write('[embedded card]');
|
|
85
70
|
state.closeBlock(node);
|
|
86
71
|
},
|
|
87
|
-
|
|
88
72
|
/**
|
|
89
73
|
* Inline cards with url type attributes will be sent as a link
|
|
90
74
|
*/
|
|
@@ -161,14 +145,11 @@ export var nodes = _objectSpread({
|
|
|
161
145
|
},
|
|
162
146
|
listItem: function listItem(state, node, parent, index) {
|
|
163
147
|
var delimiter = parent.type.name === 'bulletList' ? '• ' : "".concat(index + 1, ". ");
|
|
164
|
-
|
|
165
148
|
var _loop = function _loop(i) {
|
|
166
149
|
var child = node.child(i);
|
|
167
|
-
|
|
168
150
|
if (i > 0) {
|
|
169
151
|
state.write('\n');
|
|
170
152
|
}
|
|
171
|
-
|
|
172
153
|
if (i === 0) {
|
|
173
154
|
state.wrapBlock(' ', delimiter, node, function () {
|
|
174
155
|
return state.render(child, parent, i);
|
|
@@ -178,18 +159,14 @@ export var nodes = _objectSpread({
|
|
|
178
159
|
return state.render(child, parent, i);
|
|
179
160
|
});
|
|
180
161
|
}
|
|
181
|
-
|
|
182
162
|
if (child.type.name === 'paragraph' && i > 0) {
|
|
183
163
|
state.write('\n');
|
|
184
164
|
}
|
|
185
|
-
|
|
186
165
|
state.flushClose(1);
|
|
187
166
|
};
|
|
188
|
-
|
|
189
167
|
for (var i = 0; i < node.childCount; i++) {
|
|
190
168
|
_loop(i);
|
|
191
169
|
}
|
|
192
|
-
|
|
193
170
|
if (index === parent.childCount - 1) {
|
|
194
171
|
state.write('\n');
|
|
195
172
|
}
|
|
@@ -207,11 +184,9 @@ export var nodes = _objectSpread({
|
|
|
207
184
|
},
|
|
208
185
|
text: function text(state, node) {
|
|
209
186
|
var lines = node.textContent.split('\n');
|
|
210
|
-
|
|
211
187
|
for (var i = 0; i < lines.length; i++) {
|
|
212
188
|
state.write();
|
|
213
189
|
state.out += escapeMarkdown(lines[i]);
|
|
214
|
-
|
|
215
190
|
if (i !== lines.length - 1) {
|
|
216
191
|
state.out += '\n';
|
|
217
192
|
}
|
|
@@ -219,19 +194,16 @@ export var nodes = _objectSpread({
|
|
|
219
194
|
},
|
|
220
195
|
empty_line: function empty_line(state, node) {
|
|
221
196
|
state.write("\u200C"); // zero-width-non-joiner
|
|
222
|
-
|
|
223
197
|
state.closeBlock(node);
|
|
224
198
|
},
|
|
225
199
|
mention: function mention(state, node, parent, index) {
|
|
226
200
|
var isLastNode = parent.childCount === index + 1;
|
|
227
201
|
var delimiter = '';
|
|
228
|
-
|
|
229
202
|
if (!isLastNode) {
|
|
230
203
|
var nextNode = parent.child(index + 1);
|
|
231
204
|
var nextNodeHasLeadingSpace = nextNode.textContent.indexOf(' ') === 0;
|
|
232
205
|
delimiter = nextNodeHasLeadingSpace ? '' : ' ';
|
|
233
206
|
}
|
|
234
|
-
|
|
235
207
|
state.write("@".concat(node.attrs.id).concat(delimiter));
|
|
236
208
|
},
|
|
237
209
|
emoji: function emoji(state, node) {
|
|
@@ -250,7 +222,6 @@ export var nodes = _objectSpread({
|
|
|
250
222
|
state.write('\n');
|
|
251
223
|
}
|
|
252
224
|
},
|
|
253
|
-
|
|
254
225
|
/**
|
|
255
226
|
* Slack markdown does not have specific syntax for images/files.
|
|
256
227
|
* We just show that there's an image attached as a link and a media just as a text.
|
|
@@ -280,7 +251,6 @@ export var nodes = _objectSpread({
|
|
|
280
251
|
state.write('<> ');
|
|
281
252
|
state.renderInline(node);
|
|
282
253
|
state.write('\n');
|
|
283
|
-
|
|
284
254
|
if (index === parent.childCount - 1) {
|
|
285
255
|
state.write('\n');
|
|
286
256
|
}
|
|
@@ -307,10 +277,10 @@ export var nodes = _objectSpread({
|
|
|
307
277
|
state.write(" JIRA | ".concat(node.attrs.issueKey, " "));
|
|
308
278
|
}
|
|
309
279
|
}, unsupportedNodes);
|
|
280
|
+
|
|
310
281
|
/**
|
|
311
282
|
* Slack markdown does not have specific syntax for (sub|super)script, underline, text color.
|
|
312
283
|
*/
|
|
313
|
-
|
|
314
284
|
var unsupportedMarks = {
|
|
315
285
|
subsup: {
|
|
316
286
|
open: '',
|
package/dist/esm/util.js
CHANGED
package/dist/esm/version.json
CHANGED
|
@@ -25,8 +25,7 @@ const providers = {
|
|
|
25
25
|
resolved: Promise.resolve(mentionResourceProvider),
|
|
26
26
|
'resolved 2': Promise.resolve(
|
|
27
27
|
new MentionResource({
|
|
28
|
-
url:
|
|
29
|
-
'https://pf-mentions-service.staging.atlassian.io/mentions/f7ebe2c0-0309-4687-b913-41d422f2110b',
|
|
28
|
+
url: 'https://pf-mentions-service.staging.atlassian.io/mentions/f7ebe2c0-0309-4687-b913-41d422f2110b',
|
|
30
29
|
containerId: 'b0d035bd-9b98-4386-863b-07286c34dc14',
|
|
31
30
|
productId: 'hipchat',
|
|
32
31
|
}),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-slack-transformer",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.7",
|
|
4
4
|
"description": "Editor Slack transformer",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -12,13 +12,6 @@
|
|
|
12
12
|
"module": "dist/esm/index.js",
|
|
13
13
|
"module:es2019": "dist/es2019/index.js",
|
|
14
14
|
"types": "dist/types/index.d.ts",
|
|
15
|
-
"typesVersions": {
|
|
16
|
-
">=4.0 <4.5": {
|
|
17
|
-
"*": [
|
|
18
|
-
"dist/types-ts4.0/*"
|
|
19
|
-
]
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
15
|
"sideEffects": false,
|
|
23
16
|
"atlaskit:src": "src/index.ts",
|
|
24
17
|
"atlassian": {
|
|
@@ -39,15 +32,15 @@
|
|
|
39
32
|
},
|
|
40
33
|
"devDependencies": {
|
|
41
34
|
"@atlaskit/activity": "^1.0.1",
|
|
42
|
-
"@atlaskit/adf-schema": "^
|
|
35
|
+
"@atlaskit/adf-schema": "^25.5.0",
|
|
43
36
|
"@atlaskit/docs": "*",
|
|
44
|
-
"@atlaskit/editor-common": "^
|
|
45
|
-
"@atlaskit/editor-core": "^
|
|
46
|
-
"@atlaskit/editor-test-helpers": "^
|
|
47
|
-
"@atlaskit/emoji": "^
|
|
48
|
-
"@atlaskit/smart-card": "^
|
|
49
|
-
"@atlaskit/theme": "^12.
|
|
50
|
-
"@atlaskit/util-data-test": "^17.
|
|
37
|
+
"@atlaskit/editor-common": "^73.0.0",
|
|
38
|
+
"@atlaskit/editor-core": "^182.2.0",
|
|
39
|
+
"@atlaskit/editor-test-helpers": "^18.2.0",
|
|
40
|
+
"@atlaskit/emoji": "^67.3.0",
|
|
41
|
+
"@atlaskit/smart-card": "^25.9.0",
|
|
42
|
+
"@atlaskit/theme": "^12.4.0",
|
|
43
|
+
"@atlaskit/util-data-test": "^17.7.0",
|
|
51
44
|
"@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
|
|
52
45
|
"@emotion/react": "^11.7.1",
|
|
53
46
|
"prosemirror-view": "1.23.2",
|
package/report.api.md
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
+
<!-- API Report Version: 2.3 -->
|
|
2
|
+
|
|
1
3
|
## API Report File for "@atlaskit/editor-slack-transformer"
|
|
2
4
|
|
|
3
|
-
> Do not edit this file.
|
|
5
|
+
> Do not edit this file. This report is auto-generated using [API Extractor](https://api-extractor.com/).
|
|
6
|
+
> [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)
|
|
7
|
+
|
|
8
|
+
### Table of contents
|
|
9
|
+
|
|
10
|
+
- [Main Entry Types](#main-entry-types)
|
|
11
|
+
- [Peer Dependencies](#peer-dependencies)
|
|
4
12
|
|
|
5
|
-
|
|
6
|
-
Generated API Report version: 2.0
|
|
7
|
-
-->
|
|
13
|
+
### Main Entry Types
|
|
8
14
|
|
|
9
|
-
|
|
15
|
+
<!--SECTION START: Main Entry Types-->
|
|
10
16
|
|
|
11
17
|
```ts
|
|
12
18
|
import { Node as Node_2 } from 'prosemirror-model';
|
|
@@ -29,3 +35,17 @@ interface Transformer_2<T> {
|
|
|
29
35
|
|
|
30
36
|
// (No @packageDocumentation comment for this package)
|
|
31
37
|
```
|
|
38
|
+
|
|
39
|
+
<!--SECTION END: Main Entry Types-->
|
|
40
|
+
|
|
41
|
+
### Peer Dependencies
|
|
42
|
+
|
|
43
|
+
<!--SECTION START: Peer Dependencies-->
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"react": "^16.8.0"
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
<!--SECTION END: Peer Dependencies-->
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
## API Report File for "@atlaskit/editor-slack-transformer"
|
|
2
|
+
|
|
3
|
+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
|
|
7
|
+
import { Node as Node_2 } from 'prosemirror-model';
|
|
8
|
+
|
|
9
|
+
// @public (undocumented)
|
|
10
|
+
export class SlackTransformer implements Transformer_2<string> {
|
|
11
|
+
// (undocumented)
|
|
12
|
+
encode(node: Node_2): string;
|
|
13
|
+
// (undocumented)
|
|
14
|
+
parse(_slackMarkdown: string): Node_2;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// @public (undocumented)
|
|
18
|
+
interface Transformer_2<T> {
|
|
19
|
+
// (undocumented)
|
|
20
|
+
encode(node: Node_2): T;
|
|
21
|
+
// (undocumented)
|
|
22
|
+
parse(content: T): Node_2;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// (No @packageDocumentation comment for this package)
|
|
26
|
+
|
|
27
|
+
```
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Node as PMNode } from 'prosemirror-model';
|
|
2
|
-
interface Transformer<T> {
|
|
3
|
-
encode(node: PMNode): T;
|
|
4
|
-
parse(content: T): PMNode;
|
|
5
|
-
}
|
|
6
|
-
export declare class SlackTransformer implements Transformer<string> {
|
|
7
|
-
private serializer;
|
|
8
|
-
encode(node: PMNode): string;
|
|
9
|
-
parse(_slackMarkdown: string): PMNode;
|
|
10
|
-
}
|
|
11
|
-
export {};
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { MarkdownSerializer as PMMarkdownSerializer, MarkdownSerializerState as PMMarkdownSerializerState } from 'prosemirror-markdown';
|
|
2
|
-
import { Node as PMNode } from 'prosemirror-model';
|
|
3
|
-
export declare class MarkdownSerializerState extends PMMarkdownSerializerState {
|
|
4
|
-
renderContent(parent: PMNode): void;
|
|
5
|
-
}
|
|
6
|
-
export declare class MarkdownSerializer extends PMMarkdownSerializer {
|
|
7
|
-
serialize(content: PMNode, options?: {
|
|
8
|
-
[key: string]: any;
|
|
9
|
-
}): string;
|
|
10
|
-
}
|
|
11
|
-
export declare const nodes: {
|
|
12
|
-
table(state: MarkdownSerializerState, node: PMNode): void;
|
|
13
|
-
blockCard(state: MarkdownSerializerState, node: PMNode): void;
|
|
14
|
-
embedCard(state: MarkdownSerializerState, node: PMNode): void;
|
|
15
|
-
/**
|
|
16
|
-
* Inline cards with url type attributes will be sent as a link
|
|
17
|
-
*/
|
|
18
|
-
inlineCard(state: MarkdownSerializerState, node: PMNode): void;
|
|
19
|
-
inlineExtension(state: MarkdownSerializerState): void;
|
|
20
|
-
mediaInline(state: MarkdownSerializerState): void;
|
|
21
|
-
extension(state: MarkdownSerializerState, node: PMNode): void;
|
|
22
|
-
bodiedExtension(state: MarkdownSerializerState, node: PMNode): void;
|
|
23
|
-
taskList(state: MarkdownSerializerState, node: PMNode): void;
|
|
24
|
-
nestedExpand(state: MarkdownSerializerState): void;
|
|
25
|
-
confluenceUnsupportedBlock(state: MarkdownSerializerState): void;
|
|
26
|
-
confluenceUnsupportedInline(state: MarkdownSerializerState): void;
|
|
27
|
-
unsupportedInline(state: MarkdownSerializerState): void;
|
|
28
|
-
unsupportedBlock(state: MarkdownSerializerState): void;
|
|
29
|
-
blockquote(state: MarkdownSerializerState, node: PMNode): void;
|
|
30
|
-
codeBlock(state: MarkdownSerializerState, node: PMNode): void;
|
|
31
|
-
heading(state: MarkdownSerializerState, node: PMNode): void;
|
|
32
|
-
rule(state: MarkdownSerializerState, node: PMNode): void;
|
|
33
|
-
bulletList(state: MarkdownSerializerState, node: PMNode): void;
|
|
34
|
-
orderedList(state: MarkdownSerializerState, node: PMNode): void;
|
|
35
|
-
listItem(state: MarkdownSerializerState, node: PMNode, parent: PMNode, index: number): void;
|
|
36
|
-
caption(state: MarkdownSerializerState, node: PMNode): void;
|
|
37
|
-
paragraph(state: MarkdownSerializerState, node: PMNode): void;
|
|
38
|
-
hardBreak(state: MarkdownSerializerState): void;
|
|
39
|
-
text(state: MarkdownSerializerState, node: PMNode): void;
|
|
40
|
-
empty_line(state: MarkdownSerializerState, node: PMNode): void;
|
|
41
|
-
mention(state: MarkdownSerializerState, node: PMNode, parent: PMNode, index: number): void;
|
|
42
|
-
emoji(state: MarkdownSerializerState, node: PMNode): void;
|
|
43
|
-
mediaGroup(state: MarkdownSerializerState, node: PMNode): void;
|
|
44
|
-
mediaSingle(state: MarkdownSerializerState, node: PMNode): void;
|
|
45
|
-
/**
|
|
46
|
-
* Slack markdown does not have specific syntax for images/files.
|
|
47
|
-
* We just show that there's an image attached as a link and a media just as a text.
|
|
48
|
-
*/
|
|
49
|
-
media(state: MarkdownSerializerState): void;
|
|
50
|
-
image(state: MarkdownSerializerState, node: PMNode): void;
|
|
51
|
-
date(state: MarkdownSerializerState, node: PMNode): void;
|
|
52
|
-
decisionList(state: MarkdownSerializerState, node: PMNode): void;
|
|
53
|
-
decisionItem(state: MarkdownSerializerState, node: PMNode, parent: PMNode, index: number): void;
|
|
54
|
-
layoutSection(state: MarkdownSerializerState, node: PMNode): void;
|
|
55
|
-
layoutColumn(state: MarkdownSerializerState, node: PMNode): void;
|
|
56
|
-
status(state: MarkdownSerializerState, node: PMNode): void;
|
|
57
|
-
panel(state: MarkdownSerializerState, node: PMNode): void;
|
|
58
|
-
placeholder(state: MarkdownSerializerState, node: PMNode): void;
|
|
59
|
-
confluenceJiraIssue(state: MarkdownSerializerState, node: PMNode): void;
|
|
60
|
-
};
|
|
61
|
-
export declare const marks: {
|
|
62
|
-
subsup: {
|
|
63
|
-
open: string;
|
|
64
|
-
close: string;
|
|
65
|
-
};
|
|
66
|
-
underline: {
|
|
67
|
-
open: string;
|
|
68
|
-
close: string;
|
|
69
|
-
};
|
|
70
|
-
textColor: {
|
|
71
|
-
open: string;
|
|
72
|
-
close: string;
|
|
73
|
-
};
|
|
74
|
-
typeAheadQuery: {
|
|
75
|
-
open: string;
|
|
76
|
-
close: string;
|
|
77
|
-
};
|
|
78
|
-
confluenceInlineComment: {
|
|
79
|
-
open: string;
|
|
80
|
-
close: string;
|
|
81
|
-
};
|
|
82
|
-
annotation: {
|
|
83
|
-
open: string;
|
|
84
|
-
close: string;
|
|
85
|
-
};
|
|
86
|
-
unsupportedMark: {
|
|
87
|
-
open: string;
|
|
88
|
-
close: string;
|
|
89
|
-
};
|
|
90
|
-
em: {
|
|
91
|
-
open: string;
|
|
92
|
-
close: string;
|
|
93
|
-
mixable: boolean;
|
|
94
|
-
expelEnclosingWhitespace: boolean;
|
|
95
|
-
};
|
|
96
|
-
strong: {
|
|
97
|
-
open: string;
|
|
98
|
-
close: string;
|
|
99
|
-
mixable: boolean;
|
|
100
|
-
expelEnclosingWhitespace: boolean;
|
|
101
|
-
};
|
|
102
|
-
strike: {
|
|
103
|
-
open: string;
|
|
104
|
-
close: string;
|
|
105
|
-
mixable: boolean;
|
|
106
|
-
expelEnclosingWhitespace: boolean;
|
|
107
|
-
};
|
|
108
|
-
link: {
|
|
109
|
-
open(_state: MarkdownSerializerState, mark: any): string;
|
|
110
|
-
close: string;
|
|
111
|
-
};
|
|
112
|
-
code: {
|
|
113
|
-
open: string;
|
|
114
|
-
close: string;
|
|
115
|
-
escape: boolean;
|
|
116
|
-
};
|
|
117
|
-
};
|