@open-feishu-card/adapter 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/md-parse.js DELETED
@@ -1,358 +0,0 @@
1
- import { EMOJI_KEY_TO_NAME } from './emoji-data.js';
2
- function styleAttrs(s) {
3
- const attributes = [];
4
- if (s.bold)
5
- attributes.push('bold');
6
- if (s.italic)
7
- attributes.push('italic');
8
- if (s.strike)
9
- attributes.push('strikethrough');
10
- const hasColor = s.color && s.color !== 'default';
11
- if (attributes.length === 0 && !hasColor)
12
- return undefined;
13
- const ts = {};
14
- if (attributes.length)
15
- ts.attributes = attributes;
16
- if (hasColor)
17
- ts.color = s.color;
18
- return ts;
19
- }
20
- function makeText(content, s) {
21
- const property = { content };
22
- const ts = styleAttrs(s);
23
- if (ts)
24
- property.textStyle = ts;
25
- return { tag: 'plain_text', property };
26
- }
27
- /**
28
- * 把一段(可能含软换行 \n)行内文本解析成子元素数组。
29
- * 逐字符扫描,维护加粗/斜体/删除线/颜色状态;状态切换或遇到特殊构造时,
30
- * 把累积的纯文本冲刷为一个 plain_text 段(对称于 rebuildMarkdown 的分段模型)。
31
- */
32
- export function parseInline(text) {
33
- const out = [];
34
- const style = { bold: false, italic: false, strike: false };
35
- let buf = '';
36
- const flush = () => {
37
- if (buf) {
38
- out.push(makeText(buf, style));
39
- buf = '';
40
- }
41
- };
42
- let i = 0;
43
- const n = text.length;
44
- const startsWith = (s) => text.startsWith(s, i);
45
- while (i < n) {
46
- const c = text[i];
47
- // 软换行 → br
48
- if (c === '\n') {
49
- flush();
50
- out.push({ tag: 'br', property: {} });
51
- i += 1;
52
- continue;
53
- }
54
- // 转义:\* \_ \` 等,原样取下一个字符
55
- if (c === '\\' && i + 1 < n) {
56
- buf += text[i + 1];
57
- i += 2;
58
- continue;
59
- }
60
- // :Key: emoji 短码 —— 仅当 key 在表内才成 emoji,否则原样留字面
61
- // (未知 key 如 :NOTAREALKEY: 与正文裸冒号 时间:值 都保持文本)
62
- if (c === ':') {
63
- const mm = /^:([A-Za-z0-9_]+):/.exec(text.slice(i));
64
- if (mm && EMOJI_KEY_TO_NAME[mm[1]]) {
65
- flush();
66
- out.push({ tag: 'emoji', property: { key: mm[1] } });
67
- i += mm[0].length;
68
- continue;
69
- }
70
- }
71
- // 加粗 **(先于单星判定)
72
- if (startsWith('**')) {
73
- flush();
74
- style.bold = !style.bold;
75
- i += 2;
76
- continue;
77
- }
78
- // 删除线 ~~
79
- if (startsWith('~~')) {
80
- flush();
81
- style.strike = !style.strike;
82
- i += 2;
83
- continue;
84
- }
85
- // 斜体 * 或 _(单字符;避免把 ** 的第二个星、或单词内下划线误判)
86
- if ((c === '*' || c === '_')) {
87
- const prev = text[i - 1];
88
- const next = text[i + 1];
89
- // 下划线只有在词边界处才作斜体,避免 file_name 被拆开
90
- const boundaryOk = c === '*' || (!isWord(prev) || !isWord(next));
91
- if (boundaryOk) {
92
- flush();
93
- style.italic = !style.italic;
94
- i += 1;
95
- continue;
96
- }
97
- }
98
- // 行内代码 `...`
99
- if (c === '`') {
100
- const end = text.indexOf('`', i + 1);
101
- if (end !== -1) {
102
- flush();
103
- out.push({ tag: 'code_span', property: { content: text.slice(i + 1, end) } });
104
- i = end + 1;
105
- continue;
106
- }
107
- }
108
- // 链接 [text](url)
109
- if (c === '[') {
110
- const link = matchLink(text, i);
111
- if (link) {
112
- flush();
113
- const property = { content: link.text, url: link.url };
114
- const ts = styleAttrs(style);
115
- if (ts)
116
- property.textStyle = ts;
117
- out.push({ tag: 'link', property });
118
- i = link.end;
119
- continue;
120
- }
121
- }
122
- // <font color='x'>...</font>
123
- if (startsWith('<font')) {
124
- const m = /^<font\s+color=['"]?([^'">]+)['"]?\s*>/.exec(text.slice(i));
125
- if (m) {
126
- flush();
127
- style.color = m[1];
128
- i += m[0].length;
129
- continue;
130
- }
131
- }
132
- if (startsWith('</font>')) {
133
- flush();
134
- style.color = undefined;
135
- i += '</font>'.length;
136
- continue;
137
- }
138
- // <at id=xxx></at> / <at id=all></at>
139
- if (startsWith('<at')) {
140
- const m = /^<at\s+id=['"]?([^'">\s]+)['"]?\s*>\s*<\/at>/.exec(text.slice(i));
141
- if (m) {
142
- flush();
143
- if (m[1] === 'all')
144
- out.push({ tag: 'at_all', property: {} });
145
- else
146
- out.push({ tag: 'at', property: { userID: m[1] } });
147
- i += m[0].length;
148
- continue;
149
- }
150
- }
151
- // <text_tag color='x'>inner</text_tag>
152
- if (startsWith('<text_tag')) {
153
- const m = /^<text_tag(?:\s+color=['"]?([^'">]+)['"]?)?\s*>([\s\S]*?)<\/text_tag>/.exec(text.slice(i));
154
- if (m) {
155
- flush();
156
- const property = {
157
- text: { tag: 'plain_text', property: { content: m[2] } },
158
- };
159
- if (m[1])
160
- property.color = m[1];
161
- out.push({ tag: 'text_tag', property });
162
- i += m[0].length;
163
- continue;
164
- }
165
- }
166
- // <person id='ou_x' show_name=true show_avatar=true style='normal'></person>
167
- // 飞书 markdown 内联人员:转成 person_v1,无人员表时走 PERSON_FALLBACK_* 降级。
168
- if (startsWith('<person')) {
169
- const m = /^<person\b([^>]*?)(?:\/>|>\s*<\/person>)/.exec(text.slice(i));
170
- if (m) {
171
- flush();
172
- const attrs = parseHtmlAttrs(m[1]);
173
- const property = {
174
- userID: attrs.id || attrs.user_id || '',
175
- // 标记为 markdown 内联:渲染时跟正文字号,而非独立 person 的 medium 默认
176
- avatarFollowFontSize: true,
177
- };
178
- if (attrs.show_name != null)
179
- property.showName = attrs.show_name !== 'false';
180
- if (attrs.show_avatar != null)
181
- property.showAvatar = attrs.show_avatar !== 'false';
182
- if (attrs.size)
183
- property.size = attrs.size;
184
- // style=capsule → 胶囊外形;normal / 其它忽略
185
- if (attrs.style === 'capsule')
186
- property.pillShaped = true;
187
- out.push({ tag: 'person_v1', property });
188
- i += m[0].length;
189
- continue;
190
- }
191
- }
192
- buf += c;
193
- i += 1;
194
- }
195
- flush();
196
- return out;
197
- }
198
- /** 解析 HTML 属性串:`id='x' show_name=true style="normal"` → { id, show_name, style } */
199
- function parseHtmlAttrs(s) {
200
- const out = {};
201
- const re = /([A-Za-z_][\w-]*)\s*=\s*(?:'([^']*)'|"([^"]*)"|([^\s'">=]+))/g;
202
- let m;
203
- while ((m = re.exec(s))) {
204
- out[m[1]] = m[2] ?? m[3] ?? m[4] ?? '';
205
- }
206
- return out;
207
- }
208
- function isWord(ch) {
209
- return !!ch && /[\w一-龥]/.test(ch);
210
- }
211
- /** 从 `[` 起匹配 [text](url),返回文本、url 与结束下标;不成立返回 null */
212
- function matchLink(text, start) {
213
- // 找 ] 且紧跟 (
214
- let depth = 0;
215
- let j = start;
216
- for (; j < text.length; j++) {
217
- if (text[j] === '[')
218
- depth++;
219
- else if (text[j] === ']') {
220
- depth--;
221
- if (depth === 0)
222
- break;
223
- }
224
- }
225
- if (j >= text.length || text[j + 1] !== '(')
226
- return null;
227
- const label = text.slice(start + 1, j);
228
- const close = text.indexOf(')', j + 2);
229
- if (close === -1)
230
- return null;
231
- const url = text.slice(j + 2, close);
232
- return { text: label, url, end: close + 1 };
233
- }
234
- /* ------------------------------------------------------------------ *
235
- * 块级解析
236
- * ------------------------------------------------------------------ */
237
- const RE_HEADING = /^(#{1,6})\s+(.*)$/;
238
- const RE_HR = /^\s*([-*_])\1{2,}\s*$/;
239
- const RE_LIST = /^(\s*)([-*+]|\d+\.)\s+(.*)$/;
240
- const RE_FENCE = /^\s*```(.*)$/;
241
- /**
242
- * markdown 字符串 → 子元素数组(块级 + 行内)。
243
- * 逐行扫描识别块构造;连续的普通文本行合并为一段,用 br 承载软换行。
244
- */
245
- export function parseMarkdown(content) {
246
- if (!content)
247
- return [];
248
- const lines = String(content).replace(/\r\n?/g, '\n').split('\n');
249
- const out = [];
250
- let para = [];
251
- const flushPara = () => {
252
- if (para.length === 0)
253
- return;
254
- // 段内软换行用 \n 交给 parseInline 转成 br
255
- const seg = parseInline(para.join('\n'));
256
- out.push(...seg);
257
- para = [];
258
- };
259
- for (let i = 0; i < lines.length; i++) {
260
- const line = lines[i];
261
- // 空行:结束当前段落,并补一个 br 以还原段间距(渲染器 markdown 是单 div,靠 br 断行)
262
- if (line.trim() === '') {
263
- if (para.length) {
264
- flushPara();
265
- out.push({ tag: 'br', property: {} });
266
- }
267
- continue;
268
- }
269
- // 围栏代码块 ```lang ... ```
270
- const fence = RE_FENCE.exec(line);
271
- if (fence) {
272
- flushPara();
273
- const language = fence[1].trim();
274
- const body = [];
275
- i++;
276
- for (; i < lines.length; i++) {
277
- if (/^\s*```/.test(lines[i]))
278
- break;
279
- body.push(lines[i]);
280
- }
281
- out.push({
282
- tag: 'code_block',
283
- property: {
284
- language,
285
- contents: body.map((l) => ({ contents: [{ content: l }] })),
286
- },
287
- });
288
- continue;
289
- }
290
- // 标题
291
- const heading = RE_HEADING.exec(line);
292
- if (heading) {
293
- flushPara();
294
- out.push({
295
- tag: 'heading',
296
- property: { level: heading[1].length, elements: parseInline(heading[2]) },
297
- });
298
- continue;
299
- }
300
- // 分割线
301
- if (RE_HR.test(line)) {
302
- flushPara();
303
- out.push({ tag: 'hr', property: {} });
304
- continue;
305
- }
306
- // 引用块(连续 > 行合并)
307
- if (/^\s*>\s?/.test(line)) {
308
- flushPara();
309
- const quote = [];
310
- for (; i < lines.length; i++) {
311
- if (!/^\s*>\s?/.test(lines[i])) {
312
- i--;
313
- break;
314
- }
315
- quote.push(lines[i].replace(/^\s*>\s?/, ''));
316
- }
317
- out.push({ tag: 'blockquote', property: { elements: parseInline(quote.join('\n')) } });
318
- continue;
319
- }
320
- // 列表(连续列表项合并;含缩进层级与有序/无序)
321
- if (RE_LIST.test(line)) {
322
- flushPara();
323
- const items = [];
324
- let counter = 0;
325
- let lastOrdered;
326
- for (; i < lines.length; i++) {
327
- const m = RE_LIST.exec(lines[i]);
328
- if (!m) {
329
- i--;
330
- break;
331
- }
332
- const indent = m[1].replace(/\t/g, ' ').length;
333
- const level = Math.floor(indent / 2);
334
- const ordered = /\d+\./.test(m[2]);
335
- if (ordered !== lastOrdered)
336
- counter = 0;
337
- lastOrdered = ordered;
338
- const item = {
339
- type: ordered ? 'ol' : 'ul',
340
- level,
341
- elements: parseInline(m[3]),
342
- };
343
- if (ordered) {
344
- counter += 1;
345
- item.order = counter;
346
- }
347
- items.push(item);
348
- }
349
- out.push({ tag: 'list', property: { items } });
350
- continue;
351
- }
352
- // 普通文本行 → 累积到当前段落
353
- para.push(line);
354
- }
355
- flushPara();
356
- return out;
357
- }
358
- //# sourceMappingURL=md-parse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"md-parse.js","sourceRoot":"","sources":["../src/md-parse.ts"],"names":[],"mappings":"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"}
@@ -1,166 +0,0 @@
1
- const CAMEL_RENAME = {
2
- textAlign: 'text_align',
3
- textStyle: 'text_style',
4
- backgroundStyle: 'background_style',
5
- backgroundColor: 'background_color',
6
- userID: 'user_id',
7
- showAvatar: 'show_avatar',
8
- showName: 'show_name',
9
- hasBorder: 'has_border',
10
- hoverTips: 'hover_tips',
11
- pillShaped: 'pill_shaped',
12
- tagStyle: 'tag_style',
13
- scaleType: 'scale_type',
14
- dropInvalidUserID: 'drop_invalid_user_id',
15
- udIcon: 'ud_icon',
16
- };
17
- /** 已知公开 DSL 组件 tag 集合;不在此列的视为私有/未知 */
18
- const KNOWN_TAGS = new Set([
19
- 'markdown', 'lark_md', 'div', 'column_set', 'column', 'hr', 'image', 'img',
20
- 'button', 'overflow', 'select_static', 'select_multi', 'input', 'date_picker',
21
- 'picker_time', 'picker_date', 'checker', 'chart', 'table', 'iframe', 'person',
22
- 'person_list', 'interactive_container', 'tag', 'text_tag', 'multi_image',
23
- 'plain_text', 'lark_md_inline', 'image_text', 'carousel', 'grid', 'speaking',
24
- 'vote', 'lottery', 'calender', 'schedule', 'share_chat', 'share_user', 'add_on',
25
- 'whole_text', 'cropper_image', 'highlight', 'local_file', 'file_preview',
26
- 'input_select', 'picker_datetime', 'picker_multi', 'rule', 'statistic', 'task',
27
- 'card_header', 'body', 'unknown',
28
- ]);
29
- function isRecord(v) {
30
- return typeof v === 'object' && v !== null && !Array.isArray(v);
31
- }
32
- /** 未知/私有组件自动降级:包一层 unknown 节点,原始 RAW 保留在 fallback。 */
33
- export function degradeUnknown(el) {
34
- const rawTag = typeof el.tag === 'string' ? el.tag : 'undefined';
35
- return { tag: 'unknown', raw_tag: rawTag, fallback: el };
36
- }
37
- /** RAW envelope(可能是 {json_card:{card}} / {card} / 直接 card)→ DSL 卡片对象 */
38
- export function rawToDsl(raw) {
39
- let card = {};
40
- if (isRecord(raw)) {
41
- const env = isRecord(raw.json_card) ? raw.json_card : isRecord(raw.card) ? raw.card : raw;
42
- if (isRecord(env))
43
- card = env;
44
- }
45
- const out = {
46
- schema: typeof card.schema === 'string' ? card.schema : '2.0',
47
- };
48
- if (isRecord(card.config))
49
- out.config = card.config;
50
- if (isRecord(card.header))
51
- out.header = convertHeaderToDsl(card.header);
52
- if (isRecord(card.body))
53
- out.body = convertBodyToDsl(card.body);
54
- else if (Array.isArray(card.elements)) {
55
- // 兼容扁平 body 写法
56
- out.body = { elements: card.elements.map(convertElToDsl).filter(Boolean) };
57
- }
58
- return out;
59
- }
60
- function convertHeaderToDsl(header) {
61
- const property = isRecord(header.property) ? header.property : header;
62
- const out = {};
63
- for (const [k, v] of Object.entries(property)) {
64
- if (k === 'ud_icon' || k === 'udIcon') {
65
- if (isRecord(v) && typeof v.tag === 'string') {
66
- out.ud_icon = convertElToDsl(v);
67
- continue;
68
- }
69
- }
70
- out[CAMEL_RENAME[k] ?? k] = unwrapTextLeaf(v);
71
- }
72
- return out;
73
- }
74
- function convertBodyToDsl(body) {
75
- const property = isRecord(body.property) ? body.property : body;
76
- const out = {};
77
- for (const [k, v] of Object.entries(property)) {
78
- if (k === 'elements' && Array.isArray(v)) {
79
- out.elements = v.map(convertElToDsl).filter(Boolean);
80
- continue;
81
- }
82
- if (isRecord(v) && typeof v.tag === 'string') {
83
- out[CAMEL_RENAME[k] ?? k] = convertElToDsl(v);
84
- continue;
85
- }
86
- if (Array.isArray(v)) {
87
- out[CAMEL_RENAME[k] ?? k] = v.map((item) => (isRecord(item) && typeof item.tag === 'string' ? convertElToDsl(item) : item));
88
- continue;
89
- }
90
- out[CAMEL_RENAME[k] ?? k] = unwrapBox(v);
91
- }
92
- return out;
93
- }
94
- function convertElToDsl(el) {
95
- if (!isRecord(el))
96
- return undefined;
97
- const tag = typeof el.tag === 'string' ? el.tag : '';
98
- if (!tag)
99
- return undefined;
100
- // 未知/私有组件:降级,保数据
101
- if (!KNOWN_TAGS.has(tag))
102
- return degradeUnknown(el);
103
- // 有 fallback 的 RAW 节点(渲染器未知组件降级产物)原样透传
104
- if ('fallback' in el && isRecord(el.fallback))
105
- return el;
106
- const property = isRecord(el.property) ? el.property : {};
107
- const out = {};
108
- if (tag !== 'plain_text')
109
- out.tag = tag === 'img' ? 'image' : tag;
110
- for (const [k, v] of Object.entries(property)) {
111
- const key = CAMEL_RENAME[k] ?? k;
112
- if (k === 'elements' && Array.isArray(v)) {
113
- if (tag === 'markdown') {
114
- // markdown 子元素树 → 尽力还原为 markdown 字符串
115
- out.content = elementsToMarkdown(v);
116
- continue;
117
- }
118
- out.elements = v.map(convertElToDsl).filter(Boolean);
119
- continue;
120
- }
121
- if (k === 'columns' && Array.isArray(v)) {
122
- out.columns = v.map(convertElToDsl).filter(Boolean);
123
- continue;
124
- }
125
- if (isRecord(v) && typeof v.tag === 'string') {
126
- out[key] = convertElToDsl(v);
127
- continue;
128
- }
129
- if (Array.isArray(v)) {
130
- out[key] = v.map((item) => (isRecord(item) && typeof item.tag === 'string' ? convertElToDsl(item) : item));
131
- continue;
132
- }
133
- out[key] = unwrapBox(unwrapTextLeaf(v));
134
- }
135
- return out;
136
- }
137
- /** plain_text 叶子 → 字符串 */
138
- function unwrapTextLeaf(v) {
139
- if (isRecord(v) && v.tag === 'plain_text') {
140
- const p = isRecord(v.property) ? v.property : {};
141
- return typeof p.content === 'string' ? p.content : '';
142
- }
143
- return v;
144
- }
145
- /** {top/right/bottom/left:{type:'pixels',value}} 简写 → "t r b l" 字符串 */
146
- function unwrapBox(v) {
147
- if (!isRecord(v) || !isRecord(v.top) || !isRecord(v.right))
148
- return v;
149
- const side = (s) => (isRecord(s) && typeof s.value === 'number' ? `${s.value}px` : '0px');
150
- return `${side(v.top)} ${side(v.right)} ${side(v.bottom ?? v.top)} ${side(v.left ?? v.right)}`;
151
- }
152
- /** markdown 子元素树 → 近似 markdown 字符串(逐叶子提取文本) */
153
- function elementsToMarkdown(els) {
154
- const parts = [];
155
- for (const el of els) {
156
- const p = (isRecord(el?.property) ? el.property : {});
157
- if (typeof p.content === 'string')
158
- parts.push(p.content);
159
- else if (Array.isArray(p.elements))
160
- parts.push(elementsToMarkdown(p.elements));
161
- }
162
- return parts.join('');
163
- }
164
- /** DSL → RAW(重导出,统一入口) */
165
- export { dslToRaw } from './dsl-to-raw.js';
166
- //# sourceMappingURL=raw-to-dsl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"raw-to-dsl.js","sourceRoot":"","sources":["../src/raw-to-dsl.ts"],"names":[],"mappings":"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"}
package/dist/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * 飞书 Universal Card「RAW」格式的类型定义。
3
- * RAW = 飞书服务端归一化后下发的渲染数据(card.raw.json 里的 json_card)。
4
- */
5
- export {};
6
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}