@open-feishu-card/adapter 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dsl-to-raw.d.ts +20 -0
- package/dist/dsl-to-raw.d.ts.map +1 -0
- package/dist/dsl-to-raw.js +295 -0
- package/dist/dsl-to-raw.js.map +1 -0
- package/dist/emoji-data.d.ts +17 -0
- package/dist/emoji-data.d.ts.map +1 -0
- package/dist/emoji-data.js +288 -0
- package/dist/emoji-data.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/md-parse.d.ts +24 -0
- package/dist/md-parse.d.ts.map +1 -0
- package/dist/md-parse.js +358 -0
- package/dist/md-parse.js.map +1 -0
- package/dist/raw-to-dsl.d.ts +8 -0
- package/dist/raw-to-dsl.d.ts.map +1 -0
- package/dist/raw-to-dsl.js +166 -0
- package/dist/raw-to-dsl.js.map +1 -0
- package/dist/types.d.ts +365 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +36 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 飞书 Universal Card「RAW」格式的类型定义。
|
|
3
|
+
* RAW = 飞书服务端归一化后下发的渲染数据(card.raw.json 里的 json_card)。
|
|
4
|
+
*/
|
|
5
|
+
/** 文本样式属性 */
|
|
6
|
+
export type TextAttribute = 'bold' | 'italic' | 'strikethrough';
|
|
7
|
+
/** 命名颜色(飞书 12 色板 + 中性色) */
|
|
8
|
+
export type NamedColor = 'blue' | 'wathet' | 'turquoise' | 'green' | 'yellow' | 'orange' | 'red' | 'carmine' | 'violet' | 'purple' | 'indigo' | 'grey' | 'neutral' | 'lime' | 'sunflower';
|
|
9
|
+
/** header 模板色 */
|
|
10
|
+
export type HeaderTemplate = NamedColor | 'default';
|
|
11
|
+
/** 对齐方式 */
|
|
12
|
+
export type TextAlign = 'left' | 'center' | 'right';
|
|
13
|
+
/** 字号枚举名(含 markdown text_size / RAW textStyle.size 全量) */
|
|
14
|
+
export type SizeName = 'x-small' | 'small' | 'normal' | 'medium' | 'large' | 'x-large' | 'xx-large' | 'xxx-large' | 'xxxx-large' | 'notation' | 'heading' | 'heading-0' | 'heading-1' | 'heading-2' | 'heading-3' | 'heading-4';
|
|
15
|
+
/** 文本样式 */
|
|
16
|
+
export interface TextStyle {
|
|
17
|
+
attributes?: TextAttribute[];
|
|
18
|
+
color?: NamedColor | string;
|
|
19
|
+
size?: SizeName | string;
|
|
20
|
+
platformSize?: {
|
|
21
|
+
pc?: SizeName | string;
|
|
22
|
+
mobile?: SizeName | string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 通用元素:{ tag, id, property }。
|
|
27
|
+
* property 的具体形状随 tag 不同,这里用宽松索引;常见字段单独标注。
|
|
28
|
+
*/
|
|
29
|
+
export interface CardElement {
|
|
30
|
+
tag: string;
|
|
31
|
+
id?: string;
|
|
32
|
+
property?: ElementProperty;
|
|
33
|
+
/** 降级渲染:引擎渲不出该元素时改渲 fallback(如 person_list 取不到人员数据时的纯文本姓名) */
|
|
34
|
+
fallback?: CardElement;
|
|
35
|
+
}
|
|
36
|
+
/** 元素 property(并集:不同 tag 用到不同子集) */
|
|
37
|
+
export interface ElementProperty {
|
|
38
|
+
/** 子元素(markdown / body / div / column / heading / blockquote 等) */
|
|
39
|
+
elements?: CardElement[];
|
|
40
|
+
/** 纯文本内容(plain_text / link / code_span 等) */
|
|
41
|
+
content?: string;
|
|
42
|
+
/** 文本样式 */
|
|
43
|
+
textStyle?: TextStyle;
|
|
44
|
+
/** 段落对齐 */
|
|
45
|
+
textAlign?: TextAlign;
|
|
46
|
+
originTag?: string;
|
|
47
|
+
template?: HeaderTemplate;
|
|
48
|
+
title?: CardElement;
|
|
49
|
+
subtitle?: CardElement;
|
|
50
|
+
/** 标题右侧的彩色标签(每项 text_tag 元素)。DSL 用 snake_case,兼容 camelCase */
|
|
51
|
+
text_tag_list?: CardElement[];
|
|
52
|
+
textTagList?: CardElement[];
|
|
53
|
+
columns?: CardElement[];
|
|
54
|
+
horizontal_spacing?: number | string;
|
|
55
|
+
horizontal_align?: 'left' | 'center' | 'right';
|
|
56
|
+
flex_mode?: string;
|
|
57
|
+
width?: 'weighted' | 'auto' | number | string;
|
|
58
|
+
weight?: number;
|
|
59
|
+
vertical_align?: 'top' | 'center' | 'bottom';
|
|
60
|
+
vertical_spacing?: number | string;
|
|
61
|
+
widthValue?: {
|
|
62
|
+
type?: string;
|
|
63
|
+
value?: number | string;
|
|
64
|
+
};
|
|
65
|
+
horizontalSpacingValue?: {
|
|
66
|
+
type?: string;
|
|
67
|
+
value?: number | string;
|
|
68
|
+
};
|
|
69
|
+
verticalSpacingValue?: {
|
|
70
|
+
type?: string;
|
|
71
|
+
value?: number | string;
|
|
72
|
+
};
|
|
73
|
+
horizontalAlign?: 'left' | 'center' | 'right';
|
|
74
|
+
verticalAlign?: 'top' | 'center' | 'bottom';
|
|
75
|
+
flexMode?: string;
|
|
76
|
+
backgroundStyle?: string;
|
|
77
|
+
padding?: BoxSpacing;
|
|
78
|
+
margin?: BoxSpacing;
|
|
79
|
+
hoverTips?: CardElement;
|
|
80
|
+
hasBorder?: boolean;
|
|
81
|
+
imageID?: string;
|
|
82
|
+
origin_key?: string;
|
|
83
|
+
src?: string;
|
|
84
|
+
url?: string | LinkURL;
|
|
85
|
+
img_url?: string;
|
|
86
|
+
/** RAW 里 alt 常为 plain_text 元素而非字符串 */
|
|
87
|
+
alt?: CardElement | string;
|
|
88
|
+
scale_type?: string;
|
|
89
|
+
scaleType?: string;
|
|
90
|
+
mode?: string;
|
|
91
|
+
corner_radius?: number | string;
|
|
92
|
+
type?: string;
|
|
93
|
+
text?: CardElement;
|
|
94
|
+
disabled?: boolean;
|
|
95
|
+
behaviors?: Array<{
|
|
96
|
+
default_url?: {
|
|
97
|
+
url?: string;
|
|
98
|
+
};
|
|
99
|
+
}>;
|
|
100
|
+
actions?: CardElement[];
|
|
101
|
+
layout?: string;
|
|
102
|
+
userID?: string;
|
|
103
|
+
/** person_list:人员引用列表(每项 { id, type }),id 即 persons 表的 key(ou_...) */
|
|
104
|
+
persons?: Array<{
|
|
105
|
+
id?: string;
|
|
106
|
+
type?: string;
|
|
107
|
+
}>;
|
|
108
|
+
/** 展示头像(person_v1 默认 true;person_list 按真值,与 showName 组合出四态) */
|
|
109
|
+
showAvatar?: boolean;
|
|
110
|
+
/** 展示姓名(person_v1 默认 true;person_list 按真值) */
|
|
111
|
+
showName?: boolean;
|
|
112
|
+
/** 胶囊样式(DSL style:"capsule" 会转成此字段) */
|
|
113
|
+
pillShaped?: boolean;
|
|
114
|
+
multiURL?: LinkURL;
|
|
115
|
+
color?: NamedColor | string;
|
|
116
|
+
tagStyle?: NamedColor | string;
|
|
117
|
+
backgroundColor?: string;
|
|
118
|
+
level?: number;
|
|
119
|
+
items?: ListItem[];
|
|
120
|
+
contents?: Array<{
|
|
121
|
+
contents?: Array<{
|
|
122
|
+
content?: string;
|
|
123
|
+
}>;
|
|
124
|
+
}>;
|
|
125
|
+
language?: string;
|
|
126
|
+
key?: string;
|
|
127
|
+
code?: string;
|
|
128
|
+
emoji_type?: string;
|
|
129
|
+
/** 图标名,形如 "warning_outlined",拼成 class="ud-icon_<token>" */
|
|
130
|
+
token?: string;
|
|
131
|
+
style?: {
|
|
132
|
+
color?: string;
|
|
133
|
+
size?: string;
|
|
134
|
+
[key: string]: unknown;
|
|
135
|
+
};
|
|
136
|
+
icon?: CardElement;
|
|
137
|
+
udIcon?: CardElement;
|
|
138
|
+
/** VChart 规格对象(原样透传给 VChart 构造) */
|
|
139
|
+
chart_spec?: Record<string, unknown>;
|
|
140
|
+
chartSpec?: Record<string, unknown>;
|
|
141
|
+
/**
|
|
142
|
+
* 宽高比,形如 "16:9"(决定容器 aspect-ratio)。
|
|
143
|
+
* 缺省且 height 为 auto 时按飞书默认 "16:9";height 为像素值时此字段失效。
|
|
144
|
+
*/
|
|
145
|
+
aspect_ratio?: string;
|
|
146
|
+
aspectRatio?: string;
|
|
147
|
+
/**
|
|
148
|
+
* 图表高度。飞书 JSON 2.0:`auto`(默认,按宽高比计算)或 `[1,999]px`(固定高度,此时忽略 aspect_ratio)。
|
|
149
|
+
* RAW 形态也可能是 heightValue: { type:'pixels', value:number }。
|
|
150
|
+
*/
|
|
151
|
+
height?: string;
|
|
152
|
+
heightValue?: {
|
|
153
|
+
type?: string;
|
|
154
|
+
value?: number | string;
|
|
155
|
+
};
|
|
156
|
+
/** 行数据:每行是 { 列name: 值 } */
|
|
157
|
+
rows?: Array<Record<string, unknown>>;
|
|
158
|
+
/** 表头样式 */
|
|
159
|
+
header_style?: TableHeaderStyle;
|
|
160
|
+
headerStyle?: TableHeaderStyle;
|
|
161
|
+
/** 行高枚举 low/middle/high */
|
|
162
|
+
row_height?: string;
|
|
163
|
+
rowHeight?: string;
|
|
164
|
+
/** 每页行数(预览里仅用于「显示前 N 行」,不做真实分页控件) */
|
|
165
|
+
page_size?: number;
|
|
166
|
+
pageSize?: number;
|
|
167
|
+
/** 冻结首列(预览里不做横向滚动,仅保留字段兼容透传) */
|
|
168
|
+
freeze_first_column?: boolean;
|
|
169
|
+
/** 其它未显式声明的字段 */
|
|
170
|
+
[key: string]: unknown;
|
|
171
|
+
}
|
|
172
|
+
/** 表格列定义 */
|
|
173
|
+
export interface TableColumn {
|
|
174
|
+
/** 列 key,对应每行数据的字段名 */
|
|
175
|
+
name: string;
|
|
176
|
+
/** 表头显示名(缺省用 name) */
|
|
177
|
+
display_name?: string;
|
|
178
|
+
/** 列宽:"auto" / "120px" / 数字 */
|
|
179
|
+
width?: string | number;
|
|
180
|
+
/** 单元格数据类型:text / number / options / markdown / lark_md / persons / date… */
|
|
181
|
+
data_type?: string;
|
|
182
|
+
/** 单元格水平对齐 */
|
|
183
|
+
horizontal_align?: 'left' | 'center' | 'right';
|
|
184
|
+
/** number 类型的格式(precision 小数位) */
|
|
185
|
+
format?: {
|
|
186
|
+
precision?: number;
|
|
187
|
+
symbol?: string;
|
|
188
|
+
separator?: boolean;
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
/** 表头样式 */
|
|
192
|
+
export interface TableHeaderStyle {
|
|
193
|
+
text_align?: 'left' | 'center' | 'right';
|
|
194
|
+
text_size?: string;
|
|
195
|
+
background_style?: string;
|
|
196
|
+
text_color?: string;
|
|
197
|
+
bold?: boolean;
|
|
198
|
+
lines?: number;
|
|
199
|
+
}
|
|
200
|
+
/** RAW 的内/外边距:四向 { type:'pixels', value } */
|
|
201
|
+
export interface BoxSpacing {
|
|
202
|
+
top?: {
|
|
203
|
+
type?: string;
|
|
204
|
+
value?: number;
|
|
205
|
+
};
|
|
206
|
+
right?: {
|
|
207
|
+
type?: string;
|
|
208
|
+
value?: number;
|
|
209
|
+
};
|
|
210
|
+
bottom?: {
|
|
211
|
+
type?: string;
|
|
212
|
+
value?: number;
|
|
213
|
+
};
|
|
214
|
+
left?: {
|
|
215
|
+
type?: string;
|
|
216
|
+
value?: number;
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/** 链接地址:可为直链字符串,或多端地址对象 */
|
|
220
|
+
export interface LinkURL {
|
|
221
|
+
url?: string;
|
|
222
|
+
pcURL?: string;
|
|
223
|
+
iosURL?: string;
|
|
224
|
+
androidURL?: string;
|
|
225
|
+
harmonyURL?: string;
|
|
226
|
+
}
|
|
227
|
+
/** 列表项 */
|
|
228
|
+
export interface ListItem {
|
|
229
|
+
type?: 'ul' | 'ol' | string;
|
|
230
|
+
ordered?: boolean;
|
|
231
|
+
level?: number;
|
|
232
|
+
order?: number;
|
|
233
|
+
elements?: CardElement[];
|
|
234
|
+
}
|
|
235
|
+
/** 卡片根对象(json_card) */
|
|
236
|
+
export interface JsonCard {
|
|
237
|
+
schema?: string;
|
|
238
|
+
header?: CardElement;
|
|
239
|
+
body?: CardElement;
|
|
240
|
+
newBody?: CardElement;
|
|
241
|
+
config?: Record<string, unknown>;
|
|
242
|
+
[key: string]: unknown;
|
|
243
|
+
}
|
|
244
|
+
/** 渲染器可接受的输入:json_card 本身,或带外层包装的 card.raw.json */
|
|
245
|
+
export type CardInput = JsonCard | {
|
|
246
|
+
json_card: JsonCard;
|
|
247
|
+
[key: string]: unknown;
|
|
248
|
+
} | {
|
|
249
|
+
card: {
|
|
250
|
+
json_card: JsonCard;
|
|
251
|
+
};
|
|
252
|
+
[key: string]: unknown;
|
|
253
|
+
};
|
|
254
|
+
/** 渲染选项 */
|
|
255
|
+
export interface RenderOptions {
|
|
256
|
+
/** 浏览器环境的 document(默认取全局 document) */
|
|
257
|
+
document?: Document;
|
|
258
|
+
/** 遇到未注册的 tag 时打印警告 */
|
|
259
|
+
warnOnUnknownTag?: boolean;
|
|
260
|
+
/** 自定义图片地址解析:返回最终 src */
|
|
261
|
+
resolveImage?: (property: ElementProperty) => string | null | undefined;
|
|
262
|
+
/** 图片地址前缀:最终 src = imageBaseURL + imageID */
|
|
263
|
+
imageBaseURL?: string;
|
|
264
|
+
/**
|
|
265
|
+
* 人员表(open_id -> { content 姓名, avatar_key 头像 })。
|
|
266
|
+
* person_v1 / person_list 元素只带 ID,姓名/头像在此反查。
|
|
267
|
+
* 异步渲染(renderCardToStringAsync)会自动从 json_attachment.persons 填入;
|
|
268
|
+
* 同步渲染若想出名字/头像,需手动传入。缺省时人员降级为固定头像 +「赵天雄」。
|
|
269
|
+
*/
|
|
270
|
+
persons?: Record<string, PersonInfo>;
|
|
271
|
+
/**
|
|
272
|
+
* 头像图地址前缀:最终 src = avatarBaseURL + avatar_key + avatarURLSuffix。
|
|
273
|
+
* 飞书头像 key 公开可取(无需鉴权),默认走 PERSON_AVATAR_BASE。
|
|
274
|
+
*/
|
|
275
|
+
avatarBaseURL?: string;
|
|
276
|
+
/** 头像 URL 后缀(默认含 image_size/format 查询串,见 PERSON_AVATAR_SUFFIX) */
|
|
277
|
+
avatarURLSuffix?: string;
|
|
278
|
+
/** 自定义头像地址解析:入参为命中的 PersonInfo,返回最终 src(优先级最高) */
|
|
279
|
+
resolvePersonAvatar?: (person: PersonInfo) => string | null | undefined;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* 人员信息:person_v1 / person_list 元素只带 ID,姓名与头像 key 在这里。
|
|
283
|
+
* 取自飞书消息 content 的 json_attachment.persons(按 open_id「ou_...」索引)。
|
|
284
|
+
* avatar_key 是公开可访问的头像图 key(无需鉴权,见 PERSON_AVATAR_BASE)。
|
|
285
|
+
*/
|
|
286
|
+
export interface PersonInfo {
|
|
287
|
+
person_id?: string;
|
|
288
|
+
/** 显示名 */
|
|
289
|
+
content?: string;
|
|
290
|
+
type?: number;
|
|
291
|
+
/** 头像图 key(形如 v3_00te_...),拼 avatarBaseURL 取图 */
|
|
292
|
+
avatar_key?: string;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* 消息附件表:把卡片里 img 元素的局部序号(property.imageID,如 "19")
|
|
296
|
+
* 映射到飞书图床真实 key(origin_key,形如 img_v3_...)。
|
|
297
|
+
* 取自飞书消息 content 的 json_attachment 字段。
|
|
298
|
+
*/
|
|
299
|
+
export interface JsonAttachment {
|
|
300
|
+
images?: Record<string, {
|
|
301
|
+
origin_key?: string;
|
|
302
|
+
}>;
|
|
303
|
+
/** 人员表:open_id(ou_...) -> { content 姓名, avatar_key 头像 } */
|
|
304
|
+
persons?: Record<string, PersonInfo>;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* 异步渲染选项:在同步 RenderOptions 基础上,支持用 access token 自动拉取图片。
|
|
308
|
+
* accessToken 为可选——传了就把卡片图片拉取并内联(data URI);不传则渲染成占位图。
|
|
309
|
+
*/
|
|
310
|
+
export interface AsyncRenderOptions extends RenderOptions {
|
|
311
|
+
/** 飞书 access token(去掉 "Bearer " 前缀)。可选:有则拉图内联,无则占位。 */
|
|
312
|
+
accessToken?: string;
|
|
313
|
+
/** 消息 ID(om_...)。当输入是卡片对象而非 messageId 时,用它拼接图片接口 URL。 */
|
|
314
|
+
messageId?: string;
|
|
315
|
+
/** 注入自定义 fetch(默认用全局 fetch)。便于浏览器走代理或单测注入 mock。 */
|
|
316
|
+
fetch?: typeof fetch;
|
|
317
|
+
/** 接口基址,默认 https://open.feishu.cn/open-apis/im/v1 */
|
|
318
|
+
apiBaseURL?: string;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* 异步渲染的输入:
|
|
322
|
+
* - 字符串 → 当作 messageId,渲染器先拉整条消息(需 accessToken);
|
|
323
|
+
* - 卡片对象 → 直接渲染;带 json_attachment + token + messageId 时内联图片。
|
|
324
|
+
*/
|
|
325
|
+
export type CardMessageInput = string | CardInput | {
|
|
326
|
+
json_card: JsonCard;
|
|
327
|
+
json_attachment?: JsonAttachment;
|
|
328
|
+
messageId?: string;
|
|
329
|
+
[key: string]: unknown;
|
|
330
|
+
};
|
|
331
|
+
/** 渲染上下文(传给每个组件) */
|
|
332
|
+
export interface RenderContext {
|
|
333
|
+
options: RenderOptions;
|
|
334
|
+
kernel: {
|
|
335
|
+
getComponent: (tag: string) => ComponentFn | null;
|
|
336
|
+
renderElement: (el: CardElement | null | undefined, ctx: RenderContext) => VNode | null;
|
|
337
|
+
renderElements: (arr: CardElement[] | undefined, ctx: RenderContext) => VNode[];
|
|
338
|
+
};
|
|
339
|
+
/**
|
|
340
|
+
* markdown 父级注入的正文字号(飞书对内联 Person 设 avatarFollowFontSize)。
|
|
341
|
+
* 有此字段时,person_v1 按正文字号缩放,而非独立组件的 size 枚举(默认 medium)。
|
|
342
|
+
*/
|
|
343
|
+
textMetrics?: {
|
|
344
|
+
fontSize: number;
|
|
345
|
+
lineHeight: number;
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
/** 组件渲染函数 */
|
|
349
|
+
export type ComponentFn = (el: CardElement, ctx: RenderContext) => VNode | null;
|
|
350
|
+
/** 轻量虚拟节点 */
|
|
351
|
+
export interface VNode {
|
|
352
|
+
tag: string;
|
|
353
|
+
props: VNodeProps;
|
|
354
|
+
children: VNodeChild[];
|
|
355
|
+
}
|
|
356
|
+
export interface VNodeProps {
|
|
357
|
+
className?: string;
|
|
358
|
+
style?: Record<string, string | number | null | undefined>;
|
|
359
|
+
dangerouslySetInnerHTML?: {
|
|
360
|
+
__html: string;
|
|
361
|
+
};
|
|
362
|
+
[key: string]: unknown;
|
|
363
|
+
}
|
|
364
|
+
export type VNodeChild = VNode | string | null | false;
|
|
365
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@open-feishu-card/adapter",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "公开 DSL 与飞书内部 RAW JSON 的双向适配器,支持未知组件自动降级 (Fallback)",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"tsx": "^4.19.3",
|
|
19
|
+
"typescript": "^7.0.2",
|
|
20
|
+
"@types/node": "^22.20.1"
|
|
21
|
+
},
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git+https://github.com/ztxtxwd/open-feishu-card-monorepo.git",
|
|
29
|
+
"directory": "packages/adapter"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "tsc -p tsconfig.json",
|
|
33
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
34
|
+
"test": "tsx --test test/*.test.ts"
|
|
35
|
+
}
|
|
36
|
+
}
|