@atlaskit/editor-wikimarkup-transformer 9.5.3
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 +2299 -0
- package/LICENSE +13 -0
- package/build/tsconfig.json +17 -0
- package/char/package.json +7 -0
- package/dist/cjs/char.js +8 -0
- package/dist/cjs/encoder/emoji-unicode-mapping.js +1618 -0
- package/dist/cjs/encoder/index.js +76 -0
- package/dist/cjs/encoder/marks/__base.js +24 -0
- package/dist/cjs/encoder/marks/code.js +12 -0
- package/dist/cjs/encoder/marks/color.js +12 -0
- package/dist/cjs/encoder/marks/em.js +19 -0
- package/dist/cjs/encoder/marks/link.js +12 -0
- package/dist/cjs/encoder/marks/strike.js +14 -0
- package/dist/cjs/encoder/marks/strong.js +18 -0
- package/dist/cjs/encoder/marks/subsup.js +18 -0
- package/dist/cjs/encoder/marks/underline.js +14 -0
- package/dist/cjs/encoder/nodes/block-card.js +18 -0
- package/dist/cjs/encoder/nodes/blockquote.js +21 -0
- package/dist/cjs/encoder/nodes/bullet-list.js +21 -0
- package/dist/cjs/encoder/nodes/code-block.js +27 -0
- package/dist/cjs/encoder/nodes/date.js +21 -0
- package/dist/cjs/encoder/nodes/decisionItem.js +23 -0
- package/dist/cjs/encoder/nodes/decisionList.js +18 -0
- package/dist/cjs/encoder/nodes/doc.js +21 -0
- package/dist/cjs/encoder/nodes/embed-card.js +18 -0
- package/dist/cjs/encoder/nodes/emoji.js +26 -0
- package/dist/cjs/encoder/nodes/expand.js +22 -0
- package/dist/cjs/encoder/nodes/hard-break.js +12 -0
- package/dist/cjs/encoder/nodes/heading.js +18 -0
- package/dist/cjs/encoder/nodes/inline-card.js +26 -0
- package/dist/cjs/encoder/nodes/inlines.js +44 -0
- package/dist/cjs/encoder/nodes/listItem.js +77 -0
- package/dist/cjs/encoder/nodes/media-group.js +24 -0
- package/dist/cjs/encoder/nodes/media.js +66 -0
- package/dist/cjs/encoder/nodes/mention.js +27 -0
- package/dist/cjs/encoder/nodes/ordered-list.js +21 -0
- package/dist/cjs/encoder/nodes/panel.js +29 -0
- package/dist/cjs/encoder/nodes/paragraph.js +23 -0
- package/dist/cjs/encoder/nodes/rule.js +12 -0
- package/dist/cjs/encoder/nodes/status.js +43 -0
- package/dist/cjs/encoder/nodes/table.js +77 -0
- package/dist/cjs/encoder/nodes/taskItem.js +32 -0
- package/dist/cjs/encoder/nodes/taskList.js +27 -0
- package/dist/cjs/encoder/nodes/text.js +67 -0
- package/dist/cjs/encoder/nodes/unknown.js +17 -0
- package/dist/cjs/index.js +93 -0
- package/dist/cjs/interfaces.js +5 -0
- package/dist/cjs/parser/abstract-tree.js +44 -0
- package/dist/cjs/parser/builder/list-builder.js +350 -0
- package/dist/cjs/parser/builder/table-builder.js +156 -0
- package/dist/cjs/parser/color.js +13 -0
- package/dist/cjs/parser/error.js +22 -0
- package/dist/cjs/parser/nodes/mediaGroup.js +25 -0
- package/dist/cjs/parser/nodes/mediaSingle.js +107 -0
- package/dist/cjs/parser/nodes/paragraph.js +72 -0
- package/dist/cjs/parser/nodes/rule.js +27 -0
- package/dist/cjs/parser/nodes/text.js +15 -0
- package/dist/cjs/parser/text.js +165 -0
- package/dist/cjs/parser/tokenize/adf-macro.js +49 -0
- package/dist/cjs/parser/tokenize/anchor-macro.js +31 -0
- package/dist/cjs/parser/tokenize/blockquote.js +42 -0
- package/dist/cjs/parser/tokenize/citation.js +71 -0
- package/dist/cjs/parser/tokenize/code-macro.js +95 -0
- package/dist/cjs/parser/tokenize/color-macro.js +64 -0
- package/dist/cjs/parser/tokenize/common-formatter.js +230 -0
- package/dist/cjs/parser/tokenize/common-macro.js +62 -0
- package/dist/cjs/parser/tokenize/dash-token-creator.js +42 -0
- package/dist/cjs/parser/tokenize/deleted.js +66 -0
- package/dist/cjs/parser/tokenize/double-dash-symbol.js +30 -0
- package/dist/cjs/parser/tokenize/emoji.js +184 -0
- package/dist/cjs/parser/tokenize/emphasis.js +65 -0
- package/dist/cjs/parser/tokenize/file-link.js +36 -0
- package/dist/cjs/parser/tokenize/force-line-break.js +48 -0
- package/dist/cjs/parser/tokenize/hardbreak.js +33 -0
- package/dist/cjs/parser/tokenize/heading.js +70 -0
- package/dist/cjs/parser/tokenize/index.js +144 -0
- package/dist/cjs/parser/tokenize/inserted.js +65 -0
- package/dist/cjs/parser/tokenize/issue-key.js +107 -0
- package/dist/cjs/parser/tokenize/keyword.js +159 -0
- package/dist/cjs/parser/tokenize/link-text.js +77 -0
- package/dist/cjs/parser/tokenize/links/attachment-link.js +18 -0
- package/dist/cjs/parser/tokenize/links/issue-link.js +41 -0
- package/dist/cjs/parser/tokenize/links/link-format.js +65 -0
- package/dist/cjs/parser/tokenize/links/link-parser.js +224 -0
- package/dist/cjs/parser/tokenize/links/link-resolver.js +57 -0
- package/dist/cjs/parser/tokenize/links/mention-link.js +24 -0
- package/dist/cjs/parser/tokenize/links/url-link.js +64 -0
- package/dist/cjs/parser/tokenize/list.js +339 -0
- package/dist/cjs/parser/tokenize/media.js +51 -0
- package/dist/cjs/parser/tokenize/monospace.js +59 -0
- package/dist/cjs/parser/tokenize/noformat-macro.js +46 -0
- package/dist/cjs/parser/tokenize/panel-macro.js +106 -0
- package/dist/cjs/parser/tokenize/quadruple-dash-symbol.js +30 -0
- package/dist/cjs/parser/tokenize/quote-macro.js +166 -0
- package/dist/cjs/parser/tokenize/ruler.js +33 -0
- package/dist/cjs/parser/tokenize/strong.js +65 -0
- package/dist/cjs/parser/tokenize/subscript.js +67 -0
- package/dist/cjs/parser/tokenize/superscript.js +67 -0
- package/dist/cjs/parser/tokenize/table.js +353 -0
- package/dist/cjs/parser/tokenize/triple-dash-symbol.js +30 -0
- package/dist/cjs/parser/tokenize/whitespace.js +56 -0
- package/dist/cjs/parser/utils/attrs.js +33 -0
- package/dist/cjs/parser/utils/color-name-mapping.js +700 -0
- package/dist/cjs/parser/utils/escape.js +36 -0
- package/dist/cjs/parser/utils/normalize.js +209 -0
- package/dist/cjs/parser/utils/panel-type.js +120 -0
- package/dist/cjs/parser/utils/text.js +98 -0
- package/dist/cjs/parser/utils/title.js +17 -0
- package/dist/cjs/parser/utils/url.js +31 -0
- package/dist/cjs/version.json +5 -0
- package/dist/es2019/char.js +1 -0
- package/dist/es2019/encoder/emoji-unicode-mapping.js +1611 -0
- package/dist/es2019/encoder/index.js +51 -0
- package/dist/es2019/encoder/marks/__base.js +15 -0
- package/dist/es2019/encoder/marks/code.js +3 -0
- package/dist/es2019/encoder/marks/color.js +3 -0
- package/dist/es2019/encoder/marks/em.js +9 -0
- package/dist/es2019/encoder/marks/link.js +3 -0
- package/dist/es2019/encoder/marks/strike.js +4 -0
- package/dist/es2019/encoder/marks/strong.js +9 -0
- package/dist/es2019/encoder/marks/subsup.js +8 -0
- package/dist/es2019/encoder/marks/underline.js +4 -0
- package/dist/es2019/encoder/nodes/block-card.js +8 -0
- package/dist/es2019/encoder/nodes/blockquote.js +10 -0
- package/dist/es2019/encoder/nodes/bullet-list.js +10 -0
- package/dist/es2019/encoder/nodes/code-block.js +16 -0
- package/dist/es2019/encoder/nodes/date.js +12 -0
- package/dist/es2019/encoder/nodes/decisionItem.js +12 -0
- package/dist/es2019/encoder/nodes/decisionList.js +8 -0
- package/dist/es2019/encoder/nodes/doc.js +10 -0
- package/dist/es2019/encoder/nodes/embed-card.js +8 -0
- package/dist/es2019/encoder/nodes/emoji.js +15 -0
- package/dist/es2019/encoder/nodes/expand.js +11 -0
- package/dist/es2019/encoder/nodes/hard-break.js +3 -0
- package/dist/es2019/encoder/nodes/heading.js +8 -0
- package/dist/es2019/encoder/nodes/inline-card.js +15 -0
- package/dist/es2019/encoder/nodes/inlines.js +26 -0
- package/dist/es2019/encoder/nodes/listItem.js +63 -0
- package/dist/es2019/encoder/nodes/media-group.js +13 -0
- package/dist/es2019/encoder/nodes/media.js +54 -0
- package/dist/es2019/encoder/nodes/mention.js +16 -0
- package/dist/es2019/encoder/nodes/ordered-list.js +10 -0
- package/dist/es2019/encoder/nodes/panel.js +19 -0
- package/dist/es2019/encoder/nodes/paragraph.js +12 -0
- package/dist/es2019/encoder/nodes/rule.js +3 -0
- package/dist/es2019/encoder/nodes/status.js +23 -0
- package/dist/es2019/encoder/nodes/table.js +62 -0
- package/dist/es2019/encoder/nodes/taskItem.js +21 -0
- package/dist/es2019/encoder/nodes/taskList.js +17 -0
- package/dist/es2019/encoder/nodes/text.js +46 -0
- package/dist/es2019/encoder/nodes/unknown.js +8 -0
- package/dist/es2019/index.js +58 -0
- package/dist/es2019/interfaces.js +1 -0
- package/dist/es2019/parser/abstract-tree.js +23 -0
- package/dist/es2019/parser/builder/list-builder.js +294 -0
- package/dist/es2019/parser/builder/table-builder.js +135 -0
- package/dist/es2019/parser/color.js +5 -0
- package/dist/es2019/parser/error.js +15 -0
- package/dist/es2019/parser/nodes/mediaGroup.js +18 -0
- package/dist/es2019/parser/nodes/mediaSingle.js +95 -0
- package/dist/es2019/parser/nodes/paragraph.js +43 -0
- package/dist/es2019/parser/nodes/rule.js +21 -0
- package/dist/es2019/parser/nodes/text.js +8 -0
- package/dist/es2019/parser/text.js +145 -0
- package/dist/es2019/parser/tokenize/adf-macro.js +40 -0
- package/dist/es2019/parser/tokenize/anchor-macro.js +22 -0
- package/dist/es2019/parser/tokenize/blockquote.js +26 -0
- package/dist/es2019/parser/tokenize/citation.js +53 -0
- package/dist/es2019/parser/tokenize/code-macro.js +57 -0
- package/dist/es2019/parser/tokenize/color-macro.js +46 -0
- package/dist/es2019/parser/tokenize/common-formatter.js +215 -0
- package/dist/es2019/parser/tokenize/common-macro.js +48 -0
- package/dist/es2019/parser/tokenize/dash-token-creator.js +31 -0
- package/dist/es2019/parser/tokenize/deleted.js +49 -0
- package/dist/es2019/parser/tokenize/double-dash-symbol.js +11 -0
- package/dist/es2019/parser/tokenize/emoji.js +174 -0
- package/dist/es2019/parser/tokenize/emphasis.js +48 -0
- package/dist/es2019/parser/tokenize/file-link.js +25 -0
- package/dist/es2019/parser/tokenize/force-line-break.js +38 -0
- package/dist/es2019/parser/tokenize/hardbreak.js +24 -0
- package/dist/es2019/parser/tokenize/heading.js +58 -0
- package/dist/es2019/parser/tokenize/index.js +129 -0
- package/dist/es2019/parser/tokenize/inserted.js +48 -0
- package/dist/es2019/parser/tokenize/issue-key.js +81 -0
- package/dist/es2019/parser/tokenize/keyword.js +142 -0
- package/dist/es2019/parser/tokenize/link-text.js +65 -0
- package/dist/es2019/parser/tokenize/links/attachment-link.js +8 -0
- package/dist/es2019/parser/tokenize/links/issue-link.js +35 -0
- package/dist/es2019/parser/tokenize/links/link-format.js +52 -0
- package/dist/es2019/parser/tokenize/links/link-parser.js +208 -0
- package/dist/es2019/parser/tokenize/links/link-resolver.js +39 -0
- package/dist/es2019/parser/tokenize/links/mention-link.js +17 -0
- package/dist/es2019/parser/tokenize/links/url-link.js +49 -0
- package/dist/es2019/parser/tokenize/list.js +296 -0
- package/dist/es2019/parser/tokenize/media.js +30 -0
- package/dist/es2019/parser/tokenize/monospace.js +47 -0
- package/dist/es2019/parser/tokenize/noformat-macro.js +37 -0
- package/dist/es2019/parser/tokenize/panel-macro.js +63 -0
- package/dist/es2019/parser/tokenize/quadruple-dash-symbol.js +22 -0
- package/dist/es2019/parser/tokenize/quote-macro.js +129 -0
- package/dist/es2019/parser/tokenize/ruler.js +23 -0
- package/dist/es2019/parser/tokenize/strong.js +48 -0
- package/dist/es2019/parser/tokenize/subscript.js +50 -0
- package/dist/es2019/parser/tokenize/superscript.js +50 -0
- package/dist/es2019/parser/tokenize/table.js +333 -0
- package/dist/es2019/parser/tokenize/triple-dash-symbol.js +11 -0
- package/dist/es2019/parser/tokenize/whitespace.js +45 -0
- package/dist/es2019/parser/utils/attrs.js +17 -0
- package/dist/es2019/parser/utils/color-name-mapping.js +693 -0
- package/dist/es2019/parser/utils/escape.js +28 -0
- package/dist/es2019/parser/utils/normalize.js +161 -0
- package/dist/es2019/parser/utils/panel-type.js +109 -0
- package/dist/es2019/parser/utils/text.js +58 -0
- package/dist/es2019/parser/utils/title.js +10 -0
- package/dist/es2019/parser/utils/url.js +24 -0
- package/dist/es2019/version.json +5 -0
- package/dist/esm/char.js +1 -0
- package/dist/esm/encoder/emoji-unicode-mapping.js +1611 -0
- package/dist/esm/encoder/index.js +51 -0
- package/dist/esm/encoder/marks/__base.js +15 -0
- package/dist/esm/encoder/marks/code.js +3 -0
- package/dist/esm/encoder/marks/color.js +3 -0
- package/dist/esm/encoder/marks/em.js +9 -0
- package/dist/esm/encoder/marks/link.js +3 -0
- package/dist/esm/encoder/marks/strike.js +4 -0
- package/dist/esm/encoder/marks/strong.js +9 -0
- package/dist/esm/encoder/marks/subsup.js +8 -0
- package/dist/esm/encoder/marks/underline.js +4 -0
- package/dist/esm/encoder/nodes/block-card.js +8 -0
- package/dist/esm/encoder/nodes/blockquote.js +11 -0
- package/dist/esm/encoder/nodes/bullet-list.js +11 -0
- package/dist/esm/encoder/nodes/code-block.js +16 -0
- package/dist/esm/encoder/nodes/date.js +12 -0
- package/dist/esm/encoder/nodes/decisionItem.js +13 -0
- package/dist/esm/encoder/nodes/decisionList.js +8 -0
- package/dist/esm/encoder/nodes/doc.js +11 -0
- package/dist/esm/encoder/nodes/embed-card.js +8 -0
- package/dist/esm/encoder/nodes/emoji.js +15 -0
- package/dist/esm/encoder/nodes/expand.js +12 -0
- package/dist/esm/encoder/nodes/hard-break.js +3 -0
- package/dist/esm/encoder/nodes/heading.js +8 -0
- package/dist/esm/encoder/nodes/inline-card.js +15 -0
- package/dist/esm/encoder/nodes/inlines.js +26 -0
- package/dist/esm/encoder/nodes/listItem.js +63 -0
- package/dist/esm/encoder/nodes/media-group.js +14 -0
- package/dist/esm/encoder/nodes/media.js +57 -0
- package/dist/esm/encoder/nodes/mention.js +19 -0
- package/dist/esm/encoder/nodes/ordered-list.js +11 -0
- package/dist/esm/encoder/nodes/panel.js +18 -0
- package/dist/esm/encoder/nodes/paragraph.js +13 -0
- package/dist/esm/encoder/nodes/rule.js +3 -0
- package/dist/esm/encoder/nodes/status.js +29 -0
- package/dist/esm/encoder/nodes/table.js +66 -0
- package/dist/esm/encoder/nodes/taskItem.js +22 -0
- package/dist/esm/encoder/nodes/taskList.js +18 -0
- package/dist/esm/encoder/nodes/text.js +51 -0
- package/dist/esm/encoder/nodes/unknown.js +6 -0
- package/dist/esm/index.js +78 -0
- package/dist/esm/interfaces.js +1 -0
- package/dist/esm/parser/abstract-tree.js +34 -0
- package/dist/esm/parser/builder/list-builder.js +338 -0
- package/dist/esm/parser/builder/table-builder.js +150 -0
- package/dist/esm/parser/color.js +5 -0
- package/dist/esm/parser/error.js +15 -0
- package/dist/esm/parser/nodes/mediaGroup.js +18 -0
- package/dist/esm/parser/nodes/mediaSingle.js +97 -0
- package/dist/esm/parser/nodes/paragraph.js +61 -0
- package/dist/esm/parser/nodes/rule.js +18 -0
- package/dist/esm/parser/nodes/text.js +8 -0
- package/dist/esm/parser/text.js +149 -0
- package/dist/esm/parser/tokenize/adf-macro.js +39 -0
- package/dist/esm/parser/tokenize/anchor-macro.js +21 -0
- package/dist/esm/parser/tokenize/blockquote.js +28 -0
- package/dist/esm/parser/tokenize/citation.js +54 -0
- package/dist/esm/parser/tokenize/code-macro.js +80 -0
- package/dist/esm/parser/tokenize/color-macro.js +46 -0
- package/dist/esm/parser/tokenize/common-formatter.js +216 -0
- package/dist/esm/parser/tokenize/common-macro.js +52 -0
- package/dist/esm/parser/tokenize/dash-token-creator.js +33 -0
- package/dist/esm/parser/tokenize/deleted.js +50 -0
- package/dist/esm/parser/tokenize/double-dash-symbol.js +19 -0
- package/dist/esm/parser/tokenize/emoji.js +173 -0
- package/dist/esm/parser/tokenize/emphasis.js +49 -0
- package/dist/esm/parser/tokenize/file-link.js +25 -0
- package/dist/esm/parser/tokenize/force-line-break.js +38 -0
- package/dist/esm/parser/tokenize/hardbreak.js +23 -0
- package/dist/esm/parser/tokenize/heading.js +58 -0
- package/dist/esm/parser/tokenize/index.js +102 -0
- package/dist/esm/parser/tokenize/inserted.js +49 -0
- package/dist/esm/parser/tokenize/issue-key.js +89 -0
- package/dist/esm/parser/tokenize/keyword.js +142 -0
- package/dist/esm/parser/tokenize/link-text.js +64 -0
- package/dist/esm/parser/tokenize/links/attachment-link.js +8 -0
- package/dist/esm/parser/tokenize/links/issue-link.js +33 -0
- package/dist/esm/parser/tokenize/links/link-format.js +51 -0
- package/dist/esm/parser/tokenize/links/link-parser.js +213 -0
- package/dist/esm/parser/tokenize/links/link-resolver.js +55 -0
- package/dist/esm/parser/tokenize/links/mention-link.js +17 -0
- package/dist/esm/parser/tokenize/links/url-link.js +50 -0
- package/dist/esm/parser/tokenize/list.js +318 -0
- package/dist/esm/parser/tokenize/media.js +36 -0
- package/dist/esm/parser/tokenize/monospace.js +47 -0
- package/dist/esm/parser/tokenize/noformat-macro.js +34 -0
- package/dist/esm/parser/tokenize/panel-macro.js +88 -0
- package/dist/esm/parser/tokenize/quadruple-dash-symbol.js +21 -0
- package/dist/esm/parser/tokenize/quote-macro.js +148 -0
- package/dist/esm/parser/tokenize/ruler.js +22 -0
- package/dist/esm/parser/tokenize/strong.js +49 -0
- package/dist/esm/parser/tokenize/subscript.js +51 -0
- package/dist/esm/parser/tokenize/superscript.js +51 -0
- package/dist/esm/parser/tokenize/table.js +336 -0
- package/dist/esm/parser/tokenize/triple-dash-symbol.js +19 -0
- package/dist/esm/parser/tokenize/whitespace.js +45 -0
- package/dist/esm/parser/utils/attrs.js +23 -0
- package/dist/esm/parser/utils/color-name-mapping.js +693 -0
- package/dist/esm/parser/utils/escape.js +28 -0
- package/dist/esm/parser/utils/normalize.js +195 -0
- package/dist/esm/parser/utils/panel-type.js +109 -0
- package/dist/esm/parser/utils/text.js +81 -0
- package/dist/esm/parser/utils/title.js +10 -0
- package/dist/esm/parser/utils/url.js +24 -0
- package/dist/esm/version.json +5 -0
- package/dist/types/char.d.ts +1 -0
- package/dist/types/encoder/emoji-unicode-mapping.d.ts +3 -0
- package/dist/types/encoder/index.d.ts +9 -0
- package/dist/types/encoder/marks/__base.d.ts +5 -0
- package/dist/types/encoder/marks/code.d.ts +2 -0
- package/dist/types/encoder/marks/color.d.ts +2 -0
- package/dist/types/encoder/marks/em.d.ts +2 -0
- package/dist/types/encoder/marks/link.d.ts +2 -0
- package/dist/types/encoder/marks/strike.d.ts +2 -0
- package/dist/types/encoder/marks/strong.d.ts +6 -0
- package/dist/types/encoder/marks/subsup.d.ts +2 -0
- package/dist/types/encoder/marks/underline.d.ts +2 -0
- package/dist/types/encoder/nodes/block-card.d.ts +2 -0
- package/dist/types/encoder/nodes/blockquote.d.ts +2 -0
- package/dist/types/encoder/nodes/bullet-list.d.ts +2 -0
- package/dist/types/encoder/nodes/code-block.d.ts +2 -0
- package/dist/types/encoder/nodes/date.d.ts +2 -0
- package/dist/types/encoder/nodes/decisionItem.d.ts +3 -0
- package/dist/types/encoder/nodes/decisionList.d.ts +2 -0
- package/dist/types/encoder/nodes/doc.d.ts +2 -0
- package/dist/types/encoder/nodes/embed-card.d.ts +2 -0
- package/dist/types/encoder/nodes/emoji.d.ts +2 -0
- package/dist/types/encoder/nodes/expand.d.ts +2 -0
- package/dist/types/encoder/nodes/hard-break.d.ts +2 -0
- package/dist/types/encoder/nodes/heading.d.ts +2 -0
- package/dist/types/encoder/nodes/inline-card.d.ts +2 -0
- package/dist/types/encoder/nodes/inlines.d.ts +2 -0
- package/dist/types/encoder/nodes/listItem.d.ts +3 -0
- package/dist/types/encoder/nodes/media-group.d.ts +2 -0
- package/dist/types/encoder/nodes/media.d.ts +2 -0
- package/dist/types/encoder/nodes/mention.d.ts +2 -0
- package/dist/types/encoder/nodes/ordered-list.d.ts +2 -0
- package/dist/types/encoder/nodes/panel.d.ts +2 -0
- package/dist/types/encoder/nodes/paragraph.d.ts +2 -0
- package/dist/types/encoder/nodes/rule.d.ts +2 -0
- package/dist/types/encoder/nodes/status.d.ts +2 -0
- package/dist/types/encoder/nodes/table.d.ts +2 -0
- package/dist/types/encoder/nodes/taskItem.d.ts +3 -0
- package/dist/types/encoder/nodes/taskList.d.ts +2 -0
- package/dist/types/encoder/nodes/text.d.ts +2 -0
- package/dist/types/encoder/nodes/unknown.d.ts +2 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/interfaces.d.ts +68 -0
- package/dist/types/parser/abstract-tree.d.ts +11 -0
- package/dist/types/parser/builder/list-builder.d.ts +66 -0
- package/dist/types/parser/builder/table-builder.d.ts +45 -0
- package/dist/types/parser/color.d.ts +3 -0
- package/dist/types/parser/error.d.ts +1 -0
- package/dist/types/parser/nodes/mediaGroup.d.ts +3 -0
- package/dist/types/parser/nodes/mediaSingle.d.ts +5 -0
- package/dist/types/parser/nodes/paragraph.d.ts +7 -0
- package/dist/types/parser/nodes/rule.d.ts +3 -0
- package/dist/types/parser/nodes/text.d.ts +2 -0
- package/dist/types/parser/text.d.ts +10 -0
- package/dist/types/parser/tokenize/adf-macro.d.ts +2 -0
- package/dist/types/parser/tokenize/anchor-macro.d.ts +2 -0
- package/dist/types/parser/tokenize/blockquote.d.ts +2 -0
- package/dist/types/parser/tokenize/citation.d.ts +2 -0
- package/dist/types/parser/tokenize/code-macro.d.ts +2 -0
- package/dist/types/parser/tokenize/color-macro.d.ts +2 -0
- package/dist/types/parser/tokenize/common-formatter.d.ts +10 -0
- package/dist/types/parser/tokenize/common-macro.d.ts +10 -0
- package/dist/types/parser/tokenize/dash-token-creator.d.ts +2 -0
- package/dist/types/parser/tokenize/deleted.d.ts +2 -0
- package/dist/types/parser/tokenize/double-dash-symbol.d.ts +1 -0
- package/dist/types/parser/tokenize/emoji.d.ts +15 -0
- package/dist/types/parser/tokenize/emphasis.d.ts +2 -0
- package/dist/types/parser/tokenize/file-link.d.ts +3 -0
- package/dist/types/parser/tokenize/force-line-break.d.ts +2 -0
- package/dist/types/parser/tokenize/hardbreak.d.ts +2 -0
- package/dist/types/parser/tokenize/heading.d.ts +2 -0
- package/dist/types/parser/tokenize/index.d.ts +55 -0
- package/dist/types/parser/tokenize/inserted.d.ts +2 -0
- package/dist/types/parser/tokenize/issue-key.d.ts +20 -0
- package/dist/types/parser/tokenize/keyword.d.ts +13 -0
- package/dist/types/parser/tokenize/link-text.d.ts +3 -0
- package/dist/types/parser/tokenize/links/attachment-link.d.ts +4 -0
- package/dist/types/parser/tokenize/links/issue-link.d.ts +4 -0
- package/dist/types/parser/tokenize/links/link-format.d.ts +2 -0
- package/dist/types/parser/tokenize/links/link-parser.d.ts +17 -0
- package/dist/types/parser/tokenize/links/link-resolver.d.ts +5 -0
- package/dist/types/parser/tokenize/links/mention-link.d.ts +4 -0
- package/dist/types/parser/tokenize/links/url-link.d.ts +4 -0
- package/dist/types/parser/tokenize/list.d.ts +3 -0
- package/dist/types/parser/tokenize/media.d.ts +2 -0
- package/dist/types/parser/tokenize/monospace.d.ts +2 -0
- package/dist/types/parser/tokenize/noformat-macro.d.ts +2 -0
- package/dist/types/parser/tokenize/panel-macro.d.ts +2 -0
- package/dist/types/parser/tokenize/quadruple-dash-symbol.d.ts +2 -0
- package/dist/types/parser/tokenize/quote-macro.d.ts +5 -0
- package/dist/types/parser/tokenize/ruler.d.ts +2 -0
- package/dist/types/parser/tokenize/strong.d.ts +2 -0
- package/dist/types/parser/tokenize/subscript.d.ts +2 -0
- package/dist/types/parser/tokenize/superscript.d.ts +2 -0
- package/dist/types/parser/tokenize/table.d.ts +2 -0
- package/dist/types/parser/tokenize/triple-dash-symbol.d.ts +1 -0
- package/dist/types/parser/tokenize/whitespace.d.ts +3 -0
- package/dist/types/parser/utils/attrs.d.ts +3 -0
- package/dist/types/parser/utils/color-name-mapping.d.ts +10 -0
- package/dist/types/parser/utils/escape.d.ts +2 -0
- package/dist/types/parser/utils/normalize.d.ts +4 -0
- package/dist/types/parser/utils/panel-type.d.ts +3 -0
- package/dist/types/parser/utils/text.d.ts +21 -0
- package/dist/types/parser/utils/title.d.ts +7 -0
- package/dist/types/parser/utils/url.d.ts +8 -0
- package/docs/0-intro.tsx +24 -0
- package/interfaces/package.json +7 -0
- package/package.json +53 -0
- package/tsconfig.json +12 -0
- package/typings/json.d.ts +1 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { isSafeUrl } from '@atlaskit/adf-schema';
|
|
2
|
+
import { decode } from '../utils/url';
|
|
3
|
+
// the regex should exclude the period and exclamation mark as the last character
|
|
4
|
+
export var LINK_TEXT_REGEXP = /^((?:(?:https?|ftps?):\/\/)|irc:\/\/|mailto:)([\w?!~^\/\\#$%&'()*+,\-.\/:;<=@]*[\w~^\/\\#$%&'()*+,\-\/:;<=@])/i;
|
|
5
|
+
export var linkText = function linkText(_ref) {
|
|
6
|
+
var input = _ref.input,
|
|
7
|
+
position = _ref.position,
|
|
8
|
+
schema = _ref.schema;
|
|
9
|
+
var match = input.substring(position).match(LINK_TEXT_REGEXP);
|
|
10
|
+
|
|
11
|
+
if (!match) {
|
|
12
|
+
return fallback(input, position);
|
|
13
|
+
} // Remove mailto:
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
var textRepresentation = match[1] === 'mailto:' ? match[2] : match[0]; // parse and correctly encode any illegal characters, and
|
|
17
|
+
// so no longer need to be encoded when used below
|
|
18
|
+
|
|
19
|
+
var url = decode(unescape(match[0]));
|
|
20
|
+
|
|
21
|
+
if (!isSafeUrl(url)) {
|
|
22
|
+
return fallback(input, position);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var mark = schema.marks.link.create({
|
|
26
|
+
href: url
|
|
27
|
+
});
|
|
28
|
+
var textNode = schema.text(textRepresentation, [mark]);
|
|
29
|
+
return {
|
|
30
|
+
type: 'pmnode',
|
|
31
|
+
nodes: [textNode],
|
|
32
|
+
length: match[0].length
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
function unescape(url) {
|
|
37
|
+
var result = '';
|
|
38
|
+
|
|
39
|
+
for (var i = 0; i < url.length; i++) {
|
|
40
|
+
var char = url[i];
|
|
41
|
+
|
|
42
|
+
if (char !== '\\') {
|
|
43
|
+
result += char;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
var nextChar = url[i + 1];
|
|
48
|
+
|
|
49
|
+
if (nextChar) {
|
|
50
|
+
result += nextChar;
|
|
51
|
+
i++;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function fallback(input, position) {
|
|
59
|
+
return {
|
|
60
|
+
type: 'text',
|
|
61
|
+
text: input.substr(position, 1),
|
|
62
|
+
length: 1
|
|
63
|
+
};
|
|
64
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { buildInlineCard, getIssue } from '../issue-key';
|
|
2
|
+
export function issueLinkResolver(link, schema, context) {
|
|
3
|
+
var originalLinkText = link.originalLinkText,
|
|
4
|
+
linkTitle = link.linkTitle,
|
|
5
|
+
notLinkBody = link.notLinkBody;
|
|
6
|
+
|
|
7
|
+
if (linkTitle === 'smart-card' || linkTitle === 'block-link' // TODO: Depricated should be removed in the next major release
|
|
8
|
+
) {
|
|
9
|
+
return [schema.nodes.blockCard.createChecked({
|
|
10
|
+
url: notLinkBody
|
|
11
|
+
})];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (linkTitle === 'smart-link') {
|
|
15
|
+
return [schema.nodes.inlineCard.createChecked({
|
|
16
|
+
url: notLinkBody
|
|
17
|
+
})];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (linkTitle === 'smart-embed') {
|
|
21
|
+
return [schema.nodes.embedCard.createChecked({
|
|
22
|
+
url: notLinkBody
|
|
23
|
+
})];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var issue = getIssue(context, originalLinkText);
|
|
27
|
+
|
|
28
|
+
if (issue) {
|
|
29
|
+
return buildInlineCard(schema, issue);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { TokenType } from '../';
|
|
2
|
+
import { parseString } from '../../text';
|
|
3
|
+
import { resolveLink } from './link-resolver';
|
|
4
|
+
import { parseContentLink } from './link-parser'; // [http://www.example.com] and [Example|http://www.example.com]
|
|
5
|
+
|
|
6
|
+
var LINK_FORMAT_REGEXP = /^\[([^\[\]\n]+)]/;
|
|
7
|
+
export var linkFormat = function linkFormat(_ref) {
|
|
8
|
+
var input = _ref.input,
|
|
9
|
+
position = _ref.position,
|
|
10
|
+
schema = _ref.schema,
|
|
11
|
+
context = _ref.context;
|
|
12
|
+
var match = input.substring(position).match(LINK_FORMAT_REGEXP);
|
|
13
|
+
/**
|
|
14
|
+
* The following token types will be ignored in parsing
|
|
15
|
+
* the content of a table cell
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
var ignoreTokenTypes = [TokenType.DOUBLE_DASH_SYMBOL, TokenType.TRIPLE_DASH_SYMBOL, TokenType.QUADRUPLE_DASH_SYMBOL, TokenType.TABLE, TokenType.RULER, // We want to avoid recursion
|
|
19
|
+
TokenType.LINK_TEXT, TokenType.LINK_FORMAT];
|
|
20
|
+
|
|
21
|
+
if (!match) {
|
|
22
|
+
return fallback();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var content = parseContentLink(match[1]);
|
|
26
|
+
var resolvedLink = resolveLink(content, schema, context);
|
|
27
|
+
|
|
28
|
+
if (resolvedLink) {
|
|
29
|
+
return resolvedLink;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
var nodes = parseString({
|
|
33
|
+
schema: schema,
|
|
34
|
+
context: context,
|
|
35
|
+
ignoreTokenTypes: ignoreTokenTypes,
|
|
36
|
+
input: match[0]
|
|
37
|
+
});
|
|
38
|
+
return {
|
|
39
|
+
type: 'pmnode',
|
|
40
|
+
nodes: nodes,
|
|
41
|
+
length: match[0].length
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
function fallback() {
|
|
46
|
+
return {
|
|
47
|
+
type: 'text',
|
|
48
|
+
text: '[',
|
|
49
|
+
length: 1
|
|
50
|
+
};
|
|
51
|
+
}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
+
|
|
7
|
+
import { isBlank, isDigit, isNotBlank, StringBuffer } from '../../utils/text';
|
|
8
|
+
/*
|
|
9
|
+
* This implementation is ported from JIRA with minimal modifications
|
|
10
|
+
* It uses a mutable "StringBuffer" to parse links. It would be ideal to
|
|
11
|
+
* move this to operating on immutable strings instead if possible
|
|
12
|
+
*
|
|
13
|
+
* TODO: CS-596 Replace string buffer usage with strings
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
function trimIfPossible(s) {
|
|
17
|
+
if (s === null) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return s.trim();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function extractLinkBody(buffer) {
|
|
25
|
+
var indexOfBang = buffer.indexOf('!');
|
|
26
|
+
var indexOfPipe = buffer.indexOf('|');
|
|
27
|
+
var lastIndexOfBang = buffer.lastIndexOf('!');
|
|
28
|
+
var notEscaped = indexOfBang === -1 || indexOfBang > indexOfPipe || indexOfBang === lastIndexOfBang;
|
|
29
|
+
|
|
30
|
+
if (notEscaped) {
|
|
31
|
+
return divideOn(buffer, '|');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
var body = new StringBuffer();
|
|
35
|
+
var inEscape = false;
|
|
36
|
+
|
|
37
|
+
for (var i = 0; i < buffer.length(); i++) {
|
|
38
|
+
var c = buffer.charAt(i);
|
|
39
|
+
|
|
40
|
+
if (c === '!') {
|
|
41
|
+
inEscape = !inEscape;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (c === '|' && !inEscape) {
|
|
45
|
+
buffer.delete(0, i + 1);
|
|
46
|
+
return body.toString();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
body.append(c);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function divideAfterLast(buffer, divider) {
|
|
56
|
+
if (buffer.length() === 0) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return divideAfter(buffer, buffer.lastIndexOf(divider));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function divideAfter(buffer, index) {
|
|
64
|
+
if (typeof index === 'string') {
|
|
65
|
+
index = buffer.indexOf(index);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (index < 0) {
|
|
69
|
+
return null;
|
|
70
|
+
} else if (index === buffer.length() - 1) {
|
|
71
|
+
buffer.deleteCharAt(buffer.length() - 1);
|
|
72
|
+
return null;
|
|
73
|
+
} else {
|
|
74
|
+
var body = buffer.substring(index + 1);
|
|
75
|
+
buffer.delete(index, buffer.length());
|
|
76
|
+
return body;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Split a StringBuffer on some dividing character. Return everything before the divider,
|
|
81
|
+
* and remove that prefix _and_ the divider from the StringBuffer. If there is no divider,
|
|
82
|
+
* return null.
|
|
83
|
+
* <p/>
|
|
84
|
+
* If the buffer begins with the divider, then the divider will be removed _and_ null returned.
|
|
85
|
+
* If the buffer ends with the divider, everything before the divider is returned and the buffer
|
|
86
|
+
* will remain empty.
|
|
87
|
+
*
|
|
88
|
+
* @param buffer the text we want to divide. Will be modified during the operation
|
|
89
|
+
* @param divider the character to divide the buffer on
|
|
90
|
+
* @return the characters before the divider, or the default if there are none
|
|
91
|
+
*/
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
function divideOn(buffer, divider) {
|
|
95
|
+
if (buffer.length() === 0) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
var i = buffer.indexOf(divider);
|
|
100
|
+
|
|
101
|
+
if (i < 0) {
|
|
102
|
+
return null;
|
|
103
|
+
} else if (i === 0) {
|
|
104
|
+
buffer.deleteCharAt(0);
|
|
105
|
+
return null;
|
|
106
|
+
} else {
|
|
107
|
+
var body = buffer.substring(0, i);
|
|
108
|
+
buffer.delete(0, i + 1);
|
|
109
|
+
return body;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function extractNumber(buf) {
|
|
114
|
+
var digits = new StringBuffer();
|
|
115
|
+
var i = 0;
|
|
116
|
+
|
|
117
|
+
for (; i < buf.length() && isDigit(buf.charAt(i)); i++) {
|
|
118
|
+
digits.append(buf.charAt(i));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (i > 0) {
|
|
122
|
+
buf.delete(0, i);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
try {
|
|
126
|
+
return parseInt(digits.toString(), 10);
|
|
127
|
+
} catch (e) {
|
|
128
|
+
return 0;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export function parseLink(linkText) {
|
|
133
|
+
var originalLinkText = linkText; // we want to decode single quotes (represented by ') back before parsing the link test
|
|
134
|
+
|
|
135
|
+
if (linkText.indexOf(''') !== -1) {
|
|
136
|
+
linkText = linkText.replace(''', "'");
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
var buf = new StringBuffer(linkText);
|
|
140
|
+
var linkBody = extractLinkBody(buf);
|
|
141
|
+
var linkTitle = trimIfPossible(divideAfter(buf, '|'));
|
|
142
|
+
var notLinkBody = buf.toString().trim();
|
|
143
|
+
return {
|
|
144
|
+
originalLinkText: originalLinkText,
|
|
145
|
+
linkBody: linkBody,
|
|
146
|
+
linkTitle: linkTitle,
|
|
147
|
+
notLinkBody: notLinkBody
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
export function parseContentLink(link) {
|
|
151
|
+
if (typeof link === 'string') {
|
|
152
|
+
link = parseLink(link);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
var _link = link,
|
|
156
|
+
notLinkBody = _link.notLinkBody;
|
|
157
|
+
var shortcutName = null;
|
|
158
|
+
var shortcutValue = null;
|
|
159
|
+
var spaceKey = null;
|
|
160
|
+
var attachmentName = null;
|
|
161
|
+
var anchor = null;
|
|
162
|
+
var destinationTitle = '';
|
|
163
|
+
var contentId = 0; // Don't treat it as a short link when it starts with "~"
|
|
164
|
+
|
|
165
|
+
if (!notLinkBody.startsWith('~')) {
|
|
166
|
+
var shortcutBuf = new StringBuffer(notLinkBody);
|
|
167
|
+
shortcutName = trimIfPossible(divideAfterLast(shortcutBuf, '@'));
|
|
168
|
+
|
|
169
|
+
if (isNotBlank(shortcutName)) {
|
|
170
|
+
shortcutValue = shortcutBuf.toString();
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
var buf = new StringBuffer(notLinkBody);
|
|
175
|
+
|
|
176
|
+
if (isBlank(shortcutName)) {
|
|
177
|
+
spaceKey = trimIfPossible(divideOn(buf, ':'));
|
|
178
|
+
|
|
179
|
+
if (buf.indexOf('$') === 0) {
|
|
180
|
+
buf.deleteCharAt(0);
|
|
181
|
+
contentId = extractNumber(buf);
|
|
182
|
+
|
|
183
|
+
if (contentId === 0) {
|
|
184
|
+
return _objectSpread(_objectSpread({}, link), {}, {
|
|
185
|
+
shortcutName: shortcutName,
|
|
186
|
+
shortcutValue: shortcutValue,
|
|
187
|
+
spaceKey: spaceKey,
|
|
188
|
+
contentId: contentId,
|
|
189
|
+
attachmentName: attachmentName,
|
|
190
|
+
anchor: anchor,
|
|
191
|
+
destinationTitle: destinationTitle
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
attachmentName = trimIfPossible(divideAfter(buf, '^'));
|
|
197
|
+
anchor = trimIfPossible(divideAfter(buf, '#'));
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (contentId === 0) {
|
|
201
|
+
destinationTitle = buf.toString().trim();
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
return _objectSpread(_objectSpread({}, link), {}, {
|
|
205
|
+
shortcutName: shortcutName,
|
|
206
|
+
shortcutValue: shortcutValue,
|
|
207
|
+
spaceKey: spaceKey,
|
|
208
|
+
contentId: contentId,
|
|
209
|
+
attachmentName: attachmentName,
|
|
210
|
+
anchor: anchor,
|
|
211
|
+
destinationTitle: destinationTitle
|
|
212
|
+
});
|
|
213
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
2
|
+
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
|
|
5
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
6
|
+
|
|
7
|
+
import { mentionLinkResolver } from './mention-link';
|
|
8
|
+
import { attachmentLinkResolver } from './attachment-link';
|
|
9
|
+
import { urlLinkResolver } from './url-link';
|
|
10
|
+
import { issueLinkResolver } from './issue-link';
|
|
11
|
+
/**
|
|
12
|
+
* Given some parsed link text, convert it into a link object that can then be rendered into
|
|
13
|
+
* the page. The parseAsContentLink() method must have been called on the GenericLinkParser
|
|
14
|
+
* object before being passed to this method.
|
|
15
|
+
*
|
|
16
|
+
* @param context The render context
|
|
17
|
+
* @param parsedLink The parsed link information
|
|
18
|
+
* @return the corresponding link. If no link can be created, null is returned
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
// jira-components/jira-core/src/main/resources/system-contentlinkresolvers-plugin.xml
|
|
22
|
+
// attachment resolver: 10
|
|
23
|
+
// anchor resolver: 20 - unsupported
|
|
24
|
+
// jiraissue resolver: 30 - unsupported
|
|
25
|
+
// user profile: 40
|
|
26
|
+
//
|
|
27
|
+
// Fall back to url link resolver
|
|
28
|
+
var linkResolverStrategies = [attachmentLinkResolver, mentionLinkResolver, issueLinkResolver, urlLinkResolver];
|
|
29
|
+
export function resolveLink(link, schema, context) {
|
|
30
|
+
var length = link.originalLinkText.length + 2;
|
|
31
|
+
|
|
32
|
+
var _iterator = _createForOfIteratorHelper(linkResolverStrategies),
|
|
33
|
+
_step;
|
|
34
|
+
|
|
35
|
+
try {
|
|
36
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
37
|
+
var resolver = _step.value;
|
|
38
|
+
var resolvedLink = resolver(link, schema, context);
|
|
39
|
+
|
|
40
|
+
if (resolvedLink) {
|
|
41
|
+
return {
|
|
42
|
+
length: length,
|
|
43
|
+
nodes: resolvedLink,
|
|
44
|
+
type: 'pmnode'
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
} catch (err) {
|
|
49
|
+
_iterator.e(err);
|
|
50
|
+
} finally {
|
|
51
|
+
_iterator.f();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function mentionLinkResolver(link, schema, context) {
|
|
2
|
+
// [CS-1896] Empty mention nodes should fallback to plaintext
|
|
3
|
+
if (link.notLinkBody.toLowerCase() === '~accountid:' || link.notLinkBody === '~') {
|
|
4
|
+
return [schema.nodes.paragraph.createChecked({}, [schema.nodes.text.create({})])];
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
if (link.notLinkBody.startsWith('~')) {
|
|
8
|
+
var mentionText = link.notLinkBody.substring(1);
|
|
9
|
+
var mentionKey = mentionText.toLowerCase();
|
|
10
|
+
var id = context.conversion && context.conversion.mentionConversion && context.conversion.mentionConversion[mentionKey] ? context.conversion.mentionConversion[mentionKey] : mentionText;
|
|
11
|
+
return [schema.nodes.mention.createChecked({
|
|
12
|
+
id: id
|
|
13
|
+
})];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return;
|
|
17
|
+
}
|