feat: tiptap
This commit is contained in:
parent
eed8c0de2e
commit
bee001867f
|
|
@ -531,3 +531,11 @@ html[dir='rtl'] [dir='ltr'] {
|
|||
// padding: 0 !important;
|
||||
//}
|
||||
//
|
||||
|
||||
.ProseMirror {
|
||||
font-family: Arial;
|
||||
}
|
||||
|
||||
.ProseMirror:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
|
@ -248,7 +248,7 @@ export const AiVideo: FC<{
|
|||
{data.map((p: any) => (
|
||||
<li
|
||||
onClick={generateVideo(p)}
|
||||
key={p}
|
||||
key={p.identifier}
|
||||
className="hover:bg-sixth"
|
||||
>
|
||||
{p.title}
|
||||
|
|
|
|||
|
|
@ -166,7 +166,15 @@ const FirstStep: FC = (props) => {
|
|||
mutate={reloadCalendarView}
|
||||
date={dayjs.utc(load.date).local()}
|
||||
reopenModal={() => ({})}
|
||||
onlyValues={messages}
|
||||
onlyValues={messages.map((p: any) => {
|
||||
return {
|
||||
...p,
|
||||
content: p.content
|
||||
.split('\n')
|
||||
.map((line: string) => `<p>${line}</p>`)
|
||||
.join(''),
|
||||
};
|
||||
})}
|
||||
/>
|
||||
),
|
||||
size: '80%',
|
||||
|
|
|
|||
|
|
@ -75,17 +75,9 @@ export const BoldText: FC<{
|
|||
currentValue: string;
|
||||
}> = ({ editor }) => {
|
||||
const mark = () => {
|
||||
const selectedText = Editor.string(editor, editor.selection);
|
||||
const newText = Array.from(
|
||||
!selectedText ? prompt('What do you want to write?') || '' : selectedText
|
||||
)
|
||||
.map((char) => {
|
||||
// @ts-ignore
|
||||
return originalMap?.[char] || reverseMap?.[char] || char;
|
||||
})
|
||||
.join('');
|
||||
Transforms.insertText(editor, newText);
|
||||
ReactEditor.focus(editor);
|
||||
editor.commands.unsetUnderline();
|
||||
editor.commands.toggleBold();
|
||||
editor.commands.focus();
|
||||
};
|
||||
return (
|
||||
<div
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import React, {
|
|||
useState,
|
||||
ClipboardEvent,
|
||||
} from 'react';
|
||||
import { CopilotTextarea } from '@copilotkit/react-textarea';
|
||||
import clsx from 'clsx';
|
||||
import { useUser } from '@gitroom/frontend/components/layout/user.context';
|
||||
import { makeId } from '@gitroom/nestjs-libraries/services/make.is';
|
||||
|
|
@ -32,6 +31,98 @@ import { LinkedinCompanyPop } from '@gitroom/frontend/components/launches/helper
|
|||
import { useDropzone } from 'react-dropzone';
|
||||
import { useUppyUploader } from '@gitroom/frontend/components/media/new.uploader';
|
||||
import { Dashboard } from '@uppy/react';
|
||||
import {
|
||||
useEditor,
|
||||
EditorContent,
|
||||
Extension,
|
||||
Mark,
|
||||
mergeAttributes,
|
||||
Node,
|
||||
} from '@tiptap/react';
|
||||
import Document from '@tiptap/extension-document';
|
||||
import Bold from '@tiptap/extension-bold';
|
||||
import Text from '@tiptap/extension-text';
|
||||
import Paragraph from '@tiptap/extension-paragraph';
|
||||
import Underline from '@tiptap/extension-underline';
|
||||
import { stripHtmlValidation } from '@gitroom/helpers/utils/strip.html.validation';
|
||||
|
||||
const InterceptBoldShortcut = Extension.create({
|
||||
name: 'preventBoldWithUnderline',
|
||||
|
||||
addKeyboardShortcuts() {
|
||||
return {
|
||||
'Mod-b': () => {
|
||||
// For example, toggle bold while removing underline
|
||||
this.editor.commands.unsetUnderline();
|
||||
return this.editor.commands.toggleBold();
|
||||
},
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
const InterceptUnderlineShortcut = Extension.create({
|
||||
name: 'preventUnderlineWithUnderline',
|
||||
|
||||
addKeyboardShortcuts() {
|
||||
return {
|
||||
'Mod-u': () => {
|
||||
// For example, toggle bold while removing underline
|
||||
this.editor.commands.unsetBold();
|
||||
return this.editor.commands.toggleUnderline();
|
||||
},
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
const Span = Node.create({
|
||||
name: 'mention',
|
||||
|
||||
inline: true,
|
||||
group: 'inline',
|
||||
selectable: false,
|
||||
atom: true,
|
||||
|
||||
addAttributes() {
|
||||
return {
|
||||
linkedinId: {
|
||||
default: null,
|
||||
},
|
||||
label: {
|
||||
default: '',
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
parseHTML() {
|
||||
return [
|
||||
{
|
||||
tag: 'span[data-linkedin-id]',
|
||||
},
|
||||
];
|
||||
},
|
||||
|
||||
renderHTML({ HTMLAttributes }) {
|
||||
return [
|
||||
'span',
|
||||
mergeAttributes(HTMLAttributes, {
|
||||
'data-linkedin-id': HTMLAttributes.linkedinId,
|
||||
class: 'mention',
|
||||
}),
|
||||
`@${HTMLAttributes.label}`,
|
||||
];
|
||||
},
|
||||
|
||||
addNodeView() {
|
||||
return ({ HTMLAttributes }) => {
|
||||
const span = document.createElement('span');
|
||||
span.classList.add('mention');
|
||||
span.dataset.linkedinId = HTMLAttributes.linkedinId;
|
||||
span.innerText = `@${HTMLAttributes.label}`;
|
||||
return { dom: span };
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
export const EditorWrapper: FC<{
|
||||
totalPosts: number;
|
||||
value: string;
|
||||
|
|
@ -435,28 +526,65 @@ export const Editor: FC<{
|
|||
|
||||
const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop });
|
||||
|
||||
const editor = useEditor({
|
||||
extensions: [
|
||||
Document,
|
||||
Paragraph,
|
||||
Text,
|
||||
Underline,
|
||||
Bold,
|
||||
InterceptBoldShortcut,
|
||||
InterceptUnderlineShortcut,
|
||||
Span,
|
||||
],
|
||||
content: props.value || '',
|
||||
shouldRerenderOnTransaction: true,
|
||||
immediatelyRender: false,
|
||||
onUpdate: (innerProps) => {
|
||||
props?.onChange?.(innerProps.editor.getHTML());
|
||||
},
|
||||
});
|
||||
|
||||
const valueWithoutHtml = useMemo(() => {
|
||||
return stripHtmlValidation(props.value || '');
|
||||
}, [props.value]);
|
||||
|
||||
const addText = useCallback(
|
||||
(emoji: string) => {
|
||||
setTimeout(() => {
|
||||
// @ts-ignore
|
||||
Transforms.insertText(newRef?.current?.editor!, emoji);
|
||||
}, 10);
|
||||
editor?.commands.insertContent(emoji);
|
||||
editor?.commands.focus();
|
||||
},
|
||||
[props.value, id]
|
||||
);
|
||||
|
||||
const addLinkedinTag = useCallback((text: string) => {
|
||||
const id = text.split('(')[1].split(')')[0];
|
||||
const name = text.split('[')[1].split(']')[0];
|
||||
|
||||
editor
|
||||
?.chain()
|
||||
.focus()
|
||||
.insertContent({
|
||||
type: 'mention',
|
||||
attrs: {
|
||||
linkedinId: id,
|
||||
label: `@${name}`,
|
||||
},
|
||||
})
|
||||
.run();
|
||||
}, []);
|
||||
|
||||
if (!editor) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
<div className="relative bg-customColor2" id={id}>
|
||||
<div className="flex gap-[5px] bg-customColor55 border-b border-t border-customColor3 justify-center items-center p-[5px]">
|
||||
<SignatureBox editor={newRef?.current?.editor!} />
|
||||
<UText
|
||||
editor={newRef?.current?.editor!}
|
||||
currentValue={props.value!}
|
||||
/>
|
||||
<BoldText
|
||||
editor={newRef?.current?.editor!}
|
||||
currentValue={props.value!}
|
||||
/>
|
||||
<SignatureBox editor={editor} />
|
||||
<UText editor={editor} currentValue={props.value!} />
|
||||
<BoldText editor={editor} currentValue={props.value!} />
|
||||
<div
|
||||
className="select-none cursor-pointer w-[40px] p-[5px] text-center"
|
||||
onClick={() => setEmojiPickerOpen(!emojiPickerOpen)}
|
||||
|
|
@ -464,7 +592,7 @@ export const Editor: FC<{
|
|||
{'\uD83D\uDE00'}
|
||||
</div>
|
||||
{identifier === 'linkedin' || identifier === 'linkedin-page' ? (
|
||||
<LinkedinCompanyPop addText={addText} />
|
||||
<LinkedinCompanyPop addText={addLinkedinTag} />
|
||||
) : null}
|
||||
<div className="relative">
|
||||
<div className="absolute z-[200] top-[35px] -start-[50px]">
|
||||
|
|
@ -479,12 +607,14 @@ export const Editor: FC<{
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="relative">
|
||||
{validateChars && props.value.length === 0 && pictures?.length === 0 && (
|
||||
<div className="px-3 text-sm bg-red-600 !text-white mb-[4px]">
|
||||
Your post should have at least one character or one image.
|
||||
</div>
|
||||
)}
|
||||
<div className="relative cursor-text">
|
||||
{validateChars &&
|
||||
props.value.length === 0 &&
|
||||
pictures?.length === 0 && (
|
||||
<div className="px-3 text-sm bg-red-600 !text-white mb-[4px]">
|
||||
Your post should have at least one character or one image.
|
||||
</div>
|
||||
)}
|
||||
<div {...getRootProps()}>
|
||||
<div
|
||||
className={clsx(
|
||||
|
|
@ -494,32 +624,19 @@ export const Editor: FC<{
|
|||
>
|
||||
Drop your files here to upload
|
||||
</div>
|
||||
<CopilotTextarea
|
||||
disableBranding={true}
|
||||
ref={newRef}
|
||||
className={clsx(
|
||||
'!min-h-40 p-2 overflow-x-hidden scrollbar scrollbar-thumb-[#612AD5] bg-customColor2 outline-none',
|
||||
props.totalPosts > 1 && '!max-h-80'
|
||||
)}
|
||||
value={props.value}
|
||||
onChange={(e) => {
|
||||
props?.onChange?.(e.target.value);
|
||||
}}
|
||||
onPaste={paste}
|
||||
placeholder={t('write_your_reply', 'Write your post...')}
|
||||
autosuggestionsConfig={{
|
||||
textareaPurpose: `Assist me in writing social media posts.`,
|
||||
chatApiConfigs: {
|
||||
suggestionsApiConfig: {
|
||||
maxTokens: 20,
|
||||
stop: ['.', '?', '!'],
|
||||
},
|
||||
},
|
||||
disabled: user?.tier?.ai ? !autoComplete : true,
|
||||
}}
|
||||
/>
|
||||
<div className="px-[10px] pt-[10px]">
|
||||
<EditorContent editor={editor} />
|
||||
</div>
|
||||
|
||||
<div className="w-full h-[46px] overflow-hidden pointer-events-none absolute left-0">
|
||||
<div
|
||||
className="w-full h-[46px] overflow-hidden absolute left-0"
|
||||
onClick={() => {
|
||||
if (editor?.isFocused) {
|
||||
return;
|
||||
}
|
||||
editor?.commands?.focus('end');
|
||||
}}
|
||||
>
|
||||
<Dashboard
|
||||
height={46}
|
||||
uppy={uppy}
|
||||
|
|
@ -533,11 +650,19 @@ export const Editor: FC<{
|
|||
/>
|
||||
</div>
|
||||
<div className="w-full h-[46px] pointer-events-none" />
|
||||
<div className="flex bg-customColor2">
|
||||
<div
|
||||
className="flex bg-customColor2"
|
||||
onClick={() => {
|
||||
if (editor?.isFocused) {
|
||||
return;
|
||||
}
|
||||
editor?.commands?.focus('end');
|
||||
}}
|
||||
>
|
||||
{setImages && (
|
||||
<MultiMediaComponent
|
||||
allData={allValues}
|
||||
text={props.value}
|
||||
text={valueWithoutHtml}
|
||||
label={t('attachments', 'Attachments')}
|
||||
description=""
|
||||
value={props.pictures}
|
||||
|
|
@ -559,10 +684,10 @@ export const Editor: FC<{
|
|||
<div
|
||||
className={clsx(
|
||||
'text-end text-sm mt-1',
|
||||
props?.value?.length > props.totalChars && '!text-red-500'
|
||||
valueWithoutHtml.length > props.totalChars && '!text-red-500'
|
||||
)}
|
||||
>
|
||||
{props?.value?.length}/{props.totalChars}
|
||||
{valueWithoutHtml.length}/{props.totalChars}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ export const ThreadFinisher = () => {
|
|||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full mt-[40px]">
|
||||
<div className="w-full mt-[20px]">
|
||||
<div
|
||||
className={clsx(
|
||||
!slider && 'relative opacity-25 pointer-events-none editor'
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import { TopTitle } from '@gitroom/frontend/components/launches/helpers/top.titl
|
|||
import { SelectCustomer } from '@gitroom/frontend/components/launches/select.customer';
|
||||
import { CopilotPopup } from '@copilotkit/react-ui';
|
||||
import { DummyCodeComponent } from '@gitroom/frontend/components/new-launch/dummy.code.component';
|
||||
import { stripHtmlValidation } from '@gitroom/helpers/utils/strip.html.validation';
|
||||
|
||||
function countCharacters(text: string, type: string): number {
|
||||
if (type !== 'x') {
|
||||
|
|
@ -145,8 +146,10 @@ export const ManageModal: FC<AddEditModalProps> = (props) => {
|
|||
const notEnoughChars = checkAllValid.filter((p: any) => {
|
||||
return p.values.some((a: any) => {
|
||||
return (
|
||||
countCharacters(a.content, p?.integration?.identifier || '') ===
|
||||
0 && a.media?.length === 0
|
||||
countCharacters(
|
||||
stripHtmlValidation(a.content),
|
||||
p?.integration?.identifier || ''
|
||||
) === 0 && a.media?.length === 0
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -75,20 +75,9 @@ export const UText: FC<{
|
|||
currentValue: string;
|
||||
}> = ({ editor }) => {
|
||||
const mark = () => {
|
||||
const selectedText = Editor.string(editor, editor.selection);
|
||||
const setUnderline = selectedText.indexOf('̲') === -1;
|
||||
const newText = Array.from(
|
||||
!selectedText
|
||||
? prompt('What do you want to write?') || ''
|
||||
: selectedText.replace(/̲/g, '')
|
||||
)
|
||||
.map((char) => {
|
||||
// @ts-ignore
|
||||
return ((setUnderline ? underlineMap?.[char] : reverseMap?.[char]) || char);
|
||||
})
|
||||
.join('');
|
||||
Transforms.insertText(editor, newText);
|
||||
ReactEditor.focus(editor);
|
||||
editor.commands.unsetBold();
|
||||
editor.commands.toggleUnderline();
|
||||
editor.commands.focus();
|
||||
};
|
||||
return (
|
||||
<div
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@ export const SignatureBox: FC<{
|
|||
setShowModal(true);
|
||||
}, [showModal]);
|
||||
const appendValue = (val: string) => {
|
||||
Transforms.insertText(editor, '\n' + val);
|
||||
editor?.commands.insertContent("\n\n" + val);
|
||||
editor?.commands.focus();
|
||||
setShowModal(false);
|
||||
};
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -0,0 +1,166 @@
|
|||
import striptags from 'striptags';
|
||||
|
||||
const bold = {
|
||||
a: '𝗮',
|
||||
b: '𝗯',
|
||||
c: '𝗰',
|
||||
d: '𝗱',
|
||||
e: '𝗲',
|
||||
f: '𝗳',
|
||||
g: '𝗴',
|
||||
h: '𝗵',
|
||||
i: '𝗶',
|
||||
j: '𝗷',
|
||||
k: '𝗸',
|
||||
l: '𝗹',
|
||||
m: '𝗺',
|
||||
n: '𝗻',
|
||||
o: '𝗼',
|
||||
p: '𝗽',
|
||||
q: '𝗾',
|
||||
r: '𝗿',
|
||||
s: '𝘀',
|
||||
t: '𝘁',
|
||||
u: '𝘂',
|
||||
v: '𝘃',
|
||||
w: '𝘄',
|
||||
x: '𝘅',
|
||||
y: '𝘆',
|
||||
z: '𝘇',
|
||||
A: '𝗔',
|
||||
B: '𝗕',
|
||||
C: '𝗖',
|
||||
D: '𝗗',
|
||||
E: '𝗘',
|
||||
F: '𝗙',
|
||||
G: '𝗚',
|
||||
H: '𝗛',
|
||||
I: '𝗜',
|
||||
J: '𝗝',
|
||||
K: '𝗞',
|
||||
L: '𝗟',
|
||||
M: '𝗠',
|
||||
N: '𝗡',
|
||||
O: '𝗢',
|
||||
P: '𝗣',
|
||||
Q: '𝗤',
|
||||
R: '𝗥',
|
||||
S: '𝗦',
|
||||
T: '𝗧',
|
||||
U: '𝗨',
|
||||
V: '𝗩',
|
||||
W: '𝗪',
|
||||
X: '𝗫',
|
||||
Y: '𝗬',
|
||||
Z: '𝗭',
|
||||
'1': '𝟭',
|
||||
'2': '𝟮',
|
||||
'3': '𝟯',
|
||||
'4': '𝟰',
|
||||
'5': '𝟱',
|
||||
'6': '𝟲',
|
||||
'7': '𝟳',
|
||||
'8': '𝟴',
|
||||
'9': '𝟵',
|
||||
'0': '𝟬',
|
||||
};
|
||||
|
||||
const underlineMap = {
|
||||
a: 'a̲',
|
||||
b: 'b̲',
|
||||
c: 'c̲',
|
||||
d: 'd̲',
|
||||
e: 'e̲',
|
||||
f: 'f̲',
|
||||
g: 'g̲',
|
||||
h: 'h̲',
|
||||
i: 'i̲',
|
||||
j: 'j̲',
|
||||
k: 'k̲',
|
||||
l: 'l̲',
|
||||
m: 'm̲',
|
||||
n: 'n̲',
|
||||
o: 'o̲',
|
||||
p: 'p̲',
|
||||
q: 'q̲',
|
||||
r: 'r̲',
|
||||
s: 's̲',
|
||||
t: 't̲',
|
||||
u: 'u̲',
|
||||
v: 'v̲',
|
||||
w: 'w̲',
|
||||
x: 'x̲',
|
||||
y: 'y̲',
|
||||
z: 'z̲',
|
||||
A: 'A̲',
|
||||
B: 'B̲',
|
||||
C: 'C̲',
|
||||
D: 'D̲',
|
||||
E: 'E̲',
|
||||
F: 'F̲',
|
||||
G: 'G̲',
|
||||
H: 'H̲',
|
||||
I: 'I̲',
|
||||
J: 'J̲',
|
||||
K: 'K̲',
|
||||
L: 'L̲',
|
||||
M: 'M̲',
|
||||
N: 'N̲',
|
||||
O: 'O̲',
|
||||
P: 'P̲',
|
||||
Q: 'Q̲',
|
||||
R: 'R̲',
|
||||
S: 'S̲',
|
||||
T: 'T̲',
|
||||
U: 'U̲',
|
||||
V: 'V̲',
|
||||
W: 'W̲',
|
||||
X: 'X̲',
|
||||
Y: 'Y̲',
|
||||
Z: 'Z̲',
|
||||
'1': '1̲',
|
||||
'2': '2̲',
|
||||
'3': '3̲',
|
||||
'4': '4̲',
|
||||
'5': '5̲',
|
||||
'6': '6̲',
|
||||
'7': '7̲',
|
||||
'8': '8̲',
|
||||
'9': '9̲',
|
||||
'0': '0̲',
|
||||
};
|
||||
|
||||
export const stripHtmlValidation = (value: string, replaceBold = false): string => {
|
||||
const html = (value || '')
|
||||
.replace(/ /gi, ' ')
|
||||
.replace(/^<p[^>]*>/i, '')
|
||||
.replace(/<p[^>]*>/gi, '\n')
|
||||
.replace(/<\/p>/gi, '');
|
||||
|
||||
if (replaceBold) {
|
||||
return striptags(convertToAscii(html));
|
||||
}
|
||||
|
||||
// Strip all other tags
|
||||
return striptags(html);
|
||||
};
|
||||
|
||||
export const convertToAscii = (value: string): string => {
|
||||
return value
|
||||
.replace(/<strong>(.+?)<\/strong>/gi, (match, p1) => {
|
||||
const replacer = p1.split('').map((char: string) => {
|
||||
// @ts-ignore
|
||||
return bold?.[char] || char;
|
||||
});
|
||||
|
||||
return match.replace(p1, replacer.join(''));
|
||||
})
|
||||
.replace(/<u>(.+?)<\/u>/gi, (match, p1) => {
|
||||
const replacer = p1.split('').map((char: string) => {
|
||||
// @ts-ignore
|
||||
return underlineMap?.[char] || char;
|
||||
});
|
||||
|
||||
return match.replace(p1, replacer.join(''));
|
||||
});
|
||||
};
|
||||
|
|
@ -36,6 +36,7 @@ import { Readable } from 'stream';
|
|||
import { OpenaiService } from '@gitroom/nestjs-libraries/openai/openai.service';
|
||||
import { plainToInstance } from 'class-transformer';
|
||||
import { validate } from 'class-validator';
|
||||
import { stripHtmlValidation } from '@gitroom/helpers/utils/strip.html.validation';
|
||||
dayjs.extend(utc);
|
||||
|
||||
type PostWithConditionals = Post & {
|
||||
|
|
@ -466,7 +467,7 @@ export class PostsService {
|
|||
await Promise.all(
|
||||
(newPosts || []).map(async (p) => ({
|
||||
id: p.id,
|
||||
message: p.content,
|
||||
message: stripHtmlValidation(p.content, true),
|
||||
settings: JSON.parse(p.settings || '{}'),
|
||||
media: await this.updateMedia(
|
||||
p.id,
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import sharp from 'sharp';
|
|||
import { Plug } from '@gitroom/helpers/decorators/plug.decorator';
|
||||
import { timer } from '@gitroom/helpers/utils/timer';
|
||||
import axios from 'axios';
|
||||
import { stripHtmlValidation } from '@gitroom/helpers/utils/strip.html.validation';
|
||||
|
||||
async function reduceImageBySize(url: string, maxSizeKB = 976) {
|
||||
try {
|
||||
|
|
@ -311,13 +312,13 @@ export class BlueskyProvider extends SocialAbstract implements SocialProvider {
|
|||
|
||||
if (postDetails?.[0]?.settings?.active_thread_finisher) {
|
||||
const rt = new RichText({
|
||||
text: postDetails?.[0]?.settings?.thread_finisher,
|
||||
text: stripHtmlValidation(postDetails?.[0]?.settings?.thread_finisher, true),
|
||||
});
|
||||
|
||||
await rt.detectFacets(agent);
|
||||
|
||||
await agent.post({
|
||||
text: postDetails?.[0]?.settings?.thread_finisher,
|
||||
text: stripHtmlValidation(rt.text, true),
|
||||
facets: rt.facets,
|
||||
createdAt: new Date().toISOString(),
|
||||
embed: {
|
||||
|
|
@ -458,7 +459,7 @@ export class BlueskyProvider extends SocialAbstract implements SocialProvider {
|
|||
if (getThread.data.thread.post?.likeCount >= +fields.likesAmount) {
|
||||
await timer(2000);
|
||||
const rt = new RichText({
|
||||
text: fields.post,
|
||||
text: stripHtmlValidation(fields.post, true),
|
||||
});
|
||||
|
||||
await agent.post({
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import { SocialAbstract } from '@gitroom/nestjs-libraries/integrations/social.ab
|
|||
import { capitalize, chunk } from 'lodash';
|
||||
import { Plug } from '@gitroom/helpers/decorators/plug.decorator';
|
||||
import { Integration } from '@prisma/client';
|
||||
import { stripHtmlValidation } from '@gitroom/helpers/utils/strip.html.validation';
|
||||
|
||||
export class ThreadsProvider extends SocialAbstract implements SocialProvider {
|
||||
identifier = 'threads';
|
||||
|
|
@ -499,7 +500,7 @@ export class ThreadsProvider extends SocialAbstract implements SocialProvider {
|
|||
|
||||
const form = new FormData();
|
||||
form.append('media_type', 'TEXT');
|
||||
form.append('text', fields.post);
|
||||
form.append('text', stripHtmlValidation(fields.post, true));
|
||||
form.append('reply_to_id', id);
|
||||
form.append('access_token', integration.token);
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import { timer } from '@gitroom/helpers/utils/timer';
|
|||
import { PostPlug } from '@gitroom/helpers/decorators/post.plug';
|
||||
import dayjs from 'dayjs';
|
||||
import { uniqBy } from 'lodash';
|
||||
import { stripHtmlValidation } from '@gitroom/helpers/utils/strip.html.validation';
|
||||
|
||||
export class XProvider extends SocialAbstract implements SocialProvider {
|
||||
identifier = 'x';
|
||||
|
|
@ -149,7 +150,7 @@ export class XProvider extends SocialAbstract implements SocialProvider {
|
|||
await timer(2000);
|
||||
|
||||
await client.v2.tweet({
|
||||
text: fields.post,
|
||||
text: stripHtmlValidation(fields.post, true),
|
||||
reply: { in_reply_to_tweet_id: id },
|
||||
});
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -79,6 +79,14 @@
|
|||
"@swc/helpers": "0.5.13",
|
||||
"@sweetalert2/theme-dark": "^5.0.16",
|
||||
"@tailwindcss/postcss": "^4.1.7",
|
||||
"@tiptap/extension-bold": "^3.0.6",
|
||||
"@tiptap/extension-document": "^3.0.6",
|
||||
"@tiptap/extension-paragraph": "^3.0.6",
|
||||
"@tiptap/extension-text": "^3.0.6",
|
||||
"@tiptap/extension-underline": "^3.0.6",
|
||||
"@tiptap/pm": "^3.0.6",
|
||||
"@tiptap/react": "^3.0.6",
|
||||
"@tiptap/starter-kit": "^3.0.6",
|
||||
"@types/bcrypt": "^5.0.2",
|
||||
"@types/concat-stream": "^2.0.3",
|
||||
"@types/facebook-nodejs-business-sdk": "^20.0.2",
|
||||
|
|
|
|||
596
pnpm-lock.yaml
596
pnpm-lock.yaml
|
|
@ -114,6 +114,30 @@ importers:
|
|||
'@tailwindcss/postcss':
|
||||
specifier: ^4.1.7
|
||||
version: 4.1.11
|
||||
'@tiptap/extension-bold':
|
||||
specifier: ^3.0.6
|
||||
version: 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-document':
|
||||
specifier: ^3.0.6
|
||||
version: 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-paragraph':
|
||||
specifier: ^3.0.6
|
||||
version: 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-text':
|
||||
specifier: ^3.0.6
|
||||
version: 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-underline':
|
||||
specifier: ^3.0.6
|
||||
version: 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/pm':
|
||||
specifier: ^3.0.6
|
||||
version: 3.0.6
|
||||
'@tiptap/react':
|
||||
specifier: ^3.0.6
|
||||
version: 3.0.6(@floating-ui/dom@1.7.2)(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@tiptap/starter-kit':
|
||||
specifier: ^3.0.6
|
||||
version: 3.0.6
|
||||
'@types/bcrypt':
|
||||
specifier: ^5.0.2
|
||||
version: 5.0.2
|
||||
|
|
@ -4270,6 +4294,9 @@ packages:
|
|||
peerDependencies:
|
||||
'@redis/client': ^1.0.0
|
||||
|
||||
'@remirror/core-constants@3.0.0':
|
||||
resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==}
|
||||
|
||||
'@reown/appkit-common@1.7.2':
|
||||
resolution: {integrity: sha512-DZkl3P5+Iw3TmsitWmWxYbuSCox8iuzngNp/XhbNDJd7t4Cj4akaIUxSEeCajNDiGHlu4HZnfyM1swWsOJ0cOw==}
|
||||
|
||||
|
|
@ -5393,6 +5420,153 @@ packages:
|
|||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@tiptap/core@3.0.6':
|
||||
resolution: {integrity: sha512-dqAQCKb/++6lFub4q7fcIFTNDLRLR5ZQWDL23OxQYW2oXV+EppNZROlFoSOLYOykqVbtvQ7xp+Ja3aZou3hZJg==}
|
||||
peerDependencies:
|
||||
'@tiptap/pm': ^3.0.6
|
||||
|
||||
'@tiptap/extension-blockquote@3.0.6':
|
||||
resolution: {integrity: sha512-hNDFTfh27Zglc887tCqZBlpFdAKZcA5lAO0VOYXp0Rt9ckpcduX8rQZ0HByiovZqrQ9AEsIR0p1yihjWORhXzA==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
|
||||
'@tiptap/extension-bold@3.0.6':
|
||||
resolution: {integrity: sha512-NjZl5R9rxoxDl1uGTY3q8+ZTqgrBvkXlPs7jvjZXcv9WFYlnageAlpjDSxxPJhUe4o9ZMuERcIV7ui4HD05z9Q==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
|
||||
'@tiptap/extension-bubble-menu@3.0.6':
|
||||
resolution: {integrity: sha512-hL4SLHmErrAWAKFFaTB+8f49ZYtKuega7SDOkwXUI5dcyphpyFknI0qV9x1vvHIveFxSsDFadvaWkBq5Q/jQhQ==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
'@tiptap/pm': ^3.0.6
|
||||
|
||||
'@tiptap/extension-bullet-list@3.0.6':
|
||||
resolution: {integrity: sha512-psY+ZlC0hp1HCqNgZgpdyQkWlIQlhpgxXMs/NqyrH4zM62ds4531QIpbltvFqLVFLk8/KkKW5X5T1spfndzfUQ==}
|
||||
peerDependencies:
|
||||
'@tiptap/extension-list': ^3.0.6
|
||||
|
||||
'@tiptap/extension-code-block@3.0.6':
|
||||
resolution: {integrity: sha512-iYdzqi8L9VYGnFJ2JQ6oI5ErTSPTbELSbyXzLkiMM5/+lv/miOCFyRxpf7gCAefzRgahh7pgDYczngf7siG/3g==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
'@tiptap/pm': ^3.0.6
|
||||
|
||||
'@tiptap/extension-code@3.0.6':
|
||||
resolution: {integrity: sha512-7310bV2UU2Kt/9W4TYarlYU9muM9M9Vv7Gd0hVpID7cAztiTG4pUaTsNt2IFCuhnIaslmcuGtv70eldkylgEdw==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
|
||||
'@tiptap/extension-document@3.0.6':
|
||||
resolution: {integrity: sha512-NeDsgGNfwGbuoSot75bvCXyIFZqRCvPP68iZm+WVJXJq5SZ7L3T/PAf02aFz/4gvUntmtKwL/ZUj7jjt1Ap2Uw==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
|
||||
'@tiptap/extension-dropcursor@3.0.6':
|
||||
resolution: {integrity: sha512-eNJL6KNHK2OkSWr9lzJZfMZ1d8OI9xz3wV36vc4nLDFnJdRkLKMZAbF5fCGG+80yNcEULwChgiRgxizS6TMZeg==}
|
||||
peerDependencies:
|
||||
'@tiptap/extensions': ^3.0.6
|
||||
|
||||
'@tiptap/extension-floating-menu@3.0.6':
|
||||
resolution: {integrity: sha512-HXmuRSrTVPtxBTbg+MZdevoNbPsHo9Yv0zg/k3zVP30FylMmdC6a9V8sqTu3sSiX3Of1pEsJ3/P1xWonnhFhTA==}
|
||||
peerDependencies:
|
||||
'@floating-ui/dom': ^1.0.0
|
||||
'@tiptap/core': ^3.0.6
|
||||
'@tiptap/pm': ^3.0.6
|
||||
|
||||
'@tiptap/extension-gapcursor@3.0.6':
|
||||
resolution: {integrity: sha512-i9flYYMHbGJUiPcbutfk6L5fsnJsrJwv9XpQEiP3Bl2rCcOe3HdF+1Chvk/FuGfvbQov9voO8P86RvBhkI/y8g==}
|
||||
peerDependencies:
|
||||
'@tiptap/extensions': ^3.0.6
|
||||
|
||||
'@tiptap/extension-hard-break@3.0.6':
|
||||
resolution: {integrity: sha512-fLn1QeyyHOO4RVND5J43LdBp99Ejemrm+SPtrysfczDZvbsHKM05/OjZOg+f7QxcwcXyItYp35xmHCayxs+tFA==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
|
||||
'@tiptap/extension-heading@3.0.6':
|
||||
resolution: {integrity: sha512-umcsnc4IEacQjlnl7d/IaiFsVA5xG993VvnUG5fK08TOuy0yrliOqXsFGp4czGnRLBEh2zfXMMK+vnm2fuk5zw==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
|
||||
'@tiptap/extension-horizontal-rule@3.0.6':
|
||||
resolution: {integrity: sha512-we803tmjQc7SIxw05DNCjrVg6e+eM8bJNM9qPTU4Uo2PkJxvGPshhhfvCz5wchz2ohL3zjEUKJ1FCB6j6iL2nA==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
'@tiptap/pm': ^3.0.6
|
||||
|
||||
'@tiptap/extension-italic@3.0.6':
|
||||
resolution: {integrity: sha512-Gv773wa94utRWf+6rkqLiPLedny3Wy/gs4OJ3snU2McWslfqCWCVVB82RK6PlcbNtvDb/rfLj0utqaJX30V4Tg==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
|
||||
'@tiptap/extension-link@3.0.6':
|
||||
resolution: {integrity: sha512-BQZNnXx52jncbWrS60PXCtL7kYewA9j4XuYj6U+V943mjmXE+pJ8KczF1YZRmbU7YRLRLrGOtMrSUC8ioJpq6Q==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
'@tiptap/pm': ^3.0.6
|
||||
|
||||
'@tiptap/extension-list-item@3.0.6':
|
||||
resolution: {integrity: sha512-gu3WJ+7GhIi7gPQuaD59Si1oXjBJHKt9wndLKHjYgzlQZb8pfHvix7MqkdSrF/wY+5ScYm2bZToCZku2baoAJw==}
|
||||
peerDependencies:
|
||||
'@tiptap/extension-list': ^3.0.6
|
||||
|
||||
'@tiptap/extension-list-keymap@3.0.6':
|
||||
resolution: {integrity: sha512-uBPMmrukntNhhKaUsNuagWFvHm0v4lZdINZlsEwZkgqlKC03JDcN/VmKwSzCuV1sQXddWaIdZcpjVm5uD+LxHQ==}
|
||||
peerDependencies:
|
||||
'@tiptap/extension-list': ^3.0.6
|
||||
|
||||
'@tiptap/extension-list@3.0.6':
|
||||
resolution: {integrity: sha512-pg4R8cjUSMKuMjfOJexFt961U0UDUXfChXQh7PI7BCRCxLAtUvm2l0kGg4OMXiM1PM/ylTApdtUDal0gdOuSrQ==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
'@tiptap/pm': ^3.0.6
|
||||
|
||||
'@tiptap/extension-ordered-list@3.0.6':
|
||||
resolution: {integrity: sha512-9SbeGO6kGKoX8GwhaSgpFNCGxlzfGu5otK5DE+Unn5F8/gIYGBJkXTZE1tj8XzPmH6lWhmKJQPudANnW6yuKqg==}
|
||||
peerDependencies:
|
||||
'@tiptap/extension-list': ^3.0.6
|
||||
|
||||
'@tiptap/extension-paragraph@3.0.6':
|
||||
resolution: {integrity: sha512-2R1lNHGhPR3yxDEq6Mzto8ihk958AwCdhuEXGUOrXcphmomoFR9gfokJMUiVcQhmkCvh+0nrf8NChS/VygLuPQ==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
|
||||
'@tiptap/extension-strike@3.0.6':
|
||||
resolution: {integrity: sha512-f2TVfdU/wIES87P1v9NRuD3oNcAelg+YhXfPFpJTXaojyqU/6Img90HnoDPcx+5Od3+JUBSj4efr0RKX6SvXqQ==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
|
||||
'@tiptap/extension-text@3.0.6':
|
||||
resolution: {integrity: sha512-5jZTzaafLV0eQNwOrGZyqdhgF7PP3+Hrl1CUwL0f5m7guTrdvbx/ATNzQX6iIuJMp2MFwl03mgKcmb1APaDmHQ==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
|
||||
'@tiptap/extension-underline@3.0.6':
|
||||
resolution: {integrity: sha512-ndBuYwC1TyvDWjmnpPXDv9pTOozAjnZvJLdJ/eegqyqkKYkmqJHZm7pjwUAmtZBWJUGGi4c5RFlINxEFCOFKRQ==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
|
||||
'@tiptap/extensions@3.0.6':
|
||||
resolution: {integrity: sha512-rrTFjX3JoaRj/eEFR+8rYiiqOcCWDBIfFPLcb6TIvj+mo2kLp3QtbuhjqSSkpUxxn/hcVj7iwa5c4n33IyQ8lA==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
'@tiptap/pm': ^3.0.6
|
||||
|
||||
'@tiptap/pm@3.0.6':
|
||||
resolution: {integrity: sha512-bbOHDApNHUTEBEhfA1WA9A+PGs/bUD7/E5CpPvh4C+24PLxk1PfY5yOuzh+UGGHFUNTyBWwkgUZPNP7PRVcoDg==}
|
||||
|
||||
'@tiptap/react@3.0.6':
|
||||
resolution: {integrity: sha512-RUH8Gj0OVk2tFP0h4cGLnZT4qE912bP+Yt1hcYYBcQ1mJLfL6XVxQj7Wegs7ow3db4YdDif7Rq6cjf8IcwKUPQ==}
|
||||
peerDependencies:
|
||||
'@tiptap/core': ^3.0.6
|
||||
'@tiptap/pm': ^3.0.6
|
||||
react: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
|
||||
|
||||
'@tiptap/starter-kit@3.0.6':
|
||||
resolution: {integrity: sha512-7xqcx5hwa+o0J6vpqJRSQNxKHOO6/vSwwicmaHxZ4zdGtlUjJrdreeYaaUpCf0wvpBT1DAQlRnancuD6DJkkPg==}
|
||||
|
||||
'@tokenizer/inflate@0.2.7':
|
||||
resolution: {integrity: sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==}
|
||||
engines: {node: '>=18'}
|
||||
|
|
@ -5631,12 +5805,18 @@ packages:
|
|||
'@types/keyv@3.1.4':
|
||||
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
|
||||
|
||||
'@types/linkify-it@5.0.0':
|
||||
resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
|
||||
|
||||
'@types/lodash@4.17.20':
|
||||
resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==}
|
||||
|
||||
'@types/luxon@3.4.2':
|
||||
resolution: {integrity: sha512-TifLZlFudklWlMBfhubvgqTXRzLDI5pCbGa4P8a3wPyUQSW+1xQ5eDsreP9DWHX3tjq1ke96uYG/nwundroWcA==}
|
||||
|
||||
'@types/markdown-it@14.1.2':
|
||||
resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==}
|
||||
|
||||
'@types/md5@2.3.5':
|
||||
resolution: {integrity: sha512-/i42wjYNgE6wf0j2bcTX6kuowmdL/6PE4IVitMpm2eYKBUuYCprdcWVK+xEF0gcV6ufMCRhtxmReGfc6hIK7Jw==}
|
||||
|
||||
|
|
@ -5646,6 +5826,9 @@ packages:
|
|||
'@types/mdast@4.0.4':
|
||||
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
|
||||
|
||||
'@types/mdurl@2.0.0':
|
||||
resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
|
||||
|
||||
'@types/mime-types@2.1.4':
|
||||
resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==}
|
||||
|
||||
|
|
@ -5783,6 +5966,9 @@ packages:
|
|||
'@types/unist@3.0.3':
|
||||
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
|
||||
|
||||
'@types/use-sync-external-store@0.0.6':
|
||||
resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
|
||||
|
||||
'@types/uuid@10.0.0':
|
||||
resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
|
||||
|
||||
|
|
@ -7517,6 +7703,9 @@ packages:
|
|||
create-require@1.1.1:
|
||||
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
|
||||
|
||||
crelt@1.0.6:
|
||||
resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==}
|
||||
|
||||
cron-parser@4.9.0:
|
||||
resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
|
@ -10271,6 +10460,12 @@ packages:
|
|||
lines-and-columns@1.2.4:
|
||||
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
|
||||
|
||||
linkify-it@5.0.0:
|
||||
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
|
||||
|
||||
linkifyjs@4.3.1:
|
||||
resolution: {integrity: sha512-DRSlB9DKVW04c4SUdGvKK5FR6be45lTU9M76JnngqPeeGDqPwYc0zdUErtsNVMtxPXgUWV4HbXbnC4sNyBxkYg==}
|
||||
|
||||
lit-element@4.2.0:
|
||||
resolution: {integrity: sha512-MGrXJVAI5x+Bfth/pU9Kst1iWID6GHDLEzFEnyULB/sFiRLgkd8NPK/PeeXxktA3T6EIIaq8U3KcbTU5XFcP2Q==}
|
||||
|
||||
|
|
@ -10501,6 +10696,10 @@ packages:
|
|||
map-or-similar@1.5.0:
|
||||
resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==}
|
||||
|
||||
markdown-it@14.1.0:
|
||||
resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
|
||||
hasBin: true
|
||||
|
||||
markdown-table@3.0.4:
|
||||
resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
|
||||
|
||||
|
|
@ -10589,6 +10788,9 @@ packages:
|
|||
mdn-data@2.0.30:
|
||||
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
|
||||
|
||||
mdurl@2.0.0:
|
||||
resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
|
||||
|
||||
media-typer@0.3.0:
|
||||
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
|
@ -11433,6 +11635,9 @@ packages:
|
|||
resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
orderedmap@2.1.1:
|
||||
resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==}
|
||||
|
||||
os-filter-obj@2.0.0:
|
||||
resolution: {integrity: sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==}
|
||||
engines: {node: '>=4'}
|
||||
|
|
@ -11933,6 +12138,64 @@ packages:
|
|||
property-information@7.1.0:
|
||||
resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
|
||||
|
||||
prosemirror-changeset@2.3.1:
|
||||
resolution: {integrity: sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==}
|
||||
|
||||
prosemirror-collab@1.3.1:
|
||||
resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==}
|
||||
|
||||
prosemirror-commands@1.7.1:
|
||||
resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==}
|
||||
|
||||
prosemirror-dropcursor@1.8.2:
|
||||
resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==}
|
||||
|
||||
prosemirror-gapcursor@1.3.2:
|
||||
resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==}
|
||||
|
||||
prosemirror-history@1.4.1:
|
||||
resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==}
|
||||
|
||||
prosemirror-inputrules@1.5.0:
|
||||
resolution: {integrity: sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==}
|
||||
|
||||
prosemirror-keymap@1.2.3:
|
||||
resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==}
|
||||
|
||||
prosemirror-markdown@1.13.2:
|
||||
resolution: {integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==}
|
||||
|
||||
prosemirror-menu@1.2.5:
|
||||
resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==}
|
||||
|
||||
prosemirror-model@1.25.2:
|
||||
resolution: {integrity: sha512-BVypCAJ4SL6jOiTsDffP3Wp6wD69lRhI4zg/iT8JXjp3ccZFiq5WyguxvMKmdKFC3prhaig7wSr8dneDToHE1Q==}
|
||||
|
||||
prosemirror-schema-basic@1.2.4:
|
||||
resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==}
|
||||
|
||||
prosemirror-schema-list@1.5.1:
|
||||
resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==}
|
||||
|
||||
prosemirror-state@1.4.3:
|
||||
resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==}
|
||||
|
||||
prosemirror-tables@1.7.1:
|
||||
resolution: {integrity: sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==}
|
||||
|
||||
prosemirror-trailing-node@3.0.0:
|
||||
resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==}
|
||||
peerDependencies:
|
||||
prosemirror-model: ^1.22.1
|
||||
prosemirror-state: ^1.4.2
|
||||
prosemirror-view: ^1.33.8
|
||||
|
||||
prosemirror-transform@1.10.4:
|
||||
resolution: {integrity: sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==}
|
||||
|
||||
prosemirror-view@1.40.0:
|
||||
resolution: {integrity: sha512-2G3svX0Cr1sJjkD/DYWSe3cfV5VPVTBOxI9XQEGWJDFEpsZb/gh4MV29ctv+OJx2RFX4BLt09i+6zaGM/ldkCw==}
|
||||
|
||||
proto-list@1.2.4:
|
||||
resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
|
||||
|
||||
|
|
@ -11975,6 +12238,10 @@ packages:
|
|||
pump@3.0.3:
|
||||
resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==}
|
||||
|
||||
punycode.js@2.3.1:
|
||||
resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
punycode@1.4.1:
|
||||
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
|
||||
|
||||
|
|
@ -12653,6 +12920,9 @@ packages:
|
|||
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
||||
hasBin: true
|
||||
|
||||
rope-sequence@1.3.4:
|
||||
resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==}
|
||||
|
||||
router@2.2.0:
|
||||
resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==}
|
||||
engines: {node: '>= 18'}
|
||||
|
|
@ -13811,6 +14081,9 @@ packages:
|
|||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
uc.micro@2.1.0:
|
||||
resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
|
||||
|
||||
ufo@1.6.1:
|
||||
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
|
||||
|
||||
|
|
@ -14296,6 +14569,9 @@ packages:
|
|||
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
w3c-keyname@2.2.8:
|
||||
resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
|
||||
|
||||
w3c-xmlserializer@4.0.0:
|
||||
resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
|
||||
engines: {node: '>=14'}
|
||||
|
|
@ -19187,6 +19463,8 @@ snapshots:
|
|||
dependencies:
|
||||
'@redis/client': 1.6.1
|
||||
|
||||
'@remirror/core-constants@3.0.0': {}
|
||||
|
||||
'@reown/appkit-common@1.7.2(bufferutil@4.0.9)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)':
|
||||
dependencies:
|
||||
big.js: 6.2.2
|
||||
|
|
@ -20850,6 +21128,181 @@ snapshots:
|
|||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
'@tiptap/core@3.0.6(@tiptap/pm@3.0.6)':
|
||||
dependencies:
|
||||
'@tiptap/pm': 3.0.6
|
||||
|
||||
'@tiptap/extension-blockquote@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-bold@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-bubble-menu@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)':
|
||||
dependencies:
|
||||
'@floating-ui/dom': 1.7.2
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
'@tiptap/pm': 3.0.6
|
||||
optional: true
|
||||
|
||||
'@tiptap/extension-bullet-list@3.0.6(@tiptap/extension-list@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/extension-list': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-code-block@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
'@tiptap/pm': 3.0.6
|
||||
|
||||
'@tiptap/extension-code@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-document@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-dropcursor@3.0.6(@tiptap/extensions@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/extensions': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-floating-menu@3.0.6(@floating-ui/dom@1.7.2)(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)':
|
||||
dependencies:
|
||||
'@floating-ui/dom': 1.7.2
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
'@tiptap/pm': 3.0.6
|
||||
optional: true
|
||||
|
||||
'@tiptap/extension-gapcursor@3.0.6(@tiptap/extensions@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/extensions': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-hard-break@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-heading@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-horizontal-rule@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
'@tiptap/pm': 3.0.6
|
||||
|
||||
'@tiptap/extension-italic@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-link@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
'@tiptap/pm': 3.0.6
|
||||
linkifyjs: 4.3.1
|
||||
|
||||
'@tiptap/extension-list-item@3.0.6(@tiptap/extension-list@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/extension-list': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-list-keymap@3.0.6(@tiptap/extension-list@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/extension-list': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-list@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
'@tiptap/pm': 3.0.6
|
||||
|
||||
'@tiptap/extension-ordered-list@3.0.6(@tiptap/extension-list@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/extension-list': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-paragraph@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-strike@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-text@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extension-underline@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
|
||||
'@tiptap/extensions@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
'@tiptap/pm': 3.0.6
|
||||
|
||||
'@tiptap/pm@3.0.6':
|
||||
dependencies:
|
||||
prosemirror-changeset: 2.3.1
|
||||
prosemirror-collab: 1.3.1
|
||||
prosemirror-commands: 1.7.1
|
||||
prosemirror-dropcursor: 1.8.2
|
||||
prosemirror-gapcursor: 1.3.2
|
||||
prosemirror-history: 1.4.1
|
||||
prosemirror-inputrules: 1.5.0
|
||||
prosemirror-keymap: 1.2.3
|
||||
prosemirror-markdown: 1.13.2
|
||||
prosemirror-menu: 1.2.5
|
||||
prosemirror-model: 1.25.2
|
||||
prosemirror-schema-basic: 1.2.4
|
||||
prosemirror-schema-list: 1.5.1
|
||||
prosemirror-state: 1.4.3
|
||||
prosemirror-tables: 1.7.1
|
||||
prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.2)(prosemirror-state@1.4.3)(prosemirror-view@1.40.0)
|
||||
prosemirror-transform: 1.10.4
|
||||
prosemirror-view: 1.40.0
|
||||
|
||||
'@tiptap/react@3.0.6(@floating-ui/dom@1.7.2)(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
'@tiptap/pm': 3.0.6
|
||||
'@types/use-sync-external-store': 0.0.6
|
||||
fast-deep-equal: 3.1.3
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
use-sync-external-store: 1.5.0(react@18.3.1)
|
||||
optionalDependencies:
|
||||
'@tiptap/extension-bubble-menu': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
'@tiptap/extension-floating-menu': 3.0.6(@floating-ui/dom@1.7.2)(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
transitivePeerDependencies:
|
||||
- '@floating-ui/dom'
|
||||
|
||||
'@tiptap/starter-kit@3.0.6':
|
||||
dependencies:
|
||||
'@tiptap/core': 3.0.6(@tiptap/pm@3.0.6)
|
||||
'@tiptap/extension-blockquote': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-bold': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-bullet-list': 3.0.6(@tiptap/extension-list@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-code': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-code-block': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
'@tiptap/extension-document': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-dropcursor': 3.0.6(@tiptap/extensions@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-gapcursor': 3.0.6(@tiptap/extensions@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-hard-break': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-heading': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-horizontal-rule': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
'@tiptap/extension-italic': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-link': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
'@tiptap/extension-list': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
'@tiptap/extension-list-item': 3.0.6(@tiptap/extension-list@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-list-keymap': 3.0.6(@tiptap/extension-list@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-ordered-list': 3.0.6(@tiptap/extension-list@3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-paragraph': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-strike': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-text': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extension-underline': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))
|
||||
'@tiptap/extensions': 3.0.6(@tiptap/core@3.0.6(@tiptap/pm@3.0.6))(@tiptap/pm@3.0.6)
|
||||
'@tiptap/pm': 3.0.6
|
||||
|
||||
'@tokenizer/inflate@0.2.7':
|
||||
dependencies:
|
||||
debug: 4.4.1(supports-color@5.5.0)
|
||||
|
|
@ -21177,10 +21630,17 @@ snapshots:
|
|||
dependencies:
|
||||
'@types/node': 18.16.9
|
||||
|
||||
'@types/linkify-it@5.0.0': {}
|
||||
|
||||
'@types/lodash@4.17.20': {}
|
||||
|
||||
'@types/luxon@3.4.2': {}
|
||||
|
||||
'@types/markdown-it@14.1.2':
|
||||
dependencies:
|
||||
'@types/linkify-it': 5.0.0
|
||||
'@types/mdurl': 2.0.0
|
||||
|
||||
'@types/md5@2.3.5': {}
|
||||
|
||||
'@types/mdast@3.0.15':
|
||||
|
|
@ -21191,6 +21651,8 @@ snapshots:
|
|||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
|
||||
'@types/mdurl@2.0.0': {}
|
||||
|
||||
'@types/mime-types@2.1.4': {}
|
||||
|
||||
'@types/mime@1.3.5': {}
|
||||
|
|
@ -21335,6 +21797,8 @@ snapshots:
|
|||
|
||||
'@types/unist@3.0.3': {}
|
||||
|
||||
'@types/use-sync-external-store@0.0.6': {}
|
||||
|
||||
'@types/uuid@10.0.0': {}
|
||||
|
||||
'@types/uuid@8.3.4': {}
|
||||
|
|
@ -23817,6 +24281,8 @@ snapshots:
|
|||
|
||||
create-require@1.1.1: {}
|
||||
|
||||
crelt@1.0.6: {}
|
||||
|
||||
cron-parser@4.9.0:
|
||||
dependencies:
|
||||
luxon: 3.6.1
|
||||
|
|
@ -27418,6 +27884,12 @@ snapshots:
|
|||
|
||||
lines-and-columns@1.2.4: {}
|
||||
|
||||
linkify-it@5.0.0:
|
||||
dependencies:
|
||||
uc.micro: 2.1.0
|
||||
|
||||
linkifyjs@4.3.1: {}
|
||||
|
||||
lit-element@4.2.0:
|
||||
dependencies:
|
||||
'@lit-labs/ssr-dom-shim': 1.3.0
|
||||
|
|
@ -27623,6 +28095,15 @@ snapshots:
|
|||
|
||||
map-or-similar@1.5.0: {}
|
||||
|
||||
markdown-it@14.1.0:
|
||||
dependencies:
|
||||
argparse: 2.0.1
|
||||
entities: 4.5.0
|
||||
linkify-it: 5.0.0
|
||||
mdurl: 2.0.0
|
||||
punycode.js: 2.3.1
|
||||
uc.micro: 2.1.0
|
||||
|
||||
markdown-table@3.0.4: {}
|
||||
|
||||
marky@1.3.0: {}
|
||||
|
|
@ -27852,6 +28333,8 @@ snapshots:
|
|||
|
||||
mdn-data@2.0.30: {}
|
||||
|
||||
mdurl@2.0.0: {}
|
||||
|
||||
media-typer@0.3.0: {}
|
||||
|
||||
media-typer@1.1.0: {}
|
||||
|
|
@ -29001,6 +29484,8 @@ snapshots:
|
|||
strip-ansi: 6.0.1
|
||||
wcwidth: 1.0.1
|
||||
|
||||
orderedmap@2.1.1: {}
|
||||
|
||||
os-filter-obj@2.0.0:
|
||||
dependencies:
|
||||
arch: 2.2.0
|
||||
|
|
@ -29567,6 +30052,109 @@ snapshots:
|
|||
|
||||
property-information@7.1.0: {}
|
||||
|
||||
prosemirror-changeset@2.3.1:
|
||||
dependencies:
|
||||
prosemirror-transform: 1.10.4
|
||||
|
||||
prosemirror-collab@1.3.1:
|
||||
dependencies:
|
||||
prosemirror-state: 1.4.3
|
||||
|
||||
prosemirror-commands@1.7.1:
|
||||
dependencies:
|
||||
prosemirror-model: 1.25.2
|
||||
prosemirror-state: 1.4.3
|
||||
prosemirror-transform: 1.10.4
|
||||
|
||||
prosemirror-dropcursor@1.8.2:
|
||||
dependencies:
|
||||
prosemirror-state: 1.4.3
|
||||
prosemirror-transform: 1.10.4
|
||||
prosemirror-view: 1.40.0
|
||||
|
||||
prosemirror-gapcursor@1.3.2:
|
||||
dependencies:
|
||||
prosemirror-keymap: 1.2.3
|
||||
prosemirror-model: 1.25.2
|
||||
prosemirror-state: 1.4.3
|
||||
prosemirror-view: 1.40.0
|
||||
|
||||
prosemirror-history@1.4.1:
|
||||
dependencies:
|
||||
prosemirror-state: 1.4.3
|
||||
prosemirror-transform: 1.10.4
|
||||
prosemirror-view: 1.40.0
|
||||
rope-sequence: 1.3.4
|
||||
|
||||
prosemirror-inputrules@1.5.0:
|
||||
dependencies:
|
||||
prosemirror-state: 1.4.3
|
||||
prosemirror-transform: 1.10.4
|
||||
|
||||
prosemirror-keymap@1.2.3:
|
||||
dependencies:
|
||||
prosemirror-state: 1.4.3
|
||||
w3c-keyname: 2.2.8
|
||||
|
||||
prosemirror-markdown@1.13.2:
|
||||
dependencies:
|
||||
'@types/markdown-it': 14.1.2
|
||||
markdown-it: 14.1.0
|
||||
prosemirror-model: 1.25.2
|
||||
|
||||
prosemirror-menu@1.2.5:
|
||||
dependencies:
|
||||
crelt: 1.0.6
|
||||
prosemirror-commands: 1.7.1
|
||||
prosemirror-history: 1.4.1
|
||||
prosemirror-state: 1.4.3
|
||||
|
||||
prosemirror-model@1.25.2:
|
||||
dependencies:
|
||||
orderedmap: 2.1.1
|
||||
|
||||
prosemirror-schema-basic@1.2.4:
|
||||
dependencies:
|
||||
prosemirror-model: 1.25.2
|
||||
|
||||
prosemirror-schema-list@1.5.1:
|
||||
dependencies:
|
||||
prosemirror-model: 1.25.2
|
||||
prosemirror-state: 1.4.3
|
||||
prosemirror-transform: 1.10.4
|
||||
|
||||
prosemirror-state@1.4.3:
|
||||
dependencies:
|
||||
prosemirror-model: 1.25.2
|
||||
prosemirror-transform: 1.10.4
|
||||
prosemirror-view: 1.40.0
|
||||
|
||||
prosemirror-tables@1.7.1:
|
||||
dependencies:
|
||||
prosemirror-keymap: 1.2.3
|
||||
prosemirror-model: 1.25.2
|
||||
prosemirror-state: 1.4.3
|
||||
prosemirror-transform: 1.10.4
|
||||
prosemirror-view: 1.40.0
|
||||
|
||||
prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.2)(prosemirror-state@1.4.3)(prosemirror-view@1.40.0):
|
||||
dependencies:
|
||||
'@remirror/core-constants': 3.0.0
|
||||
escape-string-regexp: 4.0.0
|
||||
prosemirror-model: 1.25.2
|
||||
prosemirror-state: 1.4.3
|
||||
prosemirror-view: 1.40.0
|
||||
|
||||
prosemirror-transform@1.10.4:
|
||||
dependencies:
|
||||
prosemirror-model: 1.25.2
|
||||
|
||||
prosemirror-view@1.40.0:
|
||||
dependencies:
|
||||
prosemirror-model: 1.25.2
|
||||
prosemirror-state: 1.4.3
|
||||
prosemirror-transform: 1.10.4
|
||||
|
||||
proto-list@1.2.4: {}
|
||||
|
||||
protobufjs@7.5.3:
|
||||
|
|
@ -29636,6 +30224,8 @@ snapshots:
|
|||
end-of-stream: 1.4.5
|
||||
once: 1.4.0
|
||||
|
||||
punycode.js@2.3.1: {}
|
||||
|
||||
punycode@1.4.1: {}
|
||||
|
||||
punycode@2.3.1: {}
|
||||
|
|
@ -30534,6 +31124,8 @@ snapshots:
|
|||
'@rollup/rollup-win32-x64-msvc': 4.44.2
|
||||
fsevents: 2.3.3
|
||||
|
||||
rope-sequence@1.3.4: {}
|
||||
|
||||
router@2.2.0:
|
||||
dependencies:
|
||||
debug: 4.4.1(supports-color@5.5.0)
|
||||
|
|
@ -31879,6 +32471,8 @@ snapshots:
|
|||
|
||||
typescript@5.5.4: {}
|
||||
|
||||
uc.micro@2.1.0: {}
|
||||
|
||||
ufo@1.6.1: {}
|
||||
|
||||
uid@2.0.2:
|
||||
|
|
@ -32394,6 +32988,8 @@ snapshots:
|
|||
|
||||
void-elements@3.1.0: {}
|
||||
|
||||
w3c-keyname@2.2.8: {}
|
||||
|
||||
w3c-xmlserializer@4.0.0:
|
||||
dependencies:
|
||||
xml-name-validator: 4.0.0
|
||||
|
|
|
|||
Loading…
Reference in New Issue