@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.
Files changed (432) hide show
  1. package/CHANGELOG.md +2299 -0
  2. package/LICENSE +13 -0
  3. package/build/tsconfig.json +17 -0
  4. package/char/package.json +7 -0
  5. package/dist/cjs/char.js +8 -0
  6. package/dist/cjs/encoder/emoji-unicode-mapping.js +1618 -0
  7. package/dist/cjs/encoder/index.js +76 -0
  8. package/dist/cjs/encoder/marks/__base.js +24 -0
  9. package/dist/cjs/encoder/marks/code.js +12 -0
  10. package/dist/cjs/encoder/marks/color.js +12 -0
  11. package/dist/cjs/encoder/marks/em.js +19 -0
  12. package/dist/cjs/encoder/marks/link.js +12 -0
  13. package/dist/cjs/encoder/marks/strike.js +14 -0
  14. package/dist/cjs/encoder/marks/strong.js +18 -0
  15. package/dist/cjs/encoder/marks/subsup.js +18 -0
  16. package/dist/cjs/encoder/marks/underline.js +14 -0
  17. package/dist/cjs/encoder/nodes/block-card.js +18 -0
  18. package/dist/cjs/encoder/nodes/blockquote.js +21 -0
  19. package/dist/cjs/encoder/nodes/bullet-list.js +21 -0
  20. package/dist/cjs/encoder/nodes/code-block.js +27 -0
  21. package/dist/cjs/encoder/nodes/date.js +21 -0
  22. package/dist/cjs/encoder/nodes/decisionItem.js +23 -0
  23. package/dist/cjs/encoder/nodes/decisionList.js +18 -0
  24. package/dist/cjs/encoder/nodes/doc.js +21 -0
  25. package/dist/cjs/encoder/nodes/embed-card.js +18 -0
  26. package/dist/cjs/encoder/nodes/emoji.js +26 -0
  27. package/dist/cjs/encoder/nodes/expand.js +22 -0
  28. package/dist/cjs/encoder/nodes/hard-break.js +12 -0
  29. package/dist/cjs/encoder/nodes/heading.js +18 -0
  30. package/dist/cjs/encoder/nodes/inline-card.js +26 -0
  31. package/dist/cjs/encoder/nodes/inlines.js +44 -0
  32. package/dist/cjs/encoder/nodes/listItem.js +77 -0
  33. package/dist/cjs/encoder/nodes/media-group.js +24 -0
  34. package/dist/cjs/encoder/nodes/media.js +66 -0
  35. package/dist/cjs/encoder/nodes/mention.js +27 -0
  36. package/dist/cjs/encoder/nodes/ordered-list.js +21 -0
  37. package/dist/cjs/encoder/nodes/panel.js +29 -0
  38. package/dist/cjs/encoder/nodes/paragraph.js +23 -0
  39. package/dist/cjs/encoder/nodes/rule.js +12 -0
  40. package/dist/cjs/encoder/nodes/status.js +43 -0
  41. package/dist/cjs/encoder/nodes/table.js +77 -0
  42. package/dist/cjs/encoder/nodes/taskItem.js +32 -0
  43. package/dist/cjs/encoder/nodes/taskList.js +27 -0
  44. package/dist/cjs/encoder/nodes/text.js +67 -0
  45. package/dist/cjs/encoder/nodes/unknown.js +17 -0
  46. package/dist/cjs/index.js +93 -0
  47. package/dist/cjs/interfaces.js +5 -0
  48. package/dist/cjs/parser/abstract-tree.js +44 -0
  49. package/dist/cjs/parser/builder/list-builder.js +350 -0
  50. package/dist/cjs/parser/builder/table-builder.js +156 -0
  51. package/dist/cjs/parser/color.js +13 -0
  52. package/dist/cjs/parser/error.js +22 -0
  53. package/dist/cjs/parser/nodes/mediaGroup.js +25 -0
  54. package/dist/cjs/parser/nodes/mediaSingle.js +107 -0
  55. package/dist/cjs/parser/nodes/paragraph.js +72 -0
  56. package/dist/cjs/parser/nodes/rule.js +27 -0
  57. package/dist/cjs/parser/nodes/text.js +15 -0
  58. package/dist/cjs/parser/text.js +165 -0
  59. package/dist/cjs/parser/tokenize/adf-macro.js +49 -0
  60. package/dist/cjs/parser/tokenize/anchor-macro.js +31 -0
  61. package/dist/cjs/parser/tokenize/blockquote.js +42 -0
  62. package/dist/cjs/parser/tokenize/citation.js +71 -0
  63. package/dist/cjs/parser/tokenize/code-macro.js +95 -0
  64. package/dist/cjs/parser/tokenize/color-macro.js +64 -0
  65. package/dist/cjs/parser/tokenize/common-formatter.js +230 -0
  66. package/dist/cjs/parser/tokenize/common-macro.js +62 -0
  67. package/dist/cjs/parser/tokenize/dash-token-creator.js +42 -0
  68. package/dist/cjs/parser/tokenize/deleted.js +66 -0
  69. package/dist/cjs/parser/tokenize/double-dash-symbol.js +30 -0
  70. package/dist/cjs/parser/tokenize/emoji.js +184 -0
  71. package/dist/cjs/parser/tokenize/emphasis.js +65 -0
  72. package/dist/cjs/parser/tokenize/file-link.js +36 -0
  73. package/dist/cjs/parser/tokenize/force-line-break.js +48 -0
  74. package/dist/cjs/parser/tokenize/hardbreak.js +33 -0
  75. package/dist/cjs/parser/tokenize/heading.js +70 -0
  76. package/dist/cjs/parser/tokenize/index.js +144 -0
  77. package/dist/cjs/parser/tokenize/inserted.js +65 -0
  78. package/dist/cjs/parser/tokenize/issue-key.js +107 -0
  79. package/dist/cjs/parser/tokenize/keyword.js +159 -0
  80. package/dist/cjs/parser/tokenize/link-text.js +77 -0
  81. package/dist/cjs/parser/tokenize/links/attachment-link.js +18 -0
  82. package/dist/cjs/parser/tokenize/links/issue-link.js +41 -0
  83. package/dist/cjs/parser/tokenize/links/link-format.js +65 -0
  84. package/dist/cjs/parser/tokenize/links/link-parser.js +224 -0
  85. package/dist/cjs/parser/tokenize/links/link-resolver.js +57 -0
  86. package/dist/cjs/parser/tokenize/links/mention-link.js +24 -0
  87. package/dist/cjs/parser/tokenize/links/url-link.js +64 -0
  88. package/dist/cjs/parser/tokenize/list.js +339 -0
  89. package/dist/cjs/parser/tokenize/media.js +51 -0
  90. package/dist/cjs/parser/tokenize/monospace.js +59 -0
  91. package/dist/cjs/parser/tokenize/noformat-macro.js +46 -0
  92. package/dist/cjs/parser/tokenize/panel-macro.js +106 -0
  93. package/dist/cjs/parser/tokenize/quadruple-dash-symbol.js +30 -0
  94. package/dist/cjs/parser/tokenize/quote-macro.js +166 -0
  95. package/dist/cjs/parser/tokenize/ruler.js +33 -0
  96. package/dist/cjs/parser/tokenize/strong.js +65 -0
  97. package/dist/cjs/parser/tokenize/subscript.js +67 -0
  98. package/dist/cjs/parser/tokenize/superscript.js +67 -0
  99. package/dist/cjs/parser/tokenize/table.js +353 -0
  100. package/dist/cjs/parser/tokenize/triple-dash-symbol.js +30 -0
  101. package/dist/cjs/parser/tokenize/whitespace.js +56 -0
  102. package/dist/cjs/parser/utils/attrs.js +33 -0
  103. package/dist/cjs/parser/utils/color-name-mapping.js +700 -0
  104. package/dist/cjs/parser/utils/escape.js +36 -0
  105. package/dist/cjs/parser/utils/normalize.js +209 -0
  106. package/dist/cjs/parser/utils/panel-type.js +120 -0
  107. package/dist/cjs/parser/utils/text.js +98 -0
  108. package/dist/cjs/parser/utils/title.js +17 -0
  109. package/dist/cjs/parser/utils/url.js +31 -0
  110. package/dist/cjs/version.json +5 -0
  111. package/dist/es2019/char.js +1 -0
  112. package/dist/es2019/encoder/emoji-unicode-mapping.js +1611 -0
  113. package/dist/es2019/encoder/index.js +51 -0
  114. package/dist/es2019/encoder/marks/__base.js +15 -0
  115. package/dist/es2019/encoder/marks/code.js +3 -0
  116. package/dist/es2019/encoder/marks/color.js +3 -0
  117. package/dist/es2019/encoder/marks/em.js +9 -0
  118. package/dist/es2019/encoder/marks/link.js +3 -0
  119. package/dist/es2019/encoder/marks/strike.js +4 -0
  120. package/dist/es2019/encoder/marks/strong.js +9 -0
  121. package/dist/es2019/encoder/marks/subsup.js +8 -0
  122. package/dist/es2019/encoder/marks/underline.js +4 -0
  123. package/dist/es2019/encoder/nodes/block-card.js +8 -0
  124. package/dist/es2019/encoder/nodes/blockquote.js +10 -0
  125. package/dist/es2019/encoder/nodes/bullet-list.js +10 -0
  126. package/dist/es2019/encoder/nodes/code-block.js +16 -0
  127. package/dist/es2019/encoder/nodes/date.js +12 -0
  128. package/dist/es2019/encoder/nodes/decisionItem.js +12 -0
  129. package/dist/es2019/encoder/nodes/decisionList.js +8 -0
  130. package/dist/es2019/encoder/nodes/doc.js +10 -0
  131. package/dist/es2019/encoder/nodes/embed-card.js +8 -0
  132. package/dist/es2019/encoder/nodes/emoji.js +15 -0
  133. package/dist/es2019/encoder/nodes/expand.js +11 -0
  134. package/dist/es2019/encoder/nodes/hard-break.js +3 -0
  135. package/dist/es2019/encoder/nodes/heading.js +8 -0
  136. package/dist/es2019/encoder/nodes/inline-card.js +15 -0
  137. package/dist/es2019/encoder/nodes/inlines.js +26 -0
  138. package/dist/es2019/encoder/nodes/listItem.js +63 -0
  139. package/dist/es2019/encoder/nodes/media-group.js +13 -0
  140. package/dist/es2019/encoder/nodes/media.js +54 -0
  141. package/dist/es2019/encoder/nodes/mention.js +16 -0
  142. package/dist/es2019/encoder/nodes/ordered-list.js +10 -0
  143. package/dist/es2019/encoder/nodes/panel.js +19 -0
  144. package/dist/es2019/encoder/nodes/paragraph.js +12 -0
  145. package/dist/es2019/encoder/nodes/rule.js +3 -0
  146. package/dist/es2019/encoder/nodes/status.js +23 -0
  147. package/dist/es2019/encoder/nodes/table.js +62 -0
  148. package/dist/es2019/encoder/nodes/taskItem.js +21 -0
  149. package/dist/es2019/encoder/nodes/taskList.js +17 -0
  150. package/dist/es2019/encoder/nodes/text.js +46 -0
  151. package/dist/es2019/encoder/nodes/unknown.js +8 -0
  152. package/dist/es2019/index.js +58 -0
  153. package/dist/es2019/interfaces.js +1 -0
  154. package/dist/es2019/parser/abstract-tree.js +23 -0
  155. package/dist/es2019/parser/builder/list-builder.js +294 -0
  156. package/dist/es2019/parser/builder/table-builder.js +135 -0
  157. package/dist/es2019/parser/color.js +5 -0
  158. package/dist/es2019/parser/error.js +15 -0
  159. package/dist/es2019/parser/nodes/mediaGroup.js +18 -0
  160. package/dist/es2019/parser/nodes/mediaSingle.js +95 -0
  161. package/dist/es2019/parser/nodes/paragraph.js +43 -0
  162. package/dist/es2019/parser/nodes/rule.js +21 -0
  163. package/dist/es2019/parser/nodes/text.js +8 -0
  164. package/dist/es2019/parser/text.js +145 -0
  165. package/dist/es2019/parser/tokenize/adf-macro.js +40 -0
  166. package/dist/es2019/parser/tokenize/anchor-macro.js +22 -0
  167. package/dist/es2019/parser/tokenize/blockquote.js +26 -0
  168. package/dist/es2019/parser/tokenize/citation.js +53 -0
  169. package/dist/es2019/parser/tokenize/code-macro.js +57 -0
  170. package/dist/es2019/parser/tokenize/color-macro.js +46 -0
  171. package/dist/es2019/parser/tokenize/common-formatter.js +215 -0
  172. package/dist/es2019/parser/tokenize/common-macro.js +48 -0
  173. package/dist/es2019/parser/tokenize/dash-token-creator.js +31 -0
  174. package/dist/es2019/parser/tokenize/deleted.js +49 -0
  175. package/dist/es2019/parser/tokenize/double-dash-symbol.js +11 -0
  176. package/dist/es2019/parser/tokenize/emoji.js +174 -0
  177. package/dist/es2019/parser/tokenize/emphasis.js +48 -0
  178. package/dist/es2019/parser/tokenize/file-link.js +25 -0
  179. package/dist/es2019/parser/tokenize/force-line-break.js +38 -0
  180. package/dist/es2019/parser/tokenize/hardbreak.js +24 -0
  181. package/dist/es2019/parser/tokenize/heading.js +58 -0
  182. package/dist/es2019/parser/tokenize/index.js +129 -0
  183. package/dist/es2019/parser/tokenize/inserted.js +48 -0
  184. package/dist/es2019/parser/tokenize/issue-key.js +81 -0
  185. package/dist/es2019/parser/tokenize/keyword.js +142 -0
  186. package/dist/es2019/parser/tokenize/link-text.js +65 -0
  187. package/dist/es2019/parser/tokenize/links/attachment-link.js +8 -0
  188. package/dist/es2019/parser/tokenize/links/issue-link.js +35 -0
  189. package/dist/es2019/parser/tokenize/links/link-format.js +52 -0
  190. package/dist/es2019/parser/tokenize/links/link-parser.js +208 -0
  191. package/dist/es2019/parser/tokenize/links/link-resolver.js +39 -0
  192. package/dist/es2019/parser/tokenize/links/mention-link.js +17 -0
  193. package/dist/es2019/parser/tokenize/links/url-link.js +49 -0
  194. package/dist/es2019/parser/tokenize/list.js +296 -0
  195. package/dist/es2019/parser/tokenize/media.js +30 -0
  196. package/dist/es2019/parser/tokenize/monospace.js +47 -0
  197. package/dist/es2019/parser/tokenize/noformat-macro.js +37 -0
  198. package/dist/es2019/parser/tokenize/panel-macro.js +63 -0
  199. package/dist/es2019/parser/tokenize/quadruple-dash-symbol.js +22 -0
  200. package/dist/es2019/parser/tokenize/quote-macro.js +129 -0
  201. package/dist/es2019/parser/tokenize/ruler.js +23 -0
  202. package/dist/es2019/parser/tokenize/strong.js +48 -0
  203. package/dist/es2019/parser/tokenize/subscript.js +50 -0
  204. package/dist/es2019/parser/tokenize/superscript.js +50 -0
  205. package/dist/es2019/parser/tokenize/table.js +333 -0
  206. package/dist/es2019/parser/tokenize/triple-dash-symbol.js +11 -0
  207. package/dist/es2019/parser/tokenize/whitespace.js +45 -0
  208. package/dist/es2019/parser/utils/attrs.js +17 -0
  209. package/dist/es2019/parser/utils/color-name-mapping.js +693 -0
  210. package/dist/es2019/parser/utils/escape.js +28 -0
  211. package/dist/es2019/parser/utils/normalize.js +161 -0
  212. package/dist/es2019/parser/utils/panel-type.js +109 -0
  213. package/dist/es2019/parser/utils/text.js +58 -0
  214. package/dist/es2019/parser/utils/title.js +10 -0
  215. package/dist/es2019/parser/utils/url.js +24 -0
  216. package/dist/es2019/version.json +5 -0
  217. package/dist/esm/char.js +1 -0
  218. package/dist/esm/encoder/emoji-unicode-mapping.js +1611 -0
  219. package/dist/esm/encoder/index.js +51 -0
  220. package/dist/esm/encoder/marks/__base.js +15 -0
  221. package/dist/esm/encoder/marks/code.js +3 -0
  222. package/dist/esm/encoder/marks/color.js +3 -0
  223. package/dist/esm/encoder/marks/em.js +9 -0
  224. package/dist/esm/encoder/marks/link.js +3 -0
  225. package/dist/esm/encoder/marks/strike.js +4 -0
  226. package/dist/esm/encoder/marks/strong.js +9 -0
  227. package/dist/esm/encoder/marks/subsup.js +8 -0
  228. package/dist/esm/encoder/marks/underline.js +4 -0
  229. package/dist/esm/encoder/nodes/block-card.js +8 -0
  230. package/dist/esm/encoder/nodes/blockquote.js +11 -0
  231. package/dist/esm/encoder/nodes/bullet-list.js +11 -0
  232. package/dist/esm/encoder/nodes/code-block.js +16 -0
  233. package/dist/esm/encoder/nodes/date.js +12 -0
  234. package/dist/esm/encoder/nodes/decisionItem.js +13 -0
  235. package/dist/esm/encoder/nodes/decisionList.js +8 -0
  236. package/dist/esm/encoder/nodes/doc.js +11 -0
  237. package/dist/esm/encoder/nodes/embed-card.js +8 -0
  238. package/dist/esm/encoder/nodes/emoji.js +15 -0
  239. package/dist/esm/encoder/nodes/expand.js +12 -0
  240. package/dist/esm/encoder/nodes/hard-break.js +3 -0
  241. package/dist/esm/encoder/nodes/heading.js +8 -0
  242. package/dist/esm/encoder/nodes/inline-card.js +15 -0
  243. package/dist/esm/encoder/nodes/inlines.js +26 -0
  244. package/dist/esm/encoder/nodes/listItem.js +63 -0
  245. package/dist/esm/encoder/nodes/media-group.js +14 -0
  246. package/dist/esm/encoder/nodes/media.js +57 -0
  247. package/dist/esm/encoder/nodes/mention.js +19 -0
  248. package/dist/esm/encoder/nodes/ordered-list.js +11 -0
  249. package/dist/esm/encoder/nodes/panel.js +18 -0
  250. package/dist/esm/encoder/nodes/paragraph.js +13 -0
  251. package/dist/esm/encoder/nodes/rule.js +3 -0
  252. package/dist/esm/encoder/nodes/status.js +29 -0
  253. package/dist/esm/encoder/nodes/table.js +66 -0
  254. package/dist/esm/encoder/nodes/taskItem.js +22 -0
  255. package/dist/esm/encoder/nodes/taskList.js +18 -0
  256. package/dist/esm/encoder/nodes/text.js +51 -0
  257. package/dist/esm/encoder/nodes/unknown.js +6 -0
  258. package/dist/esm/index.js +78 -0
  259. package/dist/esm/interfaces.js +1 -0
  260. package/dist/esm/parser/abstract-tree.js +34 -0
  261. package/dist/esm/parser/builder/list-builder.js +338 -0
  262. package/dist/esm/parser/builder/table-builder.js +150 -0
  263. package/dist/esm/parser/color.js +5 -0
  264. package/dist/esm/parser/error.js +15 -0
  265. package/dist/esm/parser/nodes/mediaGroup.js +18 -0
  266. package/dist/esm/parser/nodes/mediaSingle.js +97 -0
  267. package/dist/esm/parser/nodes/paragraph.js +61 -0
  268. package/dist/esm/parser/nodes/rule.js +18 -0
  269. package/dist/esm/parser/nodes/text.js +8 -0
  270. package/dist/esm/parser/text.js +149 -0
  271. package/dist/esm/parser/tokenize/adf-macro.js +39 -0
  272. package/dist/esm/parser/tokenize/anchor-macro.js +21 -0
  273. package/dist/esm/parser/tokenize/blockquote.js +28 -0
  274. package/dist/esm/parser/tokenize/citation.js +54 -0
  275. package/dist/esm/parser/tokenize/code-macro.js +80 -0
  276. package/dist/esm/parser/tokenize/color-macro.js +46 -0
  277. package/dist/esm/parser/tokenize/common-formatter.js +216 -0
  278. package/dist/esm/parser/tokenize/common-macro.js +52 -0
  279. package/dist/esm/parser/tokenize/dash-token-creator.js +33 -0
  280. package/dist/esm/parser/tokenize/deleted.js +50 -0
  281. package/dist/esm/parser/tokenize/double-dash-symbol.js +19 -0
  282. package/dist/esm/parser/tokenize/emoji.js +173 -0
  283. package/dist/esm/parser/tokenize/emphasis.js +49 -0
  284. package/dist/esm/parser/tokenize/file-link.js +25 -0
  285. package/dist/esm/parser/tokenize/force-line-break.js +38 -0
  286. package/dist/esm/parser/tokenize/hardbreak.js +23 -0
  287. package/dist/esm/parser/tokenize/heading.js +58 -0
  288. package/dist/esm/parser/tokenize/index.js +102 -0
  289. package/dist/esm/parser/tokenize/inserted.js +49 -0
  290. package/dist/esm/parser/tokenize/issue-key.js +89 -0
  291. package/dist/esm/parser/tokenize/keyword.js +142 -0
  292. package/dist/esm/parser/tokenize/link-text.js +64 -0
  293. package/dist/esm/parser/tokenize/links/attachment-link.js +8 -0
  294. package/dist/esm/parser/tokenize/links/issue-link.js +33 -0
  295. package/dist/esm/parser/tokenize/links/link-format.js +51 -0
  296. package/dist/esm/parser/tokenize/links/link-parser.js +213 -0
  297. package/dist/esm/parser/tokenize/links/link-resolver.js +55 -0
  298. package/dist/esm/parser/tokenize/links/mention-link.js +17 -0
  299. package/dist/esm/parser/tokenize/links/url-link.js +50 -0
  300. package/dist/esm/parser/tokenize/list.js +318 -0
  301. package/dist/esm/parser/tokenize/media.js +36 -0
  302. package/dist/esm/parser/tokenize/monospace.js +47 -0
  303. package/dist/esm/parser/tokenize/noformat-macro.js +34 -0
  304. package/dist/esm/parser/tokenize/panel-macro.js +88 -0
  305. package/dist/esm/parser/tokenize/quadruple-dash-symbol.js +21 -0
  306. package/dist/esm/parser/tokenize/quote-macro.js +148 -0
  307. package/dist/esm/parser/tokenize/ruler.js +22 -0
  308. package/dist/esm/parser/tokenize/strong.js +49 -0
  309. package/dist/esm/parser/tokenize/subscript.js +51 -0
  310. package/dist/esm/parser/tokenize/superscript.js +51 -0
  311. package/dist/esm/parser/tokenize/table.js +336 -0
  312. package/dist/esm/parser/tokenize/triple-dash-symbol.js +19 -0
  313. package/dist/esm/parser/tokenize/whitespace.js +45 -0
  314. package/dist/esm/parser/utils/attrs.js +23 -0
  315. package/dist/esm/parser/utils/color-name-mapping.js +693 -0
  316. package/dist/esm/parser/utils/escape.js +28 -0
  317. package/dist/esm/parser/utils/normalize.js +195 -0
  318. package/dist/esm/parser/utils/panel-type.js +109 -0
  319. package/dist/esm/parser/utils/text.js +81 -0
  320. package/dist/esm/parser/utils/title.js +10 -0
  321. package/dist/esm/parser/utils/url.js +24 -0
  322. package/dist/esm/version.json +5 -0
  323. package/dist/types/char.d.ts +1 -0
  324. package/dist/types/encoder/emoji-unicode-mapping.d.ts +3 -0
  325. package/dist/types/encoder/index.d.ts +9 -0
  326. package/dist/types/encoder/marks/__base.d.ts +5 -0
  327. package/dist/types/encoder/marks/code.d.ts +2 -0
  328. package/dist/types/encoder/marks/color.d.ts +2 -0
  329. package/dist/types/encoder/marks/em.d.ts +2 -0
  330. package/dist/types/encoder/marks/link.d.ts +2 -0
  331. package/dist/types/encoder/marks/strike.d.ts +2 -0
  332. package/dist/types/encoder/marks/strong.d.ts +6 -0
  333. package/dist/types/encoder/marks/subsup.d.ts +2 -0
  334. package/dist/types/encoder/marks/underline.d.ts +2 -0
  335. package/dist/types/encoder/nodes/block-card.d.ts +2 -0
  336. package/dist/types/encoder/nodes/blockquote.d.ts +2 -0
  337. package/dist/types/encoder/nodes/bullet-list.d.ts +2 -0
  338. package/dist/types/encoder/nodes/code-block.d.ts +2 -0
  339. package/dist/types/encoder/nodes/date.d.ts +2 -0
  340. package/dist/types/encoder/nodes/decisionItem.d.ts +3 -0
  341. package/dist/types/encoder/nodes/decisionList.d.ts +2 -0
  342. package/dist/types/encoder/nodes/doc.d.ts +2 -0
  343. package/dist/types/encoder/nodes/embed-card.d.ts +2 -0
  344. package/dist/types/encoder/nodes/emoji.d.ts +2 -0
  345. package/dist/types/encoder/nodes/expand.d.ts +2 -0
  346. package/dist/types/encoder/nodes/hard-break.d.ts +2 -0
  347. package/dist/types/encoder/nodes/heading.d.ts +2 -0
  348. package/dist/types/encoder/nodes/inline-card.d.ts +2 -0
  349. package/dist/types/encoder/nodes/inlines.d.ts +2 -0
  350. package/dist/types/encoder/nodes/listItem.d.ts +3 -0
  351. package/dist/types/encoder/nodes/media-group.d.ts +2 -0
  352. package/dist/types/encoder/nodes/media.d.ts +2 -0
  353. package/dist/types/encoder/nodes/mention.d.ts +2 -0
  354. package/dist/types/encoder/nodes/ordered-list.d.ts +2 -0
  355. package/dist/types/encoder/nodes/panel.d.ts +2 -0
  356. package/dist/types/encoder/nodes/paragraph.d.ts +2 -0
  357. package/dist/types/encoder/nodes/rule.d.ts +2 -0
  358. package/dist/types/encoder/nodes/status.d.ts +2 -0
  359. package/dist/types/encoder/nodes/table.d.ts +2 -0
  360. package/dist/types/encoder/nodes/taskItem.d.ts +3 -0
  361. package/dist/types/encoder/nodes/taskList.d.ts +2 -0
  362. package/dist/types/encoder/nodes/text.d.ts +2 -0
  363. package/dist/types/encoder/nodes/unknown.d.ts +2 -0
  364. package/dist/types/index.d.ts +15 -0
  365. package/dist/types/interfaces.d.ts +68 -0
  366. package/dist/types/parser/abstract-tree.d.ts +11 -0
  367. package/dist/types/parser/builder/list-builder.d.ts +66 -0
  368. package/dist/types/parser/builder/table-builder.d.ts +45 -0
  369. package/dist/types/parser/color.d.ts +3 -0
  370. package/dist/types/parser/error.d.ts +1 -0
  371. package/dist/types/parser/nodes/mediaGroup.d.ts +3 -0
  372. package/dist/types/parser/nodes/mediaSingle.d.ts +5 -0
  373. package/dist/types/parser/nodes/paragraph.d.ts +7 -0
  374. package/dist/types/parser/nodes/rule.d.ts +3 -0
  375. package/dist/types/parser/nodes/text.d.ts +2 -0
  376. package/dist/types/parser/text.d.ts +10 -0
  377. package/dist/types/parser/tokenize/adf-macro.d.ts +2 -0
  378. package/dist/types/parser/tokenize/anchor-macro.d.ts +2 -0
  379. package/dist/types/parser/tokenize/blockquote.d.ts +2 -0
  380. package/dist/types/parser/tokenize/citation.d.ts +2 -0
  381. package/dist/types/parser/tokenize/code-macro.d.ts +2 -0
  382. package/dist/types/parser/tokenize/color-macro.d.ts +2 -0
  383. package/dist/types/parser/tokenize/common-formatter.d.ts +10 -0
  384. package/dist/types/parser/tokenize/common-macro.d.ts +10 -0
  385. package/dist/types/parser/tokenize/dash-token-creator.d.ts +2 -0
  386. package/dist/types/parser/tokenize/deleted.d.ts +2 -0
  387. package/dist/types/parser/tokenize/double-dash-symbol.d.ts +1 -0
  388. package/dist/types/parser/tokenize/emoji.d.ts +15 -0
  389. package/dist/types/parser/tokenize/emphasis.d.ts +2 -0
  390. package/dist/types/parser/tokenize/file-link.d.ts +3 -0
  391. package/dist/types/parser/tokenize/force-line-break.d.ts +2 -0
  392. package/dist/types/parser/tokenize/hardbreak.d.ts +2 -0
  393. package/dist/types/parser/tokenize/heading.d.ts +2 -0
  394. package/dist/types/parser/tokenize/index.d.ts +55 -0
  395. package/dist/types/parser/tokenize/inserted.d.ts +2 -0
  396. package/dist/types/parser/tokenize/issue-key.d.ts +20 -0
  397. package/dist/types/parser/tokenize/keyword.d.ts +13 -0
  398. package/dist/types/parser/tokenize/link-text.d.ts +3 -0
  399. package/dist/types/parser/tokenize/links/attachment-link.d.ts +4 -0
  400. package/dist/types/parser/tokenize/links/issue-link.d.ts +4 -0
  401. package/dist/types/parser/tokenize/links/link-format.d.ts +2 -0
  402. package/dist/types/parser/tokenize/links/link-parser.d.ts +17 -0
  403. package/dist/types/parser/tokenize/links/link-resolver.d.ts +5 -0
  404. package/dist/types/parser/tokenize/links/mention-link.d.ts +4 -0
  405. package/dist/types/parser/tokenize/links/url-link.d.ts +4 -0
  406. package/dist/types/parser/tokenize/list.d.ts +3 -0
  407. package/dist/types/parser/tokenize/media.d.ts +2 -0
  408. package/dist/types/parser/tokenize/monospace.d.ts +2 -0
  409. package/dist/types/parser/tokenize/noformat-macro.d.ts +2 -0
  410. package/dist/types/parser/tokenize/panel-macro.d.ts +2 -0
  411. package/dist/types/parser/tokenize/quadruple-dash-symbol.d.ts +2 -0
  412. package/dist/types/parser/tokenize/quote-macro.d.ts +5 -0
  413. package/dist/types/parser/tokenize/ruler.d.ts +2 -0
  414. package/dist/types/parser/tokenize/strong.d.ts +2 -0
  415. package/dist/types/parser/tokenize/subscript.d.ts +2 -0
  416. package/dist/types/parser/tokenize/superscript.d.ts +2 -0
  417. package/dist/types/parser/tokenize/table.d.ts +2 -0
  418. package/dist/types/parser/tokenize/triple-dash-symbol.d.ts +1 -0
  419. package/dist/types/parser/tokenize/whitespace.d.ts +3 -0
  420. package/dist/types/parser/utils/attrs.d.ts +3 -0
  421. package/dist/types/parser/utils/color-name-mapping.d.ts +10 -0
  422. package/dist/types/parser/utils/escape.d.ts +2 -0
  423. package/dist/types/parser/utils/normalize.d.ts +4 -0
  424. package/dist/types/parser/utils/panel-type.d.ts +3 -0
  425. package/dist/types/parser/utils/text.d.ts +21 -0
  426. package/dist/types/parser/utils/title.d.ts +7 -0
  427. package/dist/types/parser/utils/url.d.ts +8 -0
  428. package/docs/0-intro.tsx +24 -0
  429. package/interfaces/package.json +7 -0
  430. package/package.json +53 -0
  431. package/tsconfig.json +12 -0
  432. package/typings/json.d.ts +1 -0
@@ -0,0 +1,28 @@
1
+ /**
2
+ * In Jira, following characters are escaped
3
+ * private static final Pattern ESCAPING_PATTERN = Pattern.compile("(^|(?<!\\\\))\\\\([\\-\\#\\*\\_\\+\\?\\^\\~\\|\\%\\{\\}\\[\\]\\(\\)\\!\\@])");
4
+ * https://stash.atlassian.com/projects/JIRACLOUD/repos/jira/browse/jira-components/jira-renderer/src/main/java/com/atlassian/renderer/v2/components/BackslashEscapeRendererComponent.java
5
+ */
6
+ var escapedChar = ['-', '#', '*', '_', '+', '?', '^', '~', '|', '%', '{', '}', '[', ']', '(', ')', '!', '@'];
7
+ export function escapeHandler(input, position) {
8
+ var buffer = [];
9
+ var char = input.charAt(position);
10
+ var prevChar = input.charAt(position - 1);
11
+ var nextChar = input.charAt(position + 1);
12
+ /**
13
+ * Ported from Jira:
14
+ * If previous char is also a backslash, then this is not a valid escape
15
+ */
16
+
17
+ if (escapedChar.indexOf(nextChar) === -1 || prevChar === '\\') {
18
+ // Insert \ in buffer mode
19
+ buffer.push(char);
20
+ }
21
+
22
+ buffer.push(nextChar);
23
+ return {
24
+ type: 'text',
25
+ text: buffer.join(''),
26
+ length: 2
27
+ };
28
+ }
@@ -0,0 +1,195 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+
3
+ 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; } } }; }
4
+
5
+ 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); }
6
+
7
+ 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; }
8
+
9
+ import { createParagraphNodeFromInlineNodes, createEmptyParagraphNode } from '../nodes/paragraph';
10
+ export function normalizePMNodes(nodes, schema) {
11
+ return [normalizeMediaGroups, normalizeInlineNodes].reduce(function (currentNodes, normFunc) {
12
+ return normFunc(currentNodes, schema);
13
+ }, nodes);
14
+ }
15
+ export function normalizeInlineNodes(nodes, schema) {
16
+ var output = [];
17
+ var inlineNodeBuffer = [];
18
+
19
+ var _iterator = _createForOfIteratorHelper(nodes),
20
+ _step;
21
+
22
+ try {
23
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
24
+ var node = _step.value;
25
+
26
+ if (!node.isBlock) {
27
+ inlineNodeBuffer.push(node);
28
+ continue;
29
+ }
30
+
31
+ var _trimedInlineNodes = trimInlineNodes(inlineNodeBuffer);
32
+
33
+ if (_trimedInlineNodes.length > 0) {
34
+ output.push.apply(output, _toConsumableArray(createParagraphNodeFromInlineNodes(_trimedInlineNodes, schema)));
35
+ }
36
+
37
+ inlineNodeBuffer = []; // clear buffer
38
+
39
+ output.push(node);
40
+ }
41
+ } catch (err) {
42
+ _iterator.e(err);
43
+ } finally {
44
+ _iterator.f();
45
+ }
46
+
47
+ var trimedInlineNodes = trimInlineNodes(inlineNodeBuffer);
48
+
49
+ if (trimedInlineNodes.length > 0) {
50
+ output.push.apply(output, _toConsumableArray(createParagraphNodeFromInlineNodes(trimedInlineNodes, schema)));
51
+ }
52
+
53
+ if (output.length === 0) {
54
+ return [createEmptyParagraphNode(schema)];
55
+ }
56
+
57
+ return output;
58
+ }
59
+ /**
60
+ * Normalize the list of the given nodes for media groups.
61
+ * The rule is: if there are consecutive media group nodes (each with a single child media
62
+ * node) separated by any space or a single newline, then merge them into one media group
63
+ * with multiple child media nodes.
64
+ * @param nodes list of nodes to normalize. Must not be null
65
+ * @param schema
66
+ */
67
+
68
+ function normalizeMediaGroups(nodes, schema) {
69
+ var output = [];
70
+ var mediaGroupBuffer = [];
71
+ var separatorBuffer = [];
72
+
73
+ var _iterator2 = _createForOfIteratorHelper(nodes),
74
+ _step2;
75
+
76
+ try {
77
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
78
+ var n = _step2.value;
79
+
80
+ if (n.type.name === 'mediaGroup' && n.childCount === 1) {
81
+ mediaGroupBuffer.push(n); //separator buffer keeps track of the seperator(s) between each mediaGroup nodes,
82
+ //so needs resetting every time we encounter a new mediaGroup node
83
+
84
+ separatorBuffer = [];
85
+ continue;
86
+ }
87
+
88
+ if (mediaGroupBuffer.length > 0) {
89
+ if (isSignificantSeparatorNode(n, separatorBuffer)) {
90
+ output.push(createMergedMediaGroup(mediaGroupBuffer, schema));
91
+ output.push.apply(output, _toConsumableArray(separatorBuffer));
92
+ output.push(n);
93
+ mediaGroupBuffer = [];
94
+ separatorBuffer = [];
95
+ } else {
96
+ separatorBuffer.push(n);
97
+ }
98
+
99
+ continue;
100
+ }
101
+
102
+ output.push(n);
103
+ }
104
+ } catch (err) {
105
+ _iterator2.e(err);
106
+ } finally {
107
+ _iterator2.f();
108
+ }
109
+
110
+ if (mediaGroupBuffer.length > 0) {
111
+ output.push(createMergedMediaGroup(mediaGroupBuffer, schema));
112
+ } // Dump everything else from separator buffer if anything is left
113
+
114
+
115
+ output.push.apply(output, _toConsumableArray(separatorBuffer));
116
+ return output;
117
+ }
118
+ /**
119
+ * Creates a single mediaGroup whose children are the single media elements from the given mediaGroupNodes.
120
+ * @param mediaGroupNodes list of mediaGroups that have a single child each
121
+ * @param schema the schema
122
+ */
123
+
124
+
125
+ function createMergedMediaGroup(mediaGroupNodes, schema) {
126
+ var mediaGroup = schema.nodes.mediaGroup;
127
+ var mediaNodes = mediaGroupNodes.map(function (v) {
128
+ return v.child(0);
129
+ });
130
+ return mediaGroup.createChecked({}, mediaNodes);
131
+ }
132
+
133
+ function isSignificantSeparatorNode(n, separatorBuffer) {
134
+ return isHardBreak(n, separatorBuffer) || !isEmptyTextNode(n) || isMediaGroupWithMultipleChildren(n);
135
+ }
136
+ /**
137
+ * Existing media groups with more than one child is considered as a significant separator.
138
+ */
139
+
140
+
141
+ function isMediaGroupWithMultipleChildren(n) {
142
+ return n.type.name === 'mediaGroup' && n.childCount > 1;
143
+ }
144
+ /**
145
+ * If the current node is a hard break, AND there's already at least
146
+ * one hard break in the separator buffer, then we want to return true.
147
+ * @param n the current node to examine
148
+ * @param separatorBuffer the existing separator buffer.
149
+ */
150
+
151
+
152
+ function isHardBreak(n, separatorBuffer) {
153
+ return n.type.name === 'hardBreak' && separatorBuffer.map(function (v) {
154
+ return v.type.name;
155
+ }).indexOf('hardBreak') !== -1;
156
+ }
157
+
158
+ function isEmptyTextNode(n) {
159
+ return n.textContent !== undefined && n.textContent.trim().length === 0;
160
+ }
161
+ /**
162
+ * Remove leading and trailing hardBreak
163
+ */
164
+
165
+
166
+ function trimInlineNodes(nodes) {
167
+ var leadingNode = nodes.shift();
168
+
169
+ while (leadingNode) {
170
+ if (leadingNode.type.name !== 'hardBreak') {
171
+ nodes.unshift(leadingNode);
172
+ break;
173
+ }
174
+
175
+ leadingNode = nodes.shift();
176
+ }
177
+
178
+ var trailingNode = nodes.pop();
179
+
180
+ while (trailingNode) {
181
+ if (trailingNode.type.name !== 'hardBreak') {
182
+ nodes.push(trailingNode);
183
+ break;
184
+ }
185
+
186
+ trailingNode = nodes.pop();
187
+ }
188
+
189
+ return nodes;
190
+ }
191
+
192
+ export function isNextLineEmpty(input) {
193
+ // Line with only spaces is considered an empty line
194
+ return input.trim().length === 0;
195
+ }
@@ -0,0 +1,109 @@
1
+ import colorNameMapping from './color-name-mapping';
2
+ var COLOR_TYPE_REGEX = {
3
+ hexShort: /^#?([a-f\d])([a-f\d])([a-f\d])$/i,
4
+ hexLong: /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,
5
+ rgb: /^#?rgb\((\d+),\s*(\d+),\s*(\d+)\)$/,
6
+ prgb: /^#?rgb\((\d+)%,\s*(\d+)%,\s*(\d+)%\)$/
7
+ };
8
+ var PANEL_TYPE_TO_RGB = {
9
+ info: {
10
+ r: 222,
11
+ g: 235,
12
+ b: 255
13
+ },
14
+ note: {
15
+ r: 234,
16
+ g: 230,
17
+ b: 255
18
+ },
19
+ success: {
20
+ r: 227,
21
+ g: 252,
22
+ b: 239
23
+ },
24
+ warning: {
25
+ r: 255,
26
+ g: 250,
27
+ b: 230
28
+ },
29
+ error: {
30
+ r: 255,
31
+ g: 235,
32
+ b: 230
33
+ }
34
+ };
35
+ export function getPanelType(attrs) {
36
+ var rgb = generateRgb(attrs.bgColor);
37
+
38
+ if (!rgb) {
39
+ return 'info';
40
+ }
41
+
42
+ var mapTo = 'info';
43
+ var smallestDistance = Infinity;
44
+ Object.keys(PANEL_TYPE_TO_RGB).forEach(function (panelType) {
45
+ var distance = distanceOfRgb(PANEL_TYPE_TO_RGB[panelType], rgb);
46
+
47
+ if (distance < smallestDistance) {
48
+ smallestDistance = distance;
49
+ mapTo = panelType;
50
+ }
51
+ });
52
+ return mapTo;
53
+ }
54
+
55
+ function distanceOfRgb(a, b) {
56
+ // https://en.wikipedia.org/wiki/Color_difference
57
+ return Math.pow(a.r - b.r, 2) + Math.pow(a.g - b.g, 2) + Math.pow(a.b - b.b, 2);
58
+ }
59
+
60
+ function generateRgb(color) {
61
+ switch (true) {
62
+ case COLOR_TYPE_REGEX.hexShort.test(color) || COLOR_TYPE_REGEX.hexLong.test(color):
63
+ return parseHex(color);
64
+
65
+ case COLOR_TYPE_REGEX.rgb.test(color):
66
+ return parseRgb(color);
67
+
68
+ case COLOR_TYPE_REGEX.prgb.test(color):
69
+ return parsePrgb(color);
70
+
71
+ default:
72
+ return parseColorName(color);
73
+ }
74
+ }
75
+
76
+ function parseHex(hex) {
77
+ // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
78
+ hex = hex.replace(COLOR_TYPE_REGEX.hexShort, function (_m, r, g, b) {
79
+ return r + r + g + g + b + b;
80
+ });
81
+ var result = COLOR_TYPE_REGEX.hexLong.exec(hex);
82
+ return result ? {
83
+ r: parseInt(result[1], 16),
84
+ g: parseInt(result[2], 16),
85
+ b: parseInt(result[3], 16)
86
+ } : null;
87
+ }
88
+
89
+ function parseRgb(rgb) {
90
+ var result = rgb.match(COLOR_TYPE_REGEX.rgb);
91
+ return result ? {
92
+ r: parseInt(result[1], 10),
93
+ g: parseInt(result[2], 10),
94
+ b: parseInt(result[3], 10)
95
+ } : null;
96
+ }
97
+
98
+ function parsePrgb(prgb) {
99
+ var result = prgb.match(COLOR_TYPE_REGEX.prgb);
100
+ return result ? {
101
+ r: Math.floor(255 * parseInt(result[1], 10) / 100),
102
+ g: Math.floor(255 * parseInt(result[2], 10) / 100),
103
+ b: Math.floor(255 * parseInt(result[4], 10) / 100)
104
+ } : null;
105
+ }
106
+
107
+ function parseColorName(color) {
108
+ return colorNameMapping[color];
109
+ }
@@ -0,0 +1,81 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+
4
+ /**
5
+ * Check if the node has certain marks
6
+ */
7
+ export function hasAnyOfMarks(node, types) {
8
+ return node.marks.findIndex(function (m) {
9
+ return types.findIndex(function (t) {
10
+ return m.type.name === t;
11
+ }) !== -1;
12
+ }) !== -1;
13
+ }
14
+ export function isDigit(value) {
15
+ return !!value.match(/^\d$/);
16
+ }
17
+ export function isBlank(value) {
18
+ return value === null || value.trim() === '';
19
+ }
20
+ export function isNotBlank(value) {
21
+ return !isBlank(value);
22
+ } // TODO This is using strings which makes it potentially a performance bottleneck
23
+
24
+ export var StringBuffer = /*#__PURE__*/function () {
25
+ function StringBuffer() {
26
+ var buffer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
27
+
28
+ _classCallCheck(this, StringBuffer);
29
+
30
+ this.buffer = buffer;
31
+ }
32
+
33
+ _createClass(StringBuffer, [{
34
+ key: "indexOf",
35
+ value: function indexOf(value) {
36
+ return this.buffer.indexOf(value);
37
+ }
38
+ }, {
39
+ key: "lastIndexOf",
40
+ value: function lastIndexOf(value) {
41
+ return this.buffer.lastIndexOf(value);
42
+ }
43
+ }, {
44
+ key: "charAt",
45
+ value: function charAt(index) {
46
+ return this.buffer.charAt(index);
47
+ }
48
+ }, {
49
+ key: "length",
50
+ value: function length() {
51
+ return this.buffer.length;
52
+ }
53
+ }, {
54
+ key: "delete",
55
+ value: function _delete(start, end) {
56
+ this.buffer = this.buffer.substring(0, start) + this.buffer.substring(end);
57
+ }
58
+ }, {
59
+ key: "append",
60
+ value: function append(value) {
61
+ this.buffer += value;
62
+ }
63
+ }, {
64
+ key: "substring",
65
+ value: function substring(start, end) {
66
+ return this.buffer.substring(start, end);
67
+ }
68
+ }, {
69
+ key: "deleteCharAt",
70
+ value: function deleteCharAt(index) {
71
+ this.delete(index, index + 1);
72
+ }
73
+ }, {
74
+ key: "toString",
75
+ value: function toString() {
76
+ return this.buffer;
77
+ }
78
+ }]);
79
+
80
+ return StringBuffer;
81
+ }();
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This will return ADF to replace the titles in some macro
3
+ * For example
4
+ * {panel:title}aaa{panel}
5
+ */
6
+ export function title(text, schema) {
7
+ var mark = schema.marks.strong.create();
8
+ var title = schema.text(text, [mark]);
9
+ return schema.nodes.paragraph.createChecked({}, [title]);
10
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * returns a correctly percent-encoded & sanitized url.
3
+ * Will fallback to using a DOM based implementation if the `URL` class
4
+ * doesn't exist.
5
+ *
6
+ * @param raw a 'raw' url (possibly mixed percent-encoded).
7
+ */
8
+ export function decode(raw) {
9
+ if (typeof URL === 'function') {
10
+ var decoded = new URL(raw); // IE11 doesn't support the `href` property in the `URL` class.
11
+ // Fallback to the DOM below if it doesn't exist.
12
+
13
+ if (decoded.href) {
14
+ return decoded.href;
15
+ }
16
+ } // no `URL` class - pollyfill using the dom to parse and
17
+ // decode. This should only be needed for IE11 or lower...
18
+
19
+
20
+ var anchor = document.createElement('a');
21
+ anchor.href = raw; // The DOM will parses even mixed %-encoded segments of a url when set.
22
+
23
+ return anchor.href;
24
+ }