@md-lark-converter/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,177 @@
1
+ declare class MarkdownToLarkConverter {
2
+ private rootId;
3
+ private authorId;
4
+ private recordMap;
5
+ private blockIds;
6
+ private recordIds;
7
+ private payloadMap;
8
+ private apoolNextNum;
9
+ private apoolNumToAttrib;
10
+ constructor();
11
+ convert(markdown: string): Promise<ClipboardData>;
12
+ private normalizeMathBlocks;
13
+ private createPageBlock;
14
+ private convertTree;
15
+ private convertList;
16
+ private convertListItems;
17
+ private parseInlineContent;
18
+ private extractTextContent;
19
+ private createHeadingBlock;
20
+ private createTextBlock;
21
+ private createQuoteBlock;
22
+ private flattenNestedBlockquotes;
23
+ private createEquationBlock;
24
+ private createEquationParagraphBlock;
25
+ private createCodeBlock;
26
+ private createDividerBlock;
27
+ private createMermaidBlock;
28
+ private createTextData;
29
+ private createListItemTextData;
30
+ private buildClipboardData;
31
+ private generateRandomId;
32
+ private convertTable;
33
+ }
34
+
35
+ declare function generateBlockId(): string;
36
+ declare function generateRecordId(): string;
37
+ declare function generatePageId(): string;
38
+
39
+ interface MarkdownBlock {
40
+ type: string;
41
+ text?: string;
42
+ language?: string;
43
+ ordered?: boolean;
44
+ items?: MarkdownListItem[];
45
+ }
46
+ interface MarkdownListItem {
47
+ text: string;
48
+ task: boolean;
49
+ checked?: boolean;
50
+ }
51
+ declare function parseMarkdown(markdown: string): MarkdownBlock[];
52
+
53
+ interface ClipboardResult {
54
+ [mimeType: string]: string;
55
+ }
56
+ declare function writeToClipboard(html: string, jsonData: any): Promise<boolean>;
57
+ declare function readClipboard(): Promise<ClipboardResult>;
58
+
59
+ declare function generateHtml(data: ClipboardData): string;
60
+ declare function generateBlockHtml(snapshot: any, recordId: string): string;
61
+
62
+ interface ClipboardData {
63
+ isCut: boolean;
64
+ rootId: string;
65
+ parentId: string;
66
+ blockIds: number[];
67
+ recordIds: string[];
68
+ recordMap: Record<string, RecordData>;
69
+ payloadMap: Record<string, unknown>;
70
+ selection: unknown[];
71
+ extra: {
72
+ channel: string;
73
+ pasteRandomId: string;
74
+ mention_page_title: Record<string, string>;
75
+ external_mention_url: Record<string, string>;
76
+ isEqualBlockSelection: boolean;
77
+ };
78
+ isKeepQuoteContainer: boolean;
79
+ pasteFlag: string;
80
+ }
81
+ interface RecordData {
82
+ id: string;
83
+ snapshot: BlockSnapshot;
84
+ }
85
+ type BlockType = 'page' | 'text' | 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5' | 'heading6' | 'quote' | 'bullet' | 'ordered' | 'todo' | 'code' | 'divider' | 'isv' | 'equation' | 'image' | 'table' | 'table_cell';
86
+ interface BlockSnapshot {
87
+ type: BlockType;
88
+ parent_id: string;
89
+ comments: unknown[] | null;
90
+ revisions: unknown[] | null;
91
+ locked: boolean;
92
+ hidden: boolean;
93
+ author: string;
94
+ children: string[];
95
+ text?: TextData;
96
+ align?: string;
97
+ page_style?: Record<string, unknown>;
98
+ title?: TextData;
99
+ level?: number;
100
+ folded?: boolean;
101
+ done?: boolean;
102
+ seq?: string;
103
+ language?: string;
104
+ code?: string;
105
+ is_language_picked?: boolean;
106
+ caption?: {
107
+ text: {
108
+ initialAttributedTexts: {
109
+ text: Record<string, string>;
110
+ attribs: Record<string, string>;
111
+ };
112
+ apool: {
113
+ numToAttrib: Record<string, unknown>;
114
+ nextNum: number;
115
+ };
116
+ };
117
+ };
118
+ wrap?: boolean;
119
+ data?: {
120
+ data: string;
121
+ theme: string;
122
+ view: string;
123
+ };
124
+ app_block_id?: string;
125
+ block_type_id?: string;
126
+ manifest?: {
127
+ view_type: string;
128
+ app_version: string;
129
+ };
130
+ comment_details?: Record<string, unknown>;
131
+ interaction_data_token?: string;
132
+ columns_id?: string[];
133
+ rows_id?: string[];
134
+ column_set?: Record<string, {
135
+ column_width: number;
136
+ }>;
137
+ cell_set?: Record<string, {
138
+ block_id: string;
139
+ merge_info: {
140
+ row_span: number;
141
+ col_span: number;
142
+ };
143
+ }>;
144
+ }
145
+ interface TextData {
146
+ apool: {
147
+ nextNum: number;
148
+ numToAttrib: Record<string, unknown>;
149
+ attribToNum?: Record<string, number>;
150
+ };
151
+ initialAttributedTexts: {
152
+ attribs: string | Record<string, string>;
153
+ text: Record<string, string>;
154
+ rows?: Record<string, unknown>;
155
+ cols?: Record<string, unknown>;
156
+ };
157
+ }
158
+ declare function markdownToLark(markdown: string): Promise<ClipboardData>;
159
+ declare function larkToMarkdown(data: ClipboardData): string;
160
+ declare const TEST_CASES: {
161
+ heading: string;
162
+ paragraph: string;
163
+ list: string;
164
+ ordered: string;
165
+ todo: string;
166
+ quote: string;
167
+ code: string;
168
+ divider: string;
169
+ link: string;
170
+ image: string;
171
+ mermaid: string;
172
+ nested: string;
173
+ mixed: string;
174
+ complex: string;
175
+ };
176
+
177
+ export { type BlockSnapshot, type BlockType, type ClipboardData, MarkdownToLarkConverter, type RecordData, TEST_CASES, type TextData, generateBlockHtml, generateBlockId, generateHtml, generatePageId, generateRecordId, larkToMarkdown, markdownToLark, parseMarkdown, readClipboard, writeToClipboard };
@@ -0,0 +1,177 @@
1
+ declare class MarkdownToLarkConverter {
2
+ private rootId;
3
+ private authorId;
4
+ private recordMap;
5
+ private blockIds;
6
+ private recordIds;
7
+ private payloadMap;
8
+ private apoolNextNum;
9
+ private apoolNumToAttrib;
10
+ constructor();
11
+ convert(markdown: string): Promise<ClipboardData>;
12
+ private normalizeMathBlocks;
13
+ private createPageBlock;
14
+ private convertTree;
15
+ private convertList;
16
+ private convertListItems;
17
+ private parseInlineContent;
18
+ private extractTextContent;
19
+ private createHeadingBlock;
20
+ private createTextBlock;
21
+ private createQuoteBlock;
22
+ private flattenNestedBlockquotes;
23
+ private createEquationBlock;
24
+ private createEquationParagraphBlock;
25
+ private createCodeBlock;
26
+ private createDividerBlock;
27
+ private createMermaidBlock;
28
+ private createTextData;
29
+ private createListItemTextData;
30
+ private buildClipboardData;
31
+ private generateRandomId;
32
+ private convertTable;
33
+ }
34
+
35
+ declare function generateBlockId(): string;
36
+ declare function generateRecordId(): string;
37
+ declare function generatePageId(): string;
38
+
39
+ interface MarkdownBlock {
40
+ type: string;
41
+ text?: string;
42
+ language?: string;
43
+ ordered?: boolean;
44
+ items?: MarkdownListItem[];
45
+ }
46
+ interface MarkdownListItem {
47
+ text: string;
48
+ task: boolean;
49
+ checked?: boolean;
50
+ }
51
+ declare function parseMarkdown(markdown: string): MarkdownBlock[];
52
+
53
+ interface ClipboardResult {
54
+ [mimeType: string]: string;
55
+ }
56
+ declare function writeToClipboard(html: string, jsonData: any): Promise<boolean>;
57
+ declare function readClipboard(): Promise<ClipboardResult>;
58
+
59
+ declare function generateHtml(data: ClipboardData): string;
60
+ declare function generateBlockHtml(snapshot: any, recordId: string): string;
61
+
62
+ interface ClipboardData {
63
+ isCut: boolean;
64
+ rootId: string;
65
+ parentId: string;
66
+ blockIds: number[];
67
+ recordIds: string[];
68
+ recordMap: Record<string, RecordData>;
69
+ payloadMap: Record<string, unknown>;
70
+ selection: unknown[];
71
+ extra: {
72
+ channel: string;
73
+ pasteRandomId: string;
74
+ mention_page_title: Record<string, string>;
75
+ external_mention_url: Record<string, string>;
76
+ isEqualBlockSelection: boolean;
77
+ };
78
+ isKeepQuoteContainer: boolean;
79
+ pasteFlag: string;
80
+ }
81
+ interface RecordData {
82
+ id: string;
83
+ snapshot: BlockSnapshot;
84
+ }
85
+ type BlockType = 'page' | 'text' | 'heading1' | 'heading2' | 'heading3' | 'heading4' | 'heading5' | 'heading6' | 'quote' | 'bullet' | 'ordered' | 'todo' | 'code' | 'divider' | 'isv' | 'equation' | 'image' | 'table' | 'table_cell';
86
+ interface BlockSnapshot {
87
+ type: BlockType;
88
+ parent_id: string;
89
+ comments: unknown[] | null;
90
+ revisions: unknown[] | null;
91
+ locked: boolean;
92
+ hidden: boolean;
93
+ author: string;
94
+ children: string[];
95
+ text?: TextData;
96
+ align?: string;
97
+ page_style?: Record<string, unknown>;
98
+ title?: TextData;
99
+ level?: number;
100
+ folded?: boolean;
101
+ done?: boolean;
102
+ seq?: string;
103
+ language?: string;
104
+ code?: string;
105
+ is_language_picked?: boolean;
106
+ caption?: {
107
+ text: {
108
+ initialAttributedTexts: {
109
+ text: Record<string, string>;
110
+ attribs: Record<string, string>;
111
+ };
112
+ apool: {
113
+ numToAttrib: Record<string, unknown>;
114
+ nextNum: number;
115
+ };
116
+ };
117
+ };
118
+ wrap?: boolean;
119
+ data?: {
120
+ data: string;
121
+ theme: string;
122
+ view: string;
123
+ };
124
+ app_block_id?: string;
125
+ block_type_id?: string;
126
+ manifest?: {
127
+ view_type: string;
128
+ app_version: string;
129
+ };
130
+ comment_details?: Record<string, unknown>;
131
+ interaction_data_token?: string;
132
+ columns_id?: string[];
133
+ rows_id?: string[];
134
+ column_set?: Record<string, {
135
+ column_width: number;
136
+ }>;
137
+ cell_set?: Record<string, {
138
+ block_id: string;
139
+ merge_info: {
140
+ row_span: number;
141
+ col_span: number;
142
+ };
143
+ }>;
144
+ }
145
+ interface TextData {
146
+ apool: {
147
+ nextNum: number;
148
+ numToAttrib: Record<string, unknown>;
149
+ attribToNum?: Record<string, number>;
150
+ };
151
+ initialAttributedTexts: {
152
+ attribs: string | Record<string, string>;
153
+ text: Record<string, string>;
154
+ rows?: Record<string, unknown>;
155
+ cols?: Record<string, unknown>;
156
+ };
157
+ }
158
+ declare function markdownToLark(markdown: string): Promise<ClipboardData>;
159
+ declare function larkToMarkdown(data: ClipboardData): string;
160
+ declare const TEST_CASES: {
161
+ heading: string;
162
+ paragraph: string;
163
+ list: string;
164
+ ordered: string;
165
+ todo: string;
166
+ quote: string;
167
+ code: string;
168
+ divider: string;
169
+ link: string;
170
+ image: string;
171
+ mermaid: string;
172
+ nested: string;
173
+ mixed: string;
174
+ complex: string;
175
+ };
176
+
177
+ export { type BlockSnapshot, type BlockType, type ClipboardData, MarkdownToLarkConverter, type RecordData, TEST_CASES, type TextData, generateBlockHtml, generateBlockId, generateHtml, generatePageId, generateRecordId, larkToMarkdown, markdownToLark, parseMarkdown, readClipboard, writeToClipboard };