From e71bcaf8258229aeaccbe0c3e64f8376b4b9ab3b Mon Sep 17 00:00:00 2001 From: robertu <4065233+robertu7@users.noreply.github.com> Date: Fri, 14 Jun 2024 10:00:41 +0800 Subject: [PATCH] feat(editor): truncate long link text on publish or edit article --- package-lock.json | 528 ++++++++++++------------ package.json | 2 +- src/common/enums/index.ts | 2 + src/connectors/queue/migration.ts | 9 +- src/mutations/article/editArticle.ts | 9 +- src/mutations/article/publishArticle.ts | 20 +- 6 files changed, 304 insertions(+), 266 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc6e209b2..4c7dcc648 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "matters-server", - "version": "5.0.2", + "version": "5.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "matters-server", - "version": "5.0.2", + "version": "5.0.4", "license": "Apache-2.0", "dependencies": { "@apollo/cache-control-types": "^1.0.2", @@ -20,7 +20,7 @@ "@keyv/redis": "^2.6.1", "@matters/apollo-response-cache": "^2.0.0-alpha.0", "@matters/ipns-site-generator": "^0.1.6", - "@matters/matters-editor": "^0.2.5-alpha.0", + "@matters/matters-editor": "^0.2.5-alpha.6", "@matters/passport-likecoin": "^1.0.0", "@matters/slugify": "^0.7.3", "@sendgrid/helpers": "^7.7.0", @@ -5009,31 +5009,31 @@ } }, "node_modules/@matters/matters-editor": { - "version": "0.2.5-alpha.0", - "resolved": "https://registry.npmjs.org/@matters/matters-editor/-/matters-editor-0.2.5-alpha.0.tgz", - "integrity": "sha512-lPFGJG3pPa5CkxqExgObO+3zz3GY6D6/oFNB8KILhXpwuB7y454VP6n1ez+Wn1rdWAxbS4qLGuMslfKOCFzfnA==", - "dependencies": { - "@tiptap/core": "2.2.4", - "@tiptap/extension-blockquote": "2.2.4", - "@tiptap/extension-bullet-list": "2.2.4", - "@tiptap/extension-code": "2.2.4", - "@tiptap/extension-code-block": "2.2.4", - "@tiptap/extension-document": "2.2.4", - "@tiptap/extension-gapcursor": "2.2.4", - "@tiptap/extension-hard-break": "2.2.4", - "@tiptap/extension-heading": "2.2.4", - "@tiptap/extension-history": "2.2.4", - "@tiptap/extension-horizontal-rule": "2.2.4", - "@tiptap/extension-list-item": "2.2.4", - "@tiptap/extension-ordered-list": "2.2.4", - "@tiptap/extension-paragraph": "2.2.4", - "@tiptap/extension-placeholder": "2.2.4", - "@tiptap/extension-strike": "2.2.4", - "@tiptap/extension-text": "2.2.4", - "@tiptap/pm": "2.2.4", - "@tiptap/react": "2.2.4", - "@tiptap/suggestion": "2.2.4", - "hast-util-to-html": "^9.0.0", + "version": "0.2.5-alpha.6", + "resolved": "https://registry.npmjs.org/@matters/matters-editor/-/matters-editor-0.2.5-alpha.6.tgz", + "integrity": "sha512-074GixLcKTQeUH0e9+NEKaiPy8uXAlckQkASOpUj2V8VslEA/v4xC3BJzANeFZpuNAnYleSzn7DdM10RyEUBHw==", + "dependencies": { + "@tiptap/core": "2.4.0", + "@tiptap/extension-blockquote": "2.4.0", + "@tiptap/extension-bullet-list": "2.4.0", + "@tiptap/extension-code": "2.4.0", + "@tiptap/extension-code-block": "2.4.0", + "@tiptap/extension-document": "2.4.0", + "@tiptap/extension-gapcursor": "2.4.0", + "@tiptap/extension-hard-break": "2.4.0", + "@tiptap/extension-heading": "2.4.0", + "@tiptap/extension-history": "2.4.0", + "@tiptap/extension-horizontal-rule": "2.4.0", + "@tiptap/extension-list-item": "2.4.0", + "@tiptap/extension-ordered-list": "2.4.0", + "@tiptap/extension-paragraph": "2.4.0", + "@tiptap/extension-placeholder": "2.4.0", + "@tiptap/extension-strike": "2.4.0", + "@tiptap/extension-text": "2.4.0", + "@tiptap/pm": "2.4.0", + "@tiptap/react": "2.4.0", + "@tiptap/suggestion": "2.4.0", + "hast-util-to-html": "^9.0.1", "linkifyjs": "^4.1.3", "mdast-util-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", @@ -5053,10 +5053,11 @@ "remark-rehype": "^11.1.0", "remark-stringify": "^11.0.0", "unified": "^11.0.4", - "zeed-dom": "^0.12.10" + "validator": "^13.12.0", + "zeed-dom": "^0.13.3" }, "engines": { - "node": ">=16.14 <19.0" + "node": ">=18.19 <19.0" }, "peerDependencies": { "react": ">=17.0.0", @@ -5609,9 +5610,9 @@ } }, "node_modules/@tiptap/core": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.2.4.tgz", - "integrity": "sha512-cRrI8IlLIhCE1hacBQzXIC8dsRvGq6a4lYWQK/BaHuZg21CG7szp3Vd8Ix+ra1f5v0xPOT+Hy+QFNQooRMKMCw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.4.0.tgz", + "integrity": "sha512-YJSahk8pkxpCs8SflCZfTnJpE7IPyUWIylfgXM2DefjRQa5DZ+c6sNY0s/zbxKYFQ6AuHVX40r9pCfcqHChGxQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5621,9 +5622,9 @@ } }, "node_modules/@tiptap/extension-blockquote": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.2.4.tgz", - "integrity": "sha512-FrfPnn0VgVrUwWLwja1afX99JGLp6PE9ThVcmri+tLwUZQvTTVcCvHoCdOakav3/nge1+aV4iE3tQdyq1tWI9Q==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.4.0.tgz", + "integrity": "sha512-nJJy4KsPgQqWTTDOWzFRdjCfG5+QExfZj44dulgDFNh+E66xhamnbM70PklllXJgEcge7xmT5oKM0gKls5XgFw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5633,9 +5634,9 @@ } }, "node_modules/@tiptap/extension-bubble-menu": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.2.4.tgz", - "integrity": "sha512-Nx1fS9jcFlhxaTDYlnayz2UulhK6CMaePc36+7PQIVI+u20RhgTCRNr25zKNemvsiM0RPZZVUjlHkxC0l5as1Q==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.4.0.tgz", + "integrity": "sha512-s99HmttUtpW3rScWq8rqk4+CGCwergNZbHLTkF6Rp6TSboMwfp+rwL5Q/JkcAG9KGLso1vGyXKbt1xHOvm8zMw==", "dependencies": { "tippy.js": "^6.3.7" }, @@ -5649,9 +5650,9 @@ } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.2.4.tgz", - "integrity": "sha512-z/MPmW8bhRougMuorl6MAQBXeK4rhlP+jBWlNwT+CT8h5IkXqPnDbM1sZeagp2nYfVV6Yc4RWpzimqHHtGnYTA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.4.0.tgz", + "integrity": "sha512-9S5DLIvFRBoExvmZ+/ErpTvs4Wf1yOEs8WXlKYUCcZssK7brTFj99XDwpHFA29HKDwma5q9UHhr2OB2o0JYAdw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5661,9 +5662,9 @@ } }, "node_modules/@tiptap/extension-code": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.2.4.tgz", - "integrity": "sha512-JB4SJ2mUU/9qXFUf+K5K9szvovnN9AIcCb0f0UlcVBuddKHSqCl3wO3QJgYt44BfQTLMNuyzr+zVqfFd6BNt/g==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.4.0.tgz", + "integrity": "sha512-wjhBukuiyJMq4cTcK3RBTzUPV24k5n1eEPlpmzku6ThwwkMdwynnMGMAmSF3fErh3AOyOUPoTTjgMYN2d10SJA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5673,9 +5674,9 @@ } }, "node_modules/@tiptap/extension-code-block": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.2.4.tgz", - "integrity": "sha512-h6WV9TmaBEZmvqe1ezMR83DhCPUap6P2mSR5pwVk0WVq6rvZjfgU0iF3EetBJOeDgPlz7cNe2NMDfVb1nGTM/g==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.4.0.tgz", + "integrity": "sha512-QWGdv1D56TBGbbJSj2cIiXGJEKguPiAl9ONzJ/Ql1ZksiQsYwx0YHriXX6TOC//T4VIf6NSClHEtwtxWBQ/Csg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5686,9 +5687,9 @@ } }, "node_modules/@tiptap/extension-document": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.2.4.tgz", - "integrity": "sha512-z+05xGK0OFoXV1GL+/8bzcZuWMdMA3+EKwk5c+iziG60VZcvGTF7jBRsZidlu9Oaj0cDwWHCeeo6L9SgSh6i2A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.4.0.tgz", + "integrity": "sha512-3jRodQJZDGbXlRPERaloS+IERg/VwzpC1IO6YSJR9jVIsBO6xC29P3cKTQlg1XO7p6ZH/0ksK73VC5BzzTwoHg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5698,9 +5699,9 @@ } }, "node_modules/@tiptap/extension-floating-menu": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.2.4.tgz", - "integrity": "sha512-U25l7PEzOmlAPugNRl8t8lqyhQZS6W/+3f92+FdwW9qXju3i62iX/3OGCC3Gv+vybmQ4fbZmMjvl+VDfenNi3A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.4.0.tgz", + "integrity": "sha512-vLb9v+htbHhXyty0oaXjT3VC8St4xuGSHWUB9GuAJAQ+NajIO6rBPbLUmm9qM0Eh2zico5mpSD1Qtn5FM6xYzg==", "dependencies": { "tippy.js": "^6.3.7" }, @@ -5714,9 +5715,9 @@ } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.2.4.tgz", - "integrity": "sha512-Y6htT/RDSqkQ1UwG2Ia+rNVRvxrKPOs3RbqKHPaWr3vbFWwhHyKhMCvi/FqfI3d5pViVHOZQ7jhb5hT/a0BmNw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.4.0.tgz", + "integrity": "sha512-F4y/0J2lseohkFUw9P2OpKhrJ6dHz69ZScABUvcHxjznJLd6+0Zt7014Lw5PA8/m2d/w0fX8LZQ88pZr4quZPQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5727,9 +5728,9 @@ } }, "node_modules/@tiptap/extension-hard-break": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.2.4.tgz", - "integrity": "sha512-FPvS57GcqHIeLbPKGJa3gnH30Xw+YB1PXXnAWG2MpnMtc2Vtj1l5xaYYBZB+ADdXLAlU0YMbKhFLQO4+pg1Isg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.4.0.tgz", + "integrity": "sha512-3+Z6zxevtHza5IsDBZ4lZqvNR3Kvdqwxq/QKCKu9UhJN1DUjsg/l1Jn2NilSQ3NYkBYh2yJjT8CMo9pQIu776g==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5739,9 +5740,9 @@ } }, "node_modules/@tiptap/extension-heading": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.2.4.tgz", - "integrity": "sha512-gkq7Ns2FcrOCRq7Q+VRYt5saMt2R9g4REAtWy/jEevJ5UV5vA2AiGnYDmxwAkHutoYU0sAUkjqx37wE0wpamNw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.4.0.tgz", + "integrity": "sha512-fYkyP/VMo7YHO76YVrUjd95Qeo0cubWn/Spavmwm1gLTHH/q7xMtbod2Z/F0wd6QHnc7+HGhO7XAjjKWDjldaw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5751,9 +5752,9 @@ } }, "node_modules/@tiptap/extension-history": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.2.4.tgz", - "integrity": "sha512-FDM32XYF5NU4mzh+fJ8w2CyUqv0l2Nl15sd6fOhQkVxSj8t57z+DUXc9ZR3zkH+1RAagYJo/2Gu3e99KpMr0tg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.4.0.tgz", + "integrity": "sha512-gr5qsKAXEVGr1Lyk1598F7drTaEtAxqZiuuSwTCzZzkiwgEQsWMWTWc9F8FlneCEaqe1aIYg6WKWlmYPaFwr0w==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5764,9 +5765,9 @@ } }, "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.2.4.tgz", - "integrity": "sha512-iCRHjFQQHApWg3R4fkKkJQhWEOdu1Fdc4YEAukdOXPSg3fg36IwjvsMXjt9SYBtVZ+iio3rORCZGXyMvgCH9uw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.4.0.tgz", + "integrity": "sha512-yDgxy+YxagcEsBbdWvbQiXYxsv3noS1VTuGwc9G7ZK9xPmBHJ5y0agOkB7HskwsZvJHoaSqNRsh7oZTkf0VR3g==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5777,9 +5778,9 @@ } }, "node_modules/@tiptap/extension-list-item": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.2.4.tgz", - "integrity": "sha512-lPLKGKsHpM9ClUa8n7GEUn8pG6HCYU0vFruIy3l2t6jZdHkrgBnYtVGMZ13K8UDnj/hlAlccxku0D0P4mA1Vrg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.4.0.tgz", + "integrity": "sha512-reUVUx+2cI2NIAqMZhlJ9uK/+zvRzm1GTmlU2Wvzwc7AwLN4yemj6mBDsmBLEXAKPvitfLh6EkeHaruOGymQtg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5789,9 +5790,9 @@ } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.2.4.tgz", - "integrity": "sha512-TpFy140O9Af1JciXt+xwqYUXxcJ6YG8zi/B5UDJujp+FH5sCmlYYBBnWxiFMhVaj6yEmA2eafu1qUkic/1X5Aw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.4.0.tgz", + "integrity": "sha512-Zo0c9M0aowv+2+jExZiAvhCB83GZMjZsxywmuOrdUbq5EGYKb7q8hDyN3hkrktVHr9UPXdPAYTmLAHztTOHYRA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5801,9 +5802,9 @@ } }, "node_modules/@tiptap/extension-paragraph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.2.4.tgz", - "integrity": "sha512-m1KwyvTNJxsq7StbspbcOhxO4Wk4YpElDbqOouWi+H4c8azdpI5Pn96ZqhFeE9bSyjByg6OcB/wqoJsLbeFWdQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.4.0.tgz", + "integrity": "sha512-+yse0Ow67IRwcACd9K/CzBcxlpr9OFnmf0x9uqpaWt1eHck1sJnti6jrw5DVVkyEBHDh/cnkkV49gvctT/NyCw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5813,9 +5814,9 @@ } }, "node_modules/@tiptap/extension-placeholder": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.2.4.tgz", - "integrity": "sha512-UL4Fn9T33SoS7vdI3NnSxBJVeGUIgCIutgXZZ5J8CkcRoDIeS78z492z+6J+qGctHwTd0xUL5NzNJI82HfiTdg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.4.0.tgz", + "integrity": "sha512-SmWOjgWpmhFt0BPOnL65abCUH0wS5yksUJgtANn5bQoHF4HFSsyl7ETRmgf0ykxdjc7tzOg31FfpWVH4wzKSYg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5826,9 +5827,9 @@ } }, "node_modules/@tiptap/extension-strike": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.2.4.tgz", - "integrity": "sha512-/a2EwQgA+PpG17V2tVRspcrIY0SN3blwcgM7lxdW4aucGkqSKnf7+91dkhQEwCZ//o8kv9mBCyRoCUcGy6S5Xg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.4.0.tgz", + "integrity": "sha512-pE1uN/fQPOMS3i+zxPYMmPmI3keubnR6ivwM+KdXWOMnBiHl9N4cNpJgq1n2eUUGKLurC2qrQHpnVyGAwBS6Vg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5838,9 +5839,9 @@ } }, "node_modules/@tiptap/extension-text": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.2.4.tgz", - "integrity": "sha512-NlKHMPnRJXB+0AGtDlU0P2Pg+SdesA2lMMd7JzDUgJgL7pX2jOb8eUqSeOjFKuSzFSqYfH6C3o6mQiNhuQMv+g==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.4.0.tgz", + "integrity": "sha512-LV0bvE+VowE8IgLca7pM8ll7quNH+AgEHRbSrsI3SHKDCYB9gTHMjWaAkgkUVaO1u0IfCrjnCLym/PqFKa+vvg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -5850,9 +5851,9 @@ } }, "node_modules/@tiptap/pm": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.2.4.tgz", - "integrity": "sha512-Po0klR165zgtinhVp1nwMubjyKx6gAY9kH3IzcniYLCkqhPgiqnAcCr61TBpp4hfK8YURBS4ihvCB1dyfCyY8A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.4.0.tgz", + "integrity": "sha512-B1HMEqGS4MzIVXnpgRZDLm30mxDWj51LkBT/if1XD+hj5gm8B9Q0c84bhvODX6KIs+c6z+zsY9VkVu8w9Yfgxg==", "dependencies": { "prosemirror-changeset": "^2.2.1", "prosemirror-collab": "^1.3.1", @@ -5879,12 +5880,12 @@ } }, "node_modules/@tiptap/react": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.2.4.tgz", - "integrity": "sha512-HkYmMZWcETPZn3KpzdDg/ns2TKeFh54TvtCEInA4ljYtWGLoZc/A+KaiEtMIgVs+Mo1XwrhuoNGjL9c0OK2HJw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.4.0.tgz", + "integrity": "sha512-baxnIr6Dy+5iGagOEIKFeHzdl1ZRa6Cg+SJ3GDL/BVLpO6KiCM3Mm5ymB726UKP1w7icrBiQD2fGY3Bx8KaiSA==", "dependencies": { - "@tiptap/extension-bubble-menu": "^2.2.4", - "@tiptap/extension-floating-menu": "^2.2.4" + "@tiptap/extension-bubble-menu": "^2.4.0", + "@tiptap/extension-floating-menu": "^2.4.0" }, "funding": { "type": "github", @@ -5898,9 +5899,9 @@ } }, "node_modules/@tiptap/suggestion": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-2.2.4.tgz", - "integrity": "sha512-g6HHsKM6K3asW+ZlwMYyLCRqCRaswoliZOQofY4iZt5ru5HNTSzm3YW4XSyW5RGXJIuc319yyrOFgtJ3Fyu5rQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-2.4.0.tgz", + "integrity": "sha512-6dCkjbL8vIzcLWtS6RCBx0jlYPKf2Beuyq5nNLrDDZZuyJow5qJAY0eGu6Xomp9z0WDK/BYOxT4hHNoGMDkoAg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -12197,9 +12198,9 @@ "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" }, "node_modules/hast-util-to-html": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.0.tgz", - "integrity": "sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.1.tgz", + "integrity": "sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -16596,16 +16597,16 @@ } }, "node_modules/markdown-it": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz", - "integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", - "uc.micro": "^2.0.0" + "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" @@ -19387,9 +19388,9 @@ } }, "node_modules/prosemirror-history": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.3.2.tgz", - "integrity": "sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.0.tgz", + "integrity": "sha512-UUiGzDVcqo1lovOPdi9YxxUps3oBFWAIYkXLu3Ot+JPv1qzVogRbcizxK3LhHmtaUxclohgiOVesRw5QSlMnbQ==", "dependencies": { "prosemirror-state": "^1.2.2", "prosemirror-transform": "^1.0.0", @@ -19416,12 +19417,12 @@ } }, "node_modules/prosemirror-markdown": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.12.0.tgz", - "integrity": "sha512-6F5HS8Z0HDYiS2VQDZzfZP6A0s/I0gbkJy8NCzzDMtcsz3qrfqyroMMeoSjAmOhDITyon11NbXSzztfKi+frSQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.0.tgz", + "integrity": "sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g==", "dependencies": { "markdown-it": "^14.0.0", - "prosemirror-model": "^1.0.0" + "prosemirror-model": "^1.20.0" } }, "node_modules/prosemirror-menu": { @@ -19436,9 +19437,9 @@ } }, "node_modules/prosemirror-model": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.4.tgz", - "integrity": "sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.21.1.tgz", + "integrity": "sha512-IVBAuMqOfltTr7yPypwpfdGT+6rGAteVOw2FO6GEvCGGa1ZwxLseqC1Eax/EChDvG/xGquB2d/hLdgh3THpsYg==", "dependencies": { "orderedmap": "^2.0.0" } @@ -19452,9 +19453,9 @@ } }, "node_modules/prosemirror-schema-list": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz", - "integrity": "sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.4.0.tgz", + "integrity": "sha512-nZOIq/AkBSzCENxUyLm5ltWE53e2PLk65ghMN8qLQptOmDVixZlPqtMeQdiNw0odL9vNpalEjl3upgRkuJ/Jyw==", "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", @@ -19509,19 +19510,19 @@ } }, "node_modules/prosemirror-transform": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz", - "integrity": "sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.9.0.tgz", + "integrity": "sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg==", "dependencies": { - "prosemirror-model": "^1.0.0" + "prosemirror-model": "^1.21.0" } }, "node_modules/prosemirror-view": { - "version": "1.33.1", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.1.tgz", - "integrity": "sha512-62qkYgSJIkwIMMCpuGuPzc52DiK1Iod6TWoIMxP4ja6BTD4yO8kCUL64PZ/WhH/dJ9fW0CDO39FhH1EMyhUFEg==", + "version": "1.33.8", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.8.tgz", + "integrity": "sha512-4PhMr/ufz2cdvFgpUAnZfs+0xij3RsFysreeG9V/utpwX7AJtYCDVyuRxzWoMJIEf4C7wVihuBNMPpFLPCiLQw==", "dependencies": { - "prosemirror-model": "^1.16.0", + "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } @@ -22559,9 +22560,9 @@ } }, "node_modules/validator": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", - "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", "engines": { "node": ">= 0.10" } @@ -23228,11 +23229,12 @@ } }, "node_modules/zeed-dom": { - "version": "0.12.10", - "resolved": "https://registry.npmjs.org/zeed-dom/-/zeed-dom-0.12.10.tgz", - "integrity": "sha512-bFao9LxLVC8BOfLS9OGv/JHVDQ+JrR+opn1ZAvcFceGdpAviUurGxE5RQaLH+fGJyOmmpv71OIr92QdcSwLPBg==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/zeed-dom/-/zeed-dom-0.13.3.tgz", + "integrity": "sha512-RO/Bevz/Q2xn4yKX2JBEry7LUoVGzO2nZmkLe7PM7G1clffjTcjszj6iJpir0QqjVC31I2P5U0MZCgpSfoE13Q==", "dependencies": { - "css-what": "^6.1.0" + "css-what": "^6.1.0", + "entities": "^4.5.0" }, "engines": { "node": ">=14.13.1" @@ -26879,31 +26881,31 @@ } }, "@matters/matters-editor": { - "version": "0.2.5-alpha.0", - "resolved": "https://registry.npmjs.org/@matters/matters-editor/-/matters-editor-0.2.5-alpha.0.tgz", - "integrity": "sha512-lPFGJG3pPa5CkxqExgObO+3zz3GY6D6/oFNB8KILhXpwuB7y454VP6n1ez+Wn1rdWAxbS4qLGuMslfKOCFzfnA==", - "requires": { - "@tiptap/core": "2.2.4", - "@tiptap/extension-blockquote": "2.2.4", - "@tiptap/extension-bullet-list": "2.2.4", - "@tiptap/extension-code": "2.2.4", - "@tiptap/extension-code-block": "2.2.4", - "@tiptap/extension-document": "2.2.4", - "@tiptap/extension-gapcursor": "2.2.4", - "@tiptap/extension-hard-break": "2.2.4", - "@tiptap/extension-heading": "2.2.4", - "@tiptap/extension-history": "2.2.4", - "@tiptap/extension-horizontal-rule": "2.2.4", - "@tiptap/extension-list-item": "2.2.4", - "@tiptap/extension-ordered-list": "2.2.4", - "@tiptap/extension-paragraph": "2.2.4", - "@tiptap/extension-placeholder": "2.2.4", - "@tiptap/extension-strike": "2.2.4", - "@tiptap/extension-text": "2.2.4", - "@tiptap/pm": "2.2.4", - "@tiptap/react": "2.2.4", - "@tiptap/suggestion": "2.2.4", - "hast-util-to-html": "^9.0.0", + "version": "0.2.5-alpha.6", + "resolved": "https://registry.npmjs.org/@matters/matters-editor/-/matters-editor-0.2.5-alpha.6.tgz", + "integrity": "sha512-074GixLcKTQeUH0e9+NEKaiPy8uXAlckQkASOpUj2V8VslEA/v4xC3BJzANeFZpuNAnYleSzn7DdM10RyEUBHw==", + "requires": { + "@tiptap/core": "2.4.0", + "@tiptap/extension-blockquote": "2.4.0", + "@tiptap/extension-bullet-list": "2.4.0", + "@tiptap/extension-code": "2.4.0", + "@tiptap/extension-code-block": "2.4.0", + "@tiptap/extension-document": "2.4.0", + "@tiptap/extension-gapcursor": "2.4.0", + "@tiptap/extension-hard-break": "2.4.0", + "@tiptap/extension-heading": "2.4.0", + "@tiptap/extension-history": "2.4.0", + "@tiptap/extension-horizontal-rule": "2.4.0", + "@tiptap/extension-list-item": "2.4.0", + "@tiptap/extension-ordered-list": "2.4.0", + "@tiptap/extension-paragraph": "2.4.0", + "@tiptap/extension-placeholder": "2.4.0", + "@tiptap/extension-strike": "2.4.0", + "@tiptap/extension-text": "2.4.0", + "@tiptap/pm": "2.4.0", + "@tiptap/react": "2.4.0", + "@tiptap/suggestion": "2.4.0", + "hast-util-to-html": "^9.0.1", "linkifyjs": "^4.1.3", "mdast-util-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", @@ -26923,7 +26925,8 @@ "remark-rehype": "^11.1.0", "remark-stringify": "^11.0.0", "unified": "^11.0.4", - "zeed-dom": "^0.12.10" + "validator": "^13.12.0", + "zeed-dom": "^0.13.3" } }, "@matters/passport-likecoin": { @@ -27362,110 +27365,110 @@ } }, "@tiptap/core": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.2.4.tgz", - "integrity": "sha512-cRrI8IlLIhCE1hacBQzXIC8dsRvGq6a4lYWQK/BaHuZg21CG7szp3Vd8Ix+ra1f5v0xPOT+Hy+QFNQooRMKMCw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.4.0.tgz", + "integrity": "sha512-YJSahk8pkxpCs8SflCZfTnJpE7IPyUWIylfgXM2DefjRQa5DZ+c6sNY0s/zbxKYFQ6AuHVX40r9pCfcqHChGxQ==" }, "@tiptap/extension-blockquote": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.2.4.tgz", - "integrity": "sha512-FrfPnn0VgVrUwWLwja1afX99JGLp6PE9ThVcmri+tLwUZQvTTVcCvHoCdOakav3/nge1+aV4iE3tQdyq1tWI9Q==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.4.0.tgz", + "integrity": "sha512-nJJy4KsPgQqWTTDOWzFRdjCfG5+QExfZj44dulgDFNh+E66xhamnbM70PklllXJgEcge7xmT5oKM0gKls5XgFw==" }, "@tiptap/extension-bubble-menu": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.2.4.tgz", - "integrity": "sha512-Nx1fS9jcFlhxaTDYlnayz2UulhK6CMaePc36+7PQIVI+u20RhgTCRNr25zKNemvsiM0RPZZVUjlHkxC0l5as1Q==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.4.0.tgz", + "integrity": "sha512-s99HmttUtpW3rScWq8rqk4+CGCwergNZbHLTkF6Rp6TSboMwfp+rwL5Q/JkcAG9KGLso1vGyXKbt1xHOvm8zMw==", "requires": { "tippy.js": "^6.3.7" } }, "@tiptap/extension-bullet-list": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.2.4.tgz", - "integrity": "sha512-z/MPmW8bhRougMuorl6MAQBXeK4rhlP+jBWlNwT+CT8h5IkXqPnDbM1sZeagp2nYfVV6Yc4RWpzimqHHtGnYTA==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.4.0.tgz", + "integrity": "sha512-9S5DLIvFRBoExvmZ+/ErpTvs4Wf1yOEs8WXlKYUCcZssK7brTFj99XDwpHFA29HKDwma5q9UHhr2OB2o0JYAdw==" }, "@tiptap/extension-code": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.2.4.tgz", - "integrity": "sha512-JB4SJ2mUU/9qXFUf+K5K9szvovnN9AIcCb0f0UlcVBuddKHSqCl3wO3QJgYt44BfQTLMNuyzr+zVqfFd6BNt/g==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.4.0.tgz", + "integrity": "sha512-wjhBukuiyJMq4cTcK3RBTzUPV24k5n1eEPlpmzku6ThwwkMdwynnMGMAmSF3fErh3AOyOUPoTTjgMYN2d10SJA==" }, "@tiptap/extension-code-block": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.2.4.tgz", - "integrity": "sha512-h6WV9TmaBEZmvqe1ezMR83DhCPUap6P2mSR5pwVk0WVq6rvZjfgU0iF3EetBJOeDgPlz7cNe2NMDfVb1nGTM/g==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.4.0.tgz", + "integrity": "sha512-QWGdv1D56TBGbbJSj2cIiXGJEKguPiAl9ONzJ/Ql1ZksiQsYwx0YHriXX6TOC//T4VIf6NSClHEtwtxWBQ/Csg==" }, "@tiptap/extension-document": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.2.4.tgz", - "integrity": "sha512-z+05xGK0OFoXV1GL+/8bzcZuWMdMA3+EKwk5c+iziG60VZcvGTF7jBRsZidlu9Oaj0cDwWHCeeo6L9SgSh6i2A==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.4.0.tgz", + "integrity": "sha512-3jRodQJZDGbXlRPERaloS+IERg/VwzpC1IO6YSJR9jVIsBO6xC29P3cKTQlg1XO7p6ZH/0ksK73VC5BzzTwoHg==" }, "@tiptap/extension-floating-menu": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.2.4.tgz", - "integrity": "sha512-U25l7PEzOmlAPugNRl8t8lqyhQZS6W/+3f92+FdwW9qXju3i62iX/3OGCC3Gv+vybmQ4fbZmMjvl+VDfenNi3A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.4.0.tgz", + "integrity": "sha512-vLb9v+htbHhXyty0oaXjT3VC8St4xuGSHWUB9GuAJAQ+NajIO6rBPbLUmm9qM0Eh2zico5mpSD1Qtn5FM6xYzg==", "requires": { "tippy.js": "^6.3.7" } }, "@tiptap/extension-gapcursor": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.2.4.tgz", - "integrity": "sha512-Y6htT/RDSqkQ1UwG2Ia+rNVRvxrKPOs3RbqKHPaWr3vbFWwhHyKhMCvi/FqfI3d5pViVHOZQ7jhb5hT/a0BmNw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.4.0.tgz", + "integrity": "sha512-F4y/0J2lseohkFUw9P2OpKhrJ6dHz69ZScABUvcHxjznJLd6+0Zt7014Lw5PA8/m2d/w0fX8LZQ88pZr4quZPQ==" }, "@tiptap/extension-hard-break": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.2.4.tgz", - "integrity": "sha512-FPvS57GcqHIeLbPKGJa3gnH30Xw+YB1PXXnAWG2MpnMtc2Vtj1l5xaYYBZB+ADdXLAlU0YMbKhFLQO4+pg1Isg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.4.0.tgz", + "integrity": "sha512-3+Z6zxevtHza5IsDBZ4lZqvNR3Kvdqwxq/QKCKu9UhJN1DUjsg/l1Jn2NilSQ3NYkBYh2yJjT8CMo9pQIu776g==" }, "@tiptap/extension-heading": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.2.4.tgz", - "integrity": "sha512-gkq7Ns2FcrOCRq7Q+VRYt5saMt2R9g4REAtWy/jEevJ5UV5vA2AiGnYDmxwAkHutoYU0sAUkjqx37wE0wpamNw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.4.0.tgz", + "integrity": "sha512-fYkyP/VMo7YHO76YVrUjd95Qeo0cubWn/Spavmwm1gLTHH/q7xMtbod2Z/F0wd6QHnc7+HGhO7XAjjKWDjldaw==" }, "@tiptap/extension-history": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.2.4.tgz", - "integrity": "sha512-FDM32XYF5NU4mzh+fJ8w2CyUqv0l2Nl15sd6fOhQkVxSj8t57z+DUXc9ZR3zkH+1RAagYJo/2Gu3e99KpMr0tg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.4.0.tgz", + "integrity": "sha512-gr5qsKAXEVGr1Lyk1598F7drTaEtAxqZiuuSwTCzZzkiwgEQsWMWTWc9F8FlneCEaqe1aIYg6WKWlmYPaFwr0w==" }, "@tiptap/extension-horizontal-rule": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.2.4.tgz", - "integrity": "sha512-iCRHjFQQHApWg3R4fkKkJQhWEOdu1Fdc4YEAukdOXPSg3fg36IwjvsMXjt9SYBtVZ+iio3rORCZGXyMvgCH9uw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.4.0.tgz", + "integrity": "sha512-yDgxy+YxagcEsBbdWvbQiXYxsv3noS1VTuGwc9G7ZK9xPmBHJ5y0agOkB7HskwsZvJHoaSqNRsh7oZTkf0VR3g==" }, "@tiptap/extension-list-item": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.2.4.tgz", - "integrity": "sha512-lPLKGKsHpM9ClUa8n7GEUn8pG6HCYU0vFruIy3l2t6jZdHkrgBnYtVGMZ13K8UDnj/hlAlccxku0D0P4mA1Vrg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.4.0.tgz", + "integrity": "sha512-reUVUx+2cI2NIAqMZhlJ9uK/+zvRzm1GTmlU2Wvzwc7AwLN4yemj6mBDsmBLEXAKPvitfLh6EkeHaruOGymQtg==" }, "@tiptap/extension-ordered-list": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.2.4.tgz", - "integrity": "sha512-TpFy140O9Af1JciXt+xwqYUXxcJ6YG8zi/B5UDJujp+FH5sCmlYYBBnWxiFMhVaj6yEmA2eafu1qUkic/1X5Aw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.4.0.tgz", + "integrity": "sha512-Zo0c9M0aowv+2+jExZiAvhCB83GZMjZsxywmuOrdUbq5EGYKb7q8hDyN3hkrktVHr9UPXdPAYTmLAHztTOHYRA==" }, "@tiptap/extension-paragraph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.2.4.tgz", - "integrity": "sha512-m1KwyvTNJxsq7StbspbcOhxO4Wk4YpElDbqOouWi+H4c8azdpI5Pn96ZqhFeE9bSyjByg6OcB/wqoJsLbeFWdQ==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.4.0.tgz", + "integrity": "sha512-+yse0Ow67IRwcACd9K/CzBcxlpr9OFnmf0x9uqpaWt1eHck1sJnti6jrw5DVVkyEBHDh/cnkkV49gvctT/NyCw==" }, "@tiptap/extension-placeholder": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.2.4.tgz", - "integrity": "sha512-UL4Fn9T33SoS7vdI3NnSxBJVeGUIgCIutgXZZ5J8CkcRoDIeS78z492z+6J+qGctHwTd0xUL5NzNJI82HfiTdg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.4.0.tgz", + "integrity": "sha512-SmWOjgWpmhFt0BPOnL65abCUH0wS5yksUJgtANn5bQoHF4HFSsyl7ETRmgf0ykxdjc7tzOg31FfpWVH4wzKSYg==" }, "@tiptap/extension-strike": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.2.4.tgz", - "integrity": "sha512-/a2EwQgA+PpG17V2tVRspcrIY0SN3blwcgM7lxdW4aucGkqSKnf7+91dkhQEwCZ//o8kv9mBCyRoCUcGy6S5Xg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.4.0.tgz", + "integrity": "sha512-pE1uN/fQPOMS3i+zxPYMmPmI3keubnR6ivwM+KdXWOMnBiHl9N4cNpJgq1n2eUUGKLurC2qrQHpnVyGAwBS6Vg==" }, "@tiptap/extension-text": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.2.4.tgz", - "integrity": "sha512-NlKHMPnRJXB+0AGtDlU0P2Pg+SdesA2lMMd7JzDUgJgL7pX2jOb8eUqSeOjFKuSzFSqYfH6C3o6mQiNhuQMv+g==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.4.0.tgz", + "integrity": "sha512-LV0bvE+VowE8IgLca7pM8ll7quNH+AgEHRbSrsI3SHKDCYB9gTHMjWaAkgkUVaO1u0IfCrjnCLym/PqFKa+vvg==" }, "@tiptap/pm": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.2.4.tgz", - "integrity": "sha512-Po0klR165zgtinhVp1nwMubjyKx6gAY9kH3IzcniYLCkqhPgiqnAcCr61TBpp4hfK8YURBS4ihvCB1dyfCyY8A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.4.0.tgz", + "integrity": "sha512-B1HMEqGS4MzIVXnpgRZDLm30mxDWj51LkBT/if1XD+hj5gm8B9Q0c84bhvODX6KIs+c6z+zsY9VkVu8w9Yfgxg==", "requires": { "prosemirror-changeset": "^2.2.1", "prosemirror-collab": "^1.3.1", @@ -27488,18 +27491,18 @@ } }, "@tiptap/react": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.2.4.tgz", - "integrity": "sha512-HkYmMZWcETPZn3KpzdDg/ns2TKeFh54TvtCEInA4ljYtWGLoZc/A+KaiEtMIgVs+Mo1XwrhuoNGjL9c0OK2HJw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.4.0.tgz", + "integrity": "sha512-baxnIr6Dy+5iGagOEIKFeHzdl1ZRa6Cg+SJ3GDL/BVLpO6KiCM3Mm5ymB726UKP1w7icrBiQD2fGY3Bx8KaiSA==", "requires": { - "@tiptap/extension-bubble-menu": "^2.2.4", - "@tiptap/extension-floating-menu": "^2.2.4" + "@tiptap/extension-bubble-menu": "^2.4.0", + "@tiptap/extension-floating-menu": "^2.4.0" } }, "@tiptap/suggestion": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-2.2.4.tgz", - "integrity": "sha512-g6HHsKM6K3asW+ZlwMYyLCRqCRaswoliZOQofY4iZt5ru5HNTSzm3YW4XSyW5RGXJIuc319yyrOFgtJ3Fyu5rQ==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-2.4.0.tgz", + "integrity": "sha512-6dCkjbL8vIzcLWtS6RCBx0jlYPKf2Beuyq5nNLrDDZZuyJow5qJAY0eGu6Xomp9z0WDK/BYOxT4hHNoGMDkoAg==" }, "@tootallnate/once": { "version": "1.1.2", @@ -32372,9 +32375,9 @@ } }, "hast-util-to-html": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.0.tgz", - "integrity": "sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.1.tgz", + "integrity": "sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==", "requires": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -35673,16 +35676,16 @@ "dev": true }, "markdown-it": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz", - "integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "requires": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", - "uc.micro": "^2.0.0" + "uc.micro": "^2.1.0" }, "dependencies": { "argparse": { @@ -37691,9 +37694,9 @@ } }, "prosemirror-history": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.3.2.tgz", - "integrity": "sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.0.tgz", + "integrity": "sha512-UUiGzDVcqo1lovOPdi9YxxUps3oBFWAIYkXLu3Ot+JPv1qzVogRbcizxK3LhHmtaUxclohgiOVesRw5QSlMnbQ==", "requires": { "prosemirror-state": "^1.2.2", "prosemirror-transform": "^1.0.0", @@ -37720,12 +37723,12 @@ } }, "prosemirror-markdown": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.12.0.tgz", - "integrity": "sha512-6F5HS8Z0HDYiS2VQDZzfZP6A0s/I0gbkJy8NCzzDMtcsz3qrfqyroMMeoSjAmOhDITyon11NbXSzztfKi+frSQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.0.tgz", + "integrity": "sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g==", "requires": { "markdown-it": "^14.0.0", - "prosemirror-model": "^1.0.0" + "prosemirror-model": "^1.20.0" } }, "prosemirror-menu": { @@ -37740,9 +37743,9 @@ } }, "prosemirror-model": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.4.tgz", - "integrity": "sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.21.1.tgz", + "integrity": "sha512-IVBAuMqOfltTr7yPypwpfdGT+6rGAteVOw2FO6GEvCGGa1ZwxLseqC1Eax/EChDvG/xGquB2d/hLdgh3THpsYg==", "requires": { "orderedmap": "^2.0.0" } @@ -37756,9 +37759,9 @@ } }, "prosemirror-schema-list": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz", - "integrity": "sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.4.0.tgz", + "integrity": "sha512-nZOIq/AkBSzCENxUyLm5ltWE53e2PLk65ghMN8qLQptOmDVixZlPqtMeQdiNw0odL9vNpalEjl3upgRkuJ/Jyw==", "requires": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", @@ -37804,19 +37807,19 @@ } }, "prosemirror-transform": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz", - "integrity": "sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.9.0.tgz", + "integrity": "sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg==", "requires": { - "prosemirror-model": "^1.0.0" + "prosemirror-model": "^1.21.0" } }, "prosemirror-view": { - "version": "1.33.1", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.1.tgz", - "integrity": "sha512-62qkYgSJIkwIMMCpuGuPzc52DiK1Iod6TWoIMxP4ja6BTD4yO8kCUL64PZ/WhH/dJ9fW0CDO39FhH1EMyhUFEg==", + "version": "1.33.8", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.8.tgz", + "integrity": "sha512-4PhMr/ufz2cdvFgpUAnZfs+0xij3RsFysreeG9V/utpwX7AJtYCDVyuRxzWoMJIEf4C7wVihuBNMPpFLPCiLQw==", "requires": { - "prosemirror-model": "^1.16.0", + "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } @@ -40171,9 +40174,9 @@ } }, "validator": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", - "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==" + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==" }, "value-or-promise": { "version": "1.0.12", @@ -40682,11 +40685,12 @@ "dev": true }, "zeed-dom": { - "version": "0.12.10", - "resolved": "https://registry.npmjs.org/zeed-dom/-/zeed-dom-0.12.10.tgz", - "integrity": "sha512-bFao9LxLVC8BOfLS9OGv/JHVDQ+JrR+opn1ZAvcFceGdpAviUurGxE5RQaLH+fGJyOmmpv71OIr92QdcSwLPBg==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/zeed-dom/-/zeed-dom-0.13.3.tgz", + "integrity": "sha512-RO/Bevz/Q2xn4yKX2JBEry7LUoVGzO2nZmkLe7PM7G1clffjTcjszj6iJpir0QqjVC31I2P5U0MZCgpSfoE13Q==", "requires": { - "css-what": "^6.1.0" + "css-what": "^6.1.0", + "entities": "^4.5.0" } }, "zwitch": { diff --git a/package.json b/package.json index ca7b7ede4..ab482feba 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "@keyv/redis": "^2.6.1", "@matters/apollo-response-cache": "^2.0.0-alpha.0", "@matters/ipns-site-generator": "^0.1.6", - "@matters/matters-editor": "^0.2.5-alpha.0", + "@matters/matters-editor": "^0.2.5-alpha.6", "@matters/passport-likecoin": "^1.0.0", "@matters/slugify": "^0.7.3", "@sendgrid/helpers": "^7.7.0", diff --git a/src/common/enums/index.ts b/src/common/enums/index.ts index 80311a18e..22b132103 100644 --- a/src/common/enums/index.ts +++ b/src/common/enums/index.ts @@ -233,6 +233,8 @@ export enum ActivityType { UserAddArticleTagActivity = 'UserAddArticleTagActivity', } +export const MAX_CONTENT_LINK_TEXT_LENGTH = 20 + export const MAX_ARTICLE_TITLE_LENGTH = 100 export const MAX_ARTICLE_SUMMARY_LENGTH = 200 export const MAX_ARTICLE_CONTENT_LENGTH = 50e3 diff --git a/src/connectors/queue/migration.ts b/src/connectors/queue/migration.ts index 0421bab1a..ea89d7ef7 100644 --- a/src/connectors/queue/migration.ts +++ b/src/connectors/queue/migration.ts @@ -8,6 +8,7 @@ import { import { ASSET_TYPE, + MAX_CONTENT_LINK_TEXT_LENGTH, MIGRATION_DELAY, MIGTATION_SOURCE, QUEUE_CONCURRENCY, @@ -129,7 +130,13 @@ export class MigrationQueue extends BaseQueue { sanitizeHTML(content, { maxHardBreaks: -1, maxSoftBreaks: -1, - }) + }), + { + truncate: { + maxLength: MAX_CONTENT_LINK_TEXT_LENGTH, + keepProtocol: false, + }, + } ), }) diff --git a/src/mutations/article/editArticle.ts b/src/mutations/article/editArticle.ts index 1921d5535..7081a266c 100644 --- a/src/mutations/article/editArticle.ts +++ b/src/mutations/article/editArticle.ts @@ -19,6 +19,7 @@ import { MAX_ARTICLE_REVISION_COUNT, NODE_TYPES, USER_STATE, + MAX_CONTENT_LINK_TEXT_LENGTH, } from 'common/enums' import { ArticleNotFoundError, @@ -317,7 +318,13 @@ const resolver: GQLMutationResolvers['editArticle'] = async ( const { content: lastContent } = await atomService.articleContentIdLoader.load(articleVersion.contentId) const processed = normalizeArticleHTML( - sanitizeHTML(content, { maxHardBreaks: -1, maxSoftBreaks: -1 }) + sanitizeHTML(content, { maxHardBreaks: -1, maxSoftBreaks: -1 }), + { + truncate: { + maxLength: MAX_CONTENT_LINK_TEXT_LENGTH, + keepProtocol: false, + }, + } ) const changed = processed !== lastContent diff --git a/src/mutations/article/publishArticle.ts b/src/mutations/article/publishArticle.ts index f695c9782..8af0ebed1 100644 --- a/src/mutations/article/publishArticle.ts +++ b/src/mutations/article/publishArticle.ts @@ -1,6 +1,15 @@ import type { GQLMutationResolvers } from 'definitions' -import { PUBLISH_STATE, USER_STATE } from 'common/enums' +import { + normalizeArticleHTML, + sanitizeHTML, +} from '@matters/matters-editor/transformers' + +import { + MAX_CONTENT_LINK_TEXT_LENGTH, + PUBLISH_STATE, + USER_STATE, +} from 'common/enums' import { DraftNotFoundError, ForbiddenByStateError, @@ -58,6 +67,15 @@ const resolver: GQLMutationResolvers['publishArticle'] = async ( } const draftPending = await draftService.baseUpdate(draft.id, { + content: normalizeArticleHTML( + sanitizeHTML(draft.content, { maxHardBreaks: -1, maxSoftBreaks: -1 }), + { + truncate: { + maxLength: MAX_CONTENT_LINK_TEXT_LENGTH, + keepProtocol: false, + }, + } + ), publishState: PUBLISH_STATE.pending, iscnPublish, })