@atlaskit/adf-utils 16.0.2 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +67 -0
- package/builders/package.json +1 -0
- package/codemods/17.0.0-update-imports-to-new-entry-points.ts +175 -0
- package/codemods/__tests__/next-update-imports-to-new-entry-points.ts +175 -0
- package/codemods/helpers/entry-points.ts +33 -0
- package/codemods/types/entry-points.ts +12 -0
- package/dist/cjs/index.js +1 -447
- package/dist/cjs/scrub/scrub-content.js +5 -5
- package/dist/cjs/transforms/dedupe-marks-transform.js +120 -0
- package/dist/cjs/transforms/indentation-marks-transform.js +66 -0
- package/dist/cjs/{media-link-transform.js → transforms/media-link-transform.js} +1 -1
- package/dist/cjs/transforms/nodes-missing-content-transform.js +205 -0
- package/dist/cjs/transforms.js +45 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/index.js +2 -7
- package/dist/es2019/transforms/dedupe-marks-transform.js +97 -0
- package/dist/es2019/transforms/indentation-marks-transform.js +45 -0
- package/dist/es2019/{media-link-transform.js → transforms/media-link-transform.js} +1 -1
- package/dist/es2019/transforms/nodes-missing-content-transform.js +175 -0
- package/dist/es2019/transforms.js +5 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/index.js +2 -7
- package/dist/esm/scrub/scrub-content.js +5 -5
- package/dist/esm/transforms/dedupe-marks-transform.js +108 -0
- package/dist/esm/transforms/indentation-marks-transform.js +55 -0
- package/dist/esm/{media-link-transform.js → transforms/media-link-transform.js} +1 -1
- package/dist/esm/transforms/nodes-missing-content-transform.js +192 -0
- package/dist/esm/transforms.js +5 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/index.d.ts +1 -9
- package/dist/types/transforms/dedupe-marks-transform.d.ts +8 -0
- package/dist/types/transforms/indentation-marks-transform.d.ts +7 -0
- package/dist/types/{media-link-transform.d.ts → transforms/media-link-transform.d.ts} +1 -1
- package/dist/types/transforms/nodes-missing-content-transform.d.ts +7 -0
- package/dist/types/transforms.d.ts +5 -0
- package/dist/types/validator.d.ts +0 -1
- package/empty-adf/package.json +1 -0
- package/package.json +14 -3
- package/scrub/package.json +1 -0
- package/transforms/package.json +8 -0
- package/traverse/package.json +1 -0
- package/tsconfig.json +2 -1
- package/types/package.json +8 -0
- package/validator/package.json +1 -0
- package/validatorTypes/package.json +8 -0
- package/media-link-transform/package.json +0 -7
package/dist/esm/index.js
CHANGED
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
3
|
-
export { scrubAdf } from './scrub';
|
|
4
|
-
export { validateAttrs, validator } from './validator';
|
|
5
|
-
export { getEmptyADF } from './empty-adf';
|
|
6
|
-
export { transformMediaLinkMarks } from './media-link-transform';
|
|
7
|
-
export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
|
|
1
|
+
// DO NOT EMPORT ANYTHING FROM THIS FILE. USE CHILD ENTRY POINTS.
|
|
2
|
+
export {};
|
|
@@ -56,21 +56,21 @@ export var scrubStr = function scrubStr(val) {
|
|
|
56
56
|
// something like "".split('')
|
|
57
57
|
|
|
58
58
|
return _toConsumableArray(val).map(function (char, index, chars) {
|
|
59
|
-
if (/^(?:[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD801[\uDCA0-\uDCA9]|\uD803[\uDD30-\uDD39]|\uD804[\uDC66-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF39]|\uD806[\uDCE0-\uDCE9\uDD50-\uDD59]|\uD807[\uDC50-\uDC59\uDD50-\uDD59\uDDA0-\uDDA9]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDD50-\uDD59]|\uD83E[\uDFF0-\uDFF9])$/.test(char)) {
|
|
59
|
+
if (/^(?:[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD801[\uDCA0-\uDCA9]|\uD803[\uDD30-\uDD39]|\uD804[\uDC66-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF39]|\uD806[\uDCE0-\uDCE9\uDD50-\uDD59]|\uD807[\uDC50-\uDC59\uDD50-\uDD59\uDDA0-\uDDA9]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDD50-\uDD59]|\uD83E[\uDFF0-\uDFF9])$/.test(char)) {
|
|
60
60
|
// Decimal digits
|
|
61
61
|
return scrubNum(parseInt(char, 10), index).toString();
|
|
62
|
-
} else if (/^(?:[\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFDFD\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFDC\uDFE1-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\
|
|
62
|
+
} else if (/^(?:[\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFD40-\uFD4F\uFDCF\uFDFD-\uFDFF\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFDC\uDFE1-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838\uDD4F|\uD83B[\uDCAC\uDD2E]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFA]|\uD83D[\uDC00-\uDED7\uDEDD-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC5\uDED0-\uDED9\uDEE0-\uDEE7\uDEF0-\uDEF6\uDF00-\uDF92\uDF94-\uDFCA])$/.test(char)) {
|
|
63
63
|
var _chars;
|
|
64
64
|
|
|
65
65
|
// Emoji
|
|
66
66
|
return ((_chars = chars[index - 1]) === null || _chars === void 0 ? void 0 : _chars.codePointAt(0)) === 8205 ? '' : '⭐️';
|
|
67
|
-
} else if (/^(?:[\$\xA2-\xA5\u058F\u060B\u07FE\u07FF\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\
|
|
67
|
+
} else if (/^(?:[\$\xA2-\xA5\u058F\u060B\u07FE\u07FF\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20C0\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]|\uD807[\uDFDD-\uDFE0]|\uD838\uDEFF|\uD83B\uDCB0)$/.test(char)) {
|
|
68
68
|
// Currency
|
|
69
69
|
return '$';
|
|
70
|
-
} else if (/^(?:[\0-#%-\*,-\/:;\?@\[-\]_\{\}\x7F-\xA1\xA7\xAB\xAD\xB6\xB7\xBB\xBF\u0378\u0379\u037E\u0380-\u0383\u0387\u038B\u038D\u03A2\u0530\u0557\u0558\u055A-\u055F\u0589-\u058C\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u0605\u0609\u060A\u060C\u060D\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F7-\u07F9\u07FB\u07FC\u082E-\u083F\u085C-\u085F\u086B-\
|
|
70
|
+
} else if (/^(?:[\0-#%-\*,-\/:;\?@\[-\]_\{\}\x7F-\xA1\xA7\xAB\xAD\xB6\xB7\xBB\xBF\u0378\u0379\u037E\u0380-\u0383\u0387\u038B\u038D\u03A2\u0530\u0557\u0558\u055A-\u055F\u0589-\u058C\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u0605\u0609\u060A\u060C\u060D\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F7-\u07F9\u07FB\u07FC\u082E-\u083F\u085C-\u085F\u086B-\u086F\u088F-\u0897\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A\u0C3B\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B\u0C5C\u0C5E\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDC\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3E\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD\u0FCD\u0FD0-\u0FD4\u0FD9-\u0FFF\u104A-\u104F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u1368\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE-\u1400\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u1716-\u171E\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DA\u17DE\u17DF\u17EA-\u17EF\u17FA-\u180A\u180E\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1ACF-\u1AFF\u1B4D-\u1B4F\u1B5A-\u1B60\u1B7D-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF-\u2043\u2045-\u2051\u2053-\u206F\u2072\u2073\u207D\u207E\u208D-\u208F\u209D-\u209F\u20C1-\u20CF\u20F1-\u20FF\u218C-\u218F\u2308-\u230B\u2329\u232A\u2427-\u243F\u244B-\u245F\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2B74\u2B75\u2B96\u2CF4-\u2CFC\u2CFE\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u3040\u3097\u3098\u30A0\u30FB\u3100-\u3104\u3130\u318F\u31E4-\u31EF\u321F\uA48D-\uA48F\uA4C7-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA6FF\uA7CB-\uA7CF\uA7D2\uA7D4\uA7DA-\uA7F1\uA82D-\uA82F\uA83A-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB6C-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC3-\uFBD2\uFD3E\uFD3F\uFD90\uFD91\uFDC8-\uFDCE\uFDD0-\uFDEF\uFE10-\uFE1F\uFE30-\uFE61\uFE63\uFE67\uFE68\uFE6A-\uFE6F\uFE75\uFEFD-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD06\uDD34-\uDD36\uDD8F\uDD9D-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6F\uDD7B\uDD8B\uDD93\uDD96\uDDA2\uDDB2\uDDBA\uDDBD-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDF7F\uDF86\uDFB1\uDFBB-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC57\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE5F\uDE7F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF0-\uDEFF\uDF36-\uDF3F\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF28-\uDF2F\uDF55-\uDF6F\uDF86-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC51\uDC76-\uDC7E\uDCBB-\uDCC1\uDCC3-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDE0\uDDF5-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3C-\uDF3E\uDF47-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEAF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC6D-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFBF\uDFF2-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80E-\uD810\uD812-\uD819\uD824-\uD82A\uD82D\uD82E\uD830-\uD832\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80B[\uDC00-\uDF8F\uDFF1-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6F\uDEBF\uDECA-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3B\uDF44\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE97-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82B[\uDC00-\uDFEF\uDFF4\uDFFC\uDFFF]|\uD82C[\uDD23-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDC9F-\uDFFF]|\uD833[\uDC00-\uDEFF\uDF2E\uDF2F\uDF47-\uDF4F\uDFC4-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDD73-\uDD7A\uDDEB-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE87-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD837[\uDC00-\uDEFF\uDF1F-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDE8F\uDEAF-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD839[\uDC00-\uDFDF\uDFE7\uDFEC\uDFEF\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDDAE-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED8-\uDEDC\uDEED-\uDEEF\uDEFD-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFEF\uDFF1-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE\uDCAF\uDCB2-\uDCFF\uDE54-\uDE5F\uDE6E\uDE6F\uDE75-\uDE77\uDE7D-\uDE7F\uDE87-\uDE8F\uDEAD-\uDEAF\uDEBB-\uDEBF\uDEC6-\uDECF\uDEDA-\uDEDF\uDEE8-\uDEEF\uDEF7-\uDEFF\uDF93\uDFCB-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEE0-\uDEFF]|\uD86D[\uDF39-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])$/.test(char)) {
|
|
71
71
|
// Punctuation, Seperators, Control
|
|
72
72
|
return char;
|
|
73
|
-
} else if (char.codePointAt(0) === 65039 && /^(?:[\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFDFD\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFDC\uDFE1-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\
|
|
73
|
+
} else if (char.codePointAt(0) === 65039 && /^(?:[\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFD40-\uFD4F\uFDCF\uFDFD-\uFDFF\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFDC\uDFE1-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838\uDD4F|\uD83B[\uDCAC\uDD2E]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFA]|\uD83D[\uDC00-\uDED7\uDEDD-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC5\uDED0-\uDED9\uDEE0-\uDEE7\uDEF0-\uDEF6\uDF00-\uDF92\uDF94-\uDFCA])$/.test(chars[index - 1])) {
|
|
74
74
|
// Ingore compound emoji control char
|
|
75
75
|
return '';
|
|
76
76
|
} else {
|
|
@@ -0,0 +1,108 @@
|
|
|
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); 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 = 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; }
|
|
6
|
+
|
|
7
|
+
import { traverse } from '../traverse/traverse';
|
|
8
|
+
// This is the set of marks that we wont allow in duplicate to
|
|
9
|
+
// exist on a given node, regardless of their attributes. We do
|
|
10
|
+
// not include annotations here, because we do allow duplicate
|
|
11
|
+
// annotations as long as they have unique id attributes (valid scenario)
|
|
12
|
+
var markDuplicatesDisallowed = new Set(['strong', 'underline', 'textColor', 'link', 'em', 'subsup', 'strike']);
|
|
13
|
+
|
|
14
|
+
var maybeHasDisallowedDuplicateMarks = function maybeHasDisallowedDuplicateMarks(node) {
|
|
15
|
+
var _node$marks, _node$marks$map;
|
|
16
|
+
|
|
17
|
+
var markTypes = (_node$marks = node.marks) === null || _node$marks === void 0 ? void 0 : (_node$marks$map = _node$marks.map(function (mark) {
|
|
18
|
+
return mark.type;
|
|
19
|
+
})) === null || _node$marks$map === void 0 ? void 0 : _node$marks$map.filter(function (markType) {
|
|
20
|
+
return (// For annotations, we are performing the same cheap check
|
|
21
|
+
// for duplicates by type, without considering IDs, to quickly determine
|
|
22
|
+
// whether there may be potential deduping targets.
|
|
23
|
+
// In the actual deduping logic in maybeRemoveDisallowedDuplicateMarks,
|
|
24
|
+
// we correctly/safely dedupe annotations by their unique IDs.
|
|
25
|
+
markDuplicatesDisallowed.has(markType) || markType === 'annotation'
|
|
26
|
+
);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
if (!(markTypes !== null && markTypes !== void 0 && markTypes.length)) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return new Set(markTypes).size !== markTypes.length;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var maybeRemoveDisallowedDuplicateMarks = function maybeRemoveDisallowedDuplicateMarks(node) {
|
|
37
|
+
var quota = new Map();
|
|
38
|
+
var annotationsQuota = new Map();
|
|
39
|
+
var discardedMarks = [];
|
|
40
|
+
markDuplicatesDisallowed.forEach(function (mark) {
|
|
41
|
+
quota.set(mark, false);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
if (!node.marks) {
|
|
45
|
+
return {
|
|
46
|
+
discardedMarks: discardedMarks
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
var dedupedMarks = node.marks.filter(function (mark) {
|
|
51
|
+
var markType = mark.type;
|
|
52
|
+
|
|
53
|
+
if (markType === 'annotation') {
|
|
54
|
+
var _mark$attrs;
|
|
55
|
+
|
|
56
|
+
var id = (_mark$attrs = mark.attrs) === null || _mark$attrs === void 0 ? void 0 : _mark$attrs.id;
|
|
57
|
+
|
|
58
|
+
if (annotationsQuota.has(id)) {
|
|
59
|
+
discardedMarks.push(mark);
|
|
60
|
+
return false;
|
|
61
|
+
} else {
|
|
62
|
+
annotationsQuota.set(id, true);
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (quota.has(markType)) {
|
|
68
|
+
if (!quota.get(markType)) {
|
|
69
|
+
quota.set(markType, true);
|
|
70
|
+
return true;
|
|
71
|
+
} else {
|
|
72
|
+
discardedMarks.push(mark);
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return true;
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
node: _objectSpread(_objectSpread({}, node), {}, {
|
|
81
|
+
marks: dedupedMarks
|
|
82
|
+
}),
|
|
83
|
+
discardedMarks: discardedMarks
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export var transformDedupeMarks = function transformDedupeMarks(adf) {
|
|
88
|
+
var isTransformed = false;
|
|
89
|
+
var discardedMarks = [];
|
|
90
|
+
var transformedAdf = traverse(adf, {
|
|
91
|
+
text: function text(node) {
|
|
92
|
+
if (maybeHasDisallowedDuplicateMarks(node)) {
|
|
93
|
+
var result = maybeRemoveDisallowedDuplicateMarks(node);
|
|
94
|
+
discardedMarks = result.discardedMarks;
|
|
95
|
+
|
|
96
|
+
if (discardedMarks.length) {
|
|
97
|
+
isTransformed = true;
|
|
98
|
+
return result.node;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return {
|
|
104
|
+
transformedAdf: transformedAdf,
|
|
105
|
+
isTransformed: isTransformed,
|
|
106
|
+
discardedMarks: discardedMarks
|
|
107
|
+
};
|
|
108
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
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); 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 = 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; }
|
|
6
|
+
|
|
7
|
+
import { traverse } from '../traverse/traverse';
|
|
8
|
+
|
|
9
|
+
var hasChildHeadingWithIndentation = function hasChildHeadingWithIndentation(node) {
|
|
10
|
+
var _node$content$some, _node$content;
|
|
11
|
+
|
|
12
|
+
return (_node$content$some = (_node$content = node.content) === null || _node$content === void 0 ? void 0 : _node$content.some(function (childNode) {
|
|
13
|
+
var _childNode$marks;
|
|
14
|
+
|
|
15
|
+
return (childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'heading' && (childNode === null || childNode === void 0 ? void 0 : (_childNode$marks = childNode.marks) === null || _childNode$marks === void 0 ? void 0 : _childNode$marks.some(function (mark) {
|
|
16
|
+
return mark.type === 'indentation';
|
|
17
|
+
}));
|
|
18
|
+
})) !== null && _node$content$some !== void 0 ? _node$content$some : false;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
var removeIndentationFromHeadings = function removeIndentationFromHeadings(node) {
|
|
22
|
+
var _node$content2;
|
|
23
|
+
|
|
24
|
+
return _objectSpread(_objectSpread({}, node), {}, {
|
|
25
|
+
content: (_node$content2 = node.content) === null || _node$content2 === void 0 ? void 0 : _node$content2.map(function (childNode) {
|
|
26
|
+
if ((childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'heading') {
|
|
27
|
+
var _childNode$marks2;
|
|
28
|
+
|
|
29
|
+
return _objectSpread(_objectSpread({}, childNode), {}, {
|
|
30
|
+
marks: (_childNode$marks2 = childNode.marks) === null || _childNode$marks2 === void 0 ? void 0 : _childNode$marks2.filter(function (mark) {
|
|
31
|
+
return mark.type !== 'indentation';
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return childNode;
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export var transformIndentationMarks = function transformIndentationMarks(adf) {
|
|
42
|
+
var isTransformed = false;
|
|
43
|
+
var transformedAdf = traverse(adf, {
|
|
44
|
+
tableCell: function tableCell(node) {
|
|
45
|
+
if (hasChildHeadingWithIndentation(node)) {
|
|
46
|
+
isTransformed = true;
|
|
47
|
+
return removeIndentationFromHeadings(node);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
transformedAdf: transformedAdf,
|
|
53
|
+
isTransformed: isTransformed
|
|
54
|
+
};
|
|
55
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { traverse } from '
|
|
1
|
+
import { traverse } from '../traverse/traverse';
|
|
2
2
|
// link mark on mediaSingle is deprecated, need to move link mark to child media node
|
|
3
3
|
// https://product-fabric.atlassian.net/browse/ED-14043
|
|
4
4
|
export var transformMediaLinkMarks = function transformMediaLinkMarks(adf) {
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
|
|
4
|
+
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; }
|
|
5
|
+
|
|
6
|
+
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; }
|
|
7
|
+
|
|
8
|
+
import { traverse } from '../traverse/traverse';
|
|
9
|
+
import { tableRow, tableCell, paragraph, listItem } from '../builders';
|
|
10
|
+
|
|
11
|
+
var getMaxColumnsCountForTable = function getMaxColumnsCountForTable(tableNode) {
|
|
12
|
+
var _tableNode$content;
|
|
13
|
+
|
|
14
|
+
var colsInRow = 1;
|
|
15
|
+
(_tableNode$content = tableNode.content) === null || _tableNode$content === void 0 ? void 0 : _tableNode$content.forEach(function (childNode) {
|
|
16
|
+
var _childNode$content;
|
|
17
|
+
|
|
18
|
+
if ((childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'tableRow' && typeof ((_childNode$content = childNode.content) === null || _childNode$content === void 0 ? void 0 : _childNode$content.length) === 'number' && childNode.content.length > colsInRow) {
|
|
19
|
+
colsInRow = childNode.content.length;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
return colsInRow;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
var createValidEmptyContent = function createValidEmptyContent(node) {
|
|
26
|
+
switch (node.type) {
|
|
27
|
+
case 'tableCell':
|
|
28
|
+
return [paragraph()];
|
|
29
|
+
|
|
30
|
+
default:
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
var isEmpty = function isEmpty(node) {
|
|
36
|
+
var _node$content;
|
|
37
|
+
|
|
38
|
+
return ((_node$content = node.content) === null || _node$content === void 0 ? void 0 : _node$content.length) === 0;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
var fixIfTableCellInvalidEmpty = function fixIfTableCellInvalidEmpty(reportTransform) {
|
|
42
|
+
return function (node) {
|
|
43
|
+
if (isEmpty(node)) {
|
|
44
|
+
reportTransform();
|
|
45
|
+
return _objectSpread(_objectSpread({}, node), {}, {
|
|
46
|
+
content: createValidEmptyContent(node)
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
var hasNonListItemChildren = function hasNonListItemChildren(node) {
|
|
53
|
+
var _node$content2;
|
|
54
|
+
|
|
55
|
+
return (_node$content2 = node.content) === null || _node$content2 === void 0 ? void 0 : _node$content2.some(function (node) {
|
|
56
|
+
return (node === null || node === void 0 ? void 0 : node.type) !== 'listItem';
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
var hasEmptyListItemChildren = function hasEmptyListItemChildren(node) {
|
|
61
|
+
var _node$content3;
|
|
62
|
+
|
|
63
|
+
return (_node$content3 = node.content) === null || _node$content3 === void 0 ? void 0 : _node$content3.some(function (childNode) {
|
|
64
|
+
var _childNode$content2;
|
|
65
|
+
|
|
66
|
+
return (childNode === null || childNode === void 0 ? void 0 : childNode.type) === 'listItem' && !((_childNode$content2 = childNode.content) !== null && _childNode$content2 !== void 0 && _childNode$content2.length);
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var tryCreateValidListItemWrappedChildren = function tryCreateValidListItemWrappedChildren(parentListNode) {
|
|
71
|
+
var _parentListNode$conte;
|
|
72
|
+
|
|
73
|
+
return (_parentListNode$conte = parentListNode.content) === null || _parentListNode$conte === void 0 ? void 0 : _parentListNode$conte.map(function (childNode) {
|
|
74
|
+
if (childNode) {
|
|
75
|
+
switch (childNode.type) {
|
|
76
|
+
case 'listItem':
|
|
77
|
+
{
|
|
78
|
+
if (isEmpty(childNode)) {
|
|
79
|
+
var result = listItem([paragraph()]);
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return childNode;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
case 'text':
|
|
87
|
+
return listItem([paragraph(childNode)]);
|
|
88
|
+
|
|
89
|
+
default:
|
|
90
|
+
return listItem([childNode]);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return childNode;
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
var fixIfListParentWithInvalidListItemChildren = function fixIfListParentWithInvalidListItemChildren(reportTransform) {
|
|
99
|
+
return function (node) {
|
|
100
|
+
if (hasNonListItemChildren(node) || hasEmptyListItemChildren(node)) {
|
|
101
|
+
reportTransform();
|
|
102
|
+
return _objectSpread(_objectSpread({}, node), {}, {
|
|
103
|
+
content: tryCreateValidListItemWrappedChildren(node)
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
var hasNonTableRowChildren = function hasNonTableRowChildren(node) {
|
|
110
|
+
var _node$content4;
|
|
111
|
+
|
|
112
|
+
return (_node$content4 = node.content) === null || _node$content4 === void 0 ? void 0 : _node$content4.some(function (node) {
|
|
113
|
+
return (node === null || node === void 0 ? void 0 : node.type) !== 'tableRow';
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
var tryCreateValidTableRowWrappedChildren = function tryCreateValidTableRowWrappedChildren(parentTableNode) {
|
|
118
|
+
var _parentTableNode$cont;
|
|
119
|
+
|
|
120
|
+
var maxColsCount = getMaxColumnsCountForTable(parentTableNode);
|
|
121
|
+
return (_parentTableNode$cont = parentTableNode.content) === null || _parentTableNode$cont === void 0 ? void 0 : _parentTableNode$cont.map(function (childNode) {
|
|
122
|
+
if (childNode) {
|
|
123
|
+
switch (childNode.type) {
|
|
124
|
+
case 'text':
|
|
125
|
+
{
|
|
126
|
+
return tableRow([tableCell({})(paragraph(childNode))].concat(_toConsumableArray(new Array(maxColsCount - 1).fill(tableCell({})(paragraph())))));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
case 'tableCell':
|
|
130
|
+
{
|
|
131
|
+
return tableRow([childNode]);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
case 'tableRow':
|
|
135
|
+
{
|
|
136
|
+
if (isEmpty(childNode)) {
|
|
137
|
+
return tableRow(_toConsumableArray(new Array(maxColsCount).fill(tableCell({})(paragraph()))));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return childNode;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
default:
|
|
144
|
+
return childNode;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return childNode;
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
var hasEmptyTableRowChildren = function hasEmptyTableRowChildren(node) {
|
|
153
|
+
var _node$content5;
|
|
154
|
+
|
|
155
|
+
return node === null || node === void 0 ? void 0 : (_node$content5 = node.content) === null || _node$content5 === void 0 ? void 0 : _node$content5.some(function (node) {
|
|
156
|
+
var _node$content6;
|
|
157
|
+
|
|
158
|
+
return (node === null || node === void 0 ? void 0 : node.type) === 'tableRow' && (node === null || node === void 0 ? void 0 : (_node$content6 = node.content) === null || _node$content6 === void 0 ? void 0 : _node$content6.length) === 0;
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
var fixIfTableParentWithInvalidTableRowChildren = function fixIfTableParentWithInvalidTableRowChildren(reportTransform) {
|
|
163
|
+
return function (node) {
|
|
164
|
+
if (hasEmptyTableRowChildren(node) || hasNonTableRowChildren(node)) {
|
|
165
|
+
reportTransform();
|
|
166
|
+
return _objectSpread(_objectSpread({}, node), {}, {
|
|
167
|
+
content: tryCreateValidTableRowWrappedChildren(node)
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
export var transformNodesMissingContent = function transformNodesMissingContent(adf) {
|
|
174
|
+
var isTransformed = false;
|
|
175
|
+
|
|
176
|
+
var reportTransform = function reportTransform() {
|
|
177
|
+
isTransformed = true;
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
var transformedAdf = traverse(adf, {
|
|
181
|
+
tableCell: fixIfTableCellInvalidEmpty(reportTransform)
|
|
182
|
+
});
|
|
183
|
+
transformedAdf = traverse(transformedAdf || adf, {
|
|
184
|
+
bulletList: fixIfListParentWithInvalidListItemChildren(reportTransform),
|
|
185
|
+
orderedList: fixIfListParentWithInvalidListItemChildren(reportTransform),
|
|
186
|
+
table: fixIfTableParentWithInvalidTableRowChildren(reportTransform)
|
|
187
|
+
});
|
|
188
|
+
return {
|
|
189
|
+
transformedAdf: transformedAdf,
|
|
190
|
+
isTransformed: isTransformed
|
|
191
|
+
};
|
|
192
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { transformMediaLinkMarks } from './transforms/media-link-transform';
|
|
2
|
+
export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
|
|
3
|
+
export { transformDedupeMarks } from './transforms/dedupe-marks-transform';
|
|
4
|
+
export { transformNodesMissingContent } from './transforms/nodes-missing-content-transform';
|
|
5
|
+
export { transformIndentationMarks } from './transforms/indentation-marks-transform';
|
package/dist/esm/version.json
CHANGED
package/dist/types/index.d.ts
CHANGED
|
@@ -1,9 +1 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { filter, map, reduce, traverse } from './traverse';
|
|
3
|
-
export { scrubAdf } from './scrub';
|
|
4
|
-
export { validateAttrs, validator } from './validator';
|
|
5
|
-
export type { Content, ErrorCallback, Output, ValidationError, ValidationErrorMap, ValidationErrorType, ValidationMode, ValidationOptions, ErrorCallbackOptions, Validate, } from './types/validatorTypes';
|
|
6
|
-
export type { ADFEntity, ADFEntityMark, Visitor, VisitorCollection, } from './types';
|
|
7
|
-
export { getEmptyADF } from './empty-adf';
|
|
8
|
-
export { transformMediaLinkMarks } from './media-link-transform';
|
|
9
|
-
export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ADFEntity, ADFEntityMark } from '../types';
|
|
2
|
+
interface TransformDedupeMarksResult {
|
|
3
|
+
transformedAdf: ADFEntity;
|
|
4
|
+
isTransformed: boolean;
|
|
5
|
+
discardedMarks: ADFEntityMark[];
|
|
6
|
+
}
|
|
7
|
+
export declare const transformDedupeMarks: (adf: ADFEntity) => TransformDedupeMarksResult;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { transformMediaLinkMarks } from './transforms/media-link-transform';
|
|
2
|
+
export { transformTextLinkCodeMarks } from './transforms/text-link-code-transform';
|
|
3
|
+
export { transformDedupeMarks } from './transforms/dedupe-marks-transform';
|
|
4
|
+
export { transformNodesMissingContent } from './transforms/nodes-missing-content-transform';
|
|
5
|
+
export { transformIndentationMarks } from './transforms/indentation-marks-transform';
|
package/empty-adf/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/adf-utils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "17.0.0",
|
|
4
4
|
"description": "Set of utilities to traverse, modify and create ADF documents.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -16,21 +16,32 @@
|
|
|
16
16
|
"atlaskit:src": "src/index.ts",
|
|
17
17
|
"atlassian": {
|
|
18
18
|
"team": "Editor",
|
|
19
|
-
"deprecatedAutoEntryPoints": true,
|
|
20
19
|
"inPublicMirror": true,
|
|
21
20
|
"releaseModel": "scheduled"
|
|
22
21
|
},
|
|
22
|
+
"af:exports": {
|
|
23
|
+
"./builders": "./src/builders.ts",
|
|
24
|
+
"./empty-adf": "./src/empty-adf.ts",
|
|
25
|
+
"./scrub": "./src/scrub.ts",
|
|
26
|
+
"./transforms": "./src/transforms.ts",
|
|
27
|
+
"./traverse": "./src/traverse.ts",
|
|
28
|
+
"./validator": "./src/validator.ts",
|
|
29
|
+
"./types": "./src/types/index.ts",
|
|
30
|
+
"./validatorTypes": "./src/types/validatorTypes.ts"
|
|
31
|
+
},
|
|
23
32
|
"scripts": {
|
|
24
33
|
"generate:spec": "rm -rf ./src/validator/specs/ && ../json-schema-generator/bin.js --outDir=./src/validator/specs/ --mode=Spec --stage=0 ./src/validator/entry.ts"
|
|
25
34
|
},
|
|
26
35
|
"dependencies": {
|
|
27
|
-
"@atlaskit/adf-schema": "^23.
|
|
36
|
+
"@atlaskit/adf-schema": "^23.1.0",
|
|
37
|
+
"@atlaskit/codemod-utils": "^4.1.0",
|
|
28
38
|
"@babel/runtime": "^7.0.0"
|
|
29
39
|
},
|
|
30
40
|
"devDependencies": {
|
|
31
41
|
"@atlaskit/docs": "*",
|
|
32
42
|
"@atlaskit/json-schema-generator": "^3.2.0",
|
|
33
43
|
"@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
|
|
44
|
+
"jscodeshift": "^0.13.0",
|
|
34
45
|
"react": "^16.8.0",
|
|
35
46
|
"typescript": "4.2.4",
|
|
36
47
|
"wait-for-expect": "^1.2.0"
|
package/scrub/package.json
CHANGED
package/traverse/package.json
CHANGED
package/tsconfig.json
CHANGED