@open-feishu-card/adapter 0.3.10 → 0.3.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dsl-to-raw.d.ts","sourceRoot":"","sources":["../src/dsl-to-raw.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAgC,QAAQ,EAAE,MAAM,YAAY,CAAC;AAwCzE,gCAAgC;AAChC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CAW/C"}
1
+ {"version":3,"file":"dsl-to-raw.d.ts","sourceRoot":"","sources":["../src/dsl-to-raw.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAgC,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmDzE,gCAAgC;AAChC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CAW/C"}
@@ -1,6 +1,9 @@
1
1
  /**
2
- * DSL config.style.color 中的 cus-* 别名在 dslToRaw 时展开为渲染器已支持的
2
+ * DSL config.style.color 中的自定义色别名在 dslToRaw 时展开为渲染器已支持的
3
3
  * customBackgroundStyle / textStyle.customColor(对齐飞书 RAW 真机字段)。
4
+ *
5
+ * 别名不限于编辑器默认的 cus-*:业务卡也常用 mm_* 等任意 token 名登记在
6
+ * config.style.color,真机按 registry 键查找;仅认 cus- 前缀会导致背景/描边丢失。
4
7
  */
5
8
  import type { CardElement, TextStyle } from './types.js';
6
9
  export type CustomColorEntry = {
@@ -9,15 +12,18 @@ export type CustomColorEntry = {
9
12
  };
10
13
  export type ColorRegistry = Record<string, CustomColorEntry>;
11
14
  export declare function readColorRegistry(card: Record<string, unknown>): ColorRegistry;
15
+ /** @deprecated 保留兼容;展开逻辑改为查 registry,不再依赖 cus- 前缀。 */
12
16
  export declare function isCustomColorAlias(value: unknown): value is string;
13
- /** column / column_set / interactive_container background_style cus-N → customBackgroundStyle */
17
+ /** 是否为 config.style.color 中已登记的别名(任意 token 名)。 */
18
+ export declare function isRegisteredColorAlias(value: unknown, registry: ColorRegistry): value is string;
19
+ /** column / column_set / interactive_container background_style → customBackgroundStyle */
14
20
  export declare function expandBackgroundStyleAlias(style: unknown, registry: ColorRegistry): {
15
21
  light_mode: string;
16
22
  dark_mode: string;
17
23
  } | undefined;
18
- /** textStyle.color cus-N → customColor(去掉 color,避免被当成命名色) */
24
+ /** textStyle.color 登记别名 → customColor(去掉 color,避免被当成命名色) */
19
25
  export declare function expandTextStyleColor(textStyle: TextStyle | undefined, registry: ColorRegistry): TextStyle | undefined;
20
- /** border_color / background_style 等 cus-N → customBackgroundStyle 形态(供 RAW 渲染器读取) */
26
+ /** border_color / background_style 等登记别名 → customBackgroundStyle 形态(供 RAW 渲染器读取) */
21
27
  export declare function expandColorAlias(style: unknown, registry: ColorRegistry): {
22
28
  light_mode: string;
23
29
  dark_mode: string;
@@ -1 +1 @@
1
- {"version":3,"file":"expand-dsl-colors.d.ts","sourceRoot":"","sources":["../src/expand-dsl-colors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AACzE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE7D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAiB9E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAElE;AAED,iGAAiG;AACjG,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,GACtB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAKvD;AAED,6DAA6D;AAC7D,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,QAAQ,EAAE,aAAa,GACtB,SAAS,GAAG,SAAS,CAWvB;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,GACtB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAEvD;AAED,0CAA0C;AAC1C,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,WAAW,EAAE,GAAG,SAAS,EACnC,QAAQ,EAAE,aAAa,GACtB,WAAW,EAAE,GAAG,SAAS,CAG3B;AAuCD,4DAA4D;AAC5D,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAGR"}
1
+ {"version":3,"file":"expand-dsl-colors.d.ts","sourceRoot":"","sources":["../src/expand-dsl-colors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AACzE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE7D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAiB9E;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAElE;AAED,kDAAkD;AAClD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,GACtB,KAAK,IAAI,MAAM,CAEjB;AAED,2FAA2F;AAC3F,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,GACtB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIvD;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,QAAQ,EAAE,aAAa,GACtB,SAAS,GAAG,SAAS,CAUvB;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,GACtB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAEvD;AAED,0CAA0C;AAC1C,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,WAAW,EAAE,GAAG,SAAS,EACnC,QAAQ,EAAE,aAAa,GACtB,WAAW,EAAE,GAAG,SAAS,CAG3B;AAuCD,4DAA4D;AAC5D,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAGR"}
package/dist/index.cjs CHANGED
@@ -621,21 +621,19 @@ function readColorRegistry(card) {
621
621
  }
622
622
  return out;
623
623
  }
624
- function isCustomColorAlias(value) {
625
- return typeof value === "string" && value.startsWith("cus-");
624
+ function isRegisteredColorAlias(value, registry) {
625
+ return typeof value === "string" && !!value && Object.prototype.hasOwnProperty.call(registry, value);
626
626
  }
627
627
  function expandBackgroundStyleAlias(style, registry) {
628
- if (!isCustomColorAlias(style)) return void 0;
628
+ if (!isRegisteredColorAlias(style, registry)) return void 0;
629
629
  const entry = registry[style];
630
- if (!entry) return void 0;
631
630
  return { light_mode: entry.light_mode, dark_mode: entry.dark_mode };
632
631
  }
633
632
  function expandTextStyleColor(textStyle, registry) {
634
633
  if (!textStyle) return textStyle;
635
634
  const color = typeof textStyle.color === "string" ? textStyle.color.trim() : void 0;
636
- if (!isCustomColorAlias(color)) return textStyle;
635
+ if (!isRegisteredColorAlias(color, registry)) return textStyle;
637
636
  const entry = registry[color];
638
- if (!entry) return textStyle;
639
637
  const { color: _drop, ...rest } = textStyle;
640
638
  return {
641
639
  ...rest,
@@ -700,6 +698,9 @@ var KEY_RENAME = {
700
698
  tag_style: "tagStyle",
701
699
  scale_type: "scaleType",
702
700
  drop_invalid_user_id: "dropInvalidUserID",
701
+ // avatar
702
+ custom_size: "customSize",
703
+ custom_size2: "customSize2",
703
704
  // video / audio
704
705
  file_key: "fileID",
705
706
  audio_id: "audioID",
@@ -708,7 +709,15 @@ var KEY_RENAME = {
708
709
  enable_download: "enableDownload",
709
710
  fill_color: "fillColor"
710
711
  };
711
- var TEXT_LEAF_KEYS = /* @__PURE__ */ new Set(["title", "subtitle", "alt", "hover_tips", "placeholder"]);
712
+ var TEXT_LEAF_KEYS = /* @__PURE__ */ new Set([
713
+ "title",
714
+ "subtitle",
715
+ "alt",
716
+ "hover_tips",
717
+ "placeholder",
718
+ "notation",
719
+ "disabled_tips"
720
+ ]);
712
721
  function dslToRaw(dsl) {
713
722
  const root = isRecord2(dsl) ? dsl : {};
714
723
  const card = unwrapCard(root);
@@ -769,6 +778,12 @@ function convertEl(el, colors) {
769
778
  }
770
779
  return { tag: "person_v1", property };
771
780
  }
781
+ if (tag === "avatar") {
782
+ return { tag: "avatar", property: buildProperty(el, "avatar", colors) };
783
+ }
784
+ if (tag === "picker_date") {
785
+ return { tag: "date_picker", property: buildProperty(el, "date_picker", colors) };
786
+ }
772
787
  if (tag === "markdown" || tag === "lark_md") {
773
788
  const property = buildProperty(el, "markdown", colors);
774
789
  const fontColor = typeof el.font_color === "string" ? el.font_color : void 0;
@@ -883,6 +898,30 @@ function buildProperty(el, tag, colors) {
883
898
  continue;
884
899
  }
885
900
  }
901
+ if (tag === "interactive_container" && typeof v === "string") {
902
+ if (k === "width") {
903
+ if (v === "fill" || v === "auto" || v === "default") {
904
+ property.widthValue = { type: "builtin_interactive_container_width", value: v };
905
+ continue;
906
+ }
907
+ const px = pxValue(v);
908
+ if (px != null) {
909
+ property.widthValue = { type: "pixels", value: px };
910
+ continue;
911
+ }
912
+ }
913
+ if (k === "height") {
914
+ if (v === "auto" || v === "default") {
915
+ property.heightValue = { type: "builtin_interactive_container_height", value: v };
916
+ continue;
917
+ }
918
+ const px = pxValue(v);
919
+ if (px != null) {
920
+ property.heightValue = { type: "pixels", value: px };
921
+ continue;
922
+ }
923
+ }
924
+ }
886
925
  if (TEXT_LEAF_KEYS.has(k)) {
887
926
  property[renameKey(k)] = wrapTextLeaf(v);
888
927
  continue;
@@ -1620,6 +1659,23 @@ function unwrap(node, ctx) {
1620
1659
  if (typeof property.style === "string") out.style = property.style;
1621
1660
  if (isRecord3(property.margin) && hasSide(property.margin)) out.margin = formatBox(property.margin);
1622
1661
  else if (typeof property.margin === "string") out.margin = property.margin;
1662
+ if (property.notation != null && isRecord3(property.notation)) {
1663
+ const n = convertHeaderText(property.notation, ctx);
1664
+ if (n) out.notation = n;
1665
+ }
1666
+ return out;
1667
+ }
1668
+ if (tag === "avatar") {
1669
+ const out = { tag: "avatar" };
1670
+ if (typeof property.userID === "string") out.user_id = property.userID;
1671
+ else if (typeof property.user_id === "string") out.user_id = property.user_id;
1672
+ if (typeof property.size === "string") out.size = property.size;
1673
+ if (typeof property.customSize === "number") out.custom_size = property.customSize;
1674
+ else if (typeof property.custom_size === "number") out.custom_size = property.custom_size;
1675
+ if (typeof property.customSize2 === "number") out.custom_size2 = property.customSize2;
1676
+ else if (typeof property.custom_size2 === "number") out.custom_size2 = property.custom_size2;
1677
+ if (isRecord3(property.margin) && hasSide(property.margin)) out.margin = formatBox(property.margin);
1678
+ else if (typeof property.margin === "string") out.margin = property.margin;
1623
1679
  return out;
1624
1680
  }
1625
1681
  if (tag === "person_list") {
@@ -1628,6 +1684,9 @@ function unwrap(node, ctx) {
1628
1684
  if (typeof property.showAvatar === "boolean") out.show_avatar = property.showAvatar;
1629
1685
  if (typeof property.showName === "boolean") out.show_name = property.showName;
1630
1686
  if (typeof property.lines === "number") out.lines = property.lines;
1687
+ if (typeof property.mode === "string") out.mode = property.mode;
1688
+ if (typeof property.style === "string") out.style = property.style;
1689
+ if (typeof property.count === "number") out.count = property.count;
1631
1690
  if (typeof property.dropInvalidUserID === "boolean") out.drop_invalid_user_id = property.dropInvalidUserID;
1632
1691
  else if (typeof property.drop_invalid_user_id === "boolean") out.drop_invalid_user_id = property.drop_invalid_user_id;
1633
1692
  if (isRecord3(property.margin) && hasSide(property.margin)) out.margin = formatBox(property.margin);
package/dist/index.js CHANGED
@@ -619,21 +619,19 @@ function readColorRegistry(card) {
619
619
  }
620
620
  return out;
621
621
  }
622
- function isCustomColorAlias(value) {
623
- return typeof value === "string" && value.startsWith("cus-");
622
+ function isRegisteredColorAlias(value, registry) {
623
+ return typeof value === "string" && !!value && Object.prototype.hasOwnProperty.call(registry, value);
624
624
  }
625
625
  function expandBackgroundStyleAlias(style, registry) {
626
- if (!isCustomColorAlias(style)) return void 0;
626
+ if (!isRegisteredColorAlias(style, registry)) return void 0;
627
627
  const entry = registry[style];
628
- if (!entry) return void 0;
629
628
  return { light_mode: entry.light_mode, dark_mode: entry.dark_mode };
630
629
  }
631
630
  function expandTextStyleColor(textStyle, registry) {
632
631
  if (!textStyle) return textStyle;
633
632
  const color = typeof textStyle.color === "string" ? textStyle.color.trim() : void 0;
634
- if (!isCustomColorAlias(color)) return textStyle;
633
+ if (!isRegisteredColorAlias(color, registry)) return textStyle;
635
634
  const entry = registry[color];
636
- if (!entry) return textStyle;
637
635
  const { color: _drop, ...rest } = textStyle;
638
636
  return {
639
637
  ...rest,
@@ -698,6 +696,9 @@ var KEY_RENAME = {
698
696
  tag_style: "tagStyle",
699
697
  scale_type: "scaleType",
700
698
  drop_invalid_user_id: "dropInvalidUserID",
699
+ // avatar
700
+ custom_size: "customSize",
701
+ custom_size2: "customSize2",
701
702
  // video / audio
702
703
  file_key: "fileID",
703
704
  audio_id: "audioID",
@@ -706,7 +707,15 @@ var KEY_RENAME = {
706
707
  enable_download: "enableDownload",
707
708
  fill_color: "fillColor"
708
709
  };
709
- var TEXT_LEAF_KEYS = /* @__PURE__ */ new Set(["title", "subtitle", "alt", "hover_tips", "placeholder"]);
710
+ var TEXT_LEAF_KEYS = /* @__PURE__ */ new Set([
711
+ "title",
712
+ "subtitle",
713
+ "alt",
714
+ "hover_tips",
715
+ "placeholder",
716
+ "notation",
717
+ "disabled_tips"
718
+ ]);
710
719
  function dslToRaw(dsl) {
711
720
  const root = isRecord2(dsl) ? dsl : {};
712
721
  const card = unwrapCard(root);
@@ -767,6 +776,12 @@ function convertEl(el, colors) {
767
776
  }
768
777
  return { tag: "person_v1", property };
769
778
  }
779
+ if (tag === "avatar") {
780
+ return { tag: "avatar", property: buildProperty(el, "avatar", colors) };
781
+ }
782
+ if (tag === "picker_date") {
783
+ return { tag: "date_picker", property: buildProperty(el, "date_picker", colors) };
784
+ }
770
785
  if (tag === "markdown" || tag === "lark_md") {
771
786
  const property = buildProperty(el, "markdown", colors);
772
787
  const fontColor = typeof el.font_color === "string" ? el.font_color : void 0;
@@ -881,6 +896,30 @@ function buildProperty(el, tag, colors) {
881
896
  continue;
882
897
  }
883
898
  }
899
+ if (tag === "interactive_container" && typeof v === "string") {
900
+ if (k === "width") {
901
+ if (v === "fill" || v === "auto" || v === "default") {
902
+ property.widthValue = { type: "builtin_interactive_container_width", value: v };
903
+ continue;
904
+ }
905
+ const px = pxValue(v);
906
+ if (px != null) {
907
+ property.widthValue = { type: "pixels", value: px };
908
+ continue;
909
+ }
910
+ }
911
+ if (k === "height") {
912
+ if (v === "auto" || v === "default") {
913
+ property.heightValue = { type: "builtin_interactive_container_height", value: v };
914
+ continue;
915
+ }
916
+ const px = pxValue(v);
917
+ if (px != null) {
918
+ property.heightValue = { type: "pixels", value: px };
919
+ continue;
920
+ }
921
+ }
922
+ }
884
923
  if (TEXT_LEAF_KEYS.has(k)) {
885
924
  property[renameKey(k)] = wrapTextLeaf(v);
886
925
  continue;
@@ -1618,6 +1657,23 @@ function unwrap(node, ctx) {
1618
1657
  if (typeof property.style === "string") out.style = property.style;
1619
1658
  if (isRecord3(property.margin) && hasSide(property.margin)) out.margin = formatBox(property.margin);
1620
1659
  else if (typeof property.margin === "string") out.margin = property.margin;
1660
+ if (property.notation != null && isRecord3(property.notation)) {
1661
+ const n = convertHeaderText(property.notation, ctx);
1662
+ if (n) out.notation = n;
1663
+ }
1664
+ return out;
1665
+ }
1666
+ if (tag === "avatar") {
1667
+ const out = { tag: "avatar" };
1668
+ if (typeof property.userID === "string") out.user_id = property.userID;
1669
+ else if (typeof property.user_id === "string") out.user_id = property.user_id;
1670
+ if (typeof property.size === "string") out.size = property.size;
1671
+ if (typeof property.customSize === "number") out.custom_size = property.customSize;
1672
+ else if (typeof property.custom_size === "number") out.custom_size = property.custom_size;
1673
+ if (typeof property.customSize2 === "number") out.custom_size2 = property.customSize2;
1674
+ else if (typeof property.custom_size2 === "number") out.custom_size2 = property.custom_size2;
1675
+ if (isRecord3(property.margin) && hasSide(property.margin)) out.margin = formatBox(property.margin);
1676
+ else if (typeof property.margin === "string") out.margin = property.margin;
1621
1677
  return out;
1622
1678
  }
1623
1679
  if (tag === "person_list") {
@@ -1626,6 +1682,9 @@ function unwrap(node, ctx) {
1626
1682
  if (typeof property.showAvatar === "boolean") out.show_avatar = property.showAvatar;
1627
1683
  if (typeof property.showName === "boolean") out.show_name = property.showName;
1628
1684
  if (typeof property.lines === "number") out.lines = property.lines;
1685
+ if (typeof property.mode === "string") out.mode = property.mode;
1686
+ if (typeof property.style === "string") out.style = property.style;
1687
+ if (typeof property.count === "number") out.count = property.count;
1629
1688
  if (typeof property.dropInvalidUserID === "boolean") out.drop_invalid_user_id = property.dropInvalidUserID;
1630
1689
  else if (typeof property.drop_invalid_user_id === "boolean") out.drop_invalid_user_id = property.drop_invalid_user_id;
1631
1690
  if (isRecord3(property.margin) && hasSide(property.margin)) out.margin = formatBox(property.margin);
@@ -1 +1 @@
1
- {"version":3,"file":"raw-to-dsl.d.ts","sourceRoot":"","sources":["../src/raw-to-dsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAwBH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIzD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAcvD;AAylDD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA8C9C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGnF"}
1
+ {"version":3,"file":"raw-to-dsl.d.ts","sourceRoot":"","sources":["../src/raw-to-dsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAwBH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIzD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAcvD;AA6mDD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA8C9C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGnF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-feishu-card/adapter",
3
- "version": "0.3.10",
3
+ "version": "0.3.12",
4
4
  "description": "公开 DSL 与飞书内部 RAW JSON 的双向适配器;raw→DSL 对齐 feishu-raw-card-to-dsl",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -22,7 +22,7 @@
22
22
  "tsx": "^4.19.3",
23
23
  "typescript": "^7.0.2",
24
24
  "vitest": "^2.1.9",
25
- "@open-feishu-card/schema": "0.1.4"
25
+ "@open-feishu-card/schema": "0.1.5"
26
26
  },
27
27
  "license": "MIT",
28
28
  "publishConfig": {